Ai-Assistente-Colama
Descrição do projeto
Este projeto demonstra como usar vários componentes das bibliotecas langchain_community e langchain_core para carregar, transformar, incorporar e recuperar documentos de um banco de dados PostgreSQL com o PGVector ativado. Os documentos são provenientes de URLs, transformados em texto, divididos em pedaços gerenciáveis e armazenados como vetores no banco de dados para recuperação. O projeto também mostra como criar uma cadeia RAG (geração de recuperação de recuperação) usando o modelo de idioma ollama para responder a perguntas com base no contexto recuperado do Vector Store.
Pré -requisitos
- Python 3.7+
- PostgreSQL com PGVector habilitado
- Docker (Opcional, para executar o PostgreSQL com PGVector)
Instalação
- Clone o repositório:
git clone https://github.com/Atomic-man007/AI-assistant-ollama.git
- Crie um ambiente virtual e ative -o:
python -m venv venv
source venv/bin/activate # On Windows, use `venvScriptsactivate`
- Instale os pacotes necessários:
pip install -r requirements.txt
- Configure o PostGresQL com o PGVector ativado. Você pode usar o Docker para aumentar rapidamente uma instância do PostgreSQL com PGVector:
docker run --name pgvector -e POSTGRES_PASSWORD=mysecretpassword -d -p 5432:5432 ankane/pgvector
- Defina a variável de ambiente
DB_URL para apontar para sua instância PostGresql:
export DB_URL=postgresql://postgres:mysecretpassword@localhost:5432/postgres
Uso
Atualize a lista de urls na função main com os URLs dos documentos que você deseja processar.
Execute o script:
Componentes
- AsynchtMlLoader : carrega de forma assíncrona o conteúdo HTML dos URLs fornecidos.
- Html2textTransformer : transforma documentos HTML em texto simples.
- Ollamaembeddings : incorpora os documentos de texto no espaço vetorial.
- PGVECTOR : uma implementação da loja de vetores usando o PostgreSQL com a extensão PGVector.
- RecursiveCharacterTextsPlitter : divide documentos de texto em pedaços de tamanho especificado.
- ChatPromptTemplate : cria um modelo de prompt de bate -papo para gerar respostas.
- RunnablePassththrough : um repasse executável para componentes de encadeamento.
- Ollama : Um modelo de idioma usado para gerar respostas com base no contexto recuperado.
Exemplo
O script demonstra as seguintes etapas:
- Carregue documentos HTML dos URLs fornecidos.
- Transforme documentos HTML em texto simples.
- Divida os documentos de texto em pedaços menores.
- Incorporar os pedaços de texto no espaço vetorial e armazená -los no banco de dados PostgreSQL.
- Recupere o contexto relevante da loja de vetores.
- Use o contexto recuperado para gerar uma resposta a uma pergunta usando o modelo de idioma ollama.
Licença
Este projeto está licenciado sob a licença do MIT. Consulte o arquivo de licença para obter detalhes.
Agradecimentos
-
langchain_community e langchain_core Bibliotecas para fornecer os componentes usados neste projeto. - PostgreSQL e PGVector para a implementação do Vector Store.
- Ollama para o modelo de idioma usado para gerar respostas.