Skip to content

一个医学报告自动化生成工具,自动把 多 Sheet Excel 原始实验数据 → 结构化关键字段 → LLM 生成段落 → Word 报告

License

Notifications You must be signed in to change notification settings

prograper/report_gen

Repository files navigation

Pharma Report Pipeline

自动把 多 Sheet Excel 原始实验数据 → 结构化关键字段 → LLM 生成段落 → Word 报告

  • 每张 Sheet 独立 Prompt:不同实验/统计表都能随时增删
  • 抽取 / 生成 只各用一个 Generic Agent:核心 Python 永远不动
  • LLM 热切换:配置里写好 model_name / base_url / Key,代码 0 改
  • 结果落 Word:使用占位符 {{INTRO}} {{METHOD}} … 自动替换

📂 目录结构

pharma_report/
├─ main.py
├─ requirements.txt
├─ agents/
│  ├─ registry.py
│  ├─ extract_generic.py
│  └─ generate/
│      └─ base.py
├─ llm_client.py
├─ configs/
│  ├─ sheet_tasks.yaml
│  ├─ paragraph_tasks.yaml
│  ├─ doc_placeholders.yaml
│  └─ llm.yaml
├─ prompts/              # Jinja2 Prompt 模板
└─ templates/
   └─ report_template.docx

⚡ 快速上手

1. 安装

python -m venv venv && source venv/bin/activate  # 可选
pip install -r requirements.txt

2. 配置 LLM

三选一(推荐①或②):

方式 步骤
① 写入 configs/llm.yaml 在对应 provider 段写 key_value: YOUR_KEY
.env + python-dotenv .env 内容:OPENAI_API_KEY=sk-xxx
③ 系统环境变量 Windows setx, Linux/macOS export

3. 运行

python main.py ./input/test_input.xlsx -o ./output/report.docx

🗂️ 配置文件

sheet_tasks.yaml

RawData_A:
  prompt: prompts/extract_pk_params.txt
  keys: { Cmax: number, Tmax: number }
  provider: openai

paragraph_tasks.yaml

IntroParagraph:
  keys: [Cmax, Tmax]
  prompt: prompts/gen_intro.txt
  provider: qwen

llm.yaml

openai:
  model_name: gpt-4o-mini
  base_url:   https://api.openai.com/v1
  key_env:    OPENAI_API_KEY

qwen:
  model_name: qwen2.5-32b-instruct
  base_url:   https://dashscope.aliyuncs.com/compatible-mode/v1
  key_value:  YOUR_QWEN_KEY

🛠️ 常见任务

任务 做法
新增 Sheet sheet_tasks.yaml 添配置 + 新 Prompt
新增段落 paragraph_tasks.yaml 添配置 + Word 占位符
切换模型 全局 LLM_PROVIDER=qwen 或 YAML provider:
加字段 / 改类型 只改 sheet_tasks.yaml -> keys
Prompt 调优 直接编辑 prompts/*.txt

🔒 部署要点

  • 密钥不入 Git:用 .env 或私有 llm.yaml
  • DockerENV LLM_PROVIDER=openai OPENAI_API_KEY=xxx
  • 多模型并发:不同进程分别 apply_provider(),互不覆盖

📝 License

Distributed under the Apache License 2.0.
See LICENSE for full license text.

About

一个医学报告自动化生成工具,自动把 多 Sheet Excel 原始实验数据 → 结构化关键字段 → LLM 生成段落 → Word 报告

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages