--- title: Docling Radioterapia AI emoji: 🏥 colorFrom: blue colorTo: indigo sdk: gradio sdk_version: "4.44.0" python_version: "3.10" app_file: app.py pinned: false license: mit short_description: Motor Docling Markdown. --- # 🏥 Docling — Radioterapia.ai **Motor de transcrição de documentos médicos** construído sobre o [IBM Docling](https://github.com/DS4SD/docling), embarcado em uma interface Gradio com design Claude. Extrai conteúdo estruturado (Markdown) de PDFs, documentos Office, imagens e laudos digitalizados — pronto para alimentar os agentes de IA da plataforma **radioterapia.ai**. --- ## ✨ O que faz - **Transcrição multi-formato**: PDF, DOCX, PPTX, XLSX, HTML, JPG, PNG, TIFF. - **Saída Markdown estruturada**: preserva títulos, tabelas, listas e hierarquia do documento — pronta para LLMs. - **Deduplicação SHA-256**: o mesmo arquivo nunca é processado duas vezes na mesma sessão. - **Score de confiança** por documento, baseado em extensão e densidade textual. - **Logs em tempo real** com status de cada arquivo. - **Export `.md`** com um clique. ## 🔒 Conformidade LGPD - Arquivos processados **estritamente em memória RAM volátil**. - **Exclusão forçada imediata** após a leitura de cada documento do lote. - **Sem gravação permanente** ou retenção de dados sensíveis em servidor. - Histórico de hashes é **limpo a cada sessão** pelo botão dedicado. ## 🚀 Uso 1. Abra o Space. 2. Arraste um ou mais arquivos para a área de upload (ou clique para selecionar). 3. Clique em **Processar Documentos**. 4. Aguarde o motor Docling extrair o conteúdo — o tempo varia conforme tamanho e formato do arquivo (PDFs escaneados envolvem OCR). 5. Copie o Markdown ou baixe o `.md`. ## ⚙️ Notas de deploy - **Hardware recomendado**: CPU upgrade (8 vCPU / 32GB) ou GPU para PDFs com OCR. No tier gratuito (CPU básico) funciona, mas a primeira execução baixa os modelos do Docling (~1–2 min) e cada PDF escaneado pode levar significativamente mais tempo. - **Primeira inicialização**: o `DocumentConverter` é instanciado em *lazy-load* na primeira requisição, então o cold start aparece como tempo extra no primeiro arquivo do dia. - **Limite de tempo por lote**: 100 segundos (configurável em `DoclingAppProcessor.process_batch`). ## 📦 Stack - **Motor**: [docling](https://pypi.org/project/docling/) (IBM Research) - **Interface**: [Gradio](https://gradio.app/) 4.x - **Runtime**: Python 3.10+ ## 📁 Estrutura ``` . ├── app.py # Aplicação Gradio + motor Docling ├── requirements.txt # Dependências └── README.md # Este arquivo (com frontmatter HF) ``` ## 📄 Licença MIT — uso interno radioterapia.ai. --- *radioterapia.ai · docling engine v1.0 · Powered by IBM Docling (OSS)*