☰
OpenRelay 核心原理拆解:如何实现 Anthropic 与 OpenAI API 的无缝互转
2026/10/4 21:45:25 网站建设 项目流程

OpenRelay 核心原理拆解:如何实现 Anthropic 与 OpenAI API 的无缝互转

【免费下载链接】openrelay几百个免费 AI 模型配额,一键接入本地项目。| Hundreds of free AI model quotas, one-click access to local projects.项目地址: https://gitcode.com/gh_mirrors/openrel/openrelay

OpenRelay 是一款开源的本地 AI 代理工具,它在本机自动发现数十个免费 AI 模型配额,并以统一端点同时提供 Anthropic Messages 与 OpenAI Chat Completions 两种 API,通过双向格式转换让任意配额驱动任意工具。本文拆解它的核心原理:格式互转、凭据发现、IDE 透明代理与配额故障转移。

先通过下面的演示动图,直观感受 OpenRelay 的运行效果:

为什么 API 互转是个难题 🤔

目前主流 AI 生态分裂成两套 API 标准:

对比维度Anthropic Messages APIOpenAI Chat Completions API
请求端点/v1/messages/v1/chat/completions
鉴权头x-api-key+anthropic-versionAuthorization: Bearer
系统提示独立的system字段拼进messages的role: system
工具调用tools+tool_use块functions+tool_calls
流式输出message_start/content_block_delta等事件chat.completion.chunk增量

这意味着什么?Claude Pro 的配额只能给会讲 Anthropic 协议的工具用,Groq、DeepSeek 等 OpenAI 兼容服务又只认 OpenAI 协议。工具被配额"锁死",配额被工具"锁死"——这就是 OpenRelay 要拆掉的墙。

核心架构:一台机器、一个端点、两个网关

OpenRelay 的架构可以概括为一句话:在你本机起一个代理服务器(默认localhost:18765),同时挂两个网关:

你的工具 (Claude Code / Aider / Cursor...) │ ▼ OpenRelay 本地代理 :18765 ├── POST /v1/messages ← Anthropic 格式网关 └── POST /v1/chat/completions ← OpenAI 格式网关 │ ▼ 格式双向转换层(消息结构 / 工具调用 / 流式事件) │ ▼ 任意 Provider:Claude Desktop / Kiro / Groq / DeepSeek / Ollama ...

关键设计有三个:

  1. 双向转换:客户端发 Anthropic 格式、后端是 OpenAI 服务商时,请求转成 OpenAI 格式,响应再转回 Anthropic 格式;反过来也一样。双向能力由 CHANGELOG.md 中的 API Compatibility 一节明确列出,且完整支持 tool/function calling 与流式(streaming + non-streaming)。
  2. 流式 SSE 逐事件映射:两边的流式事件类型完全不同,转换层会把 Anthropic 的content_block_delta序列映射为 OpenAI 的 chunk 增量(反之亦然),因此客户端的"打字机效果"不会断。
  3. 直连后端:AI 请求从你的机器直接发给所选 Provider,OpenRelay 官方服务器不在请求链路中,纯本地转发。

配额从哪来:本机凭据自动发现 🔍

代理有了,真正的难点是"把已有订阅变成可用端点"。OpenRelay 内置了 45 个非虚拟 Provider,分两类:

  • 本地/CLI/IDE 类(11 个):Claude Desktop、Claude Code、Kiro、Windsurf、Antigravity、VS Code Copilot 等。OpenRelay 会读取这些已登录应用本机的会话凭据,直接复用你的订阅配额。
  • API/本地端点类(34 个):Groq、Cerebras、Gemini API、DeepSeek、Ollama 等。填一次 API Key,全工具复用。

以 Claude Desktop 为例,凭据发现过程涉及系统级加密解密,核心逻辑在 src/cookie.ts 中:

  • macOS:从 Keychain 读取 "Claude Safe Storage" 口令,用 PBKDF2 派生 AES-128-CBC 密钥,解密 Cookies 数据库中的sessionKey、cf_clearance等字段;
  • Windows:从Local State读取 DPAPI 保护的主密钥,用 AES-256-GCM 解密同样的 Cookie 数据库。

这段代码完全公开、可审计。凭据只读不写、仅驻留内存,不会上传到任何第三方——细节见 PRIVACY.md。

任意配额接入任意工具:一键配置与 IDE 透明代理

格式互转打通后,接入工具只需改一个环境变量。例如让 Claude Code 走 Kiro 配额:

export ANTHROPIC_BASE_URL=http://localhost:18765/kiro export ANTHROPIC_API_KEY=unused

更省事的是 Web 面板的Work标签页:为 Claude Code、Aider、Goose、OpenClaw 等工具分别选择 Provider,点一下开关,OpenRelay 自动写好 shell 环境配置,重开终端即生效,不用手改.zshrc。

IDE 场景走的是另一条路线——RPC 透明代理。Cursor、Windsurf 这类 IDE 不走标准 HTTP API,而是通过私有 RPC 协议通信。OpenRelay 为每个 IDE 单独起了一个代理端口(Cursor:18780、Windsurf:18766、Antigravity:18767、VS Code Copilot:18769),把 IDE 的私有请求"劫持"并转换到任意 Provider,IDE 端无感切换。

模型组:配额用完自动故障转移 ⚡

单个免费配额总有耗尽的时候。OpenRelay 的Custom标签页可以把多个 Provider 合并成一个"虚拟模型":

"fast-group" = Groq (Llama 90B) + Cerebras (Llama 70B) + SambaNova (Llama 405B)

客户端只需要把model参数填成fast-group,路由层按轮询 + 故障转移策略分发:Groq 限流 → 自动切 Cerebras → 再切 SambaNova,全程无需人工干预。

安全与隐私设计速览

  • 凭据不离开本机:Token/Cookie 只在本机内存中使用,API Key 存在本地~/.openrelay/;
  • 直连 AI 后端:请求链路中没有任何第三方服务器,与"反代"有本质区别(详见 faq.md 的封号风险说明);
  • 默认不记录提示词:日志只含请求元数据(Provider、模型、状态码),消息内容不落盘;
  • 代码可审计:凭据处理核心 src/cookie.ts 公开可查。

快速上手 🚀

  1. 下载对应平台的单文件二进制(Windows x64 / macOS / Linux),无需 Node.js 环境;
  2. 运行后浏览器打开http://localhost:18765;
  3. 在 Provider 面板确认已发现的本地配额(绿点 = 已连接),需要时在侧边栏为 API 服务商填入 Key;
  4. 在 Work 标签页为目标工具选择 Provider 并开启,重开终端即可。

更多原理细节与常见问题,可查阅项目仓库内的 README.md、faq.md(中文)与 faq-en.md(英文)。框架部分(代理、格式转换、配置)采用 MIT 许可证,模型组等 Pro 功能为商业授权(LICENSE / COMMERCIAL-LICENSE.txt)。

总结:OpenRelay 的本质是一个"格式翻译官 + 配额调度器"——用双向 API 转换抹平 Anthropic 与 OpenAI 的协议差异,用本机凭据发现盘活闲置订阅,再用模型组兜底限流。理解这三层,你就理解了它如何让"几百个免费 AI 模型配额"真正一键接入你的本地项目。

【免费下载链接】openrelay几百个免费 AI 模型配额,一键接入本地项目。| Hundreds of free AI model quotas, one-click access to local projects.项目地址: https://gitcode.com/gh_mirrors/openrel/openrelay

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询