2026-06-04 01:28:28 +08:00

试剂盒临床注册文件准备与审核智能体平台

用于复试展示的体外诊断试剂注册申报资料准备与审核系统。

项目已按真实笔试题收口为 NMPA 境内第三类体外诊断试剂注册申报资料场景,重点演示“资料包导入 -> 审核智能体执行 -> 结构化结果 -> Word 导出 -> 通知与审计留痕”的本地闭环。

核心理念

注册审核 Agent = 任务配置 + 资料包 + 法规/业务知识库 + 工具集 + 输出模板 + 审计日志 + 模型适配器

技术路线

V1 采用:

  • Django 单体应用
  • 独立 Agent Core 模块
  • SQLite
  • Chroma / fallback 检索双路径
  • Django Templates
  • Docker Compose
  • OpenAI API 兼容的 LLM 与 Embedding 接口

默认不强依赖 Dify。系统保留 Provider / Adapter 边界,后续可接入 Dify、OpenAI Agents SDK 或其他 Agent 编排平台。

当前业务主线

  1. 进入审核智能体后,可以先不上传资料,直接通过对话查询法规和业务知识库。
  2. 导入注册资料包,支持单文件、多文件和压缩包。
  3. 解析文件元数据、页数、章节点和产品名称。
  4. 自动创建资料包批次,并绑定审核会话。
  5. 在审核智能体工作台选择文档范围并发起目录汇总、完整性检查、字段抽取、一致性核查或风险报告。
  6. Agent Core 按场景配置执行 RAG 检索、工具调用、Prompt 编排、LLM 调用和结构化输出解析。
  7. 会话页展示节点状态、能力卡、风险摘要、通知信息和导出入口。
  8. Word 回填导出生成可下载 .docx,并记录到资料包和处理历史。
  9. 审计模块保存成功与失败两类执行快照,并沉淀飞书通知留痕。

当前产品入口

当前根路径 / 会直接进入审核智能体工作台,便于复试演示聚焦主链路。

页面 路径 当前能力
审核智能体 //chat//chat/<conversation_id>/ 无资料包知识库问答、会话驱动审核、文档范围选择、节点式结果、能力卡、补传资料、Word 导出、通知与审计回看
资料包 /documents//documents/upload/ 导入资料包、搜索产品或批次、查看解析状态、异常提示、最近导出和处理链路
处理历史 /audit//audit/<log_id>/ 按批次、产品、风险状态、通知状态回看执行快照、原始输出、导出摘要和通知回执
知识库治理台 /platform/knowledge-base/ 查看法规规则包、RAG 文档源、切片、字段 Schema、Word 模板、责任人映射和飞书配置
MCP 中心演示页 /platform/mcp-center/ 展示外部连接器治理视图
Skill 工作室演示页 /platform/skills/ 展示审核 Skill 编排和发布状态
审核指挥台 /platform/command-center-v2/ 面向讲解的大屏式审核流程与风险状态视图
底层场景列表 /scenarios/ 展示 YAML 场景配置和非法配置错误摘要
Django Admin /admin/ 维护后台模型数据

模块划分

config
apps.scenarios
apps.documents
apps.chat
apps.audit
apps.platform_ui
agent_core

职责边界:

  • config 负责 Django 配置、路由入口、环境变量、静态资源和上传路径。
  • apps.scenarios 负责读取 YAML 场景配置,非法配置可被跳过并展示错误摘要。
  • apps.documents 负责资料包、上传文件、章节点识别、页数统计、文本抽取、RAG 入库触发和导出记录。
  • apps.chat 负责审核工作台、会话绑定、用户输入、调用 Agent Core、补传资料和 Word 导出编排。
  • apps.audit 负责审计日志、通知留痕、处理历史列表和详情回看。
  • apps.platform_ui 负责知识库治理台、MCP 中心、Skill 工作室和指挥台等演示型治理页面。
  • agent_core 负责 RAG、工具注册、治理配置、LLM Provider、Prompt 编排和结构化输出。

约束RAG、工具调用和模型调用不直接写进 Django ViewView 只做请求处理和页面渲染,复杂业务逻辑放到 services.pyagent_core

项目结构

DEMO-AGENT/
  manage.py
  requirements.txt
  Dockerfile
  docker-compose.yml
  .env.example
  README.md
  AGENTS.md

  config/
  apps/
    audit/
    chat/
    documents/
    platform_ui/
    scenarios/

  agent_core/
    rag/
    schemas/
    tools/

  configs/
    document_review.yaml
    governance.yaml
    knowledge_qa.yaml
    quality_analysis.yaml
    risk_audit.yaml
    ticket_assistant.yaml

  data/
    uploads/
    chroma/
    db.sqlite3

  docs/
    需求分析/
    详细设计/
    原型设计/
    原始材料/

  templates/
  tests/

已落地能力

  • 根路径已重定向到审核智能体,降低演示入口复杂度。
  • 审核工作台允许未上传资料时直接发起知识库问答,后续再通过右侧上传区导入资料包。
  • 资料包导入支持 PDF、DOCX、MD、TXT、ZIP、7Z、RAR压缩包内仅导入支持格式其他文件会生成提示。
  • 导入时会创建 SubmissionBatchUploadedDocument 和绑定的 Conversation
  • 文档解析覆盖文本抽取、PDF 页数统计、DOCX 页数元数据读取、章节点识别、文档角色识别和人工复核标记。
  • 审核工作台支持会话历史、资料范围选择、预设问题、节点状态、结构化能力卡、补传资料、Word 导出和通知回看。
  • Agent Core 已具备 Prompt 编排、OpenAI 兼容 Provider、结构化输出解析、RAG 检索、工具注册和治理配置读取。
  • Word 导出会生成最小可下载 .docx,按风险状态区分正式版或草稿版,并写入导出记录。
  • 审计日志记录输入、检索片段、工具调用、结构化输出、原始输出、模型名、耗时、状态和错误信息。
  • 飞书通知首版为离线留痕,不直接依赖真实飞书网络发送;支持 task_completedtask_failed 两类原因。
  • 知识库治理台展示法规规则、RAG 源、切片、字段 Schema、Word 模板、责任人映射和飞书配置。
  • 自动化测试默认使用 Mock Provider避免本地真实模型密钥导致测试走网络。

启动方式

推荐首次本地启动:

python -m venv .venv
.venv\Scripts\activate
pip install -r requirements.txt
python manage.py migrate
python manage.py runserver

Docker 启动:

docker compose up --build

Docker Compose 会读取根目录 .env,并挂载 ./data./configs

环境变量

项目通过根目录 .env 和系统环境变量读取配置。.env.example 只作为模板,不应提交真实密钥。

DJANGO_SECRET_KEY=replace-with-a-local-secret-key
DJANGO_DEBUG=true
DJANGO_ALLOWED_HOSTS=*

LLM_API_KEY=your_llm_api_key
LLM_BASE_URL=https://api.openai.com/v1
LLM_MODEL=gpt-4.1-mini

EMBEDDING_API_KEY=
EMBEDDING_BASE_URL=
EMBEDDING_MODEL=text-embedding-3-small

SCENARIO_CONFIG_DIR=configs
GOVERNANCE_CONFIG_PATH=configs/governance.yaml
UPLOAD_ROOT=data/uploads
CHROMA_PATH=data/chroma

说明:

  • EMBEDDING_API_KEY 为空时自动复用 LLM_API_KEY
  • EMBEDDING_BASE_URL 为空时自动复用 LLM_BASE_URL
  • Django settings 初始化时会自动加载根目录 .env
  • 测试环境会在 tests/conftest.py 中固定 Mock Provider避免误调用真实 LLM。

测试与验证

常用验证命令:

pytest
python manage.py check
docker compose config

当前测试覆盖:

  • 项目配置、根路由和核心页面可访问性。
  • 场景配置读取、非法 YAML 容错和场景列表展示。
  • 资料包导入、压缩包展开、文档解析、入库状态和异常提示。
  • 会话创建、对话提交、文档范围传递、结构化结果展示和 Word 导出。
  • 审计日志落库、筛选、详情展示、通知留痕和敏感信息脱敏。
  • Agent Core 的 Prompt 编排、结构化解析、RAG fallback、工具注册、LLM / Embedding Provider 请求构造。
  • 平台治理页、指挥台、知识库、MCP 中心和 Skill 工作室展示。

文档入口

复试改题流程

拿到新题目后:

  1. 判断资料包、规则依据和核心审核链路。
  2. 调整最接近的 YAML 场景配置,优先从 configs/document_review.yaml 入手。
  3. 修改 Agent 角色、目标、指令和输出模板。
  4. 上传题目材料并生成资料包。
  5. 确认产品名称解析、资料包绑定和会话标题是否正确。
  6. 如需业务计算,新增工具函数并通过 Tool Registry 注册。
  7. 用 2 到 3 个预设问题测试目录汇总、完整性检查、字段抽取和风险报告。
  8. 演示节点结果、知识库引用、结构化输出、Word 导出、通知留痕和审计日志。

V1 不优先做

  • React / Vue 前端。
  • 多租户。
  • 复杂 RBAC。
  • 完整工作流引擎。
  • 深度 Dify 集成。
  • 微服务拆分。
  • 分布式任务队列。
  • 真实飞书发送链路。

这些内容可以作为后续增强,不应影响 V1 快速成型。

Description
No description provided
Readme 4 MiB
Languages
Python 86.5%
JavaScript 5.6%
HTML 4%
CSS 3.9%