feat: 添加线索引擎、NLQ、场景检测、前端界面等核心功能模块

This commit is contained in:
freedakgmail
2026-06-16 08:15:15 +08:00
parent 7b1e2b10a8
commit 48340f6011
62 changed files with 6772 additions and 65 deletions
+2 -2
View File
@@ -82,8 +82,8 @@ class Clue(Base):
amount_involved: Mapped[float | None] = mapped_column(Float, nullable=True)
assignee: Mapped[str | None] = mapped_column(String(64), nullable=True)
# 误报/属实反馈(R18 反馈学习)
feedback: Mapped[str | None] = mapped_column(String(16), nullable=True) # confirmed/false_positive
feedback: Mapped[str | None] = mapped_column(String(16), nullable=True)
"""误报/属实反馈(R18 反馈学习):confirmed / false_positive"""
# 可追溯:产生该线索时的模型/规则/数据版本(R19 三重留痕)
model_version: Mapped[str | None] = mapped_column(String(64), nullable=True)
+4 -1
View File
@@ -132,7 +132,10 @@ def assign(session: Session, clue: Clue, assignee: str, actor: str) -> Clue:
session.flush()
if clue.status == ClueStatus.NEW:
transition(session, clue, ClueStatus.ASSIGNED, actor, f"分派给 {assignee}")
audit.record(session, actor, "assign_clue", target_type="clue", target_id=str(clue.id), detail={"assignee": assignee})
audit.record(
session, actor, "assign_clue",
target_type="clue", target_id=str(clue.id), detail={"assignee": assignee},
)
return clue