Extrahieren von Informationen aus Dokumenten mit AI_EXTRACT¶
AI_EXTRACT ist eine Cortex AI-Funktion, mit der Sie strukturierte Informationen, wie Entitäten, Listen und Tabellen, aus Text- oder Dokumentdateien extrahieren können, indem Sie Fragen in natürlicher Sprache stellen oder die zu extrahierenden Informationen beschreiben. Es kann zusammen mit anderen Funktionen verwendet werden, um kundenspezifische Dokumentenverarbeitungspipelines für eine Vielzahl von Anwendungsfällen zu erstellen (siehe Cortex AI-Funktionen: Dokumente).
AI_EXTRACT kann Dokumente verschiedener Formate (in 29 Sprachen) verarbeiten und Informationen sowohl aus textlastigen Absätzen als auch aus Inhalten in grafischer Form extrahieren, wie z. B. Logos, handschriftlicher Text (z. B. Signaturen), Tabellen oder Häkchen. AI_EXTRACT kann Informationen in den folgenden strukturierten Formaten extrahieren:
Entität: Stellen Sie Fragen in natürlicher Sprache, oder beschreiben Sie die zu extrahierenden Informationen (z. B. Stadt, Straße oder ZIP-Code).
Liste (oder Array): Sie können ein JSON-Schema bereitstellen, um ein Array oder eine Liste der im Dokument enthaltenen Informationen zu extrahieren, z. B. die Namen aller Kontoinhaber in einem Kontoauszug oder eine Liste aller Adressen in einem Dokument.
Tabelle: Geben Sie ein JSON-Schema an, um tabellarische Daten im Dokument zu extrahieren, indem der Tabellentitel und eine Liste der Spalten angegeben werden, die extrahiert werden sollen.
AI_EXTRACT wird automatisch mit Ihrem Workload skaliert, indem es mehrere Dokumente gleichzeitig verarbeitet. Dokumente können direkt aus dem Objektspeicher verarbeitet werden, um unnötige Datenbewegungen zu vermeiden.
Bemerkung
AI_EXTRACT ist derzeit nicht mit den benutzerdefinierten von Netzwerkrichtlinien kompatibel.
Qualität der Extraktion¶
AI_EXTRACT verwendet arctic-extract, ein proprietäres, visionsbasiertes großes Sprachmodell (LLM), das eine hohe Extraktionsgenauigkeit liefert. Die folgende Tabelle zeigt die Ergebnisse des Modells bei verschiedenen Standard-Benchmarks mit den Ergebnissen anderer beliebter Modelle zum Vergleich:
Visuelle Beantwortung von Fragen (VQA)¶
Angebot |
DocVQA-Punktzahl |
|---|---|
Bewertung durch Menschen |
0.9811 |
Snowflake Arctic-Extract |
0.9433 |
Azure OpenAI GPT-o3 |
0.9339 |
Google Gemini 2.5-Pro |
0.9316 |
Google Anthropic Claude 4 Sonnet |
0.9119 |
Azure Document Intelligence + GPT-o3 |
0.8853 |
Google Document AI + Gemini |
0.8497 |
Azure OpenAI GPT-o3 |
0.9339 |
AWS Textract |
0.8313 |
Beantworten von Fragen mit Nur-Text (SQuAD v2)¶
Angebot |
ANLS |
Genaue Übereinstimmung |
|---|---|---|
Snowflake Arctic-Extract |
81.18 |
78.74 |
Anthropic Claude 4 Sonnet |
80.54 |
77.10 |
Meta LLaMA 3.1 405B |
80.37 |
76.56 |
Meta LLaMA 4 Scout |
74.30 |
70.70 |
OpenAI GPT 4.1 |
70.71 |
66.81 |
Meta LLaMA 3.1 8B |
59.13 |
54.48 |
Beispiele¶
In diesen Beispielen wird die folgende Abbildung als Eingabedokument verwendet. Das Dokument ist in einem Stagingbereich gespeichert.
Extrahieren einer Entität¶
Extrahiert den Namen des Verkäufers und das Ablaufdatum des Angebots aus dem Kaufvertrag.
SELECT AI_EXTRACT(
file => TO_FILE('@db.schema.stage','document.pdf'),
responseFormat => [['seller_name', 'What is the seller name?'], ['address', 'What is the offer expiration date?']]
);
Ergebnis:
{
"error": null,
"response": {
"address": "12/12/2023",
"seller_name": "Paul Doyle"
}
}
Extrahieren von Kontrollkästcheninformationen¶
Dieses Beispiel extrahiert Informationen über Elemente, die nicht enthalten sind, basierend auf den im Dokument aktivierten Kontrollkästchen.
SELECT AI_EXTRACT(
file => TO_FILE('@db.schema.stage','document.pdf'),
responseFormat => [['flat_items', 'What items are not included with the flat?'], ['default', 'What Default is selected?']]
);
Ergebnis:
{
"error": null,
"response": {
"default": "Forfeiture of Earnest Money",
"flat_items": "dryer, security system, satellite dish, wood stove, fireplace insert, hot tub, attached speaker(s), generator, other"
}
}
Extrahieren des Signaturstatus¶
Dieses Beispiel extrahiert Informationen darüber, ob die Vereinbarung unterzeichnet wurde.
SELECT AI_EXTRACT(
file => TO_FILE('@db.schema.stage','document.pdf'),
responseFormat => [['signature', 'Is this document signed?']]
);
Ergebnis:
{
"error": null,
"response": {
"signature": "no"
}
}
Extrahieren einer Liste von Entitäten¶
Dieses Beispiel extrahiert eine Liste der Namen der Käufer.
SELECT AI_EXTRACT(
file => TO_FILE('@db.schema.files', 'report.pdf'),
responseFormat => {
'schema': {
'type': 'object',
'properties': {
'buyer_list': {
'description': 'What are the buyer names?',
'type': 'array'
}
}
}
}
);
Ergebnis:
{
"error": null,
"response": {
"buyer_list": [
"John Davis",
"Jane Davis"
]
}
}
Extrahieren von Tabelleninformationen¶
Dieses Beispiel extrahiert tabellarische Daten aus dem folgenden Dokument.
SELECT AI_EXTRACT(
file => TO_FILE('@db.schema.files', 'report.pdf'),
responseFormat => {
'schema': {
'type': 'object',
'properties': {
'income_table': {
'description': 'Table 2: Granger Causality Tests - P-values',
'type': 'object',
'column_ordering': ['description', 'countries','lags','z','z_approx'],
'properties': {
'description': {
'description': 'Description',
'type': 'array'
},
'countries': {
'description': 'Countries',
'type': 'array'
},
'lags': {
'description': 'Lags',
'type': 'array'
},
'z': {
'description': 'Z',
'type': 'array'
},
'z_approx': {
'description': 'Z approx.',
'type': 'array'
}
}
}
}
}
);
{
"error": null,
"response": {
"income_table": {
"countries": [
"33","80","29","84","34"
],
"description": [
"Commodity exporters",
"Non-commodity exporters",
"AE",
"EMDE",
"Large or market-dominant countries"
],
"lags": [
"2","1","1","1","1"
],
"z": [
"0.11","0.08","0.89","0.12","0.07"
],
"z_approx": [
"0.25","0.19","0.95","0.25","0.14"
]
}
}
}
Eingabeanforderungen¶
AI_EXTRACT ist sowohl für digital erstellte als auch für gescannte Dokumente optimiert. In der folgenden Tabelle sind die Beschränkungen und Anforderungen für Eingabedokumente aufgeführt:
Maximale Dateigröße |
100 MB |
|---|---|
Maximale Seitenzahl pro Dokument |
125 |
Maximale Anzahl von Fragen |
|
Unterstützte Dateitypen |
PDF, PPT, PPTX, DOCX, EML, DOC, DOCX, HTM, HTML, TEXT, MD, TXT, BMP, JPEG, JPG, PNG, TIFF, TIF, WEBP |
Stagingbereich-Verschlüsselung |
Serverseitige Verschlüsselung: |
Anforderungen an die Zugriffssteuerung¶
Um die Funktion AI_EXTRACT zu verwenden, muss ein Benutzer mit der Rolle ACCOUNTADMIN dem Benutzer, der die Funktion aufruft, die Datenbankrolle SNOWFLAKE.CORTEX_USER erteilen. Siehe Cortex LLM privileges für weitere Informationen.
Hinweise zu Kosten¶
Die Cortex AI_EXTRACT-Funktion verursacht Kosten, die von der Anzahl der Seiten pro Dokument, den Token der Eingabeaufforderung und den verarbeiteten Ausgabe-Token abhängen.
Für seitenbasierte Dateiformate (PDF, DOCX, TIF, TIFF) wird jede Seite als 970 Token gezählt.
Für Bilddateiformate (JPEG, JPG, PNG) wird jede einzelne Bilddatei als Seite abgerechnet und als 970 Token gezählt.
Snowflake empfiehlt die Ausführung von Abfragen, die die Cortex-Funktion AI_EXTRACT aufrufen, in einem kleineren Warehouse (nicht größer als MEDIUM). Größere Warehouses erhöhen die Leistung nicht.
Unterstützte Sprachen¶
AI_EXTRACT unterstützt die folgenden Sprachen:
Arabisch
Bengalisch
Birmanisch
Cebuano
Chinesisch
Tschechisch
Holländisch
Englisch
Französisch
Deutsch
Hebräisch
Hindi
Indonesisch
Italienisch
Japanisch
Khmer
Koreanisch
Lao
Malaiisch
Persisch
Polnisch
Portugiesisch
Russisch
Spanisch
Tagalog
Thailändisch
Türkisch
Urdu
Vietnamesisch
Regionale Verfügbarkeit¶
Unterstützung für AI_EXTRACT ist für Konten in den folgenden Snowflake-Regionen verfügbar:
AWS |
Azure |
|---|---|
US West 2 |
East US 2 |
US East 1 |
West US 2 |
US CA Zentrale 1 |
South Central US |
Europe Central 1 |
North Europe |
Europe West 1 |
West Europe |
SA East 1 |
Central India |
AP Northeast 1 |
Japan East |
AP Southeast 2 |
Southeast Asia Australia East |
AI_EXTRACT bietet regionenübergreifende Unterstützung. Weitere Informationen zur Aktivierung der regionenübergreifenden Unterstützung von Cortex AI finden Sie unter Regionenübergreifende Inferenz.
Fehlerbedingungen¶
Snowflake Cortex AI_EXTRACT kann die folgenden Fehlermeldungen erzeugen:
Meldung |
Erläuterung |
|---|---|
|
Es ist ein Systemfehler aufgetreten. Warten Sie und versuchen Sie es erneut. Wenn der Fehler weiterhin besteht, wenden Sie sich an den Snowflake-Support. |
|
Die Datei wurde nicht gefunden. |
|
Die Datei wurde nicht gefunden. |
|
Der aktuelle Benutzer hat nicht die erforderlichen Berechtigungen für den Zugriff auf die Datei. |
|
Das Dokument hat kein unterstütztes Format. |
|
Das Dokument ist nicht in einem Stagingbereich mit serverseitiger Verschlüsselung gespeichert. |
|
Es wurden keine Parameter angegeben. |
|
Es wurde kein Antwortformat angegeben. |
|
Das Antwortformat ist kein gültiges JSON-Format. |
|
Das Antwortformat enthält einen oder mehrere doppelte Feature-Namen. |
|
Die Anzahl der Fragen überschreitet das zulässige Limit. |
|
Das Dokument überschreitet das Limit von 125 Seiten. |
|
Ein eingegebenes Bild oder eine konvertierte Dokumentseite ist größer als die unterstützten Abmessungen. |
|
Die Seite ist größer als die unterstützten Abmessungen. |
|
Das Dokument ist größer als 100 MB. |
Rechtliche Hinweise¶
Die Datenklassifizierung der Eingaben und Ausgaben ist in der folgenden Tabelle aufgeführt.
Klassifizierung von Eingabedaten |
Klassifizierung von Ausgabedaten |
Benennung |
|---|---|---|
Usage Data |
Customer Data |
Die allgemein verfügbaren Funktionen sind abgedeckte AI-Features. Die Vorschaufunktionen sind Vorschau-AI-Features. [1] |
Weitere Informationen dazu finden Sie unter KI und ML in Snowflake.