@@ -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