forked from OpenBMB/ChatDev
/
PhaseConfig.json
277 lines (277 loc) · 20.6 KB
/
PhaseConfig.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
{
"DemandAnalysis": {
"assistant_role_name": "Chief Product Officer",
"user_role_name": "Chief Executive Officer",
"phase_prompt": [
"ChatDevは,以前に次の形式の製品を作成しています:",
"画像:折れ線グラフ,棒グラフ,フローチャート,クラウドチャート,ガントチャートなどで情報を表示できます.",
"ドキュメント:.docxファイルを介して情報を提示できます.",
"パワーポイント:.pptxファイルを介して情報を提示できます.",
"エクセル:.xlsxファイルを介して情報を提示できます.",
"PDF:.pdfファイルを介して情報を提示できます.",
"ウェブサイト:.htmlファイルを介して,個人の履歴書,チュートリアル,製品,またはアイデアを提示できます.",
"アプリケーション:Pythonを介して視覚化されたゲーム,ソフトウェア,ツールなどを実装できます.",
"ダッシュボード:リアルタイム情報を視覚化するパネルを表示できます.",
"マインドマップ:関連する概念を中心概念の周りに配置して,アイデアを表現できます.",
"{assistant_role}として,新しいユーザーの要求を満たし,製品が実現可能であるために,どの製品モダリティを望むか決定するために私と議論を続ける必要がありますか?",
"製品モダリティのみについて議論し,他のことについては議論しないことに注意してください!私たち全員が意見を述べ,議論の結果に全員が同意したら,私たちの誰かが <INFO> で始まる1行だけで議論を積極的に終了する必要があります.その後,最終的な製品モダリティを他の言葉なしで続けます.例えば,\"<INFO> PowerPoint\"などです."
]
},
"LanguageChoose": {
"assistant_role_name": "Chief Technology Officer",
"user_role_name": "Chief Executive Officer",
"phase_prompt": [
"以下の新しいユーザーのタスクといくつかの創造的なブレインストーミングアイデアに基づいて:",
"タスク:\"{task}\".",
"モダリティ:\"{modality}\".",
"アイデア:\"{ideas}\".",
"我々は,プログラミング言語を介して実行可能なソフトウェアを実装することで,このタスクを完了することに決めました.",
"{assistant_role}として,新しいユーザーの要求を満たし,ソフトウェアを実現可能にするために,具体的なプログラミング言語を提案する必要があります.Pythonでこのタスクを完了できる場合はPythonと回答してください.それ以外の場合は,別のプログラミング言語(例:Java,C++など)を回答してください.",
"対象となるプログラミング言語についてのみ議論し,他のことについては議論しないことに注意してください!私たち全員が意見を述べ,議論の結果に全員が同意したら,私たちの誰かが議論を積極的に終了し,議論した最良のプログラミング言語を他の言葉や理由なしに結論づけ,次の形式を使用して1行だけ返す必要があります:\"<INFO> *\" ここで \"*\" はプログラミング言語を表します."
]
},
"Coding": {
"assistant_role_name": "Programmer",
"user_role_name": "Chief Technology Officer",
"phase_prompt": [
"新しいユーザーのタスクと私たちのソフトウェア設計に従って:",
"タスク: \"{task}\".",
"モダリティ: \"{modality}\".",
"プログラミング言語: \"{language}\"",
"アイデア:\"{ideas}\"",
"{language}を介して複数のファイルで実装される実行可能なソフトウェアを通じてタスクを完了することに決定しました.{assistant_role}として,新しいユーザーの要求を満たすために,一つまたは複数のファイルを記述し,最終的にすべてのアーキテクチャの詳細がコードとして実装されていることを確認する必要があります.{gui}",
"ステップバイステップで考え,正しい決定に至る理由を自分自身で考え,正しくやることを確認してください.",
"まず,必要なコアクラス,関数,メソッドの名前と,それらの目的についての簡単なコメントを示します.",
"次に,完全なコードを含む各ファイルの内容を出力します.各ファイルは,以下のトークンが置き換えられたマークダウンコードブロック形式に厳密に従う必要があります.ここで「FILENAME」はファイル拡張子を含む小文字のファイル名,「LANGUAGE」はプログラミング言語,「DOCSTRING」は特定のコードセグメントを文書化するためにソースコードで指定された文字列リテラル,「CODE」は元のコードです:",
"FILENAME",
"```LANGUAGE",
"'''",
"DOCSTRING",
"'''",
"CODE",
"```",
"「main」ファイルから始めて,そのファイルにインポートされるもの,その後に続くものへと進んでください.",
"コードは完全に機能するものであるべきです.すべての関数を実装してください.Pythonの「pass」のようなプレースホルダーは使用しないでください."
]
},
"ArtDesign": {
"assistant_role_name": "Programmer",
"user_role_name": "Chief Creative Officer",
"phase_prompt": [
"開発されたソースコードと対応するテストレポートは以下の通りです: ",
"タスク: \"{task}\".",
"プログラミング言語: \"{language}\"",
"ソースコード:",
"\"{codes}\"",
"各ファイルはマークダウンコードブロック形式に厳密に従う必要があり,以下のトークンは「FILENAME」がファイル拡張子を含む小文字のファイル名,「LANGUAGE」がプログラミング言語,「DOCSTRING」が特定のコードセグメントを文書化するためにソースコードで指定された文字列リテラル,「CODE」が元のコードになるように置き換えられる必要があります:",
"FILENAME",
"```LANGUAGE",
"'''",
"DOCSTRING",
"'''",
"CODE",
"```",
"{assistant_role}として,新しいユーザーの要求に応え,ソフトウェアに美しいグラフィカルユーザーインターフェース(GUI)を装備するために,GUI装飾のための多くの装飾画像の設計と議論を行います.現在,異なる画像で装飾されることを検討されているGUI内の機能的に独立した要素をリストアップすることによってGUIの美化について議論を続けています.例えば,電卓の10桁(0-9)は機能的に独立しています.",
"回答する際には,「FILENAME.png: DESCRIPTION」の形式を使用してください.ここで「FILENAME」は画像のファイル名で,「DESCRIPTION」は独立要素の詳細な説明を示します.例えば:",
"'''",
"button_1.png: 「1」という数字のボタン.",
"button_multiply.png: 乗算記号(\"*\")のボタン.",
"background.png: 囲碁の背景色を装飾する",
"'''",
"可能な限り多くの機能的に独立した要素をリストアップしてください."
]
},
"ArtIntegration": {
"assistant_role_name": "Programmer",
"user_role_name": "Chief Creative Officer",
"phase_prompt": [
"開発されたソースコードと対応するテストレポートは以下の通りです: ",
"タスク: \"{task}\".",
"プログラミング言語: \"{language}\"",
"ソースコード:",
"\"{codes}\"",
"各ファイルはマークダウンコードブロック形式に厳密に従う必要があり,以下のトークンは「FILENAME」がファイル拡張子を含む小文字のファイル名,「LANGUAGE」がプログラミング言語,「DOCSTRING」が特定のコードセグメントを文書化するためにソースコードで指定された文字列リテラル,「CODE」が元のコードになるように置き換えられる必要があります:",
"FILENAME",
"```LANGUAGE",
"'''",
"DOCSTRING",
"'''",
"CODE",
"```",
"{assistant_role}として,新しいユーザーの要求に応え,ソフトウェアに美しいグラフィカルユーザーインターフェース(GUI)を装備するために,私たちのデザインした画像をGUI装飾に取り入れます.ここにはいくつかの高品質な既製の画像と対応する説明があります:",
"{images}",
"デザインされた画像は256x256ピクセルの固定サイズであり,画像はすべてのPythonファイルと同じディレクトリに配置されています.これらの画像をGUIのサイズに応じて動的にスケーリングし,「self.*」を使用して自動ガベージコレクションによって引き起こされる表示関連の問題を避けてください.例えば:",
"```",
"self.image = ImageTk.PhotoImage(Image.open(\"./image.png\").resize((50, 50)))",
"```",
"今,GUIをより美しく創造的にするために,いくつかまたはすべての画像をGUIに取り入れてください.上記の必要な形式に厳密に従ってコードを出力します."
]
},
"CodeComplete": {
"assistant_role_name": "Programmer",
"user_role_name": "Chief Technology Officer",
"phase_prompt": [
"以下にリストアップされている新しいユーザーのタスクと私たちのソフトウェア設計に従って:",
"タスク: \"{task}\".",
"モダリティ: \"{modality}\".",
"プログラミング言語: \"{language}\"",
"コード:",
"\"{codes}\"",
"未実装ファイル:",
"\"{unimplemented_file}\"",
"私たちのソフトウェアでは,各ファイルはマークダウンコードブロック形式に厳密に従い,以下のトークンは「FILENAME」がファイル拡張子を含む小文字のファイル名,「LANGUAGE」がプログラミング言語,「DOCSTRING」が特定のコードセグメントを文書化するためにソースコードで指定された文字列リテラル,「CODE」が元のコードになるように置き換えられる必要があります:",
"FILENAME",
"```LANGUAGE",
"'''",
"DOCSTRING",
"'''",
"CODE",
"```",
"{assistant_role}として,開発されたソフトウェアの完全な機能を満たすために,未実装クラスを含む{unimplemented_file}ファイルのすべてのメソッドを実装する必要があります.現在,{unimplemented_file}のすべてのメソッドと必要な他のコードを実装し,必要な形式に厳密に従って完全に実装されたコードを出力してください."
]
},
"CodeReviewComment": {
"assistant_role_name": "Code Reviewer",
"user_role_name": "Programmer",
"phase_prompt": [
"新しいユーザーのタスクと私たちのソフトウェア設計に従って:",
"タスク: \"{task}\".",
"モダリティ: \"{modality}\".",
"プログラミング言語: \"{language}\"",
"アイデア: \"{ideas}\"",
"コード:",
"\"{codes}\"",
"{assistant_role}として,ソフトウェアをさらなるコーディングなしで直接操作可能にするために,ChatDevは以下の規則を定めました:",
"1) 参照されるすべてのクラスをインポートすること;",
"2) すべてのメソッドを実装すること;",
"3) すべてのメソッドに必要なコメントを付けること;",
"4) 潜在的なバグがないこと;",
"5) プロジェクト全体がユーザーによって提案されたタスクに適合していること;",
"6) 最も重要なことは,コードのエラーだけでなく,コードのロジックもチェックし,ユーザーが要件の機能を失うことなく生成されたソフトウェアと対話できるようにすること;",
"現在,上記の規則を一つずつチェックし,コードを詳細にレビューし,コードに関する最も優先度の高いコメントを提案し,修正方法についての指示を出してください.最も優先度の高いコメントと修正に関する提案を教えてください.コードが完璧でコメントがない場合は,「<INFO> Finished」という1行だけを返してください."
]
},
"CodeReviewModification": {
"assistant_role_name": "Programmer",
"user_role_name": "Code Reviewer",
"phase_prompt": [
"新しいユーザーのタスク,私たちが設計した製品モダリティ,言語,アイデアに基づき,開発された初版ソースコードは以下の通りです:",
"タスク: \"{task}\".",
"モダリティ: \"{modality}\".",
"プログラミング言語: \"{language}\"",
"アイデア: \"{ideas}\"",
"コード: ",
"\"{codes}\"",
"コードに対するコメント:",
"\"{comments}\"",
"ソフトウェアでは,各ファイルはマークダウンコードブロック形式に厳密に従い,以下のトークンは「FILENAME」がファイル拡張子を含む小文字のファイル名,「LANGUAGE」がプログラミング言語,「DOCSTRING」が特定のコードセグメントを文書化するためにソースコードで指定された文字列リテラル,「CODE」が元のコードになるように置き換えられる必要があります.形式:",
"FILENAME",
"```LANGUAGE",
"'''",
"DOCSTRING",
"'''",
"CODE",
"```",
"{assistant_role}として,新しいユーザーの要求に応え,ソフトウェアを創造的で実行可能かつ堅牢にするために,コメントに従って対応するコードを修正する必要があります.その後,コメントに基づいてすべてのバグを修正した完全で完全なコードを出力します.必要な形式に厳密に従ってすべてのコードを返してください."
]
},
"TestErrorSummary": {
"assistant_role_name": "Programmer",
"user_role_name": "Software Test Engineer",
"phase_prompt": [
"開発されたソースコードと対応するテストレポートは以下の通りです: ",
"プログラミング言語: \"{language}\"",
"ソースコード:",
"\"{codes}\"",
"ソースコードのテストレポート:",
"\"{test_reports}\"",
"私のテストレポートによると,問題を引き起こすバグを特定し,まとめてください."
]
},
"TestModification": {
"assistant_role_name": "Programmer",
"user_role_name": "Software Test Engineer",
"phase_prompt": [
"開発されたソースコードと対応するテストレポートは以下の通りです: ",
"プログラミング言語: \"{language}\"",
"ソースコード:",
"\"{codes}\"",
"ソースコードのテストレポート:",
"\"{test_reports}\"",
"テストレポートのエラーサマリー:",
"\"{error_summary}\"",
"各ファイルはマークダウンコードブロック形式に厳密に従う必要があり,以下のトークンは「FILENAME」がファイル拡張子を含む小文字のファイル名,「LANGUAGE」がプログラミング言語,「DOCSTRING」が特定のコードセグメントを文書化するためにソースコードで指定された文字列リテラル,「CODE」が元のコードになるように置き換えられる必要があります:",
"FILENAME",
"```LANGUAGE",
"'''",
"DOCSTRING",
"'''",
"CODE",
"```",
"{assistant_role}として,新しいユーザーの要求を満たし,ソフトウェアをスムーズかつ堅牢に実行させるために,エラーサマリーに基づいてコードを修正する必要があります.現在,上記で例示された形式を使用し,エラーサマリーに基づいて問題のあるコードを修正してください.テストレポートと対応する説明に基づいて修正したコードを出力してください(FILENAME,LANGUAGE,DOCSTRING,CODEを含む上記で定義された形式に厳密に従ってください.不完全な「TODO」コードは厳禁です).バグが報告されていない場合は,「<INFO> Finished」という1行だけを返してください."
]
},
"EnvironmentDoc": {
"assistant_role_name": "Programmer",
"user_role_name": "Chief Technology Officer",
"phase_prompt": [
"新しいユーザーのタスクと開発されたコードは以下の通りです: ",
"タスク: \"{task}\".",
"モダリティ: \"{modality}\".",
"プログラミング言語: \"{language}\"",
"アイデア: \"{ideas}\"",
"コード: ",
"\"{codes}\"",
"{assistant_role}として,プロジェクトが適切に実行されるために必要な依存関係やパッケージを指定するrequirements.txtファイルを作成する必要があります.これは,Pythonプロジェクトで一般的に使用され,プロジェクトの依存関係を標準化された形式で文書化し,管理する方法として機能します.例えば:",
"requirements.txt",
"```",
"numpy==1.19.2",
"pandas>=1.1.4",
"```",
"上記のコードとファイル形式に従って,プロジェクトが適切に実行されるために必要な依存関係やパッケージを指定するrequirements.txtファイルを作成してください."
]
},
"Manual": {
"assistant_role_name": "Chief Product Officer",
"user_role_name": "Chief Executive Officer",
"phase_prompt": [
"新しいユーザーのタスク,開発されたコード,および必要()な依存関係は以下の通りです: ",
"タスク: \"{task}\".",
"モダリティ: \"{modality}\".",
"プログラミング言語: \"{language}\"",
"アイデア: \"{ideas}\"",
"コード: ",
"\"{codes}\"",
"要件:",
"\"{requirements}\"",
"{assistant_role}として,Markdownを使用して,ソフトウェアの使用方法に関する詳細なユーザーマニュアルであるmanual.mdファイルを書く必要があります.これには,ソフトウェアの主な機能の紹介,環境依存関係のインストール方法,および使用方法/プレイ方法が含まれます.例えば:",
"manual.md",
"```",
"# LangChain",
"LLMsを通じてアプリケーションを構築するためのコンポーザビリティ",
"JS/TS版をお探しですか? LangChain.jsをチェックしてください.",
"**本番サポート:** LangChainを本番環境に移行する際には,より包括的なサポートを提供したいと考えています.",
"このフォームに記入していただければ,専用のサポートSlackチャンネルを設定します.",
"## クイックインストール",
"`pip install langchain`",
"または",
"`conda install langchain -c conda-forge`",
"## 🤔 これは何?",
"大規模言語モデル(LLMs)は,変革的なテクノロジーとして台頭しており,開発者は以前にはできなかったアプリケーションを構築することができます.しかし,これらのLLMを単独で使用するだけでは,本当に強力なアプリを作成するには不十分です - 本当の力は,他の計算や知識のソースと組み合わせることができるときに現れます.",
"このライブラリは,そのようなタイプのアプリケーションの開発を支援することを目指しています.これらのアプリケーションの一般的な例には,以下のものがあります:",
"**❓ 特定の文書に対する質問応答**",
"- ドキュメンテーション",
"- エンドツーエンドの例:Notionデータベースに対する質問応答",
"**🤖 エージェント**",
"- ドキュメンテーション",
"- エンドツーエンドの例:GPT+WolframAlpha",
"## 📖 ドキュメンテーション",
"以下の完全なドキュメントについては[こちら](https://python.langchain.com)を参照してください:",
"- 入門(インストール,環境設定,簡単な例)",
"- ハウツー例(デモ,統合,ヘルパー関数)",
"- リファレンス(完全なAPIドキュメント)",
"- リソース(コアコンセプトの高レベルな説明)",
"```"
]
}
}