























最后排查出来其实是一个很简单的问题,但是排查了两天过程中却是一直没想到这个方面,因此在此记录以便自己以后回顾,以及方便遇到同样情况的佬参考,减少时间浪费。
Claude Code通过CC Switch和NewAPI两个中间层接入GLM一直报500错误,错误100%稳定复现,具体报错信息如下
Insufficient balance or no resource package. Please recharge.
同一个请求在Claude Code、CC Switch和NewAPI三层的控制台中都能看到同样的错误信息
为方便佬们参考,先列解决办法,后面再详细说原因分析。有3种解决方法,任意选一种即可:
Anthropic Messages(原生)智谱,也不选智谱V4,而选Anthropic,相应填入URL为https://open.bigmodel.cn/api/anthropic智谱,也不选智谱V4,而选自定义(图标是OpenAI的那个),相应填入URL为https://open.bigmodel.cn/api/coding/paas/v4/chat/completionsCC Switch中连接NewAPI采用的是OpenAI Chat Completions,而NewAPI平台上连接GLM采用的是智谱v4的接口类型。采用该接口类型时,根据NewAPI源码,该接口默认的请求地址为https://open.bigmodel.cn/api/paas/v4/chat/completions,是用于按量计费的API的,不是Coding Plan,而按量计费账户里面没有余额,因此提示“余额不足”。Coding Plan的请求地址为https://open.bigmodel.cn/api/coding/paas/v4,一般配置时直接复制粘贴过去都极少留意了,挺难看出来的。
关于这个易混淆的地址配置问题,智谱官方也有在文档中强调,确实是我不仔细阅读文档的问题了。
CC Switch中选择Anthropic Messages(原生)格式请求后,NewAPI向GLM发出的请求地址为https://open.bigmodel.cn/api/anthropic/v1/messages,按量计费API和Coding Plan的Anthropic格式接口都是走这一个端口,因此不会出问题。
但是此方法存在一定风险,因为按量计费与Coding Plan走的同一个端口,所以当Coding Plan周期额度用光之后还发起请求就会消耗按量计费的余额,如果碰巧平台上存入了余额,没两下就挥霍干净了。(别问我怎么知道的)
flowchart LR
cc[Claude Code]
new[New API]
glm[GLM]
cc --Anthropic---> new --Anthropic---> glm
原因跟方法一类似,但是因为上游选了Anthropic格式,因此NewAPI层会完成请求格式转换,因此即使CC Switch仍然使用OpenAI格式,NewAPI也会转换为Anthropic格式并成功地发起请求。同理,此方法也有可能误用按量计费的余额,因此也不是很推荐。
flowchart LR
cc[Claude Code]
new[New API]
glm[GLM]
cc --任意格式---> new --Anthropic---> glm
直接都用ChatCompletion的格式,但是又不是标准的OpenAI地址,而是智谱特有的v4,所以只能在NewAPI上使用支持完整自定义API地址的类型,将完整的API地址写上,注意地址要带上/v4/chat/completions的结尾,这种情况相爱无论Claude Code以什么样的协议发出请求,NewAPI都会转换为以OpenAI Chat Completions格式向GLM发起请求,因此能够成功访问。同时因为使用的是Coding Plan专属接口,所以理论上GLM后台设置恰当的情况下不会无缘无故消耗按量计费那边的余额。
flowchart LR
cc[Claude Code]
new[New API]
glm[GLM]
cc --任意格式---> new --非标OpenAI ChatCompletions---> glm
智谱能不能将Anthropic协议的按量计费和Coding Plan接口也分开一下呀,或者直接将API Key分开,像MiniMax那样,真是肉痛啊。另外CC Switch、NewAPI等平台建议可以考虑针对智谱这一套接口规范做专门的类型,分为智谱v4按量API、智谱v4 Coding Plan Anthropic、智谱v4 Coding Plan OpenAI Chat Completions等几类,这样配置的时候也比较清晰了,不至于像我排查错误一样要去后台抓包和扒源码才知道真实的请求地址和请求格式。
另外据站内佬的说法,将GLM的访问端点配置为https://api.z.ai/api并通过代理走境外网络访问可提高访问成功率,配置方法也是类似的。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。