NMPA 注册资料法规核查与整改闭环工作流功能设计
文档信息
| 项目 |
内容 |
| 需求分析文档 |
docs/1.需求分析/2.NMPA注册资料法规核查与整改闭环.md |
| 依赖功能设计 |
docs/2.功能设计/1.自动汇总.md |
| 功能名称 |
NMPA 注册资料法规核查与整改闭环 |
| 所属模块 |
审核智能体 review_agent |
| 设计日期 |
2026-06-06 |
| 设计版本 |
V1.0 |
一、设计目标
本功能在“自动汇总文件夹文件目录与页数流程”基础上扩展,不重复实现上传、解压、文件扫描、页数统计、基础导出和 SSE 推送能力。法规核查工作流复用已有 FileSummaryBatch 和 FileSummaryItem 作为资料清单输入,新增法规规则库、RAG 法规依据索引、法规核查批次、风险问题、过程产物、飞书通知和整改复核能力。
工作流支持两种启动方式:用户可以在已有文件汇总批次完成后发起法规核查;也可以直接在上传资料后发起法规核查,系统内部先执行自动汇总,再串联执行法规核查。若同一对话已存在最近一次成功的文件汇总批次,默认复用该批次。
前端需要新增独立的法规核查工作流卡片。一个对话内可能同时存在“文件汇总”和“法规核查”等多个工作流卡片,卡片区域采用类似轮播图的切换方式展示当前活跃卡片和历史卡片。底层 SSE 事件机制复用现有 workflow 事件,通过 workflow_type 区分 file_summary 与 regulatory_review。
二、与自动汇总功能的关系
2.1 复用边界
| 能力 |
处理方式 |
说明 |
| 上传接收 |
复用 |
沿用 FileAttachment、FileSummaryBatchAttachment 和上传接收接口 |
| 压缩包解压 |
复用 |
沿用自动汇总的解压 Skill 和工作目录规则 |
| 文件清单扫描 |
复用 |
以 FileSummaryItem 作为法规核查文件清单 |
| 页数统计 |
复用 |
法规核查直接读取页数和解析状态 |
| 基础节点状态 |
复用 |
沿用 WorkflowNodeRun 事件模型,新增 workflow_type |
| Markdown/Excel 下载 |
部分复用 |
最终报告进入 ExportedSummaryFile,过程产物进入 RegulatoryArtifact |
| 产品名识别 |
不扩展 |
原 产品信息识别 Skill 继续只服务自动汇总标题识别 |
2.2 新增边界
| 能力 |
说明 |
| 法规适用信息抽取 |
新增 RegulatoryInfoExtract Skill,抽取注册类型、临床评价路径、产品关键信息 |
| 适用条件确认 |
通过 AI 对话选择框让用户确认或自由补充 |
| 规则文件与 RAG |
结构化规则文件负责判断,RAG 负责法规依据引用和解释 |
| 法规核查批次 |
新增 RegulatoryReviewBatch,关联 FileSummaryBatch |
| 风险问题与整改状态 |
新增 RegulatoryIssue,记录问题、风险、证据、责任人、状态 |
| 过程产物留底 |
新增 RegulatoryArtifact,保存条件确认、核查矩阵、风险清单、复核记录等 |
| 飞书通知 |
新增 FeishuNotifier 抽象接口,Demo 实现接飞书 CLI |
三、总体架构
3.1 架构原则
| 原则 |
说明 |
| 依赖汇总批次 |
法规核查必须绑定一个 FileSummaryBatch,不能跨对话读取文件 |
| 工作流独立 |
法规核查拥有独立卡片、批次和节点,但事件通道可复用 |
| 规则优先 |
合规判断以结构化规则文件为准,RAG 只做法规依据检索和解释增强 |
| 人工确认 |
适用条件缺失时停在待确认,复核通过关闭前需要人工确认 |
| 过程留底 |
所有关键过程文档都要留底,便于复核和 Demo 展示 |
| 通知可替换 |
飞书发送通过接口抽象,Demo 接 CLI,后续可替换为 Webhook/API |
3.2 逻辑架构
3.3 技术选型
| 设计项 |
Demo 方案 |
后续演进 |
| 工作流编排 |
复用轻量 WorkflowExecutor 思路,新增 RegulatoryWorkflowExecutor |
接入 LangGraph 子图 |
| 事件机制 |
复用 workflow SSE,新增 workflow_type=regulatory_review |
独立工作流事件中心 |
| 规则存储 |
项目内 JSON/YAML 规则文件 |
规则管理后台 + 数据库版本表 |
| 法规依据检索 |
本地 CMDE 文档构建 RAG 索引 |
法规资料定期更新和重建索引 |
| 文本抽取 |
新增统一 TextExtract Skill |
建立文档文本缓存和 OCR 能力 |
| 飞书通知 |
FeishuNotifier 接飞书 CLI,可直接测试发送 |
飞书开放平台 Webhook/API |
| 过程产物 |
Markdown、Excel、JSON 留底 |
对象存储 + 证据快照管理 |
四、工作流设计
4.1 启动方式
| 场景 |
处理方式 |
| 已有成功文件汇总批次 |
默认复用当前对话最近一次成功 FileSummaryBatch |
| 无成功文件汇总批次 |
系统先串联执行自动汇总,再执行法规核查 |
| 用户修改适用条件后重核 |
创建新的 RegulatoryReviewBatch,保留旧批次记录 |
| 用户补充缺失文件复核 |
通过对话指令上传补充文件,合并到原问题上下文后复核 |
4.2 节点图
4.3 主节点与子节点
法规核查卡片展示主节点,主节点可展开查看子节点。
| 主节点 |
子节点 |
说明 |
| 准备资料 |
复用批次、检查文件清单、读取规则版本 |
绑定 FileSummaryBatch |
| 识别信息 |
产品信息抽取、适用条件识别 |
生成用户确认项 |
| 确认条件 |
对话选择框确认、自由补充 |
卡片只展示等待状态 |
| 法规核查 |
规则裁剪、完整性核查、文本抽取、章节核查、一致性核查 |
完整性先跑,章节和一致性并行 |
| 风险输出 |
风险分级、建议生成、RAG 依据引用、报告导出 |
生成问题和过程产物 |
| 通知复核 |
飞书通知、补充资料、整改复核、关闭确认 |
支持后续闭环 |
4.4 节点定义
| 节点编码 |
节点名称 |
触发 Skill/服务 |
成功条件 |
失败或暂停处理 |
| prepare |
准备资料 |
RegulatoryWorkflowExecutor |
绑定成功的 FileSummaryBatch |
无汇总批次则串联自动汇总 |
| info_extract |
识别信息 |
RegulatoryInfoExtract Skill |
输出适用条件候选值 |
缺少关键条件则进入待确认 |
| condition_confirm |
确认条件 |
Conversation Interaction |
用户确认产品类别、注册类型、临床路径等 |
暂停等待用户输入 |
| rule_scope |
裁剪规则 |
RuleLoader |
生成本次适用规则清单 |
规则加载失败则降级 RAG 辅助核查 |
| completeness_check |
完整性核查 |
CompletenessCheck Skill |
输出缺失文件和文件项问题 |
单项失败记录待确认 |
| text_extract |
文本抽取 |
TextExtract Skill |
抽取关键文件文本和首页内容 |
单文件失败记录问题并继续 |
| structure_check |
章节核查 |
StructureCheck Skill |
输出章节缺失和格式问题 |
与一致性核查并行 |
| consistency_check |
一致性核查 |
ConsistencyCheck Skill |
输出字段冲突问题 |
低置信度字段可用 LLM 辅助 |
| risk_assess |
风险分级 |
RiskAssess Skill |
归并问题、生成风险等级和建议 |
无 RAG 依据时仍输出规则问题 |
| report_export |
报告导出 |
RegulatoryReportExport Skill |
生成 Markdown、Excel、JSON 产物 |
导出失败记录批次失败 |
| notify |
飞书通知 |
FeishuNotifier |
阻断项、高风险、中风险完成通知 |
CLI 失败写入通知失败记录 |
| rectify_review |
整改复核 |
RectificationReview Skill |
输出复核通过/不通过 |
关闭前等待人工确认 |
五、规则库与 RAG 设计
5.1 双层法规能力
| 层级 |
职责 |
不承担的职责 |
| 结构化规则库 |
判断文件项、章节项、关键字段、一致性字段、风险等级和整改模板 |
不负责自由解释法规 |
| RAG 法规依据索引 |
从本地 CMDE 原文材料检索法规依据片段、来源文件和引用说明 |
不直接决定合规结论 |
5.2 规则文件结构
Demo 阶段规则采用项目内 JSON/YAML 文件维护,建议路径:
规则文件需要包含版本信息:
规则项最小结构:
5.3 规则加载策略
| 场景 |
处理方式 |
| 规则文件正常加载 |
按结构化规则执行核查,RAG 补充法规依据 |
| 规则文件加载失败 |
降级为 RAG 辅助核查,报告明确标记“仅供参考,不输出正式合规结论” |
| 规则命中但 RAG 无依据 |
仍输出问题,法规依据标记“规则库依据,原文待补充” |
| 规则版本与 RAG 版本不一致 |
批次标记提示项,允许继续但报告记录版本差异 |
5.4 RAG 索引设计
| 项目 |
说明 |
| 资料来源 |
本地 CMDE 公告目录下的 doc/docx 文档 |
| 索引粒度 |
按标题、段落、表格行或文件项说明切分 |
| 元数据 |
source_file、section_title、page_or_row、rule_version、source_url |
| 输出 |
matched_snippets、source_file、score、citation_text |
| 用途 |
风险报告中的法规依据、AI 对话解释、飞书通知简要依据 |
六、Skill 设计
| 项目 |
说明 |
| 中文名称 |
法规适用信息抽取 Skill |
| 职责 |
从 FileSummaryItem、文件名、目录名和文本片段中抽取法规适用条件 |
| 输入 |
regulatory_batch_id、file_summary_batch_id、file_items |
| 输出 |
产品类别、注册类型、临床评价路径、产品名称、型号规格、预期用途、置信度、证据 |
| 关键规则 |
不修改自动汇总的产品名识别 Skill;缺少关键条件时暂停等待用户确认 |
用户确认字段:
| 字段 |
是否必填 |
说明 |
| 产品类别 |
是 |
医疗器械/体外诊断试剂等 |
| 注册类型 |
是 |
首次注册、变更注册、延续注册等 |
| 临床评价路径 |
是 |
临床试验、免临床、同品种比对等 |
| 产品名称 |
是 |
用于一致性核查 |
| 型号规格 |
是 |
用于一致性核查 |
| 预期用途 |
是 |
用于规则裁剪和一致性核查 |
| 项目 |
说明 |
| 中文名称 |
文本抽取 Skill |
| 职责 |
按需抽取关键文件首页、前几页、章节文本和字段候选值 |
| 输入 |
regulatory_batch_id、file_item_ids、extract_scope |
| 输出 |
text_blocks、first_page_text、section_candidates、field_candidates |
| 数据写入 |
RegulatoryArtifact,artifact_type=text_extract_json |
| 关键规则 |
统一抽取,避免完整性、章节、一致性节点重复读取文件 |
6.3 CompletenessCheck Skill
| 项目 |
说明 |
| 中文名称 |
法规资料完整性核查 Skill |
| 职责 |
对照适用规则清单检查文件项和文件项子项是否存在 |
| 输入 |
regulatory_batch_id、file_summary_items、scoped_rules |
| 输出 |
missing_items、matched_items、pending_confirm_items |
| 关键规则 |
文件匹配采用文件名、目录名、首页内容三层匹配,记录命中证据 |
6.4 StructureCheck Skill
| 项目 |
说明 |
| 中文名称 |
章节结构核查 Skill |
| 职责 |
检查关键文件是否包含规则要求章节 |
| 输入 |
regulatory_batch_id、text_blocks、required_sections |
| 输出 |
missing_sections、abnormal_sections、evidence |
| 关键规则 |
章节缺失按规则初始等级输出,由 RiskAssess 统一归并 |
6.5 ConsistencyCheck Skill
| 项目 |
说明 |
| 中文名称 |
跨文件一致性核查 Skill |
| 职责 |
抽取并比对产品名称、型号规格、预期用途等核心字段 |
| 输入 |
regulatory_batch_id、text_blocks、consistency_fields |
| 输出 |
field_values、conflicts、confidence |
| 关键规则 |
规则/正则优先,失败或置信度低时调用 LLM 辅助抽取结构化 JSON |
6.6 RiskAssess Skill
| 项目 |
说明 |
| 中文名称 |
风险分级与整改建议 Skill |
| 职责 |
归并核查问题,统一风险等级,生成整改建议和法规依据 |
| 输入 |
all_check_findings、rules、rag_results |
| 输出 |
RegulatoryIssue 列表、risk_summary、suggestions |
| 关键规则 |
核查节点提供初始等级,RiskAssess 负责去重、合并、升级或降级 |
6.7 RegulatoryReportExport Skill
| 项目 |
说明 |
| 中文名称 |
法规核查报告导出 Skill |
| 职责 |
生成最终报告和过程产物 |
| 输入 |
regulatory_batch_id、issues、artifacts、notification_records |
| 输出 |
Markdown 报告、Excel 清单、JSON 产物、下载链接 |
| 关键规则 |
最终报告进入 ExportedSummaryFile,过程产物进入 RegulatoryArtifact |
6.8 FeishuNotifier
| 项目 |
说明 |
| 中文名称 |
飞书通知适配器 |
| 职责 |
对阻断项、高风险、中风险发送飞书通知并 @ 上传人 |
| 输入 |
recipient、risk_summary、message_markdown |
| 输出 |
send_status、external_message_id、error_message |
| Demo 实现 |
抽象接口接飞书 CLI,并支持直接测试发送 |
| 后续演进 |
替换为飞书 Webhook/API |
七、数据模型设计
7.1 RegulatoryReviewBatch
法规核查批次,表示一次法规核查工作流执行。
| 字段 |
类型 |
说明 |
| id |
BigAutoField |
主键 |
| conversation |
ForeignKey(Conversation) |
绑定对话 |
| user |
ForeignKey(User) |
发起用户 |
| file_summary_batch |
ForeignKey(FileSummaryBatch) |
关联文件汇总批次 |
| batch_no |
CharField |
法规核查批次编号 |
| status |
CharField |
pending、running、waiting_user、success、failed、reference_only、partial_success、cancelled |
| rule_version |
CharField |
使用的结构化规则版本 |
| rule_source_url |
URLField |
法规来源 URL |
| rule_source_path |
CharField |
本地法规资料路径 |
| rag_index_version |
CharField |
RAG 索引版本 |
| product_category |
CharField |
用户确认后的产品类别 |
| registration_type |
CharField |
用户确认后的注册类型 |
| clinical_evaluation_path |
CharField |
用户确认后的临床评价路径 |
| product_name |
CharField |
产品名称 |
| model_specification |
CharField |
型号规格 |
| intended_use |
TextField |
预期用途 |
| risk_summary_json |
JSONField |
风险数量摘要 |
| error_message |
TextField |
异常说明 |
| created_at |
DateTimeField |
创建时间 |
| started_at |
DateTimeField |
开始时间 |
| finished_at |
DateTimeField |
完成时间 |
7.2 RegulatoryIssue
法规核查问题和整改状态实体。
| 字段 |
类型 |
说明 |
| id |
BigAutoField |
主键 |
| batch |
ForeignKey(RegulatoryReviewBatch) |
所属法规核查批次 |
| issue_code |
CharField |
问题编码 |
| issue_type |
CharField |
completeness、structure、consistency、notification、review |
| risk_level |
CharField |
blocking、high、medium、low、info |
| title |
CharField |
问题标题 |
| description |
TextField |
问题描述 |
| rule_id |
CharField |
命中的规则 ID |
| regulation_basis |
TextField |
法规依据或规则依据 |
| evidence_json |
JSONField |
文件路径、页码、文本片段、字段值等证据 |
| suggestion |
TextField |
整改建议 |
| owner |
ForeignKey(User) |
默认上传人 |
| status |
CharField |
待确认、待处理、已补充、复核通过、复核不通过、已关闭 |
| confirmed_by |
ForeignKey(User) |
确认人,可为空 |
| closed_by |
ForeignKey(User) |
关闭人,可为空 |
| created_at |
DateTimeField |
创建时间 |
| updated_at |
DateTimeField |
更新时间 |
7.3 RegulatoryArtifact
法规核查过程产物留底实体。
| 字段 |
类型 |
说明 |
| id |
BigAutoField |
主键 |
| batch |
ForeignKey(RegulatoryReviewBatch) |
所属法规核查批次 |
| artifact_type |
CharField |
condition_record、rule_matrix、risk_list、text_extract_json、rag_result_json、notification_record、review_record |
| file_format |
CharField |
markdown、excel、json |
| file_name |
CharField |
文件名 |
| storage_path |
CharField |
存储路径 |
| summary |
TextField |
产物摘要 |
| created_at |
DateTimeField |
创建时间 |
7.4 RegulatoryNotificationRecord
飞书通知记录。
| 字段 |
类型 |
说明 |
| id |
BigAutoField |
主键 |
| batch |
ForeignKey(RegulatoryReviewBatch) |
所属法规核查批次 |
| recipient |
ForeignKey(User) |
通知对象 |
| channel |
CharField |
feishu_cli、feishu_api、mock |
| risk_levels |
JSONField |
本次通知包含的风险等级 |
| message_summary |
TextField |
通知摘要 |
| send_status |
CharField |
pending、success、failed |
| external_message_id |
CharField |
外部消息 ID,可为空 |
| error_message |
TextField |
失败原因 |
| sent_at |
DateTimeField |
发送时间 |
7.5 与既有模型关系
八、接口设计
8.1 发起法规核查
| 项目 |
内容 |
| URL |
POST /api/review-agent/regulatory-review/start/ |
| 认证 |
登录用户 |
| 请求 |
conversation_id、file_summary_batch_id 可选、force_resummary 可选 |
| 响应 |
regulatory_batch_id、workflow_type、status |
处理规则:
| 场景 |
说明 |
| 传入 file_summary_batch_id |
校验该批次属于当前对话和用户 |
| 未传入 file_summary_batch_id |
默认查找当前对话最近一次成功汇总批次 |
| 无成功汇总批次 |
自动启动文件汇总工作流,完成后继续法规核查 |
8.2 提交适用条件确认
| 项目 |
内容 |
| URL |
POST /api/review-agent/regulatory-review/{batch_id}/confirm-condition/ |
| 认证 |
登录用户 |
| 请求 |
product_category、registration_type、clinical_evaluation_path、product_name、model_specification、intended_use |
| 响应 |
batch_id、status、next_node |
说明:对话选择框负责收集用户确认结果,接口只接收结构化确认值。用户修改已确认条件时创建新的 RegulatoryReviewBatch。
8.3 查询法规核查状态
| 项目 |
内容 |
| URL |
GET /api/review-agent/regulatory-review/{batch_id}/ |
| 认证 |
登录用户 |
| 响应 |
批次状态、主节点状态、风险摘要、导出文件、过程产物 |
用途:
| 场景 |
说明 |
| 页面刷新恢复 |
恢复法规核查卡片状态 |
| 卡片轮播切换 |
切换历史工作流卡片时加载详情 |
| 整改复核 |
查看待处理和待确认问题 |
8.4 发起整改复核
| 项目 |
内容 |
| URL |
POST /api/review-agent/regulatory-review/{batch_id}/rectify-review/ |
| 认证 |
登录用户 |
| 请求 |
issue_ids、uploaded_files 可选、review_mode |
| 响应 |
review_record_id、status、updated_issues |
Demo 阶段主要通过对话指令触发,卡片入口作为设计预留。
8.5 下载法规核查文件
| 项目 |
内容 |
| URL |
GET /api/review-agent/regulatory-review/artifacts/{artifact_id}/download/ |
| 认证 |
登录用户 |
| 响应 |
文件流 |
权限规则:
九、前端设计
9.1 多工作流卡片轮播
AI 对话页顶部或对话流内的工作流区域支持多个工作流卡片。
| 设计点 |
说明 |
| 展示方式 |
顶部只显示当前活跃卡片,通过左右箭头或点位切换历史卡片 |
| 卡片类型 |
file_summary、regulatory_review |
| 事件更新 |
统一监听 workflow SSE,根据 workflow_type 和 batch_id 更新对应卡片 |
| 卡片职责 |
展示工作流状态,不承载适用条件编辑表单 |
| 历史恢复 |
页面刷新后按对话查询工作流批次并恢复卡片列表 |
9.2 法规核查卡片
卡片主节点:
| 主节点 |
展示文案 |
| prepare |
准备资料 |
| info_extract |
识别信息 |
| condition_confirm |
确认条件 |
| regulatory_check |
法规核查 |
| risk_output |
风险输出 |
| notify_review |
通知复核 |
| completed |
已完成 |
节点可展开展示子节点,例如法规核查下展开“规则裁剪、完整性核查、文本抽取、章节核查、一致性核查”。
9.3 适用条件确认交互
适用条件确认采用 AI 对话选择框,不放在卡片内。交互形式参考计划模式:系统给出识别结果、推荐选项和自由输入能力。
确认字段:
| 字段 |
交互方式 |
| 产品类别 |
选项 + 自由输入 |
| 注册类型 |
选项 + 自由输入 |
| 临床评价路径 |
选项 + 自由输入 |
| 产品名称 |
文本确认 |
| 型号规格 |
文本确认 |
| 预期用途 |
文本确认 |
9.4 对话框结果展示
工作流完成后新增助手消息,优先展示风险摘要、待处理问题和下载链接。
十、事件设计
10.1 SSE 事件结构
复用现有 workflow 事件,新增字段区分工作流。
10.2 状态扩展
| 状态 |
含义 |
| pending |
已创建,等待执行 |
| running |
执行中 |
| waiting_user |
等待用户确认适用条件 |
| success |
节点成功 |
| failed |
节点失败 |
| reference_only |
规则库不可用,降级为 RAG 辅助核查 |
| partial_success |
部分节点、通知或非关键过程产物失败,但已输出主要结果 |
| cancelled |
用户或系统取消执行 |
| skipped |
当前节点跳过 |
十一、输出与留底设计
11.1 最终下载文件
最终面向用户下载的报告沿用 ExportedSummaryFile。
| 文件 |
说明 |
| Markdown 核查报告 |
面向人工阅读的完整法规核查报告 |
| Excel 缺失清单 |
面向整改跟踪的风险和缺失清单 |
| JSON 结果包 |
面向后续复核和系统处理的结构化结果 |
11.2 过程产物
过程产物进入 RegulatoryArtifact。
| 产物类型 |
格式 |
说明 |
| condition_record |
markdown/json |
适用条件识别和用户确认记录 |
| rule_matrix |
excel/json |
法规核查矩阵 |
| risk_list |
markdown/json |
风险清单和等级归并结果 |
| text_extract_json |
json |
关键文件文本抽取结果 |
| rag_result_json |
json |
RAG 检索依据和引用片段 |
| notification_record |
markdown/json |
飞书通知记录 |
| review_record |
markdown/json |
整改复核记录 |
十二、异常与降级设计
| 场景 |
处理 |
| 无成功文件汇总批次 |
自动串联执行文件汇总;汇总失败则法规核查不启动 |
| 规则文件加载失败 |
降级为 RAG 辅助核查,标记 reference_only,报告声明仅供参考 |
| RAG 检索不到依据 |
规则命中的问题仍输出,依据标记“规则库依据,原文待补充” |
| 关键适用条件缺失 |
工作流进入 waiting_user,用户确认后继续 |
| 文本抽取失败 |
记录文件级问题,相关章节或一致性结果标记待确认 |
| LLM 字段抽取失败 |
回退规则/正则结果,低置信度字段进入待确认 |
| 飞书 CLI 发送失败 |
记录通知失败,不阻断报告生成 |
| 过程产物导出失败 |
批次标记失败或部分失败,错误信息写入批次 |
十三、安全设计
| 设计点 |
说明 |
| 对话隔离 |
RegulatoryReviewBatch 必须绑定当前 Conversation |
| 文件访问 |
只能读取关联 FileSummaryBatch 下的 FileSummaryItem |
| 下载权限 |
导出文件和过程产物下载必须校验 conversation.user |
| 飞书脱敏 |
飞书通知只展示风险摘要和必要文件名,不直接发送敏感全文 |
| 证据留痕 |
证据片段写入受控存储,不暴露给无权限用户 |
| CLI 安全 |
飞书 CLI 参数使用结构化调用,避免拼接执行用户输入 |
十四、验收设计
| 序号 |
验收项 |
验收标准 |
| 1 |
汇总复用 |
已有成功文件汇总批次时,法规核查默认复用最近批次 |
| 2 |
串联启动 |
无成功汇总批次时,可先自动汇总再执行法规核查 |
| 3 |
多卡片切换 |
同一对话存在多个工作流时,可通过轮播切换卡片 |
| 4 |
适用条件确认 |
系统能识别条件并通过对话选择框让用户确认 |
| 5 |
规则与 RAG |
结构化规则负责判断,RAG 能补充法规依据 |
| 6 |
完整性核查 |
能识别缺失文件和文件项级缺失 |
| 7 |
章节核查 |
能识别关键文件章节缺失或异常 |
| 8 |
一致性核查 |
能识别产品名称、型号规格、预期用途等字段冲突 |
| 9 |
风险分级 |
问题能归并为阻断项、高、中、低、提示项 |
| 10 |
飞书通知 |
阻断项、高风险、中风险能通过飞书 CLI @ 上传人 |
| 11 |
过程留底 |
条件确认、核查矩阵、风险清单、RAG 结果、通知记录、复核记录均有产物 |
| 12 |
整改复核 |
用户通过对话指令上传补充资料后,可重新复核问题状态 |
| 13 |
权限隔离 |
A 对话的法规核查结果和过程产物不能被 B 对话访问 |
十五、实施建议
- 先实现
RegulatoryReviewBatch、RegulatoryIssue、RegulatoryArtifact、RegulatoryNotificationRecord 数据模型。
- 增加规则文件加载器和一版
nmpa_ivd_registration_v1 结构化规则。
- 构建本地 CMDE 法规材料 RAG 索引,确保能按规则项检索依据。
- 实现法规核查工作流主链路:准备资料、信息抽取、条件确认、规则裁剪、完整性核查。
- 补齐
TextExtract、章节核查、一致性核查、风险归并和报告导出。
- 接入
FeishuNotifier CLI 实现并提供直接测试命令。
- 改造前端工作流卡片,支持
workflow_type 和轮播切换。
- 最后完善整改复核、过程产物下载和权限校验。
十六、待确认事项
| 序号 |
问题 |
当前建议 |
状态 |
| 1 |
规则文件格式使用 YAML 还是 JSON |
建议 YAML,便于人工维护和注释 |
待确认 |
| 2 |
本地 RAG 使用哪种向量库 |
可复用项目依赖中的 ChromaDB |
待技术验证 |
| 3 |
飞书 CLI 具体命令格式 |
需要结合本机飞书 CLI 或企业内部工具确认 |
待确认 |
| 4 |
对话选择框前端能力 |
参考计划模式实现选项 + 自由输入 |
待技术验证 |
| 5 |
LLM 抽取是否需要人工确认阈值 |
建议低于置信度阈值进入待确认 |
待确认 |