Este projeto implementa um sistema completo de Retrieval-Augmented Generation (RAG) com as seguintes tecnologias:
- PostgreSQL +
pgvectorcomo banco de vetores - FastAPI como backend para upload, ingestão e busca semântica
- LLM local (ou via OpenAI) para geração de respostas
- Streamlit como frontend interativo
- Docker para facilitar o setup de ambiente
- Upload de arquivos PDF
- Extração e chunking do conteúdo
- Geração de embeddings com modelo open-source ou OpenAI
- Armazenamento vetorial com pgvector
- Busca semântica por similaridade vetorial
- Geração de respostas com LLM
- Interface web via Streamlit
git clone https://github.com/lusabo/rag.git
cd rag# PostgreSQL
POSTGRES_USER=postgres
POSTGRES_PASSWORD=postgres
POSTGRES_DB=rag
POSTGRES_DB_HOST=localhost
POSTGRES_DB_PORT=5432
# pgAdmin
PGADMIN_DEFAULT_EMAIL=[email protected]
PGADMIN_DEFAULT_PASSWORD=admin
# Embeddings (opcional)
OPENAI_API_KEY=sk-...
OPENAI_EMBEDDING_MODEL=text-embedding-3-small
EMBEDDING_DIM=1536cd docker
docker compose up -dcd ..
uv pip install .
alembic upgrade headuv run python -m uvicorn --app-dir backend app.main:app --reloadstreamlit run frontend/app.py• Acesse: http://localhost:8501
- Faça upload de PDFs
- Consulte os documentos com perguntas em linguagem natural
rag/
├── alembic/
├── backend/
├── docker/
├── frontend/
├── .env
├── alembic.ini
└── pyproject.tomlPull requests são bem-vindos! 🙌
Fale comigo no LinkedIn
⭐ Se curtiu, deixe uma estrela no repositório!