菜单

开发者指南

相关源文件

本指南为希望为gpt-engineer平台做出贡献或扩展其功能的开发者提供了基本信息。它介绍了高层架构、开发工作流程和代码库组织。有关特定子系统的详细信息,请参阅项目结构开发环境设置测试与基准测试页面。

系统架构概览

gpt-engineer平台围绕模块化架构设计,在核心组件之间分离关注点,同时为用户提供简单的接口。下图显示了主要组件及其关系。

来源:`pyproject.toml16-72

核心组件

智能体

Agent是代码生成和改进过程的核心协调器。该系统使用一个抽象的BaseAgent类,带有两个主要实现:

  1. CliAgent:CLI工具使用的主要代理。它管理AI、内存和执行环境之间的交互。
  2. SimpleAgent:用于专业用例的简化代理实现。

两种代理类型都实现了两个关键方法:

  • init(prompt):根据用户提示生成新代码。
  • improve(files_dict, prompt):根据反馈改进现有代码。

AI接口

AI类提供了对不同语言模型提供商的统一接口。它处理:

  • 与LLM API的通信。
  • 消息格式化。
  • Token 使用跟踪
  • 温度设置。

该系统支持多种LLM提供商,包括OpenAI、Azure OpenAI、Anthropic和开源模型。

内存和文件处理

内存子系统为生成的代码和交互历史提供持久性。

来源:`pyproject.toml20-41

代码生成和改进流程

以下图表说明了代码生成和改进的工作流程。

来源:`pyproject.toml20-41

设置开发环境

先决条件

  • Python 3.10 或更高版本
  • 用于依赖管理的Poetry
  • Git

为开发安装

  1. 克隆仓库

  2. 使用Poetry安装依赖项

  3. 设置预提交钩子

来源:`.pre-commit-config.yaml1-28 `pyproject.toml16-72

项目结构

该项目遵循模块化架构,包含以下关键目录:

目录目的
gpt_engineer/核心包,包含主要功能。
gpt_engineer/applications/命令行和Web应用程序。
gpt_engineer/core/核心组件(代理、AI、文件处理)。
gpt_engineer/benchmark/用于测试性能的基准测试系统。
tests/项目的测试套件。
projects/示例项目和模板。

有关每个模块的详细信息,请参阅项目结构页面。

开发工作流

代码风格和 Linting

该项目通过以下方式强制执行代码质量:

  1. Black用于代码格式化。
  2. Ruff用于代码检查。
  3. Pre-commit hooks自动执行这些检查。

如果您已设置预提交钩子,这些工具将在您提交代码时自动运行。

来源:`.pre-commit-config.yaml1-28 `pyproject.toml91-114

测试

该项目使用pytest进行测试。运行测试命令:

要排除需要OpenAI API密钥的测试,请执行:

有关测试套件和基准测试系统的详细信息,请参阅测试与基准测试页面。

来源:`pyproject.toml115-118

基准测试

基准测试系统允许测量不同代理实现对标准化任务的性能。运行基准测试命令:

有关更详细信息,请参阅测试与基准测试页面。

来源:`pyproject.toml70

设计原则

贡献gpt-engineer时,请牢记以下核心设计原则:

  1. 模块化:组件应具有清晰的边界和接口。
  2. 关注点分离:保持AI交互、文件处理和执行的独立性。
  3. 可扩展性:通过定义良好的接口,方便添加新功能。
  4. 简洁性:尽管底层功能复杂,但仍提供简单的用户体验。
  5. 可测试性:设计组件以便于单独测试。

贡献

  1. 查找问题:在GitHub仓库中查找开放的问题,或创建一个新问题。
  2. Fork和克隆:Fork存储库并将其克隆到本地
  3. 创建分支:为您的更改创建一个分支。
  4. 进行更改:遵循代码风格指南实现您的更改。
  5. 运行测试:确保所有测试通过。
  6. 提交PR:提交一个清晰描述您更改的Pull Request。

有关详细的贡献指南,请参阅Project README

来源:`ROADMAP.md23-31

下一步