fix: harden online validation flows
This commit is contained in:
@@ -87,6 +87,29 @@ def create_generation_task(
|
||||
# 第2环:关联标杆笔记ID存库(JSON list)。pipeline 据此读 features_json 注入文案 prompt。
|
||||
import json
|
||||
_bids = getattr(body, "benchmark_ids", None) or []
|
||||
if _bids:
|
||||
from app.models.product import BenchmarkNote
|
||||
|
||||
ids = [int(i) for i in _bids]
|
||||
rows = (
|
||||
db.query(BenchmarkNote)
|
||||
.filter(
|
||||
BenchmarkNote.id.in_(ids),
|
||||
BenchmarkNote.workspace_id == current_user.workspace_id,
|
||||
BenchmarkNote.product_id == body.product_id,
|
||||
)
|
||||
.all()
|
||||
)
|
||||
by_id = {int(b.id): b for b in rows}
|
||||
missing = [i for i in ids if i not in by_id]
|
||||
if missing:
|
||||
raise_business(f"标杆笔记不存在或不属于当前产品:{missing[:3]}")
|
||||
not_ready = [
|
||||
i for i in ids
|
||||
if by_id[i].analyze_status != "done" or by_id[i].analysis_source == "fallback"
|
||||
]
|
||||
if not_ready:
|
||||
raise_business("所选标杆尚未分析完成,请先到系统管理里点击「分析标杆」")
|
||||
benchmark_ids_json = json.dumps([int(i) for i in _bids]) if _bids else None
|
||||
|
||||
task = GenerationTask(
|
||||
|
||||
Reference in New Issue
Block a user