Hi大家好,
這是我參加 iT 邦幫忙鐵人賽的第 1 次挑戰,這次的主題聚焦在結合 Python 爬蟲、RAG(檢索增強生成)與 AI,打造一套 PTT 文章智慧問答系統。在過程中,我會依照每天進度上傳程式碼到 GitHub ,方便大家參考學習。也歡迎留言或來信討論,我的信箱是 gerryearth@gmail.com。
今天,我們先從基礎概念出發,認識 RAG 的運作流程、向量資料庫的用途,以及 Pinecone 在專案中的關鍵角色,為後續的實作打好基礎。
RAG(Retrieval-Augmented Generation) 是一種結合「檢索」與「生成」的 AI 架構。它能讓大型語言模型(如 Gemini / GPT)在生成回答時,參考外部知識來源,提高準確性並減少幻覺。
雖然大型語言模型擁有龐大的知識,但:
一般資料庫(如 MariaDB)無法根據「語意」查詢資料。但我們可以把每一段文字轉成一個「向量」(Vector),代表其語意內容,再用向量比對來做檢索!
假設你輸入問題:「為什麼 PTT 八卦版總是那麼熱門?」
系統會:
Pinecone 是一個向量數據庫,專門設計來處理高維度向量資料,主要應用於相似度搜尋,例如在人工智慧和機器學習中的推薦系統、聊天機器人、圖像搜尋等場景。
會選擇 Pinecone 的最大原因是它有提供免費的額度,而且夠我們用來練習本次的專案!
之後我們也會將每篇文章切割成段落,並將段落向量儲存在 Pinecone 中,未來查詢時就能快速找到相關內容。
可參考此文章: Pinecone 申請與設定
明天【Day 17】建立向量資料庫基礎 - Gemini Embedding 與 Pinecone 初步串接
我們將開始動手,使用 Gemini API 將文章內容向量化,並實際將向量上傳至 Pinecone,打造語意檢索基礎!