~/.opencodereview/config.json,三種方式編輯:
ocr config provider / ocr config modelocr config set <key> <value>(適合 CI)| 名稱 | 協定 | Base URL | API key 環境變數 |
|---|---|---|---|
anthropic | anthropic | api.anthropic.com | ANTHROPIC_API_KEY |
openai | openai | api.openai.com/v1 | OPENAI_API_KEY |
dashscope | openai | dashscope.aliyuncs.com | DASHSCOPE_API_KEY |
volcengine | openai | ark.cn-beijing.volces.com | ARK_API_KEY |
deepseek | openai | api.deepseek.com | DEEPSEEK_API_KEY |
kimi | openai | api.moonshot.cn | MOONSHOT_API_KEY |
z-ai | openai | open.bigmodel.cn | Z_AI_API_KEY |
baidu-qianfan | openai | qianfan.baidubce.com | QIANFAN_API_KEY |
siliconflow | openai | api.siliconflow.com | SILICONFLOW_GLOBAL_API_KEY |
| 完整 18 家清單(含 minimax、iflytek、tencent、novita…)見上游 configuration.md——此處列代表。 | |||
任何不在表上的名稱都視為自訂,至少提供 url 與 protocol(anthropic / openai / openai-responses):
ocr config set provider my-gateway
ocr config set custom_providers.my-gateway.url https://gateway.internal.com/v1
ocr config set custom_providers.my-gateway.protocol openai
ocr config set custom_providers.my-gateway.model llama-3-70b
ocr config set custom_providers.my-gateway.api_key "$MY_API_KEY"
ocr config set provider ollama
ocr config set custom_providers.ollama.url http://127.0.0.1:11434/v1
ocr config set custom_providers.ollama.protocol openai
ocr config set custom_providers.ollama.model qwen3:32b
ocr config set custom_providers.ollama.api_key ollama
Ollama 忽略 API key,但自訂 provider 要求非空 api_key,設任意佔位即可。模型本身必須支援原生工具呼叫——選型前看 FAQ 的 "No tool calls parsed"。
| 鍵 | 作用域 | 預設 |
|---|---|---|
providers.<name>.timeout_sec | per-provider | — |
llm.timeout_sec | 舊版 llm 段 | — |
OCR_LLM_TIMEOUT 環境變數 | 覆蓋全部 | 300 秒 |
ocr config set max_tokens 200000
# 或單次覆蓋
ocr review --max-tokens 200000
預設 58,888 token。按檔案計算,與輸出上限、--max-tokens-budget 各自獨立。
| 鍵 | 用途 |
|---|---|
llm.retry_codes | 讓 OCR 對非標準 4xx 臨時錯誤使用重試(如 403,400) |
providers.<name>.extra_body | 發送廠商專屬欄位(如 Bedrock 風格 {"thinking":{"type":"disabled"}}) |
language | 評審評論的語言(中文 / English,預設英文) |
mcp_servers.<name> | MCP server 設定(見 MCP 頁) |
telemetry.* | OpenTelemetry 設定(見 遙測頁) |
已配好 Claude Code 的 ANTHROPIC_*,或 OCR 自己的 OCR_LLM_* 環境變數,OCR 自動識別,無需再寫 config。
OCR 用六步找到 LLM:① OCR_LLM_URL 環境變數 → ② config.json 的 llm.* → ③ config.json 的 providers.* → ④ ANTHROPIC_BASE_URL → ⑤ ANTHROPIC_* → ⑥ OCR_LLM_*。第一步找到完整的 (URL, token, model) 三元組就停。優先級:env > config。所以 CI 用 env、本地用 config 是最佳實踐。
protocol 決定 OCR 如何與你的 LLM 端點通訊:
openai——標準 OpenAI chat completions API(適用大多數相容端點)anthropic——Anthropic Messages API(用 x-api-key header)openai-responses——OpenAI Responses API(較新格式)不確定?用 openai——90% 的第三方端點都相容。
Ollama 端點雖然忽略 API key,但自訂 provider 要求 api_key 非空。設 ocr config set custom_providers.ollama.api_key ollama(任意佔位)。更關鍵的:模型必須支援原生 function calling。只在文字中「描述」工具呼叫的模型(如 deepseek-r1)永遠無法配合——選有 tools 標籤的模型。
Step 1 — 設定 provider
ocr config set provider my-gateway
Step 2 — 設定 URL
ocr config set custom_providers.my-gateway.url https://gateway.internal.com/v1
Step 3 — 設定 protocol
ocr config set custom_providers.my-gateway.protocol openai
Step 4 — 設定 model
ocr config set custom_providers.my-gateway.model llama-3-70b
Step 5 — 設定 API key
ocr config set custom_providers.my-gateway.api_key "$MY_API_KEY"
Step 6 — 測試連通性
ocr llm test
預期產出
✓ LLM endpoint reachable
✓ Model: llama-3-70b
✓ Auth: valid
Connection test passed.
| 錯誤訊息 | 診斷 | 修復 |
|---|---|---|
ocr llm test 回 401/403 | token 缺 scope、過期或廠商不匹配 | 確認 llm.use_anthropic 與 URL 匹配 |
No tool calls parsed | 模型不支援原生 function calling | 選有 tools 標籤的模型(qwen3/claude/gpt-4) |
custom_providers requires non-empty api_key | Ollama 忽略 key 但自訂 provider 要求非空 | 設任意佔位:ocr config set ...api_key ollama |
protocol 的三種取值、以及超時與 max_tokens 的優先級。