OA0
OA0 是一个探索 AI 的社区
现在注册
已注册用户请  登录
OA0  ›  代码  ›  Verba — 专注个人知识库问答的极简 RAG 应用

Verba — 专注个人知识库问答的极简 RAG 应用

 
  evolve ·  2026-01-03 09:21:23 · 207 次点击  · 0 条评论  

Verba

The Golden RAGtriever - 社区版 ✨

Weaviate
PyPi downloads Docker support Demo

欢迎使用 Verba:The Golden RAGtriever,这是一个社区驱动的开源应用程序,旨在提供一个开箱即用、端到端、简化且用户友好的检索增强生成(RAG)界面。只需几个简单的步骤,即可轻松探索您的数据集并提取洞察,无论是通过本地的 Ollama 和 Huggingface,还是通过 Anthrophic、Cohere 和 OpenAI 等 LLM 提供商。这个项目是为社区而建,也由社区共建,请注意,它的维护可能不如其他 Weaviate 生产应用程序那样及时。欢迎随时为项目做出贡献,帮助我们让 Verba 变得更好!<3

pip install goldenverba

Verba 演示

什么是 Verba?

Verba 是一个完全可定制的个人助手,利用检索增强生成(RAG)来查询和与您的数据交互,支持本地或云端部署。它可以解答关于您的文档的问题,交叉引用多个数据点,或从现有知识库中获取洞察。Verba 将最先进的 RAG 技术与 Weaviate 的上下文感知数据库相结合。您可以根据个人用例,在不同的 RAG 框架、数据类型、分块与检索技术以及 LLM 提供商之间进行选择。

开源精神

Weaviate 很自豪能为社区提供这个开源项目。虽然我们努力尽快解决问题,但请理解,它的维护可能不如生产软件那样严格。我们欢迎并鼓励社区贡献,以帮助其平稳运行。非常感谢您帮助我们快速修复开放问题。

在此观看我们最新的 Verba 视频:

视频链接

功能特性列表

🤖 模型支持 已实现 描述
Ollama (例如 Llama3) ✅ 由 Ollama 驱动的本地嵌入和生成模型
HuggingFace (例如 MiniLMEmbedder) ✅ 由 HuggingFace 驱动的本地嵌入模型
Cohere (例如 Command R+) ✅ Cohere 的嵌入和生成模型
Anthrophic (例如 Claude Sonnet) ✅ Anthrophic 的嵌入和生成模型
OpenAI (例如 GPT4) ✅ OpenAI 的嵌入和生成模型
Groq (例如 Llama3) ✅ Groq 的生成模型 (LPU 推理)
Novita AI (例如 Llama3.3) ✅ Novita AI 的生成模型
Upstage (例如 Solar) ✅ Upstage 的嵌入和生成模型
🤖 嵌入支持 已实现 描述
Weaviate ✅ 由 Weaviate 驱动的嵌入模型
Ollama ✅ 由 Ollama 驱动的本地嵌入模型
SentenceTransformers ✅ 由 HuggingFace 驱动的嵌入模型
Cohere ✅ Cohere 的嵌入模型
VoyageAI ✅ VoyageAI 的嵌入模型
OpenAI ✅ OpenAI 的嵌入模型
Upstage ✅ Upstage 的嵌入模型
📁 数据支持 已实现 描述
UnstructuredIO ✅ 通过 Unstructured 导入数据
Firecrawl ✅ 通过 Firecrawl 抓取和爬取 URL
UpstageDocumentParse ✅ 通过 Upstage Document AI 解析文档
PDF 导入 ✅ 将 PDF 导入 Verba
GitHub & GitLab ✅ 从 Github 和 GitLab 导入文件
CSV/XLSX 导入 ✅ 将表格数据导入 Verba
.DOCX ✅ 导入 .docx 文件
多模态 (使用 AssemblyAI) ✅ 通过 AssemblyAI 导入和转录音频
✨ RAG 特性 实现状态 描述
混合搜索 ✅ 语义搜索与关键词搜索相结合
自动完成建议 ✅ Verba 提供自动完成建议
过滤 ✅ 在执行 RAG 之前应用过滤器(例如文档、文档类型等)
可自定义元数据 ✅ 自由控制元数据
异步导入 ✅ 异步导入数据以加速流程
高级查询 计划中 ⏱️ 基于 LLM 评估的任务委派
重排序 计划中 ⏱️ 根据上下文对结果重新排序以提高效果
RAG 评估 计划中 ⏱️ 用于评估 RAG 管道的界面
智能体 RAG 不在范围 ❌ 智能体 RAG 管道
图 RAG 不在范围 ❌ 基于图的 RAG 管道
🗡️ 分块技术 已实现 描述
令牌 ✅ 通过 spaCy 按令牌分块
句子 ✅ 通过 spaCy 按句子分块
语义 ✅ 按语义句子相似性分块和分组
递归 ✅ 基于规则递归分块数据
HTML ✅ 分块 HTML 文件
Markdown ✅ 分块 Markdown 文件
代码 ✅ 分块代码文件
JSON ✅ 分块 JSON 文件
🆒 额外亮点 实现状态 描述
Docker 支持 ✅ Verba 可通过 Docker 部署
可自定义前端 ✅ Verba 的前端可通过前端完全自定义
向量查看器 ✅ 在 3D 中可视化您的数据
多用户协作 不在范围 ❌ Verba 中的多用户协作
🤝 RAG 库 已实现 描述
LangChain ✅ 实现 LangChain RAG 管道
Haystack 计划中 ⏱️ 实现 Haystack RAG 管道
LlamaIndex 计划中 ⏱️ 实现 LlamaIndex RAG 管道

缺少了什么功能?欢迎创建新的 Issue 或讨论来提出您的想法!

Verba 展示


开始使用 Verba

您有三种部署 Verba 的选项:

  • 通过 pip 安装
pip install goldenverba
  • 从源码构建
git clone https://github.com/weaviate/Verba

pip install -e .
  • 使用 Docker 部署

前提条件:如果不使用 Docker,请确保您的系统已安装 Python >=3.10.0,<3.13.0。

git clone https://github.com/weaviate/Verba

docker compose --env-file <your-env-file> up -d --build

如果您不熟悉 Python 和虚拟环境,请阅读 Python 教程指南。

API 密钥和环境变量

您可以在 Verba 前端设置所有 API 密钥,但为了简化操作,我们也可以准备一个 .env 文件,Verba 会自动在其中查找密钥。在您要启动 Verba 的同一目录中创建一个 .env 文件。您可以在 goldenverba 目录中找到 .env.example 文件。

确保只设置您打算使用的环境变量,缺失或不正确的环境变量值可能导致错误。

以下是您可能需要的 API 密钥和变量的完整列表:

环境变量 值 描述
WEAVIATE_URL_VERBA 您托管的 Weaviate 集群的 URL 连接到您的 WCS 集群
WEAVIATE_API_KEY_VERBA 您托管的 Weaviate 集群的 API 凭证 连接到您的 WCS 集群
ANTHROPIC_API_KEY 您的 Anthropic API 密钥 获取 Anthropic 模型的访问权限
OPENAI_API_KEY 您的 OpenAI 密钥 获取 OpenAI 模型的访问权限
OPENAI_EMBED_API_KEY 您的 OpenAI 密钥 为嵌入使用不同的端点
OPENAI_BASE_URL OpenAI 实例的 URL 模型
OPENAI_EMBED_BASE_URL OpenAI 实例的 URL 为嵌入使用不同的端点
OPENAI_MODEL 选择 OpenAI 作为生成器时要使用的模型名称 默认值:端点返回的列表中的第一个模型
OPENAI_EMBED_MODEL 选择 OpenAI 作为嵌入器时要使用的 OpenAI 嵌入模型名称 默认值:text-embedding-3-small
OPENAI_CUSTOM_EMBED true | false 允许 Verba 识别自定义嵌入模型名称(不仅是 OpenAI 的)
COHERE_API_KEY 您的 API 密钥 获取 Cohere 模型的访问权限
GROQ_API_KEY 您的 Groq API 密钥 获取 Groq 模型的访问权限
NOVITA_API_KEY 您的 Novita API 密钥 获取 Novita AI 模型的访问权限
OLLAMA_URL 您的 Ollama 实例的 URL (例如 http://localhost:11434 ) 获取 Ollama 模型的访问权限
UNSTRUCTURED_API_KEY 您的 API 密钥 获取 Unstructured 数据导入的访问权限
UNSTRUCTURED_API_URL Unstructured 实例的 URL 获取 Unstructured 数据导入的访问权限
ASSEMBLYAI_API_KEY 您的 API 密钥 获取 AssemblyAI 数据导入的访问权限
GITHUB_TOKEN 您的 GitHub 令牌 获取通过 GitHub 导入数据的访问权限
GITLAB_TOKEN 您的 GitLab 令牌 获取通过 GitLab 导入数据的访问权限
FIRECRAWL_API_KEY 您的 Firecrawl API 密钥 获取通过 Firecrawl 导入数据的访问权限
VOYAGE_API_KEY 您的 VoyageAI API 密钥 获取通过 VoyageAI 使用嵌入模型的访问权限
EMBEDDING_SERVICE_URL 您的嵌入服务实例的 URL 获取通过 Weaviate 嵌入服务 使用嵌入模型的访问权限
EMBEDDING_SERVICE_KEY 您的嵌入服务密钥 获取通过 Weaviate 嵌入服务 使用嵌入模型的访问权限
UPSTAGE_API_KEY 您的 Upstage API 密钥 获取 Upstage 模型的访问权限
UPSTAGE_BASE_URL Upstage 实例的 URL 模型
DEFAULT_DEPLOYMENT Local, Weaviate, Custom, Docker 设置默认部署模式
SYSYEM_MESSAGE_PROMPT 提示文本值 默认值以:"You are Verba, a chatbot for..." 开头
OLLAMA_MODEL 您的 Ollama 模型 设置要使用的默认 Ollama 模型
OLLAMA_EMBED_MODEL 您的 Ollama 嵌入模型 设置要使用的默认 Ollama 嵌入模型

Verba 中的 API 密钥

Weaviate

Verba 根据您的需求提供了连接 Weaviate 实例的灵活性。您有三种选择:

  1. 本地部署:使用 Weaviate Embedded,它在您的设备上本地运行(Windows 除外,请选择 Docker/云部署)
  2. Docker 部署:当您运行 Verba 的 Dockerfile 时选择此选项。
  3. 云部署:使用托管在 WCD 上的现有 Weaviate 实例来运行 Verba

💻 Weaviate Embedded
Embedded Weaviate 是一种部署模式,它从您的应用程序代码中运行 Weaviate 实例,而不是从独立的 Weaviate 服务器安装中运行。当您在 Local Deployment 模式下运行 Verba 时,它将在后台设置和管理 Embedded Weaviate。请注意,Weaviate Embedded 在 Windows 上不受支持,并且处于实验模式,可能会带来意外错误。我们建议使用 Docker 部署或云部署。您可以在这里阅读更多关于 Weaviate Embedded 的信息。

🌩️ Weaviate 云部署 (WCD)

如果您更喜欢基于云的解决方案,Weaviate Cloud (WCD) 提供了一个可扩展的托管环境。按照 Weaviate 集群设置指南 学习如何设置云集群并获取 API 密钥。

🐳 Docker 部署
另一种本地替代方案是使用 Docker 部署 Weaviate。更多详情,请遵循 如何使用 Docker 安装 Verba 部分。

Verba 中的部署

⚙️ 自定义 Weaviate 部署

如果您自己托管 Weaviate,可以在 Verba 中使用 Custom 部署选项。这将允许您指定 Weaviate 实例的 URL、端口和 API 密钥。

Ollama

Verba 支持 Ollama 模型。在您的设备上下载并安装 Ollama (https://ollama.com/download)。确保使用

207 次点击  ∙  0 人收藏  
登录后收藏  
0 条回复
关于 ·  帮助 ·  PING ·  隐私 ·  条款   
OA0 - Omni AI 0 一个探索 AI 的社区
沪ICP备2024103595号-2
耗时 26 ms
Developed with Cursor