服务端anthropic转openai格式处理,解决cc调用问题

ahao430 2026-07-23 16:48 1

背景


公司内部newapi平台接入claude code使用,上游渠道是百炼。后面接入了阿里的ai网关,但是这个网关会自动按照openai格式处理,而cc是用anthropic格式请求,导致对于部分模型如glm5.2经过网关后报错。

公司这边对于接入AI网关是硬性要求,目前大部分人又习惯用cc,所以需要将glm5.2在使用时用openai格式。


方案一


客户端cc switch开启网关,代理成openai格式。但是对于百炼的glm5.2,会出现一个字一换行的效果,无法接受。



神奇的是我试了下智谱官网的glm5.2,用cc switch网关转openai就没有这个问题。



方案二


找一个专门的转换服务,在服务端加一层转换服务。这样客户端还是用anthropic格式请求就行了。

让gpt推荐了一个服务,说是用的比较多的。GitHub - m0n0x41d/anthropic-proxy-rs: A proxy server that intercepts Anthropic API requests and converts them to OpenAI-compatible format, enabling integration with dozens of inference providers such as OpenRouter, Together.ai, Novita AI, and other third-party API services. Primary use cases include Claude Code and other Claude Agent SDK-based tools. · GitHub 。可以设置一个要代理的baseURL,apikey和model可以设置透传。

然后先本地启动试了下,然后还是换行,并且工具调用也有问题。


最后fork了一下原仓库,让ai给修复了问题再在cc调用看着可以了。修复分支如下:

https://github.com/ahao430/anthropic-proxy-rs/tree/fix-glm-reasoning-stream。

最新回复 (3)
  • ahao430 楼主 07-23 16:55
    1

    cc switch这个问题看之前有人提了类似的issue,暂时没有修复的迹象。

    AI分析的是对于一次消息,glm5.2的响应体thinking和流式返回是混在一起的,一边思考一边输出,导致转换成了多个block。而anthropic格式是先thinking再流式,整个流式响应在一个block。所以对每条消息做了等待处理,然后整体延迟输出一个thinking和一个文字block。

  • 玩几把 08-26 17:55
    2

    佬儿 我的公司上游也是阿里的Ai网关 你们也是glm5.2,qwen3.8-max和DeepSeek-v4-flash的模型嘛?

  • ahao430 楼主 08-26 19:31
    3

    我们是部署了一个newapi,接了百炼的国模,然后又找了几个中转站接的gpt和claude

* 帖子来源Linux.do
返回