Automatyzowanie identyfikacji, klasyfikacji i wyszukiwania dokumentów przy użyciu rozszerzenia Durable Functions

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

W tym artykule opisano architekturę przetwarzania plików dokumentów zawierających wiele dokumentów różnych typów. Używa rozszerzenia Durable Functions usługi Azure Functions do implementowania potoków, które przetwarzają pliki.

Architektura

Diagram architektury do identyfikowania, klasyfikowania i wyszukiwania dokumentów.

Pobierz plik programu Visio z tą architekturą.

Przepływ pracy

  1. Użytkownik udostępnia plik dokumentu przekazywany przez aplikację internetową. Plik zawiera wiele dokumentów różnych typów. Może to być na przykład plik PDF lub wielostronicowy plik TIFF.

    1. Plik dokumentu jest przechowywany w usłudze Azure Blob Storage.
    2. Aplikacja internetowa dodaje komunikat polecenia do kolejki magazynu w celu zainicjowania przetwarzania potoku.
  2. Orkiestracja rozszerzenia Durable Functions jest wyzwalana przez komunikat polecenia. Komunikat zawiera metadane identyfikujące lokalizację w usłudze Blob Storage pliku dokumentu do przetworzenia. Każde wystąpienie rozszerzenia Durable Functions przetwarza tylko jeden plik dokumentu.

  3. Funkcja działania Scan wywołuje interfejs API odczytu przetwarzanie obrazów, przekazując lokalizację w magazynie dokumentu do przetworzenia. Wyniki optycznego rozpoznawania znaków (OCR) są zwracane do aranżacji, która ma być używana przez kolejne działania.

  4. Funkcja klasyfikuj działanie wywołuje usługę klasyfikatora dokumentów hostowaną w klastrze usługi Azure Kubernetes Service (AKS). Ta usługa używa dopasowania wzorca wyrażeń regularnych, aby zidentyfikować stronę początkową każdego znanego dokumentu i obliczyć liczbę typów dokumentów zawartych w pliku dokumentu. Typy i zakresy stron dokumentów są obliczane i zwracane do aranżacji.

    Uwaga

    Platforma Azure nie oferuje usługi, która może klasyfikować wiele typów dokumentów w jednym pliku. To rozwiązanie korzysta z usługi spoza platformy Azure hostowanej w usłudze AKS.

  5. Funkcja działania Magazynu metadanych zapisuje informacje o typie dokumentu i zakresie stron w magazynie usługi Azure Cosmos DB.

  6. Funkcja działania Indeksowanie tworzy nowy dokument wyszukiwania w usługa wyszukiwania Cognitive dla każdego zidentyfikowanego typu dokumentu i używa bibliotek usługi Azure AI Search dla platformy .NET do uwzględnienia w dokumencie wyszukiwania pełnych wyników OCR i informacji o dokumencie. Identyfikator korelacji jest również dodawany do dokumentu wyszukiwania, aby wyniki wyszukiwania można było dopasować do odpowiednich metadanych dokumentu z usługi Azure Cosmos DB.

  7. Użytkownicy końcowi mogą wyszukiwać dokumenty według zawartości i metadanych. Identyfikatory korelacji w zestawie wyników wyszukiwania mogą służyć do wyszukiwania rekordów dokumentów, które znajdują się w usłudze Azure Cosmos DB. Rekordy zawierają linki do oryginalnego pliku dokumentu w usłudze Blob Storage.

Składniki

  • Durable Functions to rozszerzenie usługi Azure Functions , które umożliwia pisanie funkcji stanowych w bezserwerowym środowisku obliczeniowym. W tej aplikacji jest ona używana do zarządzania pozyskiwaniem dokumentów i orkiestracją przepływu pracy. Umożliwia definiowanie stanowych przepływów pracy przez pisanie funkcji orkiestratora, które są zgodne z modelem programowania usługi Azure Functions. W tle rozszerzenie zarządza stanem, punktami kontrolnymi i ponownymi uruchomieniami, co pozwala skoncentrować się na logice biznesowej.
  • Azure Cosmos DB to globalnie rozproszona wielomodelowa baza danych, która umożliwia skalowanie przepływności i pojemności magazynu w dowolnej liczbie regionów geograficznych. Kompleksowe umowy dotyczące poziomu usług (SLA) gwarantują przepływność, opóźnienie, dostępność i spójność.
  • Azure Storage to zestaw wysoce skalowalnych i bezpiecznych usług w chmurze dla danych, aplikacji i obciążeń. Obejmuje ona usługi Blob Storage, Azure Files, Azure Table Storage i Azure Queue Storage.
  • Usługa Azure App Service udostępnia platformę do tworzenia, wdrażania i skalowania aplikacji internetowych. Funkcja Web Apps to oparta na protokole HTTP usługa do hostowania aplikacji internetowych, interfejsów API REST i zapleczy mobilnych. Za pomocą usługi Web Apps można tworzyć aplikacje na platformie .NET, .NET Core, Java, Ruby, Node.js, PHP lub Python. Aplikacje można łatwo uruchamiać i skalować w środowiskach opartych na systemach Windows i Linux.
  • Usługi Azure AI udostępniają inteligentne algorytmy umożliwiające wyświetlanie, słyszenie, mówienie, interpretowanie i interpretowanie potrzeb użytkowników przy użyciu naturalnych metod komunikacji.
  • Usługa Azure AI Search udostępnia zaawansowane środowisko wyszukiwania w przypadku prywatnej, heterogenicznej zawartości w aplikacjach internetowych, mobilnych i dla przedsiębiorstw.
  • Usługa AKS jest usługą Kubernetes o wysokiej dostępności, bezpiecznym i w pełni zarządzanym. Usługa AKS ułatwia wdrażanie konteneryzowanych aplikacji i zarządzanie nimi.

Alternatywy

  • Model odczytu analizy dokumentów (OCR) usługi Azure AI jest alternatywą dla przetwarzanie obrazów Read.
  • To rozwiązanie przechowuje metadane w usłudze Azure Cosmos DB, aby ułatwić dystrybucję globalną. Usługa Azure SQL Database to kolejna opcja trwałego przechowywania metadanych i informacji o dokumencie.
  • Do wyzwalania wystąpień rozszerzenia Durable Functions można użyć innych platform obsługi komunikatów, w tym usługi Azure Service Bus.
  • Akcelerator rozwiązań, który pomaga w klastrowaniu i segregowaniu danych do szablonów, zobacz Azure/form-recognizer-accelerator (github.com).

Szczegóły scenariusza

W tym artykule opisano architekturę, która używa rozszerzenia Durable Functions do implementowania zautomatyzowanych potoków do przetwarzania plików dokumentów zawierających wiele dokumentów różnych typów. Potoki identyfikują dokumenty w pliku dokumentu, klasyfikują je według typu i przechowują informacje, które mogą być używane w kolejnym przetwarzaniu.

Wiele firm musi zarządzać plikami dokumentów, które zawierają dokumenty, które zostały zeskanowane zbiorczo i które mogą zawierać kilka różnych typów dokumentów. Zazwyczaj pliki dokumentów są plikami PDF lub wielostronicowymi obrazami TIFF. Te pliki zwykle pochodzą z spoza organizacji, a firma odbierana nie kontroluje zawartości.

Biorąc pod uwagę te ograniczenia, organizacje zostały zmuszone do tworzenia własnych rozwiązań analizy dokumentów, które mogą obejmować niestandardowe technologie i procesy ręczne. Rozwiązanie może obejmować interwencję człowieka w celu podzielenia poszczególnych typów dokumentów na własne pliki i dodanie kwalifikatorów klasyfikacji dla każdego dokumentu.

Wiele z tych rozwiązań niestandardowych jest opartych na wzorcu przepływu pracy maszyny stanu i używa systemów baz danych do utrwalania stanu przepływu pracy z usługami sondowania, które sprawdzają stany, które są odpowiedzialne za przetwarzanie. Utrzymywanie i ulepszanie takich rozwiązań może być trudne i czasochłonne.

Organizacje szukają niezawodnych, skalowalnych i odpornych rozwiązań do przetwarzania i zarządzania identyfikacją i klasyfikacją dokumentów dla typów plików używanych przez organizację. Obejmuje to przetwarzanie milionów dokumentów dziennie z pełną obserwacją powodzenia lub niepowodzenia potoku przetwarzania.

Potencjalne przypadki użycia

To rozwiązanie dotyczy wielu obszarów:

  • Raportowanie tytułów. Wiele agencji rządowych i gmin zarządza dokumentami, które nie zostały zmigrowane do formy cyfrowej. Skuteczne zautomatyzowane rozwiązanie może wygenerować plik zawierający wszystkie dokumenty wymagane do spełnienia żądania dokumentu.
  • Rekordy konserwacji. Rejestry konserwacji samolotów, lokomotyw i maszyn nadal istnieją w formie papierowej, która wymaga skanowania i wysyłania do zewnętrznych organizacji.
  • Zezwalaj na przetwarzanie. Departamenty zezwalające na miasta i powiat nadal utrzymują dokumenty papierowe, które są generowane na potrzeby raportowania inspekcji zezwoleń. Możliwość zrobienia zdjęcia kilku dokumentów inspekcji i automatycznego identyfikowania, klasyfikowania i przeszukiwania tych rekordów może być bardzo korzystna.

Kwestie wymagające rozważenia

Te zagadnienia implementują filary struktury Azure Well-Architected Framework, która jest zestawem wytycznych, które mogą służyć do poprawy jakości obciążenia. Aby uzyskać więcej informacji, zobacz Microsoft Azure Well-Architected Framework

Niezawodność

Niezawodność gwarantuje, że aplikacja może spełnić zobowiązania, które należy wykonać dla klientów. Aby uzyskać więcej informacji, zobacz Omówienie filaru niezawodności.

Niezawodne obciążenie to jedno, które jest zarówno odporne, jak i dostępne. Odporność to zdolność systemu do odzyskiwania sprawności po awarii i kontynuowania działania. Celem odporności jest przywrócenie aplikacji do stanu pełnej funkcjonalności po wystąpieniu błędu. Dostępność to miara tego, czy użytkownicy mogą uzyskiwać dostęp do obciążenia, gdy zajdzie taka potrzeba.

Aby uzyskać informacje o niezawodności składników rozwiązania, zobacz następujące zasoby:

Optymalizacja kosztów

Optymalizacja kosztów polega na zmniejszeniu niepotrzebnych wydatków i poprawie wydajności operacyjnej. Aby uzyskać więcej informacji, zobacz Omówienie filaru optymalizacji kosztów.

Najbardziej znaczące koszty tej architektury mogą pochodzić z magazynu plików obrazów na koncie magazynu, przetwarzania obrazów usług sztucznej inteligencji platformy Azure i wymagań dotyczących wydajności indeksu w usługa wyszukiwania usługi Azure AI.

Koszty można zoptymalizować przy użyciu odpowiednich rozmiarów konta magazynu przy użyciu zasad pojemności zarezerwowanej i cyklu życia, odpowiedniego planowania usługi Azure AI Search dla wdrożeń regionalnych i planowania skalowania operacyjnego w górę oraz przy użyciu cen warstwy zobowiązania dostępnej dla przetwarzanie obrazów — usługi OCR do zarządzania przewidywalnymi kosztami.

Poniżej przedstawiono kilka wskazówek dotyczących optymalizowania kosztów:

  • Użyj strategii płatności zgodnie z rzeczywistym użyciem dla architektury i skalowania w poziomie zgodnie z potrzebami, a nie inwestowania w zasoby na dużą skalę na początku.
  • Rozważ koszty szans sprzedaży w architekturze oraz równowagę między zaletą pierwszego mover a szybkim śledzeniem. Skorzystaj z kalkulatora cen, aby oszacować początkowy koszt i koszty operacyjne.
  • Ustanów zasady, budżety i mechanizmy kontroli , które określają limity kosztów dla rozwiązania.

Efektywność wydajności

Wydajność to możliwość skalowania obciążenia w wydajny sposób, aby sprostać wymaganiom użytkowników. Aby uzyskać więcej informacji, zobacz Omówienie filaru wydajności.

Okresy, w których to rozwiązanie przetwarza duże woluminy, mogą uwidaczniać wąskie gardła wydajności. Upewnij się, że rozumiesz i planujesz opcje skalowania dla usługi Azure Functions, skalowania automatycznego usług Azure AI i partycjonowania usługi Azure Cosmos DB, aby zapewnić odpowiednią wydajność rozwiązania.

Współautorzy

Ten artykuł jest obsługiwany przez firmę Microsoft. Pierwotnie został napisany przez następujących współautorów.

Autorzy zabezpieczeń:

Aby wyświetlić niepubalne profile serwisu LinkedIn, zaloguj się do serwisu LinkedIn.

Następne kroki

Artykuły wprowadzające:

Dokumentacja produktu: