Skip to content

Latest commit

 

History

6 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📚 Projeto RAG com PDFs (LangChain)

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

🧠 Conceitos Utilizados

  • RAG (Retrieval-Augmented Generation)
  • Embeddings para representação vetorial de texto
  • Vector Store (ChromaDB)
  • Similarity Search
  • Prompt Engineering

📂 Estrutura do Projeto

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

⚙️ Pré-requisitos

  • Python 3.10+
  • Ambiente virtual (venv ou uv)
  • Chave de API da OpenAI

📦 Instalação das Dependências

Com o ambiente virtual ativado:

pip install \
  langchain \
  langchain-community \
  langchain-openai \
  langchain-chroma \
  python-dotenv \
  pypdf

Ou, se estiver usando uv:

uv add langchain langchain-community langchain-openai langchain-chroma python-dotenv pypdf

🔑 Configuração do Ambiente

Crie um arquivo .env na raiz do projeto:

OPENAI_API_KEY=sk-sua-chave-aqui

⚠️ Nunca versionar este arquivo.


🛠️ Como Funciona

1️⃣ Criação da Base Vetorial

O 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.py

Saída esperada:

Banco de Dados Criado

2️⃣ Perguntas com RAG

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.py

Exemplo:

Escreva sua pergunta: Quais cursos de Python existem?
Resposta da IA: ...

🧩 Lógica do RAG

  1. Pergunta do usuário
  2. Busca semântica no Chroma (similarity search)
  3. Filtragem por relevância (score ≥ 0.65)
  4. Construção do contexto
  5. Prompt + LLM
  6. Resposta final

🎯 Objetivo do Projeto

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

👤 Autor

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.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages