Este projeto é uma implementação baseada em JavaScript usando a arquitetura inovadora Retrieval-Augmented Generation (RAG) por meio de LangChainJS. Este sistema combina efetivamente um recuperador de documentos e um gerador de respostas para lidar com consultas complexas com alta precisão. O componente "Retriever" atua como uma ferramenta de busca precisa dentro de um corpus documental, extraindo as informações mais relevantes com base nas consultas do usuário. Após a recuperação, o “Gerador” sintetiza esta informação em respostas coerentes e contextualmente relevantes. Essa abordagem de componente duplo é ideal para tarefas que exigem síntese e compreensão profunda do conteúdo, como gerar resumos detalhados ou responder a perguntas multifacetadas de uma ampla variedade de fontes de documentos. Este aplicativo lida com vários documentos e consultas complexas com facilidade, tornando-o uma ferramenta valiosa para pesquisadores, criadores de conteúdo e analistas de dados.
O projeto usa Ollama com LangChainJS, então certifique-se de ter o Ollama instalado. Depois de instalar, execute
$ ollama pull gemma:2b-instruct-q5_0
$ ollama pull nomic-embed-text
no PowerShell.
O projeto também usa ChromaDB como banco de dados para armazenamento de vetores, então baixe e instale o Docker em https://www.docker.com/ e execute
$ docker pull chromadb/chroma
$ docker run -p 8000:8000 chromadb/chroma
no PowerShell para extrair uma imagem chromaDB e iniciar um contêiner chromaDB. Os embeddings serão criados e armazenados dentro do contêiner chromaDB criado no docker.
Clone o repositório usando git clone
.
Após a clonagem, vá ao diretório raiz e execute npm install
no terminal para instalar os pacotes.
Depois que os pacotes forem instalados com sucesso, execute npm start
no terminal. Você receberá um erro na primeira vez e, em seguida, execute npm start
novamente para que o código funcione.
Contribuições para o projeto são bem-vindas! Crie solicitações pull ou envie problemas para sugerir alterações no repositório ou relatar bugs.
Este projeto está licenciado sob a licença MIT - consulte o arquivo LICENSE para obter detalhes.