Suchdatenspeicher erstellen

Wenn Sie einen Datenspeicher erstellen und Daten für die Suche aufnehmen möchten, rufen Sie den Abschnitt für die Quelle auf, die Sie verwenden möchten:

Wenn Sie stattdessen Daten aus einer Drittanbieter-Datenquelle synchronisieren möchten, lesen Sie den Hilfeartikel Drittanbieter-Datenquelle verbinden.

Informationen zur Fehlerbehebung finden Sie unter Fehlerbehebung bei der Datenaufnahme.

Datenspeicher mit Websiteinhalten erstellen

Gehen Sie so vor, um einen Datenspeicher zu erstellen und Websites zu indexieren.

Wenn Sie einen Website-Datenspeicher nach der Erstellung verwenden möchten, müssen Sie ihn an eine App anhängen, für die Unternehmensfunktionen aktiviert sind. Sie können die Enterprise-Version für eine App aktivieren, wenn Sie sie erstellen. Dadurch fallen zusätzliche Kosten an. Weitere Informationen finden Sie unter Such-App erstellen und Erweiterte Funktionen.

Hinweise

Wenn Sie die Datei robots.txt auf Ihrer Website verwenden, aktualisieren Sie sie. Weitere Informationenrobots.txt

Prozedur

Console

So verwenden Sie die Google Cloud Console, um einen Datenspeicher zu erstellen und Websites zu indexieren:

  1. Rufen Sie in der Google Cloud Console die Seite KI-Anwendungen auf.

    KI-Anwendungen

  2. Klicken Sie im Navigationsmenü auf Datenspeicher.

  3. Klicken Sie auf Datenspeicher erstellen.

  4. Wählen Sie auf der Seite Quelle die Option Websiteinhalte aus.

  5. Wählen Sie aus, ob Sie die erweiterte Websiteindexierung für diesen Datenspeicher aktivieren möchten. Wenn Sie die erweiterte Websiteindexierung jetzt aktivieren, können Sie sie später nicht mehr deaktivieren.

    Die erweiterte Websiteindexierung bietet zusätzliche Funktionen wie die Zusammenfassung von Suchanfragen, die Suche mit Folgefragen und extrahierte Antworten. Für die erweiterte Websiteindexierung fallen zusätzliche Kosten an. Außerdem müssen Sie die Inhaberschaft für jede Website bestätigen, die Sie indexieren. Weitere Informationen finden Sie unter Erweiterte Websiteindexierung und Preise.

  6. Geben Sie im Feld Einzuschließende Websites die URL-Muster ein, die den Websites entsprechen, die Sie in Ihren Datenspeicher aufnehmen möchten. Geben Sie pro Zeile ein URL-Muster ohne Kommatrennzeichen an. Beispiel: example.com/docs/*

  7. Optional: Geben Sie im Feld Auszuschließende Websites URL-Muster ein, die Sie aus Ihrem Datenspeicher ausschließen möchten.

    Ausgeschlossene Websites haben Vorrang vor eingeschlossenen Websites. Wenn Sie also example.com/docs/* einbeziehen, aber example.com ausschließen, werden keine Websites indexiert. Weitere Informationen finden Sie unter Websitedaten.

  8. Klicken Sie auf Weiter.

  9. Wählen Sie einen Speicherort für Ihren Datenspeicher aus.

    • Wenn Sie einen grundlegenden Datenspeicher für die Website-Suche erstellen, wird dieser immer auf Global festgelegt.
    • Wenn Sie einen Datenspeicher mit erweiterter Websiteindexierung erstellen, können Sie einen Standort auswählen. Da die indexierten Websites öffentlich sein müssen, empfiehlt Google dringend, global als Standort auszuwählen. So wird die maximale Verfügbarkeit aller Such- und Antwortdienste gewährleistet und die Einschränkungen regionaler Datenspeicher werden aufgehoben.
  10. Geben Sie einen Namen für den Datenspeicher ein.

  11. Klicken Sie auf Erstellen. Vertex AI Search erstellt den Datenspeicher und zeigt ihn auf der Seite Datenspeicher an.

  12. Wenn Sie Informationen zu Ihrem Datenspeicher aufrufen möchten, klicken Sie in der Spalte Name auf den Namen des Datenspeichers. Die Seite für Ihren Datenspeicher wird angezeigt.

    • Wenn Sie die erweiterte Websiteindexierung aktiviert haben, wird eine Warnung angezeigt, in der Sie aufgefordert werden, die Domains in Ihrem Datenspeicher zu bestätigen.
    • Wenn Sie ein Kontingentdefizit haben (die Anzahl der Seiten auf den von Ihnen angegebenen Websites überschreitet das Kontingent „Anzahl der Dokumente pro Projekt“ für Ihr Projekt), wird eine zusätzliche Warnung angezeigt, in der Sie aufgefordert werden, Ihr Kontingent zu erhöhen.
  13. Folgen Sie der Anleitung auf der Seite Website-Domains bestätigen, um die Domains für die URL-Muster in Ihrem Datenspeicher zu bestätigen.

  14. So führen Sie ein Upgrade Ihres Kontingents durch:

    1. Klicken Sie auf Kontingent aktualisieren. Die Seite IAM & Verwaltung der Google Cloud Console wird angezeigt.
    2. Folgen Sie der Anleitung unter Kontingentanpassung anfordern in der Google Cloud -Dokumentation. Das zu erhöhende Kontingent ist Anzahl der Dokumente im Dienst Discovery Engine API.
    3. Nachdem Sie die Anfrage für ein höheres Kontingentlimit gesendet haben, kehren Sie zur Seite AI Applications zurück und klicken Sie im Navigationsmenü auf Datenspeicher.
    4. Klicken Sie in der Spalte Name auf den Namen des Datenspeichers. In der Spalte Status wird angezeigt, dass die Indexierung für die Websites, die das Kontingent überschritten haben, noch läuft. Wenn in der Spalte Status für eine URL Indexiert angezeigt wird, sind für diese URL oder dieses URL-Muster erweiterte Funktionen für die Website-Indexierung verfügbar.

    Weitere Informationen finden Sie auf der Seite „Kontingente und Limits“ unter Kontingent für die Indexierung von Webseiten.

Python

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

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

Datenspeicher erstellen


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"


def create_data_store_sample(
    project_id: str,
    location: str,
    data_store_id: str,
) -> str:
    #  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.DataStoreServiceClient(client_options=client_options)

    # The full resource name of the collection
    # e.g. projects/{project}/locations/{location}/collections/default_collection
    parent = client.collection_path(
        project=project_id,
        location=location,
        collection="default_collection",
    )

    data_store = discoveryengine.DataStore(
        display_name="My Data Store",
        # Options: GENERIC, MEDIA, HEALTHCARE_FHIR
        industry_vertical=discoveryengine.IndustryVertical.GENERIC,
        # Options: SOLUTION_TYPE_RECOMMENDATION, SOLUTION_TYPE_SEARCH, SOLUTION_TYPE_CHAT, SOLUTION_TYPE_GENERATIVE_CHAT
        solution_types=[discoveryengine.SolutionType.SOLUTION_TYPE_SEARCH],
        # TODO(developer): Update content_config based on data store type.
        # Options: NO_CONTENT, CONTENT_REQUIRED, PUBLIC_WEBSITE
        content_config=discoveryengine.DataStore.ContentConfig.CONTENT_REQUIRED,
    )

    request = discoveryengine.CreateDataStoreRequest(
        parent=parent,
        data_store_id=data_store_id,
        data_store=data_store,
        # Optional: For Advanced Site Search Only
        # create_advanced_site_search=True,
    )

    # Make the request
    operation = client.create_data_store(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.CreateDataStoreMetadata(operation.metadata)

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

    return operation.operation.name

Websites importieren

#     from google.api_core.client_options import ClientOptions
#
#     from google.cloud import discoveryengine_v1 as 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"
#     # NOTE: Do not include http or https protocol in the URI pattern
#     # uri_pattern = "cloud.google.com/generative-ai-app-builder/docs/*"
#
#     #  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.SiteSearchEngineServiceClient(
#         client_options=client_options
#     )
#
#     # The full resource name of the data store
#     # e.g. projects/{project}/locations/{location}/dataStores/{data_store_id}
#     site_search_engine = client.site_search_engine_path(
#         project=project_id, location=location, data_store=data_store_id
#     )
#
#     # Target Site to index
#     target_site = discoveryengine.TargetSite(
#         provided_uri_pattern=uri_pattern,
#         # Options: INCLUDE, EXCLUDE
#         type_=discoveryengine.TargetSite.Type.INCLUDE,
#         exact_match=False,
#     )
#
#     # Make the request
#     operation = client.create_target_site(
#         parent=site_search_engine,
#         target_site=target_site,
#     )
#
#     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.CreateTargetSiteMetadata(operation.metadata)
#
#     # Handle the response
#     print(response)
#     print(metadata)

Nächste Schritte

Aus BigQuery importieren

Mit Vertex AI Search können Sie BigQuery-Daten durchsuchen.

Sie haben zwei Möglichkeiten, Datenspeicher aus BigQuery-Tabellen zu erstellen:

  • Einmalige Aufnahme: Sie importieren Daten aus einer BigQuery-Tabelle in einen Datenspeicher. Die Daten im Datenspeicher ändern sich nur, wenn Sie die Daten manuell aktualisieren.

  • Regelmäßige Aufnahme: Sie importieren Daten aus einer oder mehreren BigQuery-Tabellen und legen eine Synchronisierungshäufigkeit fest. Diese bestimmt, wie oft die Datenspeicher mit den neuesten Daten aus dem BigQuery-Dataset aktualisiert werden.

In der folgenden Tabelle werden die beiden Optionen für den Import von BigQuery-Daten in Vertex AI Search-Datenspeicher verglichen.

Einmalige Aufnahme Regelmäßige Aufnahme
Allgemein verfügbar (GA). Öffentliche Vorschau.
Daten müssen manuell aktualisiert werden. Daten werden automatisch alle ein, drei oder fünf Tage aktualisiert. Daten können nicht manuell aktualisiert werden.
Vertex AI Search erstellt einen einzelnen Datenspeicher aus einer Tabelle in BigQuery. Vertex AI Search erstellt einen Daten-Connector für ein BigQuery-Dataset und einen Datenspeicher (Entitätsdatenspeicher genannt) für jede angegebene Tabelle. Für jeden Datenconnector müssen die Tabellen denselben Datentyp (z. B. strukturiert) haben und sich im selben BigQuery-Dataset befinden.
Sie können Daten aus mehreren Tabellen in einem Datenspeicher ablegen. Dafür müssen Sie zuerst Daten aus einer Tabelle und dann weitere Daten aus einer anderen Quelle oder BigQuery-Tabelle aufnehmen. Da ein manueller Datenimport nicht unterstützt wird, müssen die Daten in einem Entitätsdatenspeicher aus einer BigQuery-Tabelle stammen.
Für Datenquellen wird Zugriffssteuerung unterstützt. Für Datenquellen wird keine Zugriffssteuerung unterstützt. Die importierten Daten können zwar Zugriffssteuerungen enthalten, diese werden jedoch nicht berücksichtigt.
Sie können einen Datenspeicher entweder über dieGoogle Cloud Console oder die API erstellen. Um Daten-Connectors und die zugehörigen Entitätsdatenspeicher zu erstellen, müssen Sie die Console verwenden.
CMEK-konform. CMEK-konform.

Einmaliger Import aus BigQuery

Wenn Sie Daten aus einer BigQuery-Tabelle aufnehmen möchten, gehen Sie so vor, um einen Datenspeicher zu erstellen und Daten entweder über die Google Cloud Console oder die API aufzunehmen.

Lesen Sie vor dem Importieren der Daten, wie Sie Daten für die Aufnahme vorbereiten.

Console

So verwenden Sie die Google Cloud Konsole zum Erfassen von Daten aus BigQuery:

  1. Rufen Sie in der Google Cloud Console die Seite KI-Anwendungen auf.

    KI-Anwendungen

  2. Rufen Sie die Seite Datenspeicher auf.

  3. Klicken Sie auf Datenspeicher erstellen.

  4. Wählen Sie auf der Seite Quelle die Option BigQuery aus.

  5. Wählen Sie im Abschnitt Welche Art von Daten importieren Sie? den Datentyp aus, den Sie importieren möchten.

  6. Wählen Sie im Abschnitt Synchronisierungshäufigkeit die Option Einmal aus.

  7. Klicken Sie im Feld BigQuery-Pfad auf Durchsuchen, wählen Sie eine Tabelle aus, die Sie für die Aufnahme vorbereitet haben, und klicken Sie dann auf Auswählen. Alternativ können Sie den Tabellenspeicherort direkt in das Feld BigQuery-Pfad eingeben.

  8. Klicken Sie auf Weiter.

  9. Wenn Sie strukturierte Daten einmalig importieren:

    1. Ordnen Sie Felder den wichtigsten Eigenschaften zu.

    2. Sollten wichtige Felder im Schema fehlen, fügen Sie sie über Neues Feld hinzufügen hinzu.

      Weitere Informationen zur automatischen Erkennung und Bearbeitung

    3. Klicken Sie auf Weiter.

  10. Wählen Sie eine Region für Ihren Datenspeicher aus.

  11. Geben Sie einen Namen für den Datenspeicher ein.

  12. Klicken Sie auf Erstellen.

  13. Wenn Sie den Status der Aufnahme überprüfen möchten, rufen Sie die Seite Datenspeicher auf und klicken Sie auf den Namen des Datenspeichers. Dadurch werden die Details auf der Seite Daten angezeigt. Wenn sich die Statusspalte auf dem Tab Aktivität von In Bearbeitung zu Import abgeschlossen ändert, ist die Aufnahme abgeschlossen.

    Abhängig von der Größe der Daten kann die Datenaufnahme einige Minuten bis mehrere Stunden dauern.

REST

So erstellen Sie einen Datenspeicher über die Befehlszeile und importieren Daten aus BigQuery:

  1. Erstellen Sie einen Datenspeicher.

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -H "X-Goog-User-Project: PROJECT_ID" \
    "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores?dataStoreId=DATA_STORE_ID" \
    -d '{
      "displayName": "DATA_STORE_DISPLAY_NAME",
      "industryVertical": "GENERIC",
      "solutionTypes": ["SOLUTION_TYPE_SEARCH"]
    }'
    

    Ersetzen Sie Folgendes:

    • PROJECT_ID: Die ID Ihres Projekts in Google Cloud .
    • DATA_STORE_ID: Die ID des Vertex AI Search-Datenspeichers, den Sie erstellen möchten. Diese ID darf nur Kleinbuchstaben, Ziffern, Unterstriche und Bindestriche enthalten.
    • DATA_STORE_DISPLAY_NAME: Der Anzeigename des Vertex AI Search-Datenspeichers, den Sie erstellen möchten.

    Optional: Wenn Sie unstrukturierte Daten hochladen und das Parsen von Dokumenten konfigurieren oder das Aufteilen von Dokumenten für RAG aktivieren möchten, geben Sie das Objekt documentProcessingConfig an und fügen Sie es in Ihre Anfrage zum Erstellen des Datenspeichers ein. Es empfiehlt sich, zur Aufnahme eines gescannten PDFs einen OCR-Parser für PDFs zu konfigurieren. Weitere Informationen zum Konfigurieren von Optionen für das Parsen und Aufteilen in Blöcke.

  2. Daten aus BigQuery importieren

    Wenn Sie ein Schema definiert haben, achten Sie darauf, dass die Daten diesem Schema entsprechen.

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    "https://discoveryengine.googleapis.com/v1/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",
        "aclEnabled": "BOOLEAN"
      },
      "reconciliationMode": "RECONCILIATION_MODE",
      "autoGenerateIds": "AUTO_GENERATE_IDS",
      "idField": "ID_FIELD",
      "errorConfig": {
        "gcsPrefix": "ERROR_DIRECTORY"
      }
    }'
    

    Ersetzen Sie Folgendes:

    • PROJECT_ID: Die ID Ihres Projekts in Google Cloud .
    • DATA_STORE_ID: die ID des Vertex AI Search-Datenspeichers.
    • DATASET_ID: die ID des BigQuery-Datasets.
    • TABLE_ID: Die ID der BigQuery-Tabelle.
      • Wenn sich die BigQuery-Tabelle nicht unter PROJECT_ID befindet, müssen Sie dem Dienstkonto service-<project number>@gcp-sa-discoveryengine.iam.gserviceaccount.com die Berechtigung „BigQuery Data Viewer“ für die BigQuery-Tabelle erteilen. Wenn Sie beispielsweise eine BigQuery-Tabelle aus dem Quellprojekt „123“ in das Zielprojekt „456“ importieren, gewähren Sie service-456@gcp-sa-discoveryengine.iam.gserviceaccount.com im Projekt „123“ Berechtigungen für die BigQuery-Tabelle.
    • DATA_SCHEMA: optional. Mögliche Werte sind document und custom. Der Standardwert ist document.
      • document: Die BigQuery-Tabelle, die Sie verwenden, muss dem standardmäßigen BigQuery-Schema entsprechen, das unter Daten für die Aufnahme vorbereiten bereitgestellt wird. Sie können die ID jedes Dokuments selbst definieren und alle Daten in den jsonData-String einfügen.
      • custom: Es wird jedes BigQuery-Tabellenschema akzeptiert und Vertex AI Search generiert automatisch die IDs für jedes importierte Dokument.
    • ERROR_DIRECTORY: optional. Ein Cloud Storage-Verzeichnis für Fehlerinformationen zum Import, z. B. gs://<your-gcs-bucket>/directory/import_errors. Google empfiehlt, dieses Feld leer zu lassen, damit Vertex AI Search automatisch ein temporäres Verzeichnis erstellen kann.
    • RECONCILIATION_MODE: optional. Mögliche Werte sind FULL und INCREMENTAL. Der Standardwert ist INCREMENTAL. Wenn Sie INCREMENTAL angeben, werden die Daten aus BigQuery in Ihrem Datenspeicher inkrementell aktualisiert. Dadurch wird ein Upsert-Vorgang ausgeführt, bei dem neue Dokumente hinzugefügt und vorhandene Dokumente durch aktualisierte Dokumente mit derselben ID ersetzt werden. Wenn Sie FULL angeben, werden die Dokumente in Ihrem Datenspeicher vollständig neu synchronisiert. Das bedeutet, dass Ihrem Datenspeicher neue und aktualisierte Dokumente hinzugefügt und Dokumente, die nicht in BigQuery enthalten sind, aus Ihrem Datenspeicher entfernt werden. Der Modus FULL ist hilfreich, wenn Sie nicht mehr benötigte Dokumente automatisch löschen lassen möchten.
    • AUTO_GENERATE_IDS: optional. Gibt an, ob Dokument-IDs automatisch generiert werden sollen. Wenn dieser Wert auf true gesetzt ist, werden Dokument-IDs auf Grundlage eines Hash der Nutzlast generiert. Beachten Sie, dass generierte Dokument-IDs bei mehreren Importvorgängen möglicherweise nicht konsistent bleiben. Wenn Sie IDs bei mehreren Importvorgängen automatisch generieren, empfiehlt Google dringend, reconciliationMode auf FULL zu setzen, 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 schlägt der Import der Dokumente fehl.

    • ID_FIELD: optional. Gibt an, welche Felder die Dokument-IDs enthalten. 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 (1) bigquerySource.dataSchema auf custom und (2) auto_generate_ids auf false festgelegt oder nicht angegeben ist. Andernfalls wird der Fehler INVALID_ARGUMENT zurückgegeben.

      Der Wert des BigQuery-Spaltennamens muss vom Typ „String“ sein, zwischen 1 und 63 Zeichen lang sein und RFC-1034 entsprechen. Andernfalls schlägt der Import der Dokumente fehl.

C#

Weitere Informationen finden Sie in der Referenzdokumentation zur Vertex AI Search C# API.

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

Datenspeicher erstellen

using Google.Cloud.DiscoveryEngine.V1;
using Google.LongRunning;

public sealed partial class GeneratedDataStoreServiceClientSnippets
{
    /// <summary>Snippet for CreateDataStore</summary>
    /// <remarks>
    /// This snippet has been automatically generated and should be regarded as a code template only.
    /// It will require modifications to work:
    /// - It may require correct/in-range values for request initialization.
    /// - It may require specifying regional endpoints when creating the service client as shown in
    ///   https://cloud.google.com/dotnet/docs/reference/help/client-configuration#endpoint.
    /// </remarks>
    public void CreateDataStoreRequestObject()
    {
        // Create client
        DataStoreServiceClient dataStoreServiceClient = DataStoreServiceClient.Create();
        // Initialize request argument(s)
        CreateDataStoreRequest request = new CreateDataStoreRequest
        {
            ParentAsCollectionName = CollectionName.FromProjectLocationCollection("[PROJECT]", "[LOCATION]", "[COLLECTION]"),
            DataStore = new DataStore(),
            DataStoreId = "",
            CreateAdvancedSiteSearch = false,
            CmekConfigNameAsCmekConfigName = CmekConfigName.FromProjectLocation("[PROJECT]", "[LOCATION]"),
            SkipDefaultSchemaCreation = false,
        };
        // Make the request
        Operation<DataStore, CreateDataStoreMetadata> response = dataStoreServiceClient.CreateDataStore(request);

        // Poll until the returned long-running operation is complete
        Operation<DataStore, CreateDataStoreMetadata> completedResponse = response.PollUntilCompleted();
        // Retrieve the operation result
        DataStore result = completedResponse.Result;

        // Or get the name of the operation
        string operationName = response.Name;
        // This name can be stored, then the long-running operation retrieved later by name
        Operation<DataStore, CreateDataStoreMetadata> retrievedResponse = dataStoreServiceClient.PollOnceCreateDataStore(operationName);
        // Check if the retrieved long-running operation has completed
        if (retrievedResponse.IsCompleted)
        {
            // If it has completed, then access the result
            DataStore retrievedResult = retrievedResponse.Result;
        }
    }
}

Dokumente importieren

using Google.Cloud.DiscoveryEngine.V1;
using Google.LongRunning;
using Google.Protobuf.WellKnownTypes;

public sealed partial class GeneratedDocumentServiceClientSnippets
{
    /// <summary>Snippet for ImportDocuments</summary>
    /// <remarks>
    /// This snippet has been automatically generated and should be regarded as a code template only.
    /// It will require modifications to work:
    /// - It may require correct/in-range values for request initialization.
    /// - It may require specifying regional endpoints when creating the service client as shown in
    ///   https://cloud.google.com/dotnet/docs/reference/help/client-configuration#endpoint.
    /// </remarks>
    public void ImportDocumentsRequestObject()
    {
        // Create client
        DocumentServiceClient documentServiceClient = DocumentServiceClient.Create();
        // Initialize request argument(s)
        ImportDocumentsRequest request = new ImportDocumentsRequest
        {
            ParentAsBranchName = BranchName.FromProjectLocationDataStoreBranch("[PROJECT]", "[LOCATION]", "[DATA_STORE]", "[BRANCH]"),
            InlineSource = new ImportDocumentsRequest.Types.InlineSource(),
            ErrorConfig = new ImportErrorConfig(),
            ReconciliationMode = ImportDocumentsRequest.Types.ReconciliationMode.Unspecified,
            UpdateMask = new FieldMask(),
            AutoGenerateIds = false,
            IdField = "",
            ForceRefreshContent = false,
        };
        // Make the request
        Operation<ImportDocumentsResponse, ImportDocumentsMetadata> response = documentServiceClient.ImportDocuments(request);

        // Poll until the returned long-running operation is complete
        Operation<ImportDocumentsResponse, ImportDocumentsMetadata> completedResponse = response.PollUntilCompleted();
        // Retrieve the operation result
        ImportDocumentsResponse result = completedResponse.Result;

        // Or get the name of the operation
        string operationName = response.Name;
        // This name can be stored, then the long-running operation retrieved later by name
        Operation<ImportDocumentsResponse, ImportDocumentsMetadata> retrievedResponse = documentServiceClient.PollOnceImportDocuments(operationName);
        // Check if the retrieved long-running operation has completed
        if (retrievedResponse.IsCompleted)
        {
            // If it has completed, then access the result
            ImportDocumentsResponse retrievedResult = retrievedResponse.Result;
        }
    }
}

Go

Weitere Informationen finden Sie in der Referenzdokumentation zur Vertex AI Search Go API.

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

Datenspeicher erstellen


package main

import (
	"context"

	discoveryengine "cloud.google.com/go/discoveryengine/apiv1"
	discoveryenginepb "cloud.google.com/go/discoveryengine/apiv1/discoveryenginepb"
)

func main() {
	ctx := context.Background()
	// This snippet has been automatically generated and should be regarded as a code template only.
	// It will require modifications to work:
	// - It may require correct/in-range values for request initialization.
	// - It may require specifying regional endpoints when creating the service client as shown in:
	//   https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options
	c, err := discoveryengine.NewDataStoreClient(ctx)
	if err != nil {
		// TODO: Handle error.
	}
	defer c.Close()

	req := &discoveryenginepb.CreateDataStoreRequest{
		// TODO: Fill request struct fields.
		// See https://pkg.go.dev/cloud.google.com/go/discoveryengine/apiv1/discoveryenginepb#CreateDataStoreRequest.
	}
	op, err := c.CreateDataStore(ctx, req)
	if err != nil {
		// TODO: Handle error.
	}

	resp, err := op.Wait(ctx)
	if err != nil {
		// TODO: Handle error.
	}
	// TODO: Use resp.
	_ = resp
}

Dokumente importieren


package main

import (
	"context"

	discoveryengine "cloud.google.com/go/discoveryengine/apiv1"
	discoveryenginepb "cloud.google.com/go/discoveryengine/apiv1/discoveryenginepb"
)

func main() {
	ctx := context.Background()
	// This snippet has been automatically generated and should be regarded as a code template only.
	// It will require modifications to work:
	// - It may require correct/in-range values for request initialization.
	// - It may require specifying regional endpoints when creating the service client as shown in:
	//   https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options
	c, err := discoveryengine.NewDocumentClient(ctx)
	if err != nil {
		// TODO: Handle error.
	}
	defer c.Close()

	req := &discoveryenginepb.ImportDocumentsRequest{
		// TODO: Fill request struct fields.
		// See https://pkg.go.dev/cloud.google.com/go/discoveryengine/apiv1/discoveryenginepb#ImportDocumentsRequest.
	}
	op, err := c.ImportDocuments(ctx, req)
	if err != nil {
		// TODO: Handle error.
	}

	resp, err := op.Wait(ctx)
	if err != nil {
		// TODO: Handle error.
	}
	// TODO: Use resp.
	_ = resp
}

Java

Weitere Informationen finden Sie in der Referenzdokumentation zur Vertex AI Search Java API.

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

Datenspeicher erstellen

import com.google.cloud.discoveryengine.v1.CollectionName;
import com.google.cloud.discoveryengine.v1.CreateDataStoreRequest;
import com.google.cloud.discoveryengine.v1.DataStore;
import com.google.cloud.discoveryengine.v1.DataStoreServiceClient;

public class SyncCreateDataStore {

  public static void main(String[] args) throws Exception {
    syncCreateDataStore();
  }

  public static void syncCreateDataStore() throws Exception {
    // This snippet has been automatically generated and should be regarded as a code template only.
    // It will require modifications to work:
    // - It may require correct/in-range values for request initialization.
    // - It may require specifying regional endpoints when creating the service client as shown in
    // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
    try (DataStoreServiceClient dataStoreServiceClient = DataStoreServiceClient.create()) {
      CreateDataStoreRequest request =
          CreateDataStoreRequest.newBuilder()
              .setParent(CollectionName.of("[PROJECT]", "[LOCATION]", "[COLLECTION]").toString())
              .setDataStore(DataStore.newBuilder().build())
              .setDataStoreId("dataStoreId929489618")
              .setCreateAdvancedSiteSearch(true)
              .setSkipDefaultSchemaCreation(true)
              .build();
      DataStore response = dataStoreServiceClient.createDataStoreAsync(request).get();
    }
  }
}

Dokumente importieren

import com.google.cloud.discoveryengine.v1.BranchName;
import com.google.cloud.discoveryengine.v1.DocumentServiceClient;
import com.google.cloud.discoveryengine.v1.ImportDocumentsRequest;
import com.google.cloud.discoveryengine.v1.ImportDocumentsResponse;
import com.google.cloud.discoveryengine.v1.ImportErrorConfig;
import com.google.protobuf.FieldMask;

public class SyncImportDocuments {

  public static void main(String[] args) throws Exception {
    syncImportDocuments();
  }

  public static void syncImportDocuments() throws Exception {
    // This snippet has been automatically generated and should be regarded as a code template only.
    // It will require modifications to work:
    // - It may require correct/in-range values for request initialization.
    // - It may require specifying regional endpoints when creating the service client as shown in
    // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
    try (DocumentServiceClient documentServiceClient = DocumentServiceClient.create()) {
      ImportDocumentsRequest request =
          ImportDocumentsRequest.newBuilder()
              .setParent(
                  BranchName.ofProjectLocationDataStoreBranchName(
                          "[PROJECT]", "[LOCATION]", "[DATA_STORE]", "[BRANCH]")
                      .toString())
              .setErrorConfig(ImportErrorConfig.newBuilder().build())
              .setUpdateMask(FieldMask.newBuilder().build())
              .setAutoGenerateIds(true)
              .setIdField("idField1629396127")
              .setForceRefreshContent(true)
              .build();
      ImportDocumentsResponse response = documentServiceClient.importDocumentsAsync(request).get();
    }
  }
}

Node.js

Weitere Informationen finden Sie in der Referenzdokumentation zur Vertex AI Search Node.js API.

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

Datenspeicher erstellen

/**
 * This snippet has been automatically generated and should be regarded as a code template only.
 * It will require modifications to work.
 * It may require correct/in-range values for request initialization.
 * TODO(developer): Uncomment these variables before running the sample.
 */
/**
 *  Resource name of the CmekConfig to use for protecting this DataStore.
 */
// const cmekConfigName = 'abc123'
/**
 *  DataStore without CMEK protections. If a default CmekConfig is set for
 *  the project, setting this field will override the default CmekConfig as
 *  well.
 */
// const disableCmek = true
/**
 *  Required. The parent resource name, such as
 *  `projects/{project}/locations/{location}/collections/{collection}`.
 */
// const parent = 'abc123'
/**
 *  Required. The DataStore google.cloud.discoveryengine.v1.DataStore  to
 *  create.
 */
// const dataStore = {}
/**
 *  Required. The ID to use for the
 *  DataStore google.cloud.discoveryengine.v1.DataStore, which will become
 *  the final component of the
 *  DataStore google.cloud.discoveryengine.v1.DataStore's resource name.
 *  This field must conform to RFC-1034 (https://tools.ietf.org/html/rfc1034)
 *  standard with a length limit of 63 characters. Otherwise, an
 *  INVALID_ARGUMENT error is returned.
 */
// const dataStoreId = 'abc123'
/**
 *  A boolean flag indicating whether user want to directly create an advanced
 *  data store for site search.
 *  If the data store is not configured as site
 *  search (GENERIC vertical and PUBLIC_WEBSITE content_config), this flag will
 *  be ignored.
 */
// const createAdvancedSiteSearch = true
/**
 *  A boolean flag indicating whether to skip the default schema creation for
 *  the data store. Only enable this flag if you are certain that the default
 *  schema is incompatible with your use case.
 *  If set to true, you must manually create a schema for the data store before
 *  any documents can be ingested.
 *  This flag cannot be specified if `data_store.starting_schema` is specified.
 */
// const skipDefaultSchemaCreation = true

// Imports the Discoveryengine library
const {DataStoreServiceClient} = require('@google-cloud/discoveryengine').v1;

// Instantiates a client
const discoveryengineClient = new DataStoreServiceClient();

async function callCreateDataStore() {
  // Construct request
  const request = {
    parent,
    dataStore,
    dataStoreId,
  };

  // Run request
  const [operation] = await discoveryengineClient.createDataStore(request);
  const [response] = await operation.promise();
  console.log(response);
}

callCreateDataStore();

Dokumente importieren

/**
 * This snippet has been automatically generated and should be regarded as a code template only.
 * It will require modifications to work.
 * It may require correct/in-range values for request initialization.
 * TODO(developer): Uncomment these variables before running the sample.
 */
/**
 *  The Inline source for the input content for documents.
 */
// const inlineSource = {}
/**
 *  Cloud Storage location for the input content.
 */
// const gcsSource = {}
/**
 *  BigQuery input source.
 */
// const bigquerySource = {}
/**
 *  FhirStore input source.
 */
// const fhirStoreSource = {}
/**
 *  Spanner input source.
 */
// const spannerSource = {}
/**
 *  Cloud SQL input source.
 */
// const cloudSqlSource = {}
/**
 *  Firestore input source.
 */
// const firestoreSource = {}
/**
 *  AlloyDB input source.
 */
// const alloyDbSource = {}
/**
 *  Cloud Bigtable input source.
 */
// const bigtableSource = {}
/**
 *  Required. The parent branch resource name, such as
 *  `projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}/branches/{branch}`.
 *  Requires create/update permission.
 */
// const parent = 'abc123'
/**
 *  The desired location of errors incurred during the Import.
 */
// const errorConfig = {}
/**
 *  The mode of reconciliation between existing documents and the documents to
 *  be imported. Defaults to
 *  ReconciliationMode.INCREMENTAL google.cloud.discoveryengine.v1.ImportDocumentsRequest.ReconciliationMode.INCREMENTAL.
 */
// const reconciliationMode = {}
/**
 *  Indicates which fields in the provided imported documents to update. If
 *  not set, the default is to update all fields.
 */
// const updateMask = {}
/**
 *  Whether to automatically generate IDs for the documents if absent.
 *  If set to `true`,
 *  Document.id google.cloud.discoveryengine.v1.Document.id s are
 *  automatically generated based on the hash of the payload, where IDs may not
 *  be consistent during multiple imports. In which case
 *  ReconciliationMode.FULL google.cloud.discoveryengine.v1.ImportDocumentsRequest.ReconciliationMode.FULL 
 *  is highly recommended to avoid duplicate contents. If unset or set to
 *  `false`, Document.id google.cloud.discoveryengine.v1.Document.id s have
 *  to be specified using
 *  id_field google.cloud.discoveryengine.v1.ImportDocumentsRequest.id_field,
 *  otherwise, documents without IDs fail to be imported.
 *  Supported data sources:
 *  * GcsSource google.cloud.discoveryengine.v1.GcsSource.
 *  GcsSource.data_schema google.cloud.discoveryengine.v1.GcsSource.data_schema 
 *  must be `custom` or `csv`. Otherwise, an INVALID_ARGUMENT error is thrown.
 *  * BigQuerySource google.cloud.discoveryengine.v1.BigQuerySource.
 *  BigQuerySource.data_schema google.cloud.discoveryengine.v1.BigQuerySource.data_schema 
 *  must be `custom` or `csv`. Otherwise, an INVALID_ARGUMENT error is thrown.
 *  * SpannerSource google.cloud.discoveryengine.v1.SpannerSource.
 *  * CloudSqlSource google.cloud.discoveryengine.v1.CloudSqlSource.
 *  * FirestoreSource google.cloud.discoveryengine.v1.FirestoreSource.
 *  * BigtableSource google.cloud.discoveryengine.v1.BigtableSource.
 */
// const autoGenerateIds = true
/**
 *  The field indicates the ID field or column to be used as unique IDs of
 *  the documents.
 *  For GcsSource google.cloud.discoveryengine.v1.GcsSource  it is the key of
 *  the JSON field. For instance, `my_id` for JSON `{"my_id": "some_uuid"}`.
 *  For others, it may be the column name of the table where the unique ids are
 *  stored.
 *  The values of the JSON field or the table column are used as the
 *  Document.id google.cloud.discoveryengine.v1.Document.id s. The JSON field
 *  or the table column must be of string type, and the values must be set as
 *  valid strings conform to RFC-1034 (https://tools.ietf.org/html/rfc1034)
 *  with 1-63 characters. Otherwise, documents without valid IDs fail to be
 *  imported.
 *  Only set this field when
 *  auto_generate_ids google.cloud.discoveryengine.v1.ImportDocumentsRequest.auto_generate_ids 
 *  is unset or set as `false`. Otherwise, an INVALID_ARGUMENT error is thrown.
 *  If it is unset, a default value `_id` is used when importing from the
 *  allowed data sources.
 *  Supported data sources:
 *  * GcsSource google.cloud.discoveryengine.v1.GcsSource.
 *  GcsSource.data_schema google.cloud.discoveryengine.v1.GcsSource.data_schema 
 *  must be `custom` or `csv`. Otherwise, an INVALID_ARGUMENT error is thrown.
 *  * BigQuerySource google.cloud.discoveryengine.v1.BigQuerySource.
 *  BigQuerySource.data_schema google.cloud.discoveryengine.v1.BigQuerySource.data_schema 
 *  must be `custom` or `csv`. Otherwise, an INVALID_ARGUMENT error is thrown.
 *  * SpannerSource google.cloud.discoveryengine.v1.SpannerSource.
 *  * CloudSqlSource google.cloud.discoveryengine.v1.CloudSqlSource.
 *  * FirestoreSource google.cloud.discoveryengine.v1.FirestoreSource.
 *  * BigtableSource google.cloud.discoveryengine.v1.BigtableSource.
 */
// const idField = 'abc123'
/**
 *  Optional. Whether to force refresh the unstructured content of the
 *  documents.
 *  If set to `true`, the content part of the documents will be refreshed
 *  regardless of the update status of the referencing content.
 */
// const forceRefreshContent = true

// Imports the Discoveryengine library
const {DocumentServiceClient} = require('@google-cloud/discoveryengine').v1;

// Instantiates a client
const discoveryengineClient = new DocumentServiceClient();

async function callImportDocuments() {
  // Construct request
  const request = {
    parent,
  };

  // Run request
  const [operation] = await discoveryengineClient.importDocuments(request);
  const [response] = await operation.promise();
  console.log(response);
}

callImportDocuments();

Python

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

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

Datenspeicher erstellen


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"


def create_data_store_sample(
    project_id: str,
    location: str,
    data_store_id: str,
) -> str:
    #  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.DataStoreServiceClient(client_options=client_options)

    # The full resource name of the collection
    # e.g. projects/{project}/locations/{location}/collections/default_collection
    parent = client.collection_path(
        project=project_id,
        location=location,
        collection="default_collection",
    )

    data_store = discoveryengine.DataStore(
        display_name="My Data Store",
        # Options: GENERIC, MEDIA, HEALTHCARE_FHIR
        industry_vertical=discoveryengine.IndustryVertical.GENERIC,
        # Options: SOLUTION_TYPE_RECOMMENDATION, SOLUTION_TYPE_SEARCH, SOLUTION_TYPE_CHAT, SOLUTION_TYPE_GENERATIVE_CHAT
        solution_types=[discoveryengine.SolutionType.SOLUTION_TYPE_SEARCH],
        # TODO(developer): Update content_config based on data store type.
        # Options: NO_CONTENT, CONTENT_REQUIRED, PUBLIC_WEBSITE
        content_config=discoveryengine.DataStore.ContentConfig.CONTENT_REQUIRED,
    )

    request = discoveryengine.CreateDataStoreRequest(
        parent=parent,
        data_store_id=data_store_id,
        data_store=data_store,
        # Optional: For Advanced Site Search Only
        # create_advanced_site_search=True,
    )

    # Make the request
    operation = client.create_data_store(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.CreateDataStoreMetadata(operation.metadata)

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

    return operation.operation.name

Dokumente importieren


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)

Ruby

Weitere Informationen finden Sie in der Referenzdokumentation zur Vertex AI Search Ruby API.

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

Datenspeicher erstellen

require "google/cloud/discovery_engine/v1"

##
# Snippet for the create_data_store call in the DataStoreService service
#
# This snippet has been automatically generated and should be regarded as a code
# template only. It will require modifications to work:
# - It may require correct/in-range values for request initialization.
# - It may require specifying regional endpoints when creating the service
# client as shown in https://cloud.google.com/ruby/docs/reference.
#
# This is an auto-generated example demonstrating basic usage of
# Google::Cloud::DiscoveryEngine::V1::DataStoreService::Client#create_data_store.
#
def create_data_store
  # Create a client object. The client can be reused for multiple calls.
  client = Google::Cloud::DiscoveryEngine::V1::DataStoreService::Client.new

  # Create a request. To set request fields, pass in keyword arguments.
  request = Google::Cloud::DiscoveryEngine::V1::CreateDataStoreRequest.new

  # Call the create_data_store method.
  result = client.create_data_store request

  # The returned object is of type Gapic::Operation. You can use it to
  # check the status of an operation, cancel it, or wait for results.
  # Here is how to wait for a response.
  result.wait_until_done! timeout: 60
  if result.response?
    p result.response
  else
    puts "No response received."
  end
end

Dokumente importieren

require "google/cloud/discovery_engine/v1"

##
# Snippet for the import_documents call in the DocumentService service
#
# This snippet has been automatically generated and should be regarded as a code
# template only. It will require modifications to work:
# - It may require correct/in-range values for request initialization.
# - It may require specifying regional endpoints when creating the service
# client as shown in https://cloud.google.com/ruby/docs/reference.
#
# This is an auto-generated example demonstrating basic usage of
# Google::Cloud::DiscoveryEngine::V1::DocumentService::Client#import_documents.
#
def import_documents
  # Create a client object. The client can be reused for multiple calls.
  client = Google::Cloud::DiscoveryEngine::V1::DocumentService::Client.new

  # Create a request. To set request fields, pass in keyword arguments.
  request = Google::Cloud::DiscoveryEngine::V1::ImportDocumentsRequest.new

  # Call the import_documents method.
  result = client.import_documents request

  # The returned object is of type Gapic::Operation. You can use it to
  # check the status of an operation, cancel it, or wait for results.
  # Here is how to wait for a response.
  result.wait_until_done! timeout: 60
  if result.response?
    p result.response
  else
    puts "No response received."
  end
end

Mit BigQuery verbinden und regelmäßig synchronisieren

Lesen Sie vor dem Importieren der Daten, wie Sie Daten für die Aufnahme vorbereiten.

In der folgenden Anleitung wird beschrieben, wie Sie einen Daten-Connector erstellen, der ein BigQuery-Dataset mit einem Vertex AI Search-Daten-Connector verknüpft, und eine Tabelle im Dataset für jeden zu erstellenden Datenspeicher angeben. Datenspeicher, die untergeordnete Elemente von Daten-Connectors sind, werden als Entitätsdatenspeicher bezeichnet.

Die Daten aus dem Dataset werden regelmäßig mit den Entitätsdatenspeichern synchronisiert. Sie können festlegen, dass die Daten täglich, alle drei Tage oder alle fünf Tage synchronisiert werden sollen.

Console

So erstellen Sie mit der Google Cloud Console einen Connector, der Daten aus einem BigQuery-Dataset regelmäßig mit Vertex AI Search synchronisiert:

  1. Rufen Sie in der Google Cloud Console die Seite KI-Anwendungen auf.

    KI-Anwendungen

  2. Klicken Sie im Navigationsmenü auf Datenspeicher.

  3. Klicken Sie auf Datenspeicher erstellen.

  4. Wählen Sie auf der Seite Quelle die Option BigQuery aus.

  5. Wählen Sie aus, welche Art von Daten Sie importieren möchten.

  6. Klicken Sie auf Regelmäßig.

  7. Wählen Sie die Häufigkeit der Synchronisierung aus, um festzulegen, wie oft der Vertex AI Search-Connector mit dem BigQuery-Dataset synchronisiert werden soll. Sie können die Häufigkeit später ändern.

  8. Klicken Sie im Feld BigQuery-Datasetpfad auf Durchsuchen und wählen Sie das Dataset aus, das die Tabellen enthält, die Sie für die Aufnahme vorbereitet haben. Alternativ können Sie den Tabellenspeicherort direkt in das Feld BigQuery-Pfad eingeben. Das Format für den Pfad ist projectname.datasetname.

  9. Klicken Sie im Feld Zu synchronisierende Tabellen auf Durchsuchen und wählen Sie dann eine Tabelle mit den Daten aus, die Sie für Ihren Datenspeicher benötigen.

  10. Wenn das Dataset weitere Tabellen enthält, die Sie für Datenspeicher verwenden möchten, klicken Sie auf Tabelle hinzufügen und geben Sie auch diese Tabellen an.

  11. Klicken Sie auf Weiter.

  12. Wählen Sie eine Region für den Datenspeicher aus, geben Sie einen Namen für den Daten-Connector ein und klicken Sie auf Erstellen.

    Sie haben jetzt einen Daten-Connector erstellt, der Daten regelmäßig mit dem BigQuery-Dataset synchronisiert. Außerdem haben Sie einen oder mehrere Entitätsdatenspeicher erstellt. Die Datenspeicher haben dieselben Namen wie die BigQuery-Tabellen.

  13. Wenn Sie den Status der Aufnahme prüfen möchten, rufen Sie die Seite Datenspeicher auf und klicken Sie auf den Namen des Daten-Connectors, um Details dazu auf der Seite Daten > Tab Aktivität bei der Datenaufnahme anzeigen zu lassen. Wenn sich die Statusspalte auf dem Tab Aktivität von In Bearbeitung zu Erfolgreich ändert, ist die erste Aufnahme abgeschlossen.

    Abhängig von der Größe der Daten kann die Datenaufnahme einige Minuten bis mehrere Stunden dauern.

Nachdem Sie Ihre Datenquelle eingerichtet und Daten zum ersten Mal importiert haben, synchronisiert der Datenspeicher Daten aus dieser Quelle in der Häufigkeit, die Sie bei der Einrichtung ausgewählt haben. Etwa eine Stunde nach dem Erstellen des Daten-Connectors erfolgt die erste Synchronisierung. Die nächste Synchronisierung findet dann etwa 24, 72 oder 120 Stunden später statt.

Nächste Schritte

  • Wenn Sie Ihren Datenspeicher an eine App anhängen möchten, erstellen Sie die App und wählen Sie Ihren Datenspeicher aus. Folgen Sie dazu der Anleitung unter Such-App erstellen.

  • Weitere Informationen zur Vorschau der Suchergebnisse nach Erstellung der App und des Datenspeichers.

Aus Cloud Storage importieren

Sie haben zwei Möglichkeiten, Datenspeicher aus Cloud Storage-Tabellen zu erstellen:

  • Einmalige Aufnahme: Sie importieren Daten aus einem Cloud Storage-Ordner oder einer Cloud Storage-Datei in einen Datenspeicher. Die Daten im Datenspeicher ändern sich nur, wenn Sie die Daten manuell aktualisieren.

  • Regelmäßige Aufnahme: Sie importieren Daten aus einem Cloud Storage-Ordner oder einer Cloud Storage-Datei und legen eine Synchronisierungshäufigkeit fest. Diese bestimmt, wie oft der Datenspeicher mit den neuesten Daten aus diesem Cloud Storage-Speicherort aktualisiert wird.

In der folgenden Tabelle werden die beiden Optionen für den Import von Cloud Storage-Daten in Vertex AI Search-Datenspeicher verglichen.

Einmalige Aufnahme Regelmäßige Aufnahme
Allgemein verfügbar (GA). Öffentliche Vorschau.
Daten müssen manuell aktualisiert werden. Daten werden automatisch alle ein, drei oder fünf Tage aktualisiert. Daten können nicht manuell aktualisiert werden.
Vertex AI Search erstellt aus einem Ordner oder einer Datei in Cloud Storage einen einzelnen Datenspeicher. Vertex AI Search erstellt einen Daten-Connector und verknüpft ihn für die angegebene Datei oder den angegebenen Ordner mit einem Datenspeicher (Entitätsdatenspeicher genannt). Jeder Cloud Storage-Daten-Connector kann einen Entitätsdatenspeicher haben.
Sie können Daten aus mehreren Dateien, Ordnern und Buckets in einem Datenspeicher ablegen. Dafür müssen Sie zuerst Daten von einem Cloud Storage-Speicherort und dann weitere Daten von einem anderen Speicherort aufnehmen. Da ein manueller Datenimport nicht unterstützt wird, müssen die Daten in einem Entitätsdatenspeicher aus einer Cloud Storage-Datei oder einem Cloud Storage-Ordner stammen.
Für Datenquellen wird Zugriffssteuerung unterstützt. Weitere Informationen zur Zugriffssteuerung für Datenquellen Für Datenquellen wird keine Zugriffssteuerung unterstützt. Die importierten Daten können zwar Zugriffssteuerungen enthalten, diese werden jedoch nicht berücksichtigt.
Sie können einen Datenspeicher entweder über dieGoogle Cloud Console oder die API erstellen. Um Daten-Connectors und die zugehörigen Entitätsdatenspeicher zu erstellen, müssen Sie die Console verwenden.
CMEK-konform. CMEK-konform.

Einmalig aus Cloud Storage importieren

Führen Sie folgende Schritte aus, um einen Datenspeicher zu erstellen und Daten aus Cloud Storage entweder über die Google Cloud Console oder die API aufzunehmen.

Lesen Sie vor dem Importieren der Daten, wie Sie Daten für die Aufnahme vorbereiten.

Console

So verwenden Sie die Console, um Daten aus einem Cloud Storage-Bucket aufzunehmen:

  1. Rufen Sie in der Google Cloud Console die Seite KI-Anwendungen auf.

    KI-Anwendungen

  2. Rufen Sie die Seite Datenspeicher auf.

  3. Klicken Sie auf Datenspeicher erstellen.

  4. Wählen Sie auf der Seite Quelle die Option Cloud Storage aus.

  5. Wählen Sie im Bereich Ordner oder Datei für Import auswählen die Option Ordner oder Datei aus.

  6. Klicken Sie auf Durchsuchen, wählen Sie die Daten aus, die Sie für die Aufnahme vorbereitet haben, und klicken Sie dann auf Auswählen. Alternativ können Sie den Speicherort direkt in das Feld gs:// eingeben.

  7. Wählen Sie aus, welche Art von Daten Sie importieren möchten.

  8. Klicken Sie auf Weiter.

  9. Wenn Sie strukturierte Daten einmalig importieren:

    1. Ordnen Sie Felder den wichtigsten Eigenschaften zu.

    2. Sollten wichtige Felder im Schema fehlen, fügen Sie sie über Neues Feld hinzufügen hinzu.

      Weitere Informationen zur automatischen Erkennung und Bearbeitung

    3. Klicken Sie auf Weiter.

  10. Wählen Sie eine Region für Ihren Datenspeicher aus.

  11. Geben Sie einen Namen für den Datenspeicher ein.

  12. Optional: Wenn Sie unstrukturierte Dokumente ausgewählt haben, können Sie für die Dokumente Optionen für das Parsen und Aufteilen in Blöcke festlegen. Weitere Informationen zum Parsen von Dokumenten. Weitere Informationen zum Aufteilen von Dokumenten für RAG in Blöcke.

    Für den OCR-Parser und den Layout-Parser können zusätzliche Kosten anfallen. Preise für Document AI-Funktionen

    Wenn Sie einen Parser auswählen möchten, maximieren Sie Dokumentverarbeitungsoptionen und geben Sie die gewünschten Parser-Optionen an.

  13. Klicken Sie auf Erstellen.

  14. Wenn Sie den Status der Aufnahme überprüfen möchten, rufen Sie die Seite Datenspeicher auf und klicken Sie auf den Namen des Datenspeichers. Dadurch werden die Details auf der Seite Daten angezeigt. Wenn sich die Statusspalte auf dem Tab Aktivität von In Bearbeitung zu Import abgeschlossen ändert, ist die Aufnahme abgeschlossen.

    Je nach Größe der Daten kann die Datenaufnahme einige Minuten bis mehrere Stunden dauern.

REST

So erstellen Sie einen Datenspeicher über die Befehlszeile und nehmen Daten aus Cloud Storage auf:

  1. Erstellen Sie einen Datenspeicher.

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -H "X-Goog-User-Project: PROJECT_ID" \
    "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores?dataStoreId=DATA_STORE_ID" \
    -d '{
      "displayName": "DATA_STORE_DISPLAY_NAME",
      "industryVertical": "GENERIC",
      "solutionTypes": ["SOLUTION_TYPE_SEARCH"]
    }'
    

    Ersetzen Sie Folgendes:

    • PROJECT_ID: Die ID Ihres Projekts in Google Cloud .
    • DATA_STORE_ID: Die ID des Vertex AI Search-Datenspeichers, den Sie erstellen möchten. Diese ID darf nur Kleinbuchstaben, Ziffern, Unterstriche und Bindestriche enthalten.
    • DATA_STORE_DISPLAY_NAME: Der Anzeigename des Vertex AI Search-Datenspeichers, den Sie erstellen möchten.

    Optional: Wenn Sie unstrukturierte Daten hochladen und das Parsen von Dokumenten konfigurieren oder das Aufteilen von Dokumenten für RAG aktivieren möchten, geben Sie das Objekt documentProcessingConfig an und fügen Sie es in Ihre Anfrage zum Erstellen des Datenspeichers ein. Es empfiehlt sich, zur Aufnahme eines gescannten PDFs einen OCR-Parser für PDFs zu konfigurieren. Weitere Informationen zum Konfigurieren von Optionen für das Parsen und Aufteilen in Blöcke.

  2. Importieren Sie Daten aus Cloud Storage.

      curl -X POST \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID/branches/0/documents:import" \
      -d '{
        "gcsSource": {
          "inputUris": ["INPUT_FILE_PATTERN_1", "INPUT_FILE_PATTERN_2"],
          "dataSchema": "DATA_SCHEMA",
        },
        "reconciliationMode": "RECONCILIATION_MODE",
        "autoGenerateIds": "AUTO_GENERATE_IDS",
        "idField": "ID_FIELD",
        "errorConfig": {
          "gcsPrefix": "ERROR_DIRECTORY"
        }
      }'
    

    Ersetzen Sie Folgendes:

    • PROJECT_ID: Die ID Ihres Projekts in Google Cloud .
    • DATA_STORE_ID: die ID des Vertex AI Search-Datenspeichers.
    • INPUT_FILE_PATTERN: Ein Dateimuster in Cloud Storage, das Ihre Dokumente enthält.

      Für strukturierte Daten bzw. unstrukturierte Daten mit Metadaten ist das Eingabedateimuster beispielsweise gs://<your-gcs-bucket>/directory/object.json. Für eine oder mehrere mit dem Muster übereinstimmende Datei(en) ist das Eingabedateimuster beispielsweise gs://<your-gcs-bucket>/directory/*.json.

      Ein Beispiel für unstrukturierte Dokumente ist gs://<your-gcs-bucket>/directory/*.pdf. Jede Datei, die dem Muster entspricht, wird zu einem Dokument.

      Wenn <your-gcs-bucket> nicht unter PROJECT_ID aufgeführt ist, müssen Sie dem Dienstkonto service-<project number>@gcp-sa-discoveryengine.iam.gserviceaccount.com die Berechtigung „Storage Object Viewer“ für den Cloud Storage-Bucket gewähren. Wenn Sie beispielsweise einen Cloud Storage-Bucket aus dem Quellprojekt „123“ in das Zielprojekt „456“ importieren, gewähren Sie service-456@gcp-sa-discoveryengine.iam.gserviceaccount.com im Projekt „123“ Berechtigungen für den Cloud Storage-Bucket.

    • DATA_SCHEMA: Optional. Mögliche Werte sind document, custom, csv und content. Der Standardwert ist document.

      • document: Lädt unstrukturierte Daten mit Metadaten für unstrukturierte Dokumente hoch. Jede Zeile der Datei muss eines der folgenden Formate haben. Sie können für jedes Dokument die ID definieren:

        • { "id": "<your-id>", "jsonData": "<JSON string>", "content": { "mimeType": "<application/pdf or text/html>", "uri": "gs://<your-gcs-bucket>/directory/filename.pdf" } }
        • { "id": "<your-id>", "structData": <JSON object>, "content": { "mimeType": "<application/pdf or text/html>", "uri": "gs://<your-gcs-bucket>/directory/filename.pdf" } }
      • custom: Lädt JSON für strukturierte Dokumente hoch. Die Daten sind nach einem Schema angeordnet. Sie können das Schema angeben; andernfalls wird es automatisch erkannt. Sie können den JSON-String des Dokuments in einem einheitlichen Format direkt in jede Zeile einfügen. Vertex AI Search generiert dann automatisch die IDs für jedes importierte Dokument.

      • content: Lädt unstrukturierte Dokumente (PDF, HTML, DOC, TXT, PPTX) hoch. Die ID jedes Dokuments wird automatisch als die ersten 128 Bit von SHA256(GCS_URI) generiert und als Hexadezimalstring codiert. Sie können mehrere Eingabedateimuster angeben, sofern nicht mehr als maximal 100.000 übereinstimmende Dateien erkannt werden.

      • csv: Fügt CSV-Dateien eine Kopfzeile hinzu, wobei jede Kopfzeile einem Dokumentfeld zugeordnet ist. Geben Sie den Pfad zur CSV-Datei mit dem Feld inputUris an.

    • ERROR_DIRECTORY: Optional. Ein Cloud Storage-Verzeichnis für Fehlerinformationen zum Import, z. B. gs://<your-gcs-bucket>/directory/import_errors. Google empfiehlt, dieses Feld leer zu lassen, damit Vertex AI Search automatisch ein temporäres Verzeichnis erstellen kann.

    • RECONCILIATION_MODE: optional. Mögliche Werte sind FULL und INCREMENTAL. Der Standardwert ist INCREMENTAL. Wenn Sie INCREMENTAL angeben, werden die Daten aus Cloud Storage in Ihrem Datenspeicher inkrementell aktualisiert. Dabei wird ein Upsert-Vorgang ausgeführt, bei dem neue Dokumente hinzugefügt und vorhandene Dokumente durch aktualisierte Dokumente mit derselben ID ersetzt werden. Wenn Sie FULL angeben, werden die Dokumente in Ihrem Datenspeicher vollständig neu synchronisiert. Das bedeutet, dass dem Datenspeicher neue und aktualisierte Dokumente hinzugefügt und Dokumente, die nicht in Cloud Storage enthalten sind, aus dem Datenspeicher entfernt werden. Der Modus FULL ist hilfreich, wenn Sie nicht mehr benötigte Dokumente automatisch löschen lassen möchten.

    • AUTO_GENERATE_IDS: Optional. Gibt an, ob Dokument-IDs automatisch generiert werden sollen. Wenn dieser Wert auf true gesetzt ist, werden die Dokument-IDs auf Grundlage eines Nutzlast-Hash generiert. Beachten Sie, dass generierte Dokument-IDs bei mehreren Importvorgängen möglicherweise nicht gleich bleiben. Wenn Sie bei mehreren Importvorgängen IDs automatisch generieren, empfiehlt Google dringend, reconciliationMode auf FULL festzulegen, um einheitliche Dokument-IDs beizubehalten.

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

    • ID_FIELD: Optional. Gibt an, welche Felder die Dokument-IDs enthalten. Bei Cloud Storage-Quelldokumenten werden mit idField die Namen in den JSON-Feldern angegeben, die die Dokument-IDs enthalten. Wenn in einem Ihrer Dokumente beispielsweise {"my_id":"some_uuid"} das Feld mit der Dokument-ID ist, geben Sie "idField":"my_id" an. Dadurch werden alle JSON-Felder mit dem Namen "my_id" als Dokument-IDs identifiziert.

      Geben Sie dieses Feld nur an, wenn (1) gcsSource.dataSchema auf custom oder csv und (2) auto_generate_ids auf false festgelegt oder nicht angegeben ist. Andernfalls wird der Fehler INVALID_ARGUMENT zurückgegeben.

      Der Wert des Cloud Storage-JSON-Felds muss vom Typ „String“ sein, zwischen 1 und 63 Zeichen lang sein und RFC-1034 entsprechen. Andernfalls können die Dokumente nicht importiert werden.

      Der mit id_field angegebene JSON-Feldname muss vom Typ „string“ mit einer Länge zwischen 1 und 63 Zeichen sein und RFC-1034 entsprechen. Andernfalls können die Dokumente nicht importiert werden.

C#

Weitere Informationen finden Sie in der Referenzdokumentation zur Vertex AI Search C# API.

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

Datenspeicher erstellen

using Google.Cloud.DiscoveryEngine.V1;
using Google.LongRunning;

public sealed partial class GeneratedDataStoreServiceClientSnippets
{
    /// <summary>Snippet for CreateDataStore</summary>
    /// <remarks>
    /// This snippet has been automatically generated and should be regarded as a code template only.
    /// It will require modifications to work:
    /// - It may require correct/in-range values for request initialization.
    /// - It may require specifying regional endpoints when creating the service client as shown in
    ///   https://cloud.google.com/dotnet/docs/reference/help/client-configuration#endpoint.
    /// </remarks>
    public void CreateDataStoreRequestObject()
    {
        // Create client
        DataStoreServiceClient dataStoreServiceClient = DataStoreServiceClient.Create();
        // Initialize request argument(s)
        CreateDataStoreRequest request = new CreateDataStoreRequest
        {
            ParentAsCollectionName = CollectionName.FromProjectLocationCollection("[PROJECT]", "[LOCATION]", "[COLLECTION]"),
            DataStore = new DataStore(),
            DataStoreId = "",
            CreateAdvancedSiteSearch = false,
            CmekConfigNameAsCmekConfigName = CmekConfigName.FromProjectLocation("[PROJECT]", "[LOCATION]"),
            SkipDefaultSchemaCreation = false,
        };
        // Make the request
        Operation<DataStore, CreateDataStoreMetadata> response = dataStoreServiceClient.CreateDataStore(request);

        // Poll until the returned long-running operation is complete
        Operation<DataStore, CreateDataStoreMetadata> completedResponse = response.PollUntilCompleted();
        // Retrieve the operation result
        DataStore result = completedResponse.Result;

        // Or get the name of the operation
        string operationName = response.Name;
        // This name can be stored, then the long-running operation retrieved later by name
        Operation<DataStore, CreateDataStoreMetadata> retrievedResponse = dataStoreServiceClient.PollOnceCreateDataStore(operationName);
        // Check if the retrieved long-running operation has completed
        if (retrievedResponse.IsCompleted)
        {
            // If it has completed, then access the result
            DataStore retrievedResult = retrievedResponse.Result;
        }
    }
}

Dokumente importieren

using Google.Cloud.DiscoveryEngine.V1;
using Google.LongRunning;
using Google.Protobuf.WellKnownTypes;

public sealed partial class GeneratedDocumentServiceClientSnippets
{
    /// <summary>Snippet for ImportDocuments</summary>
    /// <remarks>
    /// This snippet has been automatically generated and should be regarded as a code template only.
    /// It will require modifications to work:
    /// - It may require correct/in-range values for request initialization.
    /// - It may require specifying regional endpoints when creating the service client as shown in
    ///   https://cloud.google.com/dotnet/docs/reference/help/client-configuration#endpoint.
    /// </remarks>
    public void ImportDocumentsRequestObject()
    {
        // Create client
        DocumentServiceClient documentServiceClient = DocumentServiceClient.Create();
        // Initialize request argument(s)
        ImportDocumentsRequest request = new ImportDocumentsRequest
        {
            ParentAsBranchName = BranchName.FromProjectLocationDataStoreBranch("[PROJECT]", "[LOCATION]", "[DATA_STORE]", "[BRANCH]"),
            InlineSource = new ImportDocumentsRequest.Types.InlineSource(),
            ErrorConfig = new ImportErrorConfig(),
            ReconciliationMode = ImportDocumentsRequest.Types.ReconciliationMode.Unspecified,
            UpdateMask = new FieldMask(),
            AutoGenerateIds = false,
            IdField = "",
            ForceRefreshContent = false,
        };
        // Make the request
        Operation<ImportDocumentsResponse, ImportDocumentsMetadata> response = documentServiceClient.ImportDocuments(request);

        // Poll until the returned long-running operation is complete
        Operation<ImportDocumentsResponse, ImportDocumentsMetadata> completedResponse = response.PollUntilCompleted();
        // Retrieve the operation result
        ImportDocumentsResponse result = completedResponse.Result;

        // Or get the name of the operation
        string operationName = response.Name;
        // This name can be stored, then the long-running operation retrieved later by name
        Operation<ImportDocumentsResponse, ImportDocumentsMetadata> retrievedResponse = documentServiceClient.PollOnceImportDocuments(operationName);
        // Check if the retrieved long-running operation has completed
        if (retrievedResponse.IsCompleted)
        {
            // If it has completed, then access the result
            ImportDocumentsResponse retrievedResult = retrievedResponse.Result;
        }
    }
}

Go

Weitere Informationen finden Sie in der Referenzdokumentation zur Vertex AI Search Go API.

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

Datenspeicher erstellen


package main

import (
	"context"

	discoveryengine "cloud.google.com/go/discoveryengine/apiv1"
	discoveryenginepb "cloud.google.com/go/discoveryengine/apiv1/discoveryenginepb"
)

func main() {
	ctx := context.Background()
	// This snippet has been automatically generated and should be regarded as a code template only.
	// It will require modifications to work:
	// - It may require correct/in-range values for request initialization.
	// - It may require specifying regional endpoints when creating the service client as shown in:
	//   https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options
	c, err := discoveryengine.NewDataStoreClient(ctx)
	if err != nil {
		// TODO: Handle error.
	}
	defer c.Close()

	req := &discoveryenginepb.CreateDataStoreRequest{
		// TODO: Fill request struct fields.
		// See https://pkg.go.dev/cloud.google.com/go/discoveryengine/apiv1/discoveryenginepb#CreateDataStoreRequest.
	}
	op, err := c.CreateDataStore(ctx, req)
	if err != nil {
		// TODO: Handle error.
	}

	resp, err := op.Wait(ctx)
	if err != nil {
		// TODO: Handle error.
	}
	// TODO: Use resp.
	_ = resp
}

Dokumente importieren


package main

import (
	"context"

	discoveryengine "cloud.google.com/go/discoveryengine/apiv1"
	discoveryenginepb "cloud.google.com/go/discoveryengine/apiv1/discoveryenginepb"
)

func main() {
	ctx := context.Background()
	// This snippet has been automatically generated and should be regarded as a code template only.
	// It will require modifications to work:
	// - It may require correct/in-range values for request initialization.
	// - It may require specifying regional endpoints when creating the service client as shown in:
	//   https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options
	c, err := discoveryengine.NewDocumentClient(ctx)
	if err != nil {
		// TODO: Handle error.
	}
	defer c.Close()

	req := &discoveryenginepb.ImportDocumentsRequest{
		// TODO: Fill request struct fields.
		// See https://pkg.go.dev/cloud.google.com/go/discoveryengine/apiv1/discoveryenginepb#ImportDocumentsRequest.
	}
	op, err := c.ImportDocuments(ctx, req)
	if err != nil {
		// TODO: Handle error.
	}

	resp, err := op.Wait(ctx)
	if err != nil {
		// TODO: Handle error.
	}
	// TODO: Use resp.
	_ = resp
}

Java

Weitere Informationen finden Sie in der Referenzdokumentation zur Vertex AI Search Java API.

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

Datenspeicher erstellen

import com.google.cloud.discoveryengine.v1.CollectionName;
import com.google.cloud.discoveryengine.v1.CreateDataStoreRequest;
import com.google.cloud.discoveryengine.v1.DataStore;
import com.google.cloud.discoveryengine.v1.DataStoreServiceClient;

public class SyncCreateDataStore {

  public static void main(String[] args) throws Exception {
    syncCreateDataStore();
  }

  public static void syncCreateDataStore() throws Exception {
    // This snippet has been automatically generated and should be regarded as a code template only.
    // It will require modifications to work:
    // - It may require correct/in-range values for request initialization.
    // - It may require specifying regional endpoints when creating the service client as shown in
    // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
    try (DataStoreServiceClient dataStoreServiceClient = DataStoreServiceClient.create()) {
      CreateDataStoreRequest request =
          CreateDataStoreRequest.newBuilder()
              .setParent(CollectionName.of("[PROJECT]", "[LOCATION]", "[COLLECTION]").toString())
              .setDataStore(DataStore.newBuilder().build())
              .setDataStoreId("dataStoreId929489618")
              .setCreateAdvancedSiteSearch(true)
              .setSkipDefaultSchemaCreation(true)
              .build();
      DataStore response = dataStoreServiceClient.createDataStoreAsync(request).get();
    }
  }
}

Dokumente importieren

import com.google.cloud.discoveryengine.v1.BranchName;
import com.google.cloud.discoveryengine.v1.DocumentServiceClient;
import com.google.cloud.discoveryengine.v1.ImportDocumentsRequest;
import com.google.cloud.discoveryengine.v1.ImportDocumentsResponse;
import com.google.cloud.discoveryengine.v1.ImportErrorConfig;
import com.google.protobuf.FieldMask;

public class SyncImportDocuments {

  public static void main(String[] args) throws Exception {
    syncImportDocuments();
  }

  public static void syncImportDocuments() throws Exception {
    // This snippet has been automatically generated and should be regarded as a code template only.
    // It will require modifications to work:
    // - It may require correct/in-range values for request initialization.
    // - It may require specifying regional endpoints when creating the service client as shown in
    // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
    try (DocumentServiceClient documentServiceClient = DocumentServiceClient.create()) {
      ImportDocumentsRequest request =
          ImportDocumentsRequest.newBuilder()
              .setParent(
                  BranchName.ofProjectLocationDataStoreBranchName(
                          "[PROJECT]", "[LOCATION]", "[DATA_STORE]", "[BRANCH]")
                      .toString())
              .setErrorConfig(ImportErrorConfig.newBuilder().build())
              .setUpdateMask(FieldMask.newBuilder().build())
              .setAutoGenerateIds(true)
              .setIdField("idField1629396127")
              .setForceRefreshContent(true)
              .build();
      ImportDocumentsResponse response = documentServiceClient.importDocumentsAsync(request).get();
    }
  }
}

Node.js

Weitere Informationen finden Sie in der Referenzdokumentation zur Vertex AI Search Node.js API.

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

Datenspeicher erstellen

/**
 * This snippet has been automatically generated and should be regarded as a code template only.
 * It will require modifications to work.
 * It may require correct/in-range values for request initialization.
 * TODO(developer): Uncomment these variables before running the sample.
 */
/**
 *  Resource name of the CmekConfig to use for protecting this DataStore.
 */
// const cmekConfigName = 'abc123'
/**
 *  DataStore without CMEK protections. If a default CmekConfig is set for
 *  the project, setting this field will override the default CmekConfig as
 *  well.
 */
// const disableCmek = true
/**
 *  Required. The parent resource name, such as
 *  `projects/{project}/locations/{location}/collections/{collection}`.
 */
// const parent = 'abc123'
/**
 *  Required. The DataStore google.cloud.discoveryengine.v1.DataStore  to
 *  create.
 */
// const dataStore = {}
/**
 *  Required. The ID to use for the
 *  DataStore google.cloud.discoveryengine.v1.DataStore, which will become
 *  the final component of the
 *  DataStore google.cloud.discoveryengine.v1.DataStore's resource name.
 *  This field must conform to RFC-1034 (https://tools.ietf.org/html/rfc1034)
 *  standard with a length limit of 63 characters. Otherwise, an
 *  INVALID_ARGUMENT error is returned.
 */
// const dataStoreId = 'abc123'
/**
 *  A boolean flag indicating whether user want to directly create an advanced
 *  data store for site search.
 *  If the data store is not configured as site
 *  search (GENERIC vertical and PUBLIC_WEBSITE content_config), this flag will
 *  be ignored.
 */
// const createAdvancedSiteSearch = true
/**
 *  A boolean flag indicating whether to skip the default schema creation for
 *  the data store. Only enable this flag if you are certain that the default
 *  schema is incompatible with your use case.
 *  If set to true, you must manually create a schema for the data store before
 *  any documents can be ingested.
 *  This flag cannot be specified if `data_store.starting_schema` is specified.
 */
// const skipDefaultSchemaCreation = true

// Imports the Discoveryengine library
const {DataStoreServiceClient} = require('@google-cloud/discoveryengine').v1;

// Instantiates a client
const discoveryengineClient = new DataStoreServiceClient();

async function callCreateDataStore() {
  // Construct request
  const request = {
    parent,
    dataStore,
    dataStoreId,
  };

  // Run request
  const [operation] = await discoveryengineClient.createDataStore(request);
  const [response] = await operation.promise();
  console.log(response);
}

callCreateDataStore();

Dokumente importieren

/**
 * This snippet has been automatically generated and should be regarded as a code template only.
 * It will require modifications to work.
 * It may require correct/in-range values for request initialization.
 * TODO(developer): Uncomment these variables before running the sample.
 */
/**
 *  The Inline source for the input content for documents.
 */
// const inlineSource = {}
/**
 *  Cloud Storage location for the input content.
 */
// const gcsSource = {}
/**
 *  BigQuery input source.
 */
// const bigquerySource = {}
/**
 *  FhirStore input source.
 */
// const fhirStoreSource = {}
/**
 *  Spanner input source.
 */
// const spannerSource = {}
/**
 *  Cloud SQL input source.
 */
// const cloudSqlSource = {}
/**
 *  Firestore input source.
 */
// const firestoreSource = {}
/**
 *  AlloyDB input source.
 */
// const alloyDbSource = {}
/**
 *  Cloud Bigtable input source.
 */
// const bigtableSource = {}
/**
 *  Required. The parent branch resource name, such as
 *  `projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}/branches/{branch}`.
 *  Requires create/update permission.
 */
// const parent = 'abc123'
/**
 *  The desired location of errors incurred during the Import.
 */
// const errorConfig = {}
/**
 *  The mode of reconciliation between existing documents and the documents to
 *  be imported. Defaults to
 *  ReconciliationMode.INCREMENTAL google.cloud.discoveryengine.v1.ImportDocumentsRequest.ReconciliationMode.INCREMENTAL.
 */
// const reconciliationMode = {}
/**
 *  Indicates which fields in the provided imported documents to update. If
 *  not set, the default is to update all fields.
 */
// const updateMask = {}
/**
 *  Whether to automatically generate IDs for the documents if absent.
 *  If set to `true`,
 *  Document.id google.cloud.discoveryengine.v1.Document.id s are
 *  automatically generated based on the hash of the payload, where IDs may not
 *  be consistent during multiple imports. In which case
 *  ReconciliationMode.FULL google.cloud.discoveryengine.v1.ImportDocumentsRequest.ReconciliationMode.FULL 
 *  is highly recommended to avoid duplicate contents. If unset or set to
 *  `false`, Document.id google.cloud.discoveryengine.v1.Document.id s have
 *  to be specified using
 *  id_field google.cloud.discoveryengine.v1.ImportDocumentsRequest.id_field,
 *  otherwise, documents without IDs fail to be imported.
 *  Supported data sources:
 *  * GcsSource google.cloud.discoveryengine.v1.GcsSource.
 *  GcsSource.data_schema google.cloud.discoveryengine.v1.GcsSource.data_schema 
 *  must be `custom` or `csv`. Otherwise, an INVALID_ARGUMENT error is thrown.
 *  * BigQuerySource google.cloud.discoveryengine.v1.BigQuerySource.
 *  BigQuerySource.data_schema google.cloud.discoveryengine.v1.BigQuerySource.data_schema 
 *  must be `custom` or `csv`. Otherwise, an INVALID_ARGUMENT error is thrown.
 *  * SpannerSource google.cloud.discoveryengine.v1.SpannerSource.
 *  * CloudSqlSource google.cloud.discoveryengine.v1.CloudSqlSource.
 *  * FirestoreSource google.cloud.discoveryengine.v1.FirestoreSource.
 *  * BigtableSource google.cloud.discoveryengine.v1.BigtableSource.
 */
// const autoGenerateIds = true
/**
 *  The field indicates the ID field or column to be used as unique IDs of
 *  the documents.
 *  For GcsSource google.cloud.discoveryengine.v1.GcsSource  it is the key of
 *  the JSON field. For instance, `my_id` for JSON `{"my_id": "some_uuid"}`.
 *  For others, it may be the column name of the table where the unique ids are
 *  stored.
 *  The values of the JSON field or the table column are used as the
 *  Document.id google.cloud.discoveryengine.v1.Document.id s. The JSON field
 *  or the table column must be of string type, and the values must be set as
 *  valid strings conform to RFC-1034 (https://tools.ietf.org/html/rfc1034)
 *  with 1-63 characters. Otherwise, documents without valid IDs fail to be
 *  imported.
 *  Only set this field when
 *  auto_generate_ids google.cloud.discoveryengine.v1.ImportDocumentsRequest.auto_generate_ids 
 *  is unset or set as `false`. Otherwise, an INVALID_ARGUMENT error is thrown.
 *  If it is unset, a default value `_id` is used when importing from the
 *  allowed data sources.
 *  Supported data sources:
 *  * GcsSource google.cloud.discoveryengine.v1.GcsSource.
 *  GcsSource.data_schema google.cloud.discoveryengine.v1.GcsSource.data_schema 
 *  must be `custom` or `csv`. Otherwise, an INVALID_ARGUMENT error is thrown.
 *  * BigQuerySource google.cloud.discoveryengine.v1.BigQuerySource.
 *  BigQuerySource.data_schema google.cloud.discoveryengine.v1.BigQuerySource.data_schema 
 *  must be `custom` or `csv`. Otherwise, an INVALID_ARGUMENT error is thrown.
 *  * SpannerSource google.cloud.discoveryengine.v1.SpannerSource.
 *  * CloudSqlSource google.cloud.discoveryengine.v1.CloudSqlSource.
 *  * FirestoreSource google.cloud.discoveryengine.v1.FirestoreSource.
 *  * BigtableSource google.cloud.discoveryengine.v1.BigtableSource.
 */
// const idField = 'abc123'
/**
 *  Optional. Whether to force refresh the unstructured content of the
 *  documents.
 *  If set to `true`, the content part of the documents will be refreshed
 *  regardless of the update status of the referencing content.
 */
// const forceRefreshContent = true

// Imports the Discoveryengine library
const {DocumentServiceClient} = require('@google-cloud/discoveryengine').v1;

// Instantiates a client
const discoveryengineClient = new DocumentServiceClient();

async function callImportDocuments() {
  // Construct request
  const request = {
    parent,
  };

  // Run request
  const [operation] = await discoveryengineClient.importDocuments(request);
  const [response] = await operation.promise();
  console.log(response);
}

callImportDocuments();

Python

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

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

Datenspeicher erstellen


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"


def create_data_store_sample(
    project_id: str,
    location: str,
    data_store_id: str,
) -> str:
    #  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.DataStoreServiceClient(client_options=client_options)

    # The full resource name of the collection
    # e.g. projects/{project}/locations/{location}/collections/default_collection
    parent = client.collection_path(
        project=project_id,
        location=location,
        collection="default_collection",
    )

    data_store = discoveryengine.DataStore(
        display_name="My Data Store",
        # Options: GENERIC, MEDIA, HEALTHCARE_FHIR
        industry_vertical=discoveryengine.IndustryVertical.GENERIC,
        # Options: SOLUTION_TYPE_RECOMMENDATION, SOLUTION_TYPE_SEARCH, SOLUTION_TYPE_CHAT, SOLUTION_TYPE_GENERATIVE_CHAT
        solution_types=[discoveryengine.SolutionType.SOLUTION_TYPE_SEARCH],
        # TODO(developer): Update content_config based on data store type.
        # Options: NO_CONTENT, CONTENT_REQUIRED, PUBLIC_WEBSITE
        content_config=discoveryengine.DataStore.ContentConfig.CONTENT_REQUIRED,
    )

    request = discoveryengine.CreateDataStoreRequest(
        parent=parent,
        data_store_id=data_store_id,
        data_store=data_store,
        # Optional: For Advanced Site Search Only
        # create_advanced_site_search=True,
    )

    # Make the request
    operation = client.create_data_store(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.CreateDataStoreMetadata(operation.metadata)

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

    return operation.operation.name

Dokumente importieren

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)

Ruby

Weitere Informationen finden Sie in der Referenzdokumentation zur Vertex AI Search Ruby API.

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

Datenspeicher erstellen

require "google/cloud/discovery_engine/v1"

##
# Snippet for the create_data_store call in the DataStoreService service
#
# This snippet has been automatically generated and should be regarded as a code
# template only. It will require modifications to work:
# - It may require correct/in-range values for request initialization.
# - It may require specifying regional endpoints when creating the service
# client as shown in https://cloud.google.com/ruby/docs/reference.
#
# This is an auto-generated example demonstrating basic usage of
# Google::Cloud::DiscoveryEngine::V1::DataStoreService::Client#create_data_store.
#
def create_data_store
  # Create a client object. The client can be reused for multiple calls.
  client = Google::Cloud::DiscoveryEngine::V1::DataStoreService::Client.new

  # Create a request. To set request fields, pass in keyword arguments.
  request = Google::Cloud::DiscoveryEngine::V1::CreateDataStoreRequest.new

  # Call the create_data_store method.
  result = client.create_data_store request

  # The returned object is of type Gapic::Operation. You can use it to
  # check the status of an operation, cancel it, or wait for results.
  # Here is how to wait for a response.
  result.wait_until_done! timeout: 60
  if result.response?
    p result.response
  else
    puts "No response received."
  end
end

Dokumente importieren

require "google/cloud/discovery_engine/v1"

##
# Snippet for the import_documents call in the DocumentService service
#
# This snippet has been automatically generated and should be regarded as a code
# template only. It will require modifications to work:
# - It may require correct/in-range values for request initialization.
# - It may require specifying regional endpoints when creating the service
# client as shown in https://cloud.google.com/ruby/docs/reference.
#
# This is an auto-generated example demonstrating basic usage of
# Google::Cloud::DiscoveryEngine::V1::DocumentService::Client#import_documents.
#
def import_documents
  # Create a client object. The client can be reused for multiple calls.
  client = Google::Cloud::DiscoveryEngine::V1::DocumentService::Client.new

  # Create a request. To set request fields, pass in keyword arguments.
  request = Google::Cloud::DiscoveryEngine::V1::ImportDocumentsRequest.new

  # Call the import_documents method.
  result = client.import_documents request

  # The returned object is of type Gapic::Operation. You can use it to
  # check the status of an operation, cancel it, or wait for results.
  # Here is how to wait for a response.
  result.wait_until_done! timeout: 60
  if result.response?
    p result.response
  else
    puts "No response received."
  end
end

Mit Cloud Storage verbinden und regelmäßig synchronisieren

Lesen Sie vor dem Importieren der Daten, wie Sie Daten für die Aufnahme vorbereiten.

In der folgenden Anleitung wird beschrieben, wie Sie einen Daten-Connector erstellen, der einen Cloud Storage-Speicherort mit einem Vertex AI Search-Daten-Connector verknüpft, und einen Ordner oder eine Datei an diesem Speicherort für den zu erstellenden Datenspeicher angeben. Datenspeicher, die untergeordnete Elemente von Daten-Connectors sind, werden als Entitätsdatenspeicher bezeichnet.

Die Daten werden regelmäßig mit dem Entitätsdatenspeicher synchronisiert. Sie können festlegen, dass die Daten täglich, alle drei Tage oder alle fünf Tage synchronisiert werden sollen.

Console

  1. Rufen Sie in der Google Cloud Console die Seite KI-Anwendungen auf.

    KI-Anwendungen

  2. Rufen Sie die Seite Datenspeicher auf.

  3. Klicken Sie auf Datenspeicher erstellen.

  4. Wählen Sie auf der Seite Quelle die Option Cloud Storage aus.

  5. Wählen Sie aus, welche Art von Daten Sie importieren möchten.

  6. Klicken Sie auf Regelmäßig.

  7. Wählen Sie die Häufigkeit der Synchronisierung aus, um festzulegen, wie oft der Vertex AI Search-Connector mit dem Cloud Storage-Speicherort synchronisiert werden soll. Sie können die Häufigkeit später ändern.

  8. Wählen Sie im Bereich Ordner oder Datei für Import auswählen die Option Ordner oder Datei aus.

  9. Klicken Sie auf Durchsuchen, wählen Sie die Daten aus, die Sie für die Aufnahme vorbereitet haben, und klicken Sie dann auf Auswählen. Alternativ können Sie den Speicherort direkt in das Feld gs:// eingeben.

  10. Klicken Sie auf Weiter.

  11. Wählen Sie eine Region für den Daten-Connector aus.

  12. Geben Sie einen Namen für den Daten-Connector ein.

  13. Optional: Wenn Sie unstrukturierte Dokumente ausgewählt haben, können Sie für die Dokumente Optionen für das Parsen und Aufteilen in Blöcke festlegen. Weitere Informationen zum Parsen von Dokumenten. Weitere Informationen zum Aufteilen von Dokumenten für RAG in Blöcke.

    Wenn Sie einen Parser auswählen möchten, maximieren Sie Dokumentverarbeitungsoptionen und geben Sie die gewünschten Parser-Optionen an.

    Für den OCR-Parser und den Layout-Parser können zusätzliche Kosten anfallen. Preise für Document AI-Funktionen

  14. Klicken Sie auf Erstellen.

    Sie haben jetzt einen Daten-Connector erstellt, der Daten regelmäßig mit dem Cloud Storage-Speicherort synchronisiert. Außerdem haben Sie einen Entitätsdatenspeicher mit dem Namen gcs_store erstellt.

  15. Wenn Sie den Status der Aufnahme überprüfen möchten, rufen Sie die Seite Datenspeicher auf und klicken Sie auf den Namen des Daten-Connectors. Daraufhin können Sie sich die Details auf der Seite Daten ansehen.

    Tab Datenaufnahmeaktivität: Wenn sich die Statusspalte auf dem Tab Datenaufnahmeaktivität von In Bearbeitung zu Erfolgreich ändert, ist die erste Aufnahme abgeschlossen.

    Abhängig von der Größe der Daten kann die Datenaufnahme einige Minuten bis mehrere Stunden dauern.

Nachdem Sie Ihre Datenquelle eingerichtet und zum ersten Mal Daten importiert haben, werden die Daten von dieser Quelle in der von Ihnen angegebenen Häufigkeit synchronisiert. Etwa eine Stunde nach dem Erstellen des Daten-Connectors erfolgt die erste Synchronisierung. Die nächste Synchronisierung findet dann etwa 24, 72 oder 120 Stunden später statt.

Nächste Schritte

  • Wenn Sie Ihren Datenspeicher an eine App anhängen möchten, erstellen Sie die App und wählen Sie Ihren Datenspeicher aus. Folgen Sie dazu der Anleitung unter Such-App erstellen.

  • Weitere Informationen zur Vorschau der Suchergebnisse nach Erstellung der App und des Datenspeichers.

Mit Google Drive verbinden

Vertex AI Search kann Daten aus Google Drive mithilfe der Datenföderation durchsuchen. Dabei werden Informationen direkt aus der angegebenen Datenquelle abgerufen. Da keine Daten in den Vertex AI Search-Index kopiert werden, müssen Sie sich keine Gedanken über die Datenspeicherung machen.

Hinweise

  • Sie müssen in der Google Cloud Konsole mit demselben Konto angemeldet sein, das Sie für die Google Drive-Instanz verwenden, die Sie verbinden möchten. Vertex AI Search verwendet Ihre Google Workspace-Kunden-ID, um eine Verbindung zu Google Drive herzustellen.
  • Achten Sie darauf, dass die Dokumente zugänglich sind, indem Sie diese entweder in einer geteilten Ablage platzieren, die der Domain gehört, oder die Inhaberschaft einem Nutzer in der Domain zuweisen.

  • Aktivieren Sie smarte Google Workspace-Funktionen in anderen Google-Produkten, um Google Drive-Daten mit Vertex AI Search zu verknüpfen. Weitere Informationen finden Sie unter Smarte Funktionen in Google Workspace aktivieren/deaktivieren.

  • Wenn Sie Sicherheitskontrollen verwenden, beachten Sie die Einschränkungen in Bezug auf Daten in Google Drive, die in der folgenden Tabelle beschrieben werden:

    Sicherheitskontrollen Wichtige Hinweise:
    Datenstandort (DRZ) Vertex AI Search gewährleistet die Datenspeicherung nur in Google Cloud. Informationen zum Datenstandort und zu Google Drive finden Sie in den Google Workspace-Compliance-Leitfäden und der zugehörigen Dokumentation, z. B. unter Region für die Datenspeicherung auswählen und Digitale Souveränität.
    Kundenverwaltete Verschlüsselungsschlüssel (CMEK) Ihre Schlüssel verschlüsseln nur Daten in Google Cloud. Die Steuerelemente von Cloud Key Management Service gelten nicht für Daten, die in Google Drive gespeichert sind.
    Access Transparency In Access Transparency-Logs werden Aktionen aufgezeichnet, die von Google-Mitarbeitern im Google Cloud Projekt ausgeführt wurden. Sie müssen auch die von Google Workspace erstellten Access Transparency-Logs prüfen. Weitere Informationen finden Sie in der Google Workspace-Admin-Hilfe unter Access Transparency-Logereignisse.

Google Drive-Datenspeicher erstellen

Console

So verwenden Sie die Console, um Google Drive-Daten durchsuchbar zu machen:

  1. Rufen Sie in der Google Cloud Console die Seite KI-Anwendungen auf.

    KI-Anwendungen

  2. Klicken Sie im Navigationsmenü auf Datenspeicher.

  3. Klicken Sie auf Datenspeicher erstellen.

  4. Wählen Sie auf der Seite Datenquelle auswählen die Option Google Drive aus.

  5. Drive-Quelle für den Datenspeicher angeben

    • Alle: Wenn Sie Ihren gesamten Drive-Speicher dem Datenspeicher hinzufügen möchten.
    • Bestimmte geteilte Ablage(n): Fügen Sie die Ordner-ID der geteilten Ablage hinzu.
    • Bestimmte/r freigegebene/r Ordner: Fügen Sie die ID der freigegebenen Ordner hinzu.

    Wenn Sie die Ordner-ID der geteilten Ablage oder eine bestimmte Ordner-ID finden möchten, rufen Sie die geteilte Ablage oder den Ordner auf und kopieren die ID aus der URL. Die URL hat folgendes Format: https://drive.google.com/corp/drive/folders/ID.

    Beispiel: https://drive.google.com/corp/drive/folders/123456789012345678901.

  6. Klicken Sie auf Weiter.

  7. Wählen Sie eine Region für Ihren Datenspeicher aus.

  8. Geben Sie einen Namen für den Datenspeicher ein.

  9. Optional: Wenn Sie die Daten in diesem Datenspeicher nicht für generative KI-Inhalte bei der Datenabfrage mit der App verwenden möchten, klicken Sie auf Optionen für generative KI und wählen Von Funktionen der generativen KI ausschließen aus.

  10. Klicken Sie auf Erstellen.

Fehlermeldungen

In der folgenden Tabelle werden Fehlermeldungen beschrieben, die beim Arbeiten mit dieser Google-Datenquelle auftreten können. Sie enthält HTTP-Fehlercodes und Vorschläge zur Fehlerbehebung.

Fehlercode Fehlermeldung Beschreibung Fehlerbehebung
403 (Permission Denied) Die Suche mit Dienstkonto-Anmeldedaten wird für Google Workspace-Datenspeicher nicht unterstützt. Die Engine, in der gesucht wird, enthält Google Workspace-Datenspeicher und die übergebenen Anmeldedaten gehören zu einem Dienstkonto. Die Suche mit Dienstkonto-Anmeldedaten in Google Workspace-Datenspeichern wird nicht unterstützt. Rufen Sie die Suche mit Nutzeranmeldedaten auf oder entfernen Sie die Google Workspace-Datenspeicher aus der Engine.
403 (Permission Denied) Privatnutzerkonten werden für Google Workspace-Datenspeicher nicht unterstützt. Die Suche wird mit Anmeldedaten eines Privatnutzerkontos (@gmail.com) aufgerufen, was für Google Workspace-Datenspeicher nicht unterstützt wird. Entfernen Sie die Google Workspace-Datenspeicher aus der Engine oder verwenden Sie ein verwaltetes Google-Konto.
403 (Permission Denied) Kundennummer passt nicht zum Datenspeicher Die Suche darf nur von Nutzern verwendet werden, die derselben Organisation wie die Google Workspace-Datenspeicher angehören. Entfernen Sie Google Workspace-Datenspeicher aus der Engine oder wenden Sie sich an den Support, wenn Nutzer und Google Workspace-Datenspeicher in verschiedenen Organisationen sein sollen.
403 (Permission Denied) Der Workspace-Zugriff für Agentspace wurde vom Administrator der Organisation deaktiviert. Ein Google Workspace-Administrator hat den Zugriff auf Google Workspace-Daten für Vertex AI Search deaktiviert. Wenden Sie sich an Ihren Google Workspace-Administrator, um den Zugriff zu aktivieren.
400 (Ungültiges Argument) Die Engine kann nicht sowohl Standard- als auch freigegebene Google Drive-Datenspeicher enthalten. Sie können keinen Datenspeicher, der alle Ihre Ablagen enthält (Standard), und einen Datenspeicher, der eine bestimmte geteilte Ablage enthält, mit derselben App verbinden. Wenn Sie eine neue Google Drive-Datenquelle mit Ihrer App verknüpfen möchten, müssen Sie zuerst die Verknüpfung des nicht benötigten Datenspeichers aufheben und dann den neuen Datenspeicher hinzufügen, den Sie verwenden möchten.

Fehlerbehebung

Wenn die gesuchte Datei nicht in den Suchergebnissen angezeigt wird, kann das an den folgenden Einschränkungen des Suchindex von Google Drive liegen:

  • Google Drive extrahiert nur 1 MB an Text- und Formatierungsdaten aus Ihrer Datei, um sie durchsuchbar zu machen. Keywords, die das Indexlimit von 1 MB überschreiten, sind nicht suchbar.

  • Die Dateigröße darf bei den meisten Dateitypen 10 MB nicht überschreiten. Folgendes sind Ausnahmen:

    • XLSX-Dateien (.xlsx) dürfen nicht größer als 20 MB sein.

    • PDF-Dateien (.pdf) dürfen nicht größer als 30 MB sein.

    • Textdateien (.txt) dürfen nicht größer als 100 MB sein.

  • Die optische Zeichenerkennung in PDF-Dateien ist auf 80 Seiten begrenzt. PDFs mit mehr als 50 MB oder 80 Seiten werden in Google Drive nicht indexiert.

Nächste Schritte

  • Wenn Sie Ihren Datenspeicher an eine App anhängen möchten, erstellen Sie die App und wählen Sie Ihren Datenspeicher aus. Folgen Sie dazu der Anleitung unter Such-App erstellen.

  • Weitere Informationen zum Abrufen der Suchergebnisse nach der Einrichtung der App und des Datenspeichers finden Sie unter Suchergebnisse abrufen.

Mit Gmail verknüpfen

Mit den folgenden Schritten können Sie einen Datenspeicher erstellen, der in der Google Cloud Konsole mit Gmail verbunden ist. Nachdem Sie den Datenspeicher verbunden haben, können Sie ihn an Ihre Suchanwendung anhängen und in Ihren Gmail-Daten suchen.

Hinweise

  • Sie müssen in der Google Cloud -Konsole mit demselben Konto angemeldet sein, das Sie für die Google Workspace-Instanz verwenden, die Sie verbinden möchten. Vertex AI Search verwendet Ihre Google Workspace-Kundennummer, um eine Verbindung zu Gmail herzustellen.

Beschränkungen

  • Wenn Sie Sicherheitskontrollen verwenden, beachten Sie die Einschränkungen in Bezug auf Daten in Gmail, die in der folgenden Tabelle beschrieben werden:

    Sicherheitskontrollen Wichtige Hinweise:
    Datenstandort (DRZ) Vertex AI Search gewährleistet die Datenspeicherung nur in Google Cloud. Informationen zum Datenstandort und zu Gmail Drive finden Sie in den Google Workspace-Compliance-Leitfäden und der zugehörigen Dokumentation, z. B. unter Region für die Datenspeicherung auswählen und Digitale Souveränität.
    Kundenverwaltete Verschlüsselungsschlüssel (CMEK) Ihre Schlüssel verschlüsseln nur Daten in Google Cloud. Die Steuerelemente von Cloud Key Management Service gelten nicht für in Gmail gespeicherte Daten.
    Access Transparency In Access Transparency-Logs werden Aktionen aufgezeichnet, die von Google-Mitarbeitern im Google Cloud Projekt ausgeführt wurden. Sie müssen auch die von Google Workspace erstellten Access Transparency-Logs prüfen. Weitere Informationen finden Sie in der Google Workspace-Admin-Hilfe unter Access Transparency-Logereignisse.

Gmail-Datenspeicher erstellen

Console

So verwenden Sie die Console, um Gmail-Daten durchsuchbar zu machen:

  1. Rufen Sie in der Google Cloud Console die Seite KI-Anwendungen auf.

    KI-Anwendungen

  2. Klicken Sie im Navigationsmenü auf Datenspeicher.

  3. Klicken Sie auf Datenspeicher erstellen.

  4. Wählen Sie auf der Seite Datenquelle auswählen die Option Google Gmail aus.

  5. Wählen Sie eine Region für Ihren Datenspeicher aus.

  6. Geben Sie einen Namen für den Datenspeicher ein.

  7. Klicken Sie auf Erstellen.

  8. Folgen Sie der Anleitung unter Suchanwendung erstellen und hängen Sie den erstellten Datenspeicher an eine Vertex AI Search-App an.

Fehlermeldungen

In der folgenden Tabelle werden Fehlermeldungen beschrieben, die beim Arbeiten mit dieser Google-Datenquelle auftreten können. Sie enthält HTTP-Fehlercodes und Vorschläge zur Fehlerbehebung.

Fehlercode Fehlermeldung Beschreibung Fehlerbehebung
403 (Permission Denied) Die Suche mit Dienstkonto-Anmeldedaten wird für Google Workspace-Datenspeicher nicht unterstützt. Die Engine, in der gesucht wird, enthält Google Workspace-Datenspeicher und die übergebenen Anmeldedaten gehören zu einem Dienstkonto. Die Suche mit Dienstkonto-Anmeldedaten in Google Workspace-Datenspeichern wird nicht unterstützt. Rufen Sie die Suche mit Nutzeranmeldedaten auf oder entfernen Sie die Google Workspace-Datenspeicher aus der Engine.
403 (Permission Denied) Privatnutzerkonten werden für Google Workspace-Datenspeicher nicht unterstützt. Die Suche wird mit Anmeldedaten eines Privatnutzerkontos (@gmail.com) aufgerufen, was für Google Workspace-Datenspeicher nicht unterstützt wird. Entfernen Sie die Google Workspace-Datenspeicher aus der Engine oder verwenden Sie ein verwaltetes Google-Konto.
403 (Permission Denied) Kundennummer passt nicht zum Datenspeicher Die Suche darf nur von Nutzern verwendet werden, die derselben Organisation wie die Google Workspace-Datenspeicher angehören. Entfernen Sie Google Workspace-Datenspeicher aus der Engine oder wenden Sie sich an den Support, wenn Nutzer und Google Workspace-Datenspeicher in verschiedenen Organisationen sein sollen.
403 (Permission Denied) Der Workspace-Zugriff für Agentspace wurde vom Administrator der Organisation deaktiviert. Ein Google Workspace-Administrator hat den Zugriff auf Google Workspace-Daten für Vertex AI Search deaktiviert. Wenden Sie sich an Ihren Google Workspace-Administrator, um den Zugriff zu aktivieren.
400 (Ungültiges Argument) Die Engine kann nicht sowohl Standard- als auch freigegebene Google Drive-Datenspeicher enthalten. Sie können keinen Datenspeicher, der alle Ihre Ablagen enthält (Standard), und einen Datenspeicher, der eine bestimmte geteilte Ablage enthält, mit derselben App verbinden. Wenn Sie eine neue Google Drive-Datenquelle mit Ihrer App verknüpfen möchten, müssen Sie zuerst die Verknüpfung des nicht benötigten Datenspeichers aufheben und dann den neuen Datenspeicher hinzufügen, den Sie verwenden möchten.

Nächste Schritte

Mit Google Sites verbinden

Wenn Sie Daten aus Google Sites durchsuchen möchten, gehen Sie so vor, um einen Connector mit der Google Cloud -Konsole zu erstellen.

Hinweise:

  • Sie müssen in der Google Cloud -Konsole mit demselben Konto angemeldet sein, das Sie für die Google Workspace-Instanz verwenden, die Sie verbinden möchten. Vertex AI Search verwendet Ihre Google Workspace-Kunden-ID, um eine Verbindung zu Google Sites herzustellen.

  • Wenn Sie die Zugriffssteuerung für Datenquellen erzwingen und Daten in Vertex AI Search schützen möchten, müssen Sie Ihren Identitätsanbieter konfigurieren.

  • Wenn Sie Sicherheitskontrollen verwenden, beachten Sie die Einschränkungen in Bezug auf Daten in Google Sites, die in der folgenden Tabelle beschrieben werden:

    Sicherheitskontrollen Wichtige Hinweise:
    Datenstandort (DRZ) Vertex AI Search gewährleistet die Datenspeicherung nur in Google Cloud. Informationen zum Datenstandort und zu Google Sites finden Sie in den Google Workspace-Compliance-Leitfäden und der zugehörigen Dokumentation, z. B. unter Region für die Datenspeicherung auswählen und Digitale Souveränität.
    Kundenverwaltete Verschlüsselungsschlüssel (CMEK) Ihre Schlüssel verschlüsseln nur Daten in Google Cloud. Die Steuerelemente von Cloud Key Management Service gelten nicht für Daten, die in Google Sites gespeichert sind.
    Access Transparency In Access Transparency-Logs werden Aktionen aufgezeichnet, die von Google-Mitarbeitern im Google Cloud Projekt ausgeführt wurden. Sie müssen auch die von Google Workspace erstellten Access Transparency-Logs prüfen. Weitere Informationen finden Sie in der Google Workspace-Admin-Hilfe unter Access Transparency-Logereignisse.

Console

So verwenden Sie die Console, um Google Sites-Daten durchsuchbar zu machen:

  1. Rufen Sie in der Google Cloud Console die Seite KI-Anwendungen auf.

    KI-Anwendungen

  2. Rufen Sie die Seite Datenspeicher auf.

  3. Klicken Sie auf Neuer Datenspeicher.

  4. Wählen Sie auf der Seite Quelle die Option Google Sites aus.

  5. Wählen Sie eine Region für Ihren Datenspeicher aus.

  6. Geben Sie einen Namen für den Datenspeicher ein.

  7. Klicken Sie auf Erstellen.

Nächste Schritte

  • Wenn Sie Ihren Datenspeicher an eine App anhängen möchten, erstellen Sie die App und wählen Sie Ihren Datenspeicher aus. Folgen Sie dazu der Anleitung unter Such-App erstellen.

  • Weitere Informationen zur Vorschau der Suchergebnisse nach Erstellung der App und des Datenspeichers.

Mit Google Kalender verbinden

Wenn Sie Daten aus Google Kalender durchsuchen möchten, gehen Sie so vor, um einen Datenspeicher mit der Google Cloud Console zu erstellen.

Hinweise

  • Sie müssen in der Google Cloud -Konsole mit demselben Konto angemeldet sein, das Sie für die Google Workspace-Instanz verwenden, die Sie verbinden möchten. Vertex AI Search verwendet Ihre Google Workspace-Kunden-ID, um eine Verbindung zu Google Kalender herzustellen.
  • Wenn Sie Sicherheitskontrollen verwenden, beachten Sie die Einschränkungen in Bezug auf Daten in Google Kalender, die in der folgenden Tabelle beschrieben werden:

    Sicherheitskontrollen Wichtige Hinweise:
    Datenstandort (DRZ) Vertex AI Search gewährleistet die Datenspeicherung nur in Google Cloud. Informationen zum Datenstandort und zu Google Kalender finden Sie in den Google Workspace-Compliance-Leitfäden und der zugehörigen Dokumentation, z. B. unter Region für die Datenspeicherung auswählen und Digitale Souveränität.
    Kundenverwaltete Verschlüsselungsschlüssel (CMEK) Ihre Schlüssel verschlüsseln nur Daten in Google Cloud. Die Steuerelemente von Cloud Key Management Service gelten nicht für Daten, die in Google Kalender gespeichert sind.
    Access Transparency In Access Transparency-Logs werden Aktionen aufgezeichnet, die von Google-Mitarbeitern im Google Cloud Projekt ausgeführt wurden. Sie müssen auch die von Google Workspace erstellten Access Transparency-Logs prüfen. Weitere Informationen finden Sie in der Google Workspace-Admin-Hilfe unter Access Transparency-Logereignisse.

Google Kalender-Datenspeicher erstellen

So verwenden Sie die Console, um Google Kalender-Daten durchsuchbar zu machen:

  1. Rufen Sie in der Google Cloud Console die Seite KI-Anwendungen auf.

    KI-Anwendungen

  2. Klicken Sie im Navigationsmenü auf Datenspeicher.

  3. Klicken Sie auf Datenspeicher erstellen.

  4. Wählen Sie auf der Seite Datenquelle auswählen die Option Google Kalender aus.

  5. Wählen Sie eine Region für Ihren Datenspeicher aus.

  6. Geben Sie einen Namen für den Datenspeicher ein.

  7. Klicken Sie auf Erstellen.

Fehlermeldungen

In der folgenden Tabelle werden Fehlermeldungen beschrieben, die beim Arbeiten mit dieser Google-Datenquelle auftreten können. Sie enthält HTTP-Fehlercodes und Vorschläge zur Fehlerbehebung.

Fehlercode Fehlermeldung Beschreibung Fehlerbehebung
403 (Permission Denied) Die Suche mit Dienstkonto-Anmeldedaten wird für Google Workspace-Datenspeicher nicht unterstützt. Die Engine, in der gesucht wird, enthält Google Workspace-Datenspeicher und die übergebenen Anmeldedaten gehören zu einem Dienstkonto. Die Suche mit Dienstkonto-Anmeldedaten in Google Workspace-Datenspeichern wird nicht unterstützt. Rufen Sie die Suche mit Nutzeranmeldedaten auf oder entfernen Sie die Google Workspace-Datenspeicher aus der Engine.
403 (Permission Denied) Privatnutzerkonten werden für Google Workspace-Datenspeicher nicht unterstützt. Die Suche wird mit Anmeldedaten eines Privatnutzerkontos (@gmail.com) aufgerufen, was für Google Workspace-Datenspeicher nicht unterstützt wird. Entfernen Sie die Google Workspace-Datenspeicher aus der Engine oder verwenden Sie ein verwaltetes Google-Konto.
403 (Permission Denied) Kundennummer passt nicht zum Datenspeicher Die Suche darf nur von Nutzern verwendet werden, die derselben Organisation wie die Google Workspace-Datenspeicher angehören. Entfernen Sie Google Workspace-Datenspeicher aus der Engine oder wenden Sie sich an den Support, wenn Nutzer und Google Workspace-Datenspeicher in verschiedenen Organisationen sein sollen.
403 (Permission Denied) Der Workspace-Zugriff für Agentspace wurde vom Administrator der Organisation deaktiviert. Ein Google Workspace-Administrator hat den Zugriff auf Google Workspace-Daten für Vertex AI Search deaktiviert. Wenden Sie sich an Ihren Google Workspace-Administrator, um den Zugriff zu aktivieren.
400 (Ungültiges Argument) Die Engine kann nicht sowohl Standard- als auch freigegebene Google Drive-Datenspeicher enthalten. Sie können keinen Datenspeicher, der alle Ihre Ablagen enthält (Standard), und einen Datenspeicher, der eine bestimmte geteilte Ablage enthält, mit derselben App verbinden. Wenn Sie eine neue Google Drive-Datenquelle mit Ihrer App verknüpfen möchten, müssen Sie zuerst die Verknüpfung des nicht benötigten Datenspeichers aufheben und dann den neuen Datenspeicher hinzufügen, den Sie verwenden möchten.

Nächste Schritte

  • Wenn Sie Ihren Datenspeicher mit einer App verknüpfen möchten, erstellen Sie die App und wählen dann Ihren Datenspeicher aus. Folgen Sie dazu der Anleitung unter Such-App erstellen.

  • Weitere Informationen zum Abrufen der Suchergebnisse nach der Einrichtung der App und des Datenspeichers finden Sie unter Suchergebnisse abrufen.

Mit Google Groups verbinden

Wenn Sie Daten aus Google Groups durchsuchen möchten, gehen Sie so vor, um einen Connector mit der Google Cloud -Konsole zu erstellen.

Hinweise:

  • Sie müssen in der Google Cloud -Konsole mit demselben Konto angemeldet sein, das Sie für die Google Workspace-Instanz verwenden, die Sie verbinden möchten. Vertex AI Search verwendet Ihre Google Workspace-Kunden-ID, um eine Verbindung zu Google-Gruppen herzustellen.

  • Wenn Sie die Zugriffssteuerung für Datenquellen erzwingen und Daten in Vertex AI Search schützen möchten, müssen Sie Ihren Identitätsanbieter konfigurieren.

  • Wenn Sie Sicherheitskontrollen verwenden, beachten Sie die Einschränkungen in Bezug auf Daten in Google Groups, die in der folgenden Tabelle beschrieben werden:

    Sicherheitskontrollen Wichtige Hinweise:
    Datenstandort (DRZ) Vertex AI Search gewährleistet die Datenspeicherung nur in Google Cloud. Informationen zum Datenstandort und zu Google Groups finden Sie in den Google Workspace-Compliance-Leitfäden und der zugehörigen Dokumentation, z. B. unter Region für die Datenspeicherung auswählen und Digitale Souveränität.
    Kundenverwaltete Verschlüsselungsschlüssel (CMEK) Ihre Schlüssel verschlüsseln nur Daten in Google Cloud. Die Steuerelemente von Cloud Key Management Service gelten nicht für Daten, die in Google Groups gespeichert sind.
    Access Transparency In Access Transparency-Logs werden Aktionen aufgezeichnet, die von Google-Mitarbeitern im Google Cloud Projekt ausgeführt wurden. Sie müssen auch die von Google Workspace erstellten Access Transparency-Logs prüfen. Weitere Informationen finden Sie in der Google Workspace-Admin-Hilfe unter Access Transparency-Logereignisse.

Console

So verwenden Sie die Console, um Google Groups-Daten durchsuchbar zu machen:

  1. Rufen Sie in der Google Cloud Console die Seite KI-Anwendungen auf.

    KI-Anwendungen

  2. Rufen Sie die Seite Datenspeicher auf.

  3. Klicken Sie auf Neuer Datenspeicher.

  4. Wählen Sie auf der Seite Quelle die Option Google Groups aus.

  5. Wählen Sie eine Region für Ihren Datenspeicher aus.

  6. Geben Sie einen Namen für den Datenspeicher ein.

  7. Klicken Sie auf Erstellen. Abhängig von der Größe der Daten kann die Datenaufnahme einige Minuten bis mehrere Stunden dauern. Warten Sie mindestens eine Stunde, bevor Sie Ihren Datenspeicher für die Suche verwenden.

Nächste Schritte

  • Wenn Sie Ihren Datenspeicher an eine App anhängen möchten, erstellen Sie die App und wählen Sie Ihren Datenspeicher aus. Folgen Sie dazu der Anleitung unter Such-App erstellen.

  • Weitere Informationen zur Vorschau der Suchergebnisse nach Erstellung der App und des Datenspeichers.

Aus Cloud SQL importieren

Wenn Sie Daten aus Cloud SQL aufnehmen möchten, gehen Sie so vor, um den Cloud SQL-Zugriff einzurichten, einen Datenspeicher zu erstellen und Daten aufzunehmen.

Staging-Bucket-Zugriff für Cloud SQL-Instanzen einrichten

Beim Aufnehmen von Daten aus Cloud SQL werden die Daten zuerst in einem Cloud Storage-Bucket bereitgestellt. So gewähren Sie einer Cloud SQL-Instanz Zugriff auf Cloud Storage-Buckets:

  1. Rufen Sie in der Google Cloud -Console die Seite SQL auf.

    SQL

  2. Klicken Sie auf die Cloud SQL-Instanz, aus der Sie Daten importieren möchten.

  3. Kopieren Sie die ID des Dienstkontos der Instanz, die wie eine E-Mail-Adresse aussieht, z. B. p9876-abcd33f@gcp-sa-cloud-sql.iam.gserviceaccount.com.

  4. Rufen Sie die Seite IAM und Verwaltung auf.

    IAM & Verwaltung

  5. Klicken Sie auf Zugriff erlauben.

  6. Geben Sie unter Neue Hauptkonten die Kennung des Dienstkontos der Instanz ein. Wählen Sie die Rolle Cloud Storage > Speicheradministrator aus.

  7. Klicken Sie auf Speichern.

Nächster Schritt:

Cloud SQL-Zugriff aus einem anderen Projekt einrichten

So gewähren Sie Vertex AI Search Zugriff auf Cloud SQL-Daten in einem anderen Projekt:

  1. Ersetzen Sie die folgende PROJECT_NUMBER-Variable durch die Projektnummer Ihres Vertex AI Search-Projekts und kopieren Sie dann den Inhalt des Codeblocks. Dies ist die Kennung Ihres Vertex AI Search-Dienstkontos:

    service-PROJECT_NUMBER@gcp-sa-discoveryengine.iam.gserviceaccount.com`
    
  2. Rufen Sie die Seite IAM und Verwaltung auf.

    IAM und Verwaltung

  3. Wechseln Sie auf der Seite IAM und Verwaltung zu Ihrem Cloud SQL-Projekt und klicken Sie auf Zugriff gewähren.

  4. Geben Sie unter Neue Hauptkonten die Kennung des Dienstkontos ein und wählen Sie die Rolle Cloud SQL > Cloud SQL-Betrachter aus.

  5. Klicken Sie auf Speichern.

Gehen Sie dann zu Daten aus Cloud SQL importieren.

Daten aus Cloud SQL importieren

Console

So nehmen Sie Daten aus Cloud SQL über die Console auf:

  1. Rufen Sie in der Google Cloud Console die Seite KI-Anwendungen auf.

    KI-Anwendungen

  2. Rufen Sie die Seite Datenspeicher auf.

  3. Klicken Sie auf Neuer Datenspeicher.

  4. Wählen Sie auf der Seite Quelle die Option Cloud SQL aus.

  5. Geben Sie die Projekt‑ID, die Instanz‑ID, die Datenbank‑ID und die Tabellen‑ID der zu importierenden Daten an.

  6. Klicken Sie auf Durchsuchen, wählen Sie einen temporären Cloud Storage-Speicherort aus, in den die Daten exportiert werden sollen, und klicken Sie dann auf Auswählen. Alternativ können Sie den Speicherort direkt in das Feld gs:// eingeben.

  7. Wählen Sie aus, ob der serverlose Export aktiviert werden soll. Für den serverlosen Export fallen zusätzliche Kosten an. Informationen zum serverlosen Export finden Sie in der Cloud SQL-Dokumentation unter Leistungseinbußen durch Exporte minimieren.

  8. Klicken Sie auf Weiter.

  9. Wählen Sie eine Region für Ihren Datenspeicher aus.

  10. Geben Sie einen Namen für den Datenspeicher ein.

  11. Klicken Sie auf Erstellen.

  12. Wenn Sie den Status der Aufnahme überprüfen möchten, rufen Sie die Seite Datenspeicher auf und klicken Sie auf den Namen des Datenspeichers. Dadurch werden die Details auf der Seite Daten angezeigt. Wenn sich die Statusspalte auf dem Tab Aktivität von In Bearbeitung zu Import abgeschlossen ändert, ist die Aufnahme abgeschlossen.

    Je nach Größe der Daten kann die Datenaufnahme einige Minuten bis mehrere Stunden dauern.

REST

So erstellen Sie einen Datenspeicher über die Befehlszeile und nehmen Daten aus Cloud SQL auf:

  1. Erstellen Sie einen Datenspeicher.

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -H "X-Goog-User-Project: PROJECT_ID" \
    "https://discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores?dataStoreId=DATA_STORE_ID" \
    -d '{
      "displayName": "DISPLAY_NAME",
      "industryVertical": "GENERIC",
      "solutionTypes": ["SOLUTION_TYPE_SEARCH"],
    }'
    

    Ersetzen Sie Folgendes:

    • PROJECT_ID: die Projekt-ID.
    • DATA_STORE_ID: die ID des Datenspeichers. Die ID darf nur Kleinbuchstaben, Ziffern, Unterstriche und Bindestriche enthalten.
    • DISPLAY_NAME: Der Anzeigename des Datenspeichers. Dies wird möglicherweise in der Google Cloud Console angezeigt.
  2. Daten aus Cloud SQL importieren

      curl -X POST \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID/branches/0/documents:import" \
      -d '{
        "cloudSqlSource": {
          "projectId": "SQL_PROJECT_ID",
          "instanceId": "INSTANCE_ID",
          "databaseId": "DATABASE_ID",
          "tableId": "TABLE_ID",
          "gcsStagingDir": "STAGING_DIRECTORY"
        },
        "reconciliationMode": "RECONCILIATION_MODE",
        "autoGenerateIds": "AUTO_GENERATE_IDS",
        "idField": "ID_FIELD",
      }'
    

    Ersetzen Sie Folgendes:

    • PROJECT_ID: Die ID Ihres Vertex AI Search-Projekts.
    • DATA_STORE_ID: die ID des Datenspeichers. Die ID darf nur Kleinbuchstaben, Ziffern, Unterstriche und Bindestriche enthalten.
    • SQL_PROJECT_ID: Die ID Ihres Cloud SQL-Projekts.
    • INSTANCE_ID: Die ID Ihrer Cloud SQL-Instanz.
    • DATABASE_ID: die ID Ihrer Cloud SQL-Datenbank.
    • TABLE_ID: Die ID Ihrer Cloud SQL-Tabelle.
    • STAGING_DIRECTORY: optional. Ein Cloud Storage-Verzeichnis, z. B. gs://<your-gcs-bucket>/directory/import_errors.
    • RECONCILIATION_MODE: optional. Mögliche Werte sind FULL und INCREMENTAL. Der Standardwert ist INCREMENTAL. Wenn Sie INCREMENTAL angeben, werden die Daten aus Cloud SQL in Ihrem Datenspeicher inkrementell aktualisiert. Dadurch wird ein Upsert-Vorgang ausgeführt, bei dem neue Dokumente hinzugefügt und vorhandene Dokumente durch aktualisierte Dokumente mit derselben ID ersetzt werden. Wenn Sie FULL angeben, werden die Dokumente in Ihrem Datenspeicher vollständig neu synchronisiert. Das bedeutet, dass Ihrem Datenspeicher neue und aktualisierte Dokumente hinzugefügt und Dokumente, die nicht in Cloud SQL enthalten sind, aus Ihrem Datenspeicher entfernt werden. Der FULL-Modus ist hilfreich, wenn Sie nicht mehr benötigte Dokumente automatisch löschen möchten.

Python

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

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

Datenspeicher erstellen


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"


def create_data_store_sample(
    project_id: str,
    location: str,
    data_store_id: str,
) -> str:
    #  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.DataStoreServiceClient(client_options=client_options)

    # The full resource name of the collection
    # e.g. projects/{project}/locations/{location}/collections/default_collection
    parent = client.collection_path(
        project=project_id,
        location=location,
        collection="default_collection",
    )

    data_store = discoveryengine.DataStore(
        display_name="My Data Store",
        # Options: GENERIC, MEDIA, HEALTHCARE_FHIR
        industry_vertical=discoveryengine.IndustryVertical.GENERIC,
        # Options: SOLUTION_TYPE_RECOMMENDATION, SOLUTION_TYPE_SEARCH, SOLUTION_TYPE_CHAT, SOLUTION_TYPE_GENERATIVE_CHAT
        solution_types=[discoveryengine.SolutionType.SOLUTION_TYPE_SEARCH],
        # TODO(developer): Update content_config based on data store type.
        # Options: NO_CONTENT, CONTENT_REQUIRED, PUBLIC_WEBSITE
        content_config=discoveryengine.DataStore.ContentConfig.CONTENT_REQUIRED,
    )

    request = discoveryengine.CreateDataStoreRequest(
        parent=parent,
        data_store_id=data_store_id,
        data_store=data_store,
        # Optional: For Advanced Site Search Only
        # create_advanced_site_search=True,
    )

    # Make the request
    operation = client.create_data_store(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.CreateDataStoreMetadata(operation.metadata)

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

    return operation.operation.name

Dokumente importieren

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"
# sql_project_id = "YOUR_SQL_PROJECT_ID"
# sql_instance_id = "YOUR_SQL_INSTANCE_ID"
# sql_database_id = "YOUR_SQL_DATABASE_ID"
# sql_table_id = "YOUR_SQL_TABLE_ID"

#  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,
    cloud_sql_source=discoveryengine.CloudSqlSource(
        project_id=sql_project_id,
        instance_id=sql_instance_id,
        database_id=sql_database_id,
        table_id=sql_table_id,
    ),
    # 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)

Nächste Schritte

  • Wenn Sie Ihren Datenspeicher an eine App anhängen möchten, erstellen Sie die App und wählen Sie Ihren Datenspeicher aus. Folgen Sie dazu der Anleitung unter Such-App erstellen.

  • Weitere Informationen zur Vorschau der Suchergebnisse nach Erstellung der App und des Datenspeichers.

Aus Spanner importieren

Wenn Sie Daten aus Spanner aufnehmen möchten, gehen Sie so vor, um einen Datenspeicher zu erstellen und Daten entweder über die Google Cloud Console oder die API aufzunehmen.

Spanner-Zugriff aus einem anderen Projekt einrichten

Wenn sich Ihre Spanner-Daten im selben Projekt wie Vertex AI Search befinden, fahren Sie mit Daten aus Spanner importieren fort.

So gewähren Sie Vertex AI Search Zugriff auf Spanner-Daten in einem anderen Projekt:

  1. Ersetzen Sie die folgende PROJECT_NUMBER-Variable durch die Projektnummer Ihres Vertex AI Search-Projekts und kopieren Sie dann den Inhalt dieses Codeblocks. Dies ist die Kennung Ihres Vertex AI Search-Dienstkontos:

    service-PROJECT_NUMBER@gcp-sa-discoveryengine.iam.gserviceaccount.com
    
  2. Rufen Sie die Seite IAM und Verwaltung auf.

    IAM und Verwaltung

  3. Wechseln Sie auf der Seite IAM und Verwaltung zu Ihrem Spanner-Projekt und klicken Sie auf Zugriff gewähren.

  4. Geben Sie unter Neue Hauptkonten die Kennung für das Dienstkonto ein und wählen Sie eine der folgenden Optionen aus:

    • Wenn Sie den Daten-Boost während des Imports nicht verwenden, wählen Sie die Rolle Cloud Spanner > Cloud Spanner Database Reader aus.
    • Wenn Sie Data Boost während des Imports verwenden möchten, wählen Sie die Rolle Cloud Spanner > Cloud Spanner Database Admin oder eine benutzerdefinierte Rolle mit den Berechtigungen von Cloud Spanner Database Reader und spanner.databases.useDataBoost aus. Informationen zu Data Boost finden Sie in der Data Boost-Übersicht in der Spanner-Dokumentation.
  5. Klicken Sie auf Speichern.

Gehen Sie dann zu Daten aus Spanner importieren.

Daten aus Spanner importieren

Console

So nehmen Sie Daten aus Spanner über die Console auf:

  1. Rufen Sie in der Google Cloud Console die Seite KI-Anwendungen auf.

    KI-Anwendungen

  2. Rufen Sie die Seite Datenspeicher auf.

  3. Klicken Sie auf Neuer Datenspeicher.

  4. Wählen Sie auf der Seite Quelle die Option Cloud Spanner aus.

  5. Geben Sie die Projekt‑ID, die Instanz‑ID, die Datenbank‑ID und die Tabellen‑ID der zu importierenden Daten an.

  6. Wählen Sie aus, ob Data Boost aktiviert werden soll. Informationen zu Data Boost finden Sie in der Spanner-Dokumentation unter Data Boost-Übersicht.

  7. Klicken Sie auf Weiter.

  8. Wählen Sie eine Region für Ihren Datenspeicher aus.

  9. Geben Sie einen Namen für den Datenspeicher ein.

  10. Klicken Sie auf Erstellen.

  11. Wenn Sie den Status der Aufnahme überprüfen möchten, rufen Sie die Seite Datenspeicher auf und klicken Sie auf den Namen des Datenspeichers. Dadurch werden die Details auf der Seite Daten angezeigt. Wenn sich die Statusspalte auf dem Tab Aktivität von In Bearbeitung zu Import abgeschlossen ändert, ist die Aufnahme abgeschlossen.

    Je nach Größe der Daten kann die Datenaufnahme einige Minuten bis mehrere Stunden dauern.

REST

So erstellen Sie einen Datenspeicher über die Befehlszeile und nehmen Daten aus Spanner auf:

  1. Erstellen Sie einen Datenspeicher.

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -H "X-Goog-User-Project: PROJECT_ID" \
    "https://discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores?dataStoreId=DATA_STORE_ID" \
    -d '{
      "displayName": "DISPLAY_NAME",
      "industryVertical": "GENERIC",
      "solutionTypes": ["SOLUTION_TYPE_SEARCH"],
      "contentConfig": "CONTENT_REQUIRED",
    }'
    

    Ersetzen Sie Folgendes:

    • PROJECT_ID: Die ID Ihres Vertex AI Search-Projekts.
    • DATA_STORE_ID: die ID des Datenspeichers. Die ID darf nur Kleinbuchstaben, Ziffern, Unterstriche und Bindestriche enthalten.
    • DISPLAY_NAME: Der Anzeigename des Datenspeichers. Dies wird möglicherweise in der Google Cloud Console angezeigt.
  2. Daten aus Spanner importieren

      curl -X POST \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID/branches/0/documents:import" \
      -d '{
        "cloudSpannerSource": {
          "projectId": "SPANNER_PROJECT_ID",
          "instanceId": "INSTANCE_ID",
          "databaseId": "DATABASE_ID",
          "tableId": "TABLE_ID",
          "enableDataBoost": "DATA_BOOST_BOOLEAN"
        },
        "reconciliationMode": "RECONCILIATION_MODE",
        "autoGenerateIds": "AUTO_GENERATE_IDS",
        "idField": "ID_FIELD",
      }'
    

    Ersetzen Sie Folgendes:

    • PROJECT_ID: Die ID Ihres Vertex AI Search-Projekts.
    • DATA_STORE_ID: die ID des Datenspeichers.
    • SPANNER_PROJECT_ID: die ID Ihres Spanner-Projekts.
    • INSTANCE_ID: Die ID Ihrer Spanner-Instanz.
    • DATABASE_ID: Die ID Ihrer Spanner-Datenbank.
    • TABLE_ID: die ID Ihrer Spanner-Tabelle.
    • DATA_BOOST_BOOLEAN: optional. Ob Data Boost aktiviert werden soll. Informationen zu Data Boost finden Sie in der Spanner-Dokumentation unter Data Boost-Übersicht.
    • RECONCILIATION_MODE: optional. Mögliche Werte sind FULL und INCREMENTAL. Der Standardwert ist INCREMENTAL. Wenn Sie INCREMENTAL angeben, werden die Daten aus Spanner in Ihrem Datenspeicher inkrementell aktualisiert. Dadurch wird ein Upsert-Vorgang ausgeführt, bei dem neue Dokumente hinzugefügt und vorhandene Dokumente durch aktualisierte Dokumente mit derselben ID ersetzt werden. Wenn Sie FULL angeben, werden die Dokumente in Ihrem Datenspeicher vollständig neu synchronisiert. Das bedeutet, dass Ihrem Datenspeicher neue und aktualisierte Dokumente hinzugefügt und Dokumente, die nicht in Spanner enthalten sind, aus Ihrem Datenspeicher entfernt werden. Der FULL-Modus ist hilfreich, wenn Sie nicht mehr benötigte Dokumente automatisch löschen lassen möchten.
    • AUTO_GENERATE_IDS: optional. Gibt an, ob Dokument-IDs automatisch generiert werden sollen. Wenn dieser Wert auf true gesetzt ist, werden die Dokument-IDs auf Grundlage eines Nutzlast-Hash generiert. Beachten Sie, dass generierte Dokument-IDs bei mehreren Importvorgängen möglicherweise nicht gleich bleiben. Wenn Sie bei mehreren Importvorgängen IDs automatisch generieren, empfiehlt Google dringend, reconciliationMode auf FULL festzulegen, um die Dokument-IDs konsistent zu halten.

    • ID_FIELD: optional. Gibt an, welche Felder die Dokument-IDs enthalten.

Python

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

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

Datenspeicher erstellen


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"


def create_data_store_sample(
    project_id: str,
    location: str,
    data_store_id: str,
) -> str:
    #  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.DataStoreServiceClient(client_options=client_options)

    # The full resource name of the collection
    # e.g. projects/{project}/locations/{location}/collections/default_collection
    parent = client.collection_path(
        project=project_id,
        location=location,
        collection="default_collection",
    )

    data_store = discoveryengine.DataStore(
        display_name="My Data Store",
        # Options: GENERIC, MEDIA, HEALTHCARE_FHIR
        industry_vertical=discoveryengine.IndustryVertical.GENERIC,
        # Options: SOLUTION_TYPE_RECOMMENDATION, SOLUTION_TYPE_SEARCH, SOLUTION_TYPE_CHAT, SOLUTION_TYPE_GENERATIVE_CHAT
        solution_types=[discoveryengine.SolutionType.SOLUTION_TYPE_SEARCH],
        # TODO(developer): Update content_config based on data store type.
        # Options: NO_CONTENT, CONTENT_REQUIRED, PUBLIC_WEBSITE
        content_config=discoveryengine.DataStore.ContentConfig.CONTENT_REQUIRED,
    )

    request = discoveryengine.CreateDataStoreRequest(
        parent=parent,
        data_store_id=data_store_id,
        data_store=data_store,
        # Optional: For Advanced Site Search Only
        # create_advanced_site_search=True,
    )

    # Make the request
    operation = client.create_data_store(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.CreateDataStoreMetadata(operation.metadata)

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

    return operation.operation.name

Dokumente importieren

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"
# spanner_project_id = "YOUR_SPANNER_PROJECT_ID"
# spanner_instance_id = "YOUR_SPANNER_INSTANCE_ID"
# spanner_database_id = "YOUR_SPANNER_DATABASE_ID"
# spanner_table_id = "YOUR_SPANNER_TABLE_ID"

#  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,
    spanner_source=discoveryengine.SpannerSource(
        project_id=spanner_project_id,
        instance_id=spanner_instance_id,
        database_id=spanner_database_id,
        table_id=spanner_table_id,
    ),
    # 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)

Nächste Schritte

  • Wenn Sie Ihren Datenspeicher an eine App anhängen möchten, erstellen Sie die App und wählen Sie Ihren Datenspeicher aus. Folgen Sie dazu der Anleitung unter Such-App erstellen.

  • Weitere Informationen zur Vorschau der Suchergebnisse nach Erstellung der App und des Datenspeichers.

Aus Firestore importieren

Wenn Sie Daten aus Firestore aufnehmen möchten, gehen Sie so vor, um einen Datenspeicher zu erstellen und Daten entweder mit der Google Cloud Console oder der API aufzunehmen.

Wenn sich Ihre Firestore-Daten im selben Projekt wie Vertex AI Search befinden, lesen Sie den Abschnitt Daten aus Firestore importieren.

Wenn sich Ihre Firestore-Daten in einem anderen Projekt als Ihrem Vertex AI Search-Projekt befinden, lesen Sie den Abschnitt Firestore-Zugriff einrichten.

Firestore-Zugriff aus einem anderen Projekt einrichten

So gewähren Sie Vertex AI Search Zugriff auf Firestore-Daten in einem anderen Projekt:

  1. Ersetzen Sie die folgende PROJECT_NUMBER-Variable durch die Projektnummer Ihres Vertex AI Search-Projekts und kopieren Sie dann den Inhalt dieses Codeblocks. Dies ist die Kennung Ihres Vertex AI Search-Dienstkontos:

    service-PROJECT_NUMBER@gcp-sa-discoveryengine.iam.gserviceaccount.com
    
  2. Rufen Sie die Seite IAM und Verwaltung auf.

    IAM und Verwaltung

  3. Wechseln Sie auf der Seite IAM und Verwaltung zu Ihrem Firestore-Projekt und klicken Sie auf Zugriff gewähren.

  4. Geben Sie unter Neue Hauptkonten die Kennung des Dienstkontos der Instanz ein. Wählen Sie die Rolle Datenspeicher > Cloud Datastore-Import-/Export-Administrator aus.

  5. Klicken Sie auf Speichern.

  6. Wechseln Sie zurück zu Ihrem Vertex AI Search-Projekt.

Gehen Sie dann zu Daten aus Firestore importieren.

Daten aus Firestore importieren

Console

So nehmen Sie Daten aus Firestore über die Console auf:

  1. Rufen Sie in der Google Cloud Console die Seite KI-Anwendungen auf.

    KI-Anwendungen

  2. Rufen Sie die Seite Datenspeicher auf.

  3. Klicken Sie auf Neuer Datenspeicher.

  4. Wählen Sie auf der Seite Quelle die Option Firestore aus.

  5. Geben Sie die Projekt‑ID, die Datenbank‑ID und die Sammlung‑ID der zu importierenden Daten an.

  6. Klicken Sie auf Weiter.

  7. Wählen Sie eine Region für Ihren Datenspeicher aus.

  8. Geben Sie einen Namen für den Datenspeicher ein.

  9. Klicken Sie auf Erstellen.

  10. Wenn Sie den Status der Aufnahme überprüfen möchten, rufen Sie die Seite Datenspeicher auf und klicken Sie auf den Namen des Datenspeichers. Dadurch werden die Details auf der Seite Daten angezeigt. Wenn sich die Statusspalte auf dem Tab Aktivität von In Bearbeitung zu Import abgeschlossen ändert, ist die Aufnahme abgeschlossen.

    Je nach Größe der Daten kann die Datenaufnahme einige Minuten bis mehrere Stunden dauern.

REST

So erstellen Sie einen Datenspeicher über die Befehlszeile und nehmen Daten aus Firestore auf:

  1. Erstellen Sie einen Datenspeicher.

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -H "X-Goog-User-Project: PROJECT_ID" \
    "https://discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores?dataStoreId=DATA_STORE_ID" \
    -d '{
      "displayName": "DISPLAY_NAME",
      "industryVertical": "GENERIC",
      "solutionTypes": ["SOLUTION_TYPE_SEARCH"],
    }'
    

    Ersetzen Sie Folgendes:

    • PROJECT_ID: die Projekt-ID.
    • DATA_STORE_ID: die ID des Datenspeichers. Die ID darf nur Kleinbuchstaben, Ziffern, Unterstriche und Bindestriche enthalten.
    • DISPLAY_NAME: Der Anzeigename des Datenspeichers. Dies wird möglicherweise in der Google Cloud Console angezeigt.
  2. Importieren Sie Daten aus Firestore.

      curl -X POST \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID/branches/0/documents:import" \
      -d '{
        "firestoreSource": {
          "projectId": "FIRESTORE_PROJECT_ID",
          "databaseId": "DATABASE_ID",
          "collectionId": "COLLECTION_ID",
        },
        "reconciliationMode": "RECONCILIATION_MODE",
        "autoGenerateIds": "AUTO_GENERATE_IDS",
        "idField": "ID_FIELD",
      }'
    

    Ersetzen Sie Folgendes:

    • PROJECT_ID: Die ID Ihres Vertex AI Search-Projekts.
    • DATA_STORE_ID: die ID des Datenspeichers. Die ID darf nur Kleinbuchstaben, Ziffern, Unterstriche und Bindestriche enthalten.
    • FIRESTORE_PROJECT_ID: die ID Ihres Firestore-Projekts.
    • DATABASE_ID: die ID Ihrer Firestore-Datenbank.
    • COLLECTION_ID: die ID Ihrer Firestore-Sammlung.
    • RECONCILIATION_MODE: optional. Mögliche Werte sind FULL und INCREMENTAL. Der Standardwert ist INCREMENTAL. Wenn Sie INCREMENTAL angeben, werden die Daten aus Firestore in Ihrem Datenspeicher inkrementell aktualisiert. Dadurch wird ein Upsert-Vorgang ausgeführt, bei dem neue Dokumente hinzugefügt und vorhandene Dokumente durch aktualisierte Dokumente mit derselben ID ersetzt werden. Wenn Sie FULL angeben, werden die Dokumente in Ihrem Datenspeicher vollständig neu synchronisiert. Das bedeutet, dass Ihrem Datenspeicher neue und aktualisierte Dokumente hinzugefügt und Dokumente, die nicht in Firestore enthalten sind, aus Ihrem Datenspeicher entfernt werden. Der FULL-Modus ist hilfreich, wenn Sie nicht mehr benötigte Dokumente automatisch löschen möchten.
    • AUTO_GENERATE_IDS: optional. Gibt an, ob Dokument-IDs automatisch generiert werden sollen. Wenn dieser Wert auf true gesetzt ist, werden die Dokument-IDs auf Grundlage eines Nutzlast-Hash generiert. Beachten Sie, dass generierte Dokument-IDs bei mehreren Importvorgängen möglicherweise nicht gleich bleiben. Wenn Sie bei mehreren Importvorgängen IDs automatisch generieren, empfiehlt Google dringend, reconciliationMode auf FULL festzulegen, um die Dokument-IDs konsistent zu halten.
    • ID_FIELD: optional. Gibt an, welche Felder die Dokument-IDs enthalten.

Python

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

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

Datenspeicher erstellen


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"


def create_data_store_sample(
    project_id: str,
    location: str,
    data_store_id: str,
) -> str:
    #  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.DataStoreServiceClient(client_options=client_options)

    # The full resource name of the collection
    # e.g. projects/{project}/locations/{location}/collections/default_collection
    parent = client.collection_path(
        project=project_id,
        location=location,
        collection="default_collection",
    )

    data_store = discoveryengine.DataStore(
        display_name="My Data Store",
        # Options: GENERIC, MEDIA, HEALTHCARE_FHIR
        industry_vertical=discoveryengine.IndustryVertical.GENERIC,
        # Options: SOLUTION_TYPE_RECOMMENDATION, SOLUTION_TYPE_SEARCH, SOLUTION_TYPE_CHAT, SOLUTION_TYPE_GENERATIVE_CHAT
        solution_types=[discoveryengine.SolutionType.SOLUTION_TYPE_SEARCH],
        # TODO(developer): Update content_config based on data store type.
        # Options: NO_CONTENT, CONTENT_REQUIRED, PUBLIC_WEBSITE
        content_config=discoveryengine.DataStore.ContentConfig.CONTENT_REQUIRED,
    )

    request = discoveryengine.CreateDataStoreRequest(
        parent=parent,
        data_store_id=data_store_id,
        data_store=data_store,
        # Optional: For Advanced Site Search Only
        # create_advanced_site_search=True,
    )

    # Make the request
    operation = client.create_data_store(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.CreateDataStoreMetadata(operation.metadata)

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

    return operation.operation.name

Dokumente importieren

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"
# firestore_project_id = "YOUR_FIRESTORE_PROJECT_ID"
# firestore_database_id = "YOUR_FIRESTORE_DATABASE_ID"
# firestore_collection_id = "YOUR_FIRESTORE_COLLECTION_ID"

#  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,
    firestore_source=discoveryengine.FirestoreSource(
        project_id=firestore_project_id,
        database_id=firestore_database_id,
        collection_id=firestore_collection_id,
    ),
    # 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)

Nächste Schritte

  • Wenn Sie Ihren Datenspeicher an eine App anhängen möchten, erstellen Sie die App und wählen Sie Ihren Datenspeicher aus. Folgen Sie dazu der Anleitung unter Such-App erstellen.

  • Weitere Informationen zur Vorschau der Suchergebnisse nach Erstellung der App und des Datenspeichers.

Aus Bigtable importieren

Wenn Sie Daten aus Bigtable aufnehmen möchten, gehen Sie so vor, um einen Datenspeicher zu erstellen und Daten über die API aufzunehmen.

Bigtable-Zugriff einrichten

So gewähren Sie Vertex AI Search Zugriff auf Bigtable-Daten in einem anderen Projekt:

  1. Ersetzen Sie die folgende PROJECT_NUMBER-Variable durch die Projektnummer Ihres Vertex AI Search-Projekts und kopieren Sie dann den Inhalt dieses Codeblocks. Dies ist die Kennung Ihres Vertex AI Search-Dienstkontos:

    service-PROJECT_NUMBER@gcp-sa-discoveryengine.iam.gserviceaccount.com`
    
  2. Rufen Sie die Seite IAM und Verwaltung auf.

    IAM und Verwaltung

  3. Wechseln Sie auf der Seite IAM und Verwaltung zu Ihrem Bigtable-Projekt und klicken Sie auf Zugriff gewähren.

  4. Geben Sie unter Neue Hauptkonten die Kennung des Dienstkontos der Instanz ein. Wählen Sie die Rolle Bigtable > Bigtable Reader aus.

  5. Klicken Sie auf Speichern.

  6. Wechseln Sie zurück zu Ihrem Vertex AI Search-Projekt.

Gehen Sie dann zu Daten aus Bigtable importieren.

Daten aus Bigtable importieren

REST

So erstellen Sie einen Datenspeicher über die Befehlszeile und nehmen Daten aus Bigtable auf:

  1. Erstellen Sie einen Datenspeicher.

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -H "X-Goog-User-Project: PROJECT_ID" \
    "https://discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores?dataStoreId=DATA_STORE_ID" \
    -d '{
      "displayName": "DISPLAY_NAME",
      "industryVertical": "GENERIC",
      "solutionTypes": ["SOLUTION_TYPE_SEARCH"],
    }'
    

    Ersetzen Sie Folgendes:

    • PROJECT_ID: die Projekt-ID.
    • DATA_STORE_ID: die ID des Datenspeichers. Die ID darf nur Kleinbuchstaben, Ziffern, Unterstriche und Bindestriche enthalten.
    • DISPLAY_NAME: Der Anzeigename des Datenspeichers. Dies wird möglicherweise in der Google Cloud Console angezeigt.
  2. Importieren Sie Daten aus Bigtable.

      curl -X POST \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID/branches/0/documents:import" \
      -d '{
        "bigtableSource ": {
          "projectId": "BIGTABLE_PROJECT_ID",
          "instanceId": "INSTANCE_ID",
          "tableId": "TABLE_ID",
          "bigtableOptions": {
            "keyFieldName": "KEY_FIELD_NAME",
            "families": {
              "key": "KEY",
              "value": {
                "fieldName": "FIELD_NAME",
                "encoding": "ENCODING",
                "type": "TYPE",
                "columns": [
                  {
                    "qualifier": "QUALIFIER",
                    "fieldName": "FIELD_NAME",
                    "encoding": "COLUMN_ENCODING",
                    "type": "COLUMN_VALUES_TYPE"
                  }
                ]
              }
             }
             ...
          }
        },
        "reconciliationMode": "RECONCILIATION_MODE",
        "autoGenerateIds": "AUTO_GENERATE_IDS",
        "idField": "ID_FIELD",
      }'
    

    Ersetzen Sie Folgendes:

    • PROJECT_ID: Die ID Ihres Vertex AI Search-Projekts.
    • DATA_STORE_ID: die ID des Datenspeichers. Die ID darf nur Kleinbuchstaben, Ziffern, Unterstriche und Bindestriche enthalten.
    • BIGTABLE_PROJECT_ID: die ID Ihres Bigtable-Projekts.
    • INSTANCE_ID: die ID Ihrer Bigtable-Instanz.
    • TABLE_ID: die ID Ihrer Bigtable-Tabelle.
    • KEY_FIELD_NAME: optional, aber empfohlen. Der Feldname, der nach der Aufnahme in Vertex AI Search für den Zeilenschlüsselwert verwendet werden soll.
    • KEY: Erforderlich. Ein Stringwert für den Schlüssel der Spaltenfamilie.
    • ENCODING: optional. Der Codierungsmodus der Werte, wenn der Typ nicht STRING ist. Dieser kann für eine bestimmte Spalte überschrieben werden, indem Sie die Spalte in columns auflisten und eine Codierung dafür angeben.
    • COLUMN_TYPE: optional. Der Typ der Werte in dieser Spaltenfamilie.
    • QUALIFIER: erforderlich. Qualifizierer der Spalte.
    • FIELD_NAME: optional, aber empfohlen. Der Feldname, der nach der Aufnahme in Vertex AI Search für diese Spalte verwendet werden soll.
    • COLUMN_ENCODING: optional. Der Codierungsmodus der Werte für eine bestimmte Spalte, wenn der Typ nicht STRING ist.
    • RECONCILIATION_MODE: optional. Mögliche Werte sind FULL und INCREMENTAL. Der Standardwert ist INCREMENTAL. Wenn Sie INCREMENTAL angeben, werden die Daten aus Bigtable in Ihrem Datenspeicher inkrementell aktualisiert. Dadurch wird ein Upsert-Vorgang ausgeführt, bei dem neue Dokumente hinzugefügt und vorhandene Dokumente durch aktualisierte Dokumente mit derselben ID ersetzt werden. Wenn Sie FULL angeben, werden die Dokumente in Ihrem Datenspeicher vollständig neu synchronisiert. Das bedeutet, dass Ihrem Datenspeicher neue und aktualisierte Dokumente hinzugefügt und Dokumente, die nicht in Bigtable enthalten sind, aus Ihrem Datenspeicher entfernt werden. Der FULL-Modus ist hilfreich, wenn Sie nicht mehr benötigte Dokumente automatisch löschen möchten.
    • AUTO_GENERATE_IDS: optional. Gibt an, ob Dokument-IDs automatisch generiert werden sollen. Wenn dieser Wert auf true gesetzt ist, werden die Dokument-IDs auf Grundlage eines Nutzlast-Hash generiert. Beachten Sie, dass generierte Dokument-IDs bei mehreren Importvorgängen möglicherweise nicht gleich bleiben. Wenn Sie bei mehreren Importvorgängen IDs automatisch generieren, empfiehlt Google dringend, reconciliationMode auf FULL festzulegen, um die Dokument-IDs konsistent zu halten.

      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 das idField angeben. Andernfalls können die Dokumente nicht importiert werden.

    • ID_FIELD: optional. Gibt an, welche Felder die Dokument-IDs enthalten.

Python

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

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

Datenspeicher erstellen


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"


def create_data_store_sample(
    project_id: str,
    location: str,
    data_store_id: str,
) -> str:
    #  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.DataStoreServiceClient(client_options=client_options)

    # The full resource name of the collection
    # e.g. projects/{project}/locations/{location}/collections/default_collection
    parent = client.collection_path(
        project=project_id,
        location=location,
        collection="default_collection",
    )

    data_store = discoveryengine.DataStore(
        display_name="My Data Store",
        # Options: GENERIC, MEDIA, HEALTHCARE_FHIR
        industry_vertical=discoveryengine.IndustryVertical.GENERIC,
        # Options: SOLUTION_TYPE_RECOMMENDATION, SOLUTION_TYPE_SEARCH, SOLUTION_TYPE_CHAT, SOLUTION_TYPE_GENERATIVE_CHAT
        solution_types=[discoveryengine.SolutionType.SOLUTION_TYPE_SEARCH],
        # TODO(developer): Update content_config based on data store type.
        # Options: NO_CONTENT, CONTENT_REQUIRED, PUBLIC_WEBSITE
        content_config=discoveryengine.DataStore.ContentConfig.CONTENT_REQUIRED,
    )

    request = discoveryengine.CreateDataStoreRequest(
        parent=parent,
        data_store_id=data_store_id,
        data_store=data_store,
        # Optional: For Advanced Site Search Only
        # create_advanced_site_search=True,
    )

    # Make the request
    operation = client.create_data_store(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.CreateDataStoreMetadata(operation.metadata)

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

    return operation.operation.name

Dokumente importieren

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"
# bigtable_project_id = "YOUR_BIGTABLE_PROJECT_ID"
# bigtable_instance_id = "YOUR_BIGTABLE_INSTANCE_ID"
# bigtable_table_id = "YOUR_BIGTABLE_TABLE_ID"

#  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",
)

bigtable_options = discoveryengine.BigtableOptions(
    families={
        "family_name_1": discoveryengine.BigtableOptions.BigtableColumnFamily(
            type_=discoveryengine.BigtableOptions.Type.STRING,
            encoding=discoveryengine.BigtableOptions.Encoding.TEXT,
            columns=[
                discoveryengine.BigtableOptions.BigtableColumn(
                    qualifier="qualifier_1".encode("utf-8"),
                    field_name="field_name_1",
                ),
            ],
        ),
        "family_name_2": discoveryengine.BigtableOptions.BigtableColumnFamily(
            type_=discoveryengine.BigtableOptions.Type.INTEGER,
            encoding=discoveryengine.BigtableOptions.Encoding.BINARY,
        ),
    }
)

request = discoveryengine.ImportDocumentsRequest(
    parent=parent,
    bigtable_source=discoveryengine.BigtableSource(
        project_id=bigtable_project_id,
        instance_id=bigtable_instance_id,
        table_id=bigtable_table_id,
        bigtable_options=bigtable_options,
    ),
    # 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)

Nächste Schritte

  • Wenn Sie Ihren Datenspeicher an eine App anhängen möchten, erstellen Sie die App und wählen Sie Ihren Datenspeicher aus. Folgen Sie dazu der Anleitung unter Such-App erstellen.

  • Weitere Informationen zur Vorschau der Suchergebnisse nach Erstellung der App und des Datenspeichers.

Aus AlloyDB for PostgreSQL importieren

Wenn Sie Daten aus AlloyDB for PostgreSQL aufnehmen möchten, gehen Sie so vor, um einen Datenspeicher zu erstellen und Daten entweder über die Google Cloud Console oder die API aufzunehmen.

Wenn sich Ihre AlloyDB for PostgreSQL-Daten im selben Projekt wie das Vertex AI Search-Projekt befinden, lesen Sie den Abschnitt Daten aus AlloyDB for PostgreSQL importieren.

Wenn sich Ihre AlloyDB for PostgreSQL-Daten in einem anderen Projekt als Ihrem Vertex AI Search-Projekt befinden, lesen Sie den Abschnitt AlloyDB for PostgreSQL-Zugriff einrichten.

AlloyDB for PostgreSQL-Zugriff aus einem anderen Projekt einrichten

So gewähren Sie Vertex AI Search Zugriff auf AlloyDB for PostgreSQL-Daten in einem anderen Projekt:

  1. Ersetzen Sie die folgende PROJECT_NUMBER-Variable durch die Projektnummer Ihres Vertex AI Search-Projekts und kopieren Sie dann den Inhalt dieses Codeblocks. Dies ist die Kennung Ihres Vertex AI Search-Dienstkontos:

    service-PROJECT_NUMBER@gcp-sa-discoveryengine.iam.gserviceaccount.com
    
  2. Wechseln Sie zum Google Cloud -Projekt, in dem sich Ihre AlloyDB for PostgreSQL-Daten befinden.

  3. Rufen Sie die IAM-Seite auf.

    IAM

  4. Klicken Sie auf Zugriff gewähren.

  5. Geben Sie unter Neue Hauptkonten die Kennung des Vertex AI Search-Dienstkontos ein und wählen Sie die Rolle Cloud AlloyDB > Cloud AlloyDB-Administrator aus.

  6. Klicken Sie auf Speichern.

  7. Wechseln Sie zurück zu Ihrem Vertex AI Search-Projekt.

Daten aus AlloyDB for PostgreSQL importieren

Daten aus AlloyDB for PostgreSQL importieren

Console

So nehmen Sie Daten aus AlloyDB for PostgreSQL über die Console auf:

  1. Rufen Sie in der Google Cloud Console die Seite KI-Anwendungen auf.

    KI-Anwendungen

  2. Klicken Sie im Navigationsmenü auf Datenspeicher.

  3. Klicken Sie auf Datenspeicher erstellen.

  4. Wählen Sie auf der Seite Quelle die Option AlloyDB aus.

  5. Geben Sie die Projekt‑ID, die Standort‑ID, die Cluster‑ID, die Datenbank‑ID und die Tabellen‑ID der zu importierenden Daten an.

  6. Klicken Sie auf Weiter.

  7. Wählen Sie eine Region für Ihren Datenspeicher aus.

  8. Geben Sie einen Namen für den Datenspeicher ein.

  9. Klicken Sie auf Erstellen.

  10. Wenn Sie den Status der Aufnahme überprüfen möchten, rufen Sie die Seite Datenspeicher auf und klicken Sie auf den Namen des Datenspeichers. Dadurch werden die Details auf der Seite Daten angezeigt. Wenn sich die Statusspalte auf dem Tab Aktivität von In Bearbeitung zu Import abgeschlossen ändert, ist die Aufnahme abgeschlossen.

    Je nach Größe der Daten kann die Datenaufnahme einige Minuten bis mehrere Stunden dauern.

REST

So erstellen Sie einen Datenspeicher und nehmen Daten aus AlloyDB for PostgreSQL über die Befehlszeile auf:

  1. Erstellen Sie einen Datenspeicher.

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -H "X-Goog-User-Project: PROJECT_ID" \
    "https://discoveryengine.googleapis.com/v1beta/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores?dataStoreId=DATA_STORE_ID" \
    -d '{
      "displayName": "DISPLAY_NAME",
      "industryVertical": "GENERIC",
      "solutionTypes": ["SOLUTION_TYPE_SEARCH"],
    }'
    

    Ersetzen Sie Folgendes:

    • PROJECT_ID: die Projekt-ID.
    • DATA_STORE_ID: die ID des Datenspeichers. Die ID darf nur Kleinbuchstaben, Ziffern, Unterstriche und Bindestriche enthalten.
    • DISPLAY_NAME: Der Anzeigename des Datenspeichers. Dies wird möglicherweise in der Google Cloud Console angezeigt.
  2. Importieren Sie Daten aus AlloyDB for PostgreSQL.

      curl -X POST \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID/branches/0/documents:import" \
      -d '{
        "alloydbSource": {
          "projectId": "ALLOYDB_PROJECT_ID",
          "locationId": "LOCATION_ID",
          "clusterId": "CLUSTER_ID",
          "databaseId": "DATABASE_ID",
          "tableId": "TABLE_ID",
        },
        "reconciliationMode": "RECONCILIATION_MODE",
        "autoGenerateIds": "AUTO_GENERATE_IDS",
        "idField": "ID_FIELD",
      }'
    

    Ersetzen Sie Folgendes:

    • PROJECT_ID: Die ID Ihres Vertex AI Search-Projekts.
    • DATA_STORE_ID: die ID des Datenspeichers. Die ID darf nur Kleinbuchstaben, Ziffern, Unterstriche und Bindestriche enthalten.
    • ALLOYDB_PROJECT_ID: die ID Ihres AlloyDB for PostgreSQL-Projekts.
    • LOCATION_ID: die ID Ihres AlloyDB for PostgreSQL-Standorts.
    • CLUSTER_ID: die ID Ihres AlloyDB for PostgreSQL-Clusters.
    • DATABASE_ID: die ID Ihrer AlloyDB for PostgreSQL-Datenbank.
    • TABLE_ID: die ID Ihrer AlloyDB for PostgreSQL-Tabelle.
    • RECONCILIATION_MODE: optional. Mögliche Werte sind FULL und INCREMENTAL. Der Standardwert ist INCREMENTAL. Wenn Sie INCREMENTAL angeben, werden die Daten aus AlloyDB for PostgreSQL in Ihrem Datenspeicher inkrementell aktualisiert. Dadurch wird ein Upsert-Vorgang ausgeführt, bei dem neue Dokumente hinzugefügt und vorhandene Dokumente durch aktualisierte Dokumente mit derselben ID ersetzt werden. Wenn Sie FULL angeben, werden die Dokumente in Ihrem Datenspeicher vollständig neu synchronisiert. Das bedeutet, dass Ihrem Datenspeicher neue und aktualisierte Dokumente hinzugefügt und Dokumente, die nicht in AlloyDB for PostgreSQL enthalten sind, aus Ihrem Datenspeicher entfernt werden. Der FULL-Modus ist hilfreich, wenn Sie nicht mehr benötigte Dokumente automatisch löschen möchten.
    • AUTO_GENERATE_IDS: optional. Gibt an, ob Dokument-IDs automatisch generiert werden sollen. Wenn dieser Wert auf true gesetzt ist, werden die Dokument-IDs auf Grundlage eines Nutzlast-Hash generiert. Beachten Sie, dass generierte Dokument-IDs bei mehreren Importvorgängen möglicherweise nicht gleich bleiben. Wenn Sie bei mehreren Importvorgängen IDs automatisch generieren, empfiehlt Google dringend, reconciliationMode auf FULL festzulegen, um die Dokument-IDs konsistent zu halten.
    • ID_FIELD: optional. Gibt an, welche Felder die Dokument-IDs enthalten.

Python

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

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

Datenspeicher erstellen


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"


def create_data_store_sample(
    project_id: str,
    location: str,
    data_store_id: str,
) -> str:
    #  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.DataStoreServiceClient(client_options=client_options)

    # The full resource name of the collection
    # e.g. projects/{project}/locations/{location}/collections/default_collection
    parent = client.collection_path(
        project=project_id,
        location=location,
        collection="default_collection",
    )

    data_store = discoveryengine.DataStore(
        display_name="My Data Store",
        # Options: GENERIC, MEDIA, HEALTHCARE_FHIR
        industry_vertical=discoveryengine.IndustryVertical.GENERIC,
        # Options: SOLUTION_TYPE_RECOMMENDATION, SOLUTION_TYPE_SEARCH, SOLUTION_TYPE_CHAT, SOLUTION_TYPE_GENERATIVE_CHAT
        solution_types=[discoveryengine.SolutionType.SOLUTION_TYPE_SEARCH],
        # TODO(developer): Update content_config based on data store type.
        # Options: NO_CONTENT, CONTENT_REQUIRED, PUBLIC_WEBSITE
        content_config=discoveryengine.DataStore.ContentConfig.CONTENT_REQUIRED,
    )

    request = discoveryengine.CreateDataStoreRequest(
        parent=parent,
        data_store_id=data_store_id,
        data_store=data_store,
        # Optional: For Advanced Site Search Only
        # create_advanced_site_search=True,
    )

    # Make the request
    operation = client.create_data_store(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.CreateDataStoreMetadata(operation.metadata)

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

    return operation.operation.name

Dokumente importieren

from google.api_core.client_options import ClientOptions
from google.cloud import discoveryengine_v1 as 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"
# alloy_db_project_id = "YOUR_ALLOY_DB_PROJECT_ID"
# alloy_db_location_id = "YOUR_ALLOY_DB_LOCATION_ID"
# alloy_db_cluster_id = "YOUR_ALLOY_DB_CLUSTER_ID"
# alloy_db_database_id = "YOUR_ALLOY_DB_DATABASE_ID"
# alloy_db_table_id = "YOUR_ALLOY_DB_TABLE_ID"

# 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,
    alloy_db_source=discoveryengine.AlloyDbSource(
        project_id=alloy_db_project_id,
        location_id=alloy_db_location_id,
        cluster_id=alloy_db_cluster_id,
        database_id=alloy_db_database_id,
        table_id=alloy_db_table_id,
    ),
    # 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)

Nächste Schritte

  • Wenn Sie Ihren Datenspeicher an eine App anhängen möchten, erstellen Sie die App und wählen Sie Ihren Datenspeicher aus. Folgen Sie dazu der Anleitung unter Such-App erstellen.

  • Weitere Informationen zur Vorschau der Suchergebnisse nach Erstellung der App und des Datenspeichers.

Strukturierte JSON-Daten mit der API hochladen

So laden Sie ein JSON-Dokument oder -Objekt direkt über die API hoch:

Bevor Sie Ihre Daten importieren, müssen Sie sie für die Aufnahme vorbereiten.

REST

So erstellen Sie einen Datenspeicher über die Befehlszeile und importieren strukturierte JSON-Daten:

  1. Erstellen Sie einen Datenspeicher.

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -H "X-Goog-User-Project: PROJECT_ID" \
    "https://discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores?dataStoreId=DATA_STORE_ID" \
    -d '{
      "displayName": "DATA_STORE_DISPLAY_NAME",
      "industryVertical": "GENERIC",
      "solutionTypes": ["SOLUTION_TYPE_SEARCH"]
    }'
    

    Ersetzen Sie Folgendes:

    • PROJECT_ID: Die ID Ihres Projekts in Google Cloud .
    • DATA_STORE_ID: Die ID des Vertex AI Search-Datenspeichers, den Sie erstellen möchten. Diese ID darf nur Kleinbuchstaben, Ziffern, Unterstriche und Bindestriche enthalten.
    • DATA_STORE_DISPLAY_NAME: Der Anzeigename des Vertex AI Search-Datenspeichers, den Sie erstellen möchten.
  2. Strukturierte Daten importieren

    Es gibt verschiedene Möglichkeiten, Daten hochzuladen:

    • Laden Sie ein JSON-Dokument hoch.

      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?documentId=DOCUMENT_ID" \
      -d '{
        "jsonData": "JSON_DOCUMENT_STRING"
      }'
      

      Ersetzen Sie Folgendes:

      • DOCUMENT_ID: eine eindeutige ID für das Dokument. Diese ID darf bis zu 63 Zeichen lang sein und darf nur Kleinbuchstaben, Ziffern, Unterstriche und Bindestriche enthalten.
      • JSON_DOCUMENT_STRING: Das JSON-Dokument als einzelner String. Dies muss dem JSON-Schema entsprechen, das Sie im vorherigen Schritt angegeben haben, z. B.:

        { \"title\": \"test title\", \"categories\": [\"cat_1\", \"cat_2\"], \"uri\": \"test uri\"}
        
    • Laden Sie ein JSON-Objekt hoch.

      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?documentId=DOCUMENT_ID" \
      -d '{
        "structData": JSON_DOCUMENT_OBJECT
      }'
      

      Ersetzen Sie JSON_DOCUMENT_OBJECT durch das JSON-Dokument als JSON-Objekt. Dies muss dem JSON-Schema entsprechen, das Sie im vorherigen Schritt angegeben haben, z. B.:

       {
         "title": "test title",
         "categories": [
           "cat_1",
           "cat_2"
         ],
         "uri": "test uri"
       }
      
    • Mit einem JSON-Dokument aktualisieren.

      curl -X PATCH \
      -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/DOCUMENT_ID" \
      -d '{
        "jsonData": "JSON_DOCUMENT_STRING"
      }'
      
    • Mit einem JSON-Objekt aktualisieren.

      curl -X PATCH \
      -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/DOCUMENT_ID" \
      -d '{
        "structData": JSON_DOCUMENT_OBJECT
      }'
      

Nächste Schritte

  • Wenn Sie Ihren Datenspeicher an eine App anhängen möchten, erstellen Sie die App und wählen Sie Ihren Datenspeicher aus. Folgen Sie dazu der Anleitung unter Such-App erstellen.

  • Weitere Informationen zur Vorschau der Suchergebnisse nach Erstellung der App und des Datenspeichers.

Fehlerbehebung bei der Datenaufnahme

Wenn Probleme bei der Datenerfassung auftreten, lesen Sie die folgenden Tipps:

  • Wenn Sie vom Kunden verwaltete Verschlüsselungsschlüssel verwenden und der Datenimport fehlschlägt (mit der Fehlermeldung The caller does not have permission), prüfen Sie, ob dem Cloud Storage-Dienst-Agent die IAM-Rolle „CryptoKey Encrypter/Decrypter“ (roles/cloudkms.cryptoKeyEncrypterDecrypter) für den Schlüssel zugewiesen wurde. Weitere Informationen finden Sie unter Vorbereitung im Artikel „Vom Kunden verwaltete Verschlüsselungsschlüssel“.

  • Wenn Sie die erweiterte Website-Indexierung verwenden und die Dokumentnutzung für den Datenspeicher viel niedriger ist als erwartet, überprüfen Sie die URL-Muster, die Sie für die Indexierung angegeben haben. Achten Sie darauf, dass die angegebenen URL-Muster die Seiten abdecken, die Sie indexieren möchten, und erweitern Sie sie bei Bedarf. Wenn Sie beispielsweise *.en.example.com/* verwendet haben, müssen Sie möglicherweise *.example.com/* den Websites hinzufügen, die indexiert werden sollen.

Datenspeicher mit Terraform erstellen

Sie können mit Terraform einen leeren Datenspeicher erstellen. Nachdem der leere Datenspeicher erstellt wurde, können Sie Daten in den Datenspeicher aufnehmen. Verwenden Sie dazu die Google Cloud Console oder API-Befehle.

Informationen zum Anwenden oder Entfernen einer Terraform-Konfiguration finden Sie unter Grundlegende Terraform-Befehle.

Informationen zum Erstellen eines leeren Datenspeichers mit Terraform finden Sie unter google_discovery_engine_data_store.

Drittanbieter-Datenquelle verbinden

Das Verbinden von Drittanbieter-Datenquellen mit Vertex AI Search ist nur für Nutzer auf der Zulassungsliste möglich.

Wenn Sie auf der geschlossenen Zulassungsliste für dieses Feature stehen, finden Sie in der Gemini Enterprise-Dokumentation eine Anleitung zum Verbinden einer Drittanbieter-Datenquelle. Die Vorgehensweisen sind dieselben, unabhängig davon, ob Sie Connectors in Vertex AI Search oder Gemini Enterprise erstellen.