0% read

Gemma 4 搭配 OpenAI Codex CLI:打造零成本本機 AI 程式助理完整教學(2026)

Apr 16, 2026

Gemma 4 搭配 OpenAI Codex CLI:打造零成本本機 AI 程式助理完整教學(2026)

OpenAI 在 2026 年 4 月初推出 Codex CLI 之後,Hacker News 上最早炸開的那串討論不是「能不能用」,而是——可不可以把它指向本機模型,別再按 token 付費?

答案是:可以。Codex CLI 願意跟任何相容 OpenAI 格式的 API 端點對話,而用 Ollama 跑起來的 Gemma 4 就是最乾淨的替代方案之一。結果是一個在終端機裡的程式助理:不花一毛錢、程式碼不外流、在飛機上或公司防火牆後面都能繼續工作。

這篇教學會從頭走一次完整流程——安裝 Ollama、下載對的 Gemma 4 版本、設定環境變數、最後用四個真實情境驗證整套組合。如果你一直因為 API 帳單或資安審查遲遲不敢導入 Codex,就是這篇了。

OpenAI Codex CLI 是什麼?

Codex CLI 是 OpenAI 推出、住在終端機裡的程式代理——可以想成「命令列版的 GitHub Copilot」,差別是你不在編輯器裡用,而是直接在 shell 跟它對話:

  • 產生程式碼:codex "建立一個帶 JWT 驗證的 REST API"
  • 解釋檔案:codex explain app/main.py
  • 重構:codex refactor src/cache.ts --goal "降低記憶體占用"
  • 修錯:codex fix --error "TypeError: undefined is not a function"

預設它會打 api.openai.com,但底層其實是一個標準 OpenAI 格式的 HTTP client。這代表任何會講 chat completions 協定的後端——Ollama、LM Studio、vLLM、Llama.cpp 的 server——都能接。本文全部的訣竅就在這。

為什麼要用 Gemma 4 取代 OpenAI?

三個在實務上站得住腳的理由。

第一,隱私。 程式碼一行都不會離開本機。任何供應商都看不到你的商業邏輯、金鑰或資料庫 schema。對於需要符合個資法、ISO 27001 或公司內部原始碼不得外流規範的團隊來說,這是硬性需求。

第二,成本。 OpenAI 以 token 計價,而 Codex 傾向把整個檔案塞進上下文。在中型專案跑一次重構,不知不覺就燒掉五到十美元。Gemma 4 在你的筆電上跑,成本正好是零——Agent 掛整夜也完全不用錢。

第三,離線可用。 高鐵、飛機、客戶現場、封閉網路環境。如果你經常在網路不穩或不准連外的場景工作,本機方案不是加分題,是唯一選擇。

兩年前這套還不實用,因為品質不行——本機模型寫不出像樣的程式碼。Gemma 4 補上了這個缺口。26B MoE 與 31B Dense 在指令遵循、function calling 與結構化輸出上已經夠強,強到你會忘記自己正處於離線狀態。

前置條件

開始之前請準備好:

  • Ollama:已安裝(ollama.com
  • Gemma 4:26B 或 31B 模型(下面會選)
  • OpenAI Codex CLI:透過 npm 安裝
  • Node.js 20 以上
  • 硬體需求:26B 至少需要 16GB 記憶體,31B 建議 24GB 以上

不確定挑哪個尺寸?簡單說:26B MoE 是筆電的甜蜜點,因為每個 token 只會啟用約 4B 參數;如果你用桌機且記憶體有餘裕,31B Dense 在長鏈推理任務上明顯更聰明。

步驟一:安裝 Ollama 並下載 Gemma 4

Ollama 把模型下載、量化與本機 HTTP 服務整合在一個執行檔裡,幾乎不用額外設定。

安裝 Ollama

# macOS
brew install ollama

# Linux
curl -fsSL https://ollama.com/install.sh | sh

# Windows:到 ollama.com 下載安裝程式執行即可

下載模型

對大多數程式任務,Gemma 4 26B(MoE 版) 是 C/P 值最高的選擇:

ollama pull gemma4:26b-a4b

如果你記憶體寬裕(24GB 以上統一記憶體或 24GB 獨顯)且追求最佳品質,下載 31B Dense

ollama pull gemma4:31b

下載量約 15–20GB。完成後驗證:

ollama run gemma4:26b-a4b "寫一個 Python 函式把字串反轉"

看到合理的回答就代表這步完成。

步驟二:啟動 Ollama API 服務

Ollama 預設在 http://localhost:11434/v1 提供 OpenAI 相容 API。在獨立的終端機視窗啟動:

ollama serve

這個視窗保持開啟。另開一個終端機驗證服務是否正常:

curl http://localhost:11434/v1/models

應該會看到包含 gemma4:26b-a4b 的 JSON 回應。如果 curl 卡住或連線被拒,檢查 11434 埠是否被別的程序占用。

步驟三:安裝 OpenAI Codex CLI

Codex CLI 透過 npm 發布:

npm install -g @openai/codex-cli
codex --version

看到 1.x.x 或更新版號就成功了。若安裝失敗,請先確認 Node.js 是 20 以上——Codex 使用較新的 fetch API。

步驟四:把 Codex CLI 指向 Gemma 4

Codex CLI 遵循 OpenAI SDK 的標準環境變數,只要改三個就能把請求導向 Ollama。

macOS / Linux

編輯 ~/.zshrc~/.bashrc

export OPENAI_API_BASE="http://localhost:11434/v1"
export OPENAI_API_KEY="ollama"   # 只要非空字串即可
export CODEX_MODEL="gemma4:26b-a4b"

重新載入:source ~/.zshrc

Windows(PowerShell)

$env:OPENAI_API_BASE = "http://localhost:11434/v1"
$env:OPENAI_API_KEY  = "ollama"
$env:CODEX_MODEL     = "gemma4:26b-a4b"

小型測試

codex "用 Python 印出 hello world"

預期輸出:

print("Hello, World!")

若出現 Model not foundConnection refused,跳到下方的疑難排解

步驟五:四個實戰情境

Hello World 不算考試。下面四個才是 Codex CLI 的日常用法。

一、產生 REST 端點

codex "建立一個 FastAPI 端點,接收 email 與 password,驗證後回傳 JWT"

Gemma 4 26B 會產出類似:

from fastapi import FastAPI, HTTPException
from pydantic import BaseModel, EmailStr
from datetime import datetime, timedelta
import jwt

app = FastAPI()
SECRET_KEY = "your-secret-key"

class UserLogin(BaseModel):
    email: EmailStr
    password: str

@app.post("/login")
def login(user: UserLogin):
    if user.email == "user@example.com" and user.password == "password123":
        token = jwt.encode(
            {"sub": user.email, "exp": datetime.utcnow() + timedelta(hours=1)},
            SECRET_KEY, algorithm="HS256",
        )
        return {"access_token": token, "token_type": "bearer"}
    raise HTTPException(status_code=401, detail="Invalid credentials")

二、解釋不熟悉的程式碼

存成 complex.py

def f(n): return n if n < 2 else f(n-1) + f(n-2)

接著:

codex explain complex.py

Gemma 4 會辨認這是最樸素的遞迴費波那契,指出 O(2^n) 的時間複雜度並建議加上記憶化。

三、重構以提升效能

codex refactor complex.py --goal "optimize for speed"

預期改寫:

from functools import lru_cache

@lru_cache(maxsize=None)
def f(n):
    return n if n < 2 else f(n-1) + f(n-2)

一行裝飾器就把 O(2^n) 降到 O(n),教科書標準答案。

四、自動修復錯誤

codex fix --error "TypeError: 'NoneType' object is not subscriptable" --file app.py

Gemma 4 會掃過 app.py,找出對可能為 None 的回傳值做索引的那一行,並送出補上空值防護的 patch。

本機 Gemma 4 vs 雲端 OpenAI:差距有多大?

維度Gemma 4 26B(本機)Gemma 4 31B(本機)GPT-4 級(雲端)
程式產生品質接近 GPT-3.5接近 GPT-4最強
吞吐速度20–40 t/s(M1/M2)15–30 t/s100+ t/s
網路延遲0 毫秒0 毫秒200–500 毫秒
單次任務成本0 元0 元NT$5–10
月費(每週 100 次)0 元0 元NT$1,800–3,600
隱私完全本機完全本機上傳雲端
離線可用

帳面上的吞吐差距看起來驚人,但在沒有網路延遲加持下,短任務的體感時間幾乎一樣。雲端真正占上風的是大型專案的多步 Agent 迴圈——那裡 100+ t/s 的優勢會累積放大。

硬體實測數據請見《Gemma 4 在 Mac 上的效能測試:M1 到 M4》《NVIDIA RTX 跑 Gemma 4 指南》

疑難排解

「Connection refused」

Ollama 沒啟動,或者監聽在別的埠。先跑 curl http://localhost:11434/v1/models,若失敗就重跑 ollama serve,並確認 11434 埠沒被占走。

「Model not found」

ollama list 會顯示實際安裝的完整標籤名。CODEX_MODEL 必須逐字元對應(要寫 gemma4:26b-a4b,不是 gemma4-26b)。

Codex 卡住或逾時

通常是模型塞不進記憶體導致 swap。把 31B 換成 26B,或降到 Q4 量化版。也可以加 --timeout 120 拉長逾時秒數。

輸出品質糟糕

模糊指令對本機模型的殺傷力比對 GPT-4 大得多。不要寫「寫得更好一點」,要寫「把這個函式改成 async/await 並加上結構化錯誤處理」。

進階:Function Calling

Gemma 4 支援 OpenAI 風格的 tool call,因此 Codex CLI 可以觸發真實的外部動作——查 GitHub Issues、跑測試套件、查 staging 資料庫。把工具用 JSON Schema 定義好,透過 --tools tools.json 傳給 Codex,Gemma 4 會自動挑合適的函式並根據回傳結果繼續推理。完整實戰見《Gemma 4 Function Calling 實戰》

常見問題(FAQ)

問:可以用 Gemma 4 E2B 或 E4B 取代 26B 嗎? 答:技術上可以,實務上不行。Edge 版只在瑣碎片段能用,一進入真實脈絡就崩。Codex 用途請堅守 26B 或 31B。

問:Windows 能用嗎? 答:可以。Ollama 原生支援 Windows 11,Codex CLI 是 Node.js 應用。唯一差別是用 PowerShell 的 $env: 語法設定環境變數。

問:同一套可以接上 Cursor、Continue、Aider 嗎? 答:只要工具支援 OpenAI 格式 API 都能接。把 base URL 指向 http://localhost:11434/v1、設定模型名稱即可。我們另有專門的 Aider 接入Claude Code Router 接入教學。

問:整套方案總共花多少錢? 答:0 元。Ollama、Gemma 4、Codex CLI 全都免費。唯一增加的是電費。

問:程式開發用 Gemma 4 還是 Qwen 3 比較好? 答:Gemma 4 在指令遵循與結構化 JSON 輸出上較強;Qwen 3 在同硬體上有時更快,中文場景略有優勢。完整比較看《Gemma 4 vs Qwen 3》

問:樹莓派跑得動嗎? 答:只能跑最小的 E2B,而且只適合玩具等級的 prompt。要做 Codex 等級的工作需要至少 16GB 記憶體的筆電。

問:萬一 31B 的品質還是不夠? 答:把 OPENAI_API_BASE 環境變數拿掉就切回 OpenAI 雲端。很多團隊採用混合策略:日常小事用本機,一週一兩個難題才走雲端。

相關文章

gemma4 — interact

Stop reading. Start building.

~/gemma4 $ Get hands-on with the models discussed in this guide. No deployment, no friction, 100% free playground.

Launch Playground />
Gemma 4 AI

Gemma 4 AI

Related Guides

Gemma 4 搭配 OpenAI Codex CLI:打造零成本本機 AI 程式助理完整教學(2026) | 部落格