Automatizzare l'identificazione, la classificazione e la ricerca dei documenti usando Durable Functions

Funzioni di Azure
Servizio app di Azure
Servizi di intelligenza artificiale di Azure
Ricerca di intelligenza artificiale di Azure
Servizio Azure Kubernetes

Questo articolo descrive un'architettura per l'elaborazione di file di documenti contenenti più documenti di vari tipi. Usa l'estensione Durable Functions di Funzioni di Azure per implementare le pipeline che elaborano i file.

Architettura

Diagramma dell'architettura per identificare, classificare e cercare documenti.

Scaricare un file di Visio di questa architettura.

Workflow

  1. L'utente fornisce un file di documento caricato dall'app Web. Il file contiene più documenti di vari tipi. Può, ad esempio, essere un file TIFF PDF o a più pagine.

    1. Il file di documento viene archiviato in Archiviazione BLOB di Azure.
    2. L'app Web aggiunge un messaggio di comando a una coda di archiviazione per avviare l'elaborazione della pipeline.
  2. L'orchestrazione di Durable Functions viene attivata dal messaggio di comando. Il messaggio contiene metadati che identificano il percorso nel BLOB Archiviazione del file di documento da elaborare. Ogni istanza di Durable Functions elabora un solo file di documento.

  3. La funzione Analisi attività chiama l'API di lettura Visione artificiale, passando la posizione in archiviazione del documento da elaborare. I risultati del riconoscimento ottico dei caratteri (OCR) vengono restituiti all'orchestrazione da usare dalle attività successive.

  4. La funzione Classifica attività chiama il servizio classificatore di documenti ospitato in un cluster del servizio Azure Kubernetes (servizio Azure Kubernetes). Questo servizio usa criteri di ricerca di espressioni regolari per identificare la pagina iniziale di ogni documento noto e calcolare il numero di tipi di documento contenuti nel file di documento. I tipi e gli intervalli di pagine dei documenti vengono calcolati e restituiti all'orchestrazione.

    Nota

    Azure non offre un servizio in grado di classificare più tipi di documento in un singolo file. Questa soluzione usa un servizio non di Azure ospitato nel servizio Azure Kubernetes.

  5. La funzione di attività Archivio metadati salva le informazioni sul tipo di documento e sull'intervallo di pagine in un archivio di Azure Cosmos DB.

  6. La funzione dell'attività di indicizzazione crea un nuovo documento di ricerca nel servizio di ricerca cognitivo per ogni tipo di documento identificato e usa le librerie di Ricerca di intelligenza artificiale di Azure per .NET per includere nel documento di ricerca i risultati ECR completi e le informazioni sui documenti. Viene aggiunto anche un ID di correlazione al documento di ricerca in modo che i risultati della ricerca possano essere confrontati con i metadati del documento corrispondenti di Azure Cosmos DB.

  7. Gli utenti finali possono cercare documenti in base al contenuto e ai metadati. Gli ID di correlazione nel set di risultati di ricerca possono essere usati per cercare i record di documento presenti in Azure Cosmos DB. I record includono collegamenti al file di documento originale nella Archiviazione BLOB.

Componenti

  • Durable Functions è un'estensione di Funzioni di Azure che consente di scrivere funzioni con stato in un ambiente di calcolo serverless. In questa applicazione viene usata per gestire l'inserimento di documenti e l'orchestrazione del flusso di lavoro. Consente di definire flussi di lavoro con stato scrivendo funzioni dell'agente di orchestrazione conformi al modello di programmazione Funzioni di Azure. Dietro le quinte, l'estensione gestisce lo stato, i checkpoint e i riavvii, consentendo di concentrarsi sulla logica di business.
  • Azure Cosmos DB è un database multimodello distribuito a livello globale che consente alle soluzioni di ridimensionare la velocità effettiva e la capacità di archiviazione in un numero qualsiasi di aree geografiche. I contratti di servizio completi garantiscono velocità effettiva, latenza, disponibilità e coerenza.
  • Archiviazione di Azure è un set di servizi cloud altamente scalabili e sicuri per dati, app e carichi di lavoro. Include Archiviazione BLOB, File di Azure, Archiviazione tabelle di Azure e Archiviazione code di Azure.
  • Servizio app di Azure fornisce un framework per la compilazione, la distribuzione e il dimensionamento di app Web. La funzionalità App Web è un servizio basato su HTTP per l'hosting di applicazioni Web, API REST e back-end per dispositivi mobili. Con App Web è possibile sviluppare in .NET, .NET Core, Java, Ruby, Node.js, PHP o Python. Le applicazioni vengono eseguite e ridimensionate facilmente in ambienti basati su Windows e Linux.
  • I servizi di intelligenza artificiale di Azure offrono algoritmi intelligenti per visualizzare, ascoltare, parlare, comprendere e interpretare le esigenze degli utenti usando metodi naturali di comunicazione.
  • Ricerca di intelligenza artificiale di Azure offre un'esperienza di ricerca avanzata su contenuti privati, eterogenei nelle applicazioni Web, per dispositivi mobili e aziendali.
  • Il servizio Azure Kubernetes è un servizio Kubernetes a disponibilità elevata, sicuro e completamente gestito. Il servizio Azure Kubernetes semplifica la distribuzione e la gestione delle applicazioni in contenitori.

Alternative

  • Il modello OCR (Document Intelligence) di Azure per intelligenza artificiale è un'alternativa a Visione artificiale Lettura.
  • Questa soluzione archivia i metadati in Azure Cosmos DB per facilitare la distribuzione globale. database SQL di Azure è un'altra opzione per l'archiviazione permanente dei metadati e delle informazioni dei documenti.
  • È possibile usare altre piattaforme di messaggistica, tra cui bus di servizio di Azure, per attivare le istanze di Durable Functions.
  • Per un acceleratore di soluzioni che consente di raggruppare e separare i dati in modelli, vedere Azure/form-recognizer-accelerator (github.com).For a solution accelerator that helps in clustering and segregating data into templates, see Azure/form-recognizer-accelerator (github.com).

Dettagli dello scenario

Questo articolo descrive un'architettura che usa Durable Functions per implementare pipeline automatizzate per l'elaborazione di file di documenti contenenti più documenti di vari tipi. Le pipeline identificano i documenti in un file di documento, li classificano per tipo e archiviano le informazioni che possono essere usate durante l'elaborazione successiva.

Molte aziende devono gestire ed elaborare i file di documento contenenti documenti che sono stati analizzati in blocco e che possono contenere diversi tipi di documento. In genere i file di documento sono pdf o immagini TIFF a più pagine. Questi file provengono in genere dall'esterno dell'organizzazione e la società ricevente non controlla il contenuto.

Dato questi vincoli, le organizzazioni sono state costrette a creare soluzioni di analisi dei documenti personalizzate che possono includere tecnologie personalizzate e processi manuali. Una soluzione può includere l'intervento umano per suddividere i singoli tipi di documento nei propri file e aggiungere qualificatori di classificazione per ogni documento.

Molte di queste soluzioni personalizzate si basano sul modello del flusso di lavoro della macchina a stati e usano sistemi di database per rendere persistente lo stato del flusso di lavoro, con i servizi di polling che controllano gli stati che sono responsabili dell'elaborazione. Mantenere e migliorare tali soluzioni può essere difficile e dispendioso in termini di tempo.

Le organizzazioni cercano soluzioni affidabili, scalabili e resilienti per l'elaborazione e la gestione dell'identificazione e della classificazione dei documenti per i tipi di file usati dall'organizzazione. Ciò include l'elaborazione di milioni di documenti al giorno con l'osservazione completa dell'esito positivo o negativo della pipeline di elaborazione.

Potenziali casi d'uso

Questa soluzione si applica a molte aree:

  • Segnalazione titolo. Molte agenzie governative e comuni gestiscono i record cartacei che non sono stati migrati in forma digitale. Una soluzione automatizzata efficace può generare un file contenente tutti i documenti necessari per soddisfare una richiesta di documento.
  • Record di manutenzione. I record di manutenzione degli aerei, delle locomotive e dei macchinari esistono ancora in forma cartacea che richiedono l'analisi e l'invio a organizzazioni esterne.
  • Consente l'elaborazione. Città e contea che consentono ai reparti di mantenere i documenti cartacei generati per la segnalazione delle ispezioni. La possibilità di scattare una foto di diversi documenti di ispezione e identificare, classificare e cercare automaticamente in questi record può essere estremamente vantaggiosa.

Considerazioni

Queste considerazioni implementano i pilastri di Azure Well-Architected Framework, che è un set di set di principi guida che possono essere usati per migliorare la qualità di un carico di lavoro. Per altre informazioni, vedere Framework ben progettato di Microsoft Azure

Affidabilità

L'affidabilità garantisce che l'applicazione possa soddisfare gli impegni assunti dai clienti. Per altre informazioni, vedere Panoramica del pilastro dell'affidabilità.

Un carico di lavoro affidabile è un carico di lavoro resiliente e disponibile. La resilienza è la capacità di un sistema di recuperare in caso di errore e continuare a funzionare. L'obiettivo della resilienza consiste nel ripristinare uno stato completamente funzionale dell'applicazione dopo un errore. La disponibilità è una misura che indica se gli utenti possono accedere al carico di lavoro quando necessario.

Per informazioni sull'affidabilità sui componenti della soluzione, vedere le risorse seguenti:

Ottimizzazione dei costi

L'ottimizzazione dei costi riguarda la riduzione delle spese non necessarie e il miglioramento dell'efficienza operativa. Per altre informazioni, vedere Panoramica del pilastro di ottimizzazione dei costi.

I costi più significativi per questa architettura derivano potenzialmente dall'archiviazione dei file di immagine nell'account di archiviazione, dall'elaborazione delle immagini dei servizi di intelligenza artificiale di Azure e dai requisiti di capacità degli indici nell'servizio di ricerca di Intelligenza artificiale di Azure.

I costi possono essere ottimizzati ridimensionando correttamente l'account di archiviazione usando i criteri di capacità e ciclo di vita riservati, la pianificazione appropriata di Ricerca di intelligenza artificiale di Azure per le distribuzioni a livello di area e la pianificazione delle prestazioni operative e l'uso dei prezzi del piano di impegno disponibili per il Visione artificiale servizio OCR per gestire i costi prevedibili.

Ecco alcune linee guida per l'ottimizzazione dei costi:

  • Usare la strategia con pagamento in base al consumo per l'architettura e aumentare il numero di istanze in base alle esigenze anziché investire in risorse su larga scala all'inizio.
  • Prendere in considerazione i costi delle opportunità nell'architettura e l'equilibrio tra vantaggio first-mover e fast follow. Usare il calcolatore prezzi per stimare i costi iniziali e i costi operativi.
  • Stabilire criteri, budget e controlli che impostano limiti di costo per la soluzione.

Efficienza prestazionale

L'efficienza delle prestazioni è la capacità del carico di lavoro di ridimensionarsi in modo efficiente per soddisfare le esigenze che gli utenti lo pongono. Per altre informazioni, vedere Panoramica dell'efficienza delle prestazioni.

Periodi in cui questa soluzione elabora volumi elevati può esporre colli di bottiglia delle prestazioni. Assicurarsi di comprendere e pianificare le opzioni di ridimensionamento per Funzioni di Azure, la scalabilità automatica dei servizi di intelligenza artificiale di Azure e il partizionamento di Azure Cosmos DB per garantire un'efficienza delle prestazioni appropriata per la soluzione.

Collaboratori

Questo articolo viene gestito da Microsoft. Originariamente è stato scritto dai seguenti contributori.

Autori principali:

Per visualizzare i profili LinkedIn non pubblici, accedere a LinkedIn.

Passaggi successivi

Articoli introduttivi:

Documentazione sui prodotti: