[PR #2] [MERGED] feat: 添加 OpenAI Responses API 代理转发支持 #2

Closed
opened 2026-02-27 05:53:11 +03:00 by kerem · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/HaoYan-A/claude-code-router/pull/2
Author: @HaoYan-A
Created: 2/7/2026
Status: Merged
Merged: 2/7/2026
Merged by: @HaoYan-A

Base: mainHead: feat/openai-responses-api-proxy


📝 Commits (1)

  • 4ba28e2 feat: 添加 OpenAI Responses API 代理转发支持

📊 Changes

27 files changed (+1844 additions, -55 deletions)

View changed files

📝 packages/backend/prisma/schema.prisma (+8 -3)
📝 packages/backend/src/config/model-pricing.json (+18 -0)
📝 packages/backend/src/config/platforms.ts (+8 -1)
📝 packages/backend/src/modules/accounts/accounts.controller.ts (+11 -1)
📝 packages/backend/src/modules/accounts/accounts.routes.ts (+8 -0)
📝 packages/backend/src/modules/accounts/accounts.service.ts (+31 -0)
📝 packages/backend/src/modules/api-key/api-key.repository.ts (+3 -0)
📝 packages/backend/src/modules/api-key/api-key.service.ts (+2 -1)
📝 packages/backend/src/modules/proxy/account-selector.ts (+33 -2)
packages/backend/src/modules/proxy/channels/openai/converter.ts (+314 -0)
packages/backend/src/modules/proxy/channels/openai/handler.ts (+610 -0)
packages/backend/src/modules/proxy/channels/openai/index.ts (+16 -0)
packages/backend/src/modules/proxy/channels/openai/models.ts (+127 -0)
📝 packages/backend/src/modules/proxy/proxy.service.ts (+282 -2)
📝 packages/backend/src/modules/proxy/types.ts (+4 -1)
📝 packages/frontend/src/features/accounts/AccountsPage.tsx (+1 -0)
📝 packages/frontend/src/features/accounts/components/AccountActionsCard.tsx (+30 -26)
📝 packages/frontend/src/features/accounts/components/AddAccountDialog.tsx (+15 -6)
📝 packages/frontend/src/features/accounts/components/EditAccountDialog.tsx (+32 -0)
packages/frontend/src/features/accounts/components/OpenAIImportForm.tsx (+123 -0)

...and 7 more files

📄 Description

将 Anthropic 格式请求转换为 OpenAI Responses API 格式,转发到 /v1/responses, 再将响应转换回 Anthropic SSE 格式返回给客户端。

主要功能:

  • 新增 OpenAI channel (models/converter/handler/index)
  • 请求转换: messages→input, system→instructions, tools→function, thinking→reasoning
  • 流式响应转换: Responses SSE → Anthropic SSE (text/thinking/tool_use)
  • Token 缩放: input_tokens 除以 2 (Codex 400k → Claude 200k 上下文适配)
  • 日志记录: rawInputTokens 保留原始值,缩放值返回客户端
  • 模型定价: gpt-5.2-codex, gpt-5.3-codex, gpt-5.1-codex-mini
  • 账号管理: OpenAI 平台导入、API Key 认证 (无需 token 刷新)
  • thinking.budget_tokens 映射: <=0→none, <=1024→low, <=8192→medium, >8192→high

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/HaoYan-A/claude-code-router/pull/2 **Author:** [@HaoYan-A](https://github.com/HaoYan-A) **Created:** 2/7/2026 **Status:** ✅ Merged **Merged:** 2/7/2026 **Merged by:** [@HaoYan-A](https://github.com/HaoYan-A) **Base:** `main` ← **Head:** `feat/openai-responses-api-proxy` --- ### 📝 Commits (1) - [`4ba28e2`](https://github.com/HaoYan-A/claude-code-router/commit/4ba28e291b3c50b94a5cdfda6084e47a2a4930a2) ✨ feat: 添加 OpenAI Responses API 代理转发支持 ### 📊 Changes **27 files changed** (+1844 additions, -55 deletions) <details> <summary>View changed files</summary> 📝 `packages/backend/prisma/schema.prisma` (+8 -3) 📝 `packages/backend/src/config/model-pricing.json` (+18 -0) 📝 `packages/backend/src/config/platforms.ts` (+8 -1) 📝 `packages/backend/src/modules/accounts/accounts.controller.ts` (+11 -1) 📝 `packages/backend/src/modules/accounts/accounts.routes.ts` (+8 -0) 📝 `packages/backend/src/modules/accounts/accounts.service.ts` (+31 -0) 📝 `packages/backend/src/modules/api-key/api-key.repository.ts` (+3 -0) 📝 `packages/backend/src/modules/api-key/api-key.service.ts` (+2 -1) 📝 `packages/backend/src/modules/proxy/account-selector.ts` (+33 -2) ➕ `packages/backend/src/modules/proxy/channels/openai/converter.ts` (+314 -0) ➕ `packages/backend/src/modules/proxy/channels/openai/handler.ts` (+610 -0) ➕ `packages/backend/src/modules/proxy/channels/openai/index.ts` (+16 -0) ➕ `packages/backend/src/modules/proxy/channels/openai/models.ts` (+127 -0) 📝 `packages/backend/src/modules/proxy/proxy.service.ts` (+282 -2) 📝 `packages/backend/src/modules/proxy/types.ts` (+4 -1) 📝 `packages/frontend/src/features/accounts/AccountsPage.tsx` (+1 -0) 📝 `packages/frontend/src/features/accounts/components/AccountActionsCard.tsx` (+30 -26) 📝 `packages/frontend/src/features/accounts/components/AddAccountDialog.tsx` (+15 -6) 📝 `packages/frontend/src/features/accounts/components/EditAccountDialog.tsx` (+32 -0) ➕ `packages/frontend/src/features/accounts/components/OpenAIImportForm.tsx` (+123 -0) _...and 7 more files_ </details> ### 📄 Description 将 Anthropic 格式请求转换为 OpenAI Responses API 格式,转发到 /v1/responses, 再将响应转换回 Anthropic SSE 格式返回给客户端。 主要功能: - 新增 OpenAI channel (models/converter/handler/index) - 请求转换: messages→input, system→instructions, tools→function, thinking→reasoning - 流式响应转换: Responses SSE → Anthropic SSE (text/thinking/tool_use) - Token 缩放: input_tokens 除以 2 (Codex 400k → Claude 200k 上下文适配) - 日志记录: rawInputTokens 保留原始值,缩放值返回客户端 - 模型定价: gpt-5.2-codex, gpt-5.3-codex, gpt-5.1-codex-mini - 账号管理: OpenAI 平台导入、API Key 认证 (无需 token 刷新) - thinking.budget_tokens 映射: <=0→none, <=1024→low, <=8192→medium, >8192→high --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
kerem 2026-02-27 05:53:11 +03:00
Sign in to join this conversation.
No labels
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/claude-code-router#2
No description provided.