论文智能引用
触发条件
- 用户提供一段文字要求推荐引用文献
- 用户正文中包含
[CITE]标记 - 用户要求生成 BibTeX / 参考文献
工作流程
Step 1: 解析输入
情况 A — 用户直接给出一段文字:整段作为语义检索 query
情况 B — 正文中包含 [CITE]:提取每个 [CITE] 前后各 1-2 句作为独立 query
对每个 query:
- 提炼核心学术概念(必须翻译为英文),去除口语化表达
- 生成 2-3 个检索变体(同义词替换、缩写展开)
示例:用户写 "大模型的幻觉问题很严重 [CITE]" → query 变体:
"hallucination in large language models","LLM factual accuracy","mitigating hallucinations in generative AI"
Step 2: 语义检索
主检索 — Semantic Scholar API(语义相关性排序,非关键词匹配):
https://api.semanticscholar.org/graph/v1/paper/search?query={ENCODED_QUERY}&limit=20&fields=title,authors,year,citationCount,venue,externalIds,abstract,journal,publicationTypes,referenceCount,influentialCitationCount,tldr
使用 Shell 工具执行 curl 请求,对每个检索变体分别搜索,合并去重(按 paperId)。
补充检索 — OpenAlex API(覆盖更多期刊论文):
https://api.openalex.org/works?search={ENCODED_QUERY}&per_page=20&select=id,doi,title,authorships,publication_year,cited_by_count,primary_location,type,biblio
仅当 Semantic Scholar 返回结果不足 10 篇时启用。
检索要求:
- 每个 query 至少获得 20 篇候选
- 如果用户文本是中文,query 必须翻译为英文再检索
- 如果领域明确,可在 query 中加入领域限定词
Step 3: 质量评分
对每篇候选论文计算质量分(满分 100),覆盖中文与国际两套评价体系:
| 维度 | 评分规则 | 满分 |
|---|---|---|
| 核心索引等级 | CSSCI / CCF-A / SSCI Q1 / SCI Q1 = 30 | 30 |
| 北核(PKU) / CCF-B / SSCI Q2 / SCI Q2 = 20 | ||
| CCF-C / SSCI Q3 / SCI Q3 / ESCI = 10 | ||
| 学科认可度 | 学科顶刊(见 venue-rankings.md 标★) = 20 | 20 |
| 学科重要期刊/会议 = 12 | ||
| 相关领域期刊 = 5 | ||
| 被引量 | min(log₂(citations+1) × 2, 15) | 15 |
| 发表形式 | 正式发表=10, workshop/论坛=5, arXiv/预印本=0 | 10 |
| 影响因子 | min(IF × 1.5, 10),仅适用于有 IF 的期刊 | 10 |
| 时效性 | 5年内=10, 5-10年=5, >10年且被引>500=8 | 10 |
| 语义匹配度 | Agent 判断与用户文本的语义相关性:高=5, 中=3, 低=0 | 5 |
注意:核心索引等级取最高命中项计分,不叠加。如某期刊同时是 CSSCI + SSCI Q2,取 CSSCI 的 30 分。
评分执行规则:
- 中文期刊等级查询:先查本 Skill 目录下的 venue-rankings.md,用期刊/会议名称匹配。未命中则使用 WebSearch 搜索
"{期刊名}" CSSCI 北核 核心期刊。 - 国际期刊/会议查询:先查 venue-rankings.md。未命中则使用 WebSearch 搜索
"{venue_name}" SCI SSCI JCR impact factor quartile。 - CCF 等级查询(仅计算机相关 venue):查 venue-rankings.md 中 CCF 列表,或 WebSearch 搜索
"{venue_name}" CCF ranking。 - arXiv 处理:
- 如果
publicationTypes仅含"preprint"或 venue 为空 → 标记为预印本,总分 -15 - 如果同一论文既有预印本又有正式发表版 → 只保留正式版
- 如果
- 去重:按标题相似度 >90% 去重,保留质量分更高的版本
Step 4: 筛选与排序
- 按总分降序排列
- 质量红线:默认只推荐总分 ≥ 35 的论文(即至少有一项硬指标:CSSCI / 北核 / CCF-B 以上 / SSCI Q2 以上 / SCI Q2 以上)
- 取 top-N(默认 N=5,用户可指定)
- 经典论文(被引 >500)可突破时效限制
Step 5: 生成 BibTeX
优先方式 — 通过 DOI 获取官方 BibTeX:
curl -sLH "Accept: application/x-bibtex" "https://doi.org/{DOI}"
备选方式 — 手动构造(无 DOI 时):
会议论文:
@inproceedings{Key,
author = {Author1 and Author2 and Author3},
title = {Full Paper Title},
booktitle = {Proceedings of the Conference Name (Abbr)},
year = {2024},
pages = {1--10},
doi = {10.xxxx/xxxxx}
}
期刊论文:
@article{Key,
author = {Author1 and Author2},
title = {Full Paper Title},
journal = {Journal Name},
volume = {42},
number = {3},
pages = {100--115},
year = {2024},
doi = {10.xxxx/xxxxx}
}
BibTeX Key 命名规则:第一作者姓 + 年份 + 标题第一个实词小写
示例:
wang2023attention,devlin2019bert
Step 6: 输出报告
对每篇推荐论文输出:
### [序号] 论文标题
- **作者**: 作者列表(前三位 + et al.)
- **发表于**: 会议/期刊全称 (缩写), 年份
- **质量评分**: XX/100
- 索引: CSSCI (30) | 学科: 顶刊★ (20) | 被引: 1234 (12) | IF: 5.2 (10) | 正式发表 (10) | 近5年 (10) | 语义匹配: 高 (5)
- **推荐理由**: 2-3 句,说明该论文与用户文本的语义关联,以及其学术贡献
- **BibTeX**:
(BibTeX 代码块)
报告末尾:
- 汇总所有 BibTeX 到一个完整代码块(方便直接复制到 .bib 文件)
- 如果有论文因质量不达标被排除,简要说明排除了多少篇及原因
Step 7: 回填引用(仅当原文含 [CITE])
将原文中的 [CITE] 替换为 \cite{key1, key2} 格式,输出修改后的完整正文段落。
如果一个 [CITE] 位置语义上需要多篇引用,最多填入 3 个 key。
特殊指令
用户可选参数
用户可在请求中附加以下指令(自然语言即可):
- 数量:"推荐 10 篇" → N=10
- 年份限制:"只要 2020 年以后的" → 过滤条件
- 领域限定:"计算机视觉方向" / "设计学方向" → query 加领域词
- 放宽限制:"arXiv 的也可以" → 取消 arXiv 惩罚
- 指定格式:"要 GB/T 7714 格式" → 除 BibTeX 外额外输出 GB/T 7714 格式引用
GB/T 7714 格式(按需)
当用户要求时,额外输出此格式:
[序号] 作者1, 作者2, 作者3, 等. 论文标题[J]. 期刊名, 年份, 卷(期): 起始页-终止页.
[序号] 作者1, 作者2, 作者3, 等. 论文标题[C]//会议名. 出版地: 出版社, 年份: 起始页-终止页.
API 限流提醒
- Semantic Scholar: 100 请求/5分钟(无 API key)、1 请求/秒
- OpenAlex: 无硬限制,但建议间隔 200ms
- CrossRef (DOI): 无硬限制,建议包含
mailto参数提速
如遇限流,在请求间添加 1-2 秒延迟。