用途:把一批 PDF(或 DOCX、PPTX、HTML 等 MarkItDown 支持的格式)整理成结构化证据表,每篇论文一行、每个用户定义的问题一列,输出 CSV 或 Markdown 表格。适用于从多篇论文提取相同字段做对比表、构建综述数据提取表(样本量、设计、干预、结局、效应量、局限)、把文件夹中的 PDF 筛成可排序筛选的 CSV。它只处理已有文档并产出表格,不做检索或叙述性综述。
主要能力:所有输入先经 Microsoft MarkItDown 归一化为 Markdown 再抽取列。列由“标签+抽取问题”定义,可用 --columns 传简单标签列表,或重复 --column 传“标签:问题”规格,两者可组合,重复标签会被拒绝。
后端:heuristic(默认、离线、免费)按字面关键词重叠对 Markdown 句子打分并输出最佳证据片段,确定性、可复现,无关键词重叠时单元格为空;注意其匹配是词法的,泛化标签如“Sample size”常匹配不到“we enrolled 240 participants”,此时应写成“标签:问题”并使用论文实际用词。llm(可选、更精确)把转换后 Markdown 的前 24,000 字符与所有列问题发给 OpenAI 兼容端点,论文未提及时返回 N/A;设置 OPENROUTER_API_KEY 时请求发往 OpenRouter,否则用 OPENAI_API_KEY 发往 OPENAI_BASE_URL(或 OpenAI 默认),模型 ID 遵循 ALTERLAB_MODEL 约定,可用 --model 覆盖。LLM 答案需对照原文抽查。
用法示例:uv run python "$SCRIPT" papers/*.pdf --column "Sample size:how many participants were enrolled" --column "Main finding:primary result reported" --format md;加 --format csv -o evidence.csv 可写文件。
输出:--format md 为 GitHub 风格 Markdown 表(单元格内竖线转义),--format csv 用 csv.DictWriter;-o FILE 以 UTF-8 写盘,否则输出到 stdout。第一列固定为 Source(输入文件名),转换失败的文件生成 ERROR 行以保持对齐。
限制:不负责检索论文、单篇深读、单纯格式转换、无本地文件的实验数据或 Zotero 管理;heuristic 后端为词法匹配,llm 后端需相应 API 密钥且仅读取前 24,000 字符。