# Documents 模块需求分析

## 1. 模块定位

`apps.documents` 不再只是“文件上传页”，而是：

> 资料包中心

它负责让资料包成为可查询、可绑定会话、可参与审核、可进入知识库和可触发通知的一级业务对象。

## 2. 模块目标

本模块需要支撑以下目标：

1. 接收资料包导入。
2. 识别资料包产品名称。
3. 统计文件数、页数和章节点。
4. 将资料包与对话记录绑定。
5. 支持按产品名称和批次号搜索资料包。
6. 为后续完整性检查、字段抽取和一致性核查提供文档底座。

## 3. 资料包优先原则

V1 以资料包为主对象，而不是单文件。

资料包记录至少需要：

1. `batch_id`
2. `product_name`
3. `conversation_id`
4. `workflow_type`
5. `file_count`
6. `page_count`
7. `chapter_summary`
8. `import_status`
9. `exception_count`

## 4. 产品名称解析要求

资料包导入后需要尽早解析产品名称，用于：

1. 生成会话标题
2. 建立资料包搜索索引
3. 支持同产品批次管理
4. 作为后续字段抽取和一致性核查的主键之一

首版产品名称优先来源：

1. 申请表
2. 说明书
3. 产品列表

若多个来源冲突，可先取主来源值建立会话标题，同时把冲突标记给后续一致性核查处理。

## 5. 支持的导入能力

1. 多文件上传
2. 文件夹导入
3. 压缩包导入
4. 批次追加上传

压缩包仍要求支持：

1. `zip`
2. `rar`
3. `7z`

并保留原始相对路径。

## 6. 页面与交互要求

基于最新版原型，资料包页需要支持：

1. 资料包总览表
2. 产品名称搜索框
3. 按批次号辅助查询
4. 从资料包跳转回对应对话
5. 文件清单与章节点展示

## 7. 搜索需求

资料包页至少应支持：

1. 按产品名称搜索
2. 按批次号搜索

搜索结果应直接返回资料包记录，而不是只返回文件。

## 8. 与对话记录的关系

Documents 模块需要对外提供：

1. `conversation_id`
2. `product_name`
3. `batch_id`

确保：

1. 一个资料包可以定位到一个主会话
2. 一个主会话默认绑定一个资料包
3. 用户可以从资料包页直接跳到会话页

## 9. 与知识库的关系

Documents 管理的是审核资料包；知识库管理的是法规资料、模板资料和业务知识资料。

二者都属于文档资产，但职责不同：

1. 资料包用于当前审核任务事实输入
2. 知识库用于 RAG 检索、法规依据和模板治理

## 10. 验收标准

1. 导入资料包后能形成批次记录。
2. 能解析出产品名称并用于会话标题。
3. 资料包页可按产品名称搜索。
4. 资料包记录能跳转回对应对话。
5. 文件清单、页数和章节点可用于后续审核任务消费。
