论文搜索 API
从多个学术数据源(Google Scholar、PubMed、ArXiv、万方)搜索论文,支持 AI 驱动的论文深度分析,以及基于自然语言的智能 Agent 搜索。
/v1/paper-search/*Google Scholar 搜索
/v1/paper-search/google通过 ScrapingDog API 搜索 Google Scholar。返回引用次数、PDF 链接和 Google Scholar 特有的资源链接。每次请求最多 20 条结果。
参数
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
query | string | 必填 | 搜索关键词(1-300 字符) |
max_results | integer | 可选 (默认: 20) | 结果数量(1-20) |
offset | integer | 可选 (默认: 0) | 分页偏移量 |
date_from | string | 可选 | 起始年份,如 '2020' |
date_to | string | 可选 | 结束年份,如 '2025' |
author | string | 可选 | 作者姓名过滤 |
journal | string | 可选 | 期刊名称过滤 |
language | string | 可选 | 'english'、'中文' 或留空 |
万方搜索
/v1/paper-search/wanfang搜索万方数据的中文学术期刊、学位论文和会议论文。返回关键词、卷号、页码和来源数据库信息。
参数
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
query | string | 必填 | 搜索关键词(1-300 字符) |
max_results | integer | 可选 (默认: 50) | 结果数量(1-100) |
date_from | string | 可选 | 起始年份过滤 |
date_to | string | 可选 | 结束年份过滤 |
PubMed 搜索
/v1/paper-search/pubmed通过 NCBI E-utilities 搜索 PubMed/MEDLINE。返回 MeSH 词条、PMC ID、期刊详情和出版类型,适用于生物医学文献。
参数
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
query | string | 必填 | 搜索关键词,支持 PubMed 查询语法(1-300 字符) |
max_results | integer | 可选 (默认: 50) | 结果数量(1-200) |
offset | integer | 可选 (默认: 0) | 分页偏移量 |
date_from | string | 可选 | 起始日期,'YYYY' 或 'YYYYMMDD' |
date_to | string | 可选 | 结束日期,'YYYY' 或 'YYYYMMDD' |
author | string | 可选 | 作者姓名过滤 |
journal | string | 可选 | 期刊名称过滤 |
sort | string | 可选 | 'relevance'、'date'、'pubdate'、'fauth'、'jour' |
ArXiv 搜索
/v1/paper-search/arxiv通过 OAI API 搜索 ArXiv 预印本。返回分类、发表/更新日期、评论、期刊引用和 PDF 链接,涵盖物理、数学、计算机科学和生物学论文。
参数
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
query | string | 必填 | 搜索关键词,支持 ArXiv 语法如 'cat:cs.AI'(1-300 字符) |
max_results | integer | 可选 (默认: 50) | 结果数量(1-100) |
offset | integer | 可选 (默认: 0) | 分页偏移量 |
date_from | string | 可选 | 起始日期,'YYYY' 或 'YYYYMMDD' |
date_to | string | 可选 | 结束日期,'YYYY' 或 'YYYYMMDD' |
author | string | 可选 | 作者姓名过滤(ArXiv au: 查询) |
journal | string | 可选 | 期刊过滤(ArXiv jr: 查询) |
sort | string | 可选 | 'relevance'、'lastUpdatedDate'、'submittedDate' |
论文分析
/v1/paper-search/analyzeAI 驱动的单篇论文结构化分析。输出研究目标、方法论、主要发现和研究限制。内容按优先级从 PDF、网页或摘要中提取。
参数
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
title | string | 必填 | 论文标题(1-1024 字符) |
authors | string[] | 必填 | 作者姓名列表 |
abstract | string | 可选 | 论文摘要(最多 10000 字符) |
doi | string | 可选 | DOI 标识符 |
source_url | string | 可选 | 论文页面 URL |
pdf_url | string | 可选 | PDF 直链(最高优先级) |
language | string | 可选 (默认: 中文) | 输出语言:'中文' 或 'en' |
abstract、source_url、pdf_url 至少需要提供其中一个。
响应
{
"success": true,
"message": "Paper analysis completed successfully",
"paper_title": "Attention Is All You Need",
"analysis": {
"研究目标": "提出一种新的简单网络架构 Transformer...",
"方法论": "设计了多头自注意力机制和位置编码...",
"主要发现": "Transformer 在机器翻译任务上取得了 SOTA 结果...",
"研究限制": "主要在机器翻译任务上验证..."
},
"usage": {
"tokens_usage": {
"gpt-4": [
[
1500,
800,
2300
]
]
}
},
"content_sources": [
"pdf"
]
}Agent 搜索(SSE 流式)
/v1/paper-search/agent_search基于多 Agent 的智能论文搜索,支持自然语言查询。自动规划搜索策略、跨数据库迭代搜索、反思进度并过滤结果。返回 SSE 流式事件。最多 50 篇论文,最多 3 轮搜索迭代。
参数
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
query | string | 必填 | 中文或英文自然语言搜索查询(1-500 字符) |
language | string | 可选 (默认: 中文) | 响应语言:'中文' 或 'English' |
sources | string[] | 可选 | 搜索数据库:'google'、'wanfang'、'arxiv'、'pubmed'。null = 全部 |
SSE 事件类型
start — 搜索已启动
node_start / node_complete — Agent 阶段更新
reflection — 进度分析
result_data — 最终论文结果
complete — 搜索完成
error — 发生错误
响应字段说明
/v1/paper-search/google响应格式: JSON| 字段 | 类型 | 说明 |
|---|---|---|
success | boolean | 检索是否成功。 |
message | string | 检索结果摘要。 |
query | string | 实际执行的检索词。 |
results.total | integer | 本次返回的论文数量。 |
results.source | string | 论文来源平台。 |
data | Paper[] | 标准化论文结果列表。 |
data[].source | string | 来源,如 Google、Wanfang、PubMed、ArXiv。 |
data[].title | string | 论文标题。 |
data[].authors | string[] | 作者姓名列表。 |
data[].abstract | string | null | 摘要或检索结果片段。 |
data[].publication_year | integer | string | null | 发表年份。 |
data[].publication_journal | string | null | 期刊或会议名称。 |
data[].id | string | null | 来源平台中的论文标识。 |
data[].doi | string | null | 数字对象唯一标识符。 |
data[].source_url | string | null | 论文来源页面。 |
data[].pdf_url | string | null | 可用时的 PDF 直链。 |
data[].categories | string[] | 主题分类或关键词。 |
data[].cited_by_count | integer | null | 引用次数。 |
data[].cited_by_link | string | null | 引用该论文的文献列表链接。 |
data[].mesh_terms | string[] | PubMed 的 MeSH 主题词。 |
data[].primary_category | string | null | ArXiv 主分类。 |
data[].published_date | string | null | ArXiv 完整发表日期。 |
data[].updated_date | string | null | ArXiv 最近更新日期。 |
data[].pmc_id | string | null | PubMed Central 标识。 |
data[].publication_types | string[] | PubMed 文献类型。 |
data[].keywords | string[] | 关键词列表。 |
data[].volume / issue / pages | string | null | 卷、期和页码。 |
不同来源无法提供的字段会返回 null、空数组或被省略。
/v1/paper-search/wanfang响应格式: JSON| 字段 | 类型 | 说明 |
|---|---|---|
success | boolean | 检索是否成功。 |
message | string | 检索结果摘要。 |
query | string | 实际执行的检索词。 |
results.total | integer | 本次返回的论文数量。 |
results.source | string | 论文来源平台。 |
data | Paper[] | 标准化论文结果列表。 |
data[].source | string | 来源,如 Google、Wanfang、PubMed、ArXiv。 |
data[].title | string | 论文标题。 |
data[].authors | string[] | 作者姓名列表。 |
data[].abstract | string | null | 摘要或检索结果片段。 |
data[].publication_year | integer | string | null | 发表年份。 |
data[].publication_journal | string | null | 期刊或会议名称。 |
data[].id | string | null | 来源平台中的论文标识。 |
data[].doi | string | null | 数字对象唯一标识符。 |
data[].source_url | string | null | 论文来源页面。 |
data[].pdf_url | string | null | 可用时的 PDF 直链。 |
data[].categories | string[] | 主题分类或关键词。 |
data[].cited_by_count | integer | null | 引用次数。 |
data[].cited_by_link | string | null | 引用该论文的文献列表链接。 |
data[].mesh_terms | string[] | PubMed 的 MeSH 主题词。 |
data[].primary_category | string | null | ArXiv 主分类。 |
data[].published_date | string | null | ArXiv 完整发表日期。 |
data[].updated_date | string | null | ArXiv 最近更新日期。 |
data[].pmc_id | string | null | PubMed Central 标识。 |
data[].publication_types | string[] | PubMed 文献类型。 |
data[].keywords | string[] | 关键词列表。 |
data[].volume / issue / pages | string | null | 卷、期和页码。 |
不同来源无法提供的字段会返回 null、空数组或被省略。
/v1/paper-search/pubmed响应格式: JSON| 字段 | 类型 | 说明 |
|---|---|---|
success | boolean | 检索是否成功。 |
message | string | 检索结果摘要。 |
query | string | 实际执行的检索词。 |
results.total | integer | 本次返回的论文数量。 |
results.source | string | 论文来源平台。 |
data | Paper[] | 标准化论文结果列表。 |
data[].source | string | 来源,如 Google、Wanfang、PubMed、ArXiv。 |
data[].title | string | 论文标题。 |
data[].authors | string[] | 作者姓名列表。 |
data[].abstract | string | null | 摘要或检索结果片段。 |
data[].publication_year | integer | string | null | 发表年份。 |
data[].publication_journal | string | null | 期刊或会议名称。 |
data[].id | string | null | 来源平台中的论文标识。 |
data[].doi | string | null | 数字对象唯一标识符。 |
data[].source_url | string | null | 论文来源页面。 |
data[].pdf_url | string | null | 可用时的 PDF 直链。 |
data[].categories | string[] | 主题分类或关键词。 |
data[].cited_by_count | integer | null | 引用次数。 |
data[].cited_by_link | string | null | 引用该论文的文献列表链接。 |
data[].mesh_terms | string[] | PubMed 的 MeSH 主题词。 |
data[].primary_category | string | null | ArXiv 主分类。 |
data[].published_date | string | null | ArXiv 完整发表日期。 |
data[].updated_date | string | null | ArXiv 最近更新日期。 |
data[].pmc_id | string | null | PubMed Central 标识。 |
data[].publication_types | string[] | PubMed 文献类型。 |
data[].keywords | string[] | 关键词列表。 |
data[].volume / issue / pages | string | null | 卷、期和页码。 |
不同来源无法提供的字段会返回 null、空数组或被省略。
/v1/paper-search/arxiv响应格式: JSON| 字段 | 类型 | 说明 |
|---|---|---|
success | boolean | 检索是否成功。 |
message | string | 检索结果摘要。 |
query | string | 实际执行的检索词。 |
results.total | integer | 本次返回的论文数量。 |
results.source | string | 论文来源平台。 |
data | Paper[] | 标准化论文结果列表。 |
data[].source | string | 来源,如 Google、Wanfang、PubMed、ArXiv。 |
data[].title | string | 论文标题。 |
data[].authors | string[] | 作者姓名列表。 |
data[].abstract | string | null | 摘要或检索结果片段。 |
data[].publication_year | integer | string | null | 发表年份。 |
data[].publication_journal | string | null | 期刊或会议名称。 |
data[].id | string | null | 来源平台中的论文标识。 |
data[].doi | string | null | 数字对象唯一标识符。 |
data[].source_url | string | null | 论文来源页面。 |
data[].pdf_url | string | null | 可用时的 PDF 直链。 |
data[].categories | string[] | 主题分类或关键词。 |
data[].cited_by_count | integer | null | 引用次数。 |
data[].cited_by_link | string | null | 引用该论文的文献列表链接。 |
data[].mesh_terms | string[] | PubMed 的 MeSH 主题词。 |
data[].primary_category | string | null | ArXiv 主分类。 |
data[].published_date | string | null | ArXiv 完整发表日期。 |
data[].updated_date | string | null | ArXiv 最近更新日期。 |
data[].pmc_id | string | null | PubMed Central 标识。 |
data[].publication_types | string[] | PubMed 文献类型。 |
data[].keywords | string[] | 关键词列表。 |
data[].volume / issue / pages | string | null | 卷、期和页码。 |
不同来源无法提供的字段会返回 null、空数组或被省略。
/v1/paper-search/analyze响应格式: JSON| 字段 | 类型 | 说明 |
|---|---|---|
success | boolean | 分析是否成功。 |
message | string | 分析结果摘要。 |
paper_title | string | 被分析的论文标题。 |
analysis | object | 结构化分析正文,键名随输出语言变化。 |
analysis.研究目标 | string | 论文的研究目标或研究问题。 |
analysis.方法论 | string | 研究设计、方法和数据。 |
analysis.主要发现 | string | 主要结果与结论。 |
analysis.研究限制 | string | 研究限制及适用边界。 |
usage.tokens_usage | object | 按模型记录的 [输入、输出、总计] token 数组。 |
content_sources | string[] | 分析实际使用的内容来源,如 pdf、abstract。 |
/v1/paper-search/agent_search响应格式: SSE| 字段 | 类型 | 说明 |
|---|---|---|
event | string | SSE 事件名。 |
data.type | string | 事件类型:start、node_start、node_complete、progress、result_data、complete 或 error。 |
data.message | string | 当前阶段或错误的可读说明。 |
data.node | string | node_start/node_complete 对应的工作流节点名。 |
data.progress | number | 当前任务进度(若事件提供)。 |
data.data | object | array | result_data 事件携带的检索结果。 |
响应
{
"success": true,
"message": "Google Scholar search completed successfully",
"query": "deep learning",
"results": {
"total": 10,
"source": "Google Scholar"
},
"data": [
{
"source": "Google Scholar",
"title": "Deep Residual Learning for Image Recognition",
"authors": [
"K He",
"X Zhang",
"S Ren",
"J Sun"
],
"abstract": "Deeper neural networks are more difficult to train...",
"publication_year": "2016",
"publication_journal": "Proceedings of the IEEE conference on computer vision",
"source_url": "https://openaccess.thecvf.com/content_cvpr_2016/...",
"pdf_url": "https://openaccess.thecvf.com/.../pdf",
"doi": "",
"cited_by_count": 220000
}
]
}示例
import requests
API_KEY = "your_api_key_here"
BASE_URL = "https://api.qinyanai.com"
# Google Scholar search
response = requests.post(
f"{BASE_URL}/v1/paper-search/google",
headers={"Authorization": f"Bearer {API_KEY}"},
json={
"query": "large language model",
"max_results": 10,
"date_from": "2020",
"date_to": "2025"
}
)
data = response.json()
for paper in data["data"]:
print(f"{paper['title']} ({paper['publication_year']})")
# PubMed search
response = requests.post(
f"{BASE_URL}/v1/paper-search/pubmed",
headers={"Authorization": f"Bearer {API_KEY}"},
json={
"query": "cancer immunotherapy",
"max_results": 30,
"author": "Zhang Wei"
}
)
# Paper analysis
response = requests.post(
f"{BASE_URL}/v1/paper-search/analyze",
headers={"Authorization": f"Bearer {API_KEY}"},
json={
"title": "Attention Is All You Need",
"authors": ["Ashish Vaswani", "Noam Shazeer"],
"abstract": "The dominant sequence transduction models...",
"language": "中文"
}
)
result = response.json()
print(result["analysis"])
# Agent search (streaming)
response = requests.post(
f"{BASE_URL}/v1/paper-search/agent_search",
headers={"Authorization": f"Bearer {API_KEY}"},
json={
"query": "帮我查找最近5年的脑机接口领域引用量超过200的论文",
"language": "中文"
},
stream=True
)
for line in response.iter_lines():
if line:
print(line.decode())