Skip to content

Projeto em .NET 8 para análise de documentos usando Azure Document Intelligence. Ele processa PDFs e imagens, extrai informações e salva os resultados em JSON.

Notifications You must be signed in to change notification settings

natheus/AzureDocIntelligence

Repository files navigation

AzureDocIntelligence

Projeto em .NET 8 para análise de documentos usando Azure Document Intelligence.
Ele processa PDFs e imagens, extrai informações e salva os resultados em JSON. Foi criado um modelo próprio para analisar e extrair informações de faturas da Equatorial e DMAE.


📂 Estrutura do Projeto

AzureDocIntelligence/
│
├── src/
│   └── AzureDocIntelligence/
│       ├── Services/              # Serviços de análise e processamento
│       ├── Config/                # Configuração do ambiente e paths
│       ├── Utils/                 # Utilitários genéricos
│       ├── Documents/             # Pasta de entrada de documentos (PDFs, imagens)
│       ├── ExtractedDocuments/    # Saída dos documentos analisados (JSON)
│       ├── appsettings.json       # Configurações do Azure
│       └── Program.cs             # Ponto de entrada
│
└── test/
    └── AzureDocIntelligence.Tests/ # Testes de integração/unitários

⚙️ Configuração

  1. No arquivo appsettings.json dentro de src/AzureDocIntelligence/ coloque suas credenciais do Azure:
{
  "AzureDocumentIntelligence": {
    "Endpoint": "https://SEU-ENDPOINT.cognitiveservices.azure.com/",
    "ApiKey": "SUA-CHAVE-DO-AZURE"
  }
}
  1. Adicione seus documentos na pasta:
src/AzureDocIntelligence/Documents/

▶️ Validações e Formatos Aceitos

  • Arquivos suportados: .pdf, .jpg, .jpeg, .png
  • Tamanho máximo: 4 MB por arquivo
  • Validações realizadas:
    • Verifica se a pasta de entrada existe
    • Verifica se arquivos possuem extensão suportada
    • Verifica tamanho máximo dos arquivos
    • Garante que o arquivo existe antes de enviar para análise

▶️ Possíveis erros

  • Arquivo não encontrado (FileNotFoundException)
  • Arquivo maior que 4 MB (avisado no console e log)
  • Arquivo com extensão não suportada (avisado no console e log)
  • Erros do Azure Document Intelligence (capturados e salvos no log JSON)

▶️ Formato do Output

  • Cada documento processado gera um arquivo .json em ExtractedDocuments/
  • O JSON contém todos os campos extraídos do documento
  • Todos os erros são registrados em um arquivo de log JSON, incluindo:
    • Nome do arquivo
    • Mensagem de erro

▶️ Como Executar Localmente

Na raiz do projeto (src/AzureDocIntelligence), rode:

dotnet run

O programa vai:

  1. Ler todos os arquivos em Documents/
  2. Validar arquivos e registrar erros em log
  3. Enviar arquivos válidos para o Azure Document Intelligence
  4. Gerar arquivos .json em ExtractedDocuments/
  5. Mover arquivos processados para uma subpasta Processed/

▶️ Executando com Docker Compose

  1. Build do container
docker-compose build
  1. Rodar o container
docker-compose up
  1. Parar o container
docker-compose down

Coloque os arquivos na pasta Documents/ e os resultados aparecerão em ExtractedDocuments/.


▶️ Próximos Passos para Escalabilidade

  • Recebimento de arquivos via API
  • Armazenamento de arquivos no Azure Blob Storage
  • Controle de diretórios e arquivos via banco de dados, associando cada arquivo ao usuário
  • Envio dos dados extraídos via fila de mensagens (ex.: Azure Service Bus)
  • Possibilitar que áreas de dados consumam e organizem informações para planejamento estratégico
  • Exemplo de arquitetura real para o problema apresentado: Image

📌 Observações

  • Projeto funciona tanto localmente quanto em Docker
  • Limite de 4 MB por arquivo devido ao plano gratuito do Azure Document Intelligence
  • Console exibe mensagens de processamento e erros, enquanto logs detalhados são gravados em JSON

About

Projeto em .NET 8 para análise de documentos usando Azure Document Intelligence. Ele processa PDFs e imagens, extrai informações e salva os resultados em JSON.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published