文獻閱讀與綜述輔助
文獻閱讀輔助分三步:先把摘要向量化,檢索相似論文、整理閱讀清單;再讓模型逐篇讀你有權使用的全文,把研究問題、方法、資料和主要結果抽進表格,每一項都附上原文句子,由程式核對確實出自原文;最後把核對過的表格交給更強的模型做對比,列出一致、矛盾和空白。它幫你讀和整理,不替你寫論文,也不生成參考文獻,每一項都要研究者回到原文核對。按每月 5,000 篇摘要入庫、精讀 200 篇全文估算,用各模型最低價分組的即時價格計算,模型費用每月約 ¥23.88。
價格更新於 2026年11月13日 下午5: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日 下午5: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日 下午5: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 和圖表怎麼辦?
掃描件先按文件解析方案轉成文字,再做抽取。圖表裡的數字最容易識別錯,一律以原圖為準人工核對。
