本技术参考提供了构成 gpt-engineer 系统的核心组件的详细文档。它涵盖了实现 AI 辅助代码生成和改进的内部架构、数据结构和关键接口。有关使用系统的用户文档,请参阅 用户指南。
gpt-engineer 系统围绕模块化组件设计,这些组件将 AI 交互、文件处理、代码生成和执行的关注点分开。以下是系统架构的概述。
来源: gpt_engineer/applications/cli/cli_agent.py36-101 gpt_engineer/core/ai.py50-117 gpt_engineer/core/base_memory.py1-16 gpt_engineer/core/base_agent.py17-31 gpt_engineer/core/base_execution_env.py8-42
工作流程从主要的 CLI 入口点开始,该入口点处理用户命令并协调代码生成或改进过程。
来源: gpt_engineer/applications/cli/main.py70-560 gpt_engineer/applications/cli/cli_agent.py152-232
AI 类负责管理与 GPT-4、Claude 或本地模型等语言模型的通信。它处理对话创建、消息格式化、令牌跟踪以及与 LLM 提供商的通信。
AI 类提供与语言模型交互的方法:
start():使用系统提示和用户消息开始对话。next():使用新消息推进对话。backoff_inference():处理具有指数退避的 LLM API 调用,以进行速率限制。该系统支持多种模型提供商:
令牌使用情况使用 `TokenUsageLog` 类进行跟踪,该类:
来源: gpt_engineer/core/ai.py50-379 gpt_engineer/core/token_usage.py31-297
Agent 系统负责协调代码生成和改进过程。
Agent 处理的主要代码生成步骤包括:
几个函数实现了不同的代码生成方法:
| 功能 | 目的 | 模式 |
|---|---|---|
gen_code | 标准代码生成。 | 默认 |
lite_gen | 简化生成,使用最少的提示。 | Lite |
clarified_gen | 生成前的交互式澄清。 | Clarify |
self_heal | 自动修复失败的代码。 | Self-healing |
improve_fn | 对现有代码进行改进。 | Improve |
来源: gpt_engineer/applications/cli/cli_agent.py36-232 gpt_engineer/core/default/steps.py63-397 gpt_engineer/tools/custom_steps.py40-233
文件处理和存储系统负责代码的存储、解析和修改方式。
FilesDict 是表示代码文件集合的核心数据结构。
内存系统为代码文件和日志提供持久性。
改进过程使用 diffs 来表示对代码的更改。
来源: gpt_engineer/core/default/steps.py315-360 gpt_engineer/core/base_memory.py1-16
执行环境负责运行生成的代码以测试其功能。
来源: gpt_engineer/core/base_execution_env.py8-42 gpt_engineer/core/default/steps.py205-268
提示系统负责管理用于指导 LLM 代码生成的模板提示(预提示)。
系统为不同操作构造提示。
来源: gpt_engineer/core/preprompts_holder.py7-29 gpt_engineer/core/default/steps.py75-118
CLI 接口是用户与系统交互的主要入口点。
| 参数 | 标志 | 描述 |
|---|---|---|
project_path | (位置参数) | 项目目录的路径。 |
model | -m/--model | LLM 模型标识符。 |
temperature | -t/--temperature | 控制 LLM 输出的随机性。 |
improve_mode | -i/--improve | 启用改进模式。 |
lite_mode | -l/--lite | 启用 Lite 生成模式。 |
clarify_mode | -c/--clarify | 启用澄清模式。 |
self_heal_mode | -sh/--self-heal | 启用自我修复模式。 |
azure_endpoint | -a/--azure | Azure OpenAI 端点 URL。 |
use_custom_preprompts | --use-custom-preprompts | 使用自定义提示。 |
prompt_file | --prompt_file | 提示文件的路径。 |
skip_file_selection | -s/--skip-file-selection | 在改进模式下跳过文件选择。 |
来源: gpt_engineer/applications/cli/main.py281-425 gpt_engineer/applications/cli/main.py432-557
该系统包含核心组件的自动化测试。
测试的组织方式与组件结构相匹配:
为了进行测试,系统使用了关键组件的 Mock 实现。
来源: tests/core/default/test_steps.py79-334 tests/applications/cli/test_cli_agent.py19-154
该系统通过统一的接口与多个 LLM 提供商集成。
该系统通过 `DiskMemory` 和 `DiskExecutionEnv` 类与本地文件系统集成。
来源: gpt_engineer/core/ai.py330-379 gpt_engineer/applications/cli/main.py456-465
刷新此 Wiki
最后索引时间2025 年 4 月 18 日(a90fcd)