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
+49
View File
@@ -34,3 +34,52 @@ class PenetrateResponse(BaseModel):
max_depth: int
related_count: int
related: list[RelatedEntityOut]
class ClueOut(BaseModel):
id: uuid.UUID
title: str
risk_domain: str
scenario_code: str
confidence: str
score: float
status: str
rationale: str
evidence: dict = Field(default_factory=dict)
subjects: dict = Field(default_factory=dict)
amount_involved: float | None = None
assignee: str | None = None
feedback: str | None = None
model_config = {"from_attributes": True}
class AssignRequest(BaseModel):
assignee: str = Field(min_length=1)
actor: str = Field(min_length=1)
class AdjudicateRequest(BaseModel):
confirmed: bool
actor: str = Field(min_length=1)
note: str | None = None
class NLQRequest(BaseModel):
question: str = Field(min_length=1)
class NLQResponse(BaseModel):
question: str
answer: str
provider: str
model: str
egress: bool
class DashboardSummary(BaseModel):
total: int
by_status: dict[str, int]
by_confidence: dict[str, int]
by_scenario: dict[str, int]
total_amount_involved: float