go-rag: 突破 Python 壟斷的 Golang RAG 系統
💡 項目概述
https://github.com/wangle201210/go-rag
是基於 Golang 實現的企業級知識庫檢索增強生成系統,打破 RAG 領域 Python 一家獨大的局面。集成多知識庫管理、智能文檔解析、QA 優化、查詢重寫、多路召回、重排序、MCP 協議等核心功能,爲 Golang 開發者提供開箱即用的 RAG 解決方案。
🎯 解決的核心痛點
痛點一:語言生態侷限
現有開源 RAG 項目幾乎清一色使用 Python,對 Golang 技術棧的團隊不友好,遷移成本高、維護困難。
痛點二:檢索精度不足
單一檢索路徑、chunk 粒度不合理、缺乏查詢優化,導致召回質量低下。
痛點三:系統集成複雜
缺乏標準化集成口,與現有系統對接困難。
🔥 核心技術
- 多格式支持: 標題結構優化: 動態合併策略智能 QA 生成
- 雙路召回機制查詢重寫引擎智能去重重排 MCP 協議集成
🛠️ 技術棧
📄 系統模塊
-
知識庫管理模塊
知識庫的創建、編輯、刪除和查詢功能。
文檔索引模塊 上傳前需要選擇對應的知識庫,支持多種格式文檔(如 markdown、PDF、html)的解析和索引。該模塊會將文檔分割成適當大小的片段,並通過嵌入模型生成向量表示,存儲到 es 中。目前對 markdown 文檔做了很多優化,建議把文檔都轉換成 markdown 後上傳
文檔檢索模塊 用於測試從知識庫中檢索相關文檔片段。系統會對用戶查詢進行向量化,然後進行多路召回和重排序,返回最相關的文檔片段。
智能問答模塊 結合用戶問題和檢索到的文檔片段,通過大語言模型生成回答。系統會將檢索結果作爲上下文提供給模型,使回答更加準確,支持流式輸出,支持多輪對話。
MCP 模塊 提供了與其他系統集成的能力,支持多種集成方式,如 stdio、SSE 和 HTTP。這使得 Go-RAG 可以作爲一個服務被其他應用調用,例如集成到 DeepChat 中。大模型會根據用戶問題自動選取符合的知識庫進行檢索,無需手動指定。
⚡ 快速開始
源碼啓動可查看 github 項目 [1] 根目錄的 readme 文檔
🚧 發展路線圖
- Chunk 管理優化異步索引處理
⚠️ 最佳實踐
知識庫名稱務必與內容高度相關,MCP 模式下系統會根據名稱和描述自動選擇檢索目標。
- config_demo.yaml
項目地址:https://github.com/wangle201210/go-rag
🎉 您的 Star 是我們持續創新的最大動力!
打造 Golang RAG 領域的標杆項目,讓每個 Go 開發者都能輕鬆構建智能問答系統!
本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源:https://mp.weixin.qq.com/s/lY3Luc7dIYF1cK5IIZL-xg