Skip to content

自定义提供商深度解析

自定义提供商系统允许用户扩展 ByteBuddy 的功能,集成各种第三方服务和自定义数据源,打造个性化的 AI 开发环境。

提供商类型

官方支持的提供商

ByteBuddy 支持多种主流 AI 提供商:

  • OpenAI: GPT-4, GPT-3.5
  • Anthropic: Claude 3 系列
  • Google: Gemini Pro
  • Azure OpenAI: 企业级 OpenAI 服务
  • AWS Bedrock: AWS 托管的 AI 模型
  • Cohere: 嵌入和重排序模型
  • Together: 开源模型托管
  • Ollama: 本地模型运行

自定义提供商集成

可以集成任何兼容 OpenAI API 格式的提供商。

自定义 API 提供商

基础配置

yaml
models:
  - name: "custom-api"
    provider: "openai-compatible"
    model: "custom-model-name"
    apiKey: "${CUSTOM_API_KEY}"
    apiBase: "https://api.custom-provider.com/v1"
    roles: ["chat"]
    defaultCompletionOptions:
      temperature: 0.7
      maxTokens: 2000

OpenAI 兼容 API

许多提供商提供 OpenAI 兼容的 API:

yaml
models:
  # DeepSeek
  - name: "deepseek"
    provider: "openai-compatible"
    model: "deepseek-chat"
    apiKey: "${DEEPSEEK_API_KEY}"
    apiBase: "https://api.deepseek.com/v1"
    roles: ["chat"]
    defaultCompletionOptions:
      temperature: 0.7
      maxTokens: 4000

  # Perplexity
  - name: "perplexity"
    provider: "openai-compatible"
    model: "llama-3.1-sonar-large-128k-online"
    apiKey: "${PERPLEXITY_API_KEY}"
    apiBase: "https://api.perplexity.ai"
    roles: ["chat"]
    defaultCompletionOptions:
      temperature: 0.7
      maxTokens: 4096

  # Fireworks AI
  - name: "fireworks"
    provider: "openai-compatible"
    model: "accounts/fireworks/models/llama-v3p1-70b-instruct"
    apiKey: "${FIREWORKS_API_KEY}"
    apiBase: "https://api.fireworks.ai/inference/v1"
    roles: ["chat"]
    defaultCompletionOptions:
      temperature: 0.7
      maxTokens: 4096

本地模型提供商

Ollama 配置

yaml
models:
  - name: "local-llama"
    provider: "ollama"
    model: "llama2"
    apiBase: "http://localhost:11434"
    roles: ["chat"]
    defaultCompletionOptions:
      temperature: 0.7
      maxTokens: 2000

  - name: "local-codellama"
    provider: "ollama"
    model: "codellama:13b"
    apiBase: "http://localhost:11434"
    roles: ["autocomplete", "edit"]
    defaultCompletionOptions:
      temperature: 0.2
      maxTokens: 1024

LM Studio 配置

yaml
models:
  - name: "lmstudio-model"
    provider: "lmstudio"
    model: "local-model"
    apiBase: "http://localhost:1234/v1"
    roles: ["chat"]
    defaultCompletionOptions:
      temperature: 0.7
      maxTokens: 2000

llama.cpp 服务器配置

yaml
models:
  - name: "llamacpp-model"
    provider: "llamacpp"
    model: "llama-2-13b"
    apiBase: "http://localhost:8080"
    roles: ["chat"]
    defaultCompletionOptions:
      temperature: 0.7
      maxTokens: 2000

云服务提供商

Azure OpenAI

yaml
models:
  - name: "azure-gpt4"
    provider: "azure-openai"
    model: "gpt-4"
    apiKey: "${AZURE_OPENAI_API_KEY}"
    apiBase: "${AZURE_OPENAI_API_BASE}"
    env:
      deploymentName: "gpt-4-deployment"
      apiVersion: "2024-02-15-preview"
    roles: ["chat", "edit"]
    defaultCompletionOptions:
      temperature: 0.7
      maxTokens: 4000

AWS Bedrock

yaml
models:
  - name: "bedrock-claude"
    provider: "bedrock"
    model: "anthropic.claude-3-sonnet-20240229-v1:0"
    env:
      region: "us-east-1"
      accessKeyId: "${AWS_ACCESS_KEY_ID}"
      secretAccessKey: "${AWS_SECRET_ACCESS_KEY}"
    roles: ["chat"]
    defaultCompletionOptions:
      temperature: 0.7
      maxTokens: 4096

Google Vertex AI

yaml
models:
  - name: "vertexai-gemini"
    provider: "vertexai"
    model: "gemini-pro"
    env:
      projectId: "${GOOGLE_CLOUD_PROJECT_ID}"
      location: "us-central1"
      credentials: "${GOOGLE_APPLICATION_CREDENTIALS}"
    roles: ["chat"]
    defaultCompletionOptions:
      temperature: 0.7
      maxTokens: 2048

专用服务提供商

嵌入模型提供商

yaml
models:
  # OpenAI 嵌入
  - name: "openai-embed"
    provider: "openai"
    model: "text-embedding-3-large"
    apiKey: "${OPENAI_API_KEY}"
    roles: ["embed"]

  # Cohere 嵌入
  - name: "cohere-embed"
    provider: "cohere"
    model: "embed-english-v3.0"
    apiKey: "${COHERE_API_KEY}"
    roles: ["embed"]

  # Voyage AI 嵌入
  - name: "voyage-embed"
    provider: "openai-compatible"
    model: "voyage-large-2"
    apiKey: "${VOYAGE_API_KEY}"
    apiBase: "https://api.voyageai.com/v1"
    roles: ["embed"]

重排序模型提供商

yaml
models:
  # Cohere 重排序
  - name: "cohere-rerank"
    provider: "cohere"
    model: "rerank-english-v3.0"
    apiKey: "${COHERE_API_KEY}"
    roles: ["rerank"]

  # Jina AI 重排序
  - name: "jina-rerank"
    provider: "openai-compatible"
    model: "jina-reranker-v1-base-en"
    apiKey: "${JINA_API_KEY}"
    apiBase: "https://api.jina.ai/v1"
    roles: ["rerank"]

自定义请求选项

请求头配置

yaml
models:
  - name: "custom-headers"
    provider: "openai-compatible"
    model: "custom-model"
    apiKey: "${API_KEY}"
    apiBase: "https://api.example.com/v1"
    requestOptions:
      headers:
        "X-Custom-Header": "value"
        "User-Agent": "ByteBuddy/1.0"
    roles: ["chat"]
    defaultCompletionOptions:
      temperature: 0.7
      maxTokens: 2000

超时和重试配置

yaml
models:
  - name: "timeout-config"
    provider: "openai"
    model: "gpt-4"
    apiKey: "${OPENAI_API_KEY}"
    requestOptions:
      timeout: 60000 # 60 秒
      maxRetries: 3
      retryDelay: 1000 # 1 秒
    roles: ["chat"]
    defaultCompletionOptions:
      temperature: 0.7
      maxTokens: 2000

最佳实践

1. 提供商选择

  • 云端: 高性能、最新模型
  • 本地: 隐私保护、无需网络
  • 混合: 结合两者优势

2. API 密钥管理

  • 使用环境变量存储密钥
  • 定期轮换密钥
  • 限制密钥权限
  • 监控密钥使用情况

3. 性能优化

  • 选择地理位置最近的服务器
  • 配置合适的超时时间
  • 实施重试策略
  • 启用连接池

4. 成本控制

  • 监控 API 使用量
  • 设置使用限额
  • 选择性价比高的模型
  • 使用缓存减少调用

故障排除

连接问题

解决方案:

  • 检查 API 端点是否正确
  • 验证网络连接
  • 检查防火墙设置
  • 确认 API 密钥有效

认证失败

解决方案:

  • 验证 API 密钥格式
  • 检查密钥权限
  • 确认密钥未过期
  • 查看提供商状态

性能问题

解决方案:

  • 优化请求大小
  • 增加超时时间
  • 调整重试策略
  • 考虑更换提供商

环境变量配置

bash
# ~/.bashrc 或 ~/.zshrc

# OpenAI 兼容提供商
export CUSTOM_API_KEY="your-custom-api-key"
export DEEPSEEK_API_KEY="your-deepseek-api-key"
export PERPLEXITY_API_KEY="your-perplexity-api-key"
export FIREWORKS_API_KEY="your-fireworks-api-key"

# 云服务提供商
export AZURE_OPENAI_API_KEY="your-azure-key"
export AZURE_OPENAI_API_BASE="https://your-resource.openai.azure.com"
export AWS_ACCESS_KEY_ID="your-aws-access-key"
export AWS_SECRET_ACCESS_KEY="your-aws-secret-key"
export GOOGLE_CLOUD_PROJECT_ID="your-project-id"
export GOOGLE_APPLICATION_CREDENTIALS="/path/to/credentials.json"

# 专用服务提供商
export VOYAGE_API_KEY="your-voyage-api-key"
export JINA_API_KEY="your-jina-api-key"

通过灵活配置自定义提供商,您可以充分利用各种 AI 服务,构建最适合您需求的开发环境。