此页面介绍了如何使用 gpt-engineer 通过有针对性的更改来改进现有代码库。与涵盖从头开始创建新项目的基本用法不同,改进模式会对现有文件应用特定更改,以增强、调试或为您的代码添加功能。
改进过程遵循以下关键步骤:
这种方法可以对代码库进行精确、增量式的改进,同时保持现有代码结构的完整性。
来源:gpt_engineer/applications/cli/main.py428-551 gpt_engineer/core/default/steps.py341-360
要改进现有代码,请运行 gpt-engineer 并使用 -i 或 --improve 标志。
这将激活改进模式,该模式会使用与代码生成模式不同的提示与 LLM 进行交互,并使用增强的文件处理系统来处理代码更改。
改进模式的附加可选标志
| 标志 | 描述 |
|---|---|
--skip-file-selection 或 -s | 跳过交互式文件选择并使用生成的 TOML 文件。 |
--diff_timeout N | 设置 diff 正则表达式超时(默认值:3)。 |
来源:gpt_engineer/applications/cli/main.py282-366
当您运行改进命令时,gpt-engineer 会要求您选择要考虑改进的文件。您可以单独选择文件,也可以使用预定义的文件组。
来源:gpt_engineer/applications/cli/main.py516-520 gpt_engineer/applications/cli/file_selector.py
改进模式使用专门的 diff 系统来表示、验证和应用代码更改。该系统使用统一的 Git diff 格式,该格式提供了一种精确指定行级更改的方法。
来源:gpt_engineer/core/diff.py44-420 gpt_engineer/core/chat_to_files.py69-120 gpt_engineer/core/files_dict.py19-89
改进过程由 steps.py 文件中的几个关键函数驱动。
improve_fn:协调改进过程的主函数。_improve_loop:处理与 AI 的交互,并在需要时优化 diff。salvage_correct_hunks:处理、验证和应用 diff。handle_improve_mode:管理整体改进过程(包括错误处理)的顶层函数。来源:gpt_engineer/core/default/steps.py271-397
改进模式使用统一的 Git diff 格式来传达更改。以下是预期格式的示例:
格式包括:
---)和更改后(+++)的文件路径。@@ -12,3 +12,4 @@),指示更改的起始行和长度。- 开头)。+ 开头)。该系统还可以处理新文件的创建。
来源:gpt_engineer/preprompts/file_format_diff1-42
改进系统的一个关键功能是它能够验证和更正可能与原始代码不完全匹配的 diff。此过程涉及:
这种强大的验证可确保即使 LLM 对代码结构的理解不完美,也可以应用更改。
来源:gpt_engineer/core/diff.py288-378 gpt_engineer/core/chat_to_files.py123-161
在解析复杂的 diff 时,正则表达式匹配可能会超时。您可以使用 --diff_timeout 参数调整超时值。
这将超时时间从默认的 3 秒增加到 5 秒,这可以帮助处理更大或更复杂的 diff。
来源:gpt_engineer/applications/cli/main.py376-380 gpt_engineer/core/chat_to_files.py123-161
改进过程可以在将代码发送到 LLM 之前自动对其进行 linting。这确保代码遵循标准的格式约定,从而使 AI 更容易理解和修改。
Linting 在文件选择过程中进行控制,并对代码应用语言适用的格式化程序。
来源:gpt_engineer/applications/cli/main.py521-523
如果 AI 生成了无效的 diff,系统会尝试通过将详细的错误信息发送回 AI 并请求更正来优化它们。
这种重试机制提高了生成更改的质量,并处理了初始 diff 无法正确应用的边缘情况。
来源:gpt_engineer/core/default/steps.py324-337
改进模式与 gpt-engineer 系统的其余部分进行了深度集成。
来源:gpt_engineer/applications/cli/cli_agent.py185-232 gpt_engineer/core/default/steps.py271-312
为了最有效地改进代码,请遵循以下建议:
改进模式是增强现有代码库同时保持其结构和完整性的强大工具。通过使用精确的 diff 而不是从头开始重新生成文件,它能够实现由 AI 指导的、专注的、增量式的改进。
刷新此 Wiki
最后索引时间2025 年 4 月 18 日(a90fcd)