Este projeto permite realizar perguntas em linguagem natural sobre o conteúdo de arquivos PDF. Utiliza a abordagem RAG (Retrieval-Augmented Generation), que combina técnicas de recuperação de informação com geração de texto para fornecer respostas precisas. A aplicação usa as seguintes tecnologias principais:
- LangChain para gerenciamento do fluxo do chat.
- FAISS para armazenamento e busca rápida dos embeddings (representações vetoriais dos textos).
- Groq como provedor do modelo de linguagem LLM para geração de respostas.
Abaixo, um exemplo visual da interface após o upload do PDF e uma pergunta realizada:
O fluxo básico da aplicação é:
- Upload do arquivo PDF.
- Extração e divisão do texto em pequenos trechos.
- Transformação desses textos em embeddings vetoriais usando modelos pré-treinados.
- Armazenamento dos embeddings num banco vetorial (FAISS).
- Ao fazer uma pergunta, a aplicação recupera automaticamente os trechos mais relevantes do PDF e usa o modelo de linguagem da Groq para gerar respostas contextualizadas.
- Python 3.9 ou superior.
- Uma conta gratuita na Groq Cloud.
- Chave (API Key) da Groq.
git clone https://github.com/ronierisonmaciel/AskRAG.git
cd AskRAGmacOS ou Linux:
python3 -m venv .venv
source .venv/bin/activateWindows (CMD ou PowerShell):
python -m venv .venv
.venv\Scripts\activatepip install -r requirements.txtSiga estes passos para obter e configurar sua chave:
- Acesse a página: https://console.groq.com/keys.
- Faça login ou crie uma nova conta gratuita.
- Clique em "Create API Key" para gerar uma nova chave.
- Copie a chave gerada, que começa com
gsk_live_.... - Crie um arquivo
.envna raiz do projeto e adicione sua chave assim:
GROQ_API_KEY=gsk_live_sua_chave_aquiImportante: Não compartilhe sua chave pública ou suba esse arquivo .env em repositórios públicos.
Execute o seguinte comando para iniciar a aplicação Streamlit:
streamlit run app.pyO aplicativo será aberto automaticamente em seu navegador padrão. Caso contrário, acesse a URL informada no terminal, geralmente: http://localhost:8501.
AskRAG/
│
├── app.py # Código principal da aplicação
├── uploaded/ # Pasta temporária para PDFs carregados
├── requirements.txt # Dependências Python
├── .env # Arquivo contendo sua chave Groq API (você deve criar)
├── README.md # Instruções detalhadas do projeto
└── LICENSE # Licença do projetoObservação:
A pasta uploaded/ é utilizada temporariamente apenas para processar arquivos. Após o processamento, os PDFs são automaticamente removidos.
Siga os passos abaixo para testar o aplicativo:
-
Após rodar o aplicativo, utilize a barra lateral para enviar um ou mais arquivos PDF.
-
Aguarde o processamento terminar.
-
Agora você pode fazer perguntas diretamente sobre o conteúdo carregado. Por exemplo:
- Qual o objetivo principal deste documento?
- Quais tópicos são abordados no texto?
Este projeto está sob a licença MIT. Utilize à vontade, desde que mantenha os créditos originais.
