Strukturierte und unstrukturierte Daten aktualisieren

Auf dieser Seite wird beschrieben, wie Sie strukturierte und unstrukturierte Daten aktualisieren.

Weitere Informationen zum Aktualisieren Ihrer Website-Apps finden Sie unter Webseite aktualisieren.

Strukturierte Daten aktualisieren

Sie können die Daten in einem strukturierten Datenspeicher aktualisieren, solange Sie ein Schema verwenden, das mit dem Schema im Datenspeicher identisch oder abwärtskompatibel ist. Wenn Sie einem vorhandenen Schema beispielsweise nur neue Felder hinzufügen, ist das abwärtskompatibel.

Sie können strukturierte Daten in der Google Cloud Console oder über die API aktualisieren.

Console

So aktualisieren Sie mit der Google Cloud Console strukturierte Daten aus einem Zweig eines Datenspeichers:

  1. Rufen Sie in der Google Cloud Console die Seite Agent Builder auf.

    Zum Agent Builder

  2. Klicken Sie im Navigationsmenü auf Datenspeicher.

  3. Klicken Sie in der Spalte Name auf den Datenspeicher, den Sie bearbeiten möchten.

  4. Klicken Sie auf dem Tab Dokumente auf Daten importieren.

  5. So aktualisieren Sie die Daten aus Cloud Storage:

    1. Wählen Sie im Bereich Datenquelle auswählen die Option Cloud Storage aus.
    2. Klicken Sie im Bereich Daten aus Cloud Storage importieren auf Durchsuchen, wählen Sie den Bucket mit den aktualisierten Daten aus und klicken Sie dann auf Auswählen. Alternativ können Sie den Speicherort des Buckets direkt in das Feld gs:// eingeben.
    3. Wählen Sie unter Optionen für den Datenimport eine Importoption aus.
    4. Klicken Sie auf Importieren.
  6. So aktualisieren Sie Daten aus BigQuery:

    1. Wählen Sie im Bereich Datenquelle auswählen die Option BigQuery aus.
    2. Klicken Sie im Bereich Daten aus BigQuery importieren auf Durchsuchen, wählen Sie eine Tabelle mit den aktualisierten Daten aus und klicken Sie dann auf Auswählen. Alternativ können Sie den Speicherort der Tabelle direkt in das Feld BigQuery-Pfad eingeben.
    3. Wählen Sie unter Optionen für den Datenimport eine Importoption aus.
    4. Klicken Sie auf Importieren.

REST

Verwenden Sie die Methode documents.import, um Ihre Daten zu aktualisieren, und geben Sie dabei den entsprechenden reconciliationMode-Wert an.

So aktualisieren Sie strukturierte Daten aus BigQuery oder Cloud Storage über die Befehlszeile:

  1. Suchen Sie die Datenspeicher-ID. Wenn Sie die Datenspeicher-ID bereits haben, fahren Sie mit dem nächsten Schritt fort.

    1. Rufen Sie in der Google Cloud Console die Seite Agent Builder auf und klicken Sie im Navigationsmenü auf Datenspeicher.

      Zur Seite „Datenspeicher“

    2. Klicken Sie auf den Namen des Datenspeichers.

    3. Rufen Sie auf der Datenseite Ihres Datenspeichers die Datenspeicher-ID ab.

  2. Rufen Sie die folgende Methode auf, um Ihre strukturierten Daten aus BigQuery zu importieren. Sie können entweder aus BigQuery oder Cloud Storage importieren. Wenn Sie aus Cloud Storage importieren möchten, fahren Sie mit dem nächsten Schritt fort.

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    "https://discoveryengine.googleapis.com/v1beta/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID/branches/0/documents:import" \
    -d '{
      "bigquerySource": {
        "projectId": "PROJECT_ID",
        "datasetId":"DATASET_ID",
        "tableId": "TABLE_ID",
        "dataSchema": "DATA_SCHEMA_BQ",
      },
      "reconciliationMode": "RECONCILIATION_MODE",
      "autoGenerateIds": AUTO_GENERATE_IDS,
      "idField": "ID_FIELD",
      "errorConfig": {
        "gcsPrefix": "ERROR_DIRECTORY"
      }
    }'
    
    • PROJECT_ID ist die ID Ihres Google Cloud-Projekts.
    • DATA_STORE_ID: die ID des Vertex AI Search-Datenspeichers.
    • DATASET_ID: der Name Ihres BigQuery-Datasets.
    • TABLE_ID: Der Name Ihrer BigQuery-Tabelle.
    • DATA_SCHEMA_BQ: Optionales Feld, in dem das Schema angegeben wird, das beim Parsen von Daten aus der BigQuery-Quelle verwendet werden soll. Kann die folgenden Werte haben:
      • document: der Standardwert. Die verwendete BigQuery-Tabelle muss dem folgenden BigQuery-Standardschema entsprechen. Sie können die ID jedes Dokuments selbst definieren und die gesamten Daten in den json_data-String einschließen.
      • custom: Es wird jedes BigQuery-Tabellenschema akzeptiert und Vertex AI Agent Builder generiert automatisch die IDs für jedes importierte Dokument.
    • ERROR_DIRECTORY: Optionales Feld, in dem ein Cloud Storage-Verzeichnis für Fehlerinformationen zum Import angegeben werden kann, z. B. gs://<your-gcs-bucket>/directory/import_errors. Google empfiehlt, dieses Feld leer zu lassen, damit Vertex AI Agent Builder automatisch ein temporäres Verzeichnis erstellt.
    • RECONCILIATION_MODE: Optionales Feld, mit dem angegeben wird, wie die importierten Dokumente mit den vorhandenen Dokumenten im Zieldatenspeicher abgeglichen werden. Kann die folgenden Werte haben:
      • INCREMENTAL: der Standardwert. Führt zu einer inkrementellen Aktualisierung von Daten aus BigQuery in Ihrem Datenspeicher. Dadurch wird ein Upsert-Vorgang ausgeführt, bei dem neue Dokumente hinzugefügt und vorhandene Dokumente durch aktualisierte Dokumente mit derselben ID ersetzt werden.
      • FULL: führt zu einer vollständigen Neuausrichtung der Dokumente in Ihrem Datenspeicher. Daher werden Ihrem Datenspeicher neue und aktualisierte Dokumente hinzugefügt und Dokumente, die nicht in BigQuery vorhanden sind, werden aus Ihrem Datenspeicher entfernt. Der Modus FULL ist hilfreich, wenn Sie Dokumente, die Sie nicht mehr benötigen, automatisch löschen möchten.
    • AUTO_GENERATE_IDS: Optionales Feld, mit dem angegeben wird, ob Dokument-IDs automatisch generiert werden sollen. Wenn dieser Wert auf true gesetzt ist, werden Dokument-IDs basierend auf einem Hash der Nutzlast generiert. Die generierten Dokument-IDs bleiben bei mehreren Importen möglicherweise nicht gleich. Wenn Sie IDs bei mehreren Importen automatisch generieren, sollten Sie reconciliationMode auf FULL festlegen, um einheitliche Dokument-IDs zu erhalten.

      Geben Sie autoGenerateIds nur an, wenn bigquerySource.dataSchema auf custom festgelegt ist. Andernfalls wird der Fehler INVALID_ARGUMENT zurückgegeben. Wenn Sie autoGenerateIds nicht angeben oder auf false festlegen, müssen Sie idField angeben. Andernfalls können die Dokumente nicht importiert werden.

    • ID_FIELD: Optionales Feld, mit dem angegeben wird, welche Felder die Dokument-IDs sind. Bei BigQuery-Quelldateien gibt idField den Namen der Spalte in der BigQuery-Tabelle an, die die Dokument-IDs enthält.

      Geben Sie idField nur an, wenn beide dieser Bedingungen erfüllt sind. Andernfalls wird ein INVALID_ARGUMENT-Fehler zurückgegeben:

      • bigquerySource.dataSchema ist auf custom gesetzt.
      • auto_generate_ids ist auf false festgelegt oder nicht angegeben.

      Außerdem muss der Wert des BigQuery-Spaltennamens vom Typ „String“ sein, zwischen 1 und 63 Zeichen lang sein und RFC-1034 entsprechen. Andernfalls können die Dokumente nicht importiert werden.

    Hier ist das Standard-BigQuery-Schema. Ihre BigQuery-Tabelle muss diesem Schema entsprechen, wenn Sie dataSchema auf document festlegen.

    [
     {
       "name": "id",
       "mode": "REQUIRED",
       "type": "STRING",
       "fields": []
     },
     {
       "name": "jsonData",
       "mode": "NULLABLE",
       "type": "STRING",
       "fields": []
     }
    ]
    
  3. Rufen Sie die folgende Methode auf, um Ihre strukturierten Daten aus Cloud Storage zu importieren. Sie können entweder aus BigQuery oder Cloud Storage importieren. Wenn Sie Daten aus BigQuery importieren möchten, gehen Sie zum vorherigen Schritt.

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    "https://discoveryengine.googleapis.com/v1beta/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID/branches/0/documents:import" \
    -d '{
      "gcsSource": {
        "inputUris": ["GCS_PATHS"],
        "dataSchema": "DATA_SCHEMA_GCS",
      },
      "reconciliationMode": "RECONCILIATION_MODE",
      "idField": "ID_FIELD",
      "errorConfig": {
        "gcsPrefix": "ERROR_DIRECTORY"
      }
    }'
    
    • PROJECT_ID ist die ID Ihres Google Cloud-Projekts.
    • DATA_STORE_ID: die ID des Vertex AI Search-Datenspeichers.
    • GCS_PATHS: Eine Liste von durch Kommas getrennten URIs zu Cloud Storage-Speicherorten, von denen aus Sie importieren möchten. Jeder URI kann 2.000 Zeichen lang sein. URIs können mit dem vollständigen Pfad eines Speicherobjekts oder mit dem Muster für ein oder mehrere Objekte übereinstimmen. gs://bucket/directory/*.json ist beispielsweise ein gültiger Pfad.
    • DATA_SCHEMA_GCS: Optionales Feld, in dem das Schema angegeben wird, das beim Parsen von Daten aus der BigQuery-Quelle verwendet werden soll. Kann die folgenden Werte haben:
      • document: der Standardwert. Die verwendete BigQuery-Tabelle muss dem folgenden BigQuery-Standardschema entsprechen. Sie können die ID jedes Dokuments selbst definieren und die gesamten Daten in den json_data-String einschließen.
      • custom: Es wird jedes BigQuery-Tabellenschema akzeptiert und Vertex AI Agent Builder generiert automatisch die IDs für jedes importierte Dokument.
    • ERROR_DIRECTORY: Optionales Feld, in dem ein Cloud Storage-Verzeichnis für Fehlerinformationen zum Import angegeben werden kann, z. B. gs://<your-gcs-bucket>/directory/import_errors. Google empfiehlt, dieses Feld leer zu lassen, damit Vertex AI Agent Builder automatisch ein temporäres Verzeichnis erstellt.
    • RECONCILIATION_MODE: Optionales Feld, mit dem angegeben wird, wie die importierten Dokumente mit den vorhandenen Dokumenten im Zieldatenspeicher abgeglichen werden. Kann die folgenden Werte haben:
      • INCREMENTAL: der Standardwert. Führt zu einer inkrementellen Aktualisierung von Daten aus BigQuery in Ihrem Datenspeicher. Dadurch wird ein Upsert-Vorgang ausgeführt, bei dem neue Dokumente hinzugefügt und vorhandene Dokumente durch aktualisierte Dokumente mit derselben ID ersetzt werden.
      • FULL: führt zu einer vollständigen Neuausrichtung der Dokumente in Ihrem Datenspeicher. Daher werden Ihrem Datenspeicher neue und aktualisierte Dokumente hinzugefügt und Dokumente, die nicht in BigQuery vorhanden sind, werden aus Ihrem Datenspeicher entfernt. Der Modus FULL ist hilfreich, wenn Sie Dokumente, die Sie nicht mehr benötigen, automatisch löschen möchten.

Python

Weitere Informationen finden Sie in der Referenzdokumentation zur Vertex AI Agent Builder Python API.

Richten Sie zur Authentifizierung bei Vertex AI Agent Builder Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.


from google.api_core.client_options import ClientOptions
from google.cloud import discoveryengine

# TODO(developer): Uncomment these variables before running the sample.
# project_id = "YOUR_PROJECT_ID"
# location = "YOUR_LOCATION" # Values: "global"
# data_store_id = "YOUR_DATA_STORE_ID"
# bigquery_dataset = "YOUR_BIGQUERY_DATASET"
# bigquery_table = "YOUR_BIGQUERY_TABLE"

#  For more information, refer to:
# https://cloud.google.com/generative-ai-app-builder/docs/locations#specify_a_multi-region_for_your_data_store
client_options = (
    ClientOptions(api_endpoint=f"{location}-discoveryengine.googleapis.com")
    if location != "global"
    else None
)

# Create a client
client = discoveryengine.DocumentServiceClient(client_options=client_options)

# The full resource name of the search engine branch.
# e.g. projects/{project}/locations/{location}/dataStores/{data_store_id}/branches/{branch}
parent = client.branch_path(
    project=project_id,
    location=location,
    data_store=data_store_id,
    branch="default_branch",
)

request = discoveryengine.ImportDocumentsRequest(
    parent=parent,
    bigquery_source=discoveryengine.BigQuerySource(
        project_id=project_id,
        dataset_id=bigquery_dataset,
        table_id=bigquery_table,
        data_schema="custom",
    ),
    # Options: `FULL`, `INCREMENTAL`
    reconciliation_mode=discoveryengine.ImportDocumentsRequest.ReconciliationMode.INCREMENTAL,
)

# Make the request
operation = client.import_documents(request=request)

print(f"Waiting for operation to complete: {operation.operation.name}")
response = operation.result()

# After the operation is complete,
# get information from operation metadata
metadata = discoveryengine.ImportDocumentsMetadata(operation.metadata)

# Handle the response
print(response)
print(metadata)

Unstrukturierte Daten aktualisieren

Sie können unstrukturierte Daten in der Google Cloud Console oder über die API aktualisieren.

Console

So aktualisieren Sie mit der Google Cloud Console unstrukturierte Daten aus einem Zweig eines Datenspeichers:

  1. Rufen Sie in der Google Cloud Console die Seite Agent Builder auf.

    Zum Agent Builder

  2. Klicken Sie im Navigationsmenü auf Datenspeicher.

  3. Klicken Sie in der Spalte Name auf den Datenspeicher, den Sie bearbeiten möchten.

  4. Klicken Sie auf dem Tab Dokumente auf Daten importieren.

  5. So nehmen Sie Daten aus einem Cloud Storage-Bucket auf (mit oder ohne Metadaten):

    1. Wählen Sie im Bereich Datenquelle auswählen die Option Cloud Storage aus.
    2. Klicken Sie im Bereich Daten aus Cloud Storage importieren auf Durchsuchen, wählen Sie den Bucket mit den aktualisierten Daten aus und klicken Sie dann auf Auswählen. Alternativ können Sie den Speicherort des Buckets direkt in das Feld gs:// eingeben.
    3. Wählen Sie unter Optionen für den Datenimport eine Importoption aus.
    4. Klicken Sie auf Importieren.
  6. So nehmen Sie Daten aus BigQuery auf:

    1. Wählen Sie im Bereich Datenquelle auswählen die Option BigQuery aus.
    2. Klicken Sie im Bereich Daten aus BigQuery importieren auf Durchsuchen, wählen Sie eine Tabelle mit den aktualisierten Daten aus und klicken Sie dann auf Auswählen. Alternativ können Sie den Speicherort der Tabelle direkt in das Feld BigQuery-Pfad eingeben.
    3. Wählen Sie unter Optionen für den Datenimport eine Importoption aus.
    4. Klicken Sie auf Importieren.

REST

Wenn Sie unstrukturierte Daten mit der API aktualisieren möchten, importieren Sie sie noch einmal mit der Methode documents.import und geben Sie den entsprechenden reconciliationMode-Wert an. Weitere Informationen zum Importieren unstrukturierter Daten finden Sie unter Unstrukturierte Daten.

Python

Weitere Informationen finden Sie in der Referenzdokumentation zur Vertex AI Agent Builder Python API.

Richten Sie zur Authentifizierung bei Vertex AI Agent Builder Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.

from google.api_core.client_options import ClientOptions
from google.cloud import discoveryengine

# TODO(developer): Uncomment these variables before running the sample.
# project_id = "YOUR_PROJECT_ID"
# location = "YOUR_LOCATION" # Values: "global"
# data_store_id = "YOUR_DATA_STORE_ID"

# Examples:
# - Unstructured documents
#   - `gs://bucket/directory/file.pdf`
#   - `gs://bucket/directory/*.pdf`
# - Unstructured documents with JSONL Metadata
#   - `gs://bucket/directory/file.json`
# - Unstructured documents with CSV Metadata
#   - `gs://bucket/directory/file.csv`
# gcs_uri = "YOUR_GCS_PATH"

#  For more information, refer to:
# https://cloud.google.com/generative-ai-app-builder/docs/locations#specify_a_multi-region_for_your_data_store
client_options = (
    ClientOptions(api_endpoint=f"{location}-discoveryengine.googleapis.com")
    if location != "global"
    else None
)

# Create a client
client = discoveryengine.DocumentServiceClient(client_options=client_options)

# The full resource name of the search engine branch.
# e.g. projects/{project}/locations/{location}/dataStores/{data_store_id}/branches/{branch}
parent = client.branch_path(
    project=project_id,
    location=location,
    data_store=data_store_id,
    branch="default_branch",
)

request = discoveryengine.ImportDocumentsRequest(
    parent=parent,
    gcs_source=discoveryengine.GcsSource(
        # Multiple URIs are supported
        input_uris=[gcs_uri],
        # Options:
        # - `content` - Unstructured documents (PDF, HTML, DOC, TXT, PPTX)
        # - `custom` - Unstructured documents with custom JSONL metadata
        # - `document` - Structured documents in the discoveryengine.Document format.
        # - `csv` - Unstructured documents with CSV metadata
        data_schema="content",
    ),
    # Options: `FULL`, `INCREMENTAL`
    reconciliation_mode=discoveryengine.ImportDocumentsRequest.ReconciliationMode.INCREMENTAL,
)

# Make the request
operation = client.import_documents(request=request)

print(f"Waiting for operation to complete: {operation.operation.name}")
response = operation.result()

# After the operation is complete,
# get information from operation metadata
metadata = discoveryengine.ImportDocumentsMetadata(operation.metadata)

# Handle the response
print(response)
print(metadata)