ClaudePrism 本地代理机制揭秘:如何用 Rust 把 OpenAI 兼容 API 无缝适配给 Claude Code
【免费下载链接】claude-prismAn offline-first scientific writing workspace powered by Claude. LaTeX Python 100 scientific skills all running locally.项目地址https://gitcode.com/gh_mirrors/cl/claude-prism点击查看免费下载ClaudePrism 是一款离线优先offline-first的科学写作工作区由 Claude 驱动内置 LaTeX 编辑器、Python 环境与 100 科学技能。它的核心亮点之一是用 Rust 编写了一个本地代理local proxy当你想接入 DeepSeek、通义千问等 OpenAI 兼容OpenAI-compatibleAPI 时这个代理会把 Claude Code 说的 Anthropic 协议 实时翻译成 OpenAI 协议全程运行在本机无需任何第三方中转服务。为什么需要本地代理Claude Code 只认 Anthropic 协议Claude Code 是 Anthropic 官方的命令行智能体它只会向ANTHROPIC_BASE_URL指向的地址发送 Anthropic Messages 格式的 HTTP 请求。而绝大多数国产/开源模型服务DeepSeek、Qwen、GLM、Moonshot 等只讲 OpenAIchat/completions这一套。两者协议差异不小关注点Anthropic 格式OpenAI 兼容格式系统提示词独立的system字段role: system消息工具调用tool_use内容块tool_callsfunction结构工具结果tool_result块role: tool消息结束原因stop_reason如end_turnfinish_reason如stop/length流式输出Anthropic SSE 事件OpenAI SSE 分片ClaudePrism 的解决方案很朴素在本机起一个只有127.0.0.1可达的迷你 HTTP 服务让 Claude Code 以为自己在和 Anthropic 说话实际由 Rust 代理负责双向翻译。一键启动本地代理是怎么跑起来的当你在 ClaudePrism 中选择 OpenAI 兼容供应商并发送第一条消息时Rust 后端会调用 start_openai_anthropic_proxy在127.0.0.1:0上绑定监听——端口号交给操作系统随机分配天然避免端口冲突且只监听本机回环地址外网无法访问把代理地址写入 Claude Code 进程的环境变量ANTHROPIC_BASE_URL指向本机代理ANTHROPIC_API_KEY填一个占位值claude-prism-local-proxy真实密钥只在代理与远端模型之间流转见 claude.rs以--model sonnet启动 Claude Code 子进程开始对话。代理本体只用tokioreqwest没有引入 Web 框架它手工解析 HTTP 头部、按路径路由逻辑一目了然。它支持三类请求POST /v1/messages—— 核心对话接口走完整的翻译 → 转发 → 回译流水线GET /—— 健康检查返回{ok: true}POST /v1/messages/count_tokens—— 用一个字符数 ÷ 4 的近似值快速应答让 Claude Code 的上下文估算逻辑正常运转。协议翻译请求与响应的双向转换请求方向由 messages.rs 完成anthropic_to_openai_request()把 Anthropic 请求改写为标准 OpenAI 请求体——system字段提为系统消息tool_use块变成tool_callstool_result块变成role: tool消息模型名替换为你配置的真实模型再补上temperature、top_p、max_tokens等采样参数。响应方向同样关键OpenAI 返回的choices[0].message会被还原成 Anthropic 消息格式finish_reason映射为stop_reasonlength→max_tokenstool_calls→tool_use其余 →end_turntoken 用量也做了字段对齐兼容prompt_tokens/input_tokens等多种命名。工具调用自愈Rust 里最硬核的部分弱一些的小模型经常输出坏的工具调用参数——JSON 外面包了 代码围栏、带尾逗号、单引号字符串、缺逗号甚至输出成 YAML。Claude Code 对这类坏数据会直接报错。ClaudePrism 在 tools.rs 里内置了一个多级修复器依次尝试原样 → 剥掉代码围栏 → 去掉注释和尾逗号 → 单引号转双引号 → 补齐字段间逗号 → 括号配平等多种候选任何一个候选能被解析就采用实在不行再回退 YAML 解析。空的或纯数字的tool_call id也会被规范化成call_uuid保证多轮工具调用不断链。这就是代理里enhancetool转换器的实际效果——小模型的粗糙输出在到达 Claude Code 之前就被悄悄修好了。流式响应SSE 的实时改写Claude Code 依赖流式输出。stream.rs 中的stream_openai_sse_to_anthropic()边读边转把 OpenAI 的 SSE 分片逐块解析、累积工具参数缓冲实时渲染成 Anthropic 的 SSE 事件序列message_start、content_block_delta……流结束时再补上携带 token 用量的收尾事件。上游流意外中断时代理也会主动推送一个errorSSE 事件而不是让 Claude Code 干等超时。供应商专属兼容策略转换器链不同供应商的OpenAI 兼容程度参差不齐ClaudePrism 用一个可组合的转换器链来兜底cleancache递归剥掉 Anthropic 专有的cache_control字段避免远端报未知参数streamoptions流式请求时自动附加stream_options.include_usage让 Claude Code 能拿到 token 统计deepseek把max_tokens钳制到 8192 上限并拦截 OpenAI 风格的image_url图片块DeepSeek 不支持会直接给出清晰报错thinking 预算Anthropic 的thinking.budget_tokens会映射为reasoning.max_tokens对 OpenAI o 系列模型max_tokens自动改写为max_completion_tokens见 providers.rs。这些规则由 Rust 单元测试逐一锁死见 anthropic_proxy.rs 测试高级用户还可以用环境变量CLAUDE_PRISM_PROXY_TRANSFORMERS追加自定义转换器。值得一提的是能绕则绕的设计如果供应商本身就提供原生 Anthropic 端点如 DeepSeek 的/anthropic路径ClaudePrism 会跳过代理直连见 native_anthropic_base_url——能省一层翻译就省一层。写在最后整套本地代理不到 3000 行 Rust 代码没有 Web 框架、没有重型依赖却补齐了协议转换、流式改写、工具调用自愈、供应商兼容四块脏活。这正是 ClaudePrism 的定位把复杂的适配工作藏在本地 Rust 进程里让你只管写论文、做实验模型随便换。 源码地图代理入口 anthropic_proxy.rs · 请求/响应转换 anthropic_proxy/messages.rs · 流式 SSE 改写 anthropic_proxy/stream.rs · 供应商适配 anthropic_proxy/providers.rs · 工具调用修复 anthropic_proxy/tools.rs赞分享【免费下载链接】claude-prismAn offline-first scientific writing workspace powered by Claude. LaTeX Python 100 scientific skills all running locally.项目地址https://gitcode.com/gh_mirrors/cl/claude-prism点击查看免费下载相关推荐如何把 Ollama 接入 Anthropic Messages API 兼容接口供 Claude Code 使用如何把 Ollama 接入 Anthropic Messages API 兼容接口供 Claude Code 使用 Claude Code 是一个 agenti人工智能大模型模型推理服务本地部署PCSX2 模拟器高清画质配置5 分钟从模糊到清晰PCSX2 模拟器高清画质配置5 分钟从模糊到清晰 PCSX2 是一款开源的 PS2 模拟器能把主机经典搬上电脑。画面模糊、纹理错位、帧数上不去多数情况不虚拟化桌面应用图形学如何用 OpenAI 兼容接口把 Ollama 或 vLLM 本地模型接入 CowAgent如何用 OpenAI 兼容接口把 Ollama 或 vLLM 本地模型接入 CowAgent 如果你已经在本地用 Ollama 或 vLLM 部署了模型想让AI Agent人工智能多智能体工具调用Agent 记忆AI 技能交互助手即时通讯自主智能体RAG浏览器控制创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

MEX 代码图谱命令清单:graph status / refresh / scope / query 四个核心用法一次讲透

MEX 代码图谱命令清单:graph status / refresh / scope / query 四个核心用法一次讲透

【免费下载链接】mex Team memory for engineers and their AI agents. Lives in your repo. Shared through Git. 项目地址: https://gitcode.com/gh_mirrors/mex2/mex 点击查看 免费下载 MEX 是一款为工程师和 AI Agent 打造的团队记忆工具,它以 Git …

2026/10/10 19:23:01 阅读更多 →
从入门到贡献者:如何向Java-Backend开源项目提交你的第一个Pull Request

从入门到贡献者:如何向Java-Backend开源项目提交你的第一个Pull Request

从入门到贡献者:如何向Java-Backend开源项目提交你的第一个Pull Request 【免费下载链接】Java-Backend These are resources, roadmaps, links to learn Java Backend :) 项目地址: https://gitcode.com/gh_mirrors/jav/Java-Backend Java-Backend 是一个超…

2026/10/10 19:23:01 阅读更多 →
opencode工具层设计实战:从工具定义到服务面暴露与集成

opencode工具层设计实战:从工具定义到服务面暴露与集成

1. 从“能跑”到“好用”:工具层设计的取舍逻辑很多人第一次接触 opencode 这类终端 AI 编程助手时,注意力都放在“它能不能帮我写代码”上。但真正决定日常使用体验的,往往不是模型本身,而是它背后的工具层怎么设计。上篇我们聊了…

2026/10/10 19:23:01 阅读更多 →

最新新闻

Java SPI机制详解:从ServiceLoader到框架扩展原理

Java SPI机制详解:从ServiceLoader到框架扩展原理

参加Java面试时,如果对方问“你们怎么实现接口扩展”或者“框架为什么能自动加载实现类”,八成是想考察SPI机制。SPI全称Service Provider Interface,简单说就是Java原生的“插槽式”扩展机制:你定义一个接口,别人可以…

2026/10/11 0:59:12 阅读更多 →
Hadoop教学级分布式存储源码:伪分布式HDFS交互系统

Hadoop教学级分布式存储源码:伪分布式HDFS交互系统

简介:本资源是一套基于Hadoop构建的完整分布式存储系统实现,面向计算机、人工智能、通信工程等专业的在校学生、教师及初级开发者,适用于课程设计、毕业设计、项目立项演示及分布式系统入门实践。压缩包共203个文件,包含87个运行依…

2026/10/11 0:59:12 阅读更多 →
U2Net证件照抠图实战:发丝级人像分割与白底合成

U2Net证件照抠图实战:发丝级人像分割与白底合成

简介:本资源是一套基于Python与U2Net模型的轻量级证件照智能生成解决方案,面向深度学习初学者、计算机视觉实践者及图像处理开发者,解决日常证件照背景替换、人像精准抠图与标准化输出等实际需求。压缩包共18个文件,含5个核心Pyth…

2026/10/11 0:58:11 阅读更多 →
红外图像过热检测:YOLOv8与yolo11双模型实战部署

红外图像过热检测:YOLOv8与yolo11双模型实战部署

简介:本资源是一套面向电力巡检场景的输电线路过热智能检测系统,适用于计算机视觉初学者、电力行业AI应用开发者及高校课程设计/大作业实践者,解决传统人工巡检中难以实时识别导线异常发热的问题。压缩包共2000个文件,含194个Pyth…

2026/10/11 0:58:11 阅读更多 →
Python 3.13 free-threading实践:多进程到多线程迁移复盘

Python 3.13 free-threading实践:多进程到多线程迁移复盘

Python 3.13正式把free-threading(无GIL)作为实验特性放出来以后,技术社区里讨论最多的就是一件事:我的多进程代码是不是可以改成多线程了?我第一次听到这个说法的时候也抱有同样的幻想,毕竟多线程如果真能…

2026/10/11 0:58:11 阅读更多 →
邯郸泓动数据服务有限公司可以做AI搜索品牌曝光吗

邯郸泓动数据服务有限公司可以做AI搜索品牌曝光吗

核心结论: 邯郸泓动数据服务有限公司(以下简称邯郸泓动)可提供AI搜索场景下的品牌曝光相关GEO优化服务,该服务围绕主流大模型平台内容优化、精准触达潜在用户等维度落地,具备对应行业案例与标准化操作逻辑支撑。AI搜索…

2026/10/11 0:58:11 阅读更多 →

日新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 5:23:50 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 21:32:20 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 10:38:42 阅读更多 →