Utilizar Milvus en PrivateGPT
PrivateGPT es un proyecto de IA listo para producción que permite a los usuarios hacer preguntas sobre sus documentos utilizando Large Language Models sin conexión a Internet, garantizando al mismo tiempo un 100% de privacidad. PrivateGPT ofrece una API dividida en bloques de alto y bajo nivel. También proporciona un cliente Gradio UI y herramientas útiles como scripts de descarga masiva de modelos y scripts de ingestión. Conceptualmente, PrivateGPT envuelve un pipeline RAG y expone sus primitivas, estando listo para usar y proporcionando una implementación completa de la API y del pipeline RAG.
En este tutorial, le mostraremos cómo utilizar Milvus como base de datos vectorial backend para PrivateGPT.
Este tutorial hace referencia principalmente a la guía de instalación oficial de PrivateGPT. Si encuentra que este tutorial tiene partes obsoletas, puede dar prioridad a seguir la guía oficial y crear un problema con nosotros.
Requisitos básicos para ejecutar PrivateGPT
1. Clonar el repositorio PrivateGPT
Clona el repositorio y navega hasta él:
$ git clone https://github.com/zylon-ai/private-gpt
$ cd private-gpt
2. Instalar Poetry
Instala Poetry para la gestión de dependencias: Sigue las instrucciones de la página oficial de Poetry para instalarlo.
3. (Opcional) Instala make
Para ejecutar varios scripts, necesitas instalar make.
macOS (Usando Homebrew):
$ brew install make
Windows (Usando Chocolatey):
$ choco install make
Instale los módulos disponibles
PrivateGPT permite personalizar la configuración de algunos módulos, por ejemplo LLM, Embeddings, Vector Stores, UI.
En este tutorial, utilizaremos los siguientes módulos:
- LLM: Ollama
- Embeddings: Ollama
- Almacenes vectoriales: Milvus
- IU: Gradio
Ejecute el siguiente comando para utilizar la poesía para instalar las dependencias de los módulos necesarios:
$ poetry install --extras "llms-ollama embeddings-ollama vector-stores-milvus ui"
Iniciar el servicio Ollama
Vaya a ollama.ai y siga las instrucciones para instalar Ollama en su máquina.
Tras la instalación, asegúrate de que la aplicación de escritorio de Ollama está cerrada.
Ahora, inicie el servicio Ollama (iniciará un servidor de inferencia local, sirviendo tanto al LLM como a los Embeddings):
$ ollama serve
Instale los modelos que se van a utilizar, por defecto settings-ollama.yaml
está configurado para el usuario llama3.1
8b LLM (~4GB) y nomic-embed-text
Embeddings (~275MB)
Por defecto, PrivateGPT extraerá automáticamente los modelos según sea necesario. Este comportamiento puede cambiarse modificando la propiedad ollama.autopull_models
.
En cualquier caso, si desea extraer modelos manualmente, ejecute los siguientes comandos:
$ ollama pull llama3.1
$ ollama pull nomic-embed-text
Opcionalmente, puede cambiar a sus modelos favoritos en el archivo settings-ollama.yaml
y extraerlos manualmente.
Cambiar la configuración de Milvus
En el archivo settings-ollama.yaml
, establece el vectorstore a milvus:
vectorstore:
database: milvus
También puede añadir alguna configuración cumstom Milvus para especificar sus ajustes. Así:
milvus:
uri: http://localhost:19530
collection_name: my_collection
Las opciones de configuración disponibles son:
Campo Opción | Descripción |
---|---|
uri | Por defecto se establece en "local_data/private_gpt/milvus/milvus_local.db" como archivo local; también puede configurar un servidor Milvus de mayor rendimiento en docker o k8s, por ejemplo http://localhost:19530, como su uri; Para utilizar Zilliz Cloud, ajuste la uri y el token a Public Endpoint y API key en Zilliz Cloud. |
token | Emparejar con el servidor Milvus en docker o k8s o la clave api de Zilliz Cloud. |
nombre_colección | El nombre de la colección, establecido por defecto "milvus_db". |
sobrescribir | Sobrescribe los datos de la colección si ya existían, establecido por defecto como True. |
Iniciar PrivateGPT
Una vez realizadas todas las configuraciones, puede ejecutar PrivateGPT con la interfaz de Gradio.
PGPT_PROFILES=ollama make run
La interfaz de usuario estará disponible en http://0.0.0.0:8001
.
Puede jugar con la interfaz y hacer preguntas sobre sus documentos.
Para más información, consulte la documentación oficial de Private GPT.