fix(pipeline): 提取闸门按「是否走过正式提取步」显隐,而非 script_entities 存在性

脚本生成期有时也会吐 entities(就是那个不稳的旧来源),若按 script_entities 存在性判断,
闸门会被误隐藏、用户看不到三按钮。改为提取步落库时打 metadata.entities_extracted 标记,
前端据此显隐:没走过正式提取 → 盖蒙版露三按钮;走过 → 露卡片。「重新提取」按钮在有实体或
有资产时显示(老项目也能重提)。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
seaislee1209
2026-06-19 18:04:45 +08:00
co-authored by Claude Opus 4.8
parent de29449a76
commit 69163a8f7f
3 changed files with 13 additions and 5 deletions
+6
View File
@@ -386,6 +386,12 @@ def extract_entities_for_project(*, project, user) -> dict:
from apps.ai.script_agent import _map_entities_to_project_metadata
_map_entities_to_project_metadata(project, entities)
# 标记「已走过正式提取步」:脚本生成期也可能吐过 entities(不稳的旧来源),不算正式提取;
# 前端资产页提取闸门据此标记显隐(没走过 → 盖蒙版露三按钮;走过 → 露卡片)。
md_flag = dict(project.metadata or {})
md_flag["entities_extracted"] = True
project.metadata = md_flag
project.save(update_fields=["metadata", "updated_at"])
refs_by_index = {r["index"]: r["entity_refs"] for r in seg_refs}
for i, seg in enumerate(segments):
new_refs = refs_by_index.get(i, [])