Auf dieser Seite wird der Document AI-Layoutparser vorgestellt und erläutert, wie er mit der RAG Engine verwendet wird.
Document AI
Document AI ist eine Plattform zur Dokumentverarbeitung und zum Dokumentverständnis, die unstrukturierte Daten aus Dokumenten in Felder umwandelt, die für die Speicherung in einer Datenbank geeignet sind. Strukturierte Daten führen zu Daten, die Sie verstehen, analysieren und verwenden können.
Document AI basiert auf Produkten in Vertex AI mit generativer KI, mit denen Sie skalierbare, cloudbasierte End-to-End-Anwendungen zur Dokumentverarbeitung erstellen können. Für die Verwendung dieser Produkte sind keine speziellen Kenntnisse im maschinellen Lernen erforderlich.
Document AI-Layoutparser
Der Layoutparser extrahiert Inhaltselemente wie Text, Tabellen und Listen aus dem Dokument. Anschließend erstellt der Layoutparser kontextsensitive Blöcke, die das Abrufen von Informationen in Anwendungen für generative KI und Erkennung erleichtern.
Wenn der Layoutparser für den Abruf und die LLM-Generierung verwendet wird, wird das Layout des Dokuments beim Chunking berücksichtigt. Dies verbessert die semantische Kohärenz und reduziert das Rauschen im Inhalt. Der gesamte Text in einem Block stammt aus derselben Layouteinheit, z. B. der Überschrift, Unterüberschrift oder Liste.
Informationen zu den von der Layout-Erkennung verwendeten Dateitypen finden Sie unter Layout-Erkennung nach Datei typ.
Layoutparser in der Vertex AI RAG Engine verwenden
Wenn Sie den Layoutparser in der Vertex AI RAG Engine verwenden möchten, müssen Sie einen Korpus erstellen. So erstellen Sie einen Korpus:
Rufen Sie in der Google Cloud Console die Seite RAG Engine auf.
Wählen Sie Korpus erstellen aus.
Wählen Sie im Feld Region Ihre Region aus.
Geben Sie im Feld Korpusname den Namen des Korpus ein.
Geben Sie im Feld Beschreibung eine Beschreibung ein.
Wählen Sie im Bereich Daten aus, wohin Sie Ihre Daten hochladen möchten.
Maximieren Sie den Bereich Erweiterte Optionen.
Im Bereich Chunking-Strategie werden die folgenden Standardgrößen empfohlen:
- Blockgröße: 1024
- Blocküberlappung: 256
Wählen Sie im Bereich Layoutparser die Option Document AI-Layoutparser aus. Diese Option bietet die höchste Genauigkeit für Dokumente mit Bildern oder Diagrammen.
Wählen Sie im Feld Modell Ihr Modell aus.
Optional: Geben Sie im Feld Maximale Anzahl von Parsing-Anfragen pro Minute die maximale Anzahl von Parsing-Anfragen ein.
Optional: Geben Sie im Feld Benutzerdefinierter Parsing-Prompt Ihren Parsing-Prompt ein.
Klicken Sie auf Weiter.
Gehen Sie auf der Seite Vektorspeicher konfigurieren so vor:
Wählen Sie im Feld Einbettungsmodell Ihr Einbettungsmodell aus.
Wählen Sie im Bereich Vektordatenbank Ihre Datenbank aus.
Klicken Sie auf Korpus erstellen.
Beschränkungen
Die ImportRagFiles API unterstützt den Layoutparser. Es gelten jedoch die folgenden Einschränkungen:
- Geben Sie für alle Dateitypen die maximale Dateigröße von 20 MB ein.
- Pro PDF-Datei sind maximal 500 Seiten zulässig.
Es gelten die Kontingente quotas und pricing für Document AI.
Document AI API aktivieren
Sie müssen die Document AI API für Ihr Projekt aktivieren. Weitere Informationen zur Aktivierung von APIs finden Sie in der Dokumentation zu Service Usage.
Document AI API aktivieren
Rollen, die zum Aktivieren von APIs erforderlich sind
Zum Aktivieren von APIs benötigen Sie die IAM-Rolle „Service Usage-Administrator“
(roles/serviceusage.serviceUsageAdmin), die
die Berechtigung serviceusage.services.enable enthält. Informationen zum Zuweisen von
Rollen.
Layoutparser aktivieren
So aktivieren Sie den Layoutparser:
Erstellen Sie einen Layoutparser. Folgen Sie dazu der Anleitung unter Prozessoren erstellen und verwalten.
Der Name des Prozessortyps ist
LAYOUT_PARSER_PROCESSOR.Aktivieren Sie den Layoutparser. Folgen Sie dazu der Anleitung unter Prozessor aktivieren.
RAG-Wissensdatenbank (Korpus)
Wenn Sie keinen RAG-Korpus haben, erstellen Sie einen. Ein Beispiel finden Sie unter RAG-Korpus erstellen.
Wenn Sie bereits einen RAG-Korpus haben, werden vorhandene Dateien, die ohne einen Layoutparser importiert wurden, nicht noch einmal importiert, wenn Sie Dateien mit dem Layout parser importieren. Wenn Sie einen Layoutparser mit Ihren Dateien verwenden möchten, löschen Sie die Dateien zuerst. Ein Beispiel finden Sie unter RAG-Datei löschen Beispiel.
Dateien mit dem Layoutparser importieren
Dateien und Ordner aus verschiedenen Quellen können mit dem Layoutparser importiert werden.
Python
Informationen zur Installation des Vertex AI SDK for Python, siehe Vertex AI SDK for Python installieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Python API.
Ersetzen Sie die folgenden Variablen im Codebeispiel:
- PROJECT_ID: Ihre Projekt-ID.
- LOCATION: Die Region, in der die Anfrage verarbeitet werden soll.
- RAG_CORPUS_ID: Die ID der RAG-Korpusressource.
- GCS_URIS: Eine Liste der Cloud Storage-Standorte. Beispiel:
"gs://my-bucket1","gs://my-bucket2". - LAYOUT_PARSER_PROCESSOR_NAME: Der Ressourcenpfad zum
erstellten Layoutparserprozessor. Beispiel:
"projects/{project}/locations/{location}/processors/{processor_id}". - CHUNK_SIZE: Optional: Die Anzahl der Tokens, die jeder Block haben sollte.
from vertexai import rag
import vertexai
PROJECT_ID = YOUR_PROJECT_ID
corpus_name = "projects/{PROJECT_ID}/locations/us-central1/ragCorpora/{rag_corpus_id}"
paths = ["https://drive.google.com/file/123", "gs://my_bucket/my_files_dir"] # Supports Cloud Storage and Google Drive.
# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location="LOCATION")
response = rag.import_files(
corpus_name=corpus_name,
paths=paths,
transformation_config=rag.TransformationConfig(
rag.ChunkingConfig(chunk_size=1024, chunk_overlap=256)
),
import_result_sink="gs://sample-existing-folder/sample_import_result_unique.ndjson", # Optional: This must be an existing storage bucket folder, and the filename must be unique (non-existent).
layout_parser=rag.LayoutParserConfig(
processor_name="projects/{PROJECT_ID}/locations/us/processors/{processor_id}/processorVersions/{processor_version_id}",
max_parsing_requests_per_min=120,
),
max_embedding_requests_per_min=900, # Optional
)
print(f"Import response: {response}")
REST
Das Codebeispiel zeigt, wie Sie Cloud Storage-Dateien mit dem Layoutparser importieren. Weitere Konfigurationsoptionen, einschließlich des Imports von Dateien aus einer anderen
Quelle, finden Sie in der ImportRagFilesConfig
Referenz.
Ersetzen Sie die folgenden Variablen im Codebeispiel, bevor Sie die Anfragedaten verwenden:
- PROJECT_ID: Ihre Projekt-ID.
- LOCATION: Die Region, in der die Anfrage verarbeitet werden soll.
- RAG_CORPUS_ID: Die ID der RAG-Korpusressource.
- GCS_URIS: Eine Liste der Cloud Storage-Standorte. Beispiel:
"gs://my-bucket1","gs://my-bucket2". - LAYOUT_PARSER_PROCESSOR_NAME: Der Ressourcenpfad zum
erstellten Layoutparserprozessor. Beispiel:
"projects/{project}/locations/{location}/processors/{processor_id}". - CHUNK_SIZE: Optional: Die Anzahl der Tokens, die jeder Block haben sollte.
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:import
JSON-Text der Anfrage:
{
"import_rag_files_config": {
"gcs_source": {
"uris": "GCS_URIS"
},
"rag_file_parsing_config": {
"layout_parser": {
"processor_name": "LAYOUT_PARSER_PROCESSOR_NAME"
}
},
"rag_file_transformation_config": {
"rag_file_chunking_config": {
"fixed_length_chunking": {
"chunk_size": CHUNK_SIZE
}
}
},
}
}
Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:
curl
Speichern Sie den Anfragetext in einer Datei namens „request.json“ und führen Sie den folgenden Befehl aus:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:import"
Powershell
Speichern Sie den Anfragetext in einer Datei namens „request.json“ und führen Sie den folgenden Befehl aus:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:import" | Select-Object -Expand Content
Abrufabfrage
Wenn ein Nutzer eine Frage stellt oder einen Prompt bereitstellt, durchsucht die Abrufkomponente in RAG in ihrer Wissensdatenbank nach relevanten Informationen.
Ein Beispiel für das Abrufen von RAG-Dateien aus einem Korpus basierend auf einem Abfrage text finden Sie unter Abrufabfrage.
Vorhersage
Die Vorhersage generiert eine fundierte Antwort anhand der abgerufenen Kontexte. Ein Beispiel finden Sie unter Generierung.
Nächste Schritte
- Optionen für Vektordatenbanken in der Vertex AI RAG Engine
- Informationen zum Importieren von RAG-Dateien finden Sie im Beispiel RAG-Dateien importieren.