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

Auf dieser Seite wird der Document AI-Layout-Parser vorgestellt und seine Verwendung mit der RAG Engine erläutert.

Document AI

Document AI ist eine Plattform zur Dokumentverarbeitung und zum Verstehen von Dokumenten, 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, End-to-End-basierte, cloudbasierte Anwendungen zur Dokumentverarbeitung erstellen können. Für die Verwendung dieser Produkte sind keine speziellen Kenntnisse im Bereich maschinelles Lernen erforderlich.

Document AI-Layoutparser

Der Layout-Parser 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 Erkennung erleichtern.

Wenn er für das Abrufen und die LLM-Generierung verwendet wird, wird das Layout des Dokuments beim Chunking berücksichtigt. Dadurch wird die semantische Kohäsion verbessert und es wird weniger Rauschen in den Inhalten erzeugt. Der gesamte Text in einem Block stammt aus demselben Layoutelement, z. B. der Überschrift, Zwischenüberschrift oder Liste.

Informationen zu den Dateitypen, die für die Layouterkennung verwendet werden, finden Sie unter Layouterkennung nach Dateityp.

Layout-Parser in der Vertex AI RAG Engine verwenden

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

    RAG Engine aufrufen

  2. Wählen Sie Corpus erstellen aus.

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

  4. Geben Sie im Feld Corpus-Name den Namen des Korpus 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-Strategie werden die folgenden Standardgrößen empfohlen:

      • Chunk-Größe: 1.024
      • 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 Parse-Anfragen pro Minute die maximale Anzahl von Parse-Anfragen 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 Embedding-Modell Ihr Einbettungsmodell aus.

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

  9. Klicken Sie auf Corpus erstellen.

Beschränkungen

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

  • Geben Sie für alle Dateitypen eine maximale Dateigröße von 20 MB ein.
  • Pro PDF-Datei sind maximal 500 Seiten zulässig.

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

Layout-Parser 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. Folgen Sie dazu der Anleitung unter Prozessor aktivieren.

Ihre RAG-Wissensdatenbank (Korpus)

Wenn Sie noch keinen RAG-Korpus haben, erstellen Sie einen. Weitere Informationen finden Sie unter Beispiel für ein RAG-Corpus erstellen.

Wenn Sie bereits einen RAG-Corpus haben, werden vorhandene Dateien, die ohne Layout-Parser importiert wurden, nicht noch einmal importiert, wenn Sie Dateien mithilfe eines Layout-Parsers importieren. Wenn Sie einen Layout-Parser mit Ihren Dateien verwenden möchten, löschen Sie die Dateien zuerst. Siehe Beispiel: RAG-Datei löschen.

Dateien mit dem Layout-Parser importieren

Dateien und Ordner aus verschiedenen Quellen können mit dem Layout-Parser importiert werden.

Python

Informationen zur Installation oder Aktualisierung 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 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 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 Layout-Parser 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

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 anhand eines Suchtexts finden Sie unter Abrufabfrage.

Vorhersage

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

Nächste Schritte