關鍵機制
測試場景
✅ 相關問題 - 正常回答
❌ 完全不相關 - 拒絕回答(如「賣 iPhone 嗎?」)
⚠️ 弱相關問題 - 根據門檻決定
輸出內容
========================================
Pattern 14: RAG + 相似度門檻
========================================
💡 重點:防止 RAG 系統「亂回答」
✅ 載入 Pattern 13 的索引...
📚 已載入 33 個文檔段落
========================================
測試 1: 相關問題(有答案)
========================================
【問題】金卡會員有什麼優惠?
🔍 檢索相關文檔...
查詢: 金卡會員有什麼優惠?
📊 相似度排名 (Top 3, 門檻: 0.5):
1. [0.7359] ✅ 會員等級制度.txt - 金卡會員:
- 門檻:年度累積消費滿 10,000 元
- 優惠:全年 95 折、生日當月 85 折...
2. [0.7155] ✅ 會員等級制度.txt - 白金卡會員:
- 門檻:年度累積消費滿 30,000 元
- 優惠:全年 9 折、生日當月 8 折
...
3. [0.7053] ✅ 會員等級制度.txt - 銀卡會員(預設等級):
- 門檻:註冊即成為銀卡會員
- 優惠:生日當月享 9 折優惠
- 點數回饋...
💬 使用 RAG 生成答案...
✨ 答案:
金卡會員的優惠包括全年95折、生日當月85折,另外每季還可以獲得免費一個6吋蛋糕。
========================================
測試 2: 不相關問題(沒答案)
========================================
【問題】你們有賣 iPhone 嗎?
(這問題和蛋糕電商完全無關)
🔍 檢索相關文檔...
查詢: 你們有賣 iPhone 嗎?
📊 相似度排名 (Top 3, 門檻: 0.5):
1. [0.3436] ❌ 退換貨政策.txt - 瑕疵品處理:
若收到商品有瑕疵或損壞,請於收到商品後 24 小時內拍照並聯繫客服,我們會立即為您換貨...
2. [0.3100] ❌ 客製化商品說明.txt - 客製化內容限制:
文字刻字:最多 20 個中文字或 40 個英文字母
照片規格:建議解析度 300d...
3. [0.3075] ❌ 客製化商品說明.txt - 客製化商品說明...
⚠️ 警告:沒有找到相似度超過 0.5 的相關文檔!
💬 使用 RAG 生成答案...
✨ 答案:
很抱歉,知識庫中沒有找到與您問題相關的資訊。建議您聯絡客服人員以獲得更詳細的幫助。謝謝!
========================================
測試 3: 邊緣問題(弱相關)
========================================
【問題】你們賣什麼產品?
(知識庫沒有「產品目錄」,但可能會匹配到一些段落)
🔍 檢索相關文檔...
查詢: 你們賣什麼產品?
📊 相似度排名 (Top 3, 門檻: 0.5):
1. [0.4835] ❌ 客製化商品說明.txt - 客製化商品說明...
2. [0.3971] ❌ 客製化商品說明.txt - 什麼是客製化商品:
客製化商品包括刻字蛋糕、照片蛋糕、特殊造型蛋糕、個人化禮盒等需要根據您的需求特別...
3. [0.3603] ❌ 退換貨政策.txt - 瑕疵品處理:
若收到商品有瑕疵或損壞,請於收到商品後 24 小時內拍照並聯繫客服,我們會立即為您換貨...
⚠️ 警告:沒有找到相似度超過 0.5 的相關文檔!
💬 使用 RAG 生成答案...
✨ 答案:
非常感謝您的提問!不過,這個問題超出了我們知識庫的範圍。建議您直接聯絡我們的客服人員,他們將非常樂意為您提供詳細的產品資訊。謝謝您的理解!
========================================
相似度門檻機制說明
========================================
🔑 核心改進:
1️⃣ 設定相似度門檻(預設 0.5)
- 超過門檻:視為相關,提供給 LLM
- 低於門檻:視為不相關,過濾掉
2️⃣ 沒有相關文檔時的處理
- 明確告知 LLM「找不到相關資訊」
- LLM 會禮貌地拒絕回答
- 建議用戶聯絡客服人員
3️⃣ 更嚴格的 System Prompt
- 要求「嚴格根據知識庫」
- 禁止「編造或推測」
- 強調「無法回答請明確告知」
========================================
門檻值選擇建議
========================================
📏 常見門檻值:
0.3 - 寬鬆(可能包含弱相關內容)
0.5 - 平衡(推薦,本 demo 使用)
0.7 - 嚴格(只返回高度相關內容)
0.8 - 極嚴格(幾乎要完全匹配)
💡 建議:
- 先從 0.5 開始測試
- 觀察實際查詢的相似度分佈
- 根據業務需求調整
========================================
Pattern 13 vs Pattern 14 對比
========================================
Pattern 13(基礎版):
❌ 永遠返回 Top-K 結果
❌ 不管相似度多低都會給 LLM
❌ 可能導致「亂回答」
Pattern 14(門檻版):
✅ 過濾低相似度結果
✅ 沒有相關內容時明確拒絕
✅ 避免幻覺(hallucination)
✅ 生產級 RAG 必備機制
💡 提示:實際應用中,門檻值可根據業務需求調整
原始碼
https://github.com/howtomakeaturn/ai-agent-pattern-notes/tree/main/patterns/14-rag-with-threshold
我剛測試了一下 demo 13 其實 沒有門檻機制 但回答的 也沒有很差
是嗎?
【問題】你們有賣 iPhone 嗎?
--- 無 RAG 的回答 ---
💬 無 RAG(LLM 直接回答)...
您好!我們的商店目前有販售 iPhone。您想了解特定型號或有其他問題嗎?
--- 使用 RAG 的回答 ---
🔍 檢索相關文檔...
查詢: 你們有賣 iPhone 嗎?
📊 相似度排名 (Top 3):
1. [0.3436] 退換貨政策.txt - 瑕疵品處理:
若收到商品有瑕疵或損壞,請於收到商品後 24 小時內拍照並聯繫客服,我們會立即為您換貨或退款。...
2. [0.3100] 客製化商品說明.txt - 客製化內容限制:
文字刻字:最多 20 個中文字或 40 個英文字母
照片規格:建議解析度 300dpi 以上,檔案大小...
3. [0.3075] 客製化商品說明.txt - 客製化商品說明...
💬 使用 RAG 生成答案...
✨ 答案:
很抱歉,根據我們的知識庫,目前沒有提供 iPhone 的銷售資訊。如有其他商品需求或問題,歡迎隨時詢問!
【問題】你們賣什麼產品?
--- 無 RAG 的回答 ---
💬 無 RAG(LLM 直接回答)...
我們的產品範圍相當廣泛,涵蓋了電子產品、家居用品、服飾配件、美妝保養、運動器材等多個類別。您可以訪問我們的網站,以查看具體的產品類別和最新的商品。如果您有特定需要的產品,請告訴我,我可以幫您找到相關信息!
--- 使用 RAG 的回答 ---
🔍 檢索相關文檔...
查詢: 你們賣什麼產品?
📊 相似度排名 (Top 3):
1. [0.4835] 客製化商品說明.txt - 客製化商品說明...
2. [0.3971] 客製化商品說明.txt - 什麼是客製化商品:
客製化商品包括刻字蛋糕、照片蛋糕、特殊造型蛋糕、個人化禮盒等需要根據您的需求特別製作的商品。...
3. [0.3603] 退換貨政策.txt - 瑕疵品處理:
若收到商品有瑕疵或損壞,請於收到商品後 24 小時內拍照並聯繫客服,我們會立即為您換貨或退款。...
💬 使用 RAG 生成答案...
✨ 答案:
我們主要銷售客製化商品,包括刻字蛋糕、照片蛋糕、特殊造型蛋糕以及個人化禮盒等,這些商品都是根據您的需求特別製作的。
你觀察得很對!確實,在這兩個測試案例中,即使沒有門檻機制,GPT-4o-mini 的表現也不錯:
✅ iPhone 問題(相似度 0.34)→ 正確拒絕
✅ 產品問題(相似度 0.48)→ 基於檢索內容回答
但為什麼還需要門檻機制?
✅ 在明顯不相關時(如 iPhone)表現好
⚠️ 在「似是而非」時容易出錯
❌ 在不同模型、不同 prompt 下不穩定
LLM 可能認為「有點相關」就強行回答
容易產生「聽起來對但實際錯」的答案
| 維度 | 無門檻(依賴 LLM) | 有門檻(程式控制) |
|---|---|---|
| 可控性 | 不可預測 | 明確數值,行為可預測 |
| 成本 | 所有結果都送 LLM | 過濾後才送,省 token |
| 一致性 | 依賴 model 良心 | 100% 一致 |
| 可調整 | 只能改 prompt | 可調門檻值 |
| 可追蹤 | 不知為何拒絕 | 知道是相似度太低 |
總結
你的觀察是對的:現代 LLM 確實有一定自我判斷能力
但 Pattern 14 的門檻機制是生產級 RAG 的保險機制:
建議: