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

Auf dieser Seite wird der Document AI-Layoutparser vorgestellt und es wird beschrieben, wie er mit der RAG Engine verwendet wird.

Document AI

Document AI ist eine Plattform zur Dokumentverarbeitung und zum Verstehen von Dokumenten, die unstrukturierte Daten aus Dokumenten in Felder umwandelt, die sich für die Speicherung in einer Datenbank eignen. Strukturierte Daten führen zu Daten, die Sie verstehen, analysieren und nutzen können.

Document AI basiert auf Produkten in Vertex AI mit generativer KI, um Ihnen bei der Entwicklung skalierbarer, cloudbasierter End-to-End-Anwendungen zur Dokumentenverarbeitung zu helfen. Für die Verwendung dieser Produkte sind keine speziellen Kenntnisse im Bereich maschinelles Lernen erforderlich.

Document AI-Layoutparser

Der Layoutparser extrahiert Inhaltselemente wie Text, Tabellen und Listen aus dem Dokument. Der Layoutparser erstellt dann kontextsensitive Blöcke, die das Abrufen von Informationen in Anwendungen für generative KI und Discovery erleichtern.

Wenn das Dokument für den Abruf und die LLM-Generierung verwendet wird, wird das Layout des Dokuments beim Chunking berücksichtigt. Dadurch wird die semantische Kohärenz verbessert und das Rauschen im Inhalt reduziert. Der gesamte Text in einem Chunk stammt aus derselben Layout-Einheit, z. B. der Überschrift, der Unterüberschrift oder der Liste.

Informationen zu den von der Layout-Erkennung verwendeten Dateitypen finden Sie unter Layout-Erkennung nach Dateityp.

Layoutparser in der Vertex AI RAG Engine verwenden

Wenn Sie den Layout-Parser in 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.

    RAG Engine aufrufen

  2. Wählen Sie Korpus erstellen aus.

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

  4. Geben Sie im Feld Corpus name (Corpusname) den Namen Ihres Corpus ein.

  5. Geben Sie im Feld Beschreibung eine Beschreibung ein.

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

  7. Maximieren Sie den Bereich Erweiterte Optionen.

    1. Im Abschnitt Chunking strategy (Strategie für das Aufteilen in Chunks) werden die folgenden Standardgrößen empfohlen:

      • Blockgröße: 1024
      • Chunk-Überschneidung: 256
    2. Wählen Sie im Bereich Layout-Parser die Option LLM-Parser 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 Anfragen zum Parsen pro Minute die maximale Anzahl von Anfragen zum Parsen ein.

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

      4. Klicken Sie auf Weiter.

  8. Führen Sie auf der Seite Vektorspeicher konfigurieren die folgenden Schritte aus:

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

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

  9. Klicken Sie auf Korpus erstellen.

Beschränkungen

Die ImportRagFiles API unterstützt den Layout-Parser. Es gelten jedoch die folgenden Einschränkungen:

  • Geben Sie für alle Dateitypen die maximale Dateigröße von 20 MB ein.
  • Eine PDF-Datei darf maximal 500 Seiten umfassen.

Es gelten die Kontingente und Preise 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.

Enable the Document AI API.

Enable the API

Layoutparser aktivieren

So aktivieren Sie den Layout-Parser:

  1. Erstellen Sie einen Layout-Parser. Folgen Sie dazu der Anleitung unter Prozessoren erstellen und verwalten.

    Der Name des Prozessortyps ist LAYOUT_PARSER_PROCESSOR.

  2. Aktivieren Sie den Layout Parser gemäß der Anleitung unter Prozessor aktivieren.

Ihre 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 Layout Parser importiert wurden, nicht noch einmal importiert, wenn Sie Dateien mit Layout Parser importieren. Wenn Sie einen Layout-Parser für Ihre Dateien verwenden möchten, müssen Sie die Dateien zuerst löschen. Ein Beispiel finden Sie unter Beispiel: RAG-Datei löschen.

Dateien mit dem Layoutparser importieren

Mit dem Layoutparser können Dateien und Ordner aus verschiedenen Quellen importiert werden.

Python

Informationen zur Installation des Vertex AI SDK for Python finden Sie unter Vertex AI SDK for Python installieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Python API.

Ersetzen Sie die folgenden Variablen, die im Codebeispiel verwendet werden:

  • 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 Layout-Parser-Prozessor. 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="us-central1")

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).
    llm_parser=rag.LlmParserConfig(
      model_name="gemini-2.5-pro-preview-05-06",
      max_parsing_requests_per_min=100,
    ),  # Optional
    max_embedding_requests_per_min=900,  # Optional
)
print(f"Imported {response.imported_rag_files} files.")

REST

Im Codebeispiel wird gezeigt, wie Cloud Storage-Dateien mit dem Layoutparser importiert werden. 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 Layout-Parser-Prozessor. 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 anfordern:

{
  "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

können Sie das aktive Konto prüfen.

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 Abfragetext finden Sie unter Abfrage zum Abrufen.

Vorhersage

Die Vorhersage generiert eine fundierte Antwort anhand der abgerufenen Kontexte. Ein Beispiel finden Sie unter Generierung.

Nächste Schritte