Claude Code配置本地Ollama模型或别的模型(Deepseek等)的实践指南

  发布时间:2026-06-26 11:56:14   作者:前端君   我要评论
本文详细介绍了如何使用Claude Code Router将Ollama或DeepSeek等非Anthropic模型接入Claude Code,包括安装、配置步骤及常见问题排查,通过协议转换网关,需要的朋友可以参考下

个人使用场景 claude 模型实在是太贵了,想使用 Claude Code 默认只支持 Anthropic 的接口格式,所以本文记录了如何把本地模型或者其他模型(Deepseek等)接入 Claude Code 使用的方法。

通过 Claude Code Router (CCR) 将 Claude Code CLI 连接到 Ollama(本地模型)或 DeepSeek(云端模型),从而使用非 Anthropic 模型运行 Claude Code。

Claude Code 自动运行方法大全

1. 原理概述

架构图

┌─────────────────┐      Anthropic Messages API       ┌──────────────────────────┐
│                 │  ──────────────────────────────▶   │                          │
│   Claude Code   │      /v1/messages                 │  Claude Code Router      │
│   (CLI / VSC)   │  ◀──────────────────────────────   │  (localhost:3456)        │
│                 │                                    │                          │
└─────────────────┘                                    └──────────┬───────────────┘
                                                                  │
                           ┌──────────────────────────────────────┼──────────────────────────┐
                           │                                      │                          │
                           ▼                                      ▼                          ▼
                  ┌──────────────────┐                  ┌──────────────────┐      ┌──────────────────┐
                  │   Ollama         │                  │   DeepSeek API   │      │   OpenAI API     │
                  │   (localhost)    │                  │   (云端)          │      │   (其他兼容)      │
                  │   :11434/v1      │                  │   api.deepseek   │      │                  │
                  └──────────────────┘                  └──────────────────┘      └──────────────────┘

工作流程

  1. Claude Code 原生只支持 Anthropic Messages API 格式(/v1/messages
  2. Claude Code Router 运行在本地,暴露一个兼容 Anthropic API 的端点 http://127.0.0.1:3456
  3. 通过设置 ANTHROPIC_BASE_URL=http://127.0.0.1:3456,Claude Code 将所有 API 请求发送到 CCR
  4. CCR 内部做协议转换:将 Anthropic Messages 格式翻译成 OpenAI Chat Completions 格式(Ollama / DeepSeek 都支持)
  5. 响应再从 OpenAI 格式翻译回 Anthropic 格式返回给 Claude Code

关键事实

事项说明
Claude Code 发送的协议Anthropic Messages API (/v1/messages)
Ollama 支持的协议OpenAI Chat Completions API (/v1/chat/completions)
DeepSeek 支持的协议OpenAI Chat Completions API (/v1/chat/completions)
CCR 的作用协议转换网关,在两种格式间翻译
认证方式通过 ANTHROPIC_AUTH_TOKENANTHROPIC_API_KEY 传递凭证

2. 安装 Claude Code Router

系统要求

  • macOS 10.15+ / Windows 10+ / Linux (支持 AppImage)
  • 已安装 Claude Code CLI

下载安装

  1. 访问 GitHub Releases 页面
  2. 下载对应系统的安装包:
    • macOS: .dmg 文件
    • Windows: .exe 安装程序
    • Linux: .AppImage 文件
  3. 安装并启动应用

首次启动

启动后,CCR 会在以下位置创建配置文件:

  • macOS / Linux: ~/.claude-code-router/config.json
  • Windows: %APPDATA%\Claude Code Router\config.json

3. 配置 Ollama 提供商

前置条件

  • 已安装 Ollama
  • 已拉取至少一个模型,例如:
ollama pull llama3.1
ollama pull qwen2.5
ollama pull deepseek-r1:7b
  • Ollama 服务正在运行(默认监听 http://127.0.0.1:11434

通过 CCR 界面配置

  1. 打开 CCR 桌面应用
  2. 进入 Providers → 点击 Add Provider
  3. 填写以下信息:
字段
Provider NameOllama
Endpoint (Base URL)http://127.0.0.1:11434/v1
Protocolopenai_chat_completions
API Key留空(或随意填写 ollama
Models输入你已拉取的模型名,如 llama3.1, qwen2.5
  1. 点击 Save

为什么 Ollama 的 endpoint 是 :11434/v1 Ollama 从 0.1.32 版本开始原生支持 OpenAI 兼容 API,路径为 /v1/chat/completions。 CCR 通过 openai_chat_completions 协议将 Anthropic 请求转换后发送到此端点。

通过 Deeplink 配置(可选)

也可以直接通过 URL Scheme 快速添加:

ccr://provider?name=Ollama&base_url=http%3A%2F%2F127.0.0.1%3A11434%2Fv1&api_key=ollama&models=llama3.1,qwen2.5&protocol=openai_chat_completions

在浏览器中打开此链接,CCR 会弹出确认对话框。

测试 Ollama 连接

在终端验证 Ollama 的 OpenAI 兼容 API 是否正常:

curl http://127.0.0.1:11434/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "llama3.1",
    "messages": [{"role": "user", "content": "Hello"}]
  }'

应返回包含 choices 字段的 JSON 响应。

4. 配置 DeepSeek 提供商

前置条件

  • 注册 DeepSeek 平台
  • 获取 API Key(在控制台创建)

通过 CCR 界面配置

  1. 打开 CCR 桌面应用
  2. 进入 Providers → 点击 Add Provider
  3. 填写以下信息:
字段
Provider NameDeepSeek
Endpointhttps://api.deepseek.com/v1
Protocolopenai_chat_completions
API Keysk-xxxxxxxxxxxxxxxxxxxx(你的 DeepSeek API Key)
Modelsdeepseek-chat, deepseek-reasoner
  1. 点击 Save

通过 Deeplink 配置(可选)

ccr://provider?name=DeepSeek&base_url=https%3A%2F%2Fapi.deepseek.com%2Fv1&api_key=sk-xxxxxxxxx&models=deepseek-chat,deepseek-reasoner&protocol=openai_chat_completions

DeepSeek 模型说明

模型 ID说明适用场景
deepseek-chatDeepSeek V3 / 最新聊天模型日常编码、代码生成
deepseek-reasonerDeepSeek R1 推理模型复杂推理、调试分析

5. 配置 Claude Code 连接到 CCR

5.1 启动 CCR 网关

  1. 在 CCR 桌面应用中进入 Server
  2. 点击 Start 启动网关服务
  3. 确认状态:两个端点应处于运行状态:
    • Wrapper gateway: http://127.0.0.1:3456
    • Core gateway runtime: http://127.0.0.1:3457

建议勾选 Auto-start,这样每次开机 CCR 会自动启动网关。

5.2 创建 Claude Code 配置文件

方法 A:全局配置(推荐)

编辑 ~/.claude/settings.json(macOS/Linux)或 %USERPROFILE%\.claude\settings.json(Windows):

{
  "env": {
    "ANTHROPIC_BASE_URL": "http://127.0.0.1:3456",
    "ANTHROPIC_API_KEY": "ccr-local"
  }
}

ANTHROPIC_API_KEY 的值可以是任意非空字符串——CCR 作为本地网关不验证这个 key,但 Claude Code 要求必须有值才会绕过登录流程。

方法 B:项目级配置

在项目根目录创建 .claude/settings.local.json(此文件会自动被 gitignore):

{
  "env": {
    "ANTHROPIC_BASE_URL": "http://127.0.0.1:3456",
    "ANTHROPIC_API_KEY": "ccr-local"
  }
}

方法 C:Shell 环境变量(临时,适合测试)

export ANTHROPIC_BASE_URL=http://127.0.0.1:3456
export ANTHROPIC_API_KEY=ccr-local

5.3 使用 CCR Profiles 自动配置(推荐)

CCR 提供了 Profile 功能,可以一键应用配置:

  1. 在 CCR 中进入 Profiles
  2. 选择 Claude Code
  3. 选择目标模型(例如你在 Ollama 中配置的 llama3.1
  4. 点击 Apply — 这会自动设置环境变量并打开 Claude Code

5.4 配置 CCR 路由

在 CCR 的 Routing 面板中设置:

路由项推荐配置
Default Provider选择你配置的 Ollama 或 DeepSeek
Default Model选择具体模型,如 llama3.1deepseek-chat

你还可以配置针对不同工作负载的路由规则:

  • Background(后台任务)→ 可以用更便宜的模型
  • Thinking(推理任务)→ 可以用更强的模型
  • Subagent(子智能体)→ 可以用性价比更高的模型

6. 验证连接

6.1 快速测试(curl)

在配置好环境变量后,先用 curl 测试 CCR 网关是否正常响应:

curl -X POST http://127.0.0.1:3456/v1/messages \
  -H "Authorization: Bearer ccr-local" \
  -H "anthropic-version: 2023-06-01" \
  -H "content-type: application/json" \
  -d '{"model": "llama3.1", "max_tokens": 50, "messages": [{"role": "user", "content": "Say hello"}]}'

注意:这里的 model 名称必须与你之前在 CCR 中添加的模型名称一致。 如果 DeepSeek 使用 deepseek-chat,如果 Ollama 使用你拉取的模型名如 llama3.1

如果返回 JSON 且包含 content 字段,说明 CCR 工作正常。

6.2 启动 Claude Code

cd your-project
claude

如果一切正常,Claude Code 应该 跳过登录界面,直接进入会话。

6.3 检查状态

在 Claude Code 中运行:

/status

查看以下关键信息:

状态项期望值
Anthropic base URLhttp://127.0.0.1:3456
API key应显示 ANTHROPIC_API_KEY(而非 Login method

6.4 发送测试消息

尝试发送一条简单的消息,比如:

Hello, what model are you running on?

如果 CCR 路由配置正确,你会收到模型回复,并能在 CCR 的 Dashboard 中看到请求记录。

7. 进阶:路由规则与虚拟模型

7.1 多模型路由

CCR 支持根据请求特征将不同任务路由到不同模型:

路由条件目标模型用途
Defaultdeepseek-chat日常对话和编码
Backgroundllama3.1 (本地 Ollama)后台任务、代码搜索
Thinkingdeepseek-reasoner需要深度推理的任务
Long Contextdeepseek-chat处理大文件

配置方式:在 CCR → RoutingAdd Routing Rule 中设置。

7.2 虚拟模型(Virtual Models)

可以创建虚拟模型名称来简化模型选择:

llama3.1 → Ollama 上的 llama3.1
default-coding → deepseek-chat
default-reasoning → deepseek-reasoner

在 CCR → RoutingVirtual Models 中配置。

7.3 备用路由(Fallback)

当主模型不可用时,CCR 可以自动切换到备用模型:

Primary:   deepseek-chat (DeepSeek)
Fallback:  llama3.1 (Ollama,本地运行,不需要网络)

Routing → 编辑路由规则 → 配置 Fallback 模型。

7.4 API Key 轮转

对 DeepSeek 等 API 服务,可以配置多个 API Key 实现负载均衡和故障转移:

Providers → 编辑 DeepSeek → API Key 字段使用逗号分隔多个 key:

sk-key1,sk-key2,sk-key3

CCR 会在请求失败时自动轮换到下一个 key。

8. 常见问题排查

8.1 Claude Code 仍然显示登录界面

原因:CCR 的网关配置未被 Claude Code 读取到。

解决

  • 确认 ANTHROPIC_BASE_URLANTHROPIC_API_KEY 都已正确设置
  • 如果使用 settings.json,确认文件路径正确:
    • 全局:~/.claude/settings.json
    • 项目级:.claude/settings.local.json
  • 运行 echo $ANTHROPIC_BASE_URL 检查环境变量是否生效
  • 在 Claude Code 中运行 /status 查看实际生效的 base URL

8.2 连接被拒绝(Connection Refused)

原因:CCR 网关未启动。

解决

  • 确认 CCR 桌面应用正在运行
  • 在 CCR → Server 中确认 Gateway 状态为 "Running"
  • 检查端口是否被占用:lsof -i :3456

8.3 模型返回错误或不响应

原因:可能存在多种问题。

解决步骤

对于 Ollama:

# 检查 Ollama 服务状态
ollama list
# 确认模型已加载
ollama run llama3.1
# 检查 Ollama 日志
ollama serve

对于 DeepSeek:

# 直接测试 DeepSeek API
curl https://api.deepseek.com/v1/chat/completions \
  -H "Authorization: Bearer sk-your-key" \
  -H "Content-Type: application/json" \
  -d '{"model": "deepseek-chat", "messages": [{"role": "user", "content": "hi"}]}'

8.4 401 认证错误

原因:API Key 未正确传递。

解决

  • 如果使用 ANTHROPIC_API_KEY,CCR 收到的是 x-api-key
  • 如果使用 ANTHROPIC_AUTH_TOKEN,CCR 收到的是 Authorization: Bearer
  • 大多数情况下,两者都可以,只需确保 settings.json 中的变量名与 CCR 期望的一致

8.5 协议转换错误

原因:CCR 在 Anthropic Messages ↔ OpenAI Chat Completions 之间转换时可能遇到不兼容的字段。

解决

  • 在 Claude Code 中设置环境变量:CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1
  • 这会让 Claude Code 少发送一些实验性字段,降低协议转换出错的概率
  • 在 settings.json 中添加:
{
  "env": {
    "ANTHROPIC_BASE_URL": "http://127.0.0.1:3456",
    "ANTHROPIC_API_KEY": "ccr-local",
    "CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS": "1"
  }
}

8.6 检查 CCR 日志

CCR 桌面应用中的 Network Logs 面板可以查看所有通过的请求和响应,是排查问题的最佳工具。

8.7 重置配置

如果需要完全重置:

# 备份现有配置
cp ~/.claude-code-router/config.json ~/.claude-code-router/config.json.bak
# 删除配置(CCR 会在下次启动时重新创建)
rm ~/.claude-code-router/config.json
# 清除 Claude Code 缓存
rm -rf ~/.claude/cache

9. 完整配置示例

最终~/.claude/settings.json

{
  "env": {
    "ANTHROPIC_BASE_URL": "http://127.0.0.1:3456",
    "ANTHROPIC_API_KEY": "ccr-local",
    "CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS": "1",
    "CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC": "1"
  }
}

启动顺序

正确的启动顺序是:

  1. 启动 Ollama(如果用本地模型):ollama serve
  2. 启动 CCR 并确保网关处于 Running 状态
  3. 启动 Claude Codeclaude

以上就是Claude Code配置本地Ollama模型或别的模型(Deepseek等)的实践指南的详细内容,更多关于Claude Code配置本地Ollama模型的资料请关注脚本之家其它相关文章!

相关文章

最新评论