Bewerken

Delen via


Documentidentificatie, -classificatie en -zoekopdracht automatiseren met Durable Functions

Azure Functions
Azure App Service
Azure AI services
Azure AI Search
Azure Kubernetes Service (AKS)

In dit artikel wordt een architectuur beschreven voor het verwerken van documentbestanden die meerdere documenten van verschillende typen bevatten. De Durable Functions-extensie van Azure Functions wordt gebruikt om de pijplijnen te implementeren die de bestanden verwerken.

Architectuur

Diagram van de architectuur voor het identificeren, classificeren en doorzoeken van documenten.

Een Visio-bestand van deze architectuur downloaden.

Workflow

  1. De gebruiker biedt een documentbestand dat door de web-app wordt geüpload. Het bestand bevat meerdere documenten van verschillende typen. Het kan bijvoorbeeld een PDF- of TIFF-bestand met meerdere pagina's zijn.

    1. Het documentbestand wordt opgeslagen in Azure Blob Storage.
    2. De web-app voegt een opdrachtbericht toe aan een opslagwachtrij om pijplijnverwerking te initiëren.
  2. Durable Functions-indeling wordt geactiveerd door het opdrachtbericht. Het bericht bevat metagegevens die de locatie in Blob Storage identificeren van het documentbestand dat moet worden verwerkt. Elk Durable Functions-exemplaar verwerkt slechts één documentbestand.

  3. Met de functie Scanactiviteit wordt de Computer Vision Read-API aangeroepen, waarbij de locatie in de opslag van het document wordt doorgegeven die moet worden verwerkt. Ocr-resultaten (Optical Character Recognition) worden geretourneerd naar de indeling die door volgende activiteiten moet worden gebruikt.

  4. Met de functie Classificeren wordt de documentclassificatieservice aangeroepen die wordt gehost in een AKS-cluster (Azure Kubernetes Service). Deze service maakt gebruik van een patroon voor reguliere expressies om de beginpagina van elk bekend document te identificeren en om te berekenen hoeveel documenttypen in het documentbestand zijn opgenomen. De typen en paginabereiken van de documenten worden berekend en geretourneerd naar de indeling.

    Notitie

    Azure biedt geen service waarmee meerdere documenttypen in één bestand kunnen worden geclassificeerd. Deze oplossing maakt gebruik van een niet-Azure-service die wordt gehost in AKS.

  5. De activiteitsfunctie Metagegevensarchief slaat het documenttype en de paginabereikgegevens op in een Azure Cosmos DB-archief.

  6. De functie Indexeringsactiviteit maakt een nieuw zoekdocument in de Cognitive Search-service voor elk geïdentificeerd documenttype en gebruikt de Azure AI Search-bibliotheken voor .NET om in het zoekdocument de volledige OCR-resultaten en documentgegevens op te nemen in het zoekdocument. Er wordt ook een correlatie-id toegevoegd aan het zoekdocument, zodat de zoekresultaten kunnen worden vergeleken met de bijbehorende documentmetagegevens van Azure Cosmos DB.

  7. Eindgebruikers kunnen op inhoud en metagegevens naar documenten zoeken. Correlatie-id's in de zoekresultatenset kunnen worden gebruikt om documentrecords op te zoeken die zich in Azure Cosmos DB bevinden. De records bevatten koppelingen naar het oorspronkelijke documentbestand in Blob Storage.

Onderdelen

  • Durable Functions is een uitbreiding van Azure Functions waarmee u stateful functies kunt schrijven in een serverloze rekenomgeving. In deze toepassing wordt deze gebruikt voor het beheren van documentopname en werkstroomindeling. Hiermee kunt u stateful werkstromen definiëren door orchestratorfuncties te schrijven die voldoen aan het Azure Functions-programmeermodel. Achter de schermen beheert de extensie de status, controlepunten en het opnieuw opstarten, zodat u zich kunt concentreren op de bedrijfslogica.
  • Azure Cosmos DB is een wereldwijd gedistribueerde database met meerdere modellen waarmee uw oplossingen doorvoer en opslagcapaciteit kunnen schalen in een willekeurig aantal geografische regio's. Uitgebreide SLA's (Service Level Agreements) garanderen doorvoer, latentie, beschikbaarheid en consistentie.
  • Azure Storage is een set zeer schaalbare en veilige cloudservices voor gegevens, apps en workloads. Het omvat Blob Storage, Azure Files, Azure Table Storage en Azure Queue Storage.
  • Azure App Service biedt een framework voor het bouwen, implementeren en schalen van web-apps. De functie Web Apps is een HTTP-service voor het hosten van webtoepassingen, REST API's en mobiele back-ends. Met Web Apps kunt u ontwikkelen in .NET, .NET Core, Java, Ruby, Node.js, PHP of Python. Toepassingen kunnen eenvoudig worden uitgevoerd en geschaald in Windows- en Linux-omgevingen.
  • Azure AI-services bieden intelligente algoritmen om uw gebruikersbehoeften te zien, te horen, te spreken, te begrijpen en te interpreteren met behulp van natuurlijke communicatiemethoden.
  • Azure AI Search biedt een uitgebreide zoekervaring ten opzichte van privé-, heterogene inhoud in web-, mobiele en bedrijfstoepassingen.
  • AKS is een maximaal beschikbare, veilige en volledig beheerde Kubernetes-service. Met AKS kunt u eenvoudig containertoepassingen implementeren en beheren.

Alternatieven

Scenariodetails

In dit artikel wordt een architectuur beschreven die gebruikmaakt van Durable Functions voor het implementeren van geautomatiseerde pijplijnen voor het verwerken van documentbestanden die meerdere documenten van verschillende typen bevatten. De pijplijnen identificeren de documenten in een documentbestand, classificeren ze op type en slaan gegevens op die kunnen worden gebruikt in de volgende verwerking.

Veel bedrijven moeten documentbestanden beheren en verwerken die documenten bevatten die bulksgewijs zijn gescand en die verschillende documenttypen kunnen bevatten. Meestal zijn de documentbestanden PDF-bestanden of TIFF-afbeeldingen met meerdere pagina's. Deze bestanden zijn meestal afkomstig van buiten de organisatie en het ontvangende bedrijf heeft geen controle over de inhoud.

Gezien deze beperkingen zijn organisaties gedwongen om hun eigen oplossingen voor documentparsering te bouwen die aangepaste technologie en handmatige processen kunnen bevatten. Een oplossing kan menselijke tussenkomst omvatten voor het splitsen van afzonderlijke documenttypen in hun eigen bestanden en het toevoegen van classificatiekwalificaties voor elk document.

Veel van deze aangepaste oplossingen zijn gebaseerd op het werkstroompatroon voor statuscomputers en maken gebruik van databasesystemen voor het behouden van de werkstroomstatus, met pollingservices die controleren op de statussen die ze verantwoordelijk zijn voor verwerking. Het onderhouden en verbeteren van dergelijke oplossingen kan lastig en tijdrovend zijn.

Organisaties zijn op zoek naar betrouwbare, schaalbare en flexibele oplossingen voor het verwerken en beheren van documentidentificatie en -classificatie voor de typen bestanden die hun organisatie gebruikt. Dit omvat het verwerken van miljoenen documenten per dag met volledige waarneembaarheid in het slagen of mislukken van de verwerkingspijplijn.

Potentiële gebruikscases

Deze oplossing is van toepassing op veel gebieden:

  • Titelrapportage. Veel overheidsinstanties en gemeenten beheren papieren records die niet naar digitale vorm zijn gemigreerd. Een effectieve geautomatiseerde oplossing kan een bestand genereren dat alle documenten bevat die nodig zijn om aan een documentaanvraag te voldoen.
  • Onderhoudsrecords. Vliegtuig-, locomotief- en machineonderhoudsrecords bestaan nog steeds in papieren vorm die scannen en verzenden naar externe organisaties vereisen.
  • Verwerking toestaan. Gemeente- en provincieafdelingen houden nog steeds papieren documenten bij die worden gegenereerd voor rapportage over vergunninginspecties. De mogelijkheid om een foto van verschillende inspectiedocumenten te maken en deze records automatisch te identificeren, classificeren en doorzoeken, kan zeer nuttig zijn.

Overwegingen

Met deze overwegingen worden de pijlers van het Azure Well-Architected Framework geïmplementeerd. Dit is een set richtlijnen die kunnen worden gebruikt om de kwaliteit van een workload te verbeteren. Zie Microsoft Azure Well-Architected Framework voor meer informatie

Betrouwbaarheid

Betrouwbaarheid zorgt ervoor dat uw toepassing kan voldoen aan de toezeggingen die u aan uw klanten hebt gedaan. Zie Overzicht van de betrouwbaarheidspijler voor meer informatie.

Een betrouwbare workload is een workload die zowel tolerant als beschikbaar is. Flexibiliteit is het vermogen van het systeem om te herstellen van fouten en te blijven functioneren. Het doel van flexibiliteit is ervoor te zorgen dat de toepassing na een storing weer volledig functioneert. Beschikbaarheid is een meting of uw gebruikers toegang hebben tot uw workload wanneer dat nodig is.

Zie de volgende bronnen voor informatie over betrouwbaarheid over oplossingsonderdelen:

Kostenoptimalisatie

Kostenoptimalisatie gaat over het verminderen van onnodige uitgaven en het verbeteren van operationele efficiëntie. Zie Overzicht van de pijler kostenoptimalisatie voor meer informatie.

De belangrijkste kosten voor deze architectuur zijn mogelijk afkomstig van de opslag van afbeeldingsbestanden in het opslagaccount, afbeeldingsverwerking van Azure AI-services en indexcapaciteitsvereisten in de Azure AI-Search-service.

Kosten kunnen worden geoptimaliseerd door de juiste grootte van het opslagaccount te wijzigen door gebruik te maken van gereserveerd capaciteits- en levenscyclusbeleid, de juiste Azure AI Search-planning voor regionale implementaties en het plannen van operationele schaalaanpassing, en het gebruik van prijscategorieën voor toezeggingscategorieën die beschikbaar zijn voor de Computer Vision - OCR-service om voorspelbare kosten te beheren.

Hier volgen enkele richtlijnen voor het optimaliseren van kosten:

  • Gebruik de strategie voor betalen per gebruik voor uw architectuur en schaal zo nodig uit in plaats van te investeren in grootschalige resources aan het begin.
  • Overweeg verkoopkanskosten in uw architectuur en het evenwicht tussen het voordeel van de eerste mover en snelle stappen. Gebruik de prijscalculator om de initiële kosten en operationele kosten te schatten.
  • Stel beleidsregels, budgetten en controles in waarmee kostenlimieten voor uw oplossing worden ingesteld.

Prestatie-efficiëntie

Prestatie-efficiëntie is de mogelijkheid van uw workload om op een efficiënte manier te schalen om te voldoen aan de eisen die gebruikers erop stellen. Zie overzicht van de pijler Prestatie-efficiëntie voor meer informatie.

Perioden waarin deze oplossing grote volumes verwerkt, kunnen knelpunten in de prestaties blootleggen. Zorg ervoor dat u de schaalopties voor Automatisch schalen van Azure Functions, Azure AI-services en Azure Cosmos DB-partitionering begrijpt en plant om de juiste prestatie-efficiëntie voor uw oplossing te garanderen.

Medewerkers

Dit artikel wordt onderhouden door Microsoft. De tekst is oorspronkelijk geschreven door de volgende Inzenders.

Belangrijkste auteurs:

Als u niet-openbare LinkedIn-profielen wilt zien, meldt u zich aan bij LinkedIn.

Volgende stappen

Inleidende artikelen:

Productdocumentatie: