一聚教程网:一个值得你收藏的教程网站

热门教程

Claude Code Router实现方式一键接入多种AI模型的智能路由器实用指南

时间:2026-08-21 16:34:01 编辑:袖梨 来源:一聚教程网

平时做技术实践时,很多问题不是概念不会,而是细节没串起来。拿“Claude Code Router实现方法一键接入多种AI模型的智能路……”来说,它看着像小点,放到项目里常会牵出环境、配置、兼容性和维护成本。下面按实际采用顺序,把思路、关键写法和容易踩坑的地方讲清楚,便于大家直接对照操作。

什么是Claude Code Router?

在这个场景下,Claude Code Router是一款革命性的开源代理工具,专为解决AI模型平台锁定问题而生。它作为Claude Code CLI与各大AI模型供应商之间的智能中介,让开发者无需Anthropic官方API即可享受Claude Code的优秀体验。兼容Gemini、Ollama、Deepseek、OpenRouter等多种模型,提供智能路由、成本优化和高度可定制化功能,真正实现AI模型的自由切换与灵活部署。

核心优势:

  • 模型自由理解这一步时,: 打破平台锁定,无缝接入Gemini, Ollama, Deepseek, OpenRouter等多种模型。
  • 成本效益落到代码里,: 可根据任务需求选择不同成本的模型,比如采用本地免费的Ollama模型或性价比高的 API服务。
  • 功能强大结合项目来看,: 兼容基于任务类型的智能路由,为不同操作(如代码生成、后台索引)分配最合适的模型。
  • 高度可定制实际处理时,: 借助自定义转换器(Transformers),能够适配任意遵循OpenAI API格式的提供商。

GitHub:(链接已移除)

安装

安装Node.js 18+版本

进入 Node.JS 官网,选择对应的操作系统和版本下载

安装claude code

npm install -g @anthropic-ai/claude-code

安装Claude Code Router:

装完成后,系统中将拥有 ccr 命令。

npm install -g @musistudio/claude-code-router

采用

启动CCR

ccr code

落到代码里,首次运行时,CCR会引导完成交互式设置,让你设置第一个AI提供商和模型。只需按照提示输入提供商名称、API Base URL、API 密钥、模型命令即可。

C:UsersAdministrator>ccr code
Enter Provider Name: Gemini
Enter Provider API KEY: 123456
Enter Provider URL: https://xxx.com
Enter MODEL Name: gemini-2.5-pro

实际处理时,授权信任Claude在当前目录中进行操作,建议在新建且安全的目录下启动Claude Code

理解这一步时,授权同意后,就能够像采用官方 claude-code 一样与CCR互动了。

ccr命令参考

以下是 ccr CLI 的主要命令:

命令 (Command)描述 (Description)
ccr code启动CCR代理会话。这是最常用的命令
ccr start启动CCR服务
ccr stop停止CCR服务
ccr restart重启CCR服务
ccr status显示CCR服务状态
ccr ui在浏览器中打开Web UI管理界面
ccr help显示所有可用命令和选项的帮助信息
ccr version显示当前安装的 Claude Code Router 的版本号

动态切换模型

结合项目来看,若在config.json设置有多个模型供应商,此时能够在采用过程中动态切换模型

  • 理解这一步时,采用/model命令,动态切换模型命令格式: /model provider_name,model_name

示例:

/model openrouter,anthropic/claude-3.5-sonnet

设置示例说明

落到代码里,CCR的所有设置都存储在 ~/.claude-code-router/config.json 文件中。能够直接编辑此文件以进行高级设置。

落到代码里,除开CCR引导的交互式设置自动生成外,还能够手动新建config.json设置文件进行手动设置,不同操作系统新建方式不同

Linux、Mac:

 ~/.claude-code-router/config.json

Wondows:

C:Users用户名.claude-code-router/config.json

config.json文件如何设置能够参考开源项目的config.example.json文件。关键部分如下所示:

PROXY_URL (可选): 为 API 请求设置代理,例如:"PROXY_URL": "http://127.0.0.1:7890"

LOG (可选): 通过将其设置为true来启用日志记录。日志文件将位于$HOME/.claude-code-router.log

APIKEY (可选): 设置一个密钥来进行身份验证。设置后,客户端请求必须在Authorization 请求头 (例如, Bearer your-secret-key) 或 x-api-key 请求头中提供此密钥。例如:"APIKEY": "your-secret-key"

HOST (可选): 设置服务的主机地址。如果未设置APIKEY,出于安全考虑,主机地址将强制设置为 127.0.0.1,以防止未经授权的访问。例如:"HOST": "0.0.0.0"

NON_INTERACTIVE_MODE (可选): 当设置为 true 时,启用与非交互式环境(如GitHub Actions、Docker容器或其他CI/CD系统)的兼容性。这会设置适当的环境变量(CI=true、FORCE_COLOR=0 等)并配置stdin 处理,以防止进程在自动化环境中挂起。例如:"NON_INTERACTIVE_MODE": true

Providers: 用于配置不同的模型提供商

Router: 用于设置路由规则。default 指定默认模型,如果未配置其他路由,则该模型将用于所有请求

API_TIMEOUT_MS: API 请求超时时间,单位为毫秒

设置示例说明:

{
  // 全局 API 密钥,用于访问此应用程序自身的主要服务。
  "APIKEY": "your-secret-key",
  // 配置代哩服务務器的 URL,所有的网络请求都将通过这个代理发出。
  // "http://127.0.0.1:5555" 指向本地运行的代理服务。
  "PROXY_URL": "http://127.0.0.1:5555",
  // 日志记录开关。如果设置为 true,应用程序将生成并记录运行日志。
  "LOG": true,
  // API 请求的超时时间,单位为毫秒。
  // 这里的 600000 毫秒等于 600 秒(10分钟)。
  "API_TIMEOUT_MS": 600000,
  // 非交互模式开关。如果设置为 false,应用程序可以与用户进行交互(例如,请求输入)。
  // 设置为 true 时,它将在没有用户干预的情况下运行。
  "NON_INTERACTIVE_MODE": false,
  // “提供者”列表,定义了可以使用的不同 AI 模型服务。
  "Providers": [
    {
      // 提供商的唯一名称
      "name": "gemini",
      // 该提供者 API 的基础 URL 地址
      "api_base_url": "https://generativelanguage.googleapis.com/v1beta/models/",
      // 提供商的 API 密钥
      "api_key": "AIzaSyxxxxxxEfZDzBs1lC0Ac08",
      // 提供商可用的模型名称列表
      "models": ["gemini-2.5-flash", "gemini-2.5-pro"],
      // 指定用于处理请求和响应的转换器
      "transformer": {
        // 指定要使用的转换器名称
        "use": ["gemini"]
      }
    }
  ],
  // “路由器”配置,用于根据不同的任务类型,智能地选择使用哪个“提供者”和“模型”。
  "Router": {
    // 默认模型提供商 默认使用模型
    "default": "gemini,gemini-2.5-pro",
    // 用于处理后台任务的模型。可以是一个较小的本地模型以节省成本。
    "background": "gemini,gemini-2.5-flash",
    // 用于需要深度思考或推理任务的模型。
    "think": "gemini,gemini-2.5-flash",
    // 用于处理长文本上下文任务的模型。
    "longContext": "gemini,gemini-2.5-flash",
    // 定义长文本的阈值(可能是字符数或 token 数)。当输入超过此阈值时,将启用 "longContext" 路由。
    "longContextThreshold": 60000,
    // 用于处理网络搜索任务,需要模型本身支持
    "webSearch": "gemini,gemini-2.5-flash"
  }
}

核心设置说明

providers- 定义AI提供商

此部分是一个数组,用来定义要采用的所有AI模型提供商。

  • name: 提供商的唯一标识符(比如 "gemini", "ollama")
  • api_base: API 的基础 URL
  • api_key: API 密钥
  • models:提供商可用的模型名称列表
  • transformer:(可选): 指定用来处理请求和响应的转换器

示例设置:

  "Providers": [
    {
      "name": "gemini1",
      "api_base_url": "https://generativelanguage.googleapis.com/v1beta/models/",
      "api_key": "AIzaSyCvmL0_gwkJOH9d8jFlDFe3_9rZA1GO8OQ",
      "models": ["gemini-2.5-flash", "gemini-2.5-pro"],
      "transformer": {
        "use": ["gemini"]
      }
    }
   ]

routing- 智能路由规则

理解这一步时,这是CCR的核心功能之一。能够为Claude Code的不同内部操作指定不同的模型,以实现性能和成本的最佳平衡。

  • default: 默认模型,用来常规任务的默认模型。
  • background: 后台模型,用来后台任务的模型。这能够是一个较小的本地模型以节省成本。
  • think: 思考模型,用来在执行任务前进行规划和推理。
  • longContext: 长上下文模型,用来处理和分析大型文件或长篇对话。
  • longContextThreshold : 触发长上下文模型的令牌数阈值。如果未指定,默认为 60000。
  • webSearch: 用来处理网络搜索任务,需模型本身兼容。如果采用openrouter需在模型后面加上:online后缀。

示例设置:

  // “路由器”配置,用于根据不同的任务类型,智能地选择使用哪个“提供者”和“模型”。
  "Router": {
    // 默认模型提供商 默认使用模型
    "default": "gemini,gemini-2.5-pro",
    // 用于处理后台任务的模型。可以是一个较小的本地模型以节省成本。
    "background": "gemini,gemini-2.5-flash",
    // 用于需要深度思考或推理任务的模型。
    "think": "gemini,gemini-2.5-flash",
    // 用于处理长文本上下文任务的模型。
    "longContext": "gemini,gemini-2.5-flash",
    // 定义长文本的阈值(可能是字符数或 token 数)。当输入超过此阈值时,将启用 "longContext" 路由。
    "longContextThreshold": 60000,
    // 用于处理网络搜索任务,需要模型本身支持
    "webSearch": "gemini,gemini-2.5-flash"
  }

transformers- 高级自定义

理解这一步时,Transformers允许修改请求和响应负载,以确保与不同提供商API的兼容性。

内置Transformer:

Anthropic: 如果只使用这一个转换器,则会直接透传请求和响应(可以用它来接入其他支持Anthropic端点的服务商)

deepseek: 适配 DeepSeek API 的请求/响应

gemini: 适配 Gemini API 的请求/响应

openrouter: 适配OpenRouter API 的请求/响应。它还可以接受一个provider路由参数,以指定OpenRouter应使用哪些底层提供商

全局Transformer: 将转换器应用来提供商的所有模型。

实际处理时,openrouter转换器将应用来openrouter提供商下的所有模型。

 {
   "name": "openrouter",
   "api_base_url": "https://openrouter.ai/api/v1/ch@t/completions",
   "api_key": "sk-xxx",
   "models": [
     "google/gemini-2.5-pro-preview",
     "anthropic/claude-sonnet-4",
     "anthropic/claude-3.5-sonnet"
   ],
   "transformer": { "use": ["openrouter"] }
 }

特定于模型的Transformer: 将转换器应用来特定模型。

结合项目来看,deepseek转换器应用来所有模型,而额外的openrouter转换器仅应用来deepseek-ch@t模型。

 {
   "name": "deepseek",
   "api_base_url": "https://api.deepseek.com/ch@t/completions",
   "api_key": "sk-xxx",
   "models": ["deepseek-ch@t", "deepseek-reasoner"],
   "transformer": {
     "use": ["deepseek"],
     "deepseek-ch@t": { "use": ["openrouter"] }
   }
 }

从实现思路看,向Transformer 传递选项: 某些转换器(如 maxtoken)接受选项。

从实现思路看,要传递选项,采用嵌套数组,其中第一个元素是转换器名称,第二个元素是选项对象。

{
  "name": "siliconflow",
  "api_base_url": "https://api.siliconflow.cn/v1/ch@t/completions",
  "api_key": "sk-xxx",
  "models": ["moonshotai/Kimi-K2-Instruct"],
  "transformer": {
    "use": [
      [
        "maxtoken",
        {
          "max_tokens": 16384
        }
      ]
    ]
  }
}

UI模式

为便于获得更直观的体验,能够采用UI模式来管理设置,在终端输入以下命令

ccr ui

结合项目来看,将打开一个基于Web的界面,输入设置文件中的APIKEY进行认证登录

随后能够在其中轻松查看和编辑config.json文件

异常

异常1:

实际处理时,执行ccr code命令后可能会像执行claude命令一样出现登录界面的提示操作,此时能够尝试删除.claude.json

Linux、Mac:

~/.claude.json

Windows:

C:Users用户名.claude.json

异常2:

在这个场景下,若采用Gemini,有可能出现400错误,能够查看C:Users用户名.claude-code-routerclaude-code-router.log日志文件进行异常排除,比如这里遇到:User location is not supported for the API use.,此时意味着你所处国家不兼容访问

 "error": {
    "code": 400,
    "message": "User location is not supported for the API use.",
    "status": "FAILED_PRECONDITION"
  }

从实现思路看,到此这篇关于Claude Code Router实现一键接入多种AI模型的智能路由器的文章就介绍到这了,更多相关Claude Code Router接入多种AI内容请搜索脚本之家以前的文章或继续浏览下面的相关文章,希望大家以后多多兼容脚本之家!

热门栏目