 seaislee1209andClaude Opus 4.8
|
8dab8b4921
|
fix(skills): skills 随后端打进镜像,根治线上提取「未返回有效 JSON」(系统提示词为空)
真因(查 dev 库 + 重放真实失败请求 + 真调 ARK 定位):线上提取的 system 提示词长度=0。
core-api 镜像由 `./core/backend` 构建,而 skills/ 在仓库根、不在构建上下文 → 镜像里没有
→ _load_skill_system_prompt 返回空串 → 模型收不到「只输出 JSON」铁律 → 吐 markdown/散文
→ 正则抽不到 {} → 「提取结果解析失败(模型未返回有效 JSON)」。本地有 skills 故一直没复现。
(脚本生成同样受影响,只是它有退化兜底提示词,质量打折但不报错。)
验证:用 dev 库里你那条失败请求的真实脚本重放——空 system→无 JSON;补上 skill 提示词
→ 立即出 JSON(角色/场景齐、商品不提)。
改动:
- skills/ → core/backend/skills/(git mv,进构建上下文,Dockerfile `COPY . .` 自动打包)。
- services._skills_root()/script_agent._skill_dir():优先 BASE_DIR/skills,回落仓库根(双兜底)。
- worker 失败时也落 response_payload(含 content / reasoning 预览 / system_chars),
以后再坏一眼就能定位(本次正是因为失败没存返回,白绕一圈)。
- 回归测试 2 条:skills 必须在 BASE_DIR 内(随镜像走)+ 提取提示词非空且含 JSON 铁律。
- CLAUDE.md 标注 skills 必须放 core/backend 内的原因。
验收:完整 Django 套件 151/151 全绿。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-23 00:12:46 +08:00 |
|
 seaislee1209andClaude Opus 4.8
|
c8cb6d3d51
|
fix(extract): 实体提取改异步(worker+轮询),根治 502 + 刷新丢 loading + 重复扣费
问题:进资产页点"提取人物/场景"——同步死等豆包思考模型(数十秒)→ 撞网关超时
502;"提取中"loading 是纯前端内存态,刷新即丢;且无幂等,刷新后重点会重复扣费。
改动(对齐全站异步三件套:出图/三视图/故事板同款):
- 后端 submit_extract_entities:Web 只建 RESERVED 任务 + 预留额度秒回(不再 502);
已有在途提取则复用,绝不二次预扣(防刷新后重点 / 并发重复扣费)。
- 后端 run_extract_entities_task(Celery worker):流式调豆包 + 解析 + 落库 + 扣费;
失败退费并把可读错误记进 task.error_message。
- 新增 AITask.Type.entity_extraction(迁移 0011)+ extract-status 端点(轮询进度/成败)。
- 前端 runExtract 改提交+轮询;进资产页自动认领在途提取,刷新后 loading 自己回来。
验收:完整 Django 套件 149/149 全绿(含新增 4 测:异步落库+计费一次 / content空
回退 reasoning / 在途防重复扣费 / 状态端点成败透出);tsc + vite build 全绿;
makemigrations --check 无遗漏。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-22 23:15:11 +08:00 |
|
 seaislee1209andClaude Opus 4.8
|
71af0ae166
|
fix(extract): 实体提取改走流式通道 + 锁定豆包2.0Pro,根治"未返回有效JSON"
问题:进资产阶段点"提取人物/场景"间歇报「提取结果解析失败(模型未返回有效
JSON)」。根因——提取走非流式只读 content,而默认文本模型是会思考的推理模型
(豆包2.0Pro think:True),思考期常把内容留在 reasoning_content、content 返空 →
正则抽不到 JSON。脚本生成不犯此病是因其走流式、早已分离思考/正文。
改动:
- 锁模型:提取固定用 doubao-seed-2-0-pro-260215(_resolve_extract_model_config),
取不到再回落默认,不再受各环境 DB 创建序漂移影响路由。
- 根治:提取复用与脚本生成同一条已验证稳定的流式通道(_collect_extract_text)——
丢弃 reasoning 事件、只收正文 delta;正文为空时兜底回退 reasoning 里的 JSON。
response_payload 改存精简流式存档(streamed/model/content/had_reasoning)。
- 测试:提取步原零测试,新增 2 个——流式正文JSON正确落库+计费一次、content空→
回退reasoning。其余链路(脚本生成/单镜重跑)未动。
验收:本机 Python3.9 跑不了 Django5 全套,核心逻辑(事件过滤/回退/JSON抽取)已
独立验证通过;py_compile 绿;完整套件由 CI 跑。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-22 20:12:11 +08:00 |
|