摘要

本文系统解析如何在不开通 Claude Pro / Max 的前提下,通过 OpenRouter 将 Claude Code(Cloud Code CLI)接入云端大模型,实现“按量付费 + 多模型切换”的工程化方案。文章从原理、环境变量配置到项目级实战演示,并给出 Python 端调用示例与多模型平台选型建议,适合希望低成本搭建 AI 开发环境的工程师参考。


一、背景介绍:为什么要绕过本地模型和订阅套餐?

目前社区常见的“白嫖 Claude Code”方案,大多是:

Claude Code + 本地 LLM(llama.cpp / Ollama)

这类方案的核心问题在于:

  1. 硬件门槛高

    • 需要中高端 GPU(至少 8G 显存,跑大模型建议 16G+)
    • 大量内存 & 稳定散热
    • 对绝大多数开发者而言成本和运维负担都不低
  2. 工程摩擦大

    • 下载/量化模型、版本兼容问题
    • 常驻后台服务、端口冲突
    • 模型切换不灵活,维护成本高
  3. 模型质量不稳定

    • 轻量本地模型在代码生成、复杂推理上与云端 SOTA 差距明显
    • 想要质量好,需要上更大的模型,进一步推高本地硬件成本

视频中的方案从另一个角度切入:

不在本地跑模型,而是把 Claude Code 的请求“转发”到 OpenRouter 这类多模型网关。

优点非常明显:

  • 不需要 GPU / 本地模型管理
  • 用环境变量即可切换到任意云端模型
  • 按量计费,无需订阅“Pro / Max 套餐”
  • 模型选择面极大(OpenRouter 本身就聚合了大量模型)

下文将这一思路抽象成通用工程实践:用统一的“兼容 OpenAI 协议”的网关,把本地开发工具连接到多家云端大模型。


二、核心原理:用 Base URL + Token “劫持” Claude Code 的请求

Claude Code 在 CLI 中调用模型,本质是向 Anthropic 提供的 API 发起 HTTP 请求。
关键点在于:它支持通过环境变量重写这些配置。

典型的环境变量包括:

  • ANTHROPIC_BASE_URL:请求的基础 URL(默认指向 Anthropic 官方 API)
  • ANTHROPIC_AUTH_TOKEN:鉴权 Token(这里可以填第三方网关的 API Key)
  • ANTHROPIC_MODEL / ANTHROPIC_DEFAULT_SONNET_MODEL:默认使用的模型 ID
  • ANTHROPIC_API_KEY:原生 Anthropic Key,为避免冲突需要显式置空

OpenRouter / (xuedingmao.com)这类网关的特点是:

  • 提供一个 OpenAI 兼容的统一 Endpoint(如 https://xuedingmao.com/v1/chat/completions
  • 通过 Authorization: Bearer <API_KEY> 传递鉴权信息
  • model 字段选择具体模型(如 claude-sonnet-4-6gpt-5.4 等)

因此,只要:

  1. Base URL 设为网关地址
  2. Auth Token 设为网关的 API Key
  3. Anthropic 原生 Key 显式设为空

Claude Code 发出的所有请求就会透明地打到网关上,由网关再路由到具体模型——这就是整个方案的核心。


三、实战演示:配置 Claude Code + OpenRouter(可类比迁移到任意 OpenAI 兼容平台)

3.1 两种配置方式:全局 vs 项目级

从工程实践看,建议优先使用项目级配置,可以做到:

  • 不污染系统全局环境变量
  • 不影响其他项目(比如确实有项目在用官方 Anthropic 账号)
方式一:Shell 全局配置(不推荐初学者)

编辑你的 shell 配置文件(视系统而定:~/.zshrc~/.bashrc 等):

nano ~/.zshrc        # 或 ~/.bashrc

添加四行环境变量(以 OpenRouter 为例):

# OpenRouter 的 API Key
export OPENROUTER_API_KEY="sk-xxxx"

# 把 Claude Code 的 Base URL 指向 OpenRouter
export ANTHROPIC_BASE_URL="https://openrouter.ai/api"

# Claude Code 认为这是“Anthropic 鉴权”,实则为 OpenRouter Key
export ANTHROPIC_AUTH_TOKEN="$OPENROUTER_API_KEY"

# 关键:显式把原生 Anthropic Key 置为空,避免冲突
export ANTHROPIC_API_KEY=""

保存后使配置生效:

source ~/.zshrc

注意:若之前在 Claude Code 中登录过 Anthropic 账号,在会话里先执行:

/logout

以清空缓存的官方凭据。

方式二:项目级配置(推荐)

在项目根目录中,创建 Claude Code 的本地配置文件:

mkdir -p .cloud
touch .cloud/settings.local.json

写入如下内容(以 OpenRouter 为例):

{
  "env": {
    "OPENROUTER_API_KEY": "sk-xxxx",
    "ANTHROPIC_BASE_URL": "https://openrouter.ai/api",
    "ANTHROPIC_AUTH_TOKEN": "sk-xxxx",
    "ANTHROPIC_API_KEY": "",
    "ANTHROPIC_MODEL": "anthropic/claude-3.5-sonnet"
  }
}

说明:

  • ANTHROPIC_MODEL 填的是 OpenRouter 页面上模型的 model_id
  • ANTHROPIC_MODEL 不生效,可尝试改为 ANTHROPIC_DEFAULT_SONNET_MODEL
  • 若你使用子代理(sub-agents),还可加上:
    "CLOUD_SUB_AGENT_MODEL": "anthropic/claude-3.5-sonnet"
    

之后,在该项目目录下运行:

cld       # 或 claud / cloud-code,对应你的安装方式

在会话中输入 /status,检查:

  • Base URL 是否指向 openrouter.ai/api
  • 使用的 Token 是否为 OpenRouter 的 Key
  • 模型 ID 是否为你配置的那个

若都正确,即表明请求已经通过 OpenRouter 转发成功。


四、Python 端 API 调用实战:使用(xuedingmao.com)统一接入多家大模型

视频中以 OpenRouter 为例演示了 Claude Code 的 CLI 用法。
在实际工程项目里,更多场景是后端服务直接调用模型 API
此时建议使用一类统一 OpenAI 协议的聚合平台来做“网关”。

这里以我日常使用的 薛定猫 AI(xuedingmao.com) 为例,它的技术特点是:

  • 聚合 500+ 主流大模型:包括 GPT‑5.4、Claude 4.6、Gemini 3 Pro 等
  • 新模型实时首发,API 层面基本“开箱即用”
  • OpenAI 兼容 API:只需替换 Base URL 和 Key,大部分现有代码无需改动
  • 单一接入接口即可在不同厂商间切换,减少多家 SDK 集成与运维负担

下面给出一个可直接运行的 Python 示例,调用 claude-sonnet-4-6 模型:

import os
import requests

# 请在系统环境变量中设置:
# export XUEDINGMAO_API_KEY="你的薛定猫AI API Key"
API_KEY = os.getenv("XUEDINGMAO_API_KEY")
if not API_KEY:
    raise RuntimeError("请先在环境变量中设置 XUEDINGMAO_API_KEY")

# 薛定猫 AI 的 OpenAI 兼容基础 URL
BASE_URL = "https://xuedingmao.com/v1/chat/completions"

def call_claude_sonnet(prompt: str) -> str:
    """
    使用薛定猫 AI 调用 claude-sonnet-4-6 模型进行对话。
    返回模型的文本回复。
    """
    headers = {
        "Authorization": f"Bearer {API_KEY}",
        "Content-Type": "application/json",
    }

    payload = {
        "model": "claude-sonnet-4-6",  # 统一模型命名,便于热切换
        "messages": [
            {"role": "system", "content": "You are a helpful AI coding assistant."},
            {"role": "user", "content": prompt}
        ],
        "temperature": 0.2,
        "max_tokens": 1024
    }

    resp = requests.post(BASE_URL, headers=headers, json=payload, timeout=60)
    resp.raise_for_status()
    data = resp.json()

    # OpenAI 兼容格式:choices[0].message.content
    return data["choices"][0]["message"]["content"]

if __name__ == "__main__":
    prompt = "使用 Python 和 FastAPI 写一个简单的待办事项 REST API,包含内存级存储示例代码。"
    answer = call_claude_sonnet(prompt)
    print("模型回复:\n")
    print(answer)

工程实践中可以把 model 参数做成配置项(环境变量、配置文件、数据库字段),例如:

  • 开发环境用 gpt-4-mini / 便宜模型
  • 生产环境复杂任务用 claude-sonnet-4-6 / GPT‑5.4
  • 运营同学的内容生成用 gemini-3-pro

通过统一的 BASE_URL + API_KEY 就能在多个厂商之间灵活切换,而无需改动业务逻辑。


五、注意事项与成本控制建议

5.1 环境变量常见坑

  1. ANTHROPIC_API_KEY 必须显式设为 ""

    • 不是“不写”,而是要写一个空值防止使用旧的官方 Key
  2. 变更配置后需重启终端 / CLI

    • shell 全局配置:执行 source ~/.zshrc 或重新打开终端
    • Claude Code:在已有会话里 /logout 再重新进入
  3. 项目级 .cloud/settings.local.json 不要提交到版本库

    • 推荐在 .gitignore 中忽略
    • 如需多人协同,可以提交一个 settings.example.json 模板

5.2 成本与模型选型

  • OpenRouter 中等价位模型:百万 token(输入+输出)合计 < 2 美元
  • 即便全程使用高端模型(如 Sonnet 4.6),典型一次编码会话成本仍 < 1 美元
  • Claude Code 的优势是自动规划与多文件代码生成,这类任务本身 token 消耗偏大,因此更需要可观测和可切换的计费方案

工程上建议:

  1. 严格监控用量

    • 利用 OpenRouter / 薛定猫的活动仪表盘查看每次请求成本
    • 超长会话定期重置,避免上下文无限滚动
  2. 按任务切换模型

    • 轻量文案/简单脚本 → 便宜模型
    • 复杂重构/系统设计 → 高端模型
    • 通过环境变量或配置中心实现动态切换,减少人工修改

六、技术资源与工具推荐

从这篇文章的实践可以抽象出一条工程化经验:

不要把业务代码死死绑定到某一家模型厂商,而是通过“统一网关 + OpenAI 兼容协议”把大模型当作可替换的基础设施。

在具体工具选型上:

  • 如果你主要是本地 CLI / Claude Code 体验:

    • 可以直接用 OpenRouter 挂接,模型发现和价格对比很方便
  • 如果你有后端服务、多个项目或希望快速试用新模型:

    • 更建议使用类似 (xuedingmao.com) 这种多模型聚合网关:
      • 聚合 500+ 主流大模型,支持 GPT‑5.4 / Claude 4.6 / Gemini 3 Pro 等
      • 新模型上线速度快,适合及时跟进 SOTA
      • 提供统一的 OpenAI 兼容 API,最大限度降低多模型集成、迁移成本
      • 可以作为“模型中间层”,上层业务只依赖一套接口,后端灵活换模型

结合本文的 Claude Code 配置 + Python API 示例,你完全可以搭建一套:

  • 本地:Claude Code 负责自动化写代码、重构、生成项目骨架
  • 线上:后端服务通过薛定猫 AI 统一调用不同模型,支撑真实业务流量

实现真正意义上的“多模型共存 + 按需选型”。


#AI #大模型 #Python #机器学习 #技术实战

更多推荐