菜单

使用不同的LLM模型

相关源文件

本页面介绍了如何使用 gpt-engineer 配置和使用不同的语言模型。它涵盖了支持的模型提供商,包括 OpenAI、Azure OpenAI、Anthropic 和开源模型,以及配置选项和最佳实践。有关文件选择和项目结构的信息,请参阅 文件选择和项目结构

支持的 LLM 提供商

gpt-engineer 通过一个灵活的架构支持多种 LLM 提供商,该架构抽象了底层的 API 交互。

来源:gpt_engineer/core/ai.py330-379

模型配置选项

下表显示了 gpt-engineer 中提供的关键模型配置选项

参数默认值描述
model_namegpt-4-turbo要使用的 LLM 的名称
temperature0.1控制随机性(0-1)
azure_endpointAzure OpenAI 端点 URL
streamingTrue启用流式响应
vision自动检测支持图像输入

这些选项可以在运行 gpt-engineer 时通过环境变量或 CLI 参数进行设置。

来源:gpt_engineer/core/ai.py88-116

模型选择过程

gpt-engineer 使用系统化的方法根据配置参数确定使用哪个模型实现

来源:gpt_engineer/core/ai.py330-379

使用 OpenAI 模型

默认情况下,gpt-engineer 使用 OpenAI 模型,并将 gpt-4-turbo 设置为默认模型。要使用 OpenAI 模型,您需要

  1. 将您的 OpenAI API 密钥设置为环境变量

    export OPENAI_API_KEY=your_api_key
    
  2. 可选地指定不同的模型

    gpte your_project --model gpt-3.5-turbo
    

支持的 OpenAI 模型包括

  • gpt-4-turbo (默认)
  • gpt-4-vision-preview (用于视觉能力)
  • gpt-4
  • gpt-3.5-turbo

模型名称会传递给 AI 类初始化中的 model_name 参数。

来源:gpt_engineer/core/ai.py88-96 gpt_engineer/core/ai.py374-378

使用 Azure OpenAI

要使用 Azure OpenAI,您需要

  1. 设置您的 Azure OpenAI API 密钥

    export OPENAI_API_KEY=your_azure_api_key
    
  2. 运行 gpt-engineer 时使用 --azure 标志,后跟您的端点 URL

    gpte --azure https://your-resource-name.openai.azure.com your_project your_deployment_name
    

请注意,对于 Azure,model_name 参数将成为您的部署名称。

来源:gpt_engineer/core/ai.py346-356 docs/open_models.md139-148

使用 Anthropic (Claude) 模型

gpt-engineer 支持 Anthropic 的 Claude 模型

  1. 安装所需的依赖项

    pip install gpt-engineer[anthropic]
    

    pip install langchain-anthropic
    
  2. 设置您的 Anthropic API 密钥

    export ANTHROPIC_API_KEY=your_anthropic_api_key
    
  3. 使用 Claude 模型运行 gpt-engineer

    gpte your_project --model claude-3-opus-20240229
    

AI 类通过检查模型名称中是否包含“claude”字符串来自动检测 Claude 模型。

来源:gpt_engineer/core/ai.py357-364 pyproject.toml35

使用开源 LLM

gpt-engineer 可以通过兼容 OpenAI 的 API 与开源模型协同工作

  1. 设置一个具有兼容 OpenAI API 的推理服务器(例如,llama.cpp 服务器)

    python -m llama_cpp.server --model path_to_model.gguf --n_batch 256 --n_gpu_layers 30
    
  2. 配置环境变量

    export OPENAI_API_BASE="http://:8000/v1"
    export OPENAI_API_KEY="sk-xxx"  # Any value will work
    export MODEL_NAME="YourModelName"
    export LOCAL_MODEL=true
    
  3. 以精简模式运行 gpt-engineer

    gpte your_project $MODEL_NAME --lite --temperature 0.1
    

推荐的开源模型包括

  • CodeLlama 70B
  • Mixtral 8x7B
  • Llama 3 模型

对于没有直接硬件访问权限的模型,您可以使用 Open Router 等服务

export OPENAI_API_BASE="https://openrouter.ai/api/v1"
export OPENAI_API_KEY="your-open-router-key"
export MODEL_NAME="meta-llama/llama-3-8b-instruct:extended"
export LOCAL_MODEL=true

来源:docs/open_models.md1-139

视觉模型支持

gpt-engineer 会自动检测支持视觉功能的模型并进行相应配置。对于以下模型,视觉支持会自动启用:

  • 名称中包含“vision-preview”的模型
  • gpt-4-turbo 模型(当名称中不包含“preview”时)
  • Claude 模型

在使用视觉模型时,gpt-engineer 会包含特殊的图像 token 计数逻辑,因为图像输入的 token 数量比文本多得多。

来源:gpt_engineer/core/ai.py110-114 gpt_engineer/core/token_usage.py96-140

Token 使用量跟踪

gpt-engineer 包含一个复杂的 token 使用跟踪系统,该系统会监控不同模型提供商的 token 消耗情况

token 使用系统

  • 跟踪每次生成步骤消耗的 token
  • 计算整个会话的累积使用量
  • 估算 OpenAI 模型的成本
  • 为视觉模型提供特殊处理(图像 token 计算)

token 使用日志会被存储,并且可以通过编程方式访问,或在控制台输出中查看。

来源:gpt_engineer/core/token_usage.py31-297 gpt_engineer/core/ai.py116

模型选择最佳实践

在选择要与 gpt-engineer 结合使用的模型时,请考虑以下因素:

模型类型优势注意事项
GPT-4 模型最佳代码质量,强大的推理能力成本较高,可能速度较慢
Claude 模型强大的推理能力,高上下文窗口在代码补全基准测试中表现有限
GPT-3.5 模型速度快,成本效益高质量可能不适用于复杂项目
开源模型无成本,隐私控制需要本地计算资源,质量参差不齐

对于大多数生产用例,GPT-4 模型可提供最佳的可靠性和质量。对于测试或较简单的项目,GPT-3.5 或开源模型可能已足够。

来源:docs/open_models.md58-72

故障排除模型配置

使用不同模型时的常见问题

  1. API 密钥问题:确保为所选提供商设置了正确的环境变量

    • OpenAI/Azure: OPENAI_API_KEY
    • Anthropic: ANTHROPIC_API_KEY
  2. 模型可用性:并非所有模型都适用于所有区域或部署。请查看您的提供商文档。

  3. Token 限制:不同模型的上下文长度限制不同。如果您的项目很复杂,请考虑使用具有更大上下文窗口的模型。

  4. 本地模型性能:在使用开源模型时,请确保您的硬件满足模型的性能要求。量化模型(例如 Q6_K)在质量和性能之间提供了良好的平衡。

来源:docs/open_models.md58-72 gpt_engineer/core/ai.py253-287