跳至主要內容

用文字編輯器手工打造 docx

「docx 說到底不就是 zip 嗎? 那把 XML 壓成 zip 再改個副檔名,不就變成 docx 了?」

抱著這個想法實際試了一下,結果理所當然地失敗了。docx 並不「只是」zip 而已,zip 裡的內容必須遵循一套固定的封裝結構,也就是 OOXML (Office Open XML)。既然都動手了,就順便實際驗證一下,到底要做到什麼程度才能做出貨真價實的 docx。

【2026年7月】生成式 AI 模型比較(Claude、GPT、Gemini、Grok、DeepSeek、Kimi、GLM、Mistral)

透過 OpenRouter,無論是 Claude、GPT、Gemini 這類封閉模型,還是源自中國的開源權重模型, 都能自由切換使用。不過「到底該選哪一個」還是常常讓人猶豫,這次就大致比較了一下主要模型的 價格與實力。

「開源」與「封閉」到底是什麼意思

  • 封閉(Closed):像 Claude、GPT、Gemini、Grok 這類模型,其內部(權重)並未公開, 只能透過該公司的伺服器使用。
  • 開源權重(Open-weight):像 DeepSeek、Kimi、GLM、Mistral 這類模型,內部是公開的, 任何人都能在自己的電腦或雲端上運行。

依等級劃分的價格

先從最重量級的價格開始看。

Pro 等級 價格比較

可以看到,Claude Fable 5 貴得驚人(輸出每 1M token $50),而 DeepSeek V4 Pro 的輸出 僅需 $0.87。即使同樣掛著「Pro」的名號,價差竟然超過 50 倍。開源陣營(綠色標籤)全面 偏低價,一目瞭然。

再來看看中量級和輕量級。

Mid 等級 價格比較 Nano 等級 價格比較

到了輕量級,GPT-5 nano 的輸出價格僅 $0.40,幾乎達到「隨便用」的等級。若只是做簡單的 分類作業或草稿生成,這個等級往往就綽綽有餘。

看看性價比

單看價格,容易讓人覺得「便宜的模型性能應該也差」,但實際上並非如此。這裡先不分等級, 把價格與 Intelligence Index 分數都齊全的 20 個模型彙整成一張圖。盡量涵蓋了 GPT、Gemini、 Qwen、Llama、Gemma、Mistral 等眾多模型,不分開源或封閉。

成本 vs 性能散點圖(全部模型)

縱軸是「Intelligence Index」這項綜合能力分數(詳見後述)。虛線連接的「性價比前緣」由 跨越 Nano、Mid、Pro 三個等級的 7 個模型構成:Gemma 3 27B → DeepSeek V4 Flash → DeepSeek V4 Pro → Kimi K2.6 → Gemini 3.1 Pro → Claude Opus 4.8 → Claude Fable 5DeepSeek V4 Pro 輸出價格僅 $0.87,分數卻逼近 Gemini 3.1 Pro($12.00),實質上已成為 性價比的起點,一枝獨秀。另一方面,位於前緣內側的 Qwen3.7 Max、MiniMax M3、GLM 5.2、 Claude Sonnet 5、Gemini 3 Flash、Grok 4.20、Claude Haiku 4.5、Gemini 3.1 Flash-Lite、 Qwen3-Coder、Mistral Large 3、Llama 4 Maverick、Llama 4 Scout 等模型,相較同價位的其他 模型,實力則略顯遜色。

若重視性價比,不妨先從最便宜的位置開始嘗試。

到底哪個模型最聰明

再來看看綜合能力與程式撰寫能力的排名。

綜合基準測試:Artificial Analysis Intelligence Index 程式實務能力:SWE-bench Verified

第一張圖的「綜合能力」,是第三方基準測試機構 Artificial Analysis Intelligence Index 的分數;第二張圖的「程式撰寫能力」,是 SWE-bench Verified 的分數,這項測試衡量的是 模型能解決多少實際存在的軟體錯誤修復課題。兩者都不是模型廠商的自我申報,而是由外部評測 網站實際測量並公布的數值。

在綜合能力上,Claude Fable 5 以領先 GPT-5.5 約 5 分的成績奪冠,Claude Opus 4.8、 GPT-5.5、Gemini 3.1 Pro 則以些微差距緊隨其後。僅看程式撰寫能力的話,Claude Fable 5 更是以 95% 的分數一枝獨秀。有趣的是,緊追在後的開源模型 DeepSeek V4 Pro,居然能與 封閉陣營並駕齊驅。

附贈:開源模型「內部規模」有多大

開源權重模型由於內部公開,因此也能得知其參數量(模型規模)。長條圖中深綠色部分是實際 推理時使用的「活性化參數」,淺綠色則是 MoE(Mixture of Experts)架構下,當下未被使用的 其餘專家部分。

開源權重模型的參數量

DeepSeek V4 Pro 以總計 1.6 兆參數居冠,但實際運行時只使用其中的 490 億(得益於 MoE 機制)。規模雖大卻能輕快運行,正是重點所在。圖中唯獨 Gemma 3 27B 的長條全為深綠色, 這是因為它並非 MoE,而是每次都會用到全部參數的「dense(密集)」架構。密集模型的總參數量 等於活性化參數量,因此與 MoE 陣營相比,其規模比較的意義略有不同,需特別留意。

結論:該選哪一個

  • 不管怎樣就是要最聰明的 → Claude Fable 5 或 Claude Opus 4.8(要有花大錢的心理準備)
  • 重視性價比,也想拿來寫程式 → DeepSeek V4 Pro(便宜到不行卻相當優秀)
  • 日常使用的均衡型 → Claude Sonnet 5 或 Gemini 3 Flash
  • 不管怎樣就是要便宜大量處理 → GPT-5 nano 或 DeepSeek V4 Flash

由於價格與排名的變動速度都很快,實際使用前別忘了到 openrouter.ai/models 確認最新資訊。

分數的資料來源

本文所使用的基準測試分數,來源如下。兩者皆為獨立於模型廠商之外的第三方評測網站所測量並 公布的數值。

另外,Kimi K2.6 / Qwen3.7 Max 的 SWE-bench Verified 分數在不同資料來源間存在近似值混雜的 情形,故僅作為參考值處理。

在 Claude Code 中使用 GLM-5.2 / GLM-4.7-Flash 模型

Claude Code CLI(claude)不只能用 Anthropic 原生模型,透過 OpenRouter 提供的 Anthropic Messages API 相容端點(「Anthropic Skin」),也能讓任意模型作為後端運作。這次我 嘗試了將對話主模型設為 z-ai/glm-5.2、標題產生等輕量背景任務用的模型設為 z-ai/glm-4.7-flash 的設定,這裡整理一下作法。

參考: https://openrouter.ai/docs/cookbook/coding-agents/claude-code-integration

前提條件

  • 已將 OpenRouter 的 API 金鑰設定於 $env:OPENROUTER_API_KEY
  • 即使已用 claude.ai 帳號登入 Claude Code,只要有透過環境變數的驗證,就會優先採用該方式。 此時會出現 ⚠ claude.ai connectors are disabled ... 的警告,但不影響實際運作。

所需的環境變數

變數備註
ANTHROPIC_BASE_URLhttps://openrouter.ai/apiOpenRouter 的 Anthropic 相容端點
ANTHROPIC_AUTH_TOKENOpenRouter 的 API 金鑰Authorization: Bearer 傳送
ANTHROPIC_API_KEY""(明確設為空字串)若未設定或非空,驗證方式會衝突而導致錯誤
ANTHROPIC_MODELz-ai/glm-5.2主要對話模型。直接指定 OpenRouter 上的模型 ID
ANTHROPIC_SMALL_FAST_MODELz-ai/glm-4.7-flash用於標題產生等輕量背景任務的子模型

主模型與子模型的區分使用

ANTHROPIC_MODEL 只控制主要對話模型。Claude Code 內部用於標題產生、 auto-mode 判斷等輕量、高速任務的子模型,則由 ANTHROPIC_SMALL_FAST_MODEL 指定。 只要設定這個變數,就能確實切換輕量任務所使用的模型。

設定方法

方法A:以專案為單位啟用(推薦)

在儲存庫的 .claude/settings.local.json 中設定如下內容。

{
"env": {
"ANTHROPIC_BASE_URL": "https://openrouter.ai/api",
"ANTHROPIC_API_KEY": "",
"ANTHROPIC_MODEL": "z-ai/glm-5.2",
"ANTHROPIC_SMALL_FAST_MODEL": "z-ai/glm-4.7-flash"
}
}

ANTHROPIC_AUTH_TOKEN(機密資訊)不要寫入檔案,而是在 shell 端由 OPENROUTER_API_KEY 提供。只要在 PowerShell 設定檔($PROFILE)中加入以下內容一次, 之後每次開啟 shell 都會自動設定完成。

$env:ANTHROPIC_AUTH_TOKEN = $env:OPENROUTER_API_KEY

bash/zsh 的情況,則在 ~/.bashrc~/.zshrc 中加入:

export ANTHROPIC_AUTH_TOKEN="$OPENROUTER_API_KEY"

在此狀態下於此目錄中執行 claude -p "...",就會自動讀取 .claude/settings.local.json 的設定,讓主模型與子模型都透過 OpenRouter 運作。 不會影響其他專案中 Claude Code 的執行。

方法B:僅針對特定指令暫時切換

若不想修改 shell 設定檔,可以在執行時當場指定環境變數。

PowerShell:

$env:ANTHROPIC_BASE_URL = "https://openrouter.ai/api"
$env:ANTHROPIC_AUTH_TOKEN = $env:OPENROUTER_API_KEY
$env:ANTHROPIC_API_KEY = ""
$env:ANTHROPIC_MODEL = "z-ai/glm-5.2"
$env:ANTHROPIC_SMALL_FAST_MODEL = "z-ai/glm-4.7-flash"
claude -p "1+1は?"

bash:

ANTHROPIC_BASE_URL="https://openrouter.ai/api" \
ANTHROPIC_AUTH_TOKEN="$OPENROUTER_API_KEY" \
ANTHROPIC_API_KEY="" \
ANTHROPIC_MODEL="z-ai/glm-5.2" \
ANTHROPIC_SMALL_FAST_MODEL="z-ai/glm-4.7-flash" \
claude -p "1+1は?"

方法C:設為整台機器的預設值(不推薦)

若將上述變數持久化為 Windows 的使用者環境變數,任何終端機、任何專案都會預設透過 OpenRouter/GLM 運作。但這也會影響其他專案中原本打算使用一般 Claude(Anthropic) 的操作,因此除非確實想改變整體預設值,否則建議使用方法A/B。

動作確認

以下指令確認回應內容及計費紀錄(modelUsage)中都記錄了 z-ai/glm-5.2

claude -p "Reply with exactly: OK-GLM-TEST" --output-format json
{
"result": "OK-GLM-TEST",
"modelUsage": {
"z-ai/glm-5.2": { "inputTokens": 3272, "outputTokens": 8, "costUSD": 0.028336 }
}
}

此外,搭配 --debug all 執行稍長的提示詞後,也確認主模型與子模型的 派送實際上都有發生。

[API:timing] dispatching to firstParty model=z-ai/glm-4.7-flash
[API:timing] dispatching to firstParty model=z-ai/glm-5.2

針對單一提示詞,輕量任務正確地交由 z-ai/glm-4.7-flash 處理,正式回應則交由 z-ai/glm-5.2,模型的區分使用是正確的。

已知注意事項:互動式工作階段中的請求增生

在互動式 claude 工作階段(無論是從 VS Code 開啟或直接在 TTY 上啟動)中,即使只是輕微 輸入,OpenRouter 的 Activity 紀錄中同一分鐘內就記錄了多達 13 次 API 呼叫。其中 12 次是 發送給子模型(GLM 4.7 Flash)的小型呼叫,只有最後 1 次是主模型(GLM 5.2)的正式回應。 總成本約在 $0.0094 以內。

另一方面,也確認了透過 claude -p(非互動、print 模式)的單次執行,幾乎不會發生這種 增生現象。若想壓低成本,使用 -p 較為安全。若經常使用互動式工作階段,建議設定 ANTHROPIC_SMALL_FAST_MODEL 讓請求流向便宜的模型,同時透過 OpenRouter 的 Activity 儀表板監控用量。

疑難排解

  • ⚠ claude.ai connectors are disabled because ANTHROPIC_API_KEY or another auth source is set... 這個警告可以忽略(只是 claude.ai 的連接器功能被停用,API 呼叫本身仍會成功)。
  • ANTHROPIC_API_KEY 未設定而非設為空字串,驗證方式可能會變得曖昧而導致錯誤。 務必明確設定為 ""
  • 若想切換至其他模型,只需將 ANTHROPIC_MODEL 改為 OpenRouter 上的模型 ID (例如:anthropic/claude-opus-4-8openai/gpt-5 等)即可。
  • 工具搜尋最佳化(ENABLE_TOOL_SEARCH)在非 Anthropic 主機上預設為停用。 如有需要,請加入 ENABLE_TOOL_SEARCH=true