(+351) 21 24 10006  ·  info@bconcepts.pt
Carnaxide, Lisboa
Azure AI & Machine Learning
Azure AI & Machine Learning 2 min

Azure AI Document Intelligence: extracção automática de dados de documentos

João Barros 01 de August de 2025 2 min de leitura

O Azure AI Document Intelligence (anteriormente Form Recognizer) usa modelos de IA para extrair texto, tabelas e campos-chave de documentos — facturas, recibos, contratos, formulários — com alta precisão, sem template fixo.

Modelos pré-treinados disponíveis

prebuilt-invoice        → facturas (campos: VendorName, InvoiceDate, TotalTax, ...)
prebuilt-receipt        → recibos (MerchantName, TransactionDate, Total, ...)
prebuilt-idDocument     → BI/passaporte (FirstName, LastName, DocumentNumber, ...)
prebuilt-businessCard   → cartões de visita (ContactNames, Emails, ...)
prebuilt-read           → extracção de texto genérico com estrutura
prebuilt-layout         → texto + tabelas + selectionmarks

Analisar uma factura

from azure.ai.formrecognizer import DocumentAnalysisClient
from azure.core.credentials import AzureKeyCredential

client = DocumentAnalysisClient(
    endpoint=os.environ["DOC_INTEL_ENDPOINT"],
    credential=AzureKeyCredential(os.environ["DOC_INTEL_KEY"])
)

with open("fatura.pdf", "rb") as f:
    poller = client.begin_analyze_document("prebuilt-invoice", f)

result = poller.result()

for invoice in result.documents:
    fields = invoice.fields
    print(f"Fornecedor: {fields.get('VendorName').value}")
    print(f"Data:       {fields.get('InvoiceDate').value}")
    print(f"Total:      {fields.get('InvoiceTotal').value.amount} {fields.get('InvoiceTotal').value.currency_symbol}")
    print(f"Confiança:  {fields.get('InvoiceTotal').confidence:.0%}")

Modelo customizado — treinar nos seus documentos

# 1. Carregar 5+ documentos de exemplo + labels no Document Intelligence Studio
# 2. Treinar modelo customizado (3-5 minutos)
# 3. Usar o model_id gerado:

poller = client.begin_analyze_document(
    model_id="modelo-contratos-bconcepts",
    document=f
)
result = poller.result()
# Campos definidos nos labels: NumContrato, DataInicio, ValorAnual, etc.

Integrar em pipeline de processamento

# Power Automate: HTTP POST para Document Intelligence API
# → Parse JSON da resposta → Gravar campos no SharePoint / Dataverse / SQL
# Ou: Azure Function triggered by Blob Storage → processa cada PDF ao chegar

Conclusão

O Document Intelligence elimina o trabalho manual de extracção de dados de documentos. Com modelos pré-treinados, não há código de OCR a escrever — é chamar a API e processar o JSON estruturado. Para documentos específicos da organização, modelos customizados atingem 95%+ de precisão com apenas 5 exemplos de treino.

Partilhar: