Skip to content

Gemini CLI 支持用本地运行的 Gemma 3 1B 模型取代云端托管模型进行路由决策,通过 LiteRT-LM 运行时提供 HTTP 端点。优势是降低路由相关的 API 费用,缺点是需要下载约 970MB 的模型并维护本地服务。当前为实验性功能,需要在 settings.json 中显式开启。

本地模型路由(实验性)

注意:本功能为实验性功能。

Gemini CLI 默认使用云端托管模型进行模型路由决策。启用本地模型路由后,将改为使用本地运行的 Gemma 3 1B 模型通过 LiteRT-LM 运行时处理路由判断,从而减少路由决策对托管模型 API 的调用次数。


前置条件

  • 本地机器有足够的存储空间(模型约 970MB)
  • 支持平台:Windows x86_64、Linux x86_64、macOS ARM64

第一步:下载 LiteRT-LM 运行时

LiteRT-LM 是 Google 提供的轻量级本地模型运行时。

Windows

  1. 下载 lit.windows_x86_64.exe(从 LiteRT-LM releases 页面)
  2. 如需 GPU 加速,还需下载 DirectXShaderCompiler(dxc zip),将 dxil.dlldxcompiler.dll 复制到 lit.exe 同级目录
  3. 测试启动:.\lit.windows_x86_64.exe serve --verbose

Linux

bash
# 下载后赋予执行权限
chmod a+x lit.linux_x86_64
# 测试启动
./lit.linux_x86_64 serve --verbose

macOS

bash
chmod a+x lit.macos_arm64
./lit.macos_arm64 serve --verbose

macOS 安全提示:如果遇到"无法验证开发者"报错,前往"系统设置 → 隐私与安全性 → 安全性",点击"仍要打开";或在终端运行:xattr -d com.apple.quarantine lit.macos_arm64


第二步:下载 Gemma 模型

使用 LiteRT-LM 命令下载模型(需要同意 Gemma 使用条款):

bash
# Windows
.\lit.windows_x86_64.exe pull gemma3-1b-gpu-custom

# Linux
./lit.linux_x86_64 pull gemma3-1b-gpu-custom

# macOS
./lit.macos_arm64 pull gemma3-1b-gpu-custom

下载过程会提示阅读并同意 Gemma 使用条款,输入 Y 确认后开始下载(约 968.6MB)。


第三步:启动本地运行时

bash
# Windows(端口 9379)
.\lit.windows_x86_64.exe serve --port=9379 --verbose

# Linux/macOS
./lit.linux_x86_64 serve --port=9379 --verbose
# 或
./lit.macos_arm64 serve --port=9379 --verbose

可选:验证服务是否正常响应:

Linux/macOS

bash
curl "http://localhost:9379/v1beta/models/gemma3-1b-gpu-custom:generateContent" \
  -H 'Content-Type: application/json' \
  -X POST \
  -d '{"contents":[{"role":"user","parts":[{"text":"Tell me a joke."}]}]}'

Windows(PowerShell)

powershell
$uri = "http://localhost:9379/v1beta/models/gemma3-1b-gpu-custom:generateContent"
$body = @{contents = @( @{
  role = "user"
  parts = @( @{ text = "Tell me a joke." } )
})} | ConvertTo-Json -Depth 10

Invoke-RestMethod -Uri $uri -Method Post -Body $body -ContentType "application/json"

如果返回一段笑话文本,说明本地运行时工作正常。


第四步:在 settings.json 中启用

json
{
  "experimental": {
    "gemmaModelRouter": {
      "enabled": true,
      "classifier": {
        "host": "http://localhost:9379",
        "model": "gemma3-1b-gpu-custom"
      }
    }
  }
}

配置字段说明

字段类型必填说明
enabledbooleantrue 才生效
classifier.hoststring本地运行时地址,格式 http://localhost:<port>
classifier.modelstring必须为 "gemma3-1b-gpu-custom"

重要:修改配置后需要重启 Gemini CLI 才能生效。


与云端模型路由的区别

维度本地 Gemma 路由云端托管路由
API 费用路由决策无额外费用消耗 API Token 配额
延迟本地推理(无网络延迟)依赖网络
设置成本需下载约 970MB + 运行后台服务零配置
稳定性实验性,行为可能变化生产可用

常见问题

Q: 启动 LiteRT-LM 后 Gemini CLI 还是使用云端路由,怎么确认本地路由是否生效?

A: 确认三件事:① settings.jsonexperimental.gemmaModelRouter.enabledtrue;② host 端口和 LiteRT-LM 启动端口一致;③ 修改配置后重启了 Gemini CLI。可以在 LiteRT-LM 的日志里看到是否有请求到达验证。

Q: 本地运行时能持续在后台运行吗?

A: 可以。Windows 上可以用任务计划程序或 NSSM 将其注册为服务;Linux/macOS 上可以用 systemd 服务或 launchd plist 配置开机自启。

Q: 本地路由会影响主对话质量吗?

A: 不影响。本地路由只负责"选择用哪个模型回答"的决策,实际生成内容仍由你配置的主模型(如 gemini-2.5-pro)完成。