Durable Functions를 사용하여 문서 식별, 분류 및 검색 자동화

Azure 기능
Azure App Service
Azure AI 서비스
Azure AI Search
AKS(Azure Kubernetes Service)

이 문서에서는 다양한 형식의 여러 문서가 포함된 문서 파일을 처리하기 위한 아키텍처를 설명합니다. Azure Functions의 Durable Functions 확장을 사용하여 파일을 처리하는 파이프라인을 구현합니다.

아키텍처

문서 식별, 분류 및 검색을 위한 아키텍처 다이어그램.

이 아키텍처의 Visio 파일을 다운로드합니다.

워크플로

  1. 사용자는 웹앱이 업로드하는 문서 파일을 제공합니다. 파일에는 다양한 형식의 여러 문서가 포함되어 있습니다. 예를 들어, PDF 또는 여러 페이지의 TIFF 파일이 될 수 있습니다.

    1. 문서 파일은 Azure Blob Storage에 저장됩니다.
    2. 웹앱은 스토리지 큐에 명령 메시지를 추가하여 파이프라인 처리를 시작합니다.
  2. Durable Functions 오케스트레이션은 명령 메시지에 의해 트리거됩니다. 메시지에는 처리할 문서 파일의 Blob Storage 위치를 식별하는 메타데이터가 포함되어 있습니다. 각 Durable Functions 인스턴스는 하나의 문서 파일만 처리합니다.

  3. 검사 작업 함수는 Computer Vision Read API를 호출하여 처리할 문서의 스토리지 위치를 전달합니다. OCR(광학 인식) 결과는 후속 작업에서 사용할 오케스트레이션으로 반환됩니다.

  4. Classify 작업 함수는 AKS(Azure Kubernetes Service) 클러스터에서 호스트되는 문서 분류자 서비스를 호출합니다. 이 서비스는 정규식 패턴 일치를 사용하여 알려진 각 문서의 시작 페이지를 식별하고 문서 파일에 포함된 문서 형식 수를 계산합니다. 문서의 형식과 페이지 범위가 계산되어 오케스트레이션으로 반환됩니다.

    참고 항목

    Azure는 단일 파일에서 여러 문서 형식을 분류할 수 있는 서비스를 제공하지 않습니다. 이 솔루션은 AKS에서 호스트되는 비 Azure 서비스를 사용합니다.

  5. 메타데이터 저장소 작업 함수는 Azure Cosmos DB 저장소에 문서 형식 및 페이지 범위 정보를 저장합니다.

  6. 인덱싱 작업 함수는 식별된 각 문서 유형에 대한 Cognitive Search 서비스에 새 검색 문서를 만들고 .NET용 Azure AI Search 라이브러리를 사용하여 검색 문서에 전체 OCR 결과 및 문서 정보를 포함합니다. 검색 결과가 Azure Cosmos DB의 해당 문서 메타데이터와 일치할 수 있도록 상관관계 ID도 검색 문서에 추가됩니다.

  7. 최종 사용자는 콘텐츠 및 메타데이터로 문서를 검색할 수 있습니다. 검색 결과 집합의 상관관계 ID를 사용하여 Azure Cosmos DB에 있는 문서 레코드를 조회할 수 있습니다. 레코드에는 Blob Storage의 원본 문서 파일에 대한 링크가 포함됩니다.

구성 요소

  • Durable Functions는 서버리스 컴퓨팅 환경에서 상태 저장 함수를 작성할 수 있게 해주는 Azure Functions의 확장입니다. 이 애플리케이션에서는 문서 수집 및 워크플로 오케스트레이션을 관리하는 데 사용됩니다. Azure Functions 프로그래밍 모델을 준수하는 오케스트레이터 함수를 작성하여 상태 저장 워크플로를 정의할 수 있습니다. 백그라운드에서 확장은 상태, 검사점 및 다시 시작을 관리하므로 사용자는 비즈니스 논리에 집중할 수 있습니다.
  • Azure Cosmos DB는 전 세계적으로 분산된 다중 model 데이터베이스로, 솔루션이 여러 지역에 걸쳐 처리량과 저장 용량을 크기 조정할 수 있도록 합니다. 포괄적인 SLA(서비스 수준 계약)는 처리량, 대기 시간, 가용성 및 일관성을 보장합니다.
  • Azure Storage는 대규모로 확장 가능하고 안전한 데이터, 앱 및 워크로드용 클라우드 서비스 세트입니다. 여기에는 Blob Storage, Azure Files, Azure Table StorageAzure Queue Storage가 포함됩니다.
  • Azure App Service는 웹앱을 빌드, 배포 및 확장하기 위한 프레임워크를 제공합니다. Web Apps 기능은 웹 애플리케이션, REST API 및 모바일 백 엔드를 호스팅하기 위한 HTTP 기반 서비스입니다. Web Apps를 사용하면 .NET, .NET Core, Java, Ruby, Node.js, PHP 또는 Python에서 개발할 수 있습니다. 애플리케이션은 Windows 및 Linux 기반 환경에서 쉽게 실행되고 스케일 인됩니다.
  • Azure AI 서비스는 자연스러운 통신 방법을 사용하여 사용자 요구를 보고, 듣고, 말하고, 이해하고, 해석하는 지능형 알고리즘을 제공합니다.
  • Azure AI Search 는 웹, 모바일 및 엔터프라이즈 애플리케이션에서 다른 유형의 프라이빗 콘텐츠를 통해 풍부한 검색 환경을 제공합니다.
  • AKS는 고가용성의 안전한 완전 관리형 Kubernetes 서비스입니다. AKS를 사용하면 컨테이너화된 애플리케이션을 쉽게 배포하고 관리할 수 있습니다.

대안

시나리오 정보

이 문서에서는 Durable Functions를 사용하여 다양한 형식의 여러 문서가 포함된 문서 파일을 처리하기 위한 자동화된 파이프라인을 구현하는 아키텍처에 대해 설명합니다. 파이프라인은 문서 파일에서 문서를 식별하고 형식별로 분류하며 후속 처리에 사용할 수 있는 정보를 저장합니다.

많은 회사에서 대량으로 검사한 문서와 여러 가지 문서 형식을 포함할 수 있는 문서 파일을 관리하고 처리해야 합니다. 일반적으로 문서 파일은 PDF 또는 다중 페이지 TIFF 이미지입니다. 이러한 파일은 일반적으로 조직 외부에서 생성되며 수신 회사는 콘텐츠를 제어하지 않습니다.

이러한 제약 조건으로 인해 조직에서는 사용자 지정 기술 및 수동 프로세스를 포함할 수 있는 고유한 문서 구문 분석 솔루션을 빌드해야 했습니다. 솔루션에는 개별 문서 형식을 자체 파일로 분할하고 각 문서에 대한 분류 한정자를 추가하기 위한 사용자의 개입이 포함될 수 있습니다.

이러한 사용자 지정 솔루션 중 다수는 상태 시스템 워크플로 패턴을 기반으로 하며 처리를 담당하는 상태를 확인하는 폴링 서비스와 함께 워크플로 상태를 유지하기 위해 데이터베이스 컴퓨터를 사용합니다. 이러한 솔루션을 유지 관리하고 개선하는 것은 어렵고 시간이 많이 소요될 수 있습니다.

조직에서 사용하는 파일 형식에 대한 문서 식별 및 분류를 처리하고 관리하기 위해 조직은 안정적이고 확장 가능하며 탄력적인 솔루션을 찾고 있습니다. 여기에는 처리 파이프라인의 성공 또는 실패에 대한 완전한 관찰 가능성으로 매일 수백만 개의 문서를 처리하는 것이 포함됩니다.

잠재적인 사용 사례

이 솔루션은 여러 영역에 적용됩니다.

  • 제목 보고. 많은 정부 기관과 지자체는 디지털 형식으로 마이그레이션되지 않은 종이 기록을 관리합니다. 효과적인 자동화 솔루션은 문서 요청을 충족하는 데 필요한 모든 문서가 포함된 파일을 생성할 수 있습니다.
  • 유지 관리 레코드. 항공기, 기관차 및 기계류 유지 관리 기록은 스캔하여 외부 조직으로 보내야 하는 종이 형식으로 여전히 존재합니다.
  • 처리를 허가합니다. 시 및 카운티 허가 부서는 여전히 허가 검사 보고를 위해 생성된 종이 문서를 유지합니다. 여러 검사 문서의 사진을 찍고 이러한 기록을 자동으로 식별, 분류 및 검색하는 기능은 매우 유용할 수 있습니다.

고려 사항

이러한 고려 사항은 워크로드의 품질을 향상시키는 데 사용할 수 있는 일단의 지침 원칙인 Azure Well-Architected Framework의 핵심 요소를 구현합니다. 자세한 내용은 Microsoft Azure Well-Architected Framework를 참조하세요.

안정성

안정성은 애플리케이션이 고객에 대한 약정을 충족할 수 있도록 보장합니다. 자세한 내용은 안정성 핵심 요소 개요를 참조하세요.

안정적인 워크로드는 복원력이 있고 사용 가능한 워크로드입니다. 복원력은 오류를 복구하여 계속 작동하는 시스템 기능입니다. 복원력의 목표는 오류가 발생한 후에 애플리케이션을 완전히 작동하는 상태로 되돌리기 위한 것입니다. 가용성은 사용자가 필요할 때 워크로드에 액세스할 수 있는지 여부를 측정합니다.

솔루션 구성 요소에 대한 안정성 정보는 다음 리소스를 참조하세요.

비용 최적화

비용 최적화는 불필요한 비용을 줄이고 운영 효율성을 높이는 것입니다. 자세한 내용은 비용 최적화 핵심 요소 개요를 참조하세요.

이 아키텍처의 가장 큰 비용은 스토리지 계정의 이미지 파일 스토리지, Azure AI 서비스 이미지 처리 및 Azure AI Search 서비스의 인덱스 용량 요구 사항에서 발생할 수 있습니다.

예약된 용량 및 수명 주기 정책, 지역 배포를 위한 적절한 Azure AI Search 계획 및 운영 강화 예약을 사용하고 Computer Vision – OCR 서비스에 사용할 수 있는 약정 계층 가격 책정을 사용하여 예측 가능한 비용을 관리함으로써 스토리지 계정의 크기를 적절하게 조정하여 비용을 최적화할 수 있습니다.

다음은 비용 최적화를 위한 몇 가지 지침입니다.

  • 아키텍처에 종량제 전략을 사용하고 처음부터 대규모 리소스에 투자하는 대신 필요에 따라 스케일 아웃합니다.
  • 아키텍처의 기회 비용과 첫 번째 동기 우위와 fast follow 간의 균형을 고려합니다. 가격 책정 계산기를 사용하여 초기 비용과 운영 비용을 예상합니다.
  • 솔루션의 비용 제한을 설정하는 정책, 예산 및 컨트롤을 수립합니다.

성능 효율성

성능 효율성은 워크로드가 사용자의 요구 사항을 충족하기 위해 효율적인 방식으로 스케일 인되는 기능입니다. 자세한 내용은 성능 효율성 핵심 요소 개요를 참조하세요.

이 솔루션이 많은 양을 처리하는 기간 동안 성능 병목 현상이 발생할 수 있습니다. 솔루션에 적절한 성능 효율성을 보장하기 위해 Azure Functions, Azure AI 서비스 자동 크기 조정Azure Cosmos DB 분할 에 대한 크기 조정 옵션을 이해하고 계획해야 합니다.

참가자

Microsoft에서 이 문서를 유지 관리합니다. 원래 다음 기여자가 작성했습니다.

주요 작성자:

비공용 LinkedIn 프로필을 보려면 LinkedIn에 로그인합니다.

다음 단계

소개 문서:

제품 설명서: