
Claude Code 每月的账单,快把我逼成节俭主义者了。
上个月我用它重构了一个多语言 SaaS 产品的后端,Token 烧掉了将近 。
本来想着这是工具成本,忍了。
结果这个月一看,又快到60 了——我只是在写 API 集成和写测试。
然后我发现,Modal 平台悄悄开放了 GLM-5.1 的免费推理端点。
不限 Token 总量。白嫖。
我花了两个小时把它接进了 Claude Code,现在日常开发任务基本切过去了。
这篇文章就是那两个小时的完整记录,踩坑也一起带上了。
为什么是 GLM-5.1,不是其他开源模型先说清楚背景,不然你不知道这事值不值得搞。
GLM-5.1 是智谱 AI 发布的开源模型。
在代码生成和中文场景下,它的表现相当接近 Claude Sonnet,尤其是写有中文注释的代码、处理中英混合的需求文档。
对于做出海产品、但团队文档还是中文的开发者,这个组合特别实用。
Modal 是一家美国云平台,提供 GPU 推理服务。最近他们把 GLM-5.1 的端点开放出来,目前是免费的,没有总量限制,只有轻微的 QPS 速率限制(超了报 429,等几秒就好)。
核心矛盾只有一个:Claude Code 默认只说 Anthropic 的 API 协议,Modal 提供的是 OpenAI 兼容协议。
要接通,必须中间加一层"翻译器"。
整体架构先看上面那张图,理解请求链路,后面操作就不会懵。
说人话就是:Claude Code 以为它在和 Anthropic 服务器说话,其实它在和你本地跑的一个小代理说话,代理把请求翻译成 OpenAI 格式,转发给 Modal 的 GLM-5.1 端点。
去 modal.com 注册,用 GitHub 或 Google 直接登录,30 秒完成。
登录后直接访问:
https://modal.com/glm-5-endpoint
在左侧找到 Create token,名字随便填,比如 claude-code-glm。点击生成。
这里有个细节大多数教程不告诉你:API Key 只会显示一次,关掉对话框就没了。
不是"你可以之后在设置里找到",是真的消失。
我第一次就是关掉了,重新生成了一个新的,浪费了十分钟排查为什么旧 Key 不好使。
同一个页面的 Example usage 区域,把那个 baseUrl 也复制下来,大概长这样:
https://your-workspace--glm-5-1-endpoint.modal.run
这两个东西先存进记事本,后面要用。

这是整个流程最核心的一步。 Gateway 的作用是把 Claude Code 发出的 Anthropic 格式请求,翻译成 Modal 能理解的 OpenAI 格式。
Modal 官方提供了一个叫 modal-jazz 的开源项目,里面有现成的 Claude Code 转发前端:
https://github.com/modal-projects/modal-jazz/tree/main/frontends/claude
我的实际操作方式:直接打开 Claude Code(用 Anthropic 额度),把以下内容发过去:
请帮我在本地搭建一个 LLM 网关,用于把 Claude Code 的请求转发到 Modal 平台的 GLM-5.1 模型。 参考项目:https://github.com/modal-projects/modal-jazz/tree/main/frontends/claude 我的 Modal 配置: baseUrl: [你的 baseUrl] apiKey: [你的 API Key] 请完成本地代理服务的搭建和启动,告诉我监听的端口号。
Claude Code 会自己 clone 项目、读配置、安装依赖、启动服务。
全程不需要你手动敲命令。这种"花一点点额度、省下大量额度"的用法,才是 Claude Code 的正确打开方式。
启动成功后,你会看到类似这样的输出:
Gateway running at http://localhost:3100 Forwarding Anthropic API requests to Modal GLM-5.1
端口号记下来(这里假设是 3100)。
Gateway 跑起来了,现在让 Claude Code 把请求发到本地,而不是 Anthropic。
Claude Code 的配置文件在:
~/.claude/settings.json # macOS / Linux
或者直接在 Claude Code 里跑:
cat ~/.claude/settings.json
找到(或新增)以下字段:
{ "api_base_url": "http://localhost:3100", "api_key": "your-modal-api-key-here" }
注意:api_base_url 指向你本地的 Gateway,api_key 填 Modal 的那个,不是 Anthropic 的。
保存后,重启 Claude Code。
验证是否生效,发一条简单消息: 你好,你现在用的是什么模型? 如果回复里提到 GLM 或者智谱,就接通了。
Gateway 必须保持运行
每次开电脑要先把 Gateway 启动起来,再开 Claude Code。
我嫌每次手动麻烦,让 Claude Code 帮我写了一个开机自启脚本(macOS Launch Agent),也就两分钟的事。
429 错误别慌
Modal 有轻微的 QPS 限制,频繁提交大段代码时偶尔会触发。返回 429 Too Many Requests。
解决方法:Gateway 层加一个简单的重试逻辑,等 2-3 秒后自动重发。
这个逻辑也可以直接让 Claude Code 帮你加进 Gateway 代码里。
复杂架构任务还是用 Claude
说句实话:GLM-5.1 不是在所有任务上都和 Claude Sonnet 一样好。
我测下来,写常规业务逻辑、API 集成、测试代码,差异不大。
但遇到需要理解复杂系统架构、做技术决策的任务,Claude Sonnet 明显更准。
我现在的工作流是:用 GLM-5.1 跑日常编码任务(占 80%),遇到架构问题或者卡住了,临时切回 Anthropic(占 20%)。两者都配好,按需切换。
坑是什么:modal-jazz 默认监听 3100 端口,但我本地刚好有个 dev server 也在用 3100。Gateway 启动的时候没有明显报错,但转发全部失败,Claude Code 提示 Connection refused。
怎么发现的:排查了 20 分钟,以为是 API Key 写错了,反复检查。最后用 lsof -i :3100 才发现端口被占了。
怎么解决的:在 Gateway 的配置里把端口改成 3200,同步更新 Claude Code 的 api_base_url 里的端口号。解决。
坑是什么:Claude Code 有时候更新版本后会重置部分配置。我更新了一次,发现 api_base_url 消失了,请求又开始走 Anthropic,钱悄悄烧掉了一点才发现。
怎么发现的:收到 Anthropic 的 Token 使用通知邮件,一看额度在减少,才意识到出问题了。
怎么解决的:把配置文件做了 Git 备份。每次更新 Claude Code 后,运行一次检查脚本确认配置完整:
grep -q "api_base_url" ~/.claude/settings.json && echo "Config OK" || echo "Config missing!"
30 秒验证,省去后续麻烦。
便宜不代表将就,免费也可以好用——关键在于你知不知道怎么搭。
整个接入流程下来,真正花时间的只有第一次搭 Gateway,之后就是自动运行。
如果你已经在用 Claude Code 做日常开发,这套配置一下午就能搞定,之后每个月省下的是真金白银。
你现在用 Claude Code 时,有没有做过类似的"模型替换"实验?GLM-5.1 和 Claude 在你的具体场景下差距有多大?

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/280864.html