Este projeto tem como objetivo estudar e praticar Retrieval-Augmented Generation (RAG) utilizando LangChain.
O sistema permite:
- Ler arquivos PDF com informações de cursos
- Criar uma base vetorial a partir desses documentos
- Responder perguntas do usuário utilizando busca semântica + LLM
- RAG (Retrieval-Augmented Generation)
- Embeddings para representação vetorial de texto
- Vector Store (ChromaDB)
- Similarity Search
- Prompt Engineering
RAG_PDF/
│
├── base/
│ └── FAQ.pdf # PDFs usados como base de conhecimento
│
├── db/ # Base vetorial persistida (gerada automaticamente)
│
├── criar_db.py # Script para criar o banco vetorial
├── main.py # Script principal para perguntas via RAG
│
├── .env # Variáveis de ambiente (OPENAI_API_KEY)
└── README.md
- Python 3.10+
- Ambiente virtual (
venvouuv) - Chave de API da OpenAI
Com o ambiente virtual ativado:
pip install \
langchain \
langchain-community \
langchain-openai \
langchain-chroma \
python-dotenv \
pypdfOu, se estiver usando uv:
uv add langchain langchain-community langchain-openai langchain-chroma python-dotenv pypdfCrie um arquivo .env na raiz do projeto:
OPENAI_API_KEY=sk-sua-chave-aquiO script criar_db.py:
- Lê todos os PDFs do diretório
base/ - Divide os textos em chunks
- Gera embeddings
- Armazena tudo no ChromaDB (
./db)
Execute:
python criar_db.pySaída esperada:
Banco de Dados Criado
O script main.py:
- Recebe uma pergunta do usuário
- Busca os textos mais relevantes no banco vetorial
- Monta um prompt com base no contexto recuperado
- Envia para o modelo da OpenAI
Execute:
python main.pyExemplo:
Escreva sua pergunta: Quais cursos de Python existem?
Resposta da IA: ...
- Pergunta do usuário
- Busca semântica no Chroma (similarity search)
- Filtragem por relevância (score ≥ 0.65)
- Construção do contexto
- Prompt + LLM
- Resposta final
Projeto educacional, focado em:
- Aprender RAG na prática
- Entender todo o pipeline (loader → splitter → embeddings → recuperação → geração)
- Criar base sólida para aplicações reais com LLMs
Projeto desenvolvido por Francisco como parte dos estudos em IA, LangChain e RAG.
✅ Sinta-se à vontade para adaptar, expandir ou refatorar este projeto conforme sua evolução nos estudos.