feat: 新增归档中心页面并完善知识库与报销查询能力

新增前端归档中心视图及相关工具函数,扩充知识库文档分类和
提取器支持多种格式,增强编排器报销查询的多维度检索,优
化本体规则和用户代理审核消息,前端完善报销创建和审批详
情交互细节,补充单元测试覆盖。
This commit is contained in:
caoxiaozhu
2026-05-22 16:00:19 +08:00
parent 1f15699013
commit 88ff04bef8
120 changed files with 6236 additions and 643 deletions

View File

@@ -58,10 +58,12 @@ class UserAgentExpenseQueryRecord(BaseModel):
occurred_at: str = Field(default="", description="业务发生日期。")
reason: str = Field(default="", description="事由。")
location: str = Field(default="", description="地点。")
risk_flags: list[dict[str, Any]] = Field(default_factory=list, description="该单据当前风险项。")
class UserAgentQueryPayload(BaseModel):
result_type: str = Field(default="expense_claim_list", description="结构化查询结果类型。")
title: str = Field(default="", description="查询结果标题。")
scope_label: str = Field(default="报销单", description="当前查询范围名。")
recent_window_applied: bool = Field(default=False, description="是否应用了近 10 日窗口。")
window_days: int | None = Field(default=None, ge=1, description="近 N 日窗口天数。")
@@ -69,6 +71,7 @@ class UserAgentQueryPayload(BaseModel):
window_end_date: str | None = Field(default=None, description="近 N 日窗口结束日期。")
record_count: int = Field(default=0, ge=0, description="当前展示范围内的单据数。")
preview_count: int = Field(default=0, ge=0, description="当前返回的单据数。")
preview_limit: int = Field(default=5, ge=1, description="默认展示条数上限。")
older_record_count: int = Field(default=0, ge=0, description="超出近 10 日窗口的单据数。")
has_more_in_window: bool = Field(default=False, description="当前展示范围内是否还有更多单据未返回。")
total_amount: float = Field(default=0.0, ge=0.0, description="当前展示范围内金额合计。")
@@ -122,6 +125,7 @@ class UserAgentReviewDocumentCard(BaseModel):
avg_score: float = Field(default=0.0, ge=0.0, le=1.0, description="OCR 平均得分。")
preview_kind: str = Field(default="", description="票据预览类型,例如 image。")
preview_data_url: str = Field(default="", description="票据预览图片 data URL。")
preview_url: str = Field(default="", description="票据预览图片地址。")
warnings: list[str] = Field(default_factory=list, description="该票据的识别提示。")
fields: list[UserAgentReviewDocumentField] = Field(
default_factory=list,