今天折腾 Claude Code Router,想接入 Gemini Balance 的 API。以为很简单,结果卡在了一个特别细节的地方。
问题是这样的
我按照文档配置,怎么都连不上。一开始以为是 API key 的问题,检查了好几遍都没问题。然后开始怀疑网络,用 curl 测试发现 API 是通的。
最后发现问题出在 URL 上。
官方的 Gemini API 地址是:
bash
https://generativelanguage.googleapis.com/v1beta/models/
注意最后有个斜杠。
但是 Gemini Balance 给的地址是:
bash
https://url/gemini/v1beta/models/models
没有斜杠,而且多了个 models。
解决过程
我最后的 Balance 的配置C:\Users\xxx\.claude-code-router\config.json
:
json
{
"APIKEY": "",
"LOG": true,
"API_TIMEOUT_MS": 600000,
"NON_INTERACTIVE_MODE": false,
"Providers": [
{
"name": "gemini",
"api_base_url": "https://url/gemini/v1beta/models/models",
"api_key": "your-api-key",
"models": [
"gemini-2.5-pro"
] , "transformer": {
"use": ["gemini"]
}
}
],
"Router": {
"default": "gemini,gemini-2.5-pro",
"background": "gemini,gemini-2.5-pro",
"think": "gemini,gemini-2.5-pro",
"longContext": "gemini,gemini-2.5-pro",
"longContextThreshold": 60000,
"webSearch": "gemini,gemini-2.5-pro"
}
}
配置路由,让所有请求都走这个:
json
"Router": {
"default": "gemini,gemini-2.5-pro",
"background": "gemini,gemini-2.5-pro",
"think": "gemini,gemini-2.5-pro",
"longContext": "gemini,gemini-2.5-pro",
"longContextThreshold": 60000,
"webSearch": "gemini,gemini-2.5-pro"
}
改完配置记得重启:
shell
ccr restart
然后启动:
shell
ccr code
居然就成功了。
为什么这样配置能work
不同的服务商虽然都说自己兼容 OpenAI API,但实际上总有些小差别。URL 路径、请求格式、响应格式都可能不一样。
其他配置
顺便说说其他几个有用的配置:
json
{
"LOG": true,
"API_TIMEOUT_MS": 600000,
"NON_INTERACTIVE_MODE": false
}
LOG: true
可以看到详细的请求日志,调试的时候很有用。
API_TIMEOUT_MS
设置超时时间,Gemini 有时候响应比较慢,设长一点比较安全。
总结
- 不同服务商的 API,哪怕声称兼容,细节上总会有差异
- Claude Code Router 的 transformer 机制确实解决了这个问题
- 遇到问题先开 LOG,能省很多时间
现在 Claude Code 可以正常用 Gemini Balance API 了,写代码的体验还不错。有了这个配置经验,以后接入其他服务商应该会更顺利一些。
关注 【松哥AI自动化】 公众号,每周获取深度技术解析,从源码角度彻底理解各种工具的实现原理。更重要的是,遇到技术难题时,直接联系我!我会根据你的具体情况,提供最适合的解决方案和技术指导。
上期回顾:(跨平台自动化框架的OCR点击操作实现详解与思考)