模型配置
ByteBuddy 支持多种 AI 模型,允许你根据需求选择最合适的模型。
支持的模型类型
大语言模型
- OpenAI 模型:GPT-3.5、GPT-4 系列
- Anthropic 模型:Claude 系列模型
- 开源模型:通过 Ollama、LM Studio 等运行的本地模型
- 其他提供商:支持 OpenAI 兼容的 API
模型角色
ByteBuddy 支持为不同角色配置不同的模型:
- chat:用于对话交互和复杂任务处理
- edit:用于代码编辑任务
- apply:用于代码应用操作
- autocomplete:用于实时代码补全
- embed:用于嵌入向量生成
- rerank:用于搜索结果重排序
基本配置
配置文件结构
在项目根目录或 ~/.bytebuddy/config.yaml 中配置模型:
yaml
# config.yaml
name: My ByteBuddy Config
version: 0.0.1
schema: v1
models:
- name: "gpt-4"
provider: "openai"
model: "gpt-4"
apiKey: "${OPENAI_API_KEY}"
roles:
- chat
- edit
- apply
- name: "claude-3-sonnet"
provider: "anthropic"
model: "claude-3-sonnet"
apiKey: "${ANTHROPIC_API_KEY}"
roles:
- chat
- autocomplete
- name: "local-llama"
provider: "ollama"
model: "llama2"
apiBase: "http://localhost:11434"
roles:
- chat基本配置参数
每个模型支持以下基本参数:
- name:模型配置的名称
- provider:模型提供商(openai、anthropic、ollama 等)
- model:具体的模型名称
- apiKey:API 密钥(可使用环境变量)
- apiBase:API 基础 URL(可选)
- roles:模型扮演的角色列表
高级配置选项
完成选项配置
yaml
models:
- name: "gpt-4-turbo"
provider: "openai"
model: "gpt-4-turbo"
apiKey: "${OPENAI_API_KEY}"
roles: ["chat"]
defaultCompletionOptions:
temperature: 0.7
maxTokens: 2000
topP: 0.9
presencePenalty: 0.1
frequencyPenalty: 0.1
stop: ["\n\n", "###"]自动补全选项
yaml
models:
- name: "claude-autocomplete"
provider: "anthropic"
model: "claude-3-haiku"
apiKey: "${ANTHROPIC_API_KEY}"
roles: ["autocomplete"]
autocompleteOptions:
maxPromptTokens: 2000
debounceDelay: 300
modelTimeout: 10000
useCache: true
useImports: true
useRecentlyEdited: true请求选项
yaml
models:
- name: "configured-model"
provider: "openai"
model: "gpt-4"
apiKey: "${OPENAI_API_KEY}"
roles: ["chat"]
requestOptions:
timeout: 30000
verifySsl: true
headers:
"User-Agent": "ByteBuddy/1.0"
extraBodyProperties:
custom_field: "value"环境变量配置
为了安全起见,建议使用环境变量存储 API 密钥:
bash
# 环境变量设置
export OPENAI_API_KEY="your-openai-key"
export ANTHROPIC_API_KEY="your-anthropic-key"在配置文件中使用:
yaml
models:
- name: "secure-model"
provider: "openai"
model: "gpt-4"
apiKey: "${OPENAI_API_KEY}"不同提供商的配置示例
OpenAI 模型
yaml
models:
- name: "gpt-4"
provider: "openai"
model: "gpt-4"
apiKey: "${OPENAI_API_KEY}"
apiBase: "https://api.openai.com/v1"
roles: ["chat", "edit"]Anthropic 模型
yaml
models:
- name: "claude-3-opus"
provider: "anthropic"
model: "claude-3-opus-20240229"
apiKey: "${ANTHROPIC_API_KEY}"
roles: ["chat", "edit"]本地 Ollama 模型
yaml
models:
- name: "local-llama3"
provider: "ollama"
model: "llama3:8b"
apiBase: "http://localhost:11434"
roles: ["chat"]自定义 OpenAI 兼容 API
yaml
models:
- name: "custom-provider"
provider: "openai-compatible"
model: "custom-model"
apiKey: "${CUSTOM_API_KEY}"
apiBase: "https://your-custom-api.com/v1"
roles: ["chat"]模型能力配置
ByteBuddy 支持为模型指定特定能力:
yaml
models:
- name: "gpt-4-vision"
provider: "openai"
model: "gpt-4-vision-preview"
apiKey: "${OPENAI_API_KEY}"
roles: ["chat"]
capabilities:
- "tool_use"
- "image_input"支持的模型能力:
- tool_use:支持工具调用
- image_input:支持图像输入
- next_edit:支持 next 编辑模式
缓存配置
yaml
models:
- name: "cached-model"
provider: "openai"
model: "gpt-4"
apiKey: "${OPENAI_API_KEY}"
cacheBehavior:
cacheSystemMessage: true
cacheConversation: true故障排除
常见问题解决
API 连接失败
yaml# 增加超时时间 requestOptions: timeout: 60000模型响应慢
yaml# 使用更快的模型 - name: "fast-model" provider: "openai" model: "gpt-3.5-turbo" # ... 其他配置API 密钥问题
- 确保环境变量正确设置
- 检查 API 密钥权限
- 验证模型是否在可用列表中
最佳实践
安全性
- 始终使用环境变量存储 API 密钥
- 定期轮换 API 密钥
- 限制 API 密钥权限范围
性能优化
- 为不同任务选择合适的模型
- 合理设置 temperature 和 maxTokens
- 启用缓存减少重复请求
成本控制
- 监控 token 使用情况
- 为简单任务使用较小的模型
- 设置合理的上下文长度限制
可靠性
- 配置多个模型作为备份
- 设置适当的超时时间
- 处理 API 限流错误