IntelliDoc AI é um sistema web inteligente construído em Python que realiza análise automatizada de documentos em PDF, combinando técnicas de OCR, RAG (Retrieval-Augmented Generation) e detecção visual com YOLOv8. A interface web interativa é construída com Dash e roda sobre um backend Flask, integrando processamento de linguagem natural, visão computacional e modelos generativos.
- 📄 Upload de documentos PDF
- 🔍 Extração de texto (OCR) com PyMuPDF e pytesseract
- 🎯 Detecção visual com YOLOv8 (Ultralytics + OpenCV)
- ❓ Perguntas e respostas com RAG + OpenAI (embeddings + LLM)
- 🖼️ Visualização de imagens com marcações dos objetos detectados
- 🌐 Interface responsiva com Dash + Bootstrap
- Faça upload de um PDF (ex: contrato, fatura, laudo técnico).
- Extraia o texto com OCR automaticamente.
- Ative a opção “Rodar YOLO” para identificar elementos visuais (selos, logos, carimbos, assinaturas etc.).
- Digite uma pergunta sobre o conteúdo do documento.
- Veja a resposta gerada com base nos trechos mais relevantes.
20250518_220055.mp4
| Área | Ferramentas / Bibliotecas |
|---|---|
| Interface Web | Dash, Flask |
| OCR | PyMuPDF, pytesseract, Pillow |
| Visão Computacional | YOLOv8 (Ultralytics), OpenCV |
| RAG & NLP | OpenAI API, NumPy, scikit-learn, faiss-cpu |
| Ambiente e Servidor | python-dotenv, gunicorn, requests |
| Outros | pandas (opcional para relatórios futuros) |
- Armazenamento vetorial com FAISS + persistência
- Integração com banco de dados (PostgreSQL ou SQLite)
- Dashboard de relatórios com pandas + Plotly
- Suporte a múltiplos arquivos e histórico de perguntas
- Deploy no Hugging Face Spaces ou AWS/GCP
intellidoc/
├── __pycache__/ # Cache interno do Python (pode ser ignorado ou excluído do controle de versão)
├── app/ # Lógica de backend e processamento inteligente
│ ├── __pycache__/ # Cache dos módulos Python (pode ser ignorado)
│ ├── __init__.py # Inicializador do pacote app
│ ├── routes.py # (Opcional) Se estiver usando Flask ou fastAPI para rotas customizadas
│ ├── ocr.py # Extração de texto com PyMuPDF + Tesseract OCR
│ ├── yolo_detector.py # Detecção visual com YOLO (objetos e assinaturas)
│ ├── rag.py # Retrieval-Augmented Generation (RAG) com OpenAI
│ ├── embeddings.py # Criação de embeddings e integração com vector store
│ ├── vector_store.py # Faiss index e recuperação vetorial de documentos
│ ├── nlp_utils.py # Utilitários de NLP, tokenização, limpeza etc.
├── assets/
│ ├── logo.png # Logotipo exibido no layout do Dash
├── models/signatures/ # Diretório de treino YOLO para assinaturas
│ ├── datasets/
│ │ ├── train/ # Conjunto de treino (imagens + labels YOLO)
│ │ ├── valid/ # Conjunto de validação (imagens + labels YOLO)
│ │ ├── data.yaml # Arquivo de configuração para o treinamento
│ │ ├── signature.yaml # Configuração específica do dataset de assinaturas
│ ├── runs/detect/
│ │ ├── train1 ... train7/ # Experimentos de treino (YOLOv8) com pesos, logs etc.
│ │ │ ├── weights/
│ │ │ │ ├── best.pt # Melhor modelo (assinaturas) salvo durante o treino
│ │ │ │ ├── last.pt # Último estado salvo do modelo
│ ├── train_signatures.py # Script de treino para assinatura com Ultralytics YOLO
│ ├── yolov8n.pt # Modelo pré-treinado geral (objetos) da Ultralytics
├── templates/ # (Opcional) Para templates HTML, se usar Flask (não usado por Dash diretamente)
├── dash_app.py # Interface principal Dash com uploads, visualização, OCR, RAG e YOLO
├── config.py # Leitura de variáveis de ambiente, chaves da OpenAI, caminhos de modelo, etc.
├── requirements.txt # Lista atualizada de dependências do projeto
├── run.py # Entry point para execução local ou produção (via gunicorn, por exemplo)
├── yolov8n.pt # Cópia local (redundante?) do modelo pré-treinado YOLO para objetos
git clone https://github.com/LeviLucena/IntellidocAI.git
cd intellidocpython -m venv venv
source venv/bin/activate # Linux/macOS
venv\Scripts\activate # Windowspip install -r requirements.txtCrie um arquivo .env na raiz com o seguinte conteúdo:
OPENAI_API_KEY=your_openai_api_key_herepython run.pyAcesse o app em: http://localhost:8050
gunicorn run:server-
OpenAI Python SDK (v1.x): https://github.com/openai/openai-python
-
YOLOv8 by Ultralytics: https://docs.ultralytics.com/
-
Dash Docs: https://dash.plotly.com/
-
pytesseract OCR: https://github.com/madmaze/pytesseract
-
PyMuPDF: https://pymupdf.readthedocs.io/
-
scikit-learn (cosine_similarity): https://scikit-learn.org/stable/modules/generated/sklearn.metrics.pairwise.cosine_similarity.html
-
FAISS Search: https://github.com/facebookresearch/faiss
-
RAG Paper: https://arxiv.org/abs/2005.11401
Sinta-se à vontade para contribuir, sugerir melhorias ou relatar problemas para ajudar a desenvolver este projeto.
Este projeto está licenciado sob a licença MIT — veja LICENSE para detalhes.
