Utilizar o Milvus no PrivateGPT
O PrivateGPT é um projeto de IA pronto para produção que permite aos utilizadores colocar questões sobre os seus documentos utilizando Large Language Models sem uma ligação à Internet, garantindo 100% de privacidade. O PrivateGPT oferece uma API dividida em blocos de alto e baixo nível. Também fornece um cliente Gradio UI e ferramentas úteis como scripts de download de modelos em massa e scripts de ingestão. Conceitualmente, o PrivateGPT envolve um pipeline RAG e expõe suas primitivas, estando pronto para uso e fornecendo uma implementação completa da API e do pipeline RAG.
Neste tutorial, vamos mostrar-lhe como utilizar o Milvus como base de dados de vectores backend para o PrivateGPT.
Este tutorial tem como principal referência o guia de instalação oficial do PrivateGPT. Se achar que este tutorial tem partes desactualizadas, pode dar prioridade a seguir o guia oficial e criar uma questão para nós.
Requisitos básicos para executar o PrivateGPT
1. Clonar o repositório do PrivateGPT
Clone o repositório e navegue até ele:
$ git clone https://github.com/zylon-ai/private-gpt
$ cd private-gpt
2. Instalar o Poetry
Instale o Poetry para gerenciamento de dependências: Siga as instruções no site oficial do Poetry para o instalar.
3. (Opcional) Instalar o make
Para executar vários scripts, é necessário instalar o make.
macOS (Usando Homebrew):
$ brew install make
Windows (Usando Chocolatey):
$ choco install make
Instalar os módulos disponíveis
O PrivateGPT permite a personalização da configuração de alguns módulos, por exemplo, LLM, Embeddings, Vetor Stores, UI.
Neste tutorial, usaremos os seguintes módulos:
- LLM: Ollama
- Embeddings: Ollama
- Vetor Stores: Milvus
- UI: Gradio
Execute o seguinte comando para usar o poetry para instalar as dependências do módulo necessário:
$ poetry install --extras "llms-ollama embeddings-ollama vector-stores-milvus ui"
Iniciar o serviço Ollama
Aceda a ollama.ai e siga as instruções para instalar o Ollama no seu computador.
Após a instalação, certifique-se de que a aplicação de ambiente de trabalho Ollama está fechada.
Agora, inicie o serviço Ollama (ele iniciará um servidor de inferência local, servindo tanto o LLM quanto o Embeddings):
$ ollama serve
Instale os modelos a utilizar, por defeito settings-ollama.yaml
está configurado para o utilizador llama3.1
8b LLM (~4GB) e nomic-embed-text
Embeddings (~275MB)
Por defeito, o PrivateGPT extrai automaticamente os modelos conforme necessário. Este comportamento pode ser alterado modificando a propriedade ollama.autopull_models
.
Em qualquer caso, se quiser extrair modelos manualmente, execute os seguintes comandos:
$ ollama pull llama3.1
$ ollama pull nomic-embed-text
Opcionalmente, pode mudar para os seus modelos favoritos no ficheiro settings-ollama.yaml
e extraí-los manualmente.
Alterar as definições do Milvus
No ficheiro settings-ollama.yaml
, defina a vectorstore para milvus:
vectorstore:
database: milvus
Também é possível adicionar algumas configurações cumstom do Milvus para especificar suas configurações, como esta:
milvus:
uri: http://localhost:19530
collection_name: my_collection
As opções de configuração disponíveis são:
Campo Opção | Descrição |
---|---|
uri | A predefinição é definida para "local_data/private_gpt/milvus/milvus_local.db" como um ficheiro local; também pode configurar um servidor Milvus com melhor desempenho no docker ou k8s, por exemplo, http://localhost:19530, como o seu uri; Para utilizar o Zilliz Cloud, ajuste o uri e o token para o Public Endpoint e a chave API no Zilliz Cloud. |
token | Emparelhar com o servidor Milvus no docker ou k8s ou com a chave api da nuvem Zilliz. |
nome_da_colecção | O nome da coleção, definido por defeito como "milvus_db". |
overwrite | Substitui os dados na coleção se existirem, definido por padrão como True. |
Iniciar o PrivateGPT
Quando todas as definições estiverem concluídas, pode executar o PrivateGPT com uma IU do Gradio.
PGPT_PROFILES=ollama make run
A interface do utilizador estará disponível em http://0.0.0.0:8001
.
Pode brincar com a IU e fazer perguntas sobre os seus documentos.
Para obter mais detalhes, consulte a documentação oficial do PrivateGPT.