文章目录
- 一、关于 Verba
- 什么是Verba?
- 功能列表
- 二、Verba入门
- 安装部署
- 三、API密钥
- 1、Weaviate
- 2、Ollama
- 3、UNSTRUCTURED
- 4、AssemblyAI
- 5、OpenAI
- 6、HuggingFace
- 四、如何使用pip进行部署
- 五、如何从源代码构建
- 六、如何使用Docker安装Verba
- Verba Walkthrough
- 选择您的部署
- 导入您的数据
- 查询您的数据
- 其它
- 已知问题
- 常见问题解答
一、关于 Verba
- github : https://github.com/weaviate/Verba
- 官网 : https://verba.weaviate.io/
- 前段文档:https://github.com/weaviate/Verba/blob/main/FRONTEND.md
- 介绍视频 Chat With Your Data With Verba : https://www.youtube.com/watch?v=2VCy-YjRRhA
欢迎来到Verba: The Golden RAGtriever,这是一个开源应用程序,旨在为开箱即用的检索增强生成(RAG)提供端到端、流线型和用户友好的界面。只需几个简单的步骤,您就可以在本地使用Ollama和Huggingface或通过LLM提供商(如 Anthrophic、Cohere和OpenAI)轻松探索您的数据集并提取见解。
什么是Verba?
Verba是一个完全可定制的个人助理,利用 RAG 来查询和与您的数据交互,无论是本地还是通过云部署。
解决有关文档的问题,交叉引用多个数据点或从现有知识库中获得见解。Verba将最先进的RAG技术与Weaviate的上下文感知数据库相结合。根据您的个人用例在不同的RAG框架、数据类型、分块和检索技术以及LLM提供程序之间进行选择。
功能列表
🤖模型支持 | 已实现 | 描述 |
---|---|---|
Ollama(例如Llama3) | ✅ | 由Ollama提供支持的本地嵌入和生成模型 |
HuggingFace(例如MiniLMEmbedder) | ✅ | 由HuggingFace提供支持的本地嵌入模型 |
Cohere(例如Command R+) | ✅ | Cohere的嵌入和生成模型 |
人性化(例如Claude Sonnet) | ✅ | 人性化的嵌入和生成模型 |
OpenAI(例如GPT4) | ✅ | OpenAI的嵌入和生成模型 |
🤖嵌入支持 | 已实现 | 描述 |
---|---|---|
Weaviate | ✅ | 嵌入模型由Weaviate |
Ollama | ✅ | 本地嵌入模型由Ollama |
SentenceTransformers | ✅ | 嵌入模型由HuggingFace |
Cohere | ✅ | 嵌入模型由Cohere |
VoyageAI | ✅ | 嵌入模型由VoyageAI |
OpenAI | ✅ | 嵌入模型由OpenAI |
📁数据支持 | 已实现 | 描述 |
---|---|---|
Unstructure dIO | ✅ | 通过UNSTRUCTURED |
Firecrawl | ✅ | 通过Firecrawl刮取和爬取URL |
PDF Ingest | ✅ | 将PDF导入Verba |
GitHub和GitLab | ✅ | 从Github和GitLab导入文件 |
CSV/XLSX Ingest | ✅ | 将表数据导入Verba |
. DOCX | ✅ | 导入.docx文件 |
多模式(使用AssemblyAI) | ✅ | 通过AssemblyAI导入和转录音频 |
✨RAG功能 | 已实现 | 描述 |
---|---|---|
混合搜索 | ✅ | 语义搜索与关键字搜索相结合 |
自动完成建议 | ✅ | Verba建议自动完成 |
过滤 | ✅ | 在执行RAG之前应用过滤器(例如文档、文档类型等) |
可定制的元数据 | ✅ | 对元数据的自由控制 |
异步摄取 | ✅ | 异步摄取数据以加快流程 |
高级查询 | 计划⏱️ | 基于LLM评估的任务委派 |
重新排序 | 计划⏱️ | 根据上下文对结果进行重新排序以改进结果 |
RAG评估 | 计划⏱️ | 评估RAG管道的接口 |
🗡️组块技术 | 实现 | 描述 |
---|---|---|
令牌 | ✅ | 块由令牌驱动spaCy |
句子 | ✅ | 块由句子驱动spaCy |
语义 | ✅ | 块和组由语义句子相似度 |
递归 | ✅ | 基于规则的递归块数据 |
HTML | ✅ | 块 HTML 文件 |
Markdown | ✅ | 块Markdown文件 |
代码 | ✅ | 块代码文件 |
JSON | ✅ | 块JSON文件 |
🆒 | 实现 | 描述 |
---|---|---|
Docker支持 | ✅ | Verba可通过Docker |
自定义前端 | ✅ | Verba的前端可通过前端 |
矢量查看器 | ✅ | 在3D中可视化您的数据 |
🤝RAG库 | 已实现 | 描述 |
---|---|---|
LangChain | ✅ | 实施LangChain RAG管道 |
Haystack | 计划⏱️ | 实施Haystack RAG管道 |
LlamaIndex | 计划⏱️ | 实施LlamaIndex RAG管道 |
缺少什么?请随意创建一个新问题或讨论您的想法!
二、Verba入门
安装部署
Verba有三个部署选项:
- 通过pip安装
pip install goldenverba
- 从源代码构建
git clone https://github.com/weaviate/Verba
pip install -e .
- 使用Docker进行部署
先决条件:如果您没有使用Docker,请确保您的系统上安装了Python >=3.10.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 | API凭据到您托管的Weaviate群集 | 连接到您的WCS群集 |
ANTHROPIC_API_KEY | 您的人工API密钥 | 访问人工模型 |
OPENAI_API_KEY | 您的OpenAI密钥 | 访问OpenAI模型 |
OPENAI_BASE_URL | OpenAI实例 | 模型 |
COHERE_API_KEY | 您的API密钥 | 访问Cohere模型 |
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访问嵌入式模型 |
EMBEDDING_SERVICE_KEY | 您的嵌入式服务密钥 | 通过Weaviate Embedding Service访问嵌入式模型 |
1、Weaviate
Verba根据您的需要提供连接到Weaviate实例的灵活性。您有三个选择:
- 本地部署:使用在您的设备上本地运行的Weaviate Embedded(Windows除外,请选择Docker/Cloud部署)
- Docker部署:在运行Verba的Dockerfile时选择此选项。
- 云部署:使用托管在WCD上的现有Weaviate实例运行Verba
🌩️Weaviate云部署(WCD)
如果您更喜欢基于云的解决方案,Weaviate Cloud(WCD)提供了一个可扩展的托管环境。按照Weaviate集群设置指南了解如何设置云集群并获取API密钥。
🐳Docker部署 另一个本地替代方案是使用Docker部署Weaviate。有关详细信息,请参阅如何使用Docker安装Verba部分。
2、Ollama
Verba支持Ollama模型。在您的设备上下载并安装Ollama(https://ollama.com/download)。确保使用ollama run <model>
安装您喜欢的LLM。
用llama3
、llama3:70b
和mistral
测试。较大的模型通常表现更好,但需要更多的计算能力。
确保Ollama Server在后台运行,并且您不会摄取具有不同ollama模型的文档,因为它们的向量维度可能会有所不同,这会导致错误
您可以通过运行以下命令来验证这一点
ollama run llama3
3、UNSTRUCTURED
Verba支持通过UNSTRUCTUREDIO(例如纯文本、. pdf、.csv等)导入文档。要使用它们,您需要UNSTRUCTURED_API_KEY
和UNSTRUCTURED_API_URL
的环境变量。您可以从UNSTRUCTURED
UNSTRUCTURED_API_URL默认设置为
https://api.unstructured.io/general/v0/general
4、AssemblyAI
Verba支持通过AssemblyAI导入文档(音频文件或视频文件中的音频)。要使用它们,您需要ASSEMBLYAI_API_KEY
环境变量。您可以从AssemblyAI获取
5、OpenAI
Verba支持OpenAI模型,如Ada、GPT3和GPT4。要使用它们,您需要指定OPENAI_API_KEY
的环境变量。你可以从OpenAI
您还可以添加一个OPENAI_BASE_URL
来使用代理,例如LiteLLM(https://github.com/BerriAI/litellm)
OPENAI_BASE_URL=YOUR-OPENAI_BASE_URL
6、HuggingFace
如果您想使用HuggingFace功能,请确保安装正确的Verba包。它将安装使用本地嵌入模型所需的包。请注意,在启动时,Verba将在使用时自动下载并安装嵌入模型。
pip install goldenverba[huggingface]
或
pip install `.[huggingface]`
如果您使用的是Docker,请相应地修改Dockerfile
四、如何使用pip进行部署
要求:Python >=3.10.0
1、(非常重要)初始化一个新的Python环境
python3 -m virtualenv venv
2、Install Verba
pip install goldenverba
3、Launch Verba
verba start
您可以通过 flags 指定 --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、Launch Verba
verba start
您可以通过 flags 指定–port和–host
5、访问韦尔巴
Visit localhost:8000
6、(可选)创建. env文件并添加环境变量
六、如何使用Docker安装Verba
Docker是一组platform-as-a-service产品,它们使用操作系统级虚拟化在称为容器的软件包中交付软件。要开始使用Docker部署Verba,请按照以下步骤操作。如果您需要有关Docker使用的更详细说明,请查看Docker课程。
0、克隆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配置的更多信息
请确保只添加您真正需要的环境变量。
3、使用Docker进行部署安装了Docker并克隆了Verba存储库,在终端或命令提示符中导航到包含Docker Compose文件的目录。运行以下命令以分离模式启动Verba应用程序,这允许它在后台运行:
docker compose up -d
docker compose --env-file goldenverba/.env up -d --build
此命令将下载必要的Docker映像,创建容器,并启动Verba。请记住,Docker必须安装在您的系统上才能使用此方法。有关Docker的安装说明和更多详细信息,请访问官方的Docker留档。
4、访问韦尔巴
- 您可以访问本地Weaviate实例
localhost:8080
- 您可以访问Verba前端
localhost:8000
如果希望Docker实例安装特定版本的Verba,可以编辑Dockerfile
并更改安装行。
RUN pip install -e '.'
Verba Walkthrough
选择您的部署
您将看到的第一个屏幕是部署屏幕。您可以在这里选择Local
、Docker
、Weaviate Cloud
或Custom
部署。Local
部署使用后台的Weaviate Embedded,它在幕后初始化Weaviate实例。Docker
部署使用在同一Docker网络中运行的单独Weaviate实例。Weaviate Cloud
部署使用托管在Weaviate云服务(WCS)上的Weaviate实例。Custom
部署允许您指定自己的Weaviate实例URL、PORT和API密钥。
导入您的数据
Import Data
Add Files
Add Directory
Add URL
Overview
Configure
查询您的数据
导入数据后,您可以使用Chat
页面提出任何相关问题。您将收到与您的问题语义相关的相关块以及由您选择的模型生成的答案。您可以在Config
选项卡下配置RAG管道。
其它
已知问题
- Weaviate Embeed
- 将在未来版本中修复,在此之前请使用Docker或WCS部署
常见问题解答
- Verba是多语言的吗?
- 这取决于您选择的嵌入和生成模型是否支持多语言数据。
- 我可以将我的Ollama服务器与Verba Docker一起使用吗?
- 是的,你可以!确保URL设置为:
OLLAMA_URL=http://host.docker.internal:11434
- 如果您在Linux上运行,您可能需要获取Ollama服务器的IP网关:
OLLAMA_URL="http://YOUR-IP-OF-OLLAMA:11434"
- 是的,你可以!确保URL设置为:
- 如何清除Weaviate嵌入式存储?
- 您可以在此处找到存储的数据:
~/.local/share/weaviate
- 您可以在此处找到存储的数据:
- 如何指定端口?
- 您可以使用端口和主机标志
verba start --port 9000 --host 0.0.0.0
- 您可以使用端口和主机标志
2024-09-24(二)