Document AI-Layout-Parser mit der Vertex AI RAG Engine verwenden

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:

  1. Rufen Sie in der Google Cloud Console die Seite RAG Engine auf.

    Zur RAG Engine

  2. Wählen Sie Korpus erstellen aus.

  3. Wählen Sie im Feld Region Ihre Region aus.

  4. Geben Sie im Feld Korpusname den Namen des Korpus ein.

  5. Geben Sie im Feld Beschreibung eine Beschreibung ein.

  6. Wählen Sie im Bereich Daten aus, wohin Sie Ihre Daten hochladen möchten.

  7. Maximieren Sie den Bereich Erweiterte Optionen.

    1. Im Bereich Chunking-Strategie werden die folgenden Standardgrößen empfohlen:

      • Blockgröße: 1024
      • Blocküberlappung: 256
    2. 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.

      1. Wählen Sie im Feld Modell Ihr Modell aus.

      2. Optional: Geben Sie im Feld Maximale Anzahl von Parsing-Anfragen pro Minute die maximale Anzahl von Parsing-Anfragen ein.

      3. Optional: Geben Sie im Feld Benutzerdefinierter Parsing-Prompt Ihren Parsing-Prompt ein.

      4. Klicken Sie auf Weiter.

  8. Gehen Sie auf der Seite Vektorspeicher konfigurieren so vor:

    1. Wählen Sie im Feld Einbettungsmodell Ihr Einbettungsmodell aus.

    2. Wählen Sie im Bereich Vektordatenbank Ihre Datenbank aus.

  9. 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.

API aktivieren

Layoutparser aktivieren

So aktivieren Sie den Layoutparser:

  1. Erstellen Sie einen Layoutparser. Folgen Sie dazu der Anleitung unter Prozessoren erstellen und verwalten.

    Der Name des Prozessortyps ist LAYOUT_PARSER_PROCESSOR.

  2. 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