iT邦幫忙

2026 iThome 鐵人賽

DAY 12
0
Claude AI

30 天帶 Claude 上工:從聊天助手到工程協作夥伴系列 第 12

這句話誰說的?讓 Claude 的答案可以追溯來源

  • 分享至 

  • xImage
  •  

前兩篇都在想辦法讓對的段落被撈出來。這一篇處理的是下一步:把「哪一段撐起哪一句」留在輸出上。

Claude 回答得很像真的,不代表真的有根據。面對法規、校規或技術文件,重點不在講得多完整,而在你能不能沿著答案走回原始資料。

Citation 像論文的註腳,指出這句話來自哪份文件、哪一頁或哪個章節。Source Provenance 則更像食品履歷:除了「從哪來」,還要記錄版本、更新日期、適用地區與適用對象。同一句規定,如果引用的是三年前的版本,來源再清楚也可能答錯。

所以回答校內規章時,不只寫「依規定可以申請」,而是附上「學生住宿管理辦法|2026 年版|第 12 條」。若檢索到的文件沒有足夠證據,就不要讓 Claude 把空格補滿,直接輸出:「待確認:目前資料中找不到足以支持此結論的條文。」

這條規則 Day 04 就立過——原文沒有的資訊不要推測,無法確認就標示資料不足。差別在於那時處理的是摘要,現在處理的是有來源的問答,門檻更高。像查案一樣:沒有找到證人,就不能自己補一份口供。

但還有一種更麻煩的情況:證人存在,證詞卻對不上。

模型完全可能引用一份真實存在的文件,而被引的那一段根本沒有支持它說的話。Gao 等人的 ALCE 研究就是在量測這件事,而且拆成了兩個可以檢查的半邊:citation recall 看被引用的段落合起來是否完全支持那句話,citation precision 看有沒有引到與主張無關的段落。

換句話說,有引用不等於引用成立。這跟 Day 06 是同一個結構——那時是 Schema 保證格式、不保證內容正確;這裡是引用保證看起來有據、不保證真的有據。

降低風險的辦法之一,是不要讓模型自由書寫引用。Claude API 的 Citations 功能會在你提供的 document 上設定 citations.enabled=true,回應的每個文字區塊都帶著 cited_text 與精確位置:PDF 給頁碼範圍、純文字給字元索引、自訂內容給區塊索引。這些引用由 API 解析並直接擷取,保證指向你實際提供的文件與位置,不會冒出你沒給過的來源。Anthropic 的評測也顯示它比純靠 prompt 要求模型附引用有更高的 recall 與 precision;順帶一提還比較省,cited_text 不計入輸出 token,而 prompt 式做法得讓模型把整段原文吐出來。RAG 情境則有 search_result 區塊,可以帶上 source 與 title,讓 Claude 引用你自己的知識庫。

這裡有一個要先知道的限制:Citations 和 Structured Outputs 不相容,同時開會直接回 400。原因是引用必須把引用區塊和文字交錯輸出,跟嚴格 JSON schema 的約束衝突。Day 06 教的是把輸出鎖成契約,這一篇要的是可追溯的引用——現階段得二選一。

所以真正要檢查的不只是「有沒有附來源」,而是那份來源到底有沒有撐住那句話。前者一眼就看得到,後者才是會出事的地方。

延伸閱讀

  • Gao, Yen, Yu & Chen, Enabling Large Language Models to Generate Text with Citations, EMNLP 2023, pp. 6465–6488(arXiv:2305.14627)。提出 ALCE(Automatic LLMs' Citation Evaluation),從 fluency、correctness、citation quality 三個面向評估帶引用的生成,並用 ASQA、QAMPARI、ELI5 三個資料集檢驗引用是否真的支持回答。
  • Anthropic, Citations, Claude API Docs.

上一篇
找得到不代表找得準:Chunking、Retrieval、Reranking 怎麼配?
下一篇
Agent 的記憶該記什麼?短期、長期與不該留下的內容
系列文
30 天帶 Claude 上工:從聊天助手到工程協作夥伴13
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言