weaviate/VerbaView GitHub Homepage for Latest Official Releases
基於 Weaviate 的開源檢索增強生成 (RAG) 聊天機器人,提供端到端、流暢且使用者友善的 RAG 解決方案
BSD-3-ClausePythonVerbaweaviate 7.4k Last Updated: July 14, 2025
Verba 專案詳細介紹
專案概述
Verba 是一個由 Weaviate 開發的開源檢索增強生成 (RAG) 應用程式,被譽為「The Golden RAGtriever」。它提供了一個端到端、流暢且使用者友善的 RAG 解決方案,使用者可以透過簡單的步驟探索資料集並提取洞察,無論是在本地使用 Ollama 和 Huggingface,還是透過 LLM 提供商如 Anthropic、Cohere 和 OpenAI。
核心特性
🤖 模型支援
- 本地模型: 支援 Ollama (如 Llama3) 和 HuggingFace 模型
- 雲端模型: 整合 OpenAI、Anthropic、Cohere、Groq、Novita AI、Upstage 等主流 AI 服務商
- 嵌入模型: 支援多種嵌入模型,包括 Weaviate、SentenceTransformers、VoyageAI 等
📁 資料支援
- 檔案類型: 支援 .txt、.md、.pdf、.csv、.docx、.pptx 等多種格式
- 資料來源: 可從本地檔案系統、GitHub 儲存庫、URL 等匯入資料
- 特殊功能:
- 透過 Firecrawl 進行網頁抓取
- 透過 UpstageDocumentParse 解析文件
- 透過 AssemblyAI 處理音訊檔案
✨ RAG 功能特性
- 混合搜尋: 結合語義搜尋和關鍵字搜尋
- 自動補齊建議: 提供查詢建議功能
- 智慧過濾: 支援按文件、文件類型等進行過濾
- 可客製化中繼資料: 完全控制中繼資料設定
- 非同步攝取: 非同步資料攝取以提高處理速度
🗡️ 文件分塊技術
- Token 分塊: 基於 Token 進行文件分塊
- 句子分塊: 使用 spaCy 進行句子級別分塊
- 段落分塊: 支援段落級別的文件分塊
技術架構
Verba 採用模組化架構設計,將 RAG 過程分解為幾個獨立的模組化步驟,包括:
- ReaderManager: 接收字串列表(路徑、URL 或文本),輸出 Verba 文件列表
- ChunkerManager: 接收文件列表並將每個文件文本分塊為更小的片段
- EmbeddingManager: 接收文件列表並將其嵌入到 Weaviate 中
部署方式
💻 本地部署
使用 Weaviate Embedded 在本地運行:
pip install goldenverba
verba start
🐳 Docker 部署
git clone https://github.com/weaviate/Verba
docker compose up -d --build
🌩️ 雲端部署
連接到 Weaviate Cloud Services (WCS) 實例
⚙️ 自訂部署
支援連接到自託管的 Weaviate 實例
使用流程
1. 環境配置
建立 .env
檔案配置 API 密鑰:
# OpenAI 配置
OPENAI_API_KEY=your_openai_key
# Anthropic 配置
ANTHROPIC_API_KEY=your_anthropic_key
# Weaviate 雲端配置
WEAVIATE_URL_VERBA=your_weaviate_url
WEAVIATE_API_KEY_VERBA=your_weaviate_key
# Ollama 本地配置
OLLAMA_URL=http://localhost:11434
2. 資料匯入
- 透過 Web 介面選擇 "Import Data"
- 支援添加檔案、目錄或 URL
- 可對每個檔案進行個人化配置
3. 配置 RAG 管道
在 "Config" 頁面配置:
- 選擇嵌入模型
- 選擇生成模型
- 設定分塊策略
- 配置檢索參數
4. 開始對話
在 "Chat" 頁面:
- 輸入問題獲得相關答案
- 查看語義相關的文件片段
- 獲得 AI 生成的綜合回答
特色功能
📊 3D 向量視覺化
提供向量資料的 3D 視覺化介面,幫助使用者理解資料分佈
🎨 可客製化前端
完全可客製化的前端介面,支援品牌客製化
🔄 語義快取
利用 Weaviate 的語義快取功能,嵌入生成的響應和查詢,確保重複查詢透過檢查快取中之前處理的語義相同查詢來快速處理。
🤝 RAG 函式庫整合
- LangChain: 已支援 LangChain RAG 管道
- Haystack: 計劃支援
- LlamaIndex: 計劃支援
應用場景
- 個人知識管理: 建構個人文件庫的智慧查詢系統
- 企業文件檢索: 幫助員工快速找到相關企業文件和資訊
- 研究輔助: 協助研究人員分析和查詢研究資料
- 客戶服務: 建構基於企業知識庫的智慧客服系統
- 教育培訓: 建立互動式學習材料查詢系統
專案狀態
該專案由社群驅動,Weaviate 提供開源支援。雖然團隊努力快速解決問題,但維護緊迫性可能不如生產軟體。歡迎社群貢獻以幫助專案穩定運行。
技術要求
- Python 版本: >=3.10.0, <3.13.0
- 作業系統: Linux、macOS(Windows 上的 Weaviate Embedded 暫不支援)
- 硬體: 根據選擇的模型和資料量而定
開源貢獻
專案歡迎各種形式的貢獻:
- 功能改進和錯誤修復
- 文件完善
- 新功能建議
- 測試和回饋
未來發展
根據專案路線圖,計劃中的功能包括:
- 進階查詢功能(基於 LLM 評估的任務委託)
- 重排序功能(基於上下文的結果重排序)
- RAG 評估介面
- 更多 RAG 函式庫整合
Verba 代表了 RAG 技術的最佳實踐實現,為使用者提供了一個功能強大、易於使用的智慧文件查詢解決方案。