mcpField
F
fetch-meta-to-kb

fetch-meta-to-kb

github.com/tiangong-ai数据与数据库1135 次安装1 周前更新
代码仓库

关于 fetch-meta-to-kb

fetch-meta-to-kb 是用于增量获取 Crossref 期刊文章并写入数据库的技能,供维护期刊记录的工作流使用。它按 ISSN 查询并依据 DOI 去重,仅处理当前运行的统计与日志。

主要功能

  1. 01按起始日期增量获取文章
  2. 02从 journals_issn 读取期刊 ISSN
  3. 03按期刊名称筛选 Crossref 结果
  4. 04将文章字段写入 journals
  5. 05按 DOI 冲突跳过重复记录

适用场景

  1. 01将新期刊文章记录导入数据库
  2. 02按指定日期补充 Crossref 元数据

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/tiangong-ai/agent-skills --skill fetch-meta-to-kb

安装后在 Claude Code 中输入/fetch-meta-to-kb确认已加载。

详细介绍

将元数据抓取到知识库

核心目标

  • 从 Crossref 拉取指定 --from-date 之后的 journal-article 记录。
  • 从 journals_issn 读取 ISSN 种子行(journal、issn1)。
  • 将行插入 journals,并使用 ON CONFLICT (doi) DO NOTHING。
  • 确保实现与 fetch_meta_to_kb.py 保持一致。

运行工作流

  1. 设置数据库连接环境变量(用户管理的密钥以 KB_ 为前缀):
  • KB_DB_HOST
  • KB_DB_PORT
  • KB_DB_NAME
  • KB_DB_USER
  • KB_DB_PASSWORD
  • KB_LOG_DIR(必填,日志输出目录)
  1. 使用必填日期运行增量抓取:
python3 scripts/fetch_meta_to_kb.py --from-date 2024-05-01
  • 如果通过 exec 工具调用执行,请将超时设置为 1800 秒(30 分钟)。
  1. 检查以下位置的日志:
  • ${KB_LOG_DIR}/fetch-meta-to-kb-YYYYMMDD-HHMMSS.log(UTC 时间戳,每次运行生成一个文件)
  1. 严格根据本次运行的输出生成面向用户的摘要:
  • 优先使用 fetch_meta_to_kb.py 输出的 RUN_SUMMARY_JSON。
  • 如果 JSON 不可用,则仅解析本次运行的 ${KB_LOG_DIR}/fetch-meta-to-kb-YYYYMMDD-HHMMSS.log。
  • total_inserted 必须表示本次运行插入的行数(DOI 去重后),而不是表中的累计行数。

行为约定

  • 查询 Crossref 端点:https://api.crossref.org/journals/{issn}/works。
  • 使用 type:journal-article,from-pub-date:<from-date> 进行筛选。
  • 仅保留 container-title 与目标期刊标题相同的条目(不区分大小写)。
  • 使用游标继续分页,直到没有匹配条目为止。
  • 将以下字段存入 journals:title、doi、journal、authors、date、abstract(Crossref 没有摘要时可为空)。
  • 报告和公告指标必须仅使用本次运行的日志或摘要。
  • 不要通过数据库全表查询或时间窗口 SQL(例如 WHERE date >= ...)计算公告数量。

范围边界

  • 仅实现 Crossref 增量抓取并插入 journals。

脚本

  • scripts/fetch_meta_to_kb.py

评论

支持 Markdown