Νοημοσύνη δεδομένων Πλάτωνα.
Κάθετη Αναζήτηση & Αι.

Δημιουργήστε έναν αγωγό επεξεργασίας αποδείξεων και τιμολογίων με το Amazon Textract | Υπηρεσίες Ιστού της Amazon

Ημερομηνία:

Στο σημερινό επιχειρηματικό τοπίο, οι οργανισμοί αναζητούν συνεχώς τρόπους βελτιστοποίησης των οικονομικών τους διαδικασιών, βελτίωσης της αποτελεσματικότητας και εξοικονόμησης κόστους. Ένας τομέας που έχει σημαντικές δυνατότητες βελτίωσης είναι οι πληρωτέοι λογαριασμοί. Σε υψηλό επίπεδο, η διαδικασία πληρωτέων λογαριασμών περιλαμβάνει λήψη και σάρωση τιμολογίων, εξαγωγή των σχετικών δεδομένων από σαρωμένα τιμολόγια, επικύρωση, έγκριση και αρχειοθέτηση. Το δεύτερο βήμα (εξαγωγή) μπορεί να είναι πολύπλοκο. Κάθε τιμολόγιο και απόδειξη φαίνονται διαφορετικά. Οι ετικέτες είναι ατελείς και ασυνεπείς. Οι πιο σημαντικές πληροφορίες, όπως η τιμή, το όνομα του προμηθευτή, η διεύθυνση του προμηθευτή και οι όροι πληρωμής συχνά δεν επισημαίνονται ρητά και πρέπει να ερμηνεύονται με βάση το πλαίσιο. Η παραδοσιακή προσέγγιση της χρήσης ανθρώπινων αναθεωρητών για την εξαγωγή των δεδομένων είναι χρονοβόρα, επιρρεπής σε σφάλματα και δεν μπορεί να κλιμακωθεί.

Σε αυτήν την ανάρτηση, δείχνουμε πώς να αυτοματοποιήσετε τη διαδικασία πληρωτέων λογαριασμών χρησιμοποιώντας Textract Amazon για εξαγωγή δεδομένων. Παρέχουμε επίσης μια αρχιτεκτονική αναφοράς για τη δημιουργία ενός αγωγού αυτοματισμού τιμολογίων που επιτρέπει την εξαγωγή, την επαλήθευση, την αρχειοθέτηση και την έξυπνη αναζήτηση.

Επισκόπηση λύσεων

Το παρακάτω διάγραμμα αρχιτεκτονικής δείχνει τα στάδια μιας ροής εργασιών επεξεργασίας απόδειξης και τιμολογίου. Ξεκινά με ένα στάδιο λήψης εγγράφων για τη συλλογή και αποθήκευση σαρωμένων τιμολογίων και αποδείξεων με ασφάλεια. Το επόμενο στάδιο είναι η φάση εξόρυξης, όπου περνάτε τα τιμολόγια και τις αποδείξεις που συλλέγετε στο Amazon Textract AnalyzeExpense API για εξαγωγή οικονομικών σχέσεων μεταξύ κειμένου, όπως όνομα προμηθευτή, ημερομηνία παραλαβής τιμολογίου, ημερομηνία παραγγελίας, οφειλόμενο ποσό, ποσό που καταβλήθηκε και ούτω καθεξής. Στο επόμενο στάδιο, χρησιμοποιείτε προκαθορισμένους κανόνες εξόδων για να προσδιορίσετε εάν θα πρέπει να εγκρίνετε ή να απορρίψετε αυτόματα την απόδειξη. Τα εγκεκριμένα και τα απορριφθέντα έγγραφα πηγαίνουν στους αντίστοιχους φακέλους τους εντός του Απλή υπηρεσία αποθήκευσης Amazon (Amazon S3) κάδος. Για εγκεκριμένα έγγραφα, μπορείτε να αναζητήσετε όλα τα εξαγόμενα πεδία και τις τιμές χρησιμοποιώντας Amazon OpenSearch Service. Μπορείτε να οπτικοποιήσετε τα ευρετηριασμένα μεταδεδομένα χρησιμοποιώντας Πίνακες ελέγχου OpenSearch. Εγκεκριμένα έγγραφα έχουν επίσης ρυθμιστεί για μεταφορά Amazon S3 Intelligent-Tiering για μακροχρόνια διατήρηση και αρχειοθέτηση χρησιμοποιώντας πολιτικές κύκλου ζωής S3.

Αρχιτεκτονική λύσεων

Οι παρακάτω ενότητες σας καθοδηγούν στη διαδικασία δημιουργίας της λύσης.

Προϋποθέσεις

Για να αναπτύξετε αυτήν τη λύση, πρέπει να έχετε τα εξής:

  • Ένας λογαριασμός AWS.
  • An AWS Cloud9 περιβάλλον. Το AWS Cloud9 είναι ένα ολοκληρωμένο περιβάλλον ανάπτυξης (IDE) που βασίζεται σε σύννεφο που σας επιτρέπει να γράφετε, να εκτελείτε και να διορθώνετε τον κώδικά σας μόνο με ένα πρόγραμμα περιήγησης. Περιλαμβάνει πρόγραμμα επεξεργασίας κώδικα, πρόγραμμα εντοπισμού σφαλμάτων και τερματικό.

Για να δημιουργήσετε το περιβάλλον AWS Cloud9, δώστε ένα όνομα και μια περιγραφή. Διατηρήστε όλα τα άλλα ως προεπιλογή. Επιλέξτε τον σύνδεσμο IDE στην κονσόλα AWS Cloud9 για πλοήγηση στο IDE. Είστε πλέον έτοιμοι να χρησιμοποιήσετε το περιβάλλον AWS Cloud9.

Αναπτύξτε τη λύση

Για να ρυθμίσετε τη λύση, χρησιμοποιείτε το Κιτ ανάπτυξης AWS Cloud (AWS CDK) για την ανάπτυξη ενός AWS CloudFormation σωρός.

  1. Στο τερματικό AWS Cloud9 IDE, κλωνοποιήστε το Αποθετήριο GitHub και εγκαταστήστε τις εξαρτήσεις. Εκτελέστε τις ακόλουθες εντολές για να αναπτύξετε το InvoiceProcessor σωρός:
git clone https://github.com/aws-samples/amazon-textract-invoice-processor.git
pip install -r requirements.txt
cdk bootstrap
cdk deploy

Η ανάπτυξη διαρκεί περίπου 25 λεπτά με τις προεπιλεγμένες ρυθμίσεις διαμόρφωσης από το αποθετήριο GitHub. Πρόσθετες πληροφορίες εξόδου είναι επίσης διαθέσιμες στην κονσόλα AWS CloudFormation.

  1. Αφού ολοκληρωθεί η ανάπτυξη του AWS CDK, δημιουργήστε κανόνες επικύρωσης εξόδων σε ένα Amazon DynamoDB τραπέζι. Μπορείτε να χρησιμοποιήσετε το ίδιο τερματικό AWS Cloud9 για να εκτελέσετε τις ακόλουθες εντολές:
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. Στον κάδο S3 που ξεκινά με invoiceprocessorworkflow-invoiceprocessorbucketf1-*, δημιουργήστε ένα φάκελο μεταφορτώσεων.

In Amazon Cognito, θα πρέπει να έχετε ήδη καλέσει μια υπάρχουσα ομάδα χρηστών OpenSearchResourcesCognitoUserPool*. Χρησιμοποιούμε αυτήν την ομάδα χρηστών για να δημιουργήσουμε έναν νέο χρήστη.

  1. Στην κονσόλα Amazon Cognito, μεταβείτε στην ομάδα χρηστών OpenSearchResourcesCognitoUserPool*.
  2. Δημιουργήστε έναν νέο χρήστη Amazon Cognito.
  3. Δώστε ένα όνομα χρήστη και κωδικό πρόσβασης της επιλογής σας και σημειώστε τα για μελλοντική χρήση.
  4. Ανεβάστε τα έγγραφα τυχαίο_τιμολόγιο1 και τυχαίο_τιμολόγιο2 στο S3 uploads φάκελο για να ξεκινήσετε τις ροές εργασίας.

Τώρα ας βουτήξουμε σε καθένα από τα βήματα επεξεργασίας εγγράφων.

Λήψη εγγράφου

Οι πελάτες χειρίζονται τιμολόγια και αποδείξεις σε μια πληθώρα μορφών από διαφορετικούς προμηθευτές. Αυτά τα έγγραφα λαμβάνονται μέσω καναλιών όπως έντυπα αντίγραφα, σαρωμένα αντίγραφα που αποστέλλονται στον χώρο αποθήκευσης αρχείων ή κοινόχρηστες συσκευές αποθήκευσης. Στο στάδιο της σύλληψης εγγράφων, αποθηκεύετε όλα τα σαρωμένα αντίγραφα αποδείξεων και τιμολογίων σε ένα χώρο αποθήκευσης υψηλής κλιμάκωσης, όπως σε έναν κάδο S3.

Ανεβάστε δείγματα τιμολογίων

Εξαγωγή

Το επόμενο στάδιο είναι η φάση εξόρυξης, όπου περνάτε τα τιμολόγια και τις αποδείξεις που συλλέγετε στο Amazon Textract AnalyzeExpense API για εξαγωγή οικονομικών σχέσεων μεταξύ κειμένου, όπως Όνομα προμηθευτή, Ημερομηνία παραλαβής τιμολογίου, Ημερομηνία παραγγελίας, Οφειλόμενο Ποσό/Πληρωμή κ.λπ.

AnalyzeExpense είναι ένα API αφιερωμένο στην επεξεργασία εγγράφων τιμολογίων και αποδείξεων. Είναι διαθέσιμο τόσο ως σύγχρονο όσο και ως ασύγχρονο API. Το σύγχρονο API σάς επιτρέπει να στέλνετε εικόνες σε μορφή bytes και το ασύγχρονο API σας επιτρέπει να στέλνετε αρχεία σε μορφές JPG, PNG, TIFF και PDF. ο AnalyzeExpense Η απόκριση API αποτελείται από τρεις διακριτές ενότητες:

  • Πεδία σύνοψης – Αυτή η ενότητα περιλαμβάνει τόσο τα κανονικοποιημένα κλειδιά όσο και τα ρητά αναφερόμενα κλειδιά μαζί με τις τιμές τους. AnalyzeExpense κανονικοποιεί τα κλειδιά για πληροφορίες που σχετίζονται με την επαφή, όπως το όνομα και τη διεύθυνση του προμηθευτή, τα κλειδιά που σχετίζονται με το φορολογικό μητρώο, όπως το αναγνωριστικό φορολογούμενου, τα κλειδιά που σχετίζονται με την πληρωμή, όπως το οφειλόμενο ποσό και την έκπτωση, και γενικά κλειδιά όπως το αναγνωριστικό τιμολογίου, η ημερομηνία παράδοσης και αριθμός λογαριασμού. Τα κλειδιά που δεν έχουν κανονικοποιηθεί εξακολουθούν να εμφανίζονται στα πεδία σύνοψης ως ζεύγη κλειδιού-τιμής. Για μια πλήρη λίστα υποστηριζόμενων πεδίων δαπανών, ανατρέξτε στο Ανάλυση Τιμολογίων και Αποδείξεων.
  • Στοιχεία γραμμής – Αυτή η ενότητα περιλαμβάνει κανονικοποιημένα κλειδιά στοιχείων γραμμής, όπως περιγραφή στοιχείου, τιμή μονάδας, ποσότητα και κωδικό προϊόντος.
  • Μπλοκ OCR – Το μπλοκ περιέχει το απόσπασμα πρωτογενούς κειμένου από τη σελίδα τιμολογίου. Το απόσπασμα ακατέργαστου κειμένου μπορεί να χρησιμοποιηθεί για μεταεπεξεργασία και αναγνώριση πληροφοριών που δεν καλύπτονται ως μέρος των πεδίων περίληψης και στοιχείων γραμμής.

Αυτή η ανάρτηση χρησιμοποιεί το Κατασκευές CDK IDP του Amazon Textract (Στοιχεία AWS CDK για τον καθορισμό της υποδομής για ροές εργασίας έξυπνης επεξεργασίας εγγράφων (IDP)), η οποία σας επιτρέπει να δημιουργήσετε ροές εργασίας IDP για συγκεκριμένες περιπτώσεις, προσαρμόσιμες. Οι κατασκευές και τα δείγματα είναι μια συλλογή στοιχείων που επιτρέπουν τον ορισμό των διαδικασιών IDP στο AWS και δημοσιεύονται στο GitHub. Οι κύριες έννοιες που χρησιμοποιούνται είναι οι κατασκευές AWS CDK, οι πραγματικές Στοίβες AWS CDK, να Λειτουργίες βημάτων AWS.

Το παρακάτω σχήμα δείχνει τη ροή εργασιών Step Functions.

Ροή εργασιών συνάρτησης βήματος

Η ροή εργασιών εξαγωγής περιλαμβάνει τα ακόλουθα βήματα:

  • Υπεύθυνος Επεξεργασίας Τιμολογίων-Αποφασιστής - Μια AWS Lambda λειτουργία που επαληθεύει εάν η μορφή εγγράφου εισόδου υποστηρίζεται από το Amazon Textract. Για περισσότερες λεπτομέρειες σχετικά με τις υποστηριζόμενες μορφές, ανατρέξτε στο Έγγραφα εισαγωγής.
  • DocumentSplitter – Μια λειτουργία Lambda που δημιουργεί κομμάτια 2,500 σελίδων (μέγιστο) από έγγραφα και μπορεί να επεξεργαστεί μεγάλα πολυσέλιδα έγγραφα.
  • Κατάσταση χάρτη – Μια συνάρτηση λάμδα που επεξεργάζεται κάθε κομμάτι παράλληλα.
  • TexttractAsync – Αυτή η εργασία καλεί το Amazon Textract χρησιμοποιώντας το ακόλουθο ασύγχρονο API βέλτιστες πρακτικές με Υπηρεσία απλών ειδοποιήσεων Amazon (Amazon SNS) ειδοποιήσεις και χρήσεις OutputConfig για να αποθηκεύσετε την έξοδο Amazon Textract JSON στον κάδο S3 που δημιουργήσατε νωρίτερα. Αποτελείται από δύο λειτουργίες Lambda: μία για την υποβολή του εγγράφου για επεξεργασία και μία που ενεργοποιείται στην ειδοποίηση SNS.
  • TextractAsyncToJSON2 - Επειδή η TextractAsync η εργασία μπορεί να παράγει πολλαπλά σελιδοποιημένα αρχεία εξόδου, το TextractAsyncToJSON2 διαδικασία τα συνδυάζει σε ένα αρχείο JSON.

Συζητάμε τις λεπτομέρειες των επόμενων τριών βημάτων στις επόμενες ενότητες.

Επαλήθευση και έγκριση

Για το στάδιο επαλήθευσης, το SetMetaData Η συνάρτηση Lambda επαληθεύει εάν το μεταφορτωμένο αρχείο είναι έγκυρη δαπάνη σύμφωνα με τους κανόνες που ρυθμίστηκαν προηγουμένως στον πίνακα DynamoDB. Για αυτήν την ανάρτηση, χρησιμοποιείτε τα ακόλουθα δείγματα κανόνων:

  • Η επαλήθευση είναι επιτυχής εάν INVOICE_RECEIPT_ID είναι παρούσα και ταιριάζει με το regex (?i)[0-9]{3}[a-z]{3}[0-9]{3}$ και if PO_NUMBER είναι παρούσα και ταιριάζει με το regex (?i)[a-z0-9]+$
  • Η επαλήθευση δεν είναι επιτυχής εάν υπάρχει ένα από τα δύο PO_NUMBER or INVOICE_RECEIPT_ID είναι λανθασμένο ή λείπει στο έγγραφο.

Μετά την επεξεργασία των αρχείων, η συνάρτηση επαλήθευσης εξόδων μετακινεί τα αρχεία εισόδου σε οποιοδήποτε από τα δύο approved or declined φακέλους στον ίδιο κάδο S3.

Έξοδος S3

Για τους σκοπούς αυτής της λύσης, χρησιμοποιούμε DynamoDB για την αποθήκευση των κανόνων επικύρωσης εξόδων. Ωστόσο, μπορείτε να τροποποιήσετε αυτήν τη λύση για να ενσωματωθεί με τις δικές σας ή εμπορικές λύσεις επικύρωσης ή διαχείρισης δαπανών.

Έξυπνο ευρετήριο και αναζήτηση

Με την OpenSearchPushInvoke Συνάρτηση Λάμδα, τα εξαγόμενα μεταδεδομένα εξόδων προωθούνται σε ένα ευρετήριο Υπηρεσίας OpenSearch και είναι διαθέσιμα για αναζήτηση.

Ο τελικός TaskOpenSearchMapping Το βήμα καθαρίζει το πλαίσιο, το οποίο διαφορετικά θα μπορούσε να υπερβαίνει το Όριο Λειτουργιών Βήματος μέγιστου μεγέθους εισόδου ή εξόδου για μια εργασία, κατάσταση ή ροή εργασίας.

Αφού δημιουργηθεί το ευρετήριο της υπηρεσίας OpenSearch, μπορείτε να αναζητήσετε λέξεις-κλειδιά από το εξαγόμενο κείμενο μέσω των πινάκων ελέγχου OpenSearch.

Αναζήτηση εγγράφων OpenSearch

Αρχειοθέτηση, έλεγχος και ανάλυση

Για να διαχειριστείτε τον κύκλο ζωής και την αρχειοθέτηση των τιμολογίων και των αποδείξεων, μπορείτε να διαμορφώσετε κανόνες κύκλου ζωής S3 για τη μετάβαση αντικειμένων S3 από τυπικές σε κλάσεις αποθήκευσης Intelligent-Tiering. Το S3 Intelligent-Tiering παρακολουθεί τα μοτίβα πρόσβασης και μετακινεί αυτόματα αντικείμενα στη βαθμίδα Σπάνιας πρόσβασης όταν δεν έχει προσπελαστεί για 30 συνεχόμενες ημέρες. Μετά από 90 ημέρες χωρίς πρόσβαση, τα αντικείμενα μετακινούνται στο επίπεδο Άμεσης πρόσβασης Αρχειοθέτησης χωρίς επιπτώσεις στην απόδοση ή λειτουργικά έξοδα.

Για έλεγχο και αναλυτικά στοιχεία, αυτή η λύση χρησιμοποιεί την Υπηρεσία OpenSearch για την εκτέλεση αναλυτικών στοιχείων σε αιτήματα τιμολογίων. Η Υπηρεσία OpenSearch σάς δίνει τη δυνατότητα να απορροφάτε, να ασφαλίζετε, να αναζητάτε, να συγκεντρώνετε, να προβάλλετε και να αναλύετε αβίαστα δεδομένα για διάφορες περιπτώσεις χρήσης, όπως αναλυτικά στοιχεία καταγραφής, αναζήτηση εφαρμογών, εταιρική αναζήτηση και άλλα.

Συνδεθείτε στους Πίνακες ελέγχου OpenSearch και μεταβείτε σε Διαχείριση στοίβας, Αποθηκευμένα αντικείμενα, κατόπιν επιλέξτε εισαγωγή. Επιλέξτε το τιμολόγια.ndjson αρχείο από το κλωνοποιημένο αποθετήριο και επιλέξτε εισαγωγή. Αυτό συμπληρώνει εκ των προτέρων ευρετήρια και δημιουργεί την οπτικοποίηση.

Εισαγωγή OpenSearch

Ανανεώστε τη σελίδα και μεταβείτε σε Αρχική, Πίνακας διαχείρισης, και ανοίξτε Τιμολόγια. Τώρα μπορείτε να επιλέξετε και να εφαρμόσετε φίλτρα και να επεκτείνετε το χρονικό παράθυρο για να εξερευνήσετε προηγούμενα τιμολόγια.

Πίνακας ελέγχου OpenSearch

εκκαθάριση

Όταν ολοκληρώσετε την αξιολόγηση του Amazon Textract για την επεξεργασία αποδείξεων και τιμολογίων, συνιστούμε να καθαρίσετε τυχόν πόρους που ενδέχεται να έχετε δημιουργήσει. Ολοκληρώστε τα παρακάτω βήματα:

  1. Διαγράψτε όλο το περιεχόμενο από τον κάδο S3 invoiceprocessorworkflow-invoiceprocessorbucketf1-*.
  2. Στο AWS Cloud9, εκτελέστε τις ακόλουθες εντολές για να διαγράψετε πόρους Amazon Cognito και στοίβες CloudFormation:
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 που δημιουργήσατε από την κονσόλα AWS Cloud9.

Συμπέρασμα

Σε αυτήν την ανάρτηση, παρείχαμε μια επισκόπηση του τρόπου με τον οποίο μπορούμε να δημιουργήσουμε έναν αγωγό αυτοματισμού τιμολογίων χρησιμοποιώντας το Amazon Textract για εξαγωγή δεδομένων και να δημιουργήσουμε μια ροή εργασίας για επικύρωση, αρχειοθέτηση και αναζήτηση. Παρέχαμε δείγματα κώδικα σχετικά με τον τρόπο χρήσης του AnalyzeExpense API για εξαγωγή κρίσιμων πεδίων από τιμολόγιο.

Για να ξεκινήσετε, συνδεθείτε στην κονσόλα Amazon Textract για να δοκιμάσετε αυτήν τη λειτουργία. Για να μάθετε περισσότερα σχετικά με τις δυνατότητες του Amazon Textract, ανατρέξτε στο Οδηγός προγραμματιστή Amazon Textract or Πόροι κειμένου. Για να μάθετε περισσότερα σχετικά με το IDP, ανατρέξτε στο IDP με υπηρεσίες AWS AI Μέρος 1 και Μέρος 2 δημοσιεύσεις.


Σχετικά με τους Συγγραφείς

Sushant Pradhan είναι αρχιτέκτονας λύσεων Sr. στο Amazon Web Services, βοηθώντας εταιρικούς πελάτες. Τα ενδιαφέροντα και η εμπειρία του περιλαμβάνουν κοντέινερ, τεχνολογία χωρίς διακομιστή και DevOps. Στον ελεύθερο χρόνο του, ο Sushant απολαμβάνει να περνά χρόνο σε εξωτερικούς χώρους με την οικογένειά του.

Shibin Michaelraj είναι διευθυντής προϊόντων Sr. με την ομάδα AWS Textract. Επικεντρώνεται στην κατασκευή προϊόντων βασισμένων σε AI/ML για πελάτες AWS.

Suprakash Dutta είναι αρχιτέκτονας λύσεων Sr. στο Amazon Web Services. Επικεντρώνεται στη στρατηγική ψηφιακού μετασχηματισμού, τον εκσυγχρονισμό και τη μετανάστευση εφαρμογών, την ανάλυση δεδομένων και τη μηχανική μάθηση. Είναι μέλος της κοινότητας AI/ML στο AWS και σχεδιάζει έξυπνες λύσεις επεξεργασίας εγγράφων.

Maran Chandrasekaran είναι Senior Solutions Architect στην Amazon Web Services, συνεργαζόμενος με τους εταιρικούς πελάτες μας. Εκτός δουλειάς, του αρέσει να ταξιδεύει και να οδηγεί τη μοτοσικλέτα του στο Texas Hill Country.

spot_img

Τελευταία Νοημοσύνη

spot_img

Συνομιλία με μας

Γεια σου! Πώς μπορώ να σε βοηθήσω?