litellm-setting/README.md

101 lines
2.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# LiteLLM Proxy — Claude Code × xAI Grok
用 [LiteLLM](https://github.com/BerriAI/litellm) 在本地架一個 proxy server**Claude Code** 透過 Anthropic API 格式呼叫 **xAI Grok** 模型。
## 架構
```
Claude Code
│ ANTHROPIC_BASE_URL=http://localhost:4000
LiteLLM Proxy (Docker, port 4000)
│ model_list 路由
xAI API (api.x.ai)
└─ grok-4-1-fast-non-reasoning
```
## 檔案結構
```
litellm-proxy/
├── docker-compose.yml # 啟動 LiteLLM Docker 容器
├── litellm_config.yaml # 模型路由設定
├── .env # xAI API Key不要上傳到 git
└── settings.json # 本地備份用的 claude settings 範例
```
## 快速開始
### 1. 設定 API Key
編輯 `.env`
```env
XAI_API_KEY=xai-你的金鑰
```
### 2. 啟動 Proxy
```bash
docker compose up -d
```
### 3. 設定 Claude Code
將以下內容寫入 `~/.claude/settings.json`
```json
{
"env": {
"ANTHROPIC_BASE_URL": "http://localhost:4000",
"ANTHROPIC_AUTH_TOKEN": "sk-my-local-litellm-key",
"ANTHROPIC_DEFAULT_SONNET_MODEL": "grok-4-1-fast-reasoning",
"ANTHROPIC_DEFAULT_OPUS_MODEL": "grok-4-1-fast-reasoning",
"ANTHROPIC_DEFAULT_HAIKU_MODEL": "grok-4-1-fast-reasoning"
}
}
```
> `ANTHROPIC_AUTH_TOKEN` 填的是 LiteLLM 的 `master_key`,不是真實的 Anthropic 或 xAI key。
### 4. 啟動 Claude Code
```bash
claude
```
## 常用指令
| 指令 | 說明 |
|------|------|
| `docker compose up -d` | 背景啟動 proxy |
| `docker compose down` | 停止 proxy |
| `docker compose logs -f` | 查看即時 log |
| `docker compose down && docker compose up -d` | 重啟(套用新設定) |
## 設定說明
### `litellm_config.yaml`
```yaml
model_list:
- model_name: grok-4-1-fast-reasoning # Claude Code 看到的模型名稱
litellm_params:
model: xai/grok-4-1-fast-non-reasoning # 實際送給 xAI 的模型
api_key: os.environ/XAI_API_KEY
litellm_settings:
master_key: sk-my-local-litellm-key # Claude Code 用的假 API Key
drop_params: true # 忽略 xAI 不支援的 Claude 專屬參數
```
**為什麼用 `non-reasoning` 模型?**
Claude Code 本身是 agentic AIreasoning 在 Claude Code 層進行。底層模型使用 non-reasoning 版本可避免 LiteLLM 的參數轉換 bug`reasoningEffort` camelCase 問題),速度也更快。
## 注意事項
- `.env` 內含真實 API Key請加入 `.gitignore` 避免上傳
- 修改 `litellm_config.yaml` 後需重啟 docker 才會生效
- `~/.claude/settings.json` 修改後**立即生效**,不需重啟