Files
DEMO-AGENT/README.md

124 lines
4.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# DEMO-AGENT V2
DEMO-AGENT V2 是一个面向体外诊断试剂注册资料准备与审核的 Django 工作台。系统把资料上传、文件目录汇总、法规核查、知识库检索、风险提示、整改复核、申报表自动填充和第 1 章监管信息材料包生成组织到同一个可追溯的审核流程中。
当前 `master` 已与 `V2` 内容对齐,是项目主线。
## 核心能力
| 能力 | 说明 |
| --- | --- |
| 审核工作台 | 登录后进入首页,查看对话、附件、知识库、批次和处理状态 |
| 对话式工作流 | 在 `/chat/` 中围绕当前对话上传资料、触发汇总、法规核查和生成任务 |
| 文件汇总 | 读取 PDF、Word、Excel、PowerPoint、压缩包等资料生成目录、页数、类型和导出结果 |
| NMPA 法规核查 | 基于规则、文本抽取、RAG 检索和 LLM 复核生成问题、风险和整改建议 |
| 知识库管理 | 上传管理资料、重建索引、检索引用片段,并过滤已停用或删除文档 |
| 申报表填充 | 从说明书和资料中抽取关键字段,生成预填申报表和追溯结果 |
| 第 1 章监管信息材料包 | 生成 CH1.2、CH1.4、CH1.5、CH1.11 等监管信息文件和 zip 产物 |
| 飞书通知与问答 | 支持企业自建应用消息通知,并预留飞书问答模拟命令 |
## 页面入口
| 页面 | 路径 |
| --- | --- |
| 登录页 | `http://127.0.0.1:8000/login/` |
| 首页 | `http://127.0.0.1:8000/` |
| 审核智能体 | `http://127.0.0.1:8000/chat/` |
| 知识库管理 | `http://127.0.0.1:8000/knowledge-base/` |
| 附件管理 | `http://127.0.0.1:8000/attachments/` |
| 管理后台 | `http://127.0.0.1:8000/admin/` |
## 项目结构
```text
config/ Django 配置和总路由
review_agent/ 核心业务应用
application_form_fill/ 申报表自动填充
file_summary/ 文件汇总、附件和导出
regulatory_review/ 法规核查与整改复核
regulatory_info_package/ 第 1 章监管信息材料包生成
notifications/ 飞书通知和消息适配
feishu_questions/ 飞书问答预留能力
static/ 前端脚本和样式
templates/ Django 模板
docs/ 需求、设计、开发计划和原始材料
tests/ pytest 测试
```
## 本地运行
```bash
python -m venv .venv
.venv\Scripts\activate
pip install -r requirements.txt
python manage.py migrate
python manage.py createsuperuser
python manage.py runserver
```
项目会自动读取仓库根目录 `.env`。当前仓库保留了 V2 的 `.env` 文件;后续如果要面向外部协作,请先确认其中没有不应公开的密钥。
## 常用环境变量
| 变量名 | 用途 |
| --- | --- |
| `DJANGO_SECRET_KEY` | Django secret key |
| `DJANGO_DEBUG` | 是否开启调试模式 |
| `DJANGO_ALLOWED_HOSTS` | 允许访问的主机列表 |
| `LLM_PROVIDER` | LLM provider 选择 |
| `LLM_API_KEY` | LLM API key |
| `LLM_BASE_URL` | OpenAI 兼容 LLM API 地址 |
| `LLM_MODEL` | 默认对话/抽取模型 |
| `SILICONFLOW_API_KEY` | SiliconFlow API key默认可复用 `LLM_API_KEY` |
| `SILICONFLOW_EMBEDDING_MODEL` | 法规 RAG 使用的 embedding 模型 |
| `SILICONFLOW_EMBEDDING_DIMENSIONS` | embedding 维度 |
| `REGULATORY_RAG_CHROMA_PATH` | 法规 RAG Chroma 存储路径 |
| `REGULATORY_RAG_COLLECTION` | 法规 RAG collection 名称 |
| `FEISHU_NOTIFY_ENABLED` | 是否启用真实飞书通知 |
| `FEISHU_APP_ID` | 飞书应用 App ID |
| `FEISHU_APP_SECRET` | 飞书应用 App Secret |
| `FEISHU_DEFAULT_USER_OPEN_ID` | 默认飞书接收人 open_id |
| `PUBLIC_BASE_URL` | 飞书消息中的系统入口根地址 |
## 外部依赖
Python 依赖见 `requirements.txt`,主要包括:
- Django
- PyYAML
- httpx
- chromadb
- pypdf
- python-docx
- python-pptx
- openpyxl / xlrd
- py7zr
- playwright
文件汇总支持 `.7z``.rar` 时,运行环境还需要可用的 `7z`/`p7zip` 命令。LibreOffice 不是必需依赖,仅作为后续增强老格式文档处理能力的可选项。
## 常用命令
```bash
python manage.py check
pytest
pytest tests -k regulatory_info_package
pytest tests/test_feishu_*.py
python manage.py send_test_feishu_notification --username owner
python manage.py feishu_question_simulate --username owner "查最新法规核查"
```
已知情况:当前全量 `pytest` 中仍有少量历史测试与当前页面/LLM 调用策略不完全一致;监管信息材料包主链路测试已通过。
## 文档入口
- [产品说明](PRODUCT.md)
- [Agent 协作约定](AGENTS.md)
- [docs 文档索引](docs/README.md)
- [需求分析](docs/1.需求分析)
- [功能设计](docs/2.功能设计)
- [数据库设计](docs/3.数据库设计)
- [详细设计](docs/4.详细设计)
- [开发计划](docs/5.开发计划)