Verba:终极 RAG 引擎 - 语义搜索、嵌入、矢量搜索等!

Verba 一款开源应用程序,旨在为开箱即用的检索增强生成 (RAG) 提供端到端、简化且用户友好的界面。 只需几个简单的步骤,即可在本地通过 HuggingFace 和 Ollama 或通过 OpenAI、Cohere 和 Google 等 LLM 提供商探索您的数据集并轻松提取见解。

pip install goldenverba

什么是 Verba ?

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

功能列表

模型支持

🤖 Model SupportImplementedDescription
Ollama (e.g. Llama3)Local Embedding and Generation Models powered by Ollama
HuggingFace (e.g. MiniLMEmbedder)Local Embedding Models powered by HuggingFace
Cohere (e.g. Command R+)Embedding and Generation Models by Cohere
Google (e.g. Gemini)Embedding and Generation Models by Google
OpenAI (e.g. GPT4)Embedding and Generation Models by OpenAI

数据支持

📁 Data SupportImplementedDescription
PDF IngestionImport PDF into Verba
CSV/XLSX IngestionImport Table Data into Verba
Multi-Modalplanned ⏱️Import Multi-Modal Data into Verba
UnstructuredIOImport Data through Unstructured

RAG特征

✨ RAG FeaturesImplementedDescription
Hybrid SearchSemantic Search combined with Keyword Search
Semantic CachingResults saved and retrieved based on semantic meaning
Autocomplete SuggestionVerba suggests autocompletion
Filteringplanned ⏱️Apply Filters (e.g. documents, document types etc.) before performing RAG
Advanced Queryingplanned ⏱️Task Delegation Based on LLM Evaluation
Rerankingplanned ⏱️Rerank results based on context for improved results
RAG Evaluationplanned ⏱️Interface for Evaluating RAG pipelines
Customizable Metadataplanned ⏱️Free control over Metadata

Cool Bonus

🆒 Cool BonusImplementedDescription
Docker SupportVerba is deployable via Docker
Customizable FrontendVerba's frontend is fully-customizable via the frontend

RAG 图书馆

🤝 RAG LibrariesImplementedDescription
Haystackplanned ⏱️Implement Haystack RAG pipelines
LlamaIndexplanned ⏱️Implement LlamaIndex RAG pipelines
LangChainplanned ⏱️Implement LangChain RAG pipelines

开始使用 Verba

Verba 具有三种部署选项:

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

pip install -e .
  • 使用Docker进行部署


    先决条件:如果您不使用 Docker,请确保系统上安装了 Python >=3.10.0。

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

API Keys

在启动 Verba 之前,您需要根据您选择的技术(例如 OpenAI、Cohere 和 HuggingFace)通过 .env 文件配置对各种组件的访问。 在要启动 Verba 的同一目录中创建此 .env。您可以在 Goldenverba 目录中找到 .env.example 文件。

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

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

Environment VariableValueDescription
WEAVIATE_URL_VERBAURL to your hosted Weaviate ClusterConnect to your WCS Cluster
WEAVIATE_API_KEY_VERBAAPI Credentials to your hosted Weaviate ClusterConnect to your WCS Cluster
OPENAI_API_KEYYour API KeyGet Access to OpenAI Models
OPENAI_BASE_URLURL to OpenAI instanceModels
COHERE_API_KEYYour API KeyGet Access to Cohere Models
OLLAMA_URLURL to your Ollama instance (e.g. http://localhost:11434 )Get Access to Ollama Models
OLLAMA_MODELModel Name (e.g. llama)Get Access to a specific Ollama Model
UNSTRUCTURED_API_KEYYour API KeyGet Access to Unstructured Data Ingestion
UNSTRUCTURED_API_URLURL to Unstructured InstanceGet Access to Unstructured Data Ingestion
GITHUB_TOKENYour GitHub TokenGet Access to Data Ingestion via GitHub
GOOGLE_APPLICATION_CREDENTIALSGoogle CredentialsGet Access to Google Models
GOOGLE_CLOUD_PROJECTGoogle Cloud ProjectGet Access to Google Models
GOOGLE_API_KEYYour API KeyGet Access to Google Models
VERBA_PRODUCTIONTrueRun Verba in Production

Weaviate

Weaviate 使用最先进的机器学习 (ML) 模型将您的数据(文本、图像等)转换为可搜索的矢量数据库。

Verba 可以根据您的需求灵活地连接到 Weaviate 实例。 默认情况下,如果 Verba 未检测到 WEAVIATE_URL_VERBA 和 WEAVIATE_API_KEY_VERBA 环境变量,则它会选择 Weaviate Embedded。 这种本地部署是启动 Weaviate 数据库进行原型设计和测试的最直接方法。

但是,您还有其他选择:

Weaviate 云服务 (WCS)

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

Docker 部署另一个强大的本地替代方案是使用 Docker 部署 Weaviate。 有关更多详细信息,请参阅 Weaviate Docker 指南。

Ollama

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

使用 llama3、llama3:70b 和 mistral 进行测试。 较大的模型通常表现更好,但需要更多的计算能力。

确保 Ollama Server 在后台运行,并且您不会摄取具有不同 ollama 模型的文档,因为它们的矢量维度可能会有所不同,这会导致错误

谷歌

如果您想使用 Google 功能,请确保安装 Google Verba 软件包。

pip install goldenverba[google]

or

pip install `.[google]`

如果您使用 Docker,请相应地修改 Dockerfile

谷歌嵌入

对于 Google 嵌入,Verba 在 Google Cloud 中使用 Vertex AI Studio。 您可以在此处找到获取密钥的说明。 如果您安装了 gcloud CLI,则可以运行以下命令:gcloud auth print-access-token。 目前,该访问令牌必须每小时更新一次。

您还需要将 GOOGLE_CLOUD_PROJECT 环境变量设置为您的项目名称。

谷歌Gemini

要使用 Google Gemini,您需要一个服务帐户密钥,它是一个 JSON 文件。 要获取此信息,请转到 Google Cloud 控制台中的“项目设置”,然后转到“服务帐户”。 创建一个新的服务帐户,然后创建一个新密钥。 下载此密钥并将其放置在 Verba 的路径中。 将其命名为 gemini_secrets.json 以自动将其从 git 中排除。 将环境变量 GOOGLE_APPLICATION_CREDENTIALS 设置为此文件的位置,例如 gemini_secrets.json。

您还需要将 GOOGLE_CLOUD_PROJECT 环境变量设置为您的项目名称。

非结构化

Verba 支持通过非结构化 IO 导入文档(例如纯文本、.pdf、.csv 等)。 要使用它们,您需要 UNSTRUCTURED_API_KEY 和 UNSTRUCTURED_API_URL 环境变量。 您可以从非结构化获取它

UNSTRUCTURED_API_URL 默认设置为 https://api.unstructed.io/general/v0/general

开放人工智能

Verba 支持 Ada、GPT3 和 GPT4 等 OpenAI 模型。 要使用它们,您需要指定 OPENAI_API_KEY 环境变量。 你可以从 OpenAI 获取它

您还可以添加 OPENAI_BASE_URL 以使用代理,例如 LiteLLM (https://github.com/BerriAI/litellm)

OPENAI_BASE_URL=YOUR-OPENAI_BASE_URL

Azure 开放人工智能

要使用Azure OpenAI,您需要设置

  • API类型:
    OPENAI_API_TYPE="azure"
  • 关键点和端点:
    OPENAI_API_KEY=<YOUR_KEY>
    OPENAI_BASE_URL=http://XXX.openai.azure.com
  • Azure OpenAI 资源名称,如果端点是 XXX.openai.azure.com,则为 XXX
    AZURE_OPENAI_RESOURCE_NAME=<YOUR_AZURE_RESOURCE_NAME>
  • 您需要为嵌入和查询设置模型。
    AZURE_OPENAI_EMBEDDING_MODEL="text-embedding-ada-002"
    OPENAI_MODEL="gpt-4"
  • 最后,由于 Azure 使用每分钟配额,您可能需要在每个块上传之间添加等待时间。 例如,如果您的限制为每分钟 240k 个令牌,如果您的块最大为 400 个令牌,则查询之间的间隔 100 毫秒应该没问题。 如果 weaviate 出现错误 429,请增加该值。
    WAIT_TIME_BETWEEN_INGESTION_QUERIES_MS="100"

Huggingface

如果您想使用 HuggingFace 功能,请确保安装正确的 Verba 软件包。

pip install goldenverba[huggingface]

or

pip install `.[huggingface]`

如果您使用 Docker,请相应地修改 Dockerfile

如何使用pip进行部署

Python >=3.10.0

1. 初始化新的Python环境

python3 -m virtualenv venv

2.安装 Verba

pip install goldenverba

3.启动 Verba

verba start

您可以通过标志指定 --port 和 --host

4.访问韦尔巴

Visit localhost:8000

5.创建.env文件并添加环境变量

如何从源代码构建

  1. 克隆 Verba 存储库
    git clone https://github.com/weaviate/Verba.git
  2. 初始化新的Python环境
    python3 -m virtualenv venv
  3. 安装Verba
    pip install -e .
  4. 启动Verba
    verba start
  5. 访问Verba
    Visit localhost:8000
  6. 创建.env文件并添加环境变量

如何使用 Docker 安装 Verba

Docker 是一组平台即服务产品,它使用操作系统级虚拟化以称为容器的包形式交付软件。 要开始使用 Docker 部署 Verba,请按照以下步骤操作。 如果您需要有关 Docker 使用的更多详细说明,请查看 Docker 课程。

克隆 Verba 存储库 确保您的系统上安装了 Git。 然后,打开终端或命令提示符并运行以下命令来克隆 Verba 存储库:

git clone https://github.com/weaviate/Verba.git
  1. 设置必要的环境变量 确保在 .env 文件中设置所需的环境变量。 您可以在 API 密钥部分阅读有关如何设置它们的更多信息
  2. 调整 docker-compose 文件 您可以使用 docker-compose.yml 在 verba 服务下添加所需的环境变量,还可以调整 Weaviate Docker 设置以启用身份验证或更改数据库实例的其他设置。 您可以在我们的 docker-compose 文档中阅读有关 Weaviate 配置的更多信息

请确保只添加您真正需要的环境变量。 如果您的 Weaviate 集群中没有启用身份验证,请确保不包含 WEAVIATE_API_KEY_VERBA 环境变量

使用 Docker 进行部署 安装 Docker 并克隆 Verba 存储库后,在终端或命令提示符中导航到包含 Docker Compose 文件的目录。 运行以下命令以分离模式启动 Verba 应用程序,这样它就可以在后台运行:

docker compose up -d
docker compose --env-file .env up -d

此命令将下载必要的 Docker 映像、创建容器并启动 Verba。 请记住,您的系统上必须安装 Docker 才能使用此方法。 有关 Docker 的安装说明和更多详细信息,请访问 Docker 官方文档。

访问Verba

  • 您可以通过 localhost:8080 访问本地 Weaviate 实例
  • 您可以通过 localhost:8000 访问 Verba 前端

如果您希望 Docker 实例安装特定版本的 Verba,您可以编辑 Dockerfile 并更改安装行。

RUN pip install -e '.'

Verba 演练

概览页面

有权访问 Verba 后,您可以使用概述页面来验证所有环境和库是否已正确设置和安装。 您可以使用管理控制台查看存储在 Weaviate Collections 中的所有数据并重置 Verba 的某些部分(例如文档、缓存、配置等)

导入您的数据

配置 Verba 后,您就可以导入数据并开始探索。 使用添加文档页面提取您的数据。 您可以在支持不同数据类型、分块技术和嵌入模型的 Reader 之间进行选择。

查询您的数据

导入数据后,您可以使用聊天页面询问任何相关问题。 您将收到与您的问题语义相关的相关块以及由您选择的模型生成的答案。 您可以在 RAG 页面下配置 RAG 管道。

开源贡献

随时欢迎您的贡献! 如果您发现任何问题,请随意贡献想法、反馈或创建问题和错误报告! 在贡献之前,请阅读贡献指南。 如果您需要任何帮助,请访问我们的 Weaviate 社区论坛!

项目架构

您可以在其技术文档和前端文档中了解有关 Verba 架构和实现的更多信息。 建议在做出任何贡献之前先查看一下它们。

已知的问题

Weaviate Embedded 目前尚未在 Windows 上运行
将在未来版本中修复,在此之前请使用 Docker 或 WCS 部署

常问问题

  • Verba 是多语言的吗?
    这取决于您选择的嵌入和生成模型是否支持多语言数据。
  • 我可以将 Ollama Server 与 Verba Docker 一起使用吗?
    是的你可以! 确保 URL 设置为:OLLAMA_URL=http://host.docker.internal:11434
  • 如何清除Weaviate嵌入式存储?
    删除目录 rm ~/.local/share/weaviate
  • 如何指定端口?
    您可以使用端口和主机标志 verba start --port 9000 -host 0.0.0.0
  • 19
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值