Üretken Veri Zekası

Amazon Texttract ile makbuz ve fatura işleme hattı oluşturun | Amazon Web Hizmetleri

Tarih:

Günümüzün iş ortamında kuruluşlar sürekli olarak finansal süreçlerini optimize etmenin, verimliliği artırmanın ve maliyet tasarrufu sağlamanın yollarını arıyor. Önemli iyileştirme potansiyeli taşıyan alanlardan biri borç hesaplarıdır. Yüksek düzeyde, borç hesapları süreci faturaların alınmasını ve taranmasını, taranan faturalardan ilgili verilerin çıkarılmasını, doğrulamayı, onaylamayı ve arşivlemeyi içerir. İkinci adım (çıkarma) karmaşık olabilir. Her fatura ve makbuz farklı görünüyor. Etiketler kusurlu ve tutarsızdır. Fiyat, satıcı adı, satıcı adresi ve ödeme koşulları gibi en önemli bilgiler genellikle açıkça etiketlenmez ve bağlama göre yorumlanmaları gerekir. Verileri ayıklamak için gerçek kişi olan incelemecileri kullanmanın geleneksel yaklaşımı zaman alıcıdır, hataya açıktır ve ölçeklenebilir değildir.

Bu yazıda, borç hesapları sürecinin nasıl otomatikleştirileceğini gösteriyoruz. Amazon Metin Yazısı veri çıkarma için. Ayrıca ayıklama, doğrulama, arşivleme ve akıllı aramaya olanak tanıyan bir fatura otomasyon hattı oluşturmak için bir referans mimarisi de sağlıyoruz.

Çözüme genel bakış

Aşağıdaki mimari şeması, makbuz ve fatura işleme iş akışının aşamalarını göstermektedir. Taranan faturaları ve makbuzları güvenli bir şekilde toplamak ve saklamak için belge yakalama aşamasıyla başlar. Bir sonraki aşama, toplanan faturaları ve makbuzları Amazon Textract'a ilettiğiniz çıkarma aşamasıdır. AnalyzeExpense Satıcı adı, fatura alındı ​​tarihi, sipariş tarihi, ödenmesi gereken tutar, ödenen tutar vb. gibi metinler arasındaki mali açıdan ilişkili ilişkileri çıkarmaya yönelik API. Bir sonraki aşamada, girişi otomatik olarak onaylamanız mı yoksa reddetmeniz mi gerektiğini belirlemek için önceden tanımlanmış gider kurallarını kullanırsınız. Onaylanan ve reddedilen belgeler, klasördeki ilgili klasörlere gider. Amazon Basit Depolama Hizmeti (Amazon S3) kovası. Onaylanan belgeler için, ayıklanan tüm alanları ve değerleri kullanarak arama yapabilirsiniz. Amazon Açık Arama Hizmeti. Dizine eklenen meta verileri OpenSearch Kontrol Panellerini kullanarak görselleştirebilirsiniz. Onaylanan belgeler aynı zamanda şuraya taşınacak şekilde ayarlandı: Amazon S3 Akıllı Katmanlama S3 yaşam döngüsü ilkelerini kullanarak uzun süreli saklama ve arşivleme için.

Çözüm Mimarisi

Aşağıdaki bölümler size çözümü oluşturma sürecinde yol gösterecektir.

Önkoşullar

Bu çözümü dağıtmak için aşağıdakilere sahip olmanız gerekir:

  • Bir AWS hesabı.
  • An AWS Bulut9 çevre. AWS Cloud9, kodunuzu yalnızca bir tarayıcıyla yazmanıza, çalıştırmanıza ve hata ayıklamanıza olanak tanıyan bulut tabanlı bir entegre geliştirme ortamıdır (IDE). Bir kod düzenleyici, hata ayıklayıcı ve terminal içerir.

AWS Cloud9 ortamını oluşturmak için bir ad ve açıklama girin. Geriye kalan her şeyi varsayılan olarak tutun. IDE'ye gitmek için AWS Cloud9 konsolundaki IDE bağlantısını seçin. Artık AWS Cloud9 ortamını kullanmaya hazırsınız.

Çözümü dağıtın

Çözümü ayarlamak için şunu kullanırsınız: AWS Bulut Geliştirme Kiti (AWS CDK) dağıtmak için AWS CloudFormation yığını.

  1. AWS Cloud9 IDE terminalinizde, GitHub deposu ve bağımlılıkları yükleyin. Dağıtmak için aşağıdaki komutları çalıştırın InvoiceProcessor yığın:
git clone https://github.com/aws-samples/amazon-textract-invoice-processor.git
pip install -r requirements.txt
cdk bootstrap
cdk deploy

Dağıtım, GitHub deposundaki varsayılan yapılandırma ayarlarıyla yaklaşık 25 dakika sürer. AWS CloudFormation konsolunda ek çıktı bilgileri de mevcuttur.

  1. AWS CDK dağıtımı tamamlandıktan sonra gider doğrulama kurallarını bir Amazon DinamoDB masa. Aşağıdaki komutları çalıştırmak için aynı AWS Cloud9 terminalini kullanabilirsiniz:
aws dynamodb execute-statement --statement "INSERT INTO "$(aws cloudformation list-exports --query 'Exports[?Name==`InvoiceProcessorWorkflow-RulesTableName`].Value' --output text)" VALUE {'ruleId': 1, 'type': 'regex', 'field': 'INVOICE_RECEIPT_ID', 'check': '(?i)[0-9]{3}[a-z]{3}[0-9]{3}$', 'errorTxt': 'Receipt number is not valid. It is of the format: 123ABC456'}"
aws dynamodb execute-statement --statement "INSERT INTO "$(aws cloudformation list-exports --query 'Exports[?Name==`InvoiceProcessorWorkflow-RulesTableName`].Value' --output text)" VALUE {'ruleId': 2, 'type': 'regex', 'field': 'PO_NUMBER', 'check': '(?i)[a-z0-9]+$', 'errorTxt': 'PO number is not present'}"

  1. Şununla başlayan S3 paketinde: invoiceprocessorworkflow-invoiceprocessorbucketf1-*, bir yükleme klasörü oluşturun.

In Amazon Cognito'suadında mevcut bir kullanıcı havuzunuz olması gerekir OpenSearchResourcesCognitoUserPool*. Bu kullanıcı havuzunu yeni bir kullanıcı oluşturmak için kullanıyoruz.

  1. Amazon Cognito konsolunda kullanıcı havuzuna gidin OpenSearchResourcesCognitoUserPool*.
  2. Yeni bir Amazon Cognito kullanıcısı oluşturun.
  3. Seçtiğiniz bir kullanıcı adı ve şifreyi girin ve bunları daha sonra kullanmak üzere not edin.
  4. Belgeleri yükleyin rastgele_invoice1 ve rastgele_invoice2 S3'e uploads iş akışlarını başlatmak için klasör.

Şimdi belge işleme adımlarının her birine dalalım.

Belge Yakalama

Müşteriler, farklı satıcılardan gelen çok sayıda formattaki faturaları ve makbuzları yönetir. Bu belgeler, basılı kopyalar, dosya deposuna yüklenen taranmış kopyalar veya paylaşılan depolama aygıtları gibi kanallar aracılığıyla alınır. Belge yakalama aşamasında, makbuzların ve faturaların tüm taranmış kopyalarını S3 klasörü gibi yüksek düzeyde ölçeklenebilir bir depolama alanında saklarsınız.

Örnek faturaları yükleyin

Çıkarma

Bir sonraki aşama, toplanan faturaları ve makbuzları Amazon Textract'a ilettiğiniz çıkarma aşamasıdır. AnalyzeExpense Satıcı Adı, Fatura Alındı ​​Tarihi, Sipariş Tarihi, Ödenen/Ödenen Tutar vb. gibi metinler arasındaki mali açıdan ilişkili ilişkileri çıkarmaya yönelik API.

Analiz Gider fatura ve makbuz belgelerinin işlenmesine adanmış bir API'dir. Hem senkronize hem de asenkron API olarak mevcuttur. Senkronize API, resimleri bayt formatında göndermenize olanak tanır ve asenkron API, dosyaları JPG, PNG, TIFF ve PDF formatlarında göndermenize olanak tanır. AnalyzeExpense API yanıtı üç farklı bölümden oluşur:

  • Özet alanları – Bu bölüm hem normalleştirilmiş anahtarları hem de açıkça belirtilen anahtarları değerleriyle birlikte içerir. AnalyzeExpense Satıcı adı ve satıcı adresi gibi iletişimle ilgili bilgiler, vergi mükellefi kimliği gibi vergi kimliğiyle ilgili anahtarlar, vadesi gelen tutar ve indirim gibi ödemeyle ilgili anahtarlar ve fatura kimliği, teslimat tarihi ve teslimat tarihi gibi genel anahtarlar için anahtarları normalleştirir. hesap numarası. Normalleştirilmemiş anahtarlar, özet alanlarında anahtar/değer çiftleri olarak görünmeye devam eder. Desteklenen gider alanlarının tam listesi için bkz. Fatura ve Makbuzları Analiz Etme.
  • Satır öğeleri – Bu bölüm, öğe açıklaması, birim fiyatı, miktarı ve ürün kodu gibi normalleştirilmiş satır öğesi anahtarlarını içerir.
  • OCR bloğu – Blok, fatura sayfasından alınan ham metin özetini içerir. Ham metin özü, özet ve satır öğesi alanlarının bir parçası olarak kapsanmayan bilgilerin sonradan işlenmesi ve tanımlanması için kullanılabilir.

Bu yayın, Amazon Textract IDP CDK yapıları (Akıllı belge işleme (IDP) iş akışlarına yönelik altyapıyı tanımlayan AWS CDK bileşenleri), duruma özel, özelleştirilebilir IDP iş akışları oluşturmanıza olanak tanır. Yapılar ve örnekler, AWS'de IDP işlemlerinin tanımlanmasını sağlayan ve şu adreste yayınlanan bileşenlerden oluşan bir koleksiyondur: GitHub. Kullanılan ana kavramlar AWS CDK yapılarıdır, gerçek AWS CDK yığınları, ve AWS Basamak İşlevleri.

Aşağıdaki şekil Step Functions iş akışını göstermektedir.

Adım işlevi iş akışı

Çıkarma iş akışı aşağıdaki adımları içerir:

  • Fatura İşlemcisi-Karar Verici - Bir AWS Lambda Giriş belgesi biçiminin Amazon Textract tarafından desteklenip desteklenmediğini doğrulayan işlev. Desteklenen formatlar hakkında daha fazla ayrıntı için bkz. Giriş Belgeleri.
  • Belge Bölücü – Belgelerden 2,500 sayfalık (maks) parçalar oluşturan ve çok sayfalı büyük belgeleri işleyebilen bir Lambda işlevi.
  • Harita Durumu – Her parçayı paralel olarak işleyen bir Lambda işlevi.
  • TexttractAsync – Bu görev, aşağıdaki eşzamansız API'yi kullanarak Amazon Texttract'ı çağırır: en iyi uygulamalar ile Amazon Basit Bildirim Servisi (Amazon SNS) bildirimleri ve kullanımları OutputConfig Amazon Textract JSON çıktısını daha önce oluşturduğunuz S3 klasörüne depolamak için. İki Lambda işlevinden oluşur: biri belgeyi işlenmek üzere göndermek için, diğeri ise SNS bildiriminde tetiklenen.
  • TexttractAsyncToJSON2 - Çünkü TextractAsync görev birden fazla sayfalandırılmış çıktı dosyası üretebilir, TextractAsyncToJSON2 süreç bunları tek bir JSON dosyasında birleştirir.

Sonraki üç adımın ayrıntılarını aşağıdaki bölümlerde tartışacağız.

Doğrulama ve onay

Doğrulama aşaması için SetMetaData Lambda işlevi, yüklenen dosyanın daha önce DynamoDB tablosunda yapılandırılan kurallara göre geçerli bir gider olup olmadığını doğrular. Bu gönderi için aşağıdaki örnek kuralları kullanacaksınız:

  • Doğrulama başarılı olursa INVOICE_RECEIPT_ID mevcut ve normal ifadeyle eşleşiyor (?i)[0-9]{3}[a-z]{3}[0-9]{3}$ ve if PO_NUMBER mevcut ve normal ifadeyle eşleşiyor (?i)[a-z0-9]+$
  • Aşağıdaki durumlardan herhangi biri durumunda doğrulama başarısız olur: PO_NUMBER or INVOICE_RECEIPT_ID belgede yanlış veya eksik.

Dosyalar işlendikten sonra gider doğrulama işlevi giriş dosyalarını ikisinden birine taşır: approved or declined aynı S3 klasöründeki klasörler.

S3 çıkışı

Bu çözümün amaçları doğrultusunda gider doğrulama kurallarını depolamak için DynamoDB'yi kullanıyoruz. Ancak bu çözümü kendi veya ticari gider doğrulama veya yönetim çözümlerinizle entegre olacak şekilde değiştirebilirsiniz.

Akıllı indeksleme ve arama

İle OpenSearchPushInvoke Lambda işleviyle, çıkarılan gider meta verileri bir OpenSearch Hizmeti dizinine aktarılır ve aramaya hazır hale gelir.

Nihai TaskOpenSearchMapping adım, aksi halde kapsamı aşabilecek bağlamı temizler. Adım İşlevleri kotası bir görev, durum veya iş akışı çalıştırması için maksimum giriş veya çıkış boyutu.

OpenSearch Hizmeti dizini oluşturulduktan sonra, OpenSearch Kontrol Panelleri aracılığıyla çıkarılan metinden anahtar kelimeleri arayabilirsiniz.

OpenSearch belge arama

Arşivleme, denetim ve analiz

Faturaların ve makbuzların yaşam döngüsünü ve arşivlenmesini yönetmek için, S3 nesnelerinin Standart'tan Akıllı Katmanlı depolama sınıflarına geçişini sağlayacak şekilde S3 yaşam döngüsü kurallarını yapılandırabilirsiniz. S3 Akıllı Katmanlama, erişim düzenlerini izler ve art arda 30 gün boyunca erişilmeyen nesneleri otomatik olarak Seyrek Erişim katmanına taşır. 90 gün boyunca erişim sağlanmadığında nesneler, performans etkisi veya operasyonel ek yük olmaksızın Arşiv Anında Erişim katmanına taşınır.

Denetim ve analiz için bu çözüm, fatura isteklerinde analiz çalıştırmak amacıyla OpenSearch Hizmetini kullanır. OpenSearch Hizmeti, günlük analizi, uygulama araması, kurumsal arama ve daha fazlası gibi çeşitli kullanım durumları için verileri zahmetsizce almanıza, güvenliğini sağlamanıza, aramanıza, toplamanıza, görüntülemenize ve analiz etmenize olanak tanır.

OpenSearch Kontrol Panellerinde oturum açın ve şuraya gidin: Yığın Yönetimi, Kaydedilen nesneler, Daha sonra seçmek ithalat. Seç faturalar.ndjson klonlanmış depodaki dosyayı seçin ve ithalat. Bu, dizinleri önceden doldurur ve görselleştirmeyi oluşturur.

OpenSearch'ü içe aktarma

Sayfayı yenileyin ve şuraya gidin: Ana Sayfa, Kullanıcı Panelive aç Faturalar. Artık filtreleri seçip uygulayabilir ve geçmiş faturaları keşfetmek için zaman penceresini genişletebilirsiniz.

OpenSearch kontrol paneli

Temizlemek

Makbuzları ve faturaları işlemek için Amazon Textract'ı değerlendirmeyi bitirdiğinizde, oluşturmuş olabileceğiniz kaynakları temizlemenizi öneririz. Aşağıdaki adımları tamamlayın:

  1. S3 paketindeki tüm içeriği silin invoiceprocessorworkflow-invoiceprocessorbucketf1-*.
  2. AWS Cloud9'da Amazon Cognito kaynaklarını ve CloudFormation yığınlarını silmek için aşağıdaki komutları çalıştırın:
cognito_user_pool=$(aws cloudformation list-exports --query 'Exports[?Name==`InvoiceProcessorWorkflow-CognitoUserPoolId`].Value' --output text)
echo $cognito_user_pool
cdk destroy
aws cognito-idp delete-user-pool --user-pool-id $cognito_user_pool

  1. AWS Cloud9 konsolundan oluşturduğunuz AWS Cloud9 ortamını silin.

Sonuç

Bu yazıda, veri ayıklamak için Amazon Textract'ı kullanarak nasıl bir fatura otomasyon hattı oluşturabileceğimize ve doğrulama, arşivleme ve arama için bir iş akışını nasıl oluşturabileceğimize dair bir genel bakış sunduk. Nasıl kullanılacağına ilişkin kod örnekleri sağladık. AnalyzeExpense Bir faturadan kritik alanların çıkarılmasına yönelik API.

Başlamak için bu özelliği denemek üzere Amazon Textract konsolunda oturum açın. Amazon Textract özellikleri hakkında daha fazla bilgi edinmek için bkz. Amazon Textract Geliştirici Kılavuzu or Textract Kaynakları. IDP hakkında daha fazla bilgi edinmek için AWS AI hizmetlerine sahip IDP'ye bakın Bölüm 1 ve Bölüm 2 mesaj var.


Yazarlar Hakkında

Sushant Pradhan Amazon Web Services'te kurumsal müşterilere yardımcı olan Kıdemli Çözüm Mimarıdır. İlgi alanları ve deneyimleri arasında konteynerler, sunucusuz teknoloji ve DevOps yer almaktadır. Sushant, boş zamanlarında ailesiyle birlikte dışarıda vakit geçirmekten hoşlanıyor.

Şibin Michaelraj AWS Textract ekibinde Kıdemli Ürün Yöneticisidir. AWS müşterileri için AI/ML tabanlı ürünler oluşturmaya odaklanmıştır.

suprakash dutta Amazon Web Services'ta Kıdemli Çözüm Mimarıdır. Dijital dönüşüm stratejisi, uygulama modernizasyonu ve geçişi, veri analitiği ve makine öğrenimi konularına odaklanmaktadır. AWS'deki AI/ML topluluğunun bir parçasıdır ve akıllı belge işleme çözümleri tasarlar.

Maran Chandrasekaran Amazon Web Services'ta kurumsal müşterilerimizle birlikte çalışan bir Kıdemli Çözüm Mimarıdır. İş dışında, Texas Hill Country'de seyahat etmeyi ve motosikletini sürmeyi seviyor.

spot_img

En Son İstihbarat

spot_img

Bizimle sohbet

Merhaba! Size nasıl yardım edebilirim?