Projeto simples de RAG em Python usando LangChain, Chroma, Gemini e uma UI web com Gradio.
- Carrega um PDF local com
PyPDFLoader - Quebra o documento em chunks
- Gera embeddings com Gemini
- Salva os vetores localmente com Chroma
- Expõe uma interface web simples com Gradio para perguntar sobre o PDF
simple-rag-project/
.env
.env.example
.gitignore
rag_app.py
requirements.txt
TechCorp_Official_Employee_Handbook.pdf
chroma_db/
venv/ ou .venv/ # local, ignorado pelo Git
Crie um ambiente virtual:
py -m venv .venvAtive o ambiente no PowerShell:
.\.venv\Scripts\Activate.ps1Instale as dependencias:
py -m pip install -r requirements.txtCrie seu arquivo .env a partir do exemplo:
Copy-Item .env.example .envDepois edite o .env com sua chave:
GOOGLE_API_KEY=sua_chave_aqui
A interface web do projeto foi implementada com Gradio.
Com o terminal na raiz do projeto:
py .\rag_app.pyDepois de iniciar, o terminal vai mostrar uma URL local do Gradio, como http://127.0.0.1:7860, para abrir no navegador.
Devem ir para o Git:
rag_app.pyrequirements.txtREADME.md.gitignore.env.exampleTechCorp_Official_Employee_Handbook.pdfse ele fizer parte do exemplo do projeto
Nao devem ir para o Git:
.envvenv/ou.venv/chroma_db/.gradio/
- O codigo-fonte fica na raiz em
rag_app.py. - A pasta
venv/ou.venv/e local e nao deve ir para o Git. - A pasta
chroma_db/e gerada automaticamente durante a execucao. - A UI do chatbot roda com Gradio e recebe perguntas pelo navegador.