0% read

Gemma 4 接入 OpenAI Codex CLI:零成本本地 AI 编程助手搭建指南(2026)

2026/04/16

Gemma 4 接入 OpenAI Codex CLI:零成本本地 AI 编程助手搭建指南(2026)

OpenAI 在 2026 年 4 月初发布了 Codex CLI,开发者社区立刻炸锅了——能不能别用 OpenAI 的付费 API,直接换成本地模型来跑?

答案是可以。Gemma 4 能够直接替代 OpenAI 模型接入 Codex CLI,给你一个完全在本地运行的 AI 编程助手:不花一分钱、代码不出本机、断网也能用。

这篇指南会从头带你走一遍完整流程——从安装 Ollama 到用 Gemma 4 26B 或 31B 跑通第一个 Codex 命令。如果你一直在等一个不用把公司代码发到云端的 Codex 使用方案,这就是了。

OpenAI Codex CLI 是什么?

Codex CLI 是 OpenAI 推出的终端 AI 编程工具,可以理解成"命令行版的 GitHub Copilot"——不在编辑器里用,而是直接在终端里对话式写代码。它能做什么:

  • 自然语言生成代码codex "创建一个带 JWT 鉴权的 REST API"
  • 解释复杂代码codex explain app/main.py
  • 重构函数codex refactor --improve-performance
  • 调试报错codex fix --error "TypeError: undefined is not a function"

默认情况下,Codex CLI 会调用 OpenAI 的云端 API(GPT-4 或同级模型)。但它底层是一个标准的 OpenAI 格式 HTTP 客户端——这意味着任何兼容 OpenAI 接口的后端(Ollama、LM Studio、vLLM 都行)都能接。整个方案的关键就在这里。

为什么要用 Gemma 4 替代 OpenAI?

三个实打实的理由。

第一,隐私。 你的代码一行都不会离开本机。没有任何供应商能看到你的业务逻辑、API 密钥或数据库结构。对数据合规要求严格的公司来说,这是硬性需求,不是加分项。

第二,成本。 OpenAI 按 token 收费,而 Codex 习惯把整个文件喂进上下文。一次中等规模项目的重构可能就烧掉 5-10 美元。Gemma 4 在本地跑永久免费,Agent 挂一宿也不花一分钱。

第三,离线。 本地模型在飞机上、山里、公司内网防火墙后面都能用。如果你经常出差或在受限环境下工作,本地方案是唯一选择。

以前本地模型的短板是质量——太笨了,写不了正经代码。Gemma 4 改变了这一点。26B 和 31B 在多步推理、function calling 和结构化输出方面的能力已经够用,能胜任真实的开发工作。

准备工作

开始之前,你需要:

  • Ollama:已安装(ollama.com
  • Gemma 4:26B 或 31B 模型(下面会教你下载)
  • OpenAI Codex CLI:通过 npm 安装
  • Node.js 20+ 工具链
  • 硬件要求:26B 至少 16GB 内存,31B 至少 24GB

不确定该选哪个模型?简单说:26B MoE 是笔记本的最佳选择,因为单 token 只激活约 4B 参数;如果你有台式机或 24GB+ 内存,31B Dense 在长链路任务上更聪明。

第一步:安装 Ollama 并下载 Gemma 4

Ollama 是跑本地模型最简单的方式,它帮你搞定模型下载、量化和 API 服务。

安装 Ollama

# macOS
brew install ollama

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

# Windows:去 ollama.com 下载安装程序双击即可

下载 Gemma 4

对大多数编程任务,Gemma 4 26B(MoE 版) 是性价比最高的选择。它比 31B 快,且同一时刻只激活 4B 参数,在 16GB 内存的 MacBook 上就能流畅运行:

ollama pull gemma4:26b-a4b

如果你内存更大(24GB 以上)且追求最佳质量,用 31B

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

你应该能看到一个 JSON 响应,列出已下载的模型(包括 gemma4:26b-a4b)。如果 curl 卡住或拒绝连接,说明服务没起来——检查 11434 端口是否被占用。

第三步:安装 OpenAI Codex CLI

Codex CLI 通过 npm(Node.js 包管理器)分发:

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 太简单,下面是真实开发中用得上的四个场景。

1. 生成 REST 端点

codex "创建一个 FastAPI 端点,接收 POST 请求(email 和 password),校验后返回 JWT token"

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")

2. 解释陌生代码

存为 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),并建议用记忆化优化。

3. 重构提升性能

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)——教科书式答案。

4. 自动修 Bug

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
网络延迟0ms0ms200-500ms
单次任务成本$0$0$0.15-0.30
月费用(每周 100 次)$0$0$60-120
隐私完全本地完全本地上传云端
离线可用

纸面吞吐差距看着吓人,但没有网络延迟的情况下,短任务的总耗时几乎一样。云端真正的优势场景是在大仓库上跑多步 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 卡住或超时

大概率是内存不够在疯狂换页。把 31B 换成 26B,或者用 Q4 量化版本。也可以给 Codex 命令加 --timeout 120

输出质量差

模糊的 prompt 对本地模型的伤害比对 GPT-4 大得多。别写"让代码更好",写"把这个函数改为 async/await 并加上结构化错误处理"。

进阶:Function Calling

Gemma 4 支持 OpenAI 风格的工具调用,这意味着 Codex CLI 能驱动真实的外部动作——查 GitHub Issues、跑测试套件、查生产数据库慢查询。用 JSON Schema 定义工具,通过 --tools tools.json 传给 Codex,Gemma 4 会自动选合适的函数并在返回结果上继续推理。完整实战见《Gemma 4 Function Calling 实战》

常见问题(FAQ)

Q:可以用 Gemma 4 E2B 或 E4B 代替 26B 吗? A:理论上可以,实际不行。小模型只能写简单片段,稍有上下文就崩。Codex 场景请坚持 26B 或 31B。

Q:Windows 能用吗? A:可以。Ollama 原生支持 Windows 11,Codex CLI 是 Node.js 应用。唯一差别是用 PowerShell 的 $env: 语法设置环境变量。

Q:能把 Gemma 4 接到 Cursor、Continue、Aider 里吗? A:任何支持 OpenAI 格式 API 的工具都行。Base URL 指向 http://localhost:11434/v1,模型名填好,收工。我们还有专门的 Aider 接入Claude Code Router 接入 指南。

Q:这套方案总共花多少钱? A:0 元。Ollama 免费、Gemma 4 开源、Codex CLI 免费。唯一成本是电费。

Q:编程场景下 Gemma 4 和 Qwen 3 哪个更好? A:Gemma 4 在指令跟随和结构化 JSON 输出上更强;Qwen 3 在相同硬件上有时更快,中文场景略有优势。详见《Gemma 4 vs Qwen 3 全面对比》

Q:树莓派能跑吗? A:只能跑最小的 E2B,而且只能当玩具用。真正做开发需要 16GB+ 内存的笔记本。

Q:如果 Gemma 4 31B 的质量还是不够用怎么办? A:取消 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

相关教程

Gemma 4 接入 OpenAI Codex CLI:零成本本地 AI 编程助手搭建指南(2026) | 博客