VIBE CODING 新手村 · 第 1 課

RAG:合法讓 AI
帶小抄進考場的技術

一小時,搞懂 RAG(Retrieval-Augmented Generation,檢索增強生成)到底在幹嘛。 上完這堂課,「向量資料庫」「embedding」「語意檢索」這些名詞會從咒語變成常識—— 而且你會知道它跟「建一個資料庫」根本是兩回事。

60 分鐘
課程總長
7 個章節
循序漸進
0 行數學
保證無公式
3 個互動
動手玩、不用背
⏱ 5 分鐘

第 1 章 · 開場破題閉卷考的天才,為什麼一直唬爛

先想像一個場景:

你認識一位超狂的學霸。他讀過的書多到嚇死人,講話頭頭是道,寫作文行雲流水。 但他有兩個致命弱點:第一,他的知識停在畢業那一天——之後世界發生什麼事他一概不知; 第二,考試的時候如果碰到不會的題目,他不會空白,他會用超有自信的語氣掰一個答案給你, 掰得有模有樣,連他自己都信了。

這位學霸,就是 LLM。而他考的每一場試,都是閉卷考——只能靠腦袋裡訓練時記下的東西作答。

問他「我們公司的請假規則是什麼?」
他沒讀過你公司的員工手冊,
但他還是會回答
這就是問題所在。

所以閉卷考的學霸有三大死穴:

那怎麼辦?重新訓練一個懂你公司文件的模型?太貴,而且文件一改又要重練。 把全部文件每次都貼進對話?文件一多就塞爆(而且貴到哭)。

💡 RAG 的解法:把閉卷考改成開卷考

與其逼學霸「背下你的所有資料」,不如讓他考試的時候可以翻資料。 每次有人提問,先去你的文件堆裡把「跟這題最相關的幾段」翻出來, 夾在考卷旁邊給他看,再讓他作答。這就是 RAG—— Retrieval(檢索:把相關資料翻出來)+ Augmented(增強:夾進考卷)+ Generation(生成:學霸看著資料寫答案)。

整堂課抓住這一句就夠了:「RAG = 先翻書、再作答。」 前半段「翻書」叫檢索,後半段「作答」叫生成。接下來我們把這兩段拆開講透。

⏱ 9 分鐘

第 2 章 · 核心比喻考場裡的神隊友

開卷考聽起來很美好,但考過開卷考的人都知道一個殘酷真相: 資料帶得越多,越翻不到重點。 抱一整箱講義進考場,鐘響開始翻,翻到交卷還在翻——開卷考死最慘的,往往是資料帶最多的人。

LLM 也一樣。它的「桌面」(context window,一次能讀的文字量)有限, 你不可能把 200 頁的文件整箱倒給它,而且就算塞得下,資訊太雜它也會抓錯重點。 所以真正的關鍵不是「能不能翻書」,而是——誰幫你翻到對的那一頁?

登場:兩人一組的考試小隊

想像這場開卷考不是一個人考,是兩人小隊

  • 🔍 翻書手——考前就把你的所有資料讀過一輪,剪成一張張小抄卡片, 並且按照「內容意思」整理好。考試鐘一響,他聽完題目,唰唰唰三秒抽出最相關的三張卡片,拍在桌上。 他不負責作答,他只負責找。他甚至不用很聰明,但手要快、要準。
  • ✍️ 寫手——就是第 1 章那位文筆爆棚的學霸(LLM)。他看著翻書手遞來的卡片, 用自己的話把答案寫得漂亮、講得白話、統整成一段人話。 卡片上沒有的,他(理論上)不該自己加戲。

這個分工就是 RAG 的全部靈魂:

🧠 為什麼一定要兩個人?一個人不行嗎?

因為這兩件事需要的能力完全不同。「在一百萬張卡片裡三秒找到對的那張」需要的是又快又便宜的比對能力, 根本不需要會寫作文;「把三張卡片寫成一段通順人話」需要的是語言能力,但不需要記得一百萬張卡片。 讓學霸自己翻一百萬張卡片?慢、貴、桌子還放不下。讓翻書手自己寫答案?他只會把卡片原文丟你臉上。 分工,才是 RAG 聰明的地方。

本課的貫穿範例:滷味店秘笈

接下來全程用同一個例子。假設你開了一家滷味店,多年心血寫成一本 200 頁的《滷味秘笈》: 配方、滷製時間、客訴處理、每日 SOP 全在裡面。 現在你想做一個「新員工問答機器人」——員工用 LINE 問問題,機器人根據秘笈回答。

直接把問題丟給 LLM?它沒讀過你的秘笈,會掰一套「通用滷味理論」給你。 這正是 RAG 的主場:翻書手負責翻秘笈,寫手負責回 LINE。 下一章,我們先解剖翻書手。

✋ 隨堂快問RAG 系統裡,「檢索」和「生成」兩個階段的分工是?
翻書手(檢索)只找不寫,寫手(生成)只寫不找。 兩人之間的交棒物就是「找出來的那幾段文字」——它是檢索的輸出,也是生成的輸入。
⏱ 12 分鐘

第 3 章 · 檢索 RETRIEVAL神隊友怎麼在 200 頁裡秒翻到那一頁

翻書手的工作分成兩個時期:考前準備(一次做好,之後重複用)和 考試當下(每次有人提問就跑一遍)。我們用步進器全程跟拍—— 按「下一步」,看《滷味秘笈》怎麼一路變成三秒可查的小抄系統。

🔬 RAG 生產線直播

重點放大:什麼是 embedding?(保證無公式版)

剛剛生產線裡最玄的一步,就是「把文字變成意義座標」——術語叫 embedding(嵌入向量)。 別怕,它的直覺其實超簡單:

想像一張巨大的「意義地圖」。每一段文字,都可以在這張地圖上釘一根圖釘。 釘的位置不是照筆畫、不是照注音,而是照「意思」

  • 「太鹹了怎麼補救」和「鹹度過高之補救措施」——用字幾乎沒重疊,但意思像雙胞胎,圖釘釘在隔壁
  • 「豆干滷 45 分鐘」和「本月營業額報表」——意思八竿子打不著,圖釘隔了十萬八千里
  • embedding 模型(一種專門做這件事的 AI)負責幫每段文字算出圖釘座標——實際上是一長串數字,但你只要記得「意思越近、座標越近」就夠用一輩子。

有了意義地圖,「找相關資料」就從「比對字面」變成「比距離」: 把使用者的問題也釘上地圖,看哪幾張卡片的圖釘離它最近,抽出來就對了。 這就是所謂的向量相似度搜尋——聽起來很厲害,本質就是在地圖上找鄰居。 而專門存這些座標、負責快速找鄰居的資料庫,就叫向量資料庫

🎮 動手實驗:關鍵字警衛 vs 語意雷達

口說無憑,直接玩。下面是《滷味秘笈》切出來的五張卡片, 請你挑一個「新員工會問的問題」,看看傳統關鍵字搜尋(比對字面,像 Ctrl+F) 和語意檢索(比意義距離)各自交出什麼成績。

📇 知識庫裡的五張卡片:

👇 選一個問題丟進去:

※ 相似度百分比為教學示意值,非真實模型即時計算。

💡 你剛剛看到的三件事

1️⃣ 字面一樣時,關鍵字搜尋也能贏。問「豆干」查「豆干」,Ctrl+F 又快又準——關鍵字搜尋不是廢物。
2️⃣ 換句話說,關鍵字就瞎了。「太鹹」vs「鹹度過高」、「奧客」vs「客訴」——人類換個說法毫無壓力,字面比對直接暴斃。
3️⃣ 語意雷達給的是「排行榜」,不是「有/沒有」。它永遠能排出最近的幾張卡片——這也是雙面刃:就算庫裡根本沒有答案,它還是會硬撈幾張「最不遠」的給你。檢索品質是 RAG 的第一道生死關。

✋ 隨堂快問RAG 為什麼要把文件切塊後轉成 embedding(意義座標)?
核心目的就是語意檢索:意思相近的文字在地圖上是鄰居,所以「太鹹怎麼辦」能撈到「鹹度過高之補救措施」。 這是關鍵字比對永遠做不到的事。
⏱ 10 分鐘

第 4 章 · 生成 GENERATION拿到小抄之後,換學霸上場

翻書手把三張卡片拍在桌上了。接下來的問題是:這些卡片怎麼「餵」給 LLM? 答案樸實到你可能會失望——就是把卡片內容當成文字,直接夾進 prompt 裡。 沒有神秘通道、沒有把知識「灌進模型腦袋」,就是複製貼上等級的操作。

員工問「客人說太鹹怎麼辦?」,你的程式實際送給 LLM 的考卷長這樣:

SYSTEM · 考試規則 你是滷味店的新人訓練助手。請「只根據」下方參考資料回答問題; 資料裡沒有的,就老實說不知道,不准自己發揮。
CONTEXT · 翻書手剛撈到的三張卡片 【卡片 A】鹹度過高之補救措施:立即加入等量清水與少許冰糖,回滷十分鐘…
【卡片 C】客訴處理原則:先道歉、再補償小菜一份、最後記錄於交接本…
【卡片 D】每日打烊前,滷汁需過濾並冷藏保存…
USER · 員工的原始問題 客人說太鹹怎麼辦?

LLM 收到這張「組裝考卷」之後,做它最擅長的事:讀懂、消化、統整、用人話回答——

🗣️ 模型的回答(示意):

「別慌,分兩件事處理:對客人——先道歉,補一份小菜,並記錄到交接本(卡片 C); 對那鍋滷汁——加等量清水和少許冰糖回滷十分鐘補救(卡片 A)。」

注意它做了幾件關鍵字搜尋永遠做不到的事: 把兩張不同卡片的內容組合成一個完整答案、 自動忽略不相關的卡片 D(打烊 SOP 跟這題無關)、 而且是用回答問題的口吻講,不是把原文丟你臉上。 這就是「Generation」三個音節的全部價值:開卷考不是抄書比賽,是看著資料寫出自己的答案。

兩階段怎麼銜接?一張圖看懂

🧑 員工:「客人說太鹹怎麼辦?」
問題進來
🔍 檢索階段(你的程式 + 向量資料庫)
翻書手上工:這一段完全沒有 LLM 參與
把問題釘上意義地圖 找出座標最近的卡片 輸出:3 段最相關的原文
交棒!卡片 + 規則 + 原問題,組裝成一份 prompt
✍️ 生成階段(LLM)
寫手上工:讀卡片 → 統整 → 生成自然語言回答
跨卡片整合 忽略無關內容 用人話回答
回答送回員工的 LINE
☠️ 生成階段的鐵律:垃圾進,垃圾出

寫手再會寫,翻書手翻錯頁就全毀了。如果檢索撈回來的是打烊 SOP 和營業額報表, LLM 也只能對著錯的資料硬寫——而且寫得跟真的一樣流暢。 所以 RAG 系統出包時,永遠先檢查檢索撈到了什麼,再來怪模型。 八成的「RAG 回答很爛」,兇手是翻書手,不是寫手。

✋ 隨堂快問檢索到的資料是「怎麼」進到 LLM 的?
沒有魔法,就是「夾進 prompt」。模型讀完這一次就忘(它是無狀態的), 下一個問題來,翻書手重新撈、重新組裝、重新夾。RAG 沒有改變模型本身一絲一毫。
⏱ 10 分鐘

第 5 章 · 核心對決「我建個資料庫就好了吧?」——差很多,差在這

每次講完 RAG,一定有同學舉手:「等等,我把秘笈打進資料庫,做個搜尋功能,不就好了? 幹嘛搞什麼向量、什麼 LLM?」 好問題,這正是本課的大魔王題。我們讓兩位選手同場競技三回合,你自己看差在哪。

左邊選手:純知識資料庫(文件存好 + 關鍵字搜尋,像公司內網的文件系統)。 右邊選手:RAG(語意檢索 + LLM 生成)。

第一回合:換句話說 —— 「太鹹」事件

新員工小美在 LINE 上問:「客人說太鹹怎麼辦?

→ 差異一:純資料庫比對「字」,RAG 比對「意思」。 人類天生就是換句話說的生物,沒有人會照著你文件裡的措辭提問。 這不是小缺陷,這是關鍵字系統在真實世界的第一死因。

第二回合:就算找到了 —— 「40 頁 PDF」事件

這回合我們讓純資料庫贏在起跑點:小美這次搜「客訴」,真的命中了!系統回傳—— 《客訴暨異常事件處理辦法(v3,含附錄)》,40 頁。

→ 差異二:純資料庫交付「原文」,RAG 交付「答案」。 找到文件只是完成一半——「從文件到答案」中間那段理解、篩選、統整的工, 純資料庫留給人類,RAG 交給 LLM。

第三回合:跨文件整合 —— 「開新分店」事件

店長問了一個大題目:「如果我要開第二家分店,秘笈裡哪些 SOP 需要先標準化?

→ 差異三:純資料庫只能回答「文件裡寫過的」,RAG 能回答「文件內容能推出來的」。 因為多了一顆會理解、會綜合的腦(LLM),零散的段落才能變成觀點。

🤝 講句公道話:它們不是敵人,是上下游

別誤會這是「資料庫過時了」的故事。RAG 的肚子裡就有一個資料庫(向量資料庫,存卡片和座標), 很多正經系統還會關鍵字+語意兩路並用(術語叫混合檢索)——查貨號、查訂單編號這種精確比對, 關鍵字反而是王者。正確的理解是:
RAG = 資料庫(存)+ 語意檢索(懂你在問什麼)+ LLM(把找到的變成答案)。
純資料庫是一座圖書館;RAG 是圖書館加上一位聽得懂人話的館員。差的從來不是那些書,是那個人。

情境🗄️ 純知識資料庫📡 RAG
換句話說提問字面對不上 → 查無資料意義地圖找鄰居 → 照樣命中
找到之後丟給你整份原文,自己讀LLM 消化成直接回答問題的人話
答案散在多份文件無法整合,逐份自己翻跨段落統整成一個答案
擅長的事精確查找(編號、庫存、報表)用自然語言問知識、要解釋

(這張表是給你考前抽背用的——上面三回合的故事才是本體。)

✋ 隨堂快問「建 RAG」和「建一個純知識資料庫」最核心的差別是?
兩大差異缺一不可:檢索端從「比對字」升級成「比對意思」(embedding 立功), 輸出端從「丟原文」升級成「生成答案」(LLM 立功)。 注意 RAG 內部仍然有資料庫——向量資料庫,所以「不需要儲存資料」是錯的。
⏱ 9 分鐘

第 6 章 · 學以致用你下個專案,大概率就會撞到它

這堂課不是通識課。你是用 AI 工具寫程式、想做 Agent 的人—— 以下四個場景,就是 RAG 會出現在你人生裡的地方。

① 「幫我的文件做一個問答機器人」——經典 RAG 專案

個人筆記庫、公司內部文件、產品說明書、課程講義……只要有人說出 「我想直接用問的,不想自己翻」,就是 RAG 的招牌案型。 你現在已經知道整條生產線:切塊 → 算座標 → 存向量資料庫 → 問題進來 → 撈卡片 → 組 prompt → 生成。 Vibe coding 的好消息是:每一步都有現成的函式庫和服務,你不需要自己實作任何一步的內部細節—— 但你需要懂每一步在幹嘛,不然出了問題連該罵哪一段都不知道。

② Agent 的「查資料」工具——RAG 是 Agent 的外接大腦

做 Agent 時,檢索通常被包裝成一個工具(tool)—— 例如透過 MCP 這類協定掛給 Agent 一個「搜尋知識庫」的工具。差別在於:

你會發現這只是把「翻書手」從流水線工人升級成「學霸可以隨時使喚的助手」—— 概念一模一樣,只是誰握有「要不要翻書」的決定權變了。

③ Context window 的救星——為什麼不「全部塞進去」

你一定會想:「現在模型的 context window 那麼大,把整份文件塞進去不就好了?」 小文件——對,就這麼做,十頁的東西別折腾什麼向量資料庫,直接全文貼進去又準又省事。 但文件一旦上了量級:

④ Debug 心法:出事先驗「翻書手」

你的 RAG 專案上線後回答很爛,怎麼辦?記住第 4 章的鐵律,照這個順序查:

  1. 先印出檢索結果。看撈回來的卡片跟問題有沒有關係。八成的爛答案,兇手在這裡: 切塊切得太碎(卡片語意殘缺)、切太大(一張卡片混了三個主題)、或庫裡根本沒這份資料。
  2. 再看組裝的 prompt。指示有沒有講清楚「只根據參考資料回答、沒有就說不知道」?
  3. 最後才調模型。換更強的模型是最貴、也最常被高估的解法。 給學霸換一個更貴的學霸,救不了翻錯頁的翻書手。
🗺️ 一張表總結:需求 → 你該想到什麼

「想用問的查自己的文件」→ 經典 RAG 管線。
「Agent 需要查外部知識」→ 把檢索包成工具掛給它。
「文件只有幾頁」→ 別建 RAG,全文塞 context 就好。
「查訂單編號、精確欄位」→ 用傳統資料庫查詢,別硬上語意檢索。
「RAG 答得很爛」→ 先印檢索結果,再檢查 prompt,最後才換模型。

⏱ 5 分鐘

第 7 章 · 結業考畢業前,五題定生死

全對的人,從此聽到「向量資料庫」不再肅然起敬。答錯也沒關係,解釋就在下面。

Q1.RAG 裡「檢索(Retrieval)」階段的任務是?
檢索 = 翻書手:只負責「找出最相關的卡片」,不負責作答。 它的輸出(幾段原文)就是下一棒生成階段的輸入——這就是兩階段的銜接點。
Q2.員工手冊寫「鹹度過高之補救措施」,使用者問「太鹹怎麼辦」。RAG 為什麼找得到、關鍵字搜尋找不到?
關鍵是語意檢索:比的是「意思的距離」而不是「字面有沒有出現」。 不需要同義詞辭典、不需要改寫——意義地圖上它們天生就是鄰居。
Q3.「建 RAG」比「建純知識資料庫」多出來的兩件關鍵能力是?
一個在輸入端(懂你在問什麼),一個在輸出端(把原文變答案)。 速度和儲存反而常是純資料庫贏——所以查訂單編號這種精確任務,別硬上 RAG。
Q4.檢索到的三段文字,是怎麼讓 LLM「知道」的?
RAG 完全不改變模型本身——沒有訓練、沒有永久記憶、模型也沒有伸手查庫。 一切都是「這一回合的 prompt 夾帶」,下一題來就整套重跑。
Q5.你的 RAG 機器人回答品質很差。根據本課心法,第一步該做什麼?
垃圾進、垃圾出:檢索撈錯,再強的模型也只能對著錯資料流暢地錯下去。 八成的 RAG 問題出在檢索端(切塊方式、資料缺漏),先驗翻書手,最後才怪寫手。

🎓 帶走這 5 句話(其他都可以忘)

  1. RAG = 先翻書、再作答:檢索找出相關段落,生成把段落寫成人話。
  2. embedding 是意義地圖上的座標:意思越近、釘得越近,所以換句話說也找得到。
  3. 檢索的輸出就是生成的輸入,交棒方式就是夾進 prompt——模型本身一毫米都沒被改動。
  4. 純資料庫比對字面、交付原文;RAG 比對意思、交付答案
  5. RAG 出包,先驗翻書手(檢索結果),最後才怪寫手(模型)。
下次有人問你「RAG 是什麼」,
你可以微笑著說:
「就是幫一個很會寫但畢業後就沒讀書的學霸,
請了一位考前整理小抄、考中秒翻重點的神隊友。」

想有人手把手帶你,把 AI 真的用進日常?

我是 Lewis,開了 AgentVibe 補習班,一對一線上教學,60 分鐘幫你裝好自己的 AI 助理——不用工程背景,只要會打字。

預約試上 →