SuperAPI AI 工具集

pdf-bib-import

办公与效率

查看项目

更新于 10-16 11:12

技能介绍

用途

该技能面向“把一批 PDF 论文的题录信息汇总进飞书多维表格”的场景。它覆盖从 PDF 文件夹批量提取题录信息,到在飞书 Base 中建表、最后批量写入记录的完整流程。触发时机为用户需要把一批 PDF 论文的书目信息、题录信息汇总到飞书 Base / 多维表格时,关键词包括 PDF、论文、题录、书目、批量导入、飞书多维表格。

核心原则

资料明确规定了两条必须遵守的原则:

  • 成本控制:数据提取必须用脚本完成,禁止用 AI 逐篇读取 PDF——每次 AI 读取都消耗大量 token。
  • 正确流程:写脚本提取 → 人工/脚本校对 → 脚本批量写入飞书,AI 只负责生成脚本和配置飞书结构。

成本控制提示中进一步说明:不要用 AI 逐篇读取 PDF,49 篇 PDF 用 AI 提取约 $10,用脚本约 $0;遇到 pdftotext 无法提取的字段,集中人工补全 JSON,再统一导入。

主要能力

  1. 脚本提取 PDF 题录:在 /tmp 下生成 extract_bib.py,利用 pdftotext(/opt/homebrew/bin/pdftotext)与 pdfinfo 批量提取,输出 bib_data.json。字段包括论文题目、作者、发表年份、期刊名称、卷期页码、DOI、摘要,并保留 _raw_text_preview(供人工核查)和 _filename。运行方式:python3 /tmp/extract_bib.py "/path/to/pdf_folder"。
  2. 校对 JSON:打开 /tmp/bib_data.json 检查并补全各字段,删除 _raw_text_preview 和 _filename。扫描件文字为空需手动填写;元数据为空时需从 _raw_text_preview 字段中判断并手动补全。
  3. 创建飞书 Base 结构:前置条件为先阅读 ../lark-shared/SKILL.md 了解认证规则。包括创建 Base、获取默认表并重命名、配置字段(先重命名默认“文本”字段,再删除多余默认字段,最后创建所需字段)。所用命令涉及 base +base-create、+table-list、+table-update、+field-list、+field-update、+field-delete、+field-create 等。
  4. 脚本批量写入记录:生成 /tmp/import_to_lark.sh 与 /tmp/import_to_lark.py,从 /tmp/bib_data.json 读取记录并逐条写入,使用 base +record-upsert。脚本会去除空值字段,避免写入空字符串覆盖,并在每条之间设置 time.sleep(0.5) 以避免写入冲突。

使用方式

整体流程分为三步:

  • Step 1:脚本提取 PDF 题录。生成提取脚本并运行,然后校对 /tmp/bib_data.json。
  • Step 2:创建飞书 Base 结构。创建 Base 并记录 base_token,获取默认表并重命名,配置字段。配置字段时先重命名默认文本字段,再删除多余默认字段(日期、附件、单选),最后串行创建其余字段(作者、发表年份、期刊名称、卷期页码、DOI、摘要),每条之间 sleep 0.3。
  • Step 3:脚本批量写入记录。运行 python3 /tmp/import_to_lark.py <BASE_TOKEN> <TABLE_ID> /tmp/bib_data.json。

注意事项:lark-cli --json @file 报路径错误时,必须 cd /tmp 后再执行并使用相对路径 @_rec.json。

适用场景

适用于用户需要把一批 PDF 论文的书目信息、题录信息汇总到飞书 Base / 多维表格的场景,例如将某个文件夹中的多篇 PDF 论文的标题、作者、年份、期刊、卷期页码、DOI、摘要汇总为一张表。

限制与常见问题

  • pdftotext 提取为空(扫描件):需手动填写 bib_data.json,或用 OCR 工具。
  • PDF 元数据乱码 / 错误:忽略 meta,从 _raw_text_preview 手工提取。
  • lark-cli --json @file 报路径错误:必须 cd /tmp 后再执行,使用相对路径 @_rec.json。
  • 写入冲突 1254291:增大 time.sleep() 到 1 秒。
  • 字段不存在 1254045:检查字段名拼写,与 +field-list 返回结果一致。
  • 环境依赖:脚本使用了 /opt/homebrew/bin/pdftotext 与 /opt/homebrew/bin/pdfinfo;创建飞书结构前需先阅读 ../lark-shared/SKILL.md 了解认证规则。

关于定价、支持平台范围、并发上限等其他细节,资料暂未提供。