# Siemens PDF 场景设计 Spec - 日期:2026-06-15 - 状态:已确认,进入实现。 ## 1. 目标 基于 `datasets/siemens-pdfs/`(17 个西门子医疗 CT 中文 PDF),跑通完整三步流水线: ``` dataset_build(PDF→题库)→ offline smoke 评估 → online 评估 ``` 完全镜像现有 `sample-pdf-*` 模式(方案 A),不改动任何现有文件。 ## 2. 参数决策 | 项目 | 值 | |---|---| | 输入 PDF | `datasets/siemens-pdfs/*.pdf`(17 个) | | failure_mode | `skip`(单个文档解析失败不中断整批) | | max_questions_per_document | 10(共 ~170 题) | | max_source_chunks_per_question | 3 | | generation model | `.env` 的 `DATASET_GENERATOR_MODEL`(qwen3.6-plus) | | judge model | `.env` 的 `RAGAS_JUDGE_MODEL`(deepseek-v4-flash) | | embedding model | `.env` 的 `RAGAS_EMBEDDING_MODEL`(text-embedding-v3) | | online answer model | `.env` 的 `RAGAS_JUDGE_MODEL` | | metrics | faithfulness / answer_relevancy / context_recall / context_precision | ## 3. 新增文件(4 个) ``` scenarios/siemens_build/siemens-pdf-build.yaml scenarios/offline/siemens-pdf-offline-smoke.yaml scenarios/online/siemens-pdf-question-bank-online.yaml apps/siemens_pdf_qa/__init__.py apps/siemens_pdf_qa/adapter.py ``` 加上辅助脚本: ``` scripts/build_siemens_offline_smoke.py ← 从 build 产物生成 offline smoke CSV ``` ## 4. 运行顺序 ``` # 步骤 1:dataset build(PDF → 题库草稿 + source_chunks.jsonl) python main.py --dataset-build-config scenarios/siemens_build/siemens-pdf-build.yaml # 步骤 2:生成 offline smoke 数据集(一次性脚本,build 跑完后执行) python scripts/build_siemens_offline_smoke.py # 步骤 3:offline 评估(用 source chunks 作为 contexts,ground_truth 作为 answer) python main.py --scenario scenarios/offline/siemens-pdf-offline-smoke.yaml # 步骤 4:online 评估(实时调用 LLM 生成 answer,再评分) python main.py --scenario scenarios/online/siemens-pdf-question-bank-online.yaml ```