Skip to content

Commit 03d0e33

Browse files
committed
feat: 更新prompt,让模型思考的更加全面
1 parent e946f3a commit 03d0e33

File tree

1 file changed

+59
-28
lines changed

1 file changed

+59
-28
lines changed

src/deepseekApi.ts

Lines changed: 59 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -203,7 +203,30 @@ export async function callDeepSeekFixApi(
203203
let messages_body = lastMessageBody;
204204

205205
messages_body.push(
206-
{ role: 'user', content:`接收的数据格式有错误: ${errorInfo}, 仔细检查,分析输出错误的原因。理解改动的原义,用最小的改动修正错误。然后重新完整输出, 注意不能有省略:`}
206+
{ role: 'user', content:`你以上提供的数据格式存在错误: ${errorInfo}
207+
请你仔细检查数据,分析并找出所有错误原因,并核实错误类型。请按照下面的格式输出,要求如下:
208+
209+
【第一步:错误原因分析】
210+
请逐项列出所有错误原因,每项必须包括:
211+
1. 错误类型及原因描述(详细说明为何出错)
212+
2. 对应的文件路径(精确到文件)
213+
3. 错误的写法(直接引用错误代码,指明具体位置)
214+
4. 正确的写法(建议的修正代码,必须准确对应错误部分)
215+
216+
【第二步:最小改动修正】
217+
在保证原有正确部分完整保留的前提下,仅对错误部分做最小改动。要求:
218+
- 详细说明每处改动的理由
219+
- 列出每个文件修改的具体位置和修改内容,确保不遗漏任何正确部分
220+
221+
【第三步:完整输出】
222+
请输出最终修正后的完整数据,内容必须包含:
223+
- 修正后的错误部分(附带详细错误原因和修改说明)
224+
- 原有正确部分(完整输出,绝对不省略任何内容)
225+
226+
【第四步:总结说明】
227+
在输出完完整数据后,请总结以上步骤,归纳错误原因和修改方案,并确认所有文件路径及代码位置均正确无误。
228+
229+
请严格按照以上步骤输出,确保先详细列出错误原因,再输出完整修正后的数据,不要只输出错误部分。`}
207230
);
208231

209232
let fullResponse = '';
@@ -264,33 +287,41 @@ export async function queryCodeReDesign(
264287
abortSignal?: AbortSignal
265288
): Promise<string | null> {
266289
const requestContent = `
267-
268-
这是 CVB 格式的说明:
269-
${Cvb.getFormatDescription()}
270-
271-
这是 TCVB 格式的说明:
272-
${TCVB.getFormatDescription()}
273-
274-
请读取以下 CVB 格式的代码,按照需求写代码,
275-
注意:
276-
如果我要你移动代码,其实是让你去修改原始代码,重新封装到新位置,所以不是让你简单的把代码拷贝到新为止
277-
记住你是个代码重构助手
278-
任何时候都要保证修改完的代码是完整的可执行的,不能有省略
279-
先输出你对需求涉及的相关代码的理解
280-
再输出你的方案大纲,一定一定要完整列出你准备修改哪个文件路径!不能偷懒,计划要做详细。你看代码的时候要用bfs而不是dfs的思维, 要做按照互相关系层级缩进的笔记,方便你整理思路。
281-
用尽量少的改动达到需求目的
282-
最后的输出修改内容, 必须要遵守TCVB格式,用来做差量修改合成CVB (为了节省通讯用的数据流量),
283-
尤其注意,输出除了TCVB的正文内容以外,别的地方出现TCVB的开始符和结束符(比如一些关于TCVB的附加说明,或者正好字符串前缀和TCVB符号一样)要做转义,
284-
以免接收的时候被错误的当成TCVB块(比如前面加入一些空格)
285-
(注意,TCVB会被用来和原始的CVB合并成新CVB的,所以输出格式要准确,用于匹配的字符串要精确)
286-
287-
输入代码:
288-
${cvbContent}
289-
290-
这是我的需求:
291-
${userRequest}
292-
293-
请输出思路,最后输出TCVB格式的代码:
290+
【格式说明】
291+
- CVB 格式说明:${Cvb.getFormatDescription()}
292+
- TCVB 格式说明:${TCVB.getFormatDescription()}
293+
294+
【任务说明】
295+
请读取以下 CVB 格式代码,并根据需求修改代码。注意:
296+
1. 如果需求涉及“移动代码”,请务必修改原始代码,将代码重新封装到新位置,而非简单复制;
297+
2. 修改后的代码必须完整、可执行,不能有任何省略;
298+
3. 输出内容必须严格遵守 TCVB 格式(仅正文部分含 TCVB 标记,其他地方如有 TCVB 开始或结束符需转义),以确保后续合并正确;
299+
4. 注意不要将某文件的修改内容误认为是其他文件,请一条一条列出具体修改项及对应文件路径。
300+
301+
【输出要求】
302+
1. 先输出你对需求及相关代码的理解,请按层级缩进列出笔记,便于整理思路;
303+
2. 再输出详细的方案大纲,格式如下:
304+
需求理解:
305+
306+
查询资料:
307+
列出每个关键修改点所在的文件路径
308+
修改方案:
309+
文件路径1:
310+
修改的关键代码
311+
文件路径2:
312+
修改的关键代码
313+
314+
最后检查:
315+
对以上输出的方案大纲进行反思,重新阅读输入代码,结合以上方案大纲,逐条检查有没有和原文对不上的地方。检查方案是否完备、文件路径是否正确,设计思路是否无误,如有问题请提出修正意见
316+
3. 请确保输出中既包含错误部分的修正说明,又完整保留原有正确部分,不得遗漏任何内容;
317+
4. 用最小改动实现需求目的。
318+
319+
【输入部分】
320+
- 输入代码:${cvbContent}
321+
- 需求描述:${userRequest}
322+
323+
【最终输出】
324+
请先输出思路与方案大纲,最后汇总输出符合 TCVB 格式的精确代码。
294325
`;
295326

296327
return callDeepSeekApi(requestContent, undefined, outputChannel, true, '## END_TCVB', abortSignal); // 添加结束字符串

0 commit comments

Comments
 (0)