liang007
df2821e1f8
fix(ai): 兼容模型返回的多种 JSON 顶层形态,修复角色卡与分镜解析误报失败
部分模型不遵守 JSON Schema:直接返回顶层数组、数组外再包一层、每个角色单独包一层 characters、或正文先列出角色名数组再给出契约对象。原解析只取第一个可解析 JSON 值,容易命中旁枝片段并被判为解析失败。
- prompt_template.go: extractPreferredJSONText 优先选取包含 preferKey 的顶层对象候选;角色卡校验按形态归一处理,结果为空仍提示未识别到角色,字段缺失报出具体角色序号与字段名
- storyboard.go: normalizeStoryboardRootJSON 兼容单元素 plan 数组解包与镜头对象数组自动包装为完整 plan
- canvas-character-reference.ts: 前端角色卡提取同步统一归一逻辑
- 补充前后端形态兼容回归测试与 CHANGELOG
2026-09-01 17:32:38 +08:00
..
2026-08-15 12:45:29 +08:00
2026-08-22 17:42:04 +08:00
2026-08-31 09:58:36 +08:00
2026-08-02 05:28:02 +08:00
2026-08-30 16:52:09 +08:00
2026-08-22 09:52:09 +08:00
2026-08-31 13:16:10 +08:00
2026-08-09 08:58:21 +08:00
2026-09-01 14:57:05 +08:00
2026-08-29 23:34:55 +08:00
2026-08-09 08:58:21 +08:00
2026-08-24 12:09:15 +08:00
2026-08-24 12:09:15 +08:00
2026-08-31 06:49:43 +08:00
2026-08-28 16:24:58 +08:00
2026-08-31 09:00:37 +08:00
2026-08-31 09:00:37 +08:00
2026-09-01 17:32:38 +08:00
2026-08-31 06:49:43 +08:00
2026-08-31 09:00:37 +08:00
2026-07-23 10:34:59 +08:00
2026-08-06 16:36:51 +08:00
2026-08-15 15:48:16 +08:00
2026-08-22 12:29:24 +08:00
2026-09-01 14:57:05 +08:00
2026-09-01 14:57:05 +08:00
2026-09-01 16:47:03 +08:00
2026-08-15 15:48:16 +08:00
2026-08-28 16:24:58 +08:00
2026-08-31 13:16:10 +08:00
2026-07-31 13:12:06 +08:00
2026-08-28 16:24:58 +08:00
2026-08-29 10:28:23 +08:00
2026-09-01 16:47:03 +08:00
2026-08-29 14:49:59 +08:00
2026-08-19 20:52:11 +08:00
2026-09-01 14:57:05 +08:00
2026-08-31 09:00:37 +08:00
2026-09-01 16:47:03 +08:00
2026-08-31 12:28:12 +08:00
2026-09-01 14:57:05 +08:00
2026-08-31 09:00:37 +08:00
2026-08-31 09:00:37 +08:00
2026-09-01 16:47:03 +08:00
2026-09-01 14:57:05 +08:00
2026-08-28 16:24:58 +08:00
2026-08-31 12:28:12 +08:00
2026-09-01 14:57:05 +08:00
2026-08-31 06:49:43 +08:00
2026-08-27 22:12:04 +08:00
2026-08-26 22:38:07 +08:00
2026-08-15 15:48:16 +08:00
2026-08-29 08:48:38 +08:00
2026-08-10 00:13:02 +08:00
2026-08-14 20:45:26 +08:00
2026-08-10 00:13:02 +08:00
2026-08-31 06:49:43 +08:00
2026-08-29 11:05:59 +08:00
2026-08-29 13:19:01 +08:00
2026-08-03 15:06:09 +08:00
2026-08-16 14:44:53 +08:00
2026-08-28 09:07:33 +08:00
2026-08-27 22:12:04 +08:00
2026-08-27 22:12:04 +08:00
2026-08-27 10:32:45 +08:00
2026-08-27 10:32:45 +08:00
2026-08-27 10:32:45 +08:00
2026-08-27 10:32:45 +08:00
2026-08-27 20:47:10 +08:00
2026-08-27 20:47:10 +08:00
2026-08-27 20:47:10 +08:00
2026-08-27 10:32:45 +08:00
2026-08-27 20:47:10 +08:00
2026-08-27 10:32:45 +08:00
2026-08-27 10:32:45 +08:00
2026-08-27 10:32:45 +08:00
2026-08-27 10:32:45 +08:00
2026-08-27 10:32:45 +08:00
2026-08-27 10:32:45 +08:00
2026-08-27 20:47:10 +08:00
2026-08-27 20:47:10 +08:00
2026-08-27 20:47:10 +08:00
2026-08-27 20:47:10 +08:00
2026-08-27 10:32:45 +08:00
2026-08-27 20:47:10 +08:00
2026-08-27 20:47:10 +08:00
2026-08-18 21:42:22 +08:00
2026-08-15 12:45:29 +08:00
2026-08-15 12:45:29 +08:00
2026-08-20 13:24:09 +08:00
2026-08-31 09:00:37 +08:00
2026-08-15 12:45:29 +08:00
2026-08-15 15:48:16 +08:00
2026-08-22 09:52:09 +08:00
2026-08-15 15:48:16 +08:00
2026-08-31 09:00:37 +08:00
2026-08-19 11:47:26 +08:00
2026-08-15 12:45:29 +08:00
2026-08-15 12:45:29 +08:00
2026-08-15 12:45:29 +08:00
2026-08-15 12:45:29 +08:00
2026-08-15 12:45:29 +08:00
2026-08-15 12:45:29 +08:00
2026-08-15 12:45:29 +08:00
2026-08-18 15:43:25 +08:00
2026-08-15 12:45:29 +08:00
2026-08-15 12:45:29 +08:00
2026-08-15 12:45:29 +08:00
2026-08-30 13:02:55 +08:00
2026-08-28 09:07:33 +08:00
2026-08-28 16:24:58 +08:00
2026-08-24 09:47:38 +08:00
2026-08-31 15:06:34 +08:00
2026-08-31 09:58:36 +08:00
2026-08-30 05:05:46 +08:00
2026-08-26 15:23:19 +08:00
2026-08-26 15:23:19 +08:00
2026-08-29 23:34:55 +08:00
2026-08-31 12:28:12 +08:00
2026-08-31 15:59:34 +08:00
2026-08-29 23:34:55 +08:00
2026-08-29 23:34:55 +08:00
2026-08-25 14:33:34 +08:00
2026-08-31 13:16:10 +08:00
2026-08-29 23:34:55 +08:00
2026-08-19 11:58:06 +08:00
2026-08-22 09:52:09 +08:00
2026-08-27 22:39:30 +08:00
2026-08-17 13:16:13 +08:00
2026-08-14 20:44:50 +08:00
2026-08-25 20:10:11 +08:00
2026-08-30 16:52:09 +08:00
2026-08-29 11:05:59 +08:00
2026-08-30 19:03:10 +08:00
2026-08-29 23:34:55 +08:00
2026-08-30 19:03:10 +08:00
2026-08-30 19:03:10 +08:00
2026-09-01 14:57:05 +08:00
2026-08-29 13:19:01 +08:00