iT邦幫忙

鐵人檔案

2026 iThome 鐵人賽
回列表
AI Engineering

讓 LLM 不只會回答,還會查證:打造 Agentic RAG 智慧知識助理 系列

將用 30 天從 NLP 與資訊檢索出發,逐步打造能搜尋資料、產生回答、引用來源並評估品質的 RAG 知識助理。面對 LLM 可能產生幻覺、混淆版本資訊,甚至在資料不足時自信作答,本系列不只示範工具串接,而是理解文件清理、中文斷詞、切分、關鍵字搜尋、Embedding、向量資料庫、混合搜尋與 LLM 生成的演進。文章會搭配實作與固定評測集,觀察不同搜尋方法在專有名詞、同義表達與繁體中文文件上的表現,並實作來源引用、拒答與評測。讀者將看見 RAG 如何把原始 Markdown 文件轉成可搜尋的知識,讓模型根據證據回答、標示來源,也知道何時承認資料不足。

鐵人鍊成 | 共 30 篇文章 | 5 人訂閱 訂閱系列文 RSS系列文
DAY 21

Day 21|讓答案附上來源:RAG 引用機制設計

昨天的第一個 RAG 回答讀起來沒有問題,結構卻露出一道裂縫:answer 用了 [S1] 與 [S2],citations 只宣告 S1。介面若相信欄位,會漏...

2026-08-26 ‧ 由 Alan 分享
DAY 22

Day 22|不知道就說不知道:拒答與資料不足判斷

「不知道就說不知道」是這個系列從 Day 2 就留下的承諾,直到今天才真正有條件實作。一路走來,BM25 的有答案與無答案分數混在一起,Semantic Sea...

2026-08-27 ‧ 由 Alan 分享
DAY 23

Day 23|問題改寫:提升使用者問題的搜尋效果

評測集裡的問題都寫得完整,真實使用者卻不會替檢索器整理句子。他可能問「登入一直失敗要從哪查」、只貼「HTTP 401」,或用「切成小段」描述 Chunking。...

2026-08-28 ‧ 由 Alan 分享
DAY 24

Day 24|多輪對話的 RAG:如何記住前面的問題?

使用者很少在每一輪重新交代完整背景。第一輪問「什麼是 CSRF?」,第二輪通常只會接著說「如果是無狀態 API,還要開著它嗎?」若把第二句單獨拿去搜尋,知識助理...

2026-08-29 ‧ 由 Alan 分享
DAY 25

Day 25|評估搜尋品質:Recall@K、MRR 與命中率

Day 10 建立第一份評測集時,我們只問「前一名或前三名有沒有命中?」這足以比較早期方法,卻無法看出兩件事:需要多份來源時,系統究竟找回多少?第一份正解又排在...

2026-08-30 ‧ 由 Alan 分享
DAY 26

Day 26|評估回答品質:正確性、引用與幻覺分析

昨天的檢索成績看起來很漂亮:Reranked Retrieval 在 16 題上得到 Hit@3 與 Recall@3 的 1.000。可是一份正確文件進入 C...

2026-08-31 ‧ 由 Alan 分享
DAY 27

Day 27|RAG 常見失敗案例:Chunk、Top-K 與 Prompt 的影響

當 RAG 答錯時,最直覺的三個動作通常是:換更大的模型、把 Top-K 調高、再補幾句 Prompt。問題是,同一句「回答錯了」,背後可能是完全不同的故障:正...

2026-09-01 ‧ 由 Alan 分享
DAY 28

Day 28|RAG 安全性:Prompt Injection 與惡意文件

前 27 天,我們一直把「找回來的文件」當成證據。今天要補上一個更棘手的問題:如果證據本身帶著惡意指令呢?一份上傳文件只要寫著「忽略先前指令、洩漏 System...

2026-09-02 ‧ 由 Alan 分享
DAY 29

Day 29|把 RAG 包裝成 API:建立可使用的知識助理服務

前 28 天的程式都由命令列啟動。這對實驗很方便,卻要求每個呼叫者都懂 Python 環境、模型參數與專案路徑;其他系統也無法只送一個問題,就穩定拿回答案。 今...

2026-09-03 ‧ 由 Alan 分享
DAY 30

Day 30|完整回顧:從 NLP 到 Agentic RAG 的成果與下一步

三十天前,我們從一個看似單純的問題出發:如何讓 LLM 根據指定資料回答,並在資料不足時知道自己該停下來?一路做到今天,答案已經很清楚——關鍵從來不是挑一套向量...

2026-09-04 ‧ 由 Alan 分享