ChatGTPでMermaid形式を出力してみる
ChatGTPでどこまでフローチャートがつくれるか確かめてみました。
※緑色のinfoがCatGTPプロントを表します。
Mermaidの形式で、カレーライスをつくるフローチャートを作成してください。
その際クリティカルパスがわかるようにデザインしていただけますか?
graph TD
A[準備] --> B[材料を切る]
B --> C[材料を炒める]
C --> D[水を入れて煮込む]
D --> E[ルーを入れて混ぜる]
E --> F[カレーを煮込む]
subgraph クリティカルパス
A --> B
B --> C
C --> D
D --> E
E --> F
end
F --> G[ご飯を準備する]
G --> H[盛り付け]
H --> I[完成!]
style A stroke:#f66, stroke-width:2px
style B stroke:#f66, stroke-width:2px
style C stroke:#f66, stroke-width:2px
style D stroke:#f66, stroke-width:2px
style E stroke:#f66, stroke-width:2px
style F stroke:#f66, stroke-width:2px
微妙です。もっと指示をだす。
わかりにくいですね。もっとデザイン性を高めることできますか?
また、シチュエーションとしては、キャンプでカレーを作成することを想定してください。
そして、複数のチームで分担しながら、カレーをつくるため、どの作業が並列で作業できるかわかるようにしてほしい。
graph TD
subgraph チーム1[チーム1 - 野菜・肉の準備]
A1[野菜を洗う] --> B1[野菜を切る]
A2[肉を切る] --> C1[材料を炒める]
B1 --> C1
end
subgraph チーム2[チーム2 - 火の準備]
A3[焚き火の準備] --> B2[鍋を火にかける]
end
subgraph チーム3[チーム3 - ご飯の準備]
A4[米を研ぐ] --> B3[水加減を調整する]
B3 --> C2[ご飯を炊く]
end
subgraph クリティカルパス
C1 --> D1[水を入れて煮込む]
D1 --> E1[ルーを入れて混ぜる]
E1 --> F1[カレーを煮込む]
F1 --> G1[カレー完成]
end
F1 --> H1[ご飯が炊ける]
C2 --> H1
H1 --> I1[盛り付け]
I1 --> J1[完成!]
%% クリティカルパスの強調
style C1 stroke:#f66, stroke-width:3px
style D1 stroke:#f66, stroke-width:3px
style E1 stroke:#f66, stroke-width:3px
style F1 stroke:#f66, stroke-width:3px
style G1 stroke:#f66, stroke-width:3px
良い感じです。もっと複雑なことができるか?確かめる
ありがとうございます。買い物、道具の準備もフローに組み込んでください。
その際、どの材料が必要か、どの道具が必要かも記載おねがいします。
※わかりやすくしてください。デザイン性を意識した図をしてください。
graph TD
subgraph 買い物チーム[買い物チーム]
A0[食材の購入]
A0 --> B0[材料リスト:\n- 肉\n- 玉ねぎ\n- じゃがいも\n- にんじん\n- カレールー\n- ご飯\n- 調味料]
B0 --> C0[道具リスト:\n- 鍋\n- 包丁\n- まな板\n- おたま\n- しゃもじ\n- 米用鍋または飯盒\n- 焚き火道具]
C0 --> D0[材料・道具を現地に持ち込む]
end
subgraph チーム1[チーム1 - 野菜・肉の準備]
A1[野菜を洗う] --> B1[野菜を切る]
A2[肉を切る] --> C1[材料を炒める]
B1 --> C1
end
subgraph チーム2[チーム2 - 火の準備]
A3[焚き火の準備:\n- 焚き火台\n- 薪\n- 着火剤] --> B2[鍋を火にかける]
end
subgraph チーム3[チーム3 - ご飯の準備]
A4[米を研ぐ] --> B3[水加減を調整する]
B3 --> C2[ご飯を炊く:\n- 飯盒または鍋]
end
subgraph クリティカルパス
C1 --> D1[水を入れて煮込む]
D1 --> E1[ルーを入れて混ぜる]
E1 --> F1[カレーを煮込む]
F1 --> G1[カレー完成]
end
F1 --> H1[ご飯が炊ける]
C2 --> H1
H1 --> I1[盛り付け]
I1 --> J1[完成!]
%% クリティカルパスの強調
style C1 stroke:#f66, stroke-width:3px
style D1 stroke:#f66, stroke-width:3px
style E1 stroke:#f66, stroke-width:3px
style F1 stroke:#f66, stroke-width:3px
style G1 stroke:#f66, stroke-width:3px
あんまり情報が増えなかった。もっと詳しく指示してみる。
それぞれの材料をどのように調理するかも記載してください。
また、カレーを煮込む時間、ご飯を炊くまでの時間を考慮して、どのような順番でで調理をし始めたほうがいいか?時間がわかるような図をしてください。
gantt
title キャンプでのカレーライス調理計画
dateFormat HH:mm
axisFormat %H:%M
section 買い物と準備
食材と道具の準備 :done, prep, 00:00, 00:30
section チーム1 - 野菜・肉の準備
野菜を洗う (5分) :a1, 00:30, 00:35
野菜を切る (10分) :a2, after a1, 00:10
肉を切る (5分) :a3, after a1, 00:05
野菜と肉を炒める (10分) :a4, after a2, 00:10
section チーム2 - 火の準備
焚き火の準備 (10分) :b1, 00:30, 00:40
鍋を火にかける (5分) :b2, after b1, 00:05
section チーム3 - ご飯の準備
米を研ぐ (5分) :c1, 00:30, 00:35
水加減を調整する (5分) :c2, after c1, 00:05
ご飯を炊く (20分) :c3, after c2, 00:20
section カレーの調理 (クリティカルパス)
水を入れて煮込む (20分) :d1, after a4, 00:20
ルーを入れて混ぜる (5分) :d2, after d1, 00:05
カレーを煮込む (10分) :d3, after d2, 00:10
カレー完成 :done, d4, after d3, 00:00
section 最終工程
ご飯が炊ける (炊飯完了) :e1, after c3, 00:00
盛り付け (5分) :e2, after e1, 00:05
完成 :done, e3, after e2, 00:00
ガントチャート形式になった。が、各プロセスの流れがまちがっている。修正してもらえるか?
各タスクのつながりがみえません。とくに焚火の準備をしてから、カレーを火にかける。といった。次の工程にいくために、やらなければならないことがみえません。
Qiitaだとsintaxエラーとなる形式出力された。また、内容をみてもまったく良くなっていないのでアプローチを変更(言葉で指示だす限界を感じる)
次は、表示されたグラフをキャプチャして、ChatGTP自身に改善点を指摘させる
ガントチャートですが、依存関係がわからないです。
添付した画像のガントチャートをみて、もっとよくしたほうがいいところをおしえてください。
ありがとうございます。画像のガントチャートを確認しました。依存関係を視覚的に強調し、改善すべき点を以下にまとめました。
### 改善ポイント:
1. **依存関係の明確化**:
- 現在、タスクの順番はわかるものの、特定のタスクが完了しないと次に進めないという依存関係が視覚的に不明瞭です。矢印を使用して、例えば「焚き火の準備」が完了してから「鍋を火にかける」という依存関係を明示することで、各タスク間のつながりが一目でわかるようにするとよいでしょう。
2. **並行作業の視覚化**:
- 「野菜を切る」と「米を研ぐ」など、並行して進行可能な作業はもう少し強調すると効率がわかりやすくなります。異なるチームによる作業を色分けし、どの作業が同時に進行しているかを強調するとよいでしょう。
3. **タスクのクリティカルパスの強調**:
- カレー作りの進行においてクリティカルパス(例えば「水を入れて煮込む」から「カレーを煮込む」までのプロセス)をもっと目立たせることで、重要な工程が進行するタイミングがはっきりします。たとえば、クリティカルパスに沿ったタスクは別の色や太い線で強調できます。
4. **タスクの順序の視覚的な関連付け**:
- 特定の作業が完了したら次の作業に進むという関係を矢印や線で繋げることで、次に何をすべきかが明確になります。たとえば、野菜の切り終わりと肉の切り終わりが完了したら、それらを同時に「材料を炒める」タスクへつなげるべきことを矢印で示すとわかりやすくなります。
5. **全体のスケジュールの一目での理解**:
- チャートが横に長いため、全体の流れを短時間で理解できるように重要なポイントにマークや強調を入れると視覚的に優れたデザインになります。たとえば、合流ポイントやチームごとの終了タイミングをわかりやすくするとスムーズです。
これらの改善により、依存関係や並行作業の進行がより直感的にわかりやすいガントチャートに仕上がるかと思います。
ChatGPT自身に改善点を指摘させてから、その内容を加味してもらう。※Ver指定はsintaxエラー防止。
ありがとうございます。ご指摘いただした修正点を加味して、Mermaid形式でカレーライスの調理のフローを作成おねがいします。mermaid version 10.9.0に対応させください
gantt
title Curry Rice Cooking Plan
dateFormat HH:mm
axisFormat %H:%M
section Shopping and Preparation
Preparation of Ingredients and Tools :done, a0, 00:00, 00:30
section Team 1 - Vegetable & Meat Preparation
Wash Vegetables (5 min) :a1, 00:30, 00:35
Cut Vegetables (10 min) :a2 after a1, 00:35, 00:45
Cut Meat (5 min) :a3 after a1, 00:35, 00:40
Fry Vegetables and Meat (10 min):a4 after a2 after a3, 00:45, 00:55
section Team 2 - Fire Preparation
Prepare Fire (10 min) :b1, 00:30, 00:40
Place Pot on Fire (5 min) :b2 after b1, 00:40, 00:45
section Team 3 - Rice Preparation
Wash Rice (5 min) :c1, 00:30, 00:35
Adjust Water Level (5 min) :c2 after c1, 00:35, 00:40
Cook Rice (20 min) :c3 after c2, 00:40, 01:00
section Curry Cooking - Critical Path
Boil with Water (20 min) :crit, d1 after a4 after b2, 00:55, 01:15
Add Curry Roux and Stir (5 min):crit, d2 after d1, 01:15, 01:20
Simmer Curry (10 min) :crit, d3 after d2, 01:20, 01:30
section Final Steps
Rice is Cooked (Completion of Rice Cooking):e1 after c3, 01:00, 01:00
Serving (5 min) :f1 after d3 after e1, 01:30, 01:35
Completion! :done, f2 after f1, 01:35, 01:35
かなり良くなりました。次にdesignはどこまでかっこよくなるか?
⇒とおもったが、ガントチャートはstyle形式に対応しておらず?デザインの変更ができなかった。そこで、通常グラフでのデザイン性の向上目指す。
ガントチャートをグラフ形式に変更してください。その際、矢印に必要となる時間を記載してください。
またデザインをAppleの発表会で発表されるような洗練されたデザインとしてください。
graph TD
A[Preparation<br>00:00-00:30] -->|5 min| B[Wash Vegetables<br>00:30-00:35]
B -->|10 min| C[Cut Vegetables<br>00:35-00:45]
B -->|5 min| D[Cut Meat<br>00:35-00:40]
C -->|10 min| E[Fry Vegetables and Meat<br>00:45-00:55]
D -->|5 min| E
A -->|10 min| F[Prepare Fire<br>00:30-00:40]
F -->|5 min| G[Place Pot on Fire<br>00:40-00:45]
A -->|5 min| H[Wash Rice<br>00:30-00:35]
H -->|5 min| I[Adjust Water Level<br>00:35-00:40]
I -->|20 min| J[Cook Rice<br>00:40-01:00]
E -->|20 min| K[Boil with Water<br>00:55-01:15]
G -->|20 min| K
K -->|5 min| L[Add Curry Roux and Stir<br>01:15-01:20]
L -->|10 min| M[Simmer Curry<br>01:20-01:30]
J -->|0 min| N[Rice is Cooked<br>01:00]
M -->|5 min| O[Serving<br>01:30-01:35]
N -->|0 min| O
O -->|0 min| P[Completion<br>01:35]
%% Define classes for a sleek, Apple-like look
classDef default fill:#ffffff,stroke:#000000,stroke-width:1px,color:#333
classDef important fill:#d6d6d6,stroke:#000000,stroke-width:1px,color:#000
classDef critical fill:#ffcc00,stroke:#000000,stroke-width:2px,color:#000
%% Apply styles to specific nodes
class A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P default
%% Apply important class to emphasize specific nodes
class K,L,M important
%% Apply critical class to highlight the most important phases
class K critical
確かにAppleの色になった。デザイン性があるかは不明…
感想
作成はできることがわかった。しかし、生成するとシンタックスエラーとなることもあり、Pythonなどの言語よりも制度が悪いことはわかった。そのため利用する際は注意必要です。