Tutorial: Dokumentenverarbeitungspipeline mit Document AI erstellen¶
Einführung¶
Mit Document AI können Sie Dokumente verschiedener Formate verarbeiten und Informationen sowohl aus textlastigen Absätzen als auch aus Bildern extrahieren, die Text enthalten, wie z. B. Logos, handschriftlicher Text (Unterschriften) oder Häkchen. Dieses Tutorial führt Sie in Document AI ein, indem Sie die erforderlichen Objekte und Berechtigungen einrichten und einen Document AI-Modell-Build zur Verwendung in einer Verarbeitungspipeline erstellen.
Das Tutorial verwendet die Snowsight-Weboberfläche. Für die Schritte, die die Verwendung von SQL erfordern, können Sie jeden Snowflake-Client verwenden, der die Ausführung von SQL unterstützt.
Lerninhalte¶
In diesem Tutorial erfahren Sie Folgendes:
Einrichten der Objekte und Berechtigungen, die für die Verwendung von Document AI erforderlich sind.
Erstellen eines Document AI-Modell-Builds unter Verwendung der Document AI-Benutzeroberfläche in Snowsight, um Daten aus unstrukturierten Dokumenten zu extrahieren.
Erstellen einer Pipeline für die kontinuierliche Verarbeitung neuer Dokumente im Stagingbereich unter Verwendung eines Document AI-Modell-Builds sowie Streams und Tasks (Aufgaben).
Voraussetzungen¶
Die folgenden Voraussetzungen müssen erfüllt sein, um dieses Tutorial abzuschließen:
Sie müssen sich als ein Benutzer mit der Rolle ACCOUNTADMIN verbinden, mit der Sie eine kundenspezifische Rolle erstellen, die in diesem Tutorial verwendet wird, und dieser neuen Rolle die erforderlichen Berechtigungen erteilen.
Sie müssen über ein Snowflake-Konto in einer der kommerziellen Regionen verfügen, die für Document AI unterstützt werden. Weitere Informationen zu unterstützten Regionen finden Sie unter Document AI-Verfügbarkeit.
Sie müssen ein Warehouse haben, das Sie mit Document AI nutzen können. Weitere Informationen zur Auswahl eines Warehouses finden Sie unter Bestimmen der optimalen Warehouse-Größe für Document AI.
Erforderliche Objekte und Berechtigungen einrichten¶
In diesem Abschnitt werden Sie Folgendes tun:
Erstellen einer Datenbank und eines Schemas, die das Document AI-Modell-Build enthalten sollen.
Erstellen einer kundenspezifische Rolle, um einen Document AI-Modell-Build und eine Dokumentenverarbeitungspipeline vorzubereiten.
Erteilen der kundenspezifische Rolle die erforderlichen Berechtigungen.
Datenbank, Schema und kundenspezifische Rolle erstellen¶
Um eine Datenbank, ein Schema und eine Rolle für die Verwendung mit Document AI zu erstellen, gehen Sie wie folgt vor:
Erstellen Sie eine Datenbank und ein Schema, um ein Document AI-Modell-Build zu erstellen:
CREATE DATABASE doc_ai_db; CREATE SCHEMA doc_ai_db.doc_ai_schema;
Erstellen Sie die kundenspezifische Rolle
doc_ai_role
zur Vorbereitung des Document AI-Modell-Builds und zum Erstellen von Verarbeitungspipelines:USE ROLE ACCOUNTADMIN; CREATE ROLE doc_ai_role;
Erforderliche Berechtigungen zuweisen¶
Um die Berechtigungen zu erteilen, die für die Verwendung mit Document AI erforderlich sind, gehen Sie wie folgt vor:
Weisen Sie der Rolle
doc_ai_role
die Datenbankrolle SNOWFLAKE.DOCUMENT_INTELLIGENCE_CREATOR zu:GRANT DATABASE ROLE SNOWFLAKE.DOCUMENT_INTELLIGENCE_CREATOR TO ROLE doc_ai_role;
Erteilen Sie der Rolle
doc_ai_role
Berechtigungen für die Nutzung und Betrieb des Warehouses:GRANT USAGE, OPERATE ON WAREHOUSE <your_warehouse> TO ROLE doc_ai_role;
Erteilen Sie der Rolle
doc_ai_role
die Berechtigungen zur Nutzung der Datenbank und des Schemas, die Sie erstellt haben:GRANT USAGE ON DATABASE doc_ai_db TO ROLE doc_ai_role; GRANT USAGE ON SCHEMA doc_ai_db.doc_ai_schema TO ROLE doc_ai_role;
Erteilen Sie der Rolle
doc_ai_role
die Berechtigung zum Erstellen von Stagingbereichen, um die Dokumente für die Extraktion zu speichern:GRANT CREATE STAGE ON SCHEMA doc_ai_db.doc_ai_schema TO ROLE doc_ai_role;
Erteilen Sie der Rolle
doc_ai_role
die Berechtigung, Modell-Builds (Instanzen der Klasse DOCUMENT_INTELLIGENCE) zu erstellen:GRANT CREATE SNOWFLAKE.ML.DOCUMENT_INTELLIGENCE ON SCHEMA doc_ai_db.doc_ai_schema TO ROLE doc_ai_role;
Erteilen Sie der Rolle
doc_ai_role
die erforderlichen Berechtigungen, um eine Verarbeitungspipeline mit Streams und Aufgaben zu erstellen:GRANT CREATE STREAM, CREATE TABLE, CREATE TASK, CREATE VIEW ON SCHEMA doc_ai_db.doc_ai_schema TO ROLE doc_ai_role; GRANT EXECUTE TASK ON ACCOUNT TO ROLE doc_ai_role;
Weisen Sie die Rolle
doc_ai_role
dem Benutzer des Tutorials für die Verwendung in den nächsten Schritten des Tutorials zu:GRANT ROLE doc_ai_role TO USER <your_user_name>;
Zusammenfassung¶
In diesem Abschnitt haben Sie Folgendes gelernt:
Erstellen der Datenbank und des Schemas, die ein Document AI-Modell-Build enthalten sollen.
Erstellen der kundenspezifischen Rolle
doc_ai_role
.Erteilen der Rolle
doc_ai_role
die erforderlichen Berechtigungen und Zuweisen dieser Rolle zum Benutzer des Tutorials.
Document AI-Modell-Build vorbereiten¶
In diesem Abschnitt bereiten Sie einen Document AI-Modell-Build vor, indem Sie den Modell-Build erstellen und Dokumente hochladen, um das Modell zu testen.
Der Document AI-Modell-Build stellt einen einzelnen Typ des Dokuments dar. In diesem Tutorial werden Sie einen Modell-Build erstellen, um Informationen aus Inspektionsberichten zu extrahieren. Der Document AI-Modell-Build umfasst das Modell, die zu extrahierenden Datenwerte und die zum Testen des Modells hochgeladenen Dokumente.
Document AI-Modell-Build erstellen¶
Um einen Document AI-Modell-Build zu erstellen, gehen Sie wie folgt vor:
Melden Sie sich bei Snowsight an.
Wählen Sie im Navigationsmenü die Option AI & ML » Document AI aus.
Wählen Sie ein Warehouse aus.
Wählen Sie + Build aus.
Geben Sie in dem daraufhin angezeigten Dialogfeld
inspection_reviews
als Namen für Ihren Modell-Build ein, und wählen Sie den Speicherort aus (Datenbankdoc_ai_db
und Schemadoc_ai_schema
).Wählen Sie Create aus.
Dokumente in den Document AI-Modell-Build hochladen¶
Um Dokumente in den neu erstellten Document AI-Modell-Build hochzuladen, gehen Sie wie folgt vor:
Um die Dokumente zu erhalten, die Sie für das Tutorial zum Testen des Modell-Builds benötigen, laden Sie die ZIP-Datei in Ihr lokales Dateisystem herunter.
Entpacken Sie den Inhalt, der aus PDF-Dokumenten besteht.
Wählen Sie im Modell-Build
inspection_reviews
die Registerkarte Build Details aus.Wählen Sie Upload documents aus.
Wählen Sie Browse aus, oder ziehen Sie die Dokumente, die Sie heruntergeladen haben.
Wählen Sie Upload aus.
Zusammenfassung¶
In diesem Abschnitt haben Sie Folgendes gelernt:
Erstellen Sie einen Document AI-Modell-Build.
Laden Sie Dokumente hoch, um den Document AI-Modell-Build zu testen.
Datenwerte definieren und Ergebnisse überprüfen¶
In diesem Abschnitt werden Sie Datenwerte definieren, indem Sie dem Document AI-Modell Fragen in natürlicher Sprache stellen. Sie werden dann die Antworten überprüfen, die das Modell liefert.
Datenwerte sind die Informationen, die Sie aus den Dokumenten extrahieren möchten. Ein Wert besteht aus einem Wertnamen und einer in natürlicher Sprache gestellten Frage.
So definieren Sie Werte für das Document AI-Modell-Build:
Wählen Sie im Modell-Build
inspection_reviews
die Registerkarte Build Details aus.Wählen Sie Define values aus.
Wählen Sie in der Ansicht Documents review die Option + Value aus:
Geben Sie für jedes Dokument die folgenden Wertname/Frage-Paare ein:
inspection_date
: Welches Datum hat die Inspektion?inspection_grade
: Wie ist die Bewertung?inspector
: Wer hat die Inspektion durchgeführt?list_of_units
: Was sind die einzelnen Einheiten?
Prüfen Sie für jedes Dokument und jeden Datenwert die Antworten, die das Modell liefert:
Wenn die Antwort korrekt ist, setzen Sie das Häkchen.
Wenn die Antwort falsch ist, geben Sie den korrekten Wert manuell ein.
Zusammenfassung¶
In diesem Abschnitt haben Sie Folgendes gelernt:
Definieren Sie die zu extrahierenden Datenwerte, indem Sie dem Modell Fragen in natürlicher Sprache stellen.
Überprüfen Sie die Ergebnisse, indem Sie die vom Modell gelieferten Antworten bestätigen oder korrigieren.
Document AI-Modell-Build veröffentlichen¶
In diesem Abschnitt veröffentlichen Sie den Document AI-Modell-Build, um ihn für die Extraktion in Verarbeitungspipelines zu verwenden. Das Veröffentlichen des Modell-Builds ermöglicht die Verwendung der neuesten Version des Modell-Builds in der Produktion.
Um den Modell-Build zu veröffentlichen, gehen Sie wie folgt vor:
Wählen Sie im Modell-Build
inspection_reviews
die Registerkarte Build Details aus.Wählen Sie unter Model accuracy die Option Publish version aus.
Wählen Sie im angezeigten Dialogfeld zur Bestätigung die Option Publish aus.
Bemerkung
Wenn die Modellgenauigkeit und die Ergebnisse nicht zufriedenstellend sind, können Sie optional eine Feinabstimmung des Modells vornehmen, um es zu verbessern. Fine-Tuning ist nicht Teil dieses Tutorials. Weitere Informationen zum Evaluieren und Trainieren des Modells finden Sie unter Document AI-Modell evaluieren.
Zusammenfassung¶
In diesem Abschnitt haben Sie den Document AI-Modell-Build veröffentlicht, um den Modell-Build für die Extraktion in Verarbeitungspipelines zu verwenden.
Dokumentenverarbeitungspipeline erstellen¶
In diesem Abschnitt erstellen Sie eine Verarbeitungspipeline unter Verwendung des bereits vorbereiteten Document AI-Modell-Builds sowie Streams und Aufgaben. Die Pipeline extrahiert Informationen aus neuen Inspektionsdokumenten, die in einem internen Stagingbereich gespeichert sind.
So erstellen Sie eine Verarbeitungspipeline:
Richten Sie die Pipeline mit Streams und Aufgaben ein.
Laden Sie neue Dokumente in einen internen Stagingbereich hoch.
Zeigen Sie die extrahierten Informationen an.
Verarbeitungspipeline einrichten¶
Erstellen Sie einen internen
my_pdf_stage
Stagingbereich zum Speichern der Dokumente:CREATE OR REPLACE STAGE my_pdf_stage DIRECTORY = (ENABLE = TRUE) ENCRYPTION = (TYPE = 'SNOWFLAKE_SSE');
Erstellen Sie einen Stream
my_pdf_stream
im Stagingbereichmy_pdf_stage
:CREATE STREAM my_pdf_stream ON STAGE my_pdf_stage;
Aktualisieren Sie die Metadaten der Verzeichnistabelle, in dem die Staging-Dokumentdateien gespeichert werden:
ALTER STAGE my_pdf_stage REFRESH;
Geben Sie Datenbank und Schema an:
USE DATABASE doc_ai_db; USE SCHEMA doc_ai_schema;
Erstellen Sie eine Tabelle
pdf_reviews
, um die Informationen zu den Dokumenten (z. B.file_name
) und die Daten, die aus den PDF-Dokumenten extrahiert werden sollen, zu speichern:CREATE OR REPLACE TABLE pdf_reviews ( file_name VARCHAR, file_size VARIANT, last_modified VARCHAR, snowflake_file_url VARCHAR, json_content VARCHAR );
Die Spalte
json_content
enthält die extrahierten Informationen im JSON-Format.Erstellen Sie eine Aufgabe
load_new_file_data
, um neue Dokumente im Stagingbereich zu verarbeiten:CREATE OR REPLACE TASK load_new_file_data WAREHOUSE = <your_warehouse> SCHEDULE = '1 minute' COMMENT = 'Process new files in the stage and insert data into the pdf_reviews table.' WHEN SYSTEM$STREAM_HAS_DATA('my_pdf_stream') AS INSERT INTO pdf_reviews ( SELECT RELATIVE_PATH AS file_name, size AS file_size, last_modified, file_url AS snowflake_file_url, inspection_reviews!PREDICT(GET_PRESIGNED_URL('@my_pdf_stage', RELATIVE_PATH), 1) AS json_content FROM my_pdf_stream WHERE METADATA$ACTION = 'INSERT' );
Beachten Sie, dass neu erstellte Aufgaben automatisch im angehaltenen Zustand sind.
Starten Sie die neu erstellte Aufgabe:
ALTER TASK load_new_file_data RESUME;
Bemerkung
Document AI unterstützt keine serverlosen Aufgaben.
Neue Dokumente in einen internen Stagingbereich hochladen¶
Um die Dokumente zu erhalten, die Sie für das Tutorial benötigen, laden Sie die ZIP-Datei in Ihr lokales Dateisystem herunter.
Entpacken Sie den Inhalt, der aus PDF-Dateien besteht.
Wählen Sie in Snowsight Data » Databases aus.
Wählen Sie die Datenbank
doc_ai_db
, das Schemadoc_ai_schema
und den Stagingbereichmy_pdf_stage
aus.Wählen Sie + Files aus.
Wählen Sie im angezeigten Dialog Upload Your Files die Dateien aus, die Sie soeben heruntergeladen haben.
Wählen Sie Upload aus.
Extrahierte Informationen anzeigen¶
Nachdem Sie die Dokumente in den Stagingbereich hochgeladen haben, können Sie sich die aus den neuen Dokumenten extrahierten Informationen ansehen:
SELECT * FROM pdf_reviews;
Erstellen Sie eine Tabelle
pdf_reviews_2
, um die extrahierten Informationen in separaten Spalten zu analysieren:CREATE OR REPLACE TABLE doc_ai_db.doc_ai_schema.pdf_reviews_2 AS ( WITH temp AS ( SELECT RELATIVE_PATH AS file_name, size AS file_size, last_modified, file_url AS snowflake_file_url, inspection_reviews!PREDICT(get_presigned_url('@my_pdf_stage', RELATIVE_PATH), 1) AS json_content FROM directory(@my_pdf_stage) ) SELECT file_name, file_size, last_modified, snowflake_file_url, json_content:__documentMetadata.ocrScore::FLOAT AS ocrScore, f.value:score::FLOAT AS inspection_date_score, f.value:value::STRING AS inspection_date_value, g.value:score::FLOAT AS inspection_grade_score, g.value:value::STRING AS inspection_grade_value, i.value:score::FLOAT AS inspector_score, i.value:value::STRING AS inspector_value, ARRAY_TO_STRING(ARRAY_AGG(j.value:value::STRING), ', ') AS list_of_units FROM temp, LATERAL FLATTEN(INPUT => json_content:inspection_date) f, LATERAL FLATTEN(INPUT => json_content:inspection_grade) g, LATERAL FLATTEN(INPUT => json_content:inspector) i, LATERAL FLATTEN(INPUT => json_content:list_of_units) j GROUP BY ALL );
Zeigen Sie die Ausgabe an:
SELECT * FROM pdf_reviews_2;
Die Tabelle verwendet die Funktion FLATTEN, um den JSON-Inhalt in der Spalte json_content
in einzelne Spalten aufzuteilen, damit sie einfacher angezeigt werden können.
Die Tabelle enthält die Datenwerte (z. B. inspection_grade_value
, inspection_date_value
), die beim Erstellen des Modell-Builds für Inspektionsdokumente definiert wurden, sowie die entsprechenden Konfidenzwerte (inspection_grade_score
, inspection_date_score
).
Zusammenfassung¶
In diesem Abschnitt haben Sie Folgendes gelernt:
Erstellen Sie einen internen Stagingbereich zum Speichern neuer Dokumente.
Erstellen Sie einen Stream und eine Aufgabe, die zur Vorbereitung einer Verarbeitungspipeline erforderlich sind.
Laden Sie Dokumente in einen internen Stagingbereich hoch.
Zeigen Sie die extrahierten Informationen in einer Tabelle an.
Mehr erfahren¶
Herzlichen Glückwunsch! Sie haben dieses Tutorial erfolgreich abgeschlossen. Sie sind nun bereit, mit Document AI an Ihren eigenen Anwendungsfällen zu arbeiten.
Auf dem Weg dorthin haben Sie Folgendes gelernt:
Einrichten der erforderlichen Objekte und Berechtigungen für die Arbeit mit Document AI.
Erstellen Sie einen Document AI-Modell-Build.
Hochladen der Dokumente in den Document AI-Modell-Build, um das Modell zu testen.
Definieren der zu extrahierenden Datenwerte, indem Fragen an das Modell in natürlicher Sprache formuliert werden.
Überprüfen der Ergebnisse, indem die Antworten, die das Modell liefert, bestätigt oder korrigiert werden.
Veröffentlichen des Document AI-Modell-Builds, um den Modell-Build für die Extraktion in Verarbeitungspipelines zu verwenden.
Vorbereiten einer Dokumentenverarbeitungspipeline, indem ein Stream und eine Aufgabe erstellt werden und das Document AI-Modell-Build verwendet wird, um Informationen aus neuen Dokumenten zu extrahieren.
Zusätzliche Ressourcen¶
Setzen Sie die Einarbeitung mithilfe der folgenden Ressourcen fort: