Este projeto implementa um pipeline de Retrieval-Augmented Generation (RAG) usando um banco de dados vetorial para responder a perguntas com base em um conjunto de documentos.
- Node.js: Ambiente de execução para o servidor.
- Express: Framework para a construção da API REST.
- LanceDB: Banco de dados vetorial para armazenar e consultar os embeddings dos documentos.
- @google/genai: SDK para utilizar os modelos de linguagem do Google (Gemini).
- @xenova/transformers: Biblioteca para gerar os embeddings dos textos.
- React: Biblioteca para a construção da interface de usuário.
- Vite: Ferramenta de build para o desenvolvimento frontend.
- Styled-Components: Biblioteca para estilização dos componentes React.
- Node.js (versão 20 ou superior)
- npm
- Navegue até o diretório
backend
:cd backend
- Instale as dependências:
npm install
- Crie um arquivo
.env
na raiz do diretóriobackend
e adicione sua chave da API do Google:GOOGLE_API_KEY=SUA_CHAVE_API
- Execute o servidor:
npm start
O servidor estará rodando em http://localhost:3000
.
- Navegue até o diretório
frontend
:cd frontend
- Instale as dependências:
npm install
- Execute o cliente de desenvolvimento:
npm run dev
A aplicação estará disponível em http://localhost:5173
.
Para adicionar novos documentos ao banco de dados vetorial, siga os passos abaixo:
-
Coloque os documentos no diretório correto:
- Adicione os arquivos de texto ou Markdown que deseja processar no diretório
backend/docs/
.
- Adicione os arquivos de texto ou Markdown que deseja processar no diretório
-
Execute o script para processar os documentos:
- Navegue até o diretório
backend
: - Execute o script
buld_db.js
para processar os documentos e adicionar os embeddings ao banco de dados:node rag_module/buld_db.js
- Navegue até o diretório
-
Confirme os dados no banco:
- Após a execução do script, os novos documentos estarão disponíveis no banco de dados vetorial localizado em
backend/vector_db/chunks.lance/
.
- Após a execução do script, os novos documentos estarão disponíveis no banco de dados vetorial localizado em