Skip to content

feat(upstream): 平台优先接入与自动协议转换 - #1434

Merged
DeliciousBuding merged 1 commit into
masterfrom
feature/domestic-aggregator-wire
Oct 11, 2026
Merged

DeliciousBuding merged 1 commit into
masterfrom
feature/domestic-aggregator-wire

Conversation

@DeliciousBuding

@DeliciousBuding DeliciousBuding commented Oct 11, 2026 •

Copy link
Copy Markdown
Owner

问题与效果

独立上游按产品接入:选择平台、填写 API Key,自建平台补充 Base URL。模型发现、凭据、模型授权和路由统一初始化;逐协议设置保留在高级配置中。

改动清单

  • 合并同产品的协议预设,保留百炼与 Coding Plan 等产品差异;账号仍可选,站点账号管理与直接 Key 接入共存。
  • 新增 /api/imported-upstreams/connect,模型发现支持有界分页、超时和响应大小限制;认证失败、发现失败和写入失败不会留下部分配置。发现接口不支持时明确返回预设模型状态,不将其标为已验证可用。
  • 接入 Moonshot、LongCat、OpenRouter、Cerebras、NanoGPT 专用适配,覆盖图片引用、reasoning、工具关联、JSON/SSE 和用量边界。
  • 原生协议优先,只在明确协议不支持且未产生输出、用量时尝试已授权候选;鉴权、限流、传输错误和中断流不触发跨协议重发。
  • 集成 New API RelayKit;富多模态、结构化输出、签名和不透明字段由已有专用转换处理。整体许可证改为 AGPL-3.0-only,保留原 MIT 声明及第三方致谢。
  • 两处带凭据 URL 的安全负例改用 net/url 构造,保留 JSON/SSE 与图片准备拒绝断言,移除未发布历史中的凭据 URL 字面量。
  • 同步 API、架构、UI 设计和 Unreleased 说明。

验证与未完成项

最终提交 75ae1daad4dd96ade281b0d97cf856d00067bb83,tree c606f82908621ea6d628926b71faf6604b764be2,工作区干净。

  • 已通过实际 push 的完整 pre-push 门禁:前端 303 个测试文件、2024 项测试,typecheck、lint、format、knip、build;Go build、vet、WSL 全库 go test ./... -count=1 -race。
  • 已复现修改前的两处凭据 URL 阻断;修改后保留安全负例并通过定向测试和实际推送扫描。两个生成的 NanoGPT PNG 已单独核对图像及来源声明。
  • 额外本地 PostgreSQL 16 全库 go test ./... -count=1 -race -p 1 -timeout 900s 已通过,使用独立临时测试库;管理、代理、导入、OAuth、平台接入和 store 均通过。
  • 本次没有重跑浏览器、真实厂商模型或真实下游客户端验收;已有界面记录保留为此前源码的历史结果。确定性 HTTP 上游测试不代表真实模型可用性。

尚未完成特殊认证渠道、通用变换/流/限流策略及部分非生成接口。真实厂商和下游客户端验收继续由 #1396 跟踪。本 PR 不包含正式发版或生产部署。

关联 Issue

Refs #1396

Co-authored-by: Codex <codex@vectorcontrol.tech>
@DeliciousBuding
DeliciousBuding merged commit f6f3cc6 into master Oct 11, 2026
24 checks passed
@DeliciousBuding
DeliciousBuding deleted the feature/domestic-aggregator-wire branch October 11, 2026 05:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant