feat(video): 被授权的账号默认就用高质量型号 - #832
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub. |
Codecov Report❌ Patch coverage is
@@ Coverage Diff @@
## main #832 +/- ##
==========================================
- Coverage 86.46% 86.45% -0.02%
==========================================
Files 298 298
Lines 22600 22610 +10
Branches 3402 3402
==========================================
+ Hits 19541 19547 +6
- Misses 2109 2111 +2
- Partials 950 952 +2
Flags with carried forward coverage won't be shown. Click here to find out more.
... and 3 files with indirect coverage changes 🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
审阅了默认型号解析、Gateway 路由链、用户白名单校验及相关测试。当前实现会把白名单用户解析为 veo3.1,但下游视频 Gateway 的 registry 明确将所有 USER_GATED_MODELS 从自动链中排除;因此 start_from_model="veo3.1" 不会被采用,实际仍从部署默认的链上型号开始,Issue 目标未在真实生成路径生效。
已完成固定 SHA diff 的全量变更单元检查及 git diff --check;本环境没有安装 uv、pytest 或 ruff,因此无法执行声明的测试与 lint 命令。
b497ff0 to
7c6d2c4
Compare
|
已 rebase 到最新 main,冲突解完,CI 全绿(check-runs 级:lint-and-test / Frontend checks / gate / Check linked issue 全 success)。 冲突只有一处,是 顺带补一份支持这个改动的线上实测。当前白名单是配好的,但它一步都没生效: 三个被授权的账号一共跑了 430 个任务(354 / 60 / 16),全部走部署默认型号。也就是说白名单目前是纯装饰:既没有 UI 让他们选 veo,也没有本 PR 的默认升舱去替他们选。 这正是本 PR commit message 里那句话的实测版本 ——「点生成,走的仍是部署默认型号,白名单形同虚设」。 |
白名单本来只是"允许选",而前端从不发 video_model —— 2026-08-27 实测生产: AI_VIDEO_VEO_USER_IDS 已配好,但前端全仓搜不到这个字段,于是被授权的人在产品里点 生成,走的仍是部署默认型号,白名单形同虚设。 这几个账号存在的意义就是做高质量素材,让他们再去某个下拉框里挑一次是多余的一步, 而漏挑一次就白跑一单。只对白名单生效:其他人这里仍返回 None、照旧走部署默认, 行为一个字不变。 有多个受限型号时取登记顺序的第一个,不做"挑最贵的/最新的"这类推断 —— 那种规则会在 加型号时静默改变已有用户的默认值,而账单要过一天才看得出来。 Closes 1024XEngineer#830
FennoAI 指出:VideoGateway.i2v 只在 start_from_model in chain 时才认它,而 _admitted() 恰恰把受限型号从链上滤掉了(链是兜底路径) —— 条件恒假、models 回落成整条链,授权用户 照旧走部署默认。授权、白名单、默认升舱三层全部形同虚设,而任务照常成功、产物照常交付, 没有任何一处显示你要的那个型号没被用上。 调用方能拿到受限型号,只说明这一次请求已经过了授权闸(HTTP 入口与编排层各判了一次), 故把它排到尝试序列队首,后面仍按原链兜底。链上型号的从它开始试语义不变。
7c6d2c4 to
33a62d6
Compare
让白名单账号默认拿受限型号,不必自己去选。
Why
AI_VIDEO_VEO_USER_IDS已在生产配好,但白名单里的账号有权限却用不上:video_model是请求体字段,而前端从不发它(frontend/src全仓搜不到video_model/videoModel),于是_resolve_video_model(None, uid)返回None→ 走部署默认。生产实测(近三天)默认那个型号的表现:
agnes-video-2.5-flash成功 1 次;实际出片一直靠兜底链上的kling-v2-5-turbo(106 成功 / 252 失败)。也就是说白名单开了等于没开。Changes
_resolve_video_model在未指定型号时调preferred_model_for(user_id):白名单用户拿受限型号,其他人拿None(照旧走部署默认,行为一字不变)。边界
Verification
uv run ruff check .:All checks passed。uv run python -m scripts.export_openapi:rc=0,openapi.json无漂移。uv run lint-imports:Contracts: 2 kept, 0 broken。uv run pytest -q --cov=packages:1837 passed, 14 skipped, 0 failed。Closes #830