Skip to content

feat: 支持账号级温度三态策略 - #6322

Open
mordekasiser wants to merge 3 commits into
Wei-Shaw:mainfrom
mordekasiser:codex/account-temperature-policy
Open

feat: 支持账号级温度三态策略#6322
mordekasiser wants to merge 3 commits into
Wei-Shaw:mainfrom
mordekasiser:codex/account-temperature-policy

Conversation

@mordekasiser

@mordekasiser mordekasiser commented Aug 28, 2026

Copy link
Copy Markdown

背景

账号当前只能沿用客户端传入的 temperature。渠道运营需要在账号边界统一控制温度,同时保留客户端默认行为,并支持不向上游发送该参数。

行为

账号凭据新增三态策略:

  • temperature_mode=inherit:保留客户端数值;客户端未传或传 null 时不补参数。
  • temperature_mode=override:使用账号固定值覆盖客户端参数,固定值支持 0
  • temperature_mode=omit:删除客户端温度,不向上游发送。

固定值只校验为有限数字。数值范围由对应上游协议校验,避免用单一范围限制不同供应商。

协议覆盖

  • OpenAI Chat Completions、Responses、Messages 兼容入口。
  • Anthropic Messages、Chat/Responses 兼容入口和 API Key 透传。
  • Gemini Chat Completions、Messages 兼容入口和原生 generationConfig.temperature
  • Antigravity Claude、Chat Completions、Responses 和 Gemini 路径。

Spark 影子账号读取母账号策略,策略状态只归母账号所有。

模型能力

  • 能力判断使用模型映射后的最终 upstreamModel,避免别名和账号映射绕过模型限制。
  • GPT-5.6、Sol、Terra、Luna、Cyber 及日期、路径、大小写、下划线变体保留 temperature/top_pgpt-5.60gpt-5.6ish 不会被误判。
  • GPT-5.4、GPT-5.5 等旧 GPT-5.x 模型继续清洗 temperature/top_p
  • OpenAI OAuth/Codex 账号先向 GPT-5.6 上游发送采样参数。上游明确返回 HTTP 400 且拒绝 temperaturetop_p 时,只删除被拒绝的顶层字段并执行有界重试;嵌套同名字段保持不变。
  • 重试复用现有请求体哈希和次数预算,不形成循环。

OpenAI 官方资料:

管理端

  • 创建和单账号更新在写入前校验策略。
  • 批量更新先与每个目标账号的现有凭据合并并完成校验,再执行写入。
  • 创建、编辑和批量编辑界面提供继承、固定值、删除三种选择;批量编辑默认保持不变。
  • 中英文文案、凭据构建和弹窗交互测试同步更新。

验证

  • go test -count=1 ./internal/pkg/apicompat
  • GPT-5.6 模型识别、最终模型映射、Chat、Messages、Responses、OAuth 变换及明确拒绝回退定向测试通过。
  • go vet ./internal/pkg/apicompat ./internal/service
  • git diff --check
  • 前端全量测试:247 个测试文件、1782 个用例通过。
  • 温度配置定向测试:5 个测试文件、195 个用例通过。
  • pnpm lint:check
  • pnpm typecheck
  • pnpm build

go test ./internal/service 的 5 个失败位于 content moderation 和 plugin package installer 既有测试,未触及本 PR 文件。

为账号凭据增加 inherit、override、omit 三态温度策略,并在 OpenAI、Anthropic、Gemini 与 Antigravity 网关入口统一应用。保留模型能力清洗优先级,补充管理端校验、映射场景和协议回归测试。
在账号创建、编辑和批量编辑流程中加入温度三态配置,支持固定值 0、继承客户端参数和删除参数,并为中英文文案及凭据构建补充测试。
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