iT邦幫忙

2026 iThome 鐵人賽

DAY 23
0
ChatGPT & Codex

AI 不只會聊天:30 天打造 VoCare 智慧陪伴系統系列 第 23 篇

Day 23|Grounded Generation:怎麼讓 AI 根據找到的資料回答?

  • 分享至 

  • xImage
  •  

前幾天已經把 RAG 前面的流程整理得差不多了:

Chunking
→ Embedding
→ Vector Database
→ Retrieval
→ Reranking

做到這裡之後,系統已經可以找出和使用者問題最相關的內容。

但還有最後一個問題:

找到資料之後,要怎麼讓 AI 真的根據這些資料回答?

這就是今天要整理的 Grounded Generation。


什麼是 Grounded Generation?

Grounded Generation 可以簡單理解成:

讓 AI 的回答建立在提供的資料上,而不是只依賴模型本身的知識。

例如使用者問:

VoCare 的語音功能要怎麼使用?

系統透過 Retrieval 找到:

點擊聊天畫面下方的麥克風按鈕後,即可開始語音輸入。

這時候 AI 應該根據這段資料回答,而不是自己猜測系統裡可能有哪些按鈕。

所以流程會變成:

使用者問題
→ 找到相關資料
→ 將資料提供給 AI
→ AI 根據資料產生回答


找到資料,不代表 AI 一定會照著回答

即使 Retrieval 找到正確內容,如果 Prompt 沒有寫清楚,AI 還是可能加入資料裡沒有出現的資訊。

所以在把 Chunk 交給 AI 時,需要同時加入一些規則。

例如:

  • 優先根據提供的資料回答
  • 不要自行補充資料中沒有的內容
  • 如果資料不足,要直接說目前無法確認
  • 不要把推測當成事實

這樣可以降低 AI 在回答時產生不必要內容的機會。


Prompt 裡通常會放什麼?

一個簡化的 RAG Prompt,可以包含三個主要部分:

1. 回答規則

告訴 AI 應該如何使用資料。

2. Retrieved Context

放入 Retrieval 和 Reranking 後留下的相關 Chunk。

3. User Question

最後才放使用者真正提出的問題。

所以可以整理成:

**Instruction

  • Retrieved Chunks
  • User Question
    → AI Response**

如果找不到資料怎麼辦?

RAG 很重要的一點是:

沒有找到足夠資料時,不應該硬回答。

例如使用者問了一個知識庫完全沒有收錄的問題。

這時候比較合理的做法是回答:

目前提供的資料中沒有足夠資訊可以確認。

而不是讓 AI 自己補出一個看起來合理的答案。

所以 RAG 不只是「幫 AI 找資料」。

同時也要讓 AI 知道:

什麼時候資料不足。


為什麼這一步很重要?

RAG 前面做得再完整,如果最後 AI 沒有正確使用 Retrieved Chunks,整套流程一樣沒有意義。

所以可以把整個 RAG 分成兩大部分:

Retrieval
→ 找到正確的資料

Generation
→ 根據正確的資料回答

兩邊都要做好,RAG 才真正完整。


上一篇
Day 22|Reranking:搜尋到了之後,還要再排一次順序嗎?
下一篇
Day 24|RAG Evaluation:怎麼知道 RAG 真的有回答對
系列文
AI 不只會聊天:30 天打造 VoCare 智慧陪伴系統 共 24 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言