模型提供商概述
MyDeskBot 支持多种 AI 模型,允许您根据需求选择最合适的模型。
配置文件位置
MyDeskBot 配置文件位于:
~/.mydeskbot/config.yaml- 项目根目录下的
config.yaml
支持的提供商类型
🚀 主流提供商
这些提供商拥有庞大的用户基础和成熟的生态系统:
- OpenAI - GPT 系列模型
- Anthropic - Claude 系列模型
- Google - Gemini 模型
- Azure - Azure OpenAI 服务
- Amazon Bedrock - AWS 托管模型
🔧 自托管解决方案
在本地或私有环境中运行模型:
- Ollama - 本地模型运行器
- LM Studio - 桌面模型应用
- LLaMA.cpp - C++ 推理引擎
- LLaMA Stack - 分布式推理
🌐 API 聚合服务
通过单一接口访问多个模型:
- OpenRouter - 多模型路由
- Together - 开源模型平台
- HuggingFace - 推理 API
🏢 企业服务
适合企业场景的专业服务:
🧪 实验性和新兴提供商
最新的模型和服务:
模型角色
MyDeskBot 支持为不同角色配置不同的模型:
- chat:用于对话交互和复杂任务处理
- edit:用于代码编辑任务
- apply:用于代码应用操作
- autocomplete:用于实时代码补全
- embed:用于嵌入向量生成
- rerank:用于搜索结果重排序
- summarize:用于文本摘要
基本配置结构
MyDeskBot 使用 YAML 配置格式。以下是模型配置的基本结构:
单个模型配置
yaml
models:
- name: "gpt-4o" # 模型名称
provider: "openai" # 提供商
model: "gpt-4o" # 特定模型
apiKey: "${{ OPENAI_API_KEY }}" # API 密钥(环境变量)
roles: ["chat"] # 角色类型:chat, edit, apply, autocomplete, embed, rerank, summarize
capabilities: ["tool_use"] # 能力:tool_use, image_input, next_edit
defaultCompletionOptions: # 默认完成选项
temperature: 0.7
maxTokens: 4000
requestOptions: # 请求选项
timeout: 30000
verifySsl: true多模型配置
yaml
models:
- name: "chat-model"
provider: "openai"
model: "gpt-4o"
apiKey: "${{ secrets.OPENAI_API_KEY }}"
roles: ["chat", "edit"]
- name: "local-model"
provider: "ollama"
model: "llama3"
apiBase: "http://localhost:11434"
roles: ["chat"]
- name: "embedding-model"
provider: "openai"
model: "text-embedding-3-small"
apiKey: "${{ secrets.OPENAI_API_KEY }}"
roles: ["embed"]配置字段说明
必需字段
- name:模型配置的唯一标识符
- provider:模型提供商(如 openai、anthropic、ollama 等)
- model:特定的模型名称
可选字段
- apiKey:API 密钥,支持环境变量格式
- apiBase:自定义 API 端点 URL
- roles:模型角色数组,可选值包括:
chat:聊天对话edit:代码编辑apply:应用更改autocomplete:代码自动补全embed:嵌入向量生成rerank:重排序summarize:文本摘要
- capabilities:模型能力数组,可选值包括:
tool_use:工具使用能力image_input:图像输入支持next_edit:下一代编辑模式
- defaultCompletionOptions:默认完成选项
temperature:生成随机性(0-2)maxTokens:最大生成 token 数topP:核采样参数stream:是否流式输出
- autocompleteOptions:自动补全选项
maxPromptTokens:最大提示 token 数useCache:是否使用缓存
- requestOptions:请求选项
timeout:请求超时(毫秒)verifySsl:是否验证 SSL 证书headers:自定义请求头proxy:代理设置
环境变量配置
出于安全考虑,建议使用环境变量存储 API 密钥:
bash
# ~/.mydeskbot/.env
OPENAI_API_KEY=your-openai-api-key
ANTHROPIC_API_KEY=your-anthropic-api-key注意:
secrets.是配置文件中的前缀标识,用于告知 MyDeskBot 这是一个需要从环境变量中读取的密钥。在.env文件中,环境变量的名称不需要加secrets.前缀,直接使用OPENAI_API_KEY即可。
常用环境变量使用:
${{ secrets.OPENAI_API_KEY }} - OpenAI API 密钥
${{ secrets.ANTHROPIC_API_KEY }} - Anthropic API 密钥
${{ secrets.GOOGLE_API_KEY }} - Google AI API 密钥
${{ secrets.AZURE_OPENAI_API_KEY }} - Azure OpenAI API 密钥常用提供商配置示例
OpenAI 配置
yaml
models:
- name: "gpt-4o"
provider: "openai"
model: "gpt-4o"
apiKey: "${{ secrets.OPENAI_API_KEY }}"
roles: ["chat", "edit"]
defaultCompletionOptions:
temperature: 0.7
maxTokens: 4000Anthropic 配置
yaml
models:
- name: "claude-3-5-sonnet"
provider: "anthropic"
model: "claude-3-5-sonnet-20241022"
apiKey: "${{ secrets.ANTHROPIC_API_KEY }}"
roles: ["chat"]
capabilities: ["tool_use"]
defaultCompletionOptions:
temperature: 0.7
maxTokens: 8000Google Gemini 配置
yaml
models:
- name: "gemini-2.0-flash"
provider: "google"
model: "gemini-2.0-flash"
apiKey: "${{ secrets.GOOGLE_API_KEY }}"
roles: ["chat"]
capabilities: ["image_input"]Ollama 本地模型配置
yaml
models:
- name: "local-llama"
provider: "ollama"
model: "llama3"
apiBase: "http://localhost:11434"
roles: ["chat"]
requestOptions:
timeout: 60000Azure OpenAI 配置
yaml
models:
- name: "azure-gpt-4"
provider: "azure"
model: "gpt-4"
apiKey: "${{ secrets.AZURE_OPENAI_API_KEY }}"
apiBase: "https://your-resource.openai.azure.com/"
env:
resourceName: "your-resource-name"
deploymentName: "gpt-4-deployment"
apiVersion: "2024-02-15-preview"使用方法
配置完成后,模型将在相应的聊天会话中自动生效:
- 配置模型:在
config.yaml中添加模型配置 - 设置环境变量:配置 API 密钥和其他敏感信息
- 重启应用:使配置生效
- 开始使用:模型将在聊天界面中自动可用
故障排除
常见问题
Q:模型无法加载?
- 检查配置文件语法是否正确
- 验证环境变量是否设置正确
- 确认 API 密钥有效且有足够配额
Q:本地模型连接失败?
- 确认 Ollama 服务正在运行
- 检查
apiBaseURL 是否正确 - 验证本地模型已下载
Q:响应时间过长?
- 调整
timeout参数 - 选择更快的模型或提供商
- 考虑使用流式输出
Q:配置未生效?
- 检查配置文件位置是否正确
- 验证 YAML 语法
- 重启 MyDeskBot 应用
验证配置
创建测试配置以验证设置:
bash
# 验证配置文件语法
mydeskbot config validate
# 测试模型连接
mydeskbot models test --name your-model-name最佳实践
安全性
- 环境变量:始终使用环境变量存储 API 密钥
- 访问控制:为 API 密钥设置最小必要权限
- 定期轮换:定期更新 API 密钥
性能优化
- 模型选择:根据任务复杂度选择合适的模型
- 参数调整:优化
temperature、maxTokens等参数 - 缓存设置:启用适当的缓存策略
成本控制
- 模型选择:对简单任务使用更经济的模型
- token 限制:设置合理的
maxTokens限制 - 本地部署:对敏感数据使用本地模型
开始使用
- 选择提供商:根据需求选择合适的模型提供商
- 创建配置:在
~/.mydeskbot/config.yaml中添加模型配置 - 设置密钥:配置相应的环境变量
- 测试验证:验证配置是否正常工作
- 开始使用:在聊天会话中使用配置的模型