——那要怎麼判斷?怎麼解?
從一個具體問題,一路走到 deterministic 查證(API)
你請 LLM 幫衛教找根據,它回你一篇文獻:標題像、作者像、期刊年份都有,連 DOI 都附上了。
看起來煞有其事——但這篇可能根本不存在,是它「掰」出來的。衛教若引用了假文獻,等於把錯誤蓋上一個權威印章。
所以問題很實際:怎麼知道一篇文獻是真是假?
先別問 AI——如果是你,要確認一篇文獻到底存不存在,你會怎麼查?
(提示:每篇正式文獻,都有一個獨一無二的編號。怕有人對它不熟,下一張先補「DOI 是什麼」。)
DOI = 每篇正式文獻的「永久身分證」,長這樣:10.1056/NEJMoa2116044。不管期刊網站怎麼改版、搬家,這串碼永遠指向同一篇。
把它貼到 doi.org(或交給程式去查),就會連到那一篇確切的文獻。
所以「人」的解法超簡單:拿 DOI 去查——在,就是真;查不到,就是假。一翻兩瞪眼。
擬人的講法是「它記錯了」。但更精確地說:LLM 根本不「記憶事實」。
所以純靠「背」吐一個 DOI:錯誤才是常態,正確只是巧合。
關鍵不是模型突然變聰明,而是工程師讓它學會「使用工具」去查——遇到 DOI、藥名、數字,不再靠背,而是實際發一個查詢出去。
而這個「程式去問另一個程式」的查詢介面,就叫 API:你給它一個明確的輸入,它回你一個明確的輸出。
| 人 ↔ 機器(你平常用 app/網站) | 機器 ↔ 機器(API) |
|---|---|
| 有畫面,用眼睛看、用手點(GUI) | 純數位:給明確輸入 → 回明確輸出,中間沒有人、沒有畫面、沒有模糊語意 |
輸入:10.1056/NEJMoa2116044
Crossref 回傳:
Molnupiravir for Oral Treatment of Covid-19 in Nonhospitalized Patients
Jayk Bernal A. 等 · NEJM · 2022 · 386(6):509–520
輸入:10.1056/NEJMoa9999999(格式正確、看起來像真的)
一查下去:
404 — 不存在
差別就一個字:一邊是查(deterministic、可重複),一邊是猜(stochastic、賭運氣)。
會搜尋網路、開 DOI/期刊頁查證(比純背可靠)——但不直接呼叫 Crossref API;它讀的頁面,很多本身就來自 Crossref 生態。
真的跑一行 curl api.crossref.org/...,拿到 JSON、檢查欄位。剛才那筆 molnupiravir,就是這樣當場驗的。
兩者都能查證;差別在「搜尋頁面」還是「直接呼叫 API、把結果接進後續程式」——只有後者能自動化。
同一條線也適用「讀網頁」:雲端 LLM 走雲端、自己的途徑抓(常被網站擋),代理式走你本機抓——呼叫 API 或開網頁都一樣,差在雲端途徑 vs 地端途徑。(Drugs 只能拿公開摘要,同個道理。)
| API | 解決什麼 | 成本 |
|---|---|---|
| Crossref | 驗 DOI/文獻是否真實存在(剛才那招) | 免費・一行指令 |
| PubMed | 查一個 trial 的真實主要結果,而不是 LLM 猜的結論 | 免費・一行指令 |
| OpenFDA | 查藥品仿單/不良反應/召回——做藥品衛教最該用 | 免費・一行指令 |
共同點:免費、免帳號,回傳整齊的結構化資料(電腦好讀的格式)。隨機的是 LLM,這幾道查詢是確定性的。
有 API:程式可直接查仿單、不良反應
多半只有要人手動點的網頁,沒有給程式用的 API
所以在台灣查跨國藥物,用美國 OpenFDA 反而比查自家方便。這個 gap 不是 LLM 能解的——是資料開放/治理的問題。
凡是「一字不漏才算對」的
——別信 LLM 的記憶,叫它去「查」
但別叫 LLM「記得」每次查——它會忘。讓它寫程式自動查(下一段)。