Skip to content

模型提供商概述

MyDeskBot 支持多种 AI 模型,允许您根据需求选择最合适的模型。

配置文件位置

MyDeskBot 配置文件位于:

  • ~/.mydeskbot/config.yaml
  • 项目根目录下的 config.yaml

支持的提供商类型

🚀 主流提供商

这些提供商拥有庞大的用户基础和成熟的生态系统:

🔧 自托管解决方案

在本地或私有环境中运行模型:

🌐 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: 4000

Anthropic 配置

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: 8000

Google 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: 60000

Azure 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"

使用方法

配置完成后,模型将在相应的聊天会话中自动生效:

  1. 配置模型:在 config.yaml 中添加模型配置
  2. 设置环境变量:配置 API 密钥和其他敏感信息
  3. 重启应用:使配置生效
  4. 开始使用:模型将在聊天界面中自动可用

故障排除

常见问题

Q:模型无法加载?

  • 检查配置文件语法是否正确
  • 验证环境变量是否设置正确
  • 确认 API 密钥有效且有足够配额

Q:本地模型连接失败?

  • 确认 Ollama 服务正在运行
  • 检查 apiBase URL 是否正确
  • 验证本地模型已下载

Q:响应时间过长?

  • 调整 timeout 参数
  • 选择更快的模型或提供商
  • 考虑使用流式输出

Q:配置未生效?

  • 检查配置文件位置是否正确
  • 验证 YAML 语法
  • 重启 MyDeskBot 应用

验证配置

创建测试配置以验证设置:

bash
# 验证配置文件语法
mydeskbot config validate

# 测试模型连接
mydeskbot models test --name your-model-name

最佳实践

安全性

  1. 环境变量:始终使用环境变量存储 API 密钥
  2. 访问控制:为 API 密钥设置最小必要权限
  3. 定期轮换:定期更新 API 密钥

性能优化

  1. 模型选择:根据任务复杂度选择合适的模型
  2. 参数调整:优化 temperaturemaxTokens 等参数
  3. 缓存设置:启用适当的缓存策略

成本控制

  1. 模型选择:对简单任务使用更经济的模型
  2. token 限制:设置合理的 maxTokens 限制
  3. 本地部署:对敏感数据使用本地模型

开始使用

  1. 选择提供商:根据需求选择合适的模型提供商
  2. 创建配置:在 ~/.mydeskbot/config.yaml 中添加模型配置
  3. 设置密钥:配置相应的环境变量
  4. 测试验证:验证配置是否正常工作
  5. 开始使用:在聊天会话中使用配置的模型