本文介绍如何使用 LiteLLM 连接 Google AI Studio(Gemini),并通过 Docker 部署一个 OpenAI / Anthropic 双协议兼容的本地代理,让 Claude Code CLI 及其他工具都能无缝接入 Gemini 模型。
一、为什么要这样做?
Google AI Studio 提供了相当慷慨的免费额度,Gemini 2.5 Pro 的能力也非常强。但大多数开发工具(包括 Claude Code、Cursor、n8n 等)默认对接的是 OpenAI 或 Anthropic 的接口格式。
LiteLLM 正是解决这个问题的神器:它作为中间代理层,统一暴露兼容接口,让所有工具都能透明地调用 Gemini。
什么是 LiteLLM
LiteLLM 是一个开源的 AI 网关,提供一个统一接口,让你可以调用 100 多个 LLM(大语言模型)提供商——包括 OpenAI、Anthropic、Gemini、Bedrock、Azure 等——并使用 OpenAI 的格式。
你可以将它作为 Python SDK 直接集成到库中,或者部署 **AI 网关(Proxy Server)**,作为团队或组织的集中服务使用。
为什么选择 LiteLLM
跨多个提供商管理 LLM 调用很快会变得复杂——每个模型都有不同的 SDK、认证方式、请求格式和错误类型。LiteLLM 消除了这些摩擦:
- 统一 API —— 一个接口支持 100 多个 LLM,无需处理各个提供商的 SDK
- OpenAI 兼容 —— 无需重写代码即可切换提供商
- 生产级网关 —— 内置虚拟密钥、费用跟踪、使用防护、负载均衡和管理后台
- 高性能 —— 在 1k RPS(每秒请求数)下,P95 延迟仅 8ms(基准测试)
Google AI Studio (Gemini)
↓ API Key
LiteLLM Proxy
↓ OpenAI / Anthropic 兼容接口
Claude Code / Cursor / n8n / 任意工具
二、获取 Google AI Studio API Key
- 访问 aistudio.google.com
- 点击右上角 Get API key → Create API key
- 复制保存(格式类似
AIzaSy...)
三、Docker 部署(推荐)
目录结构
litellm-proxy/
├── docker-compose.yml
├── litellm_config.yaml
└── .env
.env — 存放密钥
GEMINI_API_KEY=AIzaSy你的key
LITELLM_MASTER_KEY=sk-my-local-key
litellm_config.yaml — 模型配置
model_list:
# 映射 Anthropic 模型名 → Gemini(供 Claude Code 使用)
- model_name: claude-3-5-sonnet-20241022
litellm_params:
model: gemini/gemini-2.5-pro
api_key: os.environ/GEMINI_API_KEY
supports_function_calling: true
- model_name: claude-sonnet-4-5
litellm_params:
model: gemini/gemini-2.5-pro
api_key: os.environ/GEMINI_API_KEY
supports_function_calling: true
- model_name: claude-3-haiku-20240307
litellm_params:
model: gemini/gemini-2.5-flash
api_key: os.environ/GEMINI_API_KEY
supports_function_calling: true
# OpenAI 别名(供不支持自定义模型名的工具使用)
- model_name: gpt-4o
litellm_params:
model: gemini/gemini-2.5-flash
api_key: os.environ/GEMINI_API_KEY
litellm_settings:
drop_params: true
modify_params: true
general_settings:
master_key: os.environ/LITELLM_MASTER_KEY
docker-compose.yml
version: "3.9"
services:
litellm:
image: ghcr.io/berriai/litellm:main-latest
container_name: litellm-proxy
ports:
- "4000:4000"
volumes:
- ./litellm_config.yaml:/app/config.yaml
env_file:
- .env
command: ["--config", "/app/config.yaml", "--port", "4000"]
restart: unless-stopped
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:4000/health/liveliness"]
interval: 30s
timeout: 10s
retries: 3
启动命令
cd litellm-proxy
docker compose up -d
# 查看日志
docker compose logs -f
四、验证代理是否正常
# 测试 OpenAI 格式
curl http://localhost:4000/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk-my-local-key" \
-d '{
"model": "gpt-4o",
"messages": [{"role": "user", "content": "你好"}]
}'
# 测试 Anthropic 格式(Claude Code 使用)
curl http://localhost:4000/v1/messages \
-H "Content-Type: application/json" \
-H "x-api-key: sk-my-local-key" \
-H "anthropic-version: 2023-06-01" \
-d '{
"model": "claude-3-5-sonnet-20241022",
"max_tokens": 100,
"messages": [{"role": "user", "content": "hi"}]
}'
五、接入 Claude Code CLI
Claude Code 支持通过环境变量自定义 API endpoint:
export ANTHROPIC_BASE_URL=http://localhost:4000
export ANTHROPIC_API_KEY=sk-my-local-key
# 启动 Claude Code
claude
永久写入 shell 配置:
echo 'export ANTHROPIC_BASE_URL=http://localhost:4000' >> ~/.zshrc
echo 'export ANTHROPIC_API_KEY=sk-my-local-key' >> ~/.zshrc
source ~/.zshrc
六、接入其他工具
| 工具 | 配置方式 |
|---|---|
| Python OpenAI SDK | base_url="http://localhost:4000/v1" |
| Cursor / Continue.dev | Base URL 填 http://localhost:4000/v1 |
| n8n / Dify / Open WebUI | API Endpoint 填 http://localhost:4000/v1 |
| 任意 HTTP 工具 | 按 OpenAI 格式请求即可 |