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 found 或 Connection 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.pyGemma 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.pyGemma 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/s | 100+ 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 雲端。很多團隊採用混合策略:日常小事用本機,一週一兩個難題才走雲端。
相關文章
- Ollama 執行 Gemma 4 完整指南(2026) — Ollama 深度玩法,含 GPU 參數與上下文窗設定
- 2026 年最佳本機 AI 程式模型 — Gemma 4 與 Qwen 3、DeepSeek、Llama 等橫向比較
- Gemma 4 vs Qwen 3 全面比較 — 挑選本機預設模型時的對照表
Stop reading. Start building.
~/gemma4 $ Get hands-on with the models discussed in this guide. No deployment, no friction, 100% free playground.
Launch Playground />


