将 Claude Code (v2.x) 接入本地 vLLM 模型服务,实现多端点/多模型一键切换
|
运行
纯 PowerShell + JSON 配置,无需 Python(可选) |
轻松添加更多模型端点,满足不同需求 内置调试工具和详细故障排查指南 从安装到使用仅需 3 步,30 秒完成 |
| 要求 | 说明 | 状态 |
|---|---|---|
| 操作系统 | Windows 10/11 | ✅ 必需 |
| Shell | Windows PowerShell 5.x(预装) | ✅ 必需 |
| Claude Code | npm install -g @anthropic-ai/claude-code |
✅ 必需 |
| vLLM 服务 | 已运行的 OpenAI 兼容 API | ✅ 必需 |
| Python | 3.x(用于端点测试) |
# Step 1: 克隆或下载本仓库
git clone https://github.com/Delight0628/cc-local-model.git
cd cc-local-model
# Step 2: 运行安装脚本
.\scripts\install.ps1
# Step 3: 重启 PowerShell,开始使用!| 步骤 | 说明 | 状态 |
|---|---|---|
| ✅ 创建 Settings 文件 | 每个模型一个独立配置文件 | 已完成 |
| ✅ 修复 Onboarding 问题 | 解决 "Unable to connect" 报错 | 已完成 |
| ✅ 生成切换函数 | cc-122b / cc-multimodal 等 |
已完成 |
| ✅ 配置 Profile 自动加载 | 重启即可使用 | 已完成 |
# 启动 122B 文本大模型
cc-122b
# 启动多模态模型
cc-multimodal# 测试 122B 端点
cc-test -Model 122b
# 测试多模态端点
cc-test -Model mm
# 测试默认配置
cc-testccm-help# 单次调用 122B
claude -p "你的问题" --model "MODEL_NAME" --dangerously-skip-permissions --settings "$HOME\.claude\settings-122b.json"
# 交互模式
claude code --model "MODEL_NAME" --settings "$HOME\.claude\settings-122b.json"┌─────────────────────────────────────────────────────────────┐
│ Claude Code CLI │
├─────────────────────────────────────────────────────────────┤
│ --settings ~/.claude/settings-122b.json │
│ ↓ │
│ ANTHROPIC_BASE_URL = http://10.101.106.100:8000 │
│ ↓ │
│ vLLM Server (Intel/Qwen3.5-122B) │
└─────────────────────────────────────────────────────────────┘
Claude Code 的 settings.json 中的环境变量不注入主进程。解决方案是使用 --settings <file> 参数:
claude code --model "MODEL_NAME" --settings "~/.claude/settings-xxx.json"每个 settings 文件指向不同的 ANTHROPIC_BASE_URL,配合 --model 绑定对应模型名:
~/.claude/
├── settings-122b.json → http://10.101.106.100:8000 (Intel/Qwen3.5-122B)
├── settings-mm.json → http://10.0.83.100:8000 (Qwen/Qwen3.6-35B)
└── .claude.json → hasCompletedOnboarding: true
| 别名 | 类型 | 默认端点 | 默认模型名 | Settings 文件 |
|---|---|---|---|---|
cc-122b |
文本大模型 | http://10.101.106.100:8000 |
Intel/Qwen3.5-122B-A10B-int4-AutoRound |
settings-122b.json |
cc-multimodal |
多模态 | http://10.0.83.100:8000 |
Qwen/Qwen3.6-35B-A3B-FP8 |
settings-mm.json |
编辑 scripts/install.ps1 中的默认值,或在运行时传入参数:
.\scripts\install.ps1 `
-BaseUrls "http://your-server-1:8000;http://your-server-2:8000" `
-Models "model-name-1;model-name-2" `
-Aliases "text;vision"- 复制 settings 模板,修改 URL 和文件名
- 在
claude-models.ps1中添加新函数(参照现有结构) - 新终端加载后即可使用
CC 交互模式启动时会先跑引导流程(硬连 api.anthropic.com)。如果 ~/.claude.json 中缺少 "hasCompletedOnboarding": true,即使配置了本地端点也会报连接错误。
# 修复方法
$f = "$env:USERPROFILE\.claude.json"
$j = Get-Content $f | ConvertFrom-Json
$j | Add-Member -NotePropertyName 'hasCompletedOnboarding' -NotePropertyValue $true -Force
$j | ConvertTo-Json | Set-Content $f| 问题 | 原因 | 解决方案 |
|---|---|---|
Unable to connect to Anthropic services |
onboarding 未完成或环境变量未生效 | 检查 .claude.json 的 hasCompletedOnboarding;用 setx 设置环境变量 |
The model xxx does not exist (404) |
--settings 指向了错误的端点 |
确认 settings 文件中的 URL 与模型实际所在服务器一致 |
cc-122b 命令找不到 |
Profile 未加载函数 | 确认 Profile 路径正确(注意 WinPS vs PS7 的路径差异);手动 . $PROFILE 加载 |
| 环境变量设了但没生效 | settings.json 的 env 不注入主进程 |
必须用 setx 或写 Profile 或用 --settings 文件覆盖 |
交互模式正常但 -p 模式报错 |
通常相反——-p 更容易成功 |
检查是否遗漏 --model 参数 |
# 测试端点连通性
python scripts/test-endpoint.py --url http://YOUR_SERVER:8000 --model "MODEL_NAME"详见 references/troubleshooting.md
cc-local-model/
├── SKILL.md # WorkBuddy Skill 定义
├── README.md # 本文件
├── scripts/
│ ├── install.ps1 # 一键安装脚本
│ └── test-endpoint.py # 端点连通性测试工具
├── assets/
│ └── claude-models.ps1 # 完整的 PowerShell 切换函数
└── references/
├── settings-templates.md # Settings 文件模板参考
└── troubleshooting.md # 详细故障排查指南
欢迎贡献代码、报告问题或提出改进建议!
- Fork 本仓库
- 创建 功能分支 (
git checkout -b feature/AmazingFeature) - 提交 更改 (
git commit -m 'Add some AmazingFeature') - 推送 到分支 (
git push origin feature/AmazingFeature) - 创建 Pull Request
- 🐛 Bug 修复 - 修复已知问题
- ✨ 新功能 - 添加新模型支持或增强现有功能
- 📚 文档 - 改进文档或添加示例
- 🎨 UI/UX - 改进用户体验
本项目采用 MIT 许可证 - 详见 LICENSE 文件