抢不到 Coding Plan?本地 LiteLLM 让 GLM 也能跑 Claude Code【手把手本地部署教程!】

背景

最近claude code以及skill非常火,于是想试试claude code的使用。
试用了GLM4.7接入claude code,智能体的效果不错。
于是重金20买了额度包,才发现,GLM的体验赠金支持claude code,走的是https://open.bigmodel.cn/api/anthropic这个URL,但是买的额度包,只能走通用的https://open.bigmodel.cn/api/paas/v4/,因为走这俩个URL的协议是不同的。难怪我看着额度还有,用着用着欠费了,原来额度包用不上。也想过再买一个coding plan的套餐,但早起发现根本抢不到。
无奈之下,只能寻找一种方法将格式进行转换,让claude code走额度包的方法。
image.png|500|500

image.png|500

image.png|500

image.png|500

说明

  • 本文使用LiteLLM项目,对API进行格式转换,为本地部署安装,不是服务器或clawcloud run部署。
  • 本文需要你已经配置好claude code,如果没有,可以看我发的文章配置。
  • 其他格式的API转换思路也一致。
  • 我的环境是wsl,windows只是配置文件路径不同。使用的conda进行环境管理。
  • 项目请自己搜LiteLLM,我这里使用pip install 安装liteLLM
  • 下面分为两个部分,第一部分是LiteLLM的安装,第二部分是claudecode的~/.claude/setting.json文件内的配置,最终会展示效果。

一、LiteLLM的本地部署与安装

# ========== 环境准备 ==========
conda create -n litellm python=3.11 -y
conda activate litellm

# ========== 安装 LiteLLM(完整版)==========
pip install 'litellm[proxy]'
# 注意:必须加 [proxy] 才能安装所有依赖!

# 验证安装
litellm --version

# ========== 创建项目目录 ==========
mkdir -p ~/litellm-proxy 
cd ~/litellm-proxy

这里使用了智谱glm4.7模型,将4.7映射到claude-sonnet-4-5-20250929这个模型名称上。
创建配置文件(直接在命令行粘贴下面一长串,不是一行一行输入)


cat > config.yaml << 'EOF'
model_list:
  - model_name: claude-sonnet-4-5-20250929
    litellm_params:
      model: zai/glm-4.7
      api_key: os.environ/ZAI_API_KEY

litellm_settings:
  num_retries: 3
  request_timeout: 600
  drop_params: True
EOF
# ======确认你的shell=========
echo $SHELL
# 编辑配置文件(以 bash 为例) 
nano ~/.bashrc
# ========== 设置环境变量 ==========
export ZAI_API_KEY="你的API"
export LITELLM_MASTER_KEY="sk123456"

这样就能把你的API持久保存到本地,即使命令行关了,也还在。
LITELLM_MASTER_KEY的作用是防止未授权访问你的liteLLM,比如查看验证健康度curl http://localhost:4000/health ❎,你不给授权,就没法登录。

现在完事具备,配置好了,直接输入下面指令启动。

# ========== 启动 LiteLLM ==========
litellm --config config.yaml --port 4000

注意,这是前台启动,你不能关闭这个界面,这个界面会看似卡在这,实际上是启动成功了。后续你要用claudecode,或者需要他转换,需要另外开一个窗口,并保持这个窗口启动。
image.png|500

额外的,你可以先测试一下,API的健康度,是否确实配置成功了,新开一个窗口,简单测试输入:

curl http://localhost:4000/health   -H "Authorization: Bearer sk123456"

对话测试输入:

curl http://localhost:4000/v1/chat/completions \
  -H "Authorization: Bearer sk123456" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-sonnet-4-5-20250929",
    "messages": [{"role": "user", "content": "你好"}]
  }'

可以看到,确实返回了消息,而且他说自己是GLM,后续要写入新的API,可以找到创建项目文件夹下,config.yaml进行添加。
image.png|500

二、claude code的setting.json内配置

claudecode的setting.json我另有文章,在claudecode的配置一文已经写过。不再赘述。直接给出配置的模板,作为参考。这里ANTHROPIC_AUTH_TOKEN,就是前面配置的访问用的token,地址是本地的localhost:4000端口,模型名称填我们在config.yaml中对应的,会进行一个映射。

{
  "env": {
    "ANTHROPIC_AUTH_TOKEN": "sk123456",
    "ANTHROPIC_BASE_URL": "http://localhost:4000",
    "API_TIMEOUT_MS": "3000000",
    "ANTHROPIC_DEFAULT_SONNET_MODEL": "claude-sonnet-4-5-20250929",
    "ANTHROPIC_DEFAULT_OPUS_MODEL": "claude-opus-4-5-20251101",
    "ANTHROPIC_DEFAULT_HAIKU_MODEL": "claude-haiku-4-5-20251001"
  }
}

实际效果展示:
image.png|500

补充:后续使用的快捷指令

conda activate litellm
cd litellm-proxy/
litellm --config config.yaml --port 4000
posted @ 2026-02-01 02:59  Comets9224  阅读(9)  评论(0)    收藏  举报