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

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

当前项目已根据真实笔试题重构目标定位,重点服务于 NMPA 境内第三类体外诊断试剂注册申报场景,覆盖资料整理、目录汇总、法规完整性检查、关键信息抽取、跨文档一致性核查、风险预警和审计留痕。

核心理念

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

技术路线

V1 采用:

  • Django 单体应用
  • 独立 Agent Core 模块
  • SQLite
  • Chroma
  • Django Templates
  • Docker Compose
  • OpenAI API 兼容的 LLM 与 Embedding 接口

默认不强依赖 Dify。系统预留 Adapter 设计,后续可以接入 Dify、OpenAI Agents SDK 或其他 Agent 编排平台。

当前业务主线

当前系统围绕以下注册申报审核闭环展开:

  1. 导入注册资料。
  2. 汇总文件目录与页数。
  3. 对照法规要求检查完整性。
  4. 抽取产品关键信息。
  5. 核查跨文档一致性。
  6. 输出风险预警与处理建议。

模块划分

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

职责边界:

  • Django Apps 负责页面、数据、文件、日志等企业应用外壳。
  • Agent Core 负责 RAG、工具调用、模型适配、结构化输出和 Agent 编排。
  • RAG、工具调用和模型调用不直接写进 Django View。

推荐项目结构

universal-agent-demo/
  manage.py
  requirements.txt
  Dockerfile
  docker-compose.yml
  .env.example
  README.md
  AGENTS.md

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

  agent_core/
    rag/
    tools/
    schemas/

  configs/
    registration_overview.yaml
    registration_completeness_check.yaml
    registration_field_extraction.yaml
    registration_consistency_review.yaml
    registration_risk_report.yaml

  data/
    uploads/
    chroma/

  docs/

V1 功能范围

V1 需要完成:

  • 注册审核任务列表。
  • 审核工作台。
  • 资料上传与管理。
  • 文档解析与入库。
  • 目录与页数汇总。
  • 法规完整性检查。
  • 关键信息抽取与回填预览。
  • 一致性核查。
  • 风险预警与审计日志。
  • 模型 API 可配置。
  • Docker 一键启动。

当前代码基线已经落地的通用能力:

  • 首页支持展示场景摘要、RAG 状态、工具数量。
  • 非法 YAML 场景配置会被自动跳过,并在首页展示错误摘要。
  • 对话页支持问题输入、文档范围选择、结构化结果、引用片段、工具调用和审计入口展示。
  • 文档页支持上传、列表查看、手动入库、失败原因提示和重试。
  • 审计页支持列表摘要、按场景筛选、详情查看、原始输出展示和敏感信息脱敏。
  • Agent Core 已具备 Prompt 编排、OpenAI 兼容 Provider、结构化输出解析、RAG 检索和工具注册机制。
  • 测试环境默认固定使用 Mock Provider避免误调用本地真实模型配置。

本轮需求文档

本轮已按模块重写需求分析,详见:

V1 暂不重点做:

  • 多租户。
  • 复杂权限。
  • 完整工作流引擎。
  • 前后端分离。
  • 深度 Dify 集成。
  • 生产级高并发优化。

复试改题流程

拿到题目后:

  1. 判断题目属于哪类模板。
  2. 复制最接近的 YAML 场景配置。
  3. 修改 Agent 角色、目标、指令和输出模板。
  4. 上传题目材料。
  5. 如需业务计算,新增一个工具函数。
  6. 用 2 到 3 个问题测试效果。
  7. 演示场景配置、知识库引用、工具调用、结构化输出和审计日志。

当前页面概览

当前项目包含以下主要页面:

页面 路径 当前能力
场景首页 / 展示场景名称、描述、适用题型、RAG 状态、工具数和配置异常摘要
对话页 /chat/<scenario_id>/ 输入问题、勾选已入库文档、查看结构化结果、引用片段、工具调用和审计入口
文档列表页 /documents/ 查看文档状态、错误信息、上传时间并手动触发入库
文档上传页 /documents/upload/ 选择场景并上传 .txt.md.pdf.docx 文件
审计列表页 /audit/ 查看执行摘要并按场景筛选
审计详情页 /audit/<log_id>/ 查看输入、最终回答、结构化输出、引用、工具调用、原始输出和错误信息

计划启动方式

本地启动:

pip install -r requirements.txt
python manage.py migrate
python manage.py runserver

Docker 启动:

docker compose up --build

当前文档目标已统一为完整 V1 闭环:真实 Chroma RAG、OpenAI 兼容 LLM、OpenAI 兼容 Embedding、工具注册和审计日志。开发阶段可以用测试桩验证页面和边界但不作为 V1 验收结果。

推荐首次启动步骤:

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

环境变量

项目当前通过 os.environ 读取配置,核心变量如下:

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
UPLOAD_ROOT=data/uploads
CHROMA_PATH=data/chroma

说明:

  • EMBEDDING_API_KEY 为空时,代码会自动复用 LLM_API_KEY
  • EMBEDDING_BASE_URL 为空时,代码会自动复用 LLM_BASE_URL
  • .env.example 只作为模板,不应填写真实密钥并提交到仓库。
  • 当前代码会在 Django settings 初始化时自动加载根目录 .env,本地 python manage.py runserverpytest 和 Docker Compose 可以复用同一套配置。
  • Docker Compose 当前在 docker-compose.yml 中通过 env_file 读取 .env

常见做法:

  • 本地开发:复制 .env.example.env,填入真实参数后运行。
  • Docker 演示:确认 .env 已配置后,再执行 docker compose up --build

测试与验证

当前项目已经补有较完整的模块级测试,覆盖:

  • 场景配置读取、非法配置容错和首页展示。
  • 对话提交、文档范围传递、结构化结果展示。
  • 文档上传、文本抽取、入库成功与失败提示。
  • 审计日志落库、筛选、原始输出展示和 API Key 脱敏。
  • Agent Core 的 Prompt 编排、结构化解析、RAG fallback 检索。
  • Tool Registry 和内置工具行为。
  • LLM / Embedding Provider 的配置与请求构造。

常用验证命令:

pytest
python manage.py check
docker compose config

说明:

  • 测试环境默认通过 tests/conftest.py 固定 LLM_PROVIDER=mock,避免回归测试误走真实网络请求。
  • 当前本地 .env 可能包含真实模型配置,但不会影响自动化测试稳定性。

文档入口

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