PILLAR 03 · RAG 與向量資料庫

RAG 如何防止 AI 幻覺:7 個技巧

Prompt 設計、Context 注入、Citation、Confidence Threshold——7 個防幻覺技巧。

PUBLISHED
2026-06-04
READ TIME
10 min
CATEGORY
PILLAR 03
UPDATED
2026-09-27
KEY TAKEAWAY · 一句話結論

RAG 不保證不會幻覺,當檢索到的 context 不足或 Prompt 設計不當時 AI 仍會編造;作者提出明確 System Instruction、強制 Citation、Confidence Threshold、拒答訓練、兩階段查證、結構化輸出與調低 temperature 七個技巧,實測可把幻覺率從裸 RAG 的 14.2% 逐步降到 2.4%。

發布 2026-06-04 · 最後更新 2026-09-27 · 作者 賴家榮 Andy Lai

RAG 不一定不會幻覺。如果 retrieved context 不足、Prompt 沒設計好,AI 還是會編。這 7 個技巧把幻覺率從 15% 降到 < 3%。

技巧 1:明確的 System Instruction

# Bad
你是客服機器人,回答用戶問題。

# Good
你是客服機器人。請務必遵守:
1. 只能根據以下提供的 context 回答
2. context 沒提到的事情,請說「我這邊沒有相關資料,幫您轉接專員」
3. 不要根據常識編造答案
4. 每個事實都要附 [來源:檔名] 標記

技巧 2:強制 Citation

要求 AI 每個事實都要引用來源:

你的回答格式:
- 每個事實後面加 [檔名 段落號]
- 例如:「退貨期限是 7 天 [policy.pdf §3.2]」
- 沒有來源的內容不要寫

技巧 3:Confidence Threshold

檢索 Top-K 後,看最高分是否超過門檻:

results = vector_search(query, top_k=5)
if results[0].score < 0.7:
    return "我這邊沒有夠相關的資料,請聯絡客服。"

這能擋掉「問題與資料庫無關時的瞎編」。

技巧 4:拒答訓練

在 System Instruction 中加範例:

範例:
問題:「明年 GDP 會多少?」
Context:(無相關資料)
正確回答:「這個問題超出我的資料庫範圍,建議您查詢主計總處。」

技巧 5:兩階段查證

對高風險領域(法律、醫療),用兩階段:

  1. 第一階段:LLM 草擬回答
  2. 第二階段:用第二個 LLM 檢查「這個回答是否與 context 一致」,不一致就退回

技巧 6:結構化輸出

強制 JSON 格式,每個欄位都有 source:

{
  "answer": "...",
  "sources": [
    {"text": "依據條文", "doc": "policy.pdf", "section": "3.2"}
  ],
  "confidence": "high|medium|low",
  "uncertain_parts": ["如果有不確定的部分"]
}

技巧 7:限制創意

把 temperature 設低(0.1–0.3),top_p 設 0.5。這讓 AI 更保守、更不容易發揮想像。

實測:7 技巧合用的效果

配置幻覺率
裸 RAG(無技巧)14.2%
+ 強 Prompt8.5%
+ Citation 要求5.1%
+ Confidence Threshold3.8%
+ 兩階段查證2.4%

監控幻覺

上線後監控三個訊號:

  • 用戶按「👎」的對話:人工抽查 10%
  • 沒有 Citation 的回答:標記為高風險
  • Confidence 標 low 但回答不少的:可能編造

什麼情境最容易幻覺?

  1. 用戶問題超出資料庫範圍
  2. 用戶問「比較性」問題(A vs B 但只有 A 的資料)
  3. 用戶問「推測性」問題(未來、預測)
  4. 用戶問「常識性」問題(AI 訓練時學過)

這四類情境要特別加強 Prompt 防護。

常見問題

為什麼用了 RAG 還是會出現 AI 幻覺?

因為 RAG 只是把公司文件當作 context 提供給 AI,若檢索到的 context 不足、或 Prompt 沒有限制 AI 只能依 context 回答,模型仍會用常識編造答案。文章實測裸 RAG(無任何技巧)的幻覺率為 14.2%,最容易幻覺的情境是問題超出資料庫範圍、比較性、推測性與常識性問題。

降低 RAG 幻覺的 7 個技巧是什麼?

一是明確的 System Instruction,規定只能依 context 回答;二是強制每個事實附來源 Citation;三是設 Confidence Threshold,檢索最高分低於 0.7 就拒答;四是拒答訓練,在指令中加範例;五是高風險領域用兩階段查證;六是強制 JSON 結構化輸出並附 source;七是把 temperature 設 0.1 到 0.3、top_p 設 0.5。

這些防幻覺技巧實際能把幻覺率降到多少?

文章實測數據:裸 RAG 幻覺率 14.2%,加上強 Prompt 降到 8.5%,再加 Citation 要求降到 5.1%,加 Confidence Threshold 降到 3.8%,最後加兩階段查證降到 2.4%。也就是七個技巧合用可把幻覺率從約 15% 壓到 3% 以下。

Confidence Threshold 在 RAG 中怎麼實作?

向量檢索取 Top-K(例如 top_k=5)後,檢查最高分結果的相似度分數是否超過門檻;文章範例是低於 0.7 就直接回覆「我這邊沒有夠相關的資料,請聯絡客服」,不交給 LLM 生成。這能擋掉使用者問題與資料庫無關時的瞎編。

RAG 上線後要怎麼監控幻覺?

作者建議追蹤三個訊號:用戶給負評的對話要人工抽查 10%;沒有附 Citation 的回答標記為高風險;Confidence 標為 low 但回答內容卻不少的對話,很可能是編造。另外要特別針對超出資料庫範圍、比較性、推測性、常識性四類問題加強 Prompt 防護。


RELATED ARTICLES

延伸閱讀。

延伸工具

LAST STEP

給我 30 分鐘,
告訴我你的業務。

我直接告訴你:你公司最該先用 AI 的 3 個地方、大概花多少預算、能不能用政府補助降低成本。

SOUTH TAIWAN AI WEEKLY

每週一封,南台灣中小企業
AI 應用週報。

賴家榮親自整理:本週最值得看的 AI 應用案例、補助公告、課程開班資訊。免費、可隨時退訂。

我們不分享您的 Email · 可隨時退訂

📞 立即撥打 預約免費診斷