在 PrivateGPT 中使用 Milvus
PrivateGPT 是一个生产就绪的 AI 项目,它使用户能够在没有互联网连接的情况下使用大语言模型询问有关其文档的问题,同时确保 100% 的隐私。PrivateGPT 提供了一个分为高级和低级块的 API。它还提供了 Gradio UI 客户端和有用的工具,如批量模型下载脚本和摄取脚本。从概念上讲,PrivateGPT 封装了一个 RAG 管道并暴露其原语,可以立即使用,并提供了 API 和 RAG 管道的完整实现。
在本教程中,我们将向您展示如何使用 Milvus 作为 PrivateGPT 的后端向量数据库。
本教程主要参考 PrivateGPT 官方安装指南。如果您发现本教程有过时的部分,您可以优先遵循官方指南并向我们创建一个 issue。
运行 PrivateGPT 的基本要求
1. 克隆 PrivateGPT 代码仓库
克隆代码仓库并导航到其中:
$ git clone https://github.com/zylon-ai/private-gpt
$ cd private-gpt
2. 安装 Poetry
安装 Poetry 进行依赖管理:按照官方 Poetry 网站上的说明进行安装。
3. (可选)安装 make
要运行各种脚本,您需要安装 make。
macOS(使用 Homebrew):
$ brew install make
Windows(使用 Chocolatey):
$ choco install make
安装可用模块
PrivateGPT 允许自定义某些模块的设置,例如 LLM、嵌入、向量存储、UI。
在本教程中,我们将使用以下模块:
- LLM: Ollama
- 嵌入: Ollama
- 向量存储: Milvus
- UI: Gradio
运行以下命令使用 poetry 安装所需的模块依赖:
$ poetry install --extras "llms-ollama embeddings-ollama vector-stores-milvus ui"
启动 Ollama 服务
转到 ollama.ai 并按照说明在您的机器上安装 Ollama。
安装后,确保 Ollama 桌面应用程序已关闭。
现在,启动 Ollama 服务(它将启动一个本地推理服务器,同时为 LLM 和嵌入提供服务):
$ ollama serve
安装要使用的模型,默认的 settings-ollama.yaml
配置为使用 llama3.1
8b LLM(~4GB)和 nomic-embed-text
嵌入(~275MB)
默认情况下,PrivateGPT 将根据需要自动拉取模型。可以通过修改 ollama.autopull_models
属性来更改此行为。
在任何情况下,如果您想手动拉取模型,请运行以下命令:
$ ollama pull llama3.1
$ ollama pull nomic-embed-text
您可以选择在 settings-ollama.yaml
文件中更改为您喜欢的模型并手动拉取它们。
更改 Milvus 设置
在文件 settings-ollama.yaml
中,将 vectorstore 设置为 milvus:
vectorstore:
database: milvus
您还可以添加一些自定义的 Milvus 配置来指定您的设置。 像这样:
milvus:
uri: http://localhost:19530
collection_name: my_collection
可用的配置选项包括:
字段选项 | 描述 |
---|---|
uri | 默认设置为 "local_data/private_gpt/milvus/milvus_local.db" 作为本地文件;您也可以在 docker 或 k8s 上设置更高性能的 Milvus 服务器,例如 http://localhost:19530 ,作为您的 uri;要使用 Zilliz Cloud,请将 uri 和 token 调整为 Zilliz Cloud 中的公共端点和 API 密钥。 |
token | 与 docker 或 k8s 上的 Milvus 服务器或 zilliz cloud api 密钥配对。 |
collection_name | Collection 的名称,默认设置为 "milvus_db"。 |
overwrite | 如果数据存在,则覆盖 collection 中的数据,默认设置为 True。 |
启动 PrivateGPT
一旦所有设置完成,您可以使用 Gradio UI 运行 PrivateGPT。
PGPT_PROFILES=ollama make run
UI 将在 http://0.0.0.0:8001
可用。
您可以使用 UI 并询问有关您文档的问题。
有关更多详细信息,请参考 PrivateGPT 官方文档。