設定

config.json、18 個內建 provider、環境變數與進階鍵

配置檔在哪

~/.opencodereview/config.json,三種方式編輯:

內建 provider

名稱協定Base URLAPI key 環境變數
anthropicanthropicapi.anthropic.comANTHROPIC_API_KEY
openaiopenaiapi.openai.com/v1OPENAI_API_KEY
dashscopeopenaidashscope.aliyuncs.comDASHSCOPE_API_KEY
volcengineopenaiark.cn-beijing.volces.comARK_API_KEY
deepseekopenaiapi.deepseek.comDEEPSEEK_API_KEY
kimiopenaiapi.moonshot.cnMOONSHOT_API_KEY
z-aiopenaiopen.bigmodel.cnZ_AI_API_KEY
baidu-qianfanopenaiqianfan.baidubce.comQIANFAN_API_KEY
siliconflowopenaiapi.siliconflow.comSILICONFLOW_GLOBAL_API_KEY
完整 18 家清單(含 minimax、iflytek、tencent、novita…)見上游 configuration.md——此處列代表。

自訂 provider

任何不在表上的名稱都視為自訂,至少提供 urlprotocol(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"

用 Ollama 跑本地模型

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_secper-provider
llm.timeout_sec舊版 llm 段
OCR_LLM_TIMEOUT 環境變數覆蓋全部300 秒

每檔 prompt 上限

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。

📖 教學解說:設定深入解析

端點解析鏈:六步找 LLM

OCR 用六步找到 LLM:① OCR_LLM_URL 環境變數 → ② config.jsonllm.* → ③ config.jsonproviders.* → ④ ANTHROPIC_BASE_URL → ⑤ ANTHROPIC_* → ⑥ OCR_LLM_*。第一步找到完整的 (URL, token, model) 三元組就停。優先級:env > config。所以 CI 用 env、本地用 config 是最佳實踐。

自訂 provider 的 protocol 取值

protocol 決定 OCR 如何與你的 LLM 端點通訊:

  • openai——標準 OpenAI chat completions API(適用大多數相容端點)
  • anthropic——Anthropic Messages API(用 x-api-key header)
  • openai-responses——OpenAI Responses API(較新格式)

不確定?用 openai——90% 的第三方端點都相容。

Ollama 的隱藏陷阱

Ollama 端點雖然忽略 API key,但自訂 provider 要求 api_key 非空。設 ocr config set custom_providers.ollama.api_key ollama(任意佔位)。更關鍵的:模型必須支援原生 function calling。只在文字中「描述」工具呼叫的模型(如 deepseek-r1)永遠無法配合——選有 tools 標籤的模型。

🔍 Worked Example:配置自訂 provider + 測試

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/403token 缺 scope、過期或廠商不匹配確認 llm.use_anthropic 與 URL 匹配
No tool calls parsed模型不支援原生 function calling選有 tools 標籤的模型(qwen3/claude/gpt-4)
custom_providers requires non-empty api_keyOllama 忽略 key 但自訂 provider 要求非空設任意佔位:ocr config set ...api_key ollama

練習 / 驗收清單

  • 能找到 config.json 位置並描述三種編輯方式
  • 能區分內建 vs 自訂 provider
  • 能說明 protocol 的三種取值
  • 能解釋超時與 max_tokens 的優先級
  • 能配置 Ollama 本地模型
看完這頁你應該能說出:config 檔位置與三種編輯方式、內建 vs 自訂 provider、protocol 的三種取值、以及超時與 max_tokens 的優先級。

延伸閱讀:快速開始 · CLI 參考 · FAQ