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 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, End-to-End-basierte, cloudbasierte Anwendungen zur Dokumentenverarbeitung 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 aus dem Dokument, z. B. Text, Tabellen und Listen. Der Layout-Parser 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 Vertex AI RAG verwenden
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
Im folgenden Beispielcode wird veranschaulicht, wie Sie das erweiterte Parsen mit REST in einem curl-Befehl und mit dem Vertex AI SDK for Python aktivieren.
REST
In diesem Codebeispiel wird gezeigt, wie Sie Cloud Storage-Dateien mit dem Layout-Parser importieren. Weitere Konfigurationsoptionen, z. B. zum Importieren von Dateien aus einer anderen Quelle, finden Sie unter ImportRagFilesConfig
.
Ersetzen Sie die im Codebeispiel verwendeten Variablen:
- PROJECT_ID: Ihre Projekt-ID.
- LOCATION: Die Region, in der Ihre 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/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:import
JSON-Text anfordern:
{
"import_rag_files_config": {
"gcs_source": {
"uris": GCS_URIS
},
"file_parsing_config": {
"layout_parser": {
"processor_name": "LAYOUT_PARSER_PROCESSOR_NAME"
}
},
"rag_file_chunking_config": {
"chunk_size": CHUNK_SIZE
},
}
}
Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus.
Speichern Sie den Anfragetext in einer Datei namens „request.json“ und führen Sie den folgenden Befehl aus:
curl -X POST \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:import"
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 im Codebeispiel verwendeten Variablen:
- PROJECT_ID: Ihre Projekt-ID.
- LOCATION: Die Region, in der Ihre 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.preview import rag
import vertexai
PROJECT_ID = "PROJECT_ID"
corpus_name = "projects/<var>PROJECT_ID</var>/locations/LOCATION/ragCorpora/RAG_CORPUS_ID"
# paths = ["https://drive.google.com/file/123", "GCS_URIS"]
# Supports Cloud Storage and Google Drive Links
layout_parser_processor_name = "projects/PROJECT_ID/locations/<var>LOCATION</var>/processors/LAYOUT_PARSER_PROCESSOR_NAME"
# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location="LOCATION")
response = rag.import_files(
corpus_name=RAG_CORPUS_ID,
paths=paths,
chunk_size=512, # Optional
chunk_overlap=100, # Optional
max_embedding_requests_per_min=900, # Optional
layout_parser=rag.LayoutParserConfig(
processor_name=layout_parser_processor_name,
max_parsing_requests_per_min=120, # Optional
)
)
print(f"Imported {response.imported_rag_files_count} files.")
# Example response:
# Imported 2 files.
Layout-Parser aktivieren
Die Codebeispiele zeigen, wie Sie den Layout-Parser 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.
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/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:import
JSON-Text anfordern:
{
"import_rag_files_config": {
"gcs_source": {
"uris": "GCS_URIS"
},
"file_parsing_config": {
"layout_parser": {
"processor_name": "LAYOUT_PARSER_PROCESSOR_NAME"
}
},
"rag_file_chunking_config": {
"chunk_size": CHUNK_SIZE
},
}
}
Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Codierungsoptionen aus:
Speichern Sie den Anfragetext in einer Datei namens „request.json“ und führen Sie den folgenden Befehl aus:
curl -X POST \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:import"
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.preview import rag
import vertexai
PROJECT_ID = "PROJECT_ID"
corpus_name = "projects/{PROJECT_ID}/locations/LOCATION/ragCorpora/RAG_CORPUS_ID"
# paths = ["https://drive.google.com/file/123", "gs://my_bucket/my_files_dir"]
# Supports Cloud Storage and Google Drive links
layout_parser_processor_name = "LAYOUT_PARSER_PROCESSOR_NAME"
# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location="LOCATION")
response = rag.import_files(
corpus_name=corpus_name,
paths=paths,
chunk_size=512, # Optional
chunk_overlap=100, # Optional
max_embedding_requests_per_min=900, # Optional
layout_parser=rag.LayoutParserConfig(
processor_name=layout_parser_processor_name,
max_parsing_requests_per_min=120, # Optional
)
)
print(f"Imported {response.imported_rag_files_count} files.")
# Example response:
# Imported 2 files.
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.