ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

Ollama 安装使用 CC Switch 配置 Claude Code 使用 TaoToken 的完整指南

Ollama 安装使用 CC Switch 配置 Claude Code 使用 TaoToken 的完整指南 1. 为什么本地 Ollama 不能直接喂给 Claude Code很多人装完 Ollama、拉下模型、ollama run能聊天之后第一反应就是把 Claude Code 的 API 地址改成http://127.0.0.1:11434然后发现根本连不上或者连上了也报一堆格式错误。我试过这个路子结论很明确Ollama 的接口是 OpenAI 风格的/v1/chat/completions而 Claude Code 走的是 Anthropic 的/v1/messages协议两边的请求体、响应体、工具调用字段都不一样硬指过去必然失败。所以中间必须夹一层协议转换。CC Switch 在这里扮演的是「配置切换器」的角色它本身不负责协议转换只负责把 Claude Code 的环境变量ANTHROPIC_BASE_URL、ANTHROPIC_AUTH_TOKEN、模型名按不同 profile 存起来一键切换。真正做协议翻译的是 LiteLLM 的 proxy 模式它对外暴露 Anthropic 兼容的/v1/messages对内把请求翻译成 Ollama 能懂的格式转发到11434。链路是这样的Claude Code → CC Switch 选中的 profile → LiteLLM proxyAnthropic 协议入口→ OllamaOpenAI 协议→ 本地模型。如果你还想让本地模型和云端模型共用一个入口可以在 LiteLLM 的配置里再加一条指向 TaoToken 的 Anthropic 通道这样 CC Switch 里切 profile 就能在「本地小模型」和「云端强模型」之间来回换不用改任何代码。这篇就按「Ollama 已装好 → 装 LiteLLM → 写配置 → CC Switch 加 profile → 启动验证 → 排错」的顺序走一遍配置骨架都能直接复制。2. 前置准备Ollama、LiteLLM 与 TaoToken 通道先说 Ollama 这边。确认服务在跑并且监听地址是 Claude Code 所在机器能访问到的。默认只监听127.0.0.1:11434如果 Claude Code 和 Ollama 不在同一台机器需要让它监听0.0.0.0。Windows 下设置环境变量后重启 Ollama 服务setx OLLAMA_HOST 0.0.0.0:11434macOS / Linux 用export OLLAMA_HOST0.0.0.0:11434 ollama serve然后确认模型在列表里ollama list假设你拉的是qwen2.5-coder:7b这类适合编码的模型记住这个名字后面配置里要用。LiteLLM 用 pip 装建议单独建虚拟环境避免和系统 Python 打架python -m venv litellm-env # Windows litellm-env\Scripts\activate # macOS / Linux source litellm-env/bin/activate pip install litellm[proxy]装完验证一下litellm --versionTaoToken 这边去控制台拿一个 API Key地址是https://taotoken.net/api。这个 Key 后面会写进 LiteLLM 配置作为云端模型的凭证。如果你暂时只想跑本地模型这一步可以先跳过但建议一起配好因为 CC Switch 的价值就在于多 profile 切换。注意LiteLLM 的 proxy 依赖比较多如果pip install litellm[proxy]卡在下载换国内镜像源重试别用任何网络加速工具直接换源就行。3. 可复制配置litellm_config.yaml 与 CC Switch profileLiteLLM 的核心是配置文件。在任意目录建一个litellm_config.yaml下面这份骨架同时挂了本地 Ollama 和 TaoToken 两条通道model_list: - model_name: local-coder litellm_params: model: ollama/qwen2.5-coder:7b api_base: http://127.0.0.1:11434 - model_name: taotoken-claude litellm_params: model: anthropic/claude-sonnet-4-20250514 api_base: https://taotoken.net/api api_key: os.environ/TAOTOKEN_API_KEY litellm_settings: drop_params: true set_verbose: false几个关键点解释一下。model_name是 LiteLLM 对外暴露的别名CC Switch 里填的就是这个名字。litellm_params.model里的ollama/前缀告诉 LiteLLM 用 Ollama 的适配器anthropic/前缀走 Anthropic 适配器。api_key用os.environ/TAOTOKEN_API_KEY从环境变量读不要把 Key 明文写进文件。启动前先设环境变量# Windows set TAOTOKEN_API_KEY你的Key # macOS / Linux export TAOTOKEN_API_KEY你的Key启动 proxylitellm --config litellm_config.yaml --port 4000 --host 0.0.0.0看到Proxy Server Started on http://0.0.0.0:4000就说明起来了。接下来是 CC Switch 的 profile。CC Switch 的配置存在~/.claude/apiConfigs.jsonWindows 是C:\Users\你的用户名\.claude\apiConfigs.json可以直接编辑也可以在图形界面里加。手动加的话往数组里塞一个对象{ name: local-ollama, config: { env: { ANTHROPIC_BASE_URL: http://127.0.0.1:4000, ANTHROPIC_AUTH_TOKEN: sk-litellm-local }, model: local-coder } }再塞一个走 TaoToken 的{ name: taotoken-cloud, config: { env: { ANTHROPIC_BASE_URL: http://127.0.0.1:4000, ANTHROPIC_AUTH_TOKEN: sk-litellm-local }, model: taotoken-claude } }注意两个 profile 的ANTHROPIC_BASE_URL都指向 LiteLLM 的4000端口区别只在model字段。ANTHROPIC_AUTH_TOKEN填什么其实 LiteLLM 默认不校验但 Claude Code 要求这个字段非空随便填一个占位即可。这样切 profile 就等于切模型本地和云端共用一套入口。如果你不想让 LiteLLM 做云端转发也可以让 CC Switch 的云端 profile 直接指向 TaoToken 的 API 地址省掉一层。但统一走 LiteLLM 的好处是日志集中、限流和重试策略好配。4. 启动验证从 curl 到 Claude Code 实际请求配置写完别急着开 Claude Code先分层验证。第一层确认 LiteLLM 活着curl http://127.0.0.1:4000/v1/models应该返回一个 JSONdata数组里能看到local-coder和taotoken-claude两个名字。如果这里就报连接拒绝说明 proxy 没起来或者端口被占。第二层直接打 Anthropic 格式的 messages 接口验证协议转换是否正常curl http://127.0.0.1:4000/v1/messages \ -H Content-Type: application/json \ -H x-api-key: sk-litellm-local \ -H anthropic-version: 2023-06-01 \ -d { model: local-coder, max_tokens: 128, messages: [{role: user, content: 用一句话说明什么是递归}] }能返回带content字段的 JSON 就说明 LiteLLM 到 Ollama 这段通了。如果返回 400 或 500看 LiteLLM 终端的日志通常会打印出上游返回的原始错误。第三层验证 TaoToken 通道curl http://127.0.0.1:4000/v1/messages \ -H Content-Type: application/json \ -H x-api-key: sk-litellm-local \ -H anthropic-version: 2023-06-01 \ -d { model: taotoken-claude, max_tokens: 128, messages: [{role: user, content: 回复 OK 两个字母}] }第四层才是 Claude Code。在 CC Switch 里启用local-ollamaprofile然后开一个新终端claude进去之后随便问一句看是否正常流式返回。如果 Claude Code 报401或invalid api key检查ANTHROPIC_AUTH_TOKEN是否为空报model not found检查 profile 里的model字段和 LiteLLM 配置里的model_name是否完全一致大小写敏感。5. 本篇常见报错排查报错一Connection refused到 11434。Ollama 没监听对地址。ollama list能跑不代表服务对外可达检查OLLAMA_HOST是否设成0.0.0.0:11434设完要重启 Ollama 进程Windows 下在任务栏退出再重开。报错二LiteLLM 启动报ModuleNotFoundError: No module named websockets。[proxy]的依赖没装全单独补pip install websockets报错三anthropic.BadRequestError: model does not support tool use。本地小模型的工具调用能力弱Claude Code 大量依赖 tool use 来读写文件。7B 以下的模型经常在这块翻车换qwen2.5-coder:14b或更大或者本地 profile 只用来做问答编码任务切到 TaoToken 的云端 profile。报错四CC Switch 切了 profile 但 Claude Code 没生效。Claude Code 读的是启动时的环境变量切 profile 后要重开终端。另外确认 CC Switch 写的是~/.claude/apiConfigs.json有些版本会写到别的路径用claude config list核对当前生效的配置。报错五TaoToken 通道返回 401。环境变量TAOTOKEN_API_KEY没设或者设了但 LiteLLM 进程是在设之前启动的。环境变量是进程启动时读取的改完要重启 LiteLLM。报错六响应特别慢或超时。本地模型受显存限制首次加载要几十秒。LiteLLM 默认超时可能不够在litellm_settings里加request_timeout: 600。6. 把入口固定下来长期编码与 Key 管理跑通之后日常使用建议把 LiteLLM 做成开机自启的服务不然每次都要手动开终端。Windows 可以用nssm注册成服务macOS 用launchdLinux 用systemd核心就是把litellm --config ... --port 4000这条命令包起来。CC Switch 里可以多存几个 profile本地快速问答一个、TaoToken 云端编码一个、如果团队有多个 Key 再按项目分。切换成本就是点一下比改环境变量省事。TaoToken 的 Key 在控制台的 API Keys 页面管理建议按用途分 Key方便排查是哪个项目在消耗额度。接入文档里有不同语言 SDK 的示例如果你不用 LiteLLM 这层也可以让 Claude Code 直接指向 TaoToken 的 Anthropic 兼容入口配置方式和上面 profile 里写的一样只是ANTHROPIC_BASE_URL换成https://taotoken.net/api。模型对话页面可以快速验证某个模型当前是否可用不用每次都开 Claude Code 试。长期跑编码 Agent 的话Coding Plan 的额度模型比按量计费更可控尤其是让 Agent 连续改多个文件的时候。最后留一个实用习惯LiteLLM 的日志默认打在终端把它重定向到文件出问题时翻日志比猜快得多。本地模型和云端模型混用时日志里能清楚看到每个请求走了哪条通道、耗时多少调优的时候很有用。
返回列表