LLM-Parser verwenden

Auf dieser Seite wird erläutert, wie Sie den LLM-Parser der RAG Engine auf der Gemini Enterprise Agent Platform verwenden.

Einführung

Die RAG Engine verwendet LLMs zum Parsen von Dokumenten. LLMs können Dokumente auf folgende Weise effektiv verarbeiten:

  • Semantische Inhalte in verschiedenen Formaten verstehen und interpretieren
  • Relevante Dokumentblöcke abrufen
  • Sinnvolle Informationen aus Dokumenten extrahieren
  • Relevante Abschnitte in Dokumenten identifizieren
  • Komplexe Dokumente präzise zusammenfassen
  • Visuelle Elemente verstehen und mit ihnen interagieren
  • Daten aus Diagrammen und Grafiken extrahieren
  • Bilder beschreiben
  • Beziehungen zwischen Diagrammen und Text verstehen
  • Kontextbezogenere und genauere Antworten geben

Die Funktionen der RAG Engine verbessern die Qualität der generierten Antworten erheblich.

Unterstützte Modelle

Die folgenden Modelle unterstützen den LLM-Parser der RAG Engine:

Unterstützte Dateitypen

Die folgenden Dateitypen werden vom LLM-Parser unterstützt:

  • application/pdf
  • image/png
  • image/jpeg
  • image/webp
  • image/heic
  • image/heif

Preise und Kontingente

Preisinformationen finden Sie unter Gemini Enterprise Agent Platform Preise.

Informationen zu den geltenden Kontingenten finden Sie unter Raten kontingente.

Der LLM-Parser ruft Gemini-Modelle auf, um Ihre Dokumente zu parsen. Dadurch entstehen zusätzliche Kosten, die Ihrem Projekt in Rechnung gestellt werden. Die Kosten lassen sich mit dieser Formel ungefähr schätzen:

cost = number_of_document_files * average_pages_per_document *
(average_input_tokens * input_token_pricing_of_selected_model +
average_output_tokens * output_token_pricing_of_selected_model)

Beispiel: Sie haben 1.000 PDF-Dateien mit jeweils 50 Seiten. Eine durchschnittliche PDF-Seite enthält 500 Tokens und für das Prompting sind weitere 100 Tokens erforderlich. Die durchschnittliche Ausgabe beträgt 100 Tokens.

cost = 1,000 * 50 * (600 * 0.075 / 1M + 100 * 0.3 / 1M) = 3.75

Die Kosten betragen 3,75 $.

Dateien mit aktiviertem LlmParser importieren

Ersetzen Sie die Werte in den folgenden Variablen, die in den Codebeispielen verwendet werden:

  • PROJECT_ID: Die ID Ihres Cloud de Confiance by S3NS Projekts.

  • LOCATION: Die Region, in der Ihre Anfrage verarbeitet wird.

  • RAG_CORPUS_RESOURCE: Die ID Ihres Corpus.

  • GCS_URI: Der Cloud Storage-URI der Dateien, die Sie importieren möchten.

  • GOOGLE_DRIVE_URI: Der Google Drive-URI der Dateien , die Sie importieren möchten.

  • MODEL_NAME: Der Ressourcenname des Modells, das zum Parsen verwendet wird.

    Format: projects/{project_id}/locations/{location}/publishers/google/models/{model_id}

  • CUSTOM_PARSING_PROMPT: Optional: Custom Prompt, der vom Kunden für den LLM-Parser konfiguriert wird, um Dokumente zu parsen.

  • MAX_PARSING_REQUESTS_PER_MIN: Optional: Die maximale Anzahl von Anfragen, die der Job pro Minute an das Agent Platform-Modell senden kann. Weitere Informationen finden Sie unter Generative AI auf der Agent Platform Raten limits und auf der Seite Kontingente & System limits für Ihr Projekt, um einen geeigneten Wert festzulegen.

REST

  curl -X POST \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_RESOURCE/ragFiles:import" -d '{
    "import_rag_files_config": {
      "gcs_source": {
        "uris":  ["GCS_URI", "GOOGLE_DRIVE_URI"]
      },
      "rag_file_chunking_config": {
        "chunk_size": 512,
        "chunk_overlap": 102
      },
      "rag_file_parsing_config": {
        "llm_parser": {
          "model_name": "MODEL_NAME",
          "custom_parsing_prompt": "CUSTOM_PARSING_PROMPT"
          "max_parsing_requests_per_min": "MAX_PARSING_REQUESTS_PER_MIN"
        }
      }
    }
  }'

Python

Informationen zum Installieren oder Aktualisieren des Agent Platform SDK für Python finden Sie unter Installieren des Agent Platform SDK für Python. Weitere Informationen finden Sie in der Referenzdokumentation zur Python API.

  from vertexai import rag
  import vertexai

  PROJECT_ID = "PROJECT_ID"
  CORPUS_NAME = "RAG_CORPUS_RESOURCE"
  LOCATION = "LOCATION"
  MODEL_ID = "MODEL_ID"
  MODEL_NAME = "projects/{PROJECT_ID}/locations/{LOCATION}/publishers/google/models/{MODEL_ID}"
  MAX_PARSING_REQUESTS_PER_MIN = MAX_PARSING_REQUESTS_PER_MIN # Optional
  CUSTOM_PARSING_PROMPT = "Your custom prompt" # Optional

  PATHS = ["https://drive.google.com/file/123", "gs://my_bucket/my_files_dir"]

  # Initialize Agent Platform API once per session
  vertexai.init(project={PROJECT_ID}, location={LOCATION})

  transformation_config = rag.TransformationConfig(
      chunking_config=rag.ChunkingConfig(
          chunk_size=1024, # Optional
          chunk_overlap=200, # Optional
      ),
  )

  llm_parser_config = rag.LlmParserConfig(
      model_name = MODEL_NAME,
      max_parsing_requests_per_min=MAX_PARSING_REQUESTS_PER_MIN, # Optional
      custom_parsing_prompt=CUSTOM_PARSING_PROMPT, # Optional
  )

  rag.import_files(
      CORPUS_NAME,
      PATHS,
      llm_parser=llm_parser_config,
      transformation_config=transformation_config,
  )

Prompting

Der LLM-Parser der RAG Engine auf der Gemini Enterprise Agent Platform verwendet einen vordefinierten und abgestimmten Prompt zum Parsen von Dokumenten. Wenn Sie jedoch spezielle Dokumente haben, die möglicherweise nicht für einen allgemeinen Prompt geeignet sind, können Sie bei Verwendung der API einen benutzerdefinierten Prompt zum Parsen angeben. Wenn Sie Gemini auffordern, Ihre Dokumente zu parsen, fügt die RAG Engine Ihrem Standard-Systemprompt einen Prompt hinzu.

Tabelle mit Prompt-Vorlagen

Die folgende Tabelle enthält ein Beispiel für eine Prompt-Vorlage, die Ihnen beim Parsen von Dokumenten helfen soll. Sie können damit Prompts erstellen, die die RAG Engine zum Parsen Ihrer Dokumente verwenden kann:

Anweisung Vorlagenanweisung Beispiel
Rolle angeben Sie sind ein/e [Rolle angeben, z. B. ein/e Extraktor/in von Fakten oder ein/e Informationsabrufer/in]. Sie sind ein/e Informationsabrufer/in.
Aufgabe angeben Extrahieren Sie [Art der Informationen angeben, z. B. Fakten , wichtige Daten oder bestimmte Details] aus [Dokumentquelle angeben, z. B. Dokument, Text, Artikel, Bild, Tabelle]. Extrahieren Sie wichtige Daten aus der Datei „sample.txt“.
Erläutern Sie, wie das LLM die Ausgabe gemäß Ihren Dokumenten generieren soll. Präsentieren Sie jede Tatsache in einem [Ausgabeformat angeben, z. B. strukturierte Liste oder Textformat] und verlinken Sie sie mit der [Quellposition angeben, z. B. Seite, Absatz, Tabelle oder Zeile]. Präsentieren Sie jede Tatsache in einer strukturierten Liste und verlinken Sie sie mit der entsprechenden Seite.
Heben Sie hervor, worauf sich das LLM konzentrieren soll. Extrahieren Sie [wichtige Datentypen angeben, z. B. Namen, Daten, Zahlen, Attribute oder Beziehungen] genau wie angegeben. Extrahieren Sie Namen und Daten.
Heben Sie hervor, was das LLM vermeiden soll. [Aktionen auflisten, die vermieden werden sollen, z. B. Analyse, Interpretation, Zusammenfassung, Schlussfolgerung oder Meinungsäußerung]. Extrahieren Sie nur das, was im Dokument ausdrücklich steht. Keine Meinungsäußerung. Extrahieren Sie nur das, was im Dokument ausdrücklich steht.

Allgemeine Anleitung

Folgen Sie dieser Anleitung, um Ihren Prompt für den LLM-Parser zu schreiben.

  • Spezifisch: Definieren Sie die Aufgabe und die Art der zu extrahierenden Informationen klar.
  • Detailliert: Geben Sie detaillierte Anweisungen zum Ausgabeformat, zur Quellen angabe und zur Verarbeitung verschiedener Datenstrukturen.
  • Einschränkend: Geben Sie explizit an, was die KI nicht tun soll, z. B. Analysen oder Interpretationen.
  • Klar: Verwenden Sie eine klare und direktive Sprache.
  • Strukturiert: Organisieren Sie die Anweisungen logisch mit nummerierten Listen oder Aufzählungs zeichen, um die Lesbarkeit zu verbessern.

Analyse der Parsing-Qualität

Diese Tabelle enthält Ergebnisse aus Szenarien, die Kunden mit der RAG Engine auf der Gemini Enterprise Agent Platform ausgeführt haben. Das Feedback zeigt, dass der LLM-Parser die Qualität des Parsens von Dokumenten verbessert.

Szenario Ergebnis
Informationen auf Folien parsen und Abschnitte verknüpfen Der LLM-Parser hat Abschnittstitel auf einer Folie erfolgreich mit den detaillierten Informationen auf den nachfolgenden Folien verknüpft.
Informationen aus Tabellen verstehen und extrahieren Der LLM-Parser hat Spalten und Überschriften in einer großen Tabelle korrekt zugeordnet, um bestimmte Fragen zu beantworten.
Flussdiagramme interpretieren Der LLM-Parser konnte der Logik eines Flussdiagramms folgen und die richtige Reihenfolge der Aktionen sowie die entsprechenden Informationen extrahieren.
Daten aus Diagrammen extrahieren Der LLM-Parser konnte verschiedene Arten von Diagrammen interpretieren, z. B. Liniendiagramme, und bestimmte Datenpunkte basierend auf der Abfrage extrahieren.
Beziehungen zwischen Überschriften und Text erfassen Der LLM-Parser hat sich anhand des Prompts an den Überschriften strukturen orientiert und alle relevanten Informationen zu einem bestimmten Thema oder Abschnitt abgerufen.
Möglichkeit, Einschränkungen bei Einbettungen mit Prompt Engineering zu überwinden Obwohl die Einschränkungen des Einbettungsmodells in einigen Anwendungsfällen zunächst ein Problem darstellten, haben zusätzliche Tests gezeigt, dass ein gut formulierter Prompt für den LLM-Parser diese Probleme möglicherweise beheben und die richtigen Informationen abrufen kann, auch wenn das semantische Verständnis für das Einbettungsmodell allein eine Herausforderung darstellt.

Der LLM-Parser verbessert die Fähigkeit des LLM, den Kontext in einem Dokument zu verstehen und zu analysieren, was zu genaueren und umfassenderen Antworten führt.

Abrufabfrage

Nachdem Sie einen Prompt eingegeben haben, der an ein generatives KI-Modell gesendet wird, durchsucht die Abrufkomponente in RAG in ihrer Wissensdatenbank nach Informationen, die für die Abfrage relevant sind. Weitere Informationen zum Abrufen von RAG-Dateien aus einem Corpus finden Sie unter Methode: ragFiles.get.

Nächste Schritte