跳转到内容

LLM 模型配置(环境变量)

Carry Code 支持通过环境变量配置 AI 模型,便于与 CI/CD 流水线、容器化部署和现有开发工作流无缝集成。


环境变量配置允许你:

  • 快速设置:无需编辑配置文件即可配置模型
  • CI/CD 集成:在流水线中使用密钥管理
  • 容器部署:通过环境变量注入凭证
  • 多环境支持:为不同环境配置不同的模型

环境变量配置的优先级高于配置文件设置。当两者同时存在时,环境变量优先。


Carry Code 会自动检测并配置以下环境变量对应的模型:

服务商API Key 变量Base URL 变量(可选)Model 变量(可选)
AnthropicANTHROPIC_AUTH_TOKENANTHROPIC_BASE_URLANTHROPIC_MODEL
OpenAIOPENAI_API_KEYOPENAI_BASE_URLOPENAI_MODEL
Google GeminiGEMINI_API_KEYGOOGLE_GEMINI_BASE_URLGEMINI_MODEL
OpenRouterOPENROUTER_API_KEYOPENROUTER_BASE_URLOPENROUTER_MODEL
变量说明示例
CARRYCODE_MODEL设置默认使用的模型anthropic-env:claude-opus-4-6gpt-4o

为你偏好的服务商设置 API Key:

Terminal window
# Anthropic Claude
export ANTHROPIC_AUTH_TOKEN="your-anthropic-api-key"
# OpenAI
export OPENAI_API_KEY="your-openai-api-key"
# Google Gemini
export GEMINI_API_KEY="your-gemini-api-key"
# OpenRouter
export OPENROUTER_API_KEY="your-openrouter-api-key"

覆盖默认的 API 端点:

Terminal window
# 使用自定义 Anthropic 端点
export ANTHROPIC_AUTH_TOKEN="your-key"
export ANTHROPIC_BASE_URL="https://your-proxy.example.com"
# 使用自定义 OpenAI 端点(如 Azure OpenAI)
export OPENAI_API_KEY="your-azure-key"
export OPENAI_BASE_URL="https://your-resource.openai.azure.com/openai/deployments/your-deployment"

覆盖服务商的默认模型:

Terminal window
# 使用 Claude Opus 4.5
export ANTHROPIC_AUTH_TOKEN="your-key"
export ANTHROPIC_MODEL="claude-opus-4-5-20250514"
# 使用 GPT-4o mini
export OPENAI_API_KEY="your-key"
export OPENAI_MODEL="gpt-4o-mini"
# 使用 Gemini 2.5 Pro
export GEMINI_API_KEY="your-key"
export GEMINI_MODEL="gemini-2.5-pro"

使用 CARRYCODE_MODEL 指定默认使用的模型:

Terminal window
# 使用通过环境变量配置的 Anthropic 模型
export ANTHROPIC_AUTH_TOKEN="your-key"
export CARRYCODE_MODEL="anthropic-env:claude-opus-4-6"
# 或直接使用模型名称(匹配第一个拥有该模型的服务商)
export OPENAI_API_KEY="your-key"
export OPENAI_MODEL="gpt-4o"
export CARRYCODE_MODEL="gpt-4o"

当通过环境变量配置模型时,CarryCode 会创建 ID 格式为 {provider}-env 的服务商条目:

环境变量生成的 Provider ID
ANTHROPIC_AUTH_TOKENanthropic-env
OPENAI_API_KEYopenai-env
GEMINI_API_KEYgemini-env
OPENROUTER_API_KEYopenrouter-env

你可以通过这些 ID 引用模型:

Terminal window
# 切换到环境变量配置的 Anthropic 模型
/model switch anthropic-env
# 设置为默认
/model default openai-env

通过环境变量配置的模型会继承 Carry Code 内置服务商预设的默认参数:

  • 上下文窗口:最大上下文长度
  • Temperature:默认采样温度
  • Top-P:核采样参数
  • Max Tokens:最大输出 token

这些默认值定义在 ConfigProviders.toml 中,当你通过环境变量配置模型时会自动应用。


添加到 ~/.bashrc~/.bash_profile

Terminal window
# Carry Code 模型配置
export ANTHROPIC_AUTH_TOKEN="your-anthropic-key"
export OPENAI_API_KEY="your-openai-key"
export CARRYCODE_MODEL="anthropic-env:claude-opus-4-6"

添加到 ~/.zshrc

Terminal window
# Carry Code 模型配置
export ANTHROPIC_AUTH_TOKEN="your-anthropic-key"
export OPENAI_API_KEY="your-openai-key"
export CARRYCODE_MODEL="anthropic-env:claude-opus-4-6"

添加到 ~/.config/fish/config.fish

Terminal window
# Carry Code 模型配置
set -gx ANTHROPIC_AUTH_TOKEN "your-anthropic-key"
set -gx OPENAI_API_KEY "your-openai-key"
set -gx CARRYCODE_MODEL "anthropic-env:claude-opus-4-6"

运行容器时传递环境变量:

Terminal window
docker run -it \
-e ANTHROPIC_AUTH_TOKEN="your-key" \
-e CARRYCODE_MODEL="anthropic-env:claude-opus-4-6" \
carrycode/carrycode:latest

或使用环境变量文件:

Terminal window
# .env 文件
ANTHROPIC_AUTH_TOKEN=your-key
OPENAI_API_KEY=your-key
CARRYCODE_MODEL=anthropic-env:claude-opus-4-6
Terminal window
docker run -it --env-file .env carrycode/carrycode:latest

使用 ConfigMap 或 Secret:

apiVersion: v1
kind: Secret
metadata:
name: carrycode-secrets
type: Opaque
stringData:
anthropic-auth-token: "your-key"
openai-api-key: "your-key"
---
apiVersion: v1
kind: Pod
metadata:
name: carrycode
spec:
containers:
- name: carrycode
image: carrycode/carrycode:latest
env:
- name: ANTHROPIC_AUTH_TOKEN
valueFrom:
secretKeyRef:
name: carrycode-secrets
key: anthropic-auth-token
- name: CARRYCODE_MODEL
value: "anthropic-env:claude-opus-4-6"

使用 GitHub Secrets 存储 API Key:

name: AI Code Review
on: [pull_request]
jobs:
review:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Run Carry Code
env:
ANTHROPIC_AUTH_TOKEN: ${{ secrets.ANTHROPIC_API_KEY }}
CARRYCODE_MODEL: "anthropic-env:claude-opus-4-6"
run: |
# 安装并运行 Carry Code
carrycode "Review the changes in this PR"

使用 GitLab CI/CD 变量:

code-review:
stage: test
script:
- carrycode "Review the code changes"
variables:
ANTHROPIC_AUTH_TOKEN: $ANTHROPIC_API_KEY
CARRYCODE_MODEL: "anthropic-env:claude-opus-4-6"

检查环境变量是否正确设置:

Terminal window
# 列出所有 Carry Code 相关的环境变量
env | grep -E "(ANTHROPIC|OPENAI|GEMINI|OPENROUTER|CARRYCODE)"

在 Carry Code 中,使用 /model 命令查看所有已配置的模型,包括通过环境变量配置的模型。环境变量配置的模型会显示为 provider ID 以 -env 结尾的条目。

问题解决方案
模型未出现确保 API Key 变量已设置且非空
选择了错误的模型检查 CARRYCODE_MODEL 格式是否为 provider-id:model-name
API 错误验证 API Key 是否有效且有足够额度
自定义 URL 不生效确保 base URL 包含完整的 API 路径

  1. 永远不要将 API Key 提交到版本控制系统
  2. 在 CI/CD 中使用密钥管理(GitHub Secrets、GitLab Variables 等)
  3. 定期轮换密钥,特别是在生产环境中
  4. 限制密钥权限(例如 CI 中使用只读权限)
  5. 为不同环境使用不同的密钥(开发、测试、生产)