模特库标签分页与全能创作收口:藏长视频、选择器分页

角色库导入打标签并支持筛选;模特库与全能创作角色/商品选择改为每页 20 条分页。临时限制成片 ≤60 秒,过滤对话里的超长时长选项,并收拢本地全能创作与后台用户相关修复。
This commit is contained in:
Azmat@qq.com
2026-09-21 16:24:37 +08:00
parent 690eb3d843
commit 0bd1db6bf9
48 changed files with 3386 additions and 896 deletions
+45
View File
@@ -1907,6 +1907,51 @@ class ChatStreamReasoningTests(SimpleTestCase):
self.assertEqual([e["text"] for e in events if e["type"] == "reasoning"], ["先想想", "用户要4镜"])
self.assertEqual("".join(e["text"] for e in events if e["type"] == "delta"), "正在生成脚本…")
def test_length_finish_reason_is_forwarded(self):
"""撞 max_tokens 的那一刀必须能被上层看见,否则截断的 tool 参数会被当成模型偷懒反复重试。"""
lines = [
"data: " + json.dumps({"choices": [{"delta": {"content": "前半段"}}]}, ensure_ascii=False),
"data: " + json.dumps({"choices": [{"delta": {}, "finish_reason": "length"}]}, ensure_ascii=False),
"data: [DONE]",
]
prov = VolcanoArkProvider(api_key="k", base_url="http://x")
with patch("apps.ai.providers.volcano.requests.post", return_value=_FakeStreamResp(lines)):
events = list(prov.chat_completion_stream(model="m", messages=[{"role": "user", "content": "hi"}]))
self.assertEqual([e["type"] for e in events], ["delta", "finish", "done"])
self.assertEqual(events[1]["reason"], "length")
class VolcanoVideoSeedTests(SimpleTestCase):
"""Seedance 2.5 r2v 的 seed 上限是 int32,超了会 InvalidParameter。"""
def test_create_video_task_clamps_seed_to_int32(self):
captured = {}
class _Resp:
ok = True
status_code = 200
text = "{}"
def json(self):
return {"id": "ark-1"}
def _post(*_args, **kwargs):
captured["body"] = kwargs["json"]
return _Resp()
prov = VolcanoArkProvider(api_key="k", base_url="http://x")
with patch("apps.ai.providers.volcano.requests.post", side_effect=_post):
prov.create_video_task(
model="doubao-seedance-2-5-260628",
endpoint="contents/generations/tasks",
prompt="test",
seed=3857139456,
)
self.assertEqual(captured["body"]["seed"], 3857139456 & 2147483647)
self.assertLessEqual(captured["body"]["seed"], 2147483647)
class WorkbenchAndUnreadTests(TestCase):
"""R100(工作台记录后端持久化)+ R96(未读生成任务角标)+ R109(删除联动)端到端: