Appearance
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
- 下载
lit.windows_x86_64.exe(从 LiteRT-LM releases 页面) - 如需 GPU 加速,还需下载 DirectXShaderCompiler(
dxczip),将dxil.dll和dxcompiler.dll复制到lit.exe同级目录 - 测试启动:
.\lit.windows_x86_64.exe serve --verbose
Linux
bash
# 下载后赋予执行权限
chmod a+x lit.linux_x86_64
# 测试启动
./lit.linux_x86_64 serve --verbosemacOS
bash
chmod a+x lit.macos_arm64
./lit.macos_arm64 serve --verbosemacOS 安全提示:如果遇到"无法验证开发者"报错,前往"系统设置 → 隐私与安全性 → 安全性",点击"仍要打开";或在终端运行:
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"
}
}
}
}配置字段说明:
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
enabled | boolean | 是 | true 才生效 |
classifier.host | string | 是 | 本地运行时地址,格式 http://localhost:<port> |
classifier.model | string | 是 | 必须为 "gemma3-1b-gpu-custom" |
重要:修改配置后需要重启 Gemini CLI 才能生效。
与云端模型路由的区别
| 维度 | 本地 Gemma 路由 | 云端托管路由 |
|---|---|---|
| API 费用 | 路由决策无额外费用 | 消耗 API Token 配额 |
| 延迟 | 本地推理(无网络延迟) | 依赖网络 |
| 设置成本 | 需下载约 970MB + 运行后台服务 | 零配置 |
| 稳定性 | 实验性,行为可能变化 | 生产可用 |
常见问题
Q: 启动 LiteRT-LM 后 Gemini CLI 还是使用云端路由,怎么确认本地路由是否生效?
A: 确认三件事:① settings.json 中 experimental.gemmaModelRouter.enabled 为 true;② host 端口和 LiteRT-LM 启动端口一致;③ 修改配置后重启了 Gemini CLI。可以在 LiteRT-LM 的日志里看到是否有请求到达验证。
Q: 本地运行时能持续在后台运行吗?
A: 可以。Windows 上可以用任务计划程序或 NSSM 将其注册为服务;Linux/macOS 上可以用 systemd 服务或 launchd plist 配置开机自启。
Q: 本地路由会影响主对话质量吗?
A: 不影响。本地路由只负责"选择用哪个模型回答"的决策,实际生成内容仍由你配置的主模型(如 gemini-2.5-pro)完成。