檢索增強生成 RAG

Retrieval-Augmented Generation

檢索增強生成(RAG)是一種結合了檢索和生成的模型架構,旨在提高生成模型的性能。

RAG 通過引入外部知識庫,讓模型在生成回答時能夠查詢相關信息,從而生成更準確和上下文相關的回答。

這種方法在許多應用中都取得了顯著的效果,特別是在需要結合大量背景知識的任務中。

LangChain - RAG
專業聊天機器人

實作架構說明


  • 目標服務:專業領域問答機器人
  • 實作框架:LangChain
  • LLM:Google Gemini-2.5-Flash
  • 向量化Embeddings model:Google embedding-001
  • 向量儲存資料庫:Qdrant
  • 環境部署:Docker、FastAPI
範例展示架構圖:
RAG結構

實作專案:民法助手


文本向量化實作: 實作範例程式碼📖
RAG實作: 實作範例程式碼📖
  • 專業領域:法學
  • 專案目標:民法查詢助手機器人
  • 實作日期:2025/7 ~
  • 發現困難點:法律用語晦澀,難以語意匹配查詢問題,語意匹配查詢結果準確度非常差。
  • 解決方向:需進行「白話再解釋」後向量化,這裡在業界可能由專業律師團隊進行白話解釋編寫。雖可使用LLM逐條白話解釋再經專業審核的解決方案,本展示專案因成本因素考量放棄執行。
  • 學習與貢獻:了解LangGraph Agent的建立方法與Agent節點與決策邊界的建立、LangChain各個Chain的建立與運作、LangGraph調用RAG QAChain的流程與方法。
運行測試結果圖示:
RAG在法學領域的困難點

實作專案:食安法顧問


RAG實作: 實作範例程式碼📖
  • 專業領域:食品與安全
  • 專案目標:食安法顧問機器人
  • 實作日期:2025/7 ~
  • RAG語料方向:對食安法的條文內容進行問答式QA白話解釋,以QA的方式表達每條條文情境。使用Gemini-2.5-Flash進行大量的語料解釋與QA,再進行人工修改。
  • 前端展示:簡單的聊天對話框html/css呈現
  • 學習與貢獻:了解了語料使用QA情境的方式可以提高RAG準確度,但如果要更佳精準需要以大量人工審查或修改、新增QA語料的情境
  • 進一步提升準確度的方向:個人認為可能只設計大量「模擬問題」就足以提升語意檢索準確度,以本專案來說就是要產生大量問題來涵蓋法條情境;可以朝著"synthetic query expansion"(合成查詢擴展)、"semantic anchor augmentation"(語意錨定增強)的方向進行探索。
  • 環境部署:前端請求 → 後端Express → FastAPI → LangChain
Thunder Client API POST結果圖示:
POST
實際運行RAG系統對話成果展示: 點擊進入DEMO成果📖