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暂不支持)
- 硬件: 根据选择的模型和数据量而定
开源贡献
项目欢迎各种形式的贡献:
- 功能改进和bug修复
- 文档完善
- 新功能建议
- 测试和反馈
未来发展
根据项目路线图,计划中的功能包括:
- 高级查询功能(基于LLM评估的任务委托)
- 重排序功能(基于上下文的结果重排序)
- RAG评估界面
- 更多RAG库集成
Verba代表了RAG技术的最佳实践实现,为用户提供了一个功能强大、易于使用的智能文档查询解决方案。