RPA em Python que lê documentos, extrai dados com IA (LLM), valida regras de negócio e devolve tudo estruturado. Pensado como base para robôs de contas a pagar, onboarding de clientes e conferência fiscal.
RPA · Python · Inteligência Artificial · LLM · Automação de Processos · Extração de Dados · Document Processing · FastAPI · Pydantic · SQLite
Times financeiros e de operações gastam horas relendo notas fiscais, faturas e boletos para lançar pagamentos. É trabalho repetitivo, sujeito a erro e que trava quando o documento vem em PDF, foto ou digitalizado.
O RPA tradicional (baseado em posição fixa de campo / template) quebra quando o layout muda. O DocPilot usa um LLM para entender o documento — funciona mesmo com layouts diferentes, sem template.
- Lê o documento — PDF, imagem (foto/scan) ou texto.
- Extrai os campos com IA em saída estruturada e validada (fornecedor, CNPJ, número, datas, valor, itens).
- Valida regras de negócio (campos obrigatórios, vencimento coerente, soma dos itens x total, documento vencido…).
- Classifica cada documento em
ok/revisar/erroe persiste em banco. - Expõe tudo por CLI e por uma API HTTP (webhook) pronta para plugar em Bitrix24, filas, e-mail, etc.
┌──────────────┐
PDF / imagem │ extract │ Claude (messages.parse) → saída estruturada
/ texto ───▶ │ (IA / demo) │ ou modo DEMO (regex, sem custo)
└──────┬───────┘
▼
┌──────────────┐
│ validate │ regras de negócio → issues + status
└──────┬───────┘
▼
┌──────────────┐ ┌───────────┐
│ store │ ─────▶ │ SQLite │
└──────┬───────┘ └───────────┘
▼
CLI ◀────┴────▶ API (FastAPI /process, /summary)
Cada etapa é um módulo isolado e testável (extract, validate, store, pipeline).
git clone https://github.com/matheusraull99/docpilot.git
cd docpilot
pip install -r requirements.txtO projeto vem com documentos de exemplo e um extrator simulado — dá pra ver tudo funcionando sem API key:
python -m docpilot.cli samples/[OK] nota_01.txt (motor: demo)
Fornecedor : Alpha Tecnologia LTDA (12.345.678/0001-90)
Documento : 4501
Total : BRL 1500.0
[REVER] nota_02.txt (motor: demo)
~ [warning] due_date: Documento já está vencido.
~ [warning] line_items: Soma dos itens (R$ 610.00) diverge do total (R$ 700.00).
[ERRO] nota_03.txt (motor: demo)
! [error] due_date: Vencimento anterior à data de emissão.
Resumo: 3 documento(s) | 1 com erro | 1 para revisar | 1 ok
cp .env.example .env
# edite .env e coloque sua ANTHROPIC_API_KEY
python -m docpilot.cli caminho/para/notas/ # PDFs, imagens ou textos reaisuvicorn docpilot.api:app --reload
# em outro terminal:
curl -F "file=@samples/nota_01.txt" http://localhost:8000/processpytest -q # 8 testes, sem rede e sem API| Camada | Tecnologia |
|---|---|
| Linguagem | Python 3.10+ |
| IA / LLM | Claude (Anthropic) via SDK oficial, saída estruturada |
| Validação de dados | Pydantic v2 |
| API | FastAPI + Uvicorn |
| Persistência | SQLite (portável para Postgres) |
| Testes | pytest |
- OCR local como fallback para digitalizações ruins
- Ingestão direta de e-mail (IMAP) e de pastas monitoradas
- Exportação para Excel / Google Sheets
- Dashboard de acompanhamento
- Suporte a mais tipos de documento (contratos, comprovantes)
MIT — veja LICENSE.
Feito por Matheus Raul · automação de processos com Python e IA.