文献阅读与综述辅助
文献阅读辅助分三步:先把摘要向量化,检索相似论文、整理阅读清单;再让模型逐篇读你有权使用的全文,把研究问题、方法、数据和主要结果抽进表格,每一项都附上原文句子,由程序核对确实出自原文;最后把核对过的表格交给更强的模型做对比,列出一致、矛盾和空白。它帮你读和整理,不替你写论文,也不生成参考文献,每一项都要研究者回到原文核对。按每月 5,000 篇摘要入库、精读 200 篇全文估算,用各模型最低价分组的实时价格计算,模型费用每月约 ¥23.88。
价格更新于 2026年11月13日 17:53
月成本估算
假设:每月新入库 5,000 篇摘要,每篇约 400 tokens;精读 200 篇全文,每篇约 20,000 tokens,全文切块入库,并逐篇抽取一次,输出约 1,500 tokens;在阅读清单上提问 1,000 次,每次带约 4,000 tokens 的段落,回答约 500 tokens;做 30 次对比,每次输入约 30,000 tokens 的对比表,输出约 3,000 tokens。
业务问题
写综述、开题、做系统性文献回顾,要读几十到几百篇论文,把每篇的方法、数据和结论整理进一张表,再比较哪些结论一致、哪些互相矛盾,光整理就要花很多时间。
直接问模型「这个领域有哪些研究」风险很大:模型可能把别的论文的结论安到这一篇上、看错数字,甚至编出不存在的论文和 DOI。
更稳妥的用法是只让模型处理你提供的文献:每个结论都附原文句子,程序核对引文,研究者逐项复核。学术诚信的边界也要说清:模型帮你读和整理,不代写论文,不生成参考文献;能不能用 AI 工具、需要怎样声明,以学校、期刊和导师的要求为准。
推荐模型组合
推荐模型按实时目录自动选取,价格取各模型最低价分组,更新于 2026年11月13日 17:53。点模型名可查看全部分组价格。
逐篇阅读与抽取
gemini-3.8-flashGoogle
输入 ¥1.5 / 输出 ¥7.5 每百万 tokens标准分组
读每篇论文的全文,按固定字段抽取并附原文句子,也用来回答阅读清单上的问题。全文很长,输入 tokens 远多于输出,选输入单价低的模型;论文超出模型的上下文长度时,按章节分段抽取再合并。
对比与提纲
Claude Sonnet 5.5Anthropic
输入 ¥3.2 / 输出 ¥16 每百万 tokensClaude 经济分组
只读程序核对过的对比表、不读全文,列出各篇结论的一致、矛盾和研究空白,每一句都标注论文编号。调用次数少,但要理清多篇论文之间的关系,用主力或旗舰模型。
阅读清单检索(Embeddings)
text-embedding-3-largeOpenAI
输入 ¥0.26 / 输出 ¥0.26 每百万 tokens标准分组
把摘要和全文段落转成向量,用来检索相似论文、按主题聚类和去重;全文段落入库后,就能按企业知识库的做法带出处地提问。同一个库的入库和查询要用同一个向量模型。
参考架构
- 1
建阅读清单
从文献数据库导出题录(标题、摘要、DOI),按 DOI 去重后把摘要向量化,检索和你的研究问题相近的论文、按主题聚类,由研究者决定精读哪些。
- 2
准备全文
只处理你有权使用的全文,例如开放获取论文、学校订阅的数据库里合法下载的论文和作者提供的预印本;数据库是否允许文本挖掘,以它的使用条款和图书馆的规定为准。PDF 转成文字时保留章节标题和页码,扫描版先按文档解析方案转成文字。
- 3
逐篇抽取
按固定字段抽取:研究问题、方法、数据与样本、主要结果(含数字)和局限,每个字段都要附上原文句子;论文没写的字段填「未报告」,不允许推测。
- 4
程序核对引文
程序检查每条原文句子是否逐字出现在全文里,对不上的字段标记为待人工核对;数字和单位一律以原文为准。
- 5
带出处的问答
全文按段落切块入库,提问时先检索相关段落,模型只依据这些段落回答,并标注论文编号和页码,资料里没有就说没有,做法和企业知识库方案相同。
- 6
对比与提纲
把核对过的表格交给对比模型,列出一致、矛盾和空白,每一句标注论文编号。综述的观点、结构和文字由你自己写,参考文献从你的文献管理软件导出,不用模型生成的引用。
成本估算
假设:每月新入库 5,000 篇摘要,每篇约 400 tokens;精读 200 篇全文,每篇约 20,000 tokens,全文切块入库,并逐篇抽取一次,输出约 1,500 tokens;在阅读清单上提问 1,000 次,每次带约 4,000 tokens 的段落,回答约 500 tokens;做 30 次对比,每次输入约 30,000 tokens 的对比表,输出约 3,000 tokens。
| 项目 | 模型 | 用量假设 | 费用 |
|---|---|---|---|
| 摘要向量化 | text-embedding-3-large | 5,000 次 × 输入 400 tokens | ¥0.52 |
| 全文切块入库 | text-embedding-3-large | 200 次 × 输入 20,000 tokens | ¥1.04 |
| 逐篇抽取 | gemini-3.8-flash | 200 次 × 输入 20,000 + 输出 1,500 tokens | ¥8.25 |
| 带出处的问答 | gemini-3.8-flash | 1,000 次 × 输入 4,000 + 输出 500 tokens | ¥9.75 |
| 对比与提纲 | Claude Sonnet 5.5 | 30 次 × 输入 30,000 + 输出 3,000 tokens | ¥4.32 |
| 合计(每月) | ¥23.88 | ||
按各模型最低价分组的实时价格计算,价格更新于 2026年11月13日 17:53。
只含模型调用费用,不含数据库订阅、PDF 转换和向量数据库的成本。去掉参考文献列表再抽取,能省下不少输入 tokens;扫描版 PDF 要先转成文字,费用见文档解析方案。精读的篇数翻倍,对应几项的费用大致翻倍。
示例代码
模型按固定字段抽取并给出原文句子,程序核对每条句子是否逐字出现在全文里,只有全部核对通过的行才交给对比模型。参考文献始终来自你自己的文献管理软件,不来自模型。
import json
import os
import re
from openai import OpenAI
client = OpenAI(base_url="https://www.tutujin.com/v1", api_key=os.environ["TUTUJIN_API_KEY"], max_retries=3)
FIELDS = ["research_question", "method", "data", "main_result", "limitations"]
SYSTEM = (
"You fill one row of a literature table from the paper below and nothing else. For each field give a "
"short value and the exact sentence of the paper it comes from. If the paper does not report a field, "
'use {"value": "not reported", "quote": ""}. Reply with JSON only: an object with the keys '
+ ", ".join(FIELDS) + ', each {"value": "", "quote": ""}.'
)
def squash(s):
return re.sub(r"\s+", " ", s or "").strip()
def extract(paper_id, text):
resp = client.chat.completions.create(
model="gemini-3.8-flash",
messages=[{"role": "system", "content": SYSTEM}, {"role": "user", "content": text}],
temperature=0,
)
raw = resp.choices[0].message.content
row = json.loads(raw[raw.find("{"): raw.rfind("}") + 1])
full = squash(text)
for f in FIELDS:
cell = row.get(f) if isinstance(row.get(f), dict) else {"value": "", "quote": ""}
if cell.get("value") == "not reported":
cell["check"] = "not_reported"
else:
# a value counts only if its sentence really is in the paper; everything else goes to a person
quote = squash(cell.get("quote"))
cell["check"] = "quote_found" if quote and quote in full else "by_hand"
row[f] = cell
return {"paper": paper_id, "model": resp.model, **{f: row[f] for f in FIELDS}}
def compare(rows, question):
"""Only rows whose quotes were all found are compared: the table is the source, not the model's memory."""
table = [{"paper": r["paper"], **{f: r[f]["value"] for f in FIELDS}}
for r in rows if all(r[f]["check"] != "by_hand" for f in FIELDS)]
resp = client.chat.completions.create(
model="claude-sonnet-5-5",
messages=[
{"role": "system", "content": "Compare the papers in the table and nothing else. Put the paper id in brackets, "
"like [smith2024], after every statement. List agreements, contradictions and gaps. "
"Do not add papers, facts or references that are not in the table."},
{"role": "user", "content": "Question: " + question + "\n\nTable:\n" + json.dumps(table, ensure_ascii=False)},
],
)
return resp.choices[0].message.content
rows = []
for paper_id in ["smith2024", "li2025"]: # full texts you are entitled to use, reference lists removed
with open(f"papers/{paper_id}.txt", encoding="utf-8") as f:
rows.append(extract(paper_id, f.read()))
print(json.dumps(rows, ensure_ascii=False, indent=2)) # a researcher checks every row against the paper
print(compare(rows, "Does remote tutoring improve test scores?"))
# Reading list: embed abstracts with text-embedding-3-large and search them as in the knowledge-base solution.常见问题
可以让模型直接写文献综述吗?
这个方案不做这件事。模型帮你读和整理:抽取、对比、查出处;综述的观点、结构和文字由你自己完成。能不能用 AI 工具、需要怎样声明,以学校、期刊和导师的要求为准。
模型会编造参考文献吗?
会。凭记忆列文献时,模型可能编出不存在的论文、作者或 DOI,也可能把一篇论文的结论安到另一篇上。所以这里只让模型处理你提供的全文,每条信息都附原文句子并由程序核对,参考文献只从你的文献管理软件导出。
抽取的结果准确吗?
没有通用的准确率,取决于论文的写法和字段的定义。常见的错误有:把论文引用的别人的结果当成本文的结果,看错单位和样本量,表格里的数字错行。原文句子核对能挡住一部分,其余的靠研究者逐项复核。
哪些论文可以拿来处理?
你有权使用的全文,例如开放获取论文、学校订阅的数据库里合法下载的论文、作者提供的预印本。数据库条款是否允许文本挖掘、是否允许上传到第三方服务,以数据库和学校图书馆的规定为准,需要你自己确认,我们不对此作承诺。
每月大概要花多少钱?
按每月 5,000 篇摘要入库、精读 200 篇全文、提问 1,000 次、做 30 次对比估算,用最低价分组计算约 ¥23.88。提问次数、全文的长度和精读的篇数对费用影响最大。
扫描版 PDF 和图表怎么办?
扫描件先按文档解析方案转成文字,再做抽取。图表里的数字最容易识别错,一律以原图为准人工核对。
