跳到正文
土土金API

文献阅读与综述辅助

文献阅读辅助分三步:先把摘要向量化,检索相似论文、整理阅读清单;再让模型逐篇读你有权使用的全文,把研究问题、方法、数据和主要结果抽进表格,每一项都附上原文句子,由程序核对确实出自原文;最后把核对过的表格交给更强的模型做对比,列出一致、矛盾和空白。它帮你读和整理,不替你写论文,也不生成参考文献,每一项都要研究者回到原文核对。按每月 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。

¥23.88/ 月

  • 摘要向量化¥0.52
  • 全文切块入库¥1.04
  • 逐篇抽取¥8.25
  • 带出处的问答¥9.75
  • 对比与提纲¥4.32
看用量假设

业务问题

写综述、开题、做系统性文献回顾,要读几十到几百篇论文,把每篇的方法、数据和结论整理进一张表,再比较哪些结论一致、哪些互相矛盾,光整理就要花很多时间。

直接问模型「这个领域有哪些研究」风险很大:模型可能把别的论文的结论安到这一篇上、看错数字,甚至编出不存在的论文和 DOI。

更稳妥的用法是只让模型处理你提供的文献:每个结论都附原文句子,程序核对引文,研究者逐项复核。学术诚信的边界也要说清:模型帮你读和整理,不代写论文,不生成参考文献;能不能用 AI 工具、需要怎样声明,以学校、期刊和导师的要求为准。

推荐模型组合

推荐模型按实时目录自动选取,价格取各模型最低价分组,更新于 2026年11月13日 17:53。点模型名可查看全部分组价格。

参考架构

  1. 1

    建阅读清单

    从文献数据库导出题录(标题、摘要、DOI),按 DOI 去重后把摘要向量化,检索和你的研究问题相近的论文、按主题聚类,由研究者决定精读哪些。

  2. 2

    准备全文

    只处理你有权使用的全文,例如开放获取论文、学校订阅的数据库里合法下载的论文和作者提供的预印本;数据库是否允许文本挖掘,以它的使用条款和图书馆的规定为准。PDF 转成文字时保留章节标题和页码,扫描版先按文档解析方案转成文字。

  3. 3

    逐篇抽取

    按固定字段抽取:研究问题、方法、数据与样本、主要结果(含数字)和局限,每个字段都要附上原文句子;论文没写的字段填「未报告」,不允许推测。

  4. 4

    程序核对引文

    程序检查每条原文句子是否逐字出现在全文里,对不上的字段标记为待人工核对;数字和单位一律以原文为准。

  5. 5

    带出处的问答

    全文按段落切块入库,提问时先检索相关段落,模型只依据这些段落回答,并标注论文编号和页码,资料里没有就说没有,做法和企业知识库方案相同。

  6. 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-large5,000 次 × 输入 400 tokens¥0.52
全文切块入库text-embedding-3-large200 次 × 输入 20,000 tokens¥1.04
逐篇抽取gemini-3.8-flash200 次 × 输入 20,000 + 输出 1,500 tokens¥8.25
带出处的问答gemini-3.8-flash1,000 次 × 输入 4,000 + 输出 500 tokens¥9.75
对比与提纲Claude Sonnet 5.530 次 × 输入 30,000 + 输出 3,000 tokens¥4.32
合计(每月)¥23.88

按各模型最低价分组的实时价格计算,价格更新于 2026年11月13日 17:53。

只含模型调用费用,不含数据库订阅、PDF 转换和向量数据库的成本。去掉参考文献列表再抽取,能省下不少输入 tokens;扫描版 PDF 要先转成文字,费用见文档解析方案。精读的篇数翻倍,对应几项的费用大致翻倍。

示例代码

模型按固定字段抽取并给出原文句子,程序核对每条句子是否逐字出现在全文里,只有全部核对通过的行才交给对比模型。参考文献始终来自你自己的文献管理软件,不来自模型。

示例代码(Python,逐篇抽取、核对引文与对比)
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.

用一把 Key 试试这个方案

注册后在控制台创建 API Key,把上面代码里的 base_url 和 Key 换成你的就能运行。企业采购、开发票可以加客服微信 JsnonoChat。

土土金客服微信二维码
微信JsnonoChat

扫码或搜索微信号添加客服

常见问题

可以让模型直接写文献综述吗?

这个方案不做这件事。模型帮你读和整理:抽取、对比、查出处;综述的观点、结构和文字由你自己完成。能不能用 AI 工具、需要怎样声明,以学校、期刊和导师的要求为准。

模型会编造参考文献吗?

会。凭记忆列文献时,模型可能编出不存在的论文、作者或 DOI,也可能把一篇论文的结论安到另一篇上。所以这里只让模型处理你提供的全文,每条信息都附原文句子并由程序核对,参考文献只从你的文献管理软件导出。

抽取的结果准确吗?

没有通用的准确率,取决于论文的写法和字段的定义。常见的错误有:把论文引用的别人的结果当成本文的结果,看错单位和样本量,表格里的数字错行。原文句子核对能挡住一部分,其余的靠研究者逐项复核。

哪些论文可以拿来处理?

你有权使用的全文,例如开放获取论文、学校订阅的数据库里合法下载的论文、作者提供的预印本。数据库条款是否允许文本挖掘、是否允许上传到第三方服务,以数据库和学校图书馆的规定为准,需要你自己确认,我们不对此作承诺。

每月大概要花多少钱?

按每月 5,000 篇摘要入库、精读 200 篇全文、提问 1,000 次、做 30 次对比估算,用最低价分组计算约 ¥23.88。提问次数、全文的长度和精读的篇数对费用影响最大。

扫描版 PDF 和图表怎么办?

扫描件先按文档解析方案转成文字,再做抽取。图表里的数字最容易识别错,一律以原图为准人工核对。