cover

上周写了篇 NVIDIA NIM 免费 API 的文章,评论区炸了。

不是夸我写得好,是一堆人在问:「为什么按你的教程配置,Claude Code 还是连不上?」「环境变量设了,报错说格式不对?」「我用的 DeepSeek API,怎么配都不行?」

我一开始以为是他们手抖打错了,结果自己试了几个其他 API 才发现——还真不是他们的问题。

先说结论:不是所有 API 都能直接接入 Claude Code

上篇文章里介绍的 NVIDIA NIM 之所以能直接用,是因为它恰好支持 OpenAI 兼容格式,而 Claude Code 的第三方模型接入功能正好也是走 OpenAI 兼容协议。

但问题来了:市面上大部分 API 服务,要么只提供 OpenAI 格式(和 Claude Code 原生格式不兼容),要么提供的是各家自己的私有格式。

这就像你拿着一个 Type-C 接口的充电器,想给一个 Lightning 接口的手机充电——接口对不上,再好的充电器也没用。

所以当你拿着一个 OpenAI 兼容的 API(比如 DeepSeek、智谱 GLM、通义千问),想直接接入 Claude Code 时,Claude Code 会用 Anthropic 格式去请求,对面 API 完全听不懂,自然就报错了。

这就是为什么你配置了半天,Claude Code 死活连不上的原因。不是你的问题,是协议不通。

protocol-comparison

CLIProxyAPI:API 世界的「万能转接头」

这时候就需要一个「翻译器」——CLIProxyAPI。

它的原理很简单:在你的本地起一个代理服务,接收 Claude Code 发来的 Anthropic 格式请求,翻译成 OpenAI 格式,转发给第三方 API;然后把第三方 API 返回的 OpenAI 格式响应,再翻译成 Anthropic 格式,返回给 Claude Code。

Claude Code  ──(Anthropic格式)──>  CLIProxyAPI  ──(OpenAI格式)──>  第三方API
<──(Anthropic格式)── CLIProxyAPI <──(OpenAI格式)──

有了这个转接头,理论上任何 OpenAI 兼容的 API 都能接入 Claude Code 了。DeepSeek、智谱 GLM、通义千问、火山引擎、硅基流动……统统能用。

architecture-flowchart

安装 CLIProxyAPI

CLIProxyAPI 支持多种安装方式,这块官方文档都有详细的教程,我就不再讲解了!

platform-decision

https://help.router-for.me/cn/introduction/quick-start.html

我这里是用docker安装的方式,安装之后访问服务的管理页面!一般是 ip:8317 进行访问!

image-20260119110707402

配置API 提供商

选择OpenAI兼容提供商,配置Nvidia的url和自己的密钥key!

注意,我这里加了一个前缀配置,主要是方便与其他渠道区分!这样你在claude code中配置模型时,就应该是下图红框中的名称!

image-20260119112051236

image-20260119112105355

配置环境变量

我这里还是以WSL中的ubuntu环境为例,配置环境变量的位置在/root/.bashrc 文件中!示例如图所示!

这里面的ANTHROPIC_AUTH_TOKEN的值,是CliProxy中创建的API密钥! BASE_URL 就是你CliProxy服务的IP和端口! 注意,修改完了配置之后,要刷新这份文件,让配置生效

source ~/.bashrc

image-20260119111202634

image-20260119112038051

image-20260119111359818

由于我已经将基础模型改成GLM4.7了,当我启动claude的时候,你就会发现我切换到claude HAIKU时,会显示GLM4.7的名称!

image-20260119111536150

最后

实际上这些开源项目的官方文档都写的比较清晰,可能就是需要多折腾一下! 另外就是这些项目可能会存在某些问题,可以先到对应项目的github仓库的issues里面搜一搜,一般都会有解决方案的!