forked from OpenBMB/ChatDev
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathPhaseConfig.json
More file actions
272 lines (272 loc) · 14.3 KB
/
PhaseConfig.json
File metadata and controls
272 lines (272 loc) · 14.3 KB
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
{
"DemandAnalysis": {
"assistant_role_name": "首席产品官",
"user_role_name": "首席执行官",
"phase_prompt": [
"ChatDev之前制作的产品形式如下:",
"图片:可以通过折线图、柱状图、流程图、云图、甘特图等形式呈现信息。",
"文档:可以通过.docx文件呈现信息。",
"PowerPoint:可以通过.pptx文件呈现信息。",
"Excel:可以通过.xlsx文件呈现信息。",
"PDF:可以通过.pdf文件呈现信息。",
"网站:可以通过.html文件呈现个人简历、教程、产品或想法。",
"应用程序:可以通过Python实现可视化游戏、软件、工具等。",
"仪表板:可以显示实时信息的面板。",
"思维导图:可以围绕核心概念安排相关概念来表示思想。",
"作为{assistant_role},为了满足新用户的需求且产品应该可实现,你应该与我保持讨论,决定我们想要的产品形式是什么?",
"请注意,我们必须仅讨论产品形式,不得讨论其他任何事项!一旦我们所有人都表达了意见并且一致同意讨论结果,任何一方都必须主动终止讨论,只回复一行,以单词<INFO>开头,后跟我们的最终产品形式,不得附加任何其他单词,例如\"<INFO> PowerPoint\"。"
]
},
"LanguageChoose": {
"assistant_role_name": "首席技术官",
"user_role_name": "首席执行官",
"phase_prompt": [
"根据新用户的任务和下面列出的一些创意头脑风暴:",
"Task: \"{task}\".",
"Modality: \"{modality}\".",
"Ideas: \"{ideas}\".",
"我们决定通过一种编程语言实现可执行软件来完成任务。",
"作为{assistant_role},为了满足新用户的需求并使软件可实现,你应该提出一个具体的编程语言。如果Python可以通过Python完成此任务,请回答Python;否则,请回答其他编程语言(例如Java、C++等)。",
"请注意,我们必须仅讨论目标编程语言,不得讨论其他任何事项!一旦我们所有人都表达了意见并且一致同意讨论结果,任何一方都必须主动终止讨论,并总结我们讨论的最佳编程语言,不得附加任何其他单词或理由,只需返回一行,使用格式:<INFO> *,其中\"*\"代表一种编程语言。"
]
},
"Coding": {
"assistant_role_name": "程序员",
"user_role_name": "首席技术官",
"phase_prompt": [
"根据新用户的任务和我们列出的软件设计:",
"Task: \"{task}\".",
"Task description: \"{description}\".",
"Modality: \"{modality}\".",
"Programming Language: \"{language}\"",
"Ideas:\"{ideas}\"",
"我们决定通过{language}实现多文件的可执行软件来完成任务。作为{assistant_role},为了满足新用户的需求,你应该编写一个或多个文件,并确保最终所有架构的细节都以代码形式实现。",
"逐步思考并合理推理,确保我们做对了。",
"你将首先列出核心类、函数、方法的名称,以及它们的目的的简要注释。",
"然后你将输出每个文件的内容,包括完整的代码。每个文件必须严格遵循Markdown代码块格式,其中以下标记必须替换,以使\"FILENAME\"成为包括文件扩展名的小写文件名,\"LANGUAGE\"为编程语言,\"DOCSTRING\"为在源代码中指定的用于记录特定代码段的字符串文字,\"CODE\"为原始代码:",
"FILENAME",
"```LANGUAGE",
"'''",
"DOCSTRING",
"'''",
"CODE",
"```",
"你将从\"main\"文件开始,然后继续到由该文件导入的文件,依此类推。",
"请注意,代码应该是完全可用的。确保实现所有函数。不得使用占位符(例如Python中的'pass')。"
]
},
"ArtDesign": {
"assistant_role_name": "程序员",
"user_role_name": "首席创意官",
"phase_prompt": [
"我们开发的源代码及相应的测试报告如下:",
"Task: \"{task}\".",
"Programming Language: \"{language}\"",
"Source Codes:",
"\"{codes}\"",
"请注意,每个文件必须严格遵循Markdown代码块格式,其中以下标记必须替换,以使\"FILENAME\"成为包括文件扩展名的小写文件名,\"LANGUAGE\"为编程语言,\"DOCSTRING\"为在源代码中指定的用于记录特定代码段的字符串文字,\"CODE\"为原始代码:",
"FILENAME",
"```LANGUAGE",
"'''",
"DOCSTRING",
"'''",
"CODE",
"```",
"作为{assistant_role},为了满足新用户的需求并为软件配备一个漂亮的图形用户界面(GUI),我们将通过列出GUI装饰中考虑用不同图片装饰的一些功能独立元素来继续讨论和设计GUI的美化。例如,计算器中的十个数字(0-9)是功能上独立的。",
"要回答,请使用以下格式:\"FILENAME.png: DESCRIPTION\",其中\"FILENAME\"是图像的文件名,\"DESCRIPTION\"表示独立元素的详细描述。例如:",
"'''",
"button_1.png: 上面有数字\"1\"的按钮。",
"button_multiply.png: 上面有乘号(\"*\")的按钮。",
"background.png: 用于装饰Go游戏的背景色。",
"'''",
"现在,尽可能多地列出所有功能独立的元素。"
]
},
"ArtIntegration": {
"assistant_role_name": "程序员",
"user_role_name": "首席创意官",
"phase_prompt": [
"我们开发的源代码及相应的测试报告如下:",
"Task: \"{task}\".",
"Programming Language: \"{language}\"",
"Source Codes:",
"\"{codes}\"",
"请注意,每个文件必须严格遵循Markdown代码块格式,其中以下标记必须替换,以使\"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,使其更加美观和创意。输出的代码必须严格遵循上述所需的格式。"
]
},
"CodeComplete": {
"assistant_role_name": "程序员",
"user_role_name": "首席技术官",
"phase_prompt": [
"根据新用户的任务和我们列出的软件设计:",
"Task: \"{task}\".",
"Modality: \"{modality}\".",
"Programming Language: \"{language}\"",
"Codes:",
"\"{codes}\"",
"Unimplemented File:",
"\"{unimplemented_file}\"",
"在我们的软件中,每个文件必须严格遵循Markdown代码块格式,其中以下标记必须替换,以使\"FILENAME\"成为包括文件扩展名的小写文件名,\"LANGUAGE\"为编程语言,\"DOCSTRING\"为在源代码中指定的用于记录特定代码段的字符串文字,\"CODE\"为原始代码:",
"FILENAME",
"```LANGUAGE",
"'''",
"DOCSTRING",
"'''",
"CODE",
"```",
"作为{assistant_role},为了满足我们开发的软件的完整功能,你必须实现{unimplemented_file}文件中包含的未实现类的所有方法。现在,实现{unimplemented_file}的所有方法以及所有其他所需的代码,然后严格遵循所需的格式输出完全实现的代码。"
]
},
"CodeReviewComment": {
"assistant_role_name": "代码审查员",
"user_role_name": "程序员",
"phase_prompt": [
"根据新用户的任务和我们的软件设计:",
"Task: \"{task}\".",
"Modality: \"{modality}\".",
"Programming Language: \"{language}\"",
"Ideas: \"{ideas}\"",
"Codes:",
"\"{codes}\"",
"作为{assistant_role},为了使软件无需进一步编码即可直接操作,ChatDev已制定了以下规定:",
"1)所有引用的类应该被导入;",
"2)所有方法应该被实现;",
"3)所有方法需要有必要的注释;",
"4)没有潜在的错误;",
"5)整个项目符合用户提出的任务;",
"6)最重要的是,不仅检查代码中的错误,还要检查代码的逻辑。确保用户可以与生成的软件交互,而不会丢失任何要求中的功能;",
"现在,你应该逐一检查上述规定,并详细审查代码,提出一个关于代码的最高优先级的评论,并给出如何修订的指导。告诉我你的最高优先级评论及相应的修改建议。如果代码完美无缺,你对其没有任何评论,请仅返回一行\"<INFO> Finished\"。"
]
},
"CodeReviewModification": {
"assistant_role_name": "程序员",
"user_role_name": "代码审查员",
"phase_prompt": [
"根据新用户的任务、我们设计的产品形式、语言和创意,我们开发的第一版源代码如下:",
"Task: \"{task}\".",
"Modality: \"{modality}\".",
"Programming Language: \"{language}\"",
"Ideas: \"{ideas}\"",
"Codes: ",
"\"{codes}\"",
"Comments on Codes:",
"\"{comments}\"",
"在软件中,每个文件必须严格遵循Markdown代码块格式,其中以下标记必须替换,以使\"FILENAME\"成为包括文件扩展名的小写文件名,\"LANGUAGE\"为编程语言,\"DOCSTRING\"为在源代码中指定的用于记录特定代码段的字符串文字,\"CODE\"为原始代码。格式如下:",
"FILENAME",
"```LANGUAGE",
"'''",
"DOCSTRING",
"'''",
"CODE",
"```",
"作为{assistant_role},为了满足新用户的需求并使软件创意、执行和健壮,你应该根据评论修改相应的代码。然后,根据评论修复所有错误并输出完整的代码。严格按照所需的格式返回所有代码。"
]
},
"TestErrorSummary": {
"assistant_role_name": "程序员",
"user_role_name": "软件测试工程师",
"phase_prompt": [
"我们开发的源代码及相应的测试报告如下:",
"Programming Language: \"{language}\"",
"Source Codes:",
"\"{codes}\"",
"Test Reports of Source Codes:",
"\"{test_reports}\"",
"根据我的测试报告,请定位并总结导致问题的错误。"
]
},
"TestModification": {
"assistant_role_name": "程序员",
"user_role_name": "软件测试工程师",
"phase_prompt": [
"我们开发的源代码及相应的测试报告如下:",
"Programming Language: \"{language}\"",
"Source Codes:",
"\"{codes}\"",
"Test Reports of Source Codes:",
"\"{test_reports}\"",
"Error Summary of Test Reports:",
"\"{error_summary}\"",
"请注意,每个文件必须严格遵循Markdown代码块格式,其中以下标记必须替换,以使\"FILENAME\"成为包括文件扩展名的小写文件名,\"LANGUAGE\"为编程语言,\"DOCSTRING\"为在源代码中指定的用于记录特定代码段的字符串文字,\"CODE\"为原始代码:",
"FILENAME",
"```LANGUAGE",
"'''",
"DOCSTRING",
"'''",
"CODE",
"```",
"作为{assistant_role},为了满足新用户的需求并使软件运行流畅和稳健,你应该根据错误摘要修改代码。现在,根据测试报告修改有问题的代码。输出你根据测试报告修复的代码以及相应的解释(严格遵循上述定义的格式,包括FILENAME、LANGUAGE、DOCSTRING和CODE;严禁使用不完整的\"TODO\"代码)。如果没有报告错误,请仅返回一行\"<INFO> Finished\"。"
]
},
"EnvironmentDoc": {
"assistant_role_name": "程序员",
"user_role_name": "首席技术官",
"phase_prompt": [
"新用户的任务和我们开发的代码如下:",
"Task: \"{task}\".",
"Modality: \"{modality}\".",
"Programming Language: \"{language}\"",
"Ideas: \"{ideas}\"",
"Codes: ",
"\"{codes}\"",
"作为{assistant_role},你应该编写一个requirements.txt文件,该文件通常用于Python项目中指定项目运行所需的依赖项或包。它用作以标准化格式记录和管理项目依赖项的方式。例如:",
"requirements.txt",
"```",
"numpy==1.19.2",
"pandas>=1.1.4",
"```",
"根据上述代码和文件格式,编写一个requirements.txt文件,以指定项目运行所需的依赖项或包。"
]
},
"Manual": {
"assistant_role_name": "首席产品官",
"user_role_name": "首席执行官",
"phase_prompt": [
"新用户的任务、我们开发的代码以及所需的依赖项如下:",
"Task: \"{task}\".",
"Modality: \"{modality}\".",
"Programming Language: \"{language}\"",
"Ideas: \"{ideas}\"",
"Codes: ",
"\"{codes}\"",
"要求:",
"\"{requirements}\"",
"作为{assistant_role},你应该使用Markdown编写一个manual.md文件,这是一个详细的用户手册,用于使用软件,包括介绍软件的主要功能、如何安装环境依赖项以及如何使用。例如:",
"manual.md",
"```",
"# LangChain",
"## 介绍",
"LangChain是一个用于语言处理的开源工具,可以用于文本分析、情感分析等任务。",
"## 安装",
"要使用LangChain,您需要在Python环境中安装以下依赖项:",
"```",
"numpy==1.19.2",
"pandas>=1.1.4",
"```",
"## 如何使用",
"### 文本分析",
"要进行文本分析,请执行以下步骤:",
"1. 打开LangChain软件。",
"2. 选择“文本分析”功能。",
"3. 输入要分析的文本。",
"4. 单击“分析”按钮。",
"5. 查看分析结果。",
"```",
"请根据上述要求,编写一个manual.md文件,详细描述软件的使用说明。"
]
}
}