news 2026/10/8 12:12:00

彻底告别Token付费!Ollama+CCSwitch+Claude Code 纯本地AI编程环境全套配置

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
彻底告别Token付费!Ollama+CCSwitch+Claude Code 纯本地AI编程环境全套配置

1. 为什么我要把 Claude Code 的请求转到本地 Ollama

云端 Claude Code 用起来确实顺手,但三个问题一直绕不开:Token 按量计费、高峰期接口限流、代码片段要上传到远端。日常写业务代码还好,一旦碰到公司内部项目或者还没公开的私密仓库,把整段源码发到云端总让人心里不踏实。我试过把模型换成纯本地的方案,跑通之后发现补全、重构、解释代码这些高频动作完全够用,而且全程零 Token 费用、断网也能跑。

这套方案的核心检索词就是「Ollama + CCSwitch + Claude Code 本地 AI 编程环境配置」。简单说,Ollama 负责在本地跑开源代码模型并提供兼容 API,CCSwitch 负责把 Claude Code 原本发往云端的请求拦截下来、转发到本地端口,Claude Code 继续当你的编码入口,交互体验不变。三者串起来,就是一个不依赖云端计费的完整链路。

它适合谁?适合手头机器内存 8G 以上、想省掉 API 账单、又需要代码不出本机的开发者。轻度场景比如补全、写小函数、修简单报错,7B 级别的代码模型就能胜任;大型项目重构、多文件复杂逻辑调试,本地小模型会吃力,这点后面会讲清楚边界。下面我按「装 Ollama → 拉模型 → 配 CCSwitch → 接 Claude Code → 验证请求」的顺序,把可复制的配置和踩过的坑都写出来。

2. 前置准备:Ollama 本地服务与 CCSwitch 安装要点

这一节把地基打好。很多人卡住不是因为配置难,而是版本和端口没对齐。先把三样东西备齐:Ollama、CCSwitch、Claude Code 插件,外加一个 Node.js 运行时。

Ollama 是本地推理核心,装完会常驻后台,默认监听11434端口,提供/api/chat这类接口。安装走官网图形化流程即可,Windows、macOS、Linux 都有对应安装包,双击下一步,系统会自动配好环境变量和后台服务,不用手动敲启动命令。装完可以在终端确认一下版本:

ollama --version # 期望输出类似:ollama version 0.5.x

如果这条命令报「command not found」,说明环境变量没生效,重开一个终端窗口,或者手动把 Ollama 的安装目录加进 PATH。这一步别跳过,后面 CCSwitch 转发失败经常就是本地服务根本没起来。

模型选择上,我实测用qwen2.5-coder:7b,它是轻量代码专用模型,8G 内存能流畅跑,适合补全、基础故障修复、短代码编写。拉取命令:

ollama pull qwen2.5-coder:7b

拉完确认模型在列表里:

ollama list # NAME ID SIZE # qwen2.5-coder:7b xxxxxxxx 4.7 GB

内存 16G 以上可以上 14B 版本,补全质量更好,但响应会慢一些。这里给个对照,方便你按机器选:

模型规格内存门槛适用场景响应速度
qwen2.5-coder:7b8G补全、小函数、简单报错快
qwen2.5-coder:14b16G中等重构、多文件理解中等
更大参数模型32G+复杂逻辑、长上下文慢

CCSwitch 是请求转发工具,作用是把 Claude Code 发往云端的请求无感转发到本地 Ollama。它支持 Windows 10+、macOS 12+、Linux,官网下载桌面安装包,双击默认安装即可。装完先别急着配 Claude Code,一定要先把 CCSwitch 的转发跑起来,顺序反了会一直连不上。

Node.js 建议装 v22 LTS,Claude Code 和 CCSwitch 都依赖它。版本太低会出现命令失效或安装报错,装完用node -v确认。

注意:Ollama 默认只监听本机127.0.0.1:11434,这是好事,别随手改成0.0.0.0暴露到局域网,本地环境保持本机访问最安全。

3. 可复制配置:CCSwitch 转发参数与 Claude Code 接入片段

这一节是全文最关键的部分,配置写错一个字段,请求就会 401 或者直接连不上。CCSwitch 里点「新增供应商」,类型选「自定义」,然后按下面的字段填。核心三件套是 Base URL、Key、Model ID,缺一不可。

先看 CCSwitch 的转发配置,用 JSON 形式表达(界面里对应各个输入框):

{ "provider": "custom", "name": "local-ollama", "baseUrl": "http://localhost:11434/v1", "apiKey": "ollama", "model": "qwen2.5-coder:7b", "forwardPort": 8787 }

几个字段解释一下。baseUrl指向 Ollama 的兼容接口,注意这里用的是/v1路径,因为 Claude Code 走的是 OpenAI 兼容协议,Ollama 从较新版本开始提供/v1/chat/completions兼容端点。apiKey本地服务不校验,随便填一个非空字符串即可,但不能留空,留空有些客户端会直接拒绝。model必须和ollama list里的名字完全一致,大小写、冒号都不能错。forwardPort是 CCSwitch 对外暴露的端口,Claude Code 连的就是它。

保存后点「启动转发」,CCSwitch 会把8787端口的请求转到11434。接着配 Claude Code。Claude Code 读取的是环境变量,在启动它的终端里设置,或者写进 shell 配置文件。Linux/macOS 用:

export ANTHROPIC_BASE_URL="http://localhost:8787" export ANTHROPIC_API_KEY="ollama" export ANTHROPIC_MODEL="qwen2.5-coder:7b"

Windows PowerShell 用:

$env:ANTHROPIC_BASE_URL="http://localhost:8787" $env:ANTHROPIC_API_KEY="ollama" $env:ANTHROPIC_MODEL="qwen2.5-coder:7b"

如果你用的是 Claude Code 的 settings 配置文件,可以写成这样,路径按你系统放对位置:

{ "env": { "ANTHROPIC_BASE_URL": "http://localhost:8787", "ANTHROPIC_API_KEY": "ollama", "ANTHROPIC_MODEL": "qwen2.5-coder:7b" } }

这里要提醒一句:ANTHROPIC_BASE_URL指向的是 CCSwitch 的转发端口,不是 Ollama 的 11434。很多人图省事直接填 11434,结果协议不匹配报错。CCSwitch 存在的意义就是做这层协议转换和请求拦截,别绕过它。

如果你后续想接云端做对比测试,或者本地模型不够用时临时切回托管服务,可以把 Base URL 换成https://taotoken.net/api,Key 换成对应平台申请的密钥,模型 ID 换成你要用的型号。这样同一套 Claude Code 配置,只改环境变量就能在本地和云端之间切换,CCSwitch 里也可以存多套供应商配置,一键切换。

配置完记得重启 Claude Code 或重开终端,环境变量是启动时读取的,改完不重启不生效。

4. 验证请求:发起一次代码补全并确认走的是本地模型

配置对不对,跑一次就知道。验证分两步:先确认 Ollama 本地服务本身能出结果,再确认 Claude Code 经过 CCSwitch 能拿到补全。

第一步,直接打 Ollama 的兼容接口,排除模型问题:

curl http://localhost:11434/v1/chat/completions \ -H "Content-Type: application/json" \ -d '{ "model": "qwen2.5-coder:7b", "messages": [ {"role": "user", "content": "用 Python 写一个读取 JSON 文件并返回字典的函数"} ] }'

正常会返回一段 JSON,choices[0].message.content里就是模型生成的代码。如果这一步就失败,说明 Ollama 或模型有问题,先别往下走。

第二步,验证 CCSwitch 转发链路。打转发端口:

curl http://localhost:8787/v1/chat/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer ollama" \ -d '{ "model": "qwen2.5-coder:7b", "messages": [ {"role": "user", "content": "解释一下这段代码的作用:def f(x): return x*2"} ] }'

如果这一步返回和第一步类似的结构,说明 CCSwitch 转发正常。注意请求头里带了Authorization,虽然本地不校验,但保持和 Claude Code 一致的调用方式,能提前暴露鉴权相关的问题。

第三步,在 Claude Code 里实际发起一次补全。打开 VSCode,选中一段代码,触发 Claude Code 的补全或对话功能,问它「这段代码有什么潜在 bug」。观察 CCSwitch 的日志面板,应该能看到一条转发记录,同时 Ollama 那边有推理占用。如果 Claude Code 转圈很久最后报错,八成是环境变量没生效或者端口填错。

实测下来,7B 模型在普通 CPU 上生成一段十几行的函数大概几秒到十几秒,有 N 卡加速会快不少。第一次调用因为要加载模型进内存,会明显慢,之后就稳定了。验证通过后,你就拥有了一个断网也能用的本地编程助手。

5. 常见报错排查:401、local proxy failed、reading choices 怎么解

配置过程中最容易撞的几个错,我按真实报错对照着说,方便你快速定位。

401 Unauthorized。这个错一般出现在请求头缺 Key 或者 Key 为空。本地 Ollama 虽然不校验,但 Claude Code 和 CCSwitch 的协议层要求Authorization字段存在。检查ANTHROPIC_API_KEY是否设了非空值,CCSwitch 配置里的apiKey是否填了。两边都别留空。

local proxy failed / connection refused。意思是 Claude Code 连不上 CCSwitch 的转发端口。先确认 CCSwitch 是否点了「启动转发」,再看ANTHROPIC_BASE_URL的端口和 CCSwitch 里设的forwardPort是否一致。还有一种情况是 CCSwitch 进程挂了,重启一下即可。用curl http://localhost:8787/v1/models能快速判断端口通不通。

Error reading choices / choices 字段为空。这个通常是模型名对不上,或者 Ollama 返回的结构和客户端预期不一致。先核对ANTHROPIC_MODEL和ollama list里的名字是否逐字符一致。如果模型名没错,检查 Ollama 版本是否过旧,老版本可能没有/v1兼容端点,升级到较新版本再试。

OAuth / 登录相关报错。Claude Code 某些版本启动时会尝试走云端鉴权流程,如果它检测到的是官方域名就会弹登录。确保ANTHROPIC_BASE_URL指向的是本地转发地址而不是官方地址,这样它就不会触发 OAuth。如果仍然弹,检查是否有全局配置文件覆盖了你的环境变量。

模型加载超时。第一次调用要把模型读进内存,7B 大概几 GB,机械硬盘会慢。耐心等第一次,或者提前用ollama run qwen2.5-coder:7b预热一下。内存不足时会直接 OOM,这时候换更小的模型或者加内存。

排查顺序建议固定成:先 curl 11434 确认模型层,再 curl 8787 确认转发层,最后看 Claude Code 环境变量。逐层排除,比一上来就怀疑插件快得多。

6. 本地与云端如何取舍:把 TaoToken 作为可切换的备选通道

纯本地方案跑通后,日常补全、写小工具、解释代码基本不用再花钱。但本地小模型有明确边界:大型项目跨文件重构、复杂业务逻辑推理、长上下文理解,7B 甚至 14B 都会力不从心,生成质量和不稳定性会明显上升。这时候更实际的做法是保留本地为主、云端为辅的双通道。

CCSwitch 支持存多套供应商配置,你可以把本地 Ollama 存一套,把托管服务存另一套,需要时一键切换。托管通道的 Base URL 填https://taotoken.net/api,Key 用你在平台申请的密钥,模型 ID 按需选择。这样 Claude Code 的环境变量只改ANTHROPIC_BASE_URL和ANTHROPIC_API_KEY就能在两条链路间切换,不用重装任何东西。

具体操作上,本地这套继续用http://localhost:8787,云端那套在 CCSwitch 里新增一个供应商,Base URL 填https://taotoken.net/api,保存后切换激活即可。想验证某个模型的实际表现,可以直接在模型对话里试;需要长期跑编码任务或 Agent 类工作流,用 Coding Plan 更划算;密钥管理在 API Keys 页面;接入细节看接入文档。这几个入口按需取用就行。

我的建议是:私密项目、离线场景、轻量补全走本地;需要高质量重构或复杂推理时切到托管通道。两套配置都留在 CCSwitch 里,切换成本几乎为零。这样既守住了代码不出本机的底线,又不会在硬骨头任务上被本地小模型拖住。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/8 12:10:49

半导体晶圆盒ID识别:工业OCR与一体式视觉设备实战解析

在半导体车间里待久了,你会发现一个很有意思的现象:传送仓门口的机械臂每抓一只晶圆盒,镜头都要闪一下。就那么零点几秒的工夫,盒子侧面那串不起眼的字符就被记下来了。早些年这种活儿大多靠人眼核对,或者指望RFID标签…

作者头像 李华