Skip to content

feat: 添加账号时支持同步上游支持的模型#2892

Open
Arron196 wants to merge 1 commit into
Wei-Shaw:mainfrom
Arron196:feat/sync-upstream-models-on-create
Open

feat: 添加账号时支持同步上游支持的模型#2892
Arron196 wants to merge 1 commit into
Wei-Shaw:mainfrom
Arron196:feat/sync-upstream-models-on-create

Conversation

@Arron196
Copy link
Copy Markdown
Contributor

@Arron196 Arron196 commented May 29, 2026

背景

在编辑账号时,用户可以通过"同步上游支持的模型"按钮自动获取上游服务(如 Anthropic、OpenAI)支持的模型列表。但在添加账号时,这个按钮不存在,用户需要手动输入模型列表,体验不一致。

改动内容

后端(Go)

  • 新增端点 POST /admin/accounts/models/sync-upstream-preview
  • 接受 { platform, type, base_url, api_key } 参数,直接使用凭证调用上游 API 获取模型列表
  • 无需预先保存账号,适用于创建账号流程

前端(Vue/TypeScript)

  • accounts.ts: 新增 syncUpstreamModelsPreview() API 函数
  • ModelWhitelistSelector.vue:
    • 新增 syncCredentials prop
    • 修改 canSyncUpstream 逻辑,支持通过凭证触发同步
    • 修改同步函数,根据 accountIdsyncCredentials 调用不同端点
  • CreateAccountModal.vue:
    • 新增 syncPreviewCredentials 计算属性,从表单中提取凭证
    • 所有 3 处 ModelWhitelistSelector 传递 :sync-credentials

补充修复

  • 修复当前 PR 在最新 main 合并态下的单测失败
  • 原因是 TestDefaultPricingIncludesCodexAutoReviewcodex-auto-review 的价格硬编码为旧值,而主干里的 model_prices_and_context_window.json 已更新
  • 将断言改为直接读取同一份定价 JSON 中的 codex-auto-review 默认值,避免后续同步价格文件时再次误伤无关 PR

支持的平台

  • Anthropic
  • OpenAI
  • Gemini
  • Antigravity

测试情况

编译验证

  • ✅ Go 后端 go build ./... 通过
  • ✅ 前端 vue-tsc --noEmit 类型检查通过

补充验证

  • go test -tags=unit ./internal/service -run TestDefaultPricingIncludesCodexAutoReview -count=1 -v 通过
  • go test -tags=unit ./internal/service -count=1 通过

代码审查

  • ✅ Oracle 审查通过,无阻塞性问题
  • ✅ 安全性:API key 不记录日志,临时账号不持久化
  • ✅ 错误处理:与现有 SyncUpstreamModels handler 一致

边界情况

  • ✅ 空 API key:按钮自动隐藏
  • ✅ 无效平台:返回 400 错误
  • ✅ 空 base_url:使用平台默认值
  • ✅ OAuth 账号:因无 API key,按钮自动隐藏

改动文件

backend/internal/handler/admin/account_handler.go  | 50 +++
backend/internal/server/routes/admin.go            |  1 +
frontend/src/api/admin/accounts.ts                 | 18 +++
frontend/src/components/account/CreateAccountModal.vue  | 17 ++-
frontend/src/components/account/ModelWhitelistSelector.vue  | 31 ++-
backend/internal/service/pricing_service_test.go   | 14 ++--
6 files changed, 120 insertions(+), 11 deletions(-)

@Arron196 Arron196 marked this pull request as ready for review May 29, 2026 10:42
新增 POST /admin/accounts/models/sync-upstream-preview 端点,
允许在创建账号流程中直接使用凭证同步上游支持的模型,
无需先保存账号获取 ID。

- 后端: 新增 SyncUpstreamModelsPreview handler
- 前端: 新增 syncUpstreamModelsPreview API 函数
- 前端: ModelWhitelistSelector 支持 syncCredentials prop
- 前端: CreateAccountModal 传递凭证给 ModelWhitelistSelector
@Arron196 Arron196 force-pushed the feat/sync-upstream-models-on-create branch from 0968355 to 57d9e15 Compare May 30, 2026 04:21
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