本指南为希望为gpt-engineer平台做出贡献或扩展其功能的开发者提供了基本信息。它介绍了高层架构、开发工作流程和代码库组织。有关特定子系统的详细信息,请参阅项目结构、开发环境设置和测试与基准测试页面。
gpt-engineer平台围绕模块化架构设计,在核心组件之间分离关注点,同时为用户提供简单的接口。下图显示了主要组件及其关系。
Agent是代码生成和改进过程的核心协调器。该系统使用一个抽象的BaseAgent类,带有两个主要实现:
CliAgent:CLI工具使用的主要代理。它管理AI、内存和执行环境之间的交互。SimpleAgent:用于专业用例的简化代理实现。两种代理类型都实现了两个关键方法:
init(prompt):根据用户提示生成新代码。improve(files_dict, prompt):根据反馈改进现有代码。AI类提供了对不同语言模型提供商的统一接口。它处理:
该系统支持多种LLM提供商,包括OpenAI、Azure OpenAI、Anthropic和开源模型。
内存子系统为生成的代码和交互历史提供持久性。
以下图表说明了代码生成和改进的工作流程。
克隆仓库
使用Poetry安装依赖项
设置预提交钩子
来源:`.pre-commit-config.yaml1-28 `pyproject.toml16-72
该项目遵循模块化架构,包含以下关键目录:
| 目录 | 目的 |
|---|---|
gpt_engineer/ | 核心包,包含主要功能。 |
gpt_engineer/applications/ | 命令行和Web应用程序。 |
gpt_engineer/core/ | 核心组件(代理、AI、文件处理)。 |
gpt_engineer/benchmark/ | 用于测试性能的基准测试系统。 |
tests/ | 项目的测试套件。 |
projects/ | 示例项目和模板。 |
有关每个模块的详细信息,请参阅项目结构页面。
该项目通过以下方式强制执行代码质量:
如果您已设置预提交钩子,这些工具将在您提交代码时自动运行。
来源:`.pre-commit-config.yaml1-28 `pyproject.toml91-114
该项目使用pytest进行测试。运行测试命令:
要排除需要OpenAI API密钥的测试,请执行:
有关测试套件和基准测试系统的详细信息,请参阅测试与基准测试页面。
基准测试系统允许测量不同代理实现对标准化任务的性能。运行基准测试命令:
有关更详细信息,请参阅测试与基准测试页面。
贡献gpt-engineer时,请牢记以下核心设计原则:
有关详细的贡献指南,请参阅Project README