Suchdatenspeicher erstellen

Um einen Datenspeicher zu erstellen und Daten für die Suche aufzunehmen, gehen Sie zum Abschnitt für die Quelle, die Sie verwenden möchten:

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

Datenspeicher mit Websiteinhalten erstellen

So erstellen Sie einen Datenspeicher und indexieren Websites:

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

Console

Wenn Sie mit der Google Cloud Console einen Datenspeicher erstellen und Websites indexieren möchten, folgen Sie diese Schritte:

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

    Zum Agent Builder

  2. Klicken Sie im Navigationsmenü auf Datenspeicher.

  3. Klicken Sie auf Datenspeicher erstellen.

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

  5. Wählen Sie aus, ob die erweiterte Websiteindexierung für diesen Datenspeicher aktiviert werden soll. Diese Option kann später nicht mehr aktiviert oder deaktiviert werden.

    Die erweiterte Websiteindexierung bietet zusätzliche Funktionen wie Suchsummen, Suchanfragen mit Nachfragen und extrahierte Antworten. Erweitert Für die Websiteindexierung fallen zusätzliche Kosten an und Sie müssen die Domain bestätigen Eigentumsrechte für eine Website, 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, die Sie in Ihren Datenspeicher aufnehmen möchten. Eine URL einfügen Muster pro Zeile ohne Kommatrennzeichen. Beispiel: www.example.com/docs/*

  7. Optional: Geben Sie im Feld Auszuschließende Websites URL-Muster ein, die aus Ihrem Datenspeicher ausgeschlossen werden sollen.

    Informationen zur Anzahl der URL-Muster, die Sie ein- oder ausschließen können, finden Sie unter Websitedaten.

  8. Klicken Sie auf Weiter.

  9. Wählen Sie einen Standort für den Datenspeicher aus. Die erweiterte Websiteindexierung muss aktiviert ist, um einen Standort auszuwählen.

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

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

  12. Klicken Sie in der Spalte Name auf den Namen des Datenspeichers, um Informationen dazu aufzurufen. Ihre Datenspeicherseite 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 Ihr Kontingent unterschreitet (die Anzahl der Seiten auf den Websites, die von Ihnen angegebene Anzahl von Dokumenten die „Anzahl der Dokumente pro Projekt“ überschreitet Kontingent für Ihr Projekt), eine zusätzliche Warnung werden Sie aufgefordert, Ihr Kontingent zu erhöhen.
  13. Um die Domains für die URL-Muster in Ihrem Datenspeicher zu überprüfen, folgen Sie der auf der Seite Websitedomains bestätigen.

  14. So erhöhen Sie Ihr Kontingent:

    1. Klicken Sie auf Kontingent aktualisieren. Die Seite IAM & Verwaltung der Google Cloud Console wird angezeigt.
    2. Folgen Sie der Anleitung unter Höheres Kontingent anfordern in der Google Cloud-Dokumentation. Das Kontingent, das erhöht werden soll, 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 Agent Builder 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 sehen Sie, dass die Indexierung für die Websites, die das Kontingent überschritten haben, noch nicht abgeschlossen ist. Wenn in der Spalte Status für eine URL Indexiert angezeigt wird, sind für diese URL oder dieses URL-Muster erweiterte Funktionen zur Websiteindexierung 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 Agent Builder Python API.

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

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

  • Wenn Sie Ihren Websitedatenspeicher an eine App anhängen möchten, erstellen Sie eine App mit aktivierten Enterprise-Funktionen und wählen Sie Ihren Datenspeicher wie unter Suchanwendung erstellen beschrieben aus.

  • Eine Vorschau, wie Ihre Suchergebnisse nach der Einrichtung Ihrer App und Ihres Datenspeichers aussehen, finden Sie unter Suchergebnisse abrufen.

Aus BigQuery importieren

Es gibt zwei Möglichkeiten, Datenspeicher aus BigQuery-Tabellen zu erstellen:

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

  • Regelmäßige Aufnahme: Sie importieren Daten aus einem oder mehreren BigQuery. und Sie legen eine Synchronisierungshäufigkeit fest, mit der bestimmt wird, wie oft die Daten mit den neuesten Daten aus BigQuery aktualisiert. Dataset.

In der folgenden Tabelle werden die beiden Möglichkeiten zum Importieren von BigQuery-Daten in Vertex AI Search-Datenspeicher verglichen.

Einmalige Datenaufnahme Regelmäßige Datenaufnahme
Allgemein verfügbar (GA). Öffentliche Vorschau.
Die Daten müssen manuell aktualisiert werden. Die Daten werden automatisch alle 1, 3 oder 5 Tage aktualisiert. Daten dürfen nicht manuell aktualisiert.
Vertex AI Search erstellt einen einzelnen Datenspeicher aus einer Tabelle in BigQuery. Vertex AI Search erstellt einen Datenconnector für ein BigQuery-Dataset und einen Datenspeicher (Entitätsdatenspeicher) für jede angegebene Tabelle. Für die einzelnen Daten Connector enthält, müssen die Tabellen denselben Datentyp haben (z. B. strukturiert) und sich im selben BigQuery-Dataset befinden.
Daten aus mehreren Tabellen können in einem Datenspeicher kombiniert werden, indem zuerst Daten aus einer Tabelle und dann weitere Daten aus einer anderen Quelle oder BigQuery-Tabelle aufgenommen werden. Da der manuelle Datenimport nicht unterstützt wird, werden die Daten in einer Entität Datenspeicher kann nur aus einer einzigen BigQuery-Tabelle bezogen werden.
Die Zugriffssteuerung für Datenquellen wird unterstützt. Die Zugriffssteuerung für Datenquellen wird nicht unterstützt. Die importierten Daten können Zugriffssteuerungen enthalten, diese werden aber nicht berücksichtigt.
Sie können einen Datenspeicher entweder über die Google Cloud Console oder die API erstellen. Sie müssen die Console verwenden, um Datenconnectors und ihre Entitätsdatenspeicher zu erstellen.
CMEK-kompatibel. Nicht CMEK-konform.

Einmal aus BigQuery importieren

Wenn Sie Daten aus einer BigQuery-Tabelle aufnehmen möchten, führen Sie die folgenden Schritte aus. einen Datenspeicher erstellen und Daten über die Google Cloud Console oder die API aufnehmen.

Lesen Sie vor dem Importieren Ihrer Daten den Hilfeartikel Daten für die Aufnahme vorbereiten.

Console

So verwenden Sie die Google Cloud Console zum Aufnehmen von Daten aus BigQuery: diese Schritte:

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

    Zum Agent Builder

  2. Rufen Sie die Seite Datenspeicher auf.

  3. Klicken Sie auf Neuer Datenspeicher.

  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 Einmal.

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

  8. Klicken Sie auf Weiter.

  9. Wenn Sie strukturierte Daten einmalig importieren:

    1. Felder Schlüsselattributen zuordnen

    2. Wenn dem Schema wichtige Felder fehlen, können Sie sie mit Neues Feld hinzufügen hinzufügen.

      Weitere Informationen finden Sie unter Automatische Erkennung und bearbeiten.

    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. Den Status der Datenaufnahme können Sie auf der Seite Datenspeicher prüfen. Klicken Sie dazu auf den Namen des Datenspeichers, um auf der Seite Daten Details dazu aufzurufen. Wenn sich der Status in der Spalte „Status“ auf dem Tab Aktivität von In Bearbeitung zu Import abgeschlossen ändert, ist die Datenaufnahme abgeschlossen.

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

REST

Um über die Befehlszeile einen Datenspeicher zu erstellen und Daten aus Gehen Sie in BigQuery wie folgt vor:

  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 ist die ID Ihres Google Cloud-Projekts.
    • DATA_STORE_ID: Die ID des Vertex AI Search-Datenspeichers, den Sie erstellen möchten. Die 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 Dokument-Parsing konfigurieren oder das Dokument-Chunking für RAG aktivieren möchten, geben Sie das documentProcessingConfig-Objekt an und fügen Sie es der Anfrage zum Erstellen des Datenspeichers hinzu. Konfigurieren eines Der OCR-Parser für PDFs wird empfohlen, wenn Sie gescannte PDFs aufnehmen. So funktioniert's Informationen zum Konfigurieren der Optionen für das Parsen oder Aufteilen finden Sie unter Parsen und Aufteilen Dokumente.

  2. Importieren Sie Daten aus BigQuery.

    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 ist die ID Ihres Google Cloud-Projekts.
    • DATA_STORE_ID: die ID des Vertex AI Search-Datenspeichers.
    • DATASET_ID: die ID des BigQuery- Dataset.
    • TABLE_ID: Die ID der BigQuery-Tabelle.
      • Wenn sich die BigQuery-Tabelle nicht unter PROJECT_ID, Sie müssen dem Dienstkonto service-<project number>@gcp-sa-discoveryengine.iam.gserviceaccount.com „BigQuery-Datenbetrachter“ Berechtigung für die BigQuery-Tabelle. Wenn Sie beispielsweise eine BigQuery-Tabelle aus dem Quellprojekt „123“ bis Zielprojekt "456", geben Sie service-456@gcp-sa-discoveryengine.iam.gserviceaccount.com Berechtigungen für die BigQuery-Tabelle unter Projekt „123“.
    • DATA_SCHEMA: Optional. Mögliche Werte sind document und custom. Der Standardwert ist document.
      • document: Die verwendete BigQuery-Tabelle muss dem Standard-BigQuery-Schema entsprechen, das unter Daten für die Datenaufnahme vorbereiten beschrieben wird. Sie können die ID jedes Dokuments selbst definieren und alle Daten in den String „jsonData“ einfügen.
      • custom: Beliebige BigQuery-Tabelle Schema akzeptiert und Vertex AI Search generiert die IDs für jedes importierte Dokument.
    • ERROR_DIRECTORY: Optional. Ein Cloud Storage-Verzeichnis nach 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 erstellt.
    • RECONCILIATION_MODE: Optional. Mögliche Werte: FULL und INCREMENTAL. Der Standardwert ist INCREMENTAL. INCREMENTAL angeben führt zu einer inkrementellen Aktualisierung der Daten aus BigQuery. zu Ihrem Datenspeicher. Dadurch wird ein Upsert-Vorgang ausgeführt, bei dem neue Dokumente hinzugefügt und vorhandene Dokumente durch aktualisierte Dokumente mit derselben ID ersetzt werden. Die Angabe von FULL führt zu einer vollständigen Rebase der Dokumente in Ihrem Datenspeicher. Mit anderen Worten: Ihrem Datenspeicher werden neue und aktualisierte Dokumente hinzugefügt und Dokumente, die nicht in BigQuery vorhanden sind, werden daraus entfernt. Die Der FULL-Modus ist hilfreich, wenn du Dokumente automatisch löschen möchtest die Sie nicht mehr benötigen.
    • AUTO_GENERATE_IDS: Optional. Gibt an, ob automatisch Dokument-IDs generieren. Wenn true festgelegt ist, werden Dokument-IDs werden auf Basis eines Hashwerts der Nutzlast generiert. Das generierte Dokument-IDs bleiben möglicherweise bei mehreren Importen nicht einheitlich. Wenn Sie IDs bei mehreren Importen automatisch generieren, sollten Sie reconciliationMode auf FULL festlegen, um einheitliche Dokument-IDs zu erhalten.

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

    • ID_FIELD: Optional. Gibt an, welche Felder die Dokument-IDs sind. Bei BigQuery-Quelldateien gibt idField den Namen der Spalte in der BigQuery-Tabelle an, die die Dokument-IDs enthält.

      idField nur angeben, wenn (1) bigquerySource.dataSchema festgelegt ist auf custom und (2) auto_generate_ids ist auf false festgelegt oder ist nicht angegeben. 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 wird das Feld Dokumente konnten nicht importiert werden.

C#

Weitere Informationen finden Sie in der Vertex AI Agent Builder C# API Referenzdokumentation.

Richten Sie Standardanmeldedaten für Anwendungen ein, um sich bei Vertex AI Agent Builder zu authentifizieren. 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,
            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 = "",
        };
        // 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 Agent Builder Go API.

Richten Sie Standardanmeldedaten für Anwendungen ein, um sich bei Vertex AI Agent Builder zu authentifizieren. 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 Agent Builder Java API.

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

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")
              .build();
      ImportDocumentsResponse response = documentServiceClient.importDocumentsAsync(request).get();
    }
  }
}

Node.js

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

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

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.
 */
/**
 *  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'

// 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 Vertex AI Agent Builder Python API Referenzdokumentation.

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

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 Agent Builder Ruby API.

Richten Sie Standardanmeldedaten für Anwendungen ein, um sich bei Vertex AI Agent Builder zu authentifizieren. 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 regelmäßiger Synchronisierung eine Verbindung zu BigQuery herstellen

Prüfen Sie vor dem Datenimport, Daten für die Aufnahme vorbereiten

Im Folgenden wird beschrieben, wie Sie einen Daten-Connector erstellen, der Ein BigQuery-Dataset mit Vertex AI Search-Daten und wie Sie für jeden Datenspeicher, den Sie nutzen möchten, zu erstellen. Datenspeicher, die untergeordnete Elemente von Datenanschlüssen sind, werden als Entitätsdatenspeicher bezeichnet.

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

Console

Wenn Sie mit der Google Cloud Console einen Connector erstellen möchten, der regelmäßig Daten synchronisiert aus einem BigQuery-Dataset in Vertex AI Search übertragen, Schritte:

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

    Zum Agent Builder

  2. Klicken Sie im Navigationsmenü auf Datenspeicher.

  3. Klicken Sie auf Datenspeicher erstellen.

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

  5. Wählen Sie die Art der Daten aus, die Sie importieren.

  6. Klicken Sie auf Regelmäßig.

  7. Wählen Sie unter Synchronisierungshäufigkeit die Häufigkeit aus, mit der die Vertex AI Search-Connector zur Synchronisierung mit BigQuery Dataset. Sie können die Häufigkeit später ändern.

  8. Klicken Sie im Feld BigQuery-Dataset-Pfad auf Durchsuchen und wählen Sie das Dataset aus. die die Tabellen enthält, die Sie für die Datenaufnahme. Alternativ können Sie den Speicherort der Tabelle direkt eingeben im Feld BigQuery-Pfad ein. Das Format für den Pfad ist projectname.datasetname.

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

  10. Wenn es zusätzliche Tabellen in dem Dataset gibt, die Sie für klicken Sie auf Tabelle hinzufügen und geben Sie diese Tabellen ebenfalls an.

  11. Klicken Sie auf Weiter.

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

    Sie haben jetzt einen Daten-Connector erstellt, der regelmäßig Daten synchronisiert mit dem BigQuery-Dataset. Und Sie haben mindestens eine Entität erstellt. Datenspeichern verwendet werden. Die Datenspeicher haben dieselben Namen wie die BigQuery-Tabellen.

  13. Den Status der Aufnahme können Sie auf der Seite Datenspeicher prüfen. und klicken Sie auf den Namen des Daten-Connectors, um im Bereich Daten Seite > Tab Datenaufnahmeaktivität. Wenn sich der Status in der Spalte „Status“ auf dem Tab Aktivität von In Bearbeitung zu Erfolgreich ändert, ist die erste Datenaufnahme abgeschlossen.

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

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

Nächste Schritte

  • Erstellen Sie eine Anwendung und wählen Sie Ihren Datenspeicher aus, um Ihren Datenspeicher an eine Anwendung anzuhängen indem Sie die Schritte in Erstellen Sie eine Suchanwendung.

  • So sehen Sie sich eine Vorschau der Suchergebnisse an, die nach der Erstellung Ihrer App und Ihres Datenspeichers angezeigt werden. finden Sie unter Suchergebnisse abrufen

Aus Cloud Storage importieren

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

  • Einmalige Datenaufnahme: 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 Aktualisieren Sie die Daten manuell.

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

In der folgenden Tabelle werden die beiden Möglichkeiten zum Importieren von Cloud Storage-Daten in Vertex AI Search-Datenspeicher verglichen.

Einmalige Datenaufnahme Regelmäßige Datenaufnahme
Allgemein verfügbar (GA). Öffentliche Vorschau.
Die Daten müssen manuell aktualisiert werden. Die 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 einem Ordner oder Datei in Cloud Storage. Vertex AI Search erstellt einen Datenconnector und verknüpft ihn mit einem Datenspeicher (Entitätsdatenspeicher) für die angegebene Datei oder den angegebenen Ordner. Jeder Cloud Storage-Daten-Connector kann einen einzelnen Entitätsdatenspeicher haben.
Daten aus mehreren Dateien, Ordnern und Buckets können in einem zusammengefasst werden indem Sie Daten von einem Cloud Storage-Speicherort aufnehmen und dann weitere Daten von einem anderen Speicherort. Da der manuelle Datenimport nicht unterstützt wird, können die Daten in einem Entitätsdatenspeicher nur aus einer Cloud Storage-Datei oder einem Cloud Storage-Ordner stammen.
Die Zugriffssteuerung für Datenquellen wird unterstützt. Weitere Informationen finden Sie unter Zugriffssteuerung für Datenquellen: Die Zugriffssteuerung für Datenquellen wird nicht unterstützt. Die importierten Daten können Zugriffssteuerungen enthalten, die jedoch nicht berücksichtigt werden.
Sie können einen Datenspeicher entweder über die Google Cloud Console oder die API erstellen. Sie müssen die Console verwenden, um Daten-Connectors und ihre Entität zu erstellen Datenspeichern verwendet werden.
CMEK-konform. Nicht CMEK-konform.

Einmal aus Cloud Storage importieren

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

Prüfen Sie vor dem Datenimport, Daten für die Aufnahme vorbereiten

Console

So verwenden Sie die Console zum Aufnehmen von Daten aus einem Cloud Storage-Bucket: Schritte:

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

    Zum Agent Builder

  2. Rufen Sie die Seite Datenspeicher auf.

  3. Klicken Sie auf Neuer Datenspeicher.

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

  5. Wählen Sie im Bereich Zu importierenden Ordner oder zu importierende Datei auswählen die Option Ordner oder Datei aus.

  6. Klicken Sie auf Durchsuchen, wählen Sie die Daten aus, die Sie für die Datenaufnahme vorbereitet haben, und klicken Sie dann auf Auswählen. Alternativ können Sie den Standort 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. Felder Schlüsselattributen zuordnen

    2. Wenn dem Schema wichtige Felder fehlen, können Sie sie mit Neues Feld hinzufügen hinzufügen.

      Weitere Informationen finden Sie unter Automatische Erkennung und bearbeiten.

    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 Optionen für die Textanalyse und das Chunking für Ihre Dokumente auswählen. Informationen zum Vergleichen von Parsern finden Sie unter Dokumente parsen. Informationen zum Chunking finden Sie unter Dokumente für RAG in Chunks aufteilen.

    Für den OCR-Parser und Layoutparser können zusätzliche Kosten anfallen. Siehe Dokument Preise für KI-Funktionen

    Um einen Parser auszuwählen, maximieren Sie Optionen für die Dokumentverarbeitung und geben Sie Parseroptionen, die Sie verwenden möchten.

  13. Klicken Sie auf Erstellen.

  14. Den Status der Aufnahme können Sie auf der Seite Datenspeicher prüfen. und klicken Sie auf den Namen des Datenspeichers, um Details dazu auf der Seite Daten anzuzeigen. Wenn sich der Status in der Spalte „Status“ auf dem Tab Aktivität von In Bearbeitung zu Import abgeschlossen ändert, ist die Datenaufnahme abgeschlossen.

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

REST

So erstellen Sie mit der Befehlszeile einen Datenspeicher 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"],
      "contentConfig": "CONTENT_REQUIRED",
    }'
    

    Ersetzen Sie Folgendes:

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

    Optional: Zum Konfigurieren des Dokument-Parsings oder zum Aktivieren von Dokumenten RAG-Chunking haben, geben Sie die documentProcessingConfig -Objekt und fügen es in Ihre Anfrage zum Erstellen des Datenspeichers ein. Wenn Sie gescannte PDFs aufnehmen, wird empfohlen, einen OCR-Parser für PDFs zu konfigurieren. Informationen zum Konfigurieren von Optionen für das Parsen oder Chunking finden Sie unter Dokumente parsen und in Chunks aufteilen.

  2. Daten aus Cloud Storage 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 '{
        "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 ist die ID Ihres Google Cloud-Projekts.
    • DATA_STORE_ID: die ID des Vertex AI Search-Datenspeichers.
    • INPUT_FILE_PATTERN: Ein Dateimuster in Cloud Storage, das Ihre Dokumente enthält.

      Bei strukturierten Daten oder unstrukturierten Daten mit Metadaten Ein Beispiel für das Muster der Eingabedatei gs://<your-gcs-bucket>/directory/object.jsonund ein Beispiel für Musterabgleich für eine oder mehrere Dateien gs://<your-gcs-bucket>/directory/*.json.

      Ein Beispiel für unstrukturierte Dokumente ist gs://<your-gcs-bucket>/directory/*.pdf. Jede Datei, die mit dem Muster übereinstimmt, 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 Berechtigungen „Storage-Objekt-Betrachter“ für den Cloud Storage-Bucket zuweisen. Für Wenn Sie beispielsweise einen Cloud Storage-Bucket aus einem Quellprojekt „123“ an das Zielprojekt "456" an, service-456@gcp-sa-discoveryengine.iam.gserviceaccount.com Berechtigungen für den Cloud Storage-Bucket unter Projekt „123“.

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

      • document: Laden Sie unstrukturierte Daten mit Metadaten für unstrukturierte Dokumente hoch. Jede Zeile der Datei muss einem der folgenden Formate entsprechen. Sie können die ID jedes Dokuments 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: Laden Sie JSON für strukturierte Dokumente hoch. Die Daten sind nach einem Schema organisiert. Sie können das Schema angeben. Andernfalls wird es automatisch erkannt. Sie können den JSON-String des in einem einheitlichen Format direkt in jeder Zeile Vertex AI Search generiert die IDs automatisch für jedes importierte Dokument.

      • content: Unstrukturierte Dokumente hochladen (PDF, HTML, DOC, TXT, PPTX). Die ID jedes Dokuments wird automatisch als die ersten 128 Bit von SHA256(GCS_URI) generiert, die als Hexadezimalstring codiert sind. Sie können mehrere Eingabedateimuster angeben, solange die Anzahl der übereinstimmenden Dateien die Grenze von 100.000 Dateien nicht überschreitet.

      • csv: Fügen Sie Ihrer CSV-Datei eine Kopfzeile hinzu, wobei jeder Kopfzeile ein Dokumentfeld zugeordnet ist. Geben Sie im Feld inputUris den Pfad zur CSV-Datei an.

    • ERROR_DIRECTORY: Optional. Ein Cloud Storage-Verzeichnis nach Fehlerinformationen zum Import, z. B. gs://<your-gcs-bucket>/directory/import_errors Wir empfehlen, dieses Feld leer zu lassen, damit Vertex AI Search automatisch ein temporäres Verzeichnis erstellt.

    • RECONCILIATION_MODE: Optional. Mögliche Werte: FULL und INCREMENTAL. Der Standardwert ist INCREMENTAL. Wenn Sie INCREMENTAL angeben, werden die Daten aus Cloud Storage inkrementell in Ihrem Datenspeicher aktualisiert. Dadurch wird ein Upsert-Vorgang ausgeführt, bei dem neue Dokumente hinzugefügt werden. und ersetzt vorhandene Dokumente durch aktualisierte Dokumente ID. Wenn Sie FULL angeben, werden die Dokumente in Ihrem Datenspeicher vollständig neu ausgerichtet. Mit anderen Worten: Neue und aktualisierte Dokumente werden und Dokumente, die sich nicht in Cloud Storage befinden, die aus Ihrem Datenspeicher entfernt wurden. Der Modus FULL ist hilfreich, wenn Sie Dokumente, die Sie nicht mehr benötigen, 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 Dokument-IDs basierend auf einem Hash der Nutzlast generiert. Die generierten Dokument-IDs bleiben bei mehreren Importen möglicherweise nicht gleich. Wenn Sie IDs bei mehreren Importen automatisch generieren, empfehlen wir Ihnen, reconciliationMode auf FULL festzulegen, um einheitliche Dokument-IDs beizubehalten.

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

    • ID_FIELD: Optional. Gibt an, welche Felder Dokument-IDs. Bei Cloud Storage-Quelldokumenten gibt idField den Namen in den JSON-Feldern an, die Dokument-IDs sind. Wenn {"my_id":"some_uuid"} beispielsweise das Feld für die Dokument-ID in einem Ihrer Dokumente 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 in folgenden Fällen an: (1) gcsSource.dataSchema ist festgelegt auf custom oder csv und (2) auto_generate_ids ist auf false oder ist nicht angegeben. Andernfalls wird der Fehler INVALID_ARGUMENT zurückgegeben.

      Der Wert des Cloud Storage-JSON-Felds muss Stringtyp, muss 1 bis 63 Zeichen lang sein und den RFC-1034. Andernfalls wird das Feld Dokumente konnten nicht importiert werden.

      Der in id_field angegebene JSON-Feldname muss einen der folgenden Werte enthalten: Stringtyp, muss zwischen 1 und 63 Zeichen lang sein und muss nach RFC-1034. Andernfalls wird das Feld Dokumente konnten nicht importiert werden.

C#

Weitere Informationen finden Sie in der Vertex AI Agent Builder C# API Referenzdokumentation.

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

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,
            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 = "",
        };
        // 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 Vertex AI Agent Builder Go API Referenzdokumentation.

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

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 Vertex AI Agent Builder Java API Referenzdokumentation.

Richten Sie Standardanmeldedaten für Anwendungen ein, um sich bei Vertex AI Agent Builder zu authentifizieren. 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")
              .build();
      ImportDocumentsResponse response = documentServiceClient.importDocumentsAsync(request).get();
    }
  }
}

Node.js

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

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

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.
 */
/**
 *  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'

// 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 Agent Builder Python API.

Richten Sie Standardanmeldedaten für Anwendungen ein, um sich bei Vertex AI Agent Builder zu authentifizieren. 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 Vertex AI Agent Builder Ruby API Referenzdokumentation.

Richten Sie Standardanmeldedaten für Anwendungen ein, um sich bei Vertex AI Agent Builder zu authentifizieren. 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 Ihrer Daten den Hilfeartikel Daten für die Aufnahme vorbereiten.

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

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

Console

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

    Zum Agent Builder

  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 Daten Sie importieren.

  6. Klicken Sie auf Regelmäßig.

  7. Wählen Sie die Häufigkeit der Synchronisierung aus, mit der 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 Zu importierenden Ordner oder zu importierende Datei auswählen die Option Ordner oder Datei aus.

  9. Klicken Sie auf Durchsuchen und wählen Sie die Daten aus, die Ihnen zur Verfügung stehen. für die Aufnahme vorbereitet aus und klicken Sie dann auf Auswählen. Alternativ können Sie den Standort 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 das Parsen und Segmentierungsoptionen für Ihre Dokumente. Einen Vergleich von Parsern finden Sie unter Parser Dokumente. Weitere Informationen zur Aufteilung finden Sie unter Aufteilen von Dokumenten für RAG

    Für den OCR-Parser und Layoutparser können zusätzliche Kosten anfallen. Siehe Dokument Preise für KI-Funktionen

    Wenn Sie einen Parser auswählen möchten, maximieren Sie Optionen für die Dokumentverarbeitung und geben Sie die gewünschten Parseroptionen an.

  14. Klicken Sie auf Erstellen.

    Sie haben jetzt einen Daten-Connector erstellt, der regelmäßig Daten synchronisiert durch den Cloud Storage-Speicherort. Sie haben auch eine Entität erstellt mit dem Namen gcs_store.

  15. Den Status der Aufnahme können Sie auf der Seite Datenspeicher prüfen. Klicken Sie auf den Namen des Daten-Connectors, um auf der Seite Daten Details dazu aufzurufen.

    Tab Datenaufnahmeaktivität Wenn sich der Status in der Spalte „Status“ auf dem Tab Aktivitäten der Datenaufnahme von In Bearbeitung zu Erfolgreich ändert, ist die erste Datenaufnahme abgeschlossen.

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

Nachdem Sie die Datenquelle eingerichtet und zum ersten Mal Daten importiert haben, von dieser Quelle mit einer Häufigkeit synchronisiert, die Sie bei der Einrichtung ausgewählt haben. Etwa eine Stunde nach der Erstellung des Daten-Connectors findet die erste Synchronisierung statt. Die nächste Synchronisierung erfolgt dann nach etwa 24, 72 oder 120 Stunden.

Nächste Schritte

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

  • So sehen Sie sich eine Vorschau der Suchergebnisse an, die nach der Erstellung Ihrer App und Ihres Datenspeichers angezeigt werden. finden Sie unter Suchergebnisse abrufen

Aus Google Drive synchronisieren

Wenn Sie Daten aus Google Drive synchronisieren möchten, erstellen Sie mithilfe der folgenden Schritte einen Datenspeicher und nehmen Sie Daten mit der Google Cloud Console auf.

Daten aus Google Drive werden kontinuierlich mit Vertex AI Search synchronisiert, erstellen Sie Ihren Datenspeicher.

Hinweise:

  • Sie müssen in der Google Cloud Console 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-Kundennummer, um eine Verbindung zu Google Drive herzustellen.

  • Richten Sie die Zugriffssteuerung für Google Drive ein. Weitere Informationen zur Einrichtung der Zugriffssteuerung finden Sie unter Zugriffssteuerung für Datenquellen verwenden

Console

So machen Sie Google Drive-Daten mit der Console suchbar:

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

    Zum Agent Builder

  2. Rufen Sie die Seite Datenspeicher auf.

  3. Klicken Sie auf Neuer Datenspeicher.

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

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

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

  7. Klicken Sie auf Erstellen. Je nach Größe der Daten kann die Datenaufnahme einige Minuten bis mehrere Stunden dauern. Warten Sie mindestens eine Stunde, bevor Sie Ihr Datenspeicher für die Suche.

Nächste Schritte

  • Erstellen Sie eine Anwendung und wählen Sie Ihren Datenspeicher aus, um Ihren Datenspeicher an eine Anwendung anzuhängen indem Sie die Schritte in Erstellen Sie eine Suchanwendung.

  • So sehen Sie sich eine Vorschau der Suchergebnisse an, die nach der Erstellung Ihrer App und Ihres Datenspeichers angezeigt werden. finden Sie unter Suchergebnisse abrufen

Aus Cloud SQL importieren

Führen Sie die folgenden Schritte aus, um Daten aus Cloud SQL aufzunehmen Cloud SQL-Zugriff, Erstellen eines Datenspeichers und Aufnehmen von Daten.

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

Bei der Aufnahme von Daten aus Cloud SQL werden die Daten zuerst Cloud Storage-Bucket. 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 importieren möchten.

  3. Kopieren Sie die Kennung für das Dienstkonto der Instanz, die wie folgt aussieht: E-Mail-Adresse, z. B. p9876-abcd33f@gcp-sa-cloud-sql.iam.gserviceaccount.com

  4. Zur Seite IAM & Verwaltung.

    IAM und Administrator

  5. Klicken Sie auf Zugriff erlauben.

  6. Geben Sie unter Neue Hauptkonten die Dienstkonto-ID der Instanz ein und wählen Sie den Tab Cloud Storage > Storage-Administrator haben.

  7. Klicken Sie auf Speichern.

Als Nächstes führen Sie Folgendes aus:

Cloud SQL-Zugriff aus einem anderen Projekt einrichten

Um Vertex AI Search Zugriff auf Cloud SQL-Daten zu gewähren, verschiedenen Projekts arbeiten, gehen Sie so vor:

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

    service-PROJECT_NUMBER@gcp-sa-discoveryengine.iam.gserviceaccount.com`
    
  2. Zur Seite IAM & Verwaltung.

    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 Kennzeichnung für das Dienstkonto ein und wählen Sie die Rolle Cloud SQL > Cloud SQL-Betrachter aus.

  5. Klicken Sie auf Speichern.

Gehen Sie als Nächstes zu Daten aus Cloud SQL importieren.

Daten aus Cloud SQL importieren

Console

So verwenden Sie die Console zum Aufnehmen von Daten aus Cloud SQL: Schritte:

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

    Zum Agent Builder

  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 Daten an, die Sie importieren möchten.

  6. Klicken Sie auf Durchsuchen, wählen Sie einen Cloud Storage-Zwischenspeicherort aus, in den die Daten exportiert werden sollen, und klicken Sie dann auf Auswählen. Alternativ: Standort eingeben direkt in das Feld gs:// ein.

  7. Wählen Sie aus, ob Sie den serverlosen Export aktivieren möchten. 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. Den Status der Aufnahme können Sie auf der Seite Datenspeicher prüfen. und klicken Sie auf den Namen des Datenspeichers, um Details dazu auf der Seite Daten anzuzeigen. Wenn sich der Status in der Spalte „Status“ auf dem Tab Aktivität von In Bearbeitung zu Import abgeschlossen ändert, ist die Datenaufnahme abgeschlossen.

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

REST

Um über die Befehlszeile einen Datenspeicher zu erstellen und Daten aus Cloud SQL ausführen, führen Sie die folgenden Schritte aus:

  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 ID Ihres 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 könnte in der Google Cloud Console angezeigt werden sollen.
  2. Importieren Sie Daten aus Cloud SQL.

      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 Ihrer Vertex AI Search Projekt arbeiten.
    • 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 inkrementell in Ihrem Datenspeicher 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, wird ein vollständiges Rebase der Dokumente in Ihren Daten erstellt. speichern. Mit anderen Worten: Ihrem Datenspeicher werden neue und aktualisierte Dokumente hinzugefügt und Dokumente, die nicht in Cloud SQL vorhanden sind, werden daraus entfernt. Der FULL-Modus ist hilfreich, wenn Sie nicht mehr benötigte Dokumente automatisch löschen.

Python

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

Richten Sie Standardanmeldedaten für Anwendungen ein, um sich bei Vertex AI Agent Builder zu authentifizieren. 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

  • Erstellen Sie eine Anwendung und wählen Sie Ihren Datenspeicher aus, um Ihren Datenspeicher an eine Anwendung anzuhängen indem Sie die Schritte in Erstellen Sie eine Suchanwendung.

  • So sehen Sie sich eine Vorschau der Suchergebnisse an, die nach der Erstellung Ihrer App und Ihres Datenspeichers angezeigt werden. finden Sie unter Suchergebnisse abrufen

Aus Spanner importieren

Wenn Sie Daten aus Spanner aufnehmen möchten, erstellen Sie mithilfe der Google Cloud Console oder der API einen Datenspeicher und nehmen Sie die Daten auf.

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.

Um Vertex AI Search Zugriff auf Spanner-Daten zu gewähren, Projekt arbeiten, gehen Sie so vor:

  1. Ersetzen Sie die folgende Variable PROJECT_NUMBER durch die Projektnummer Ihrer Vertex AI Search-Instanz und kopieren Sie dann den Inhalt dieses Codeblocks. Dies ist Ihr Vertex AI Search-Dienstkonto Kennung:

    service-PROJECT_NUMBER@gcp-sa-discoveryengine.iam.gserviceaccount.com
    
  2. Zur Seite IAM & Verwaltung.

    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 ID für das Dienstkonto ein und Wählen Sie eine der folgenden Optionen aus:

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

Gehen Sie als Nächstes zu Daten aus Spanner importieren.

Daten aus Spanner importieren

Console

So nehmen Sie mit der Console Daten aus Spanner auf:

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

    Zum Agent Builder

  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 Daten an die Sie importieren möchten.

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

  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. Den Status der Aufnahme können Sie auf der Seite Datenspeicher prüfen. und klicken Sie auf den Namen des Datenspeichers, um Details dazu auf der Seite Daten anzuzeigen. Wenn sich der Status in der Spalte „Status“ auf dem Tab Aktivität von In Bearbeitung zu Import abgeschlossen ändert, ist die Datenaufnahme abgeschlossen.

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

REST

Um über die Befehlszeile einen Datenspeicher zu erstellen und Daten aus Spanner starten möchten, führen Sie die folgenden Schritte aus:

  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 könnte in der Google Cloud Console angezeigt werden sollen.
  2. Importieren Sie Daten aus Spanner.

      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 unter Data Boost. im Abschnitt Spanner-Dokumentation.
    • RECONCILIATION_MODE: Optional. Mögliche Werte: FULL und INCREMENTAL. Der Standardwert ist INCREMENTAL. Wenn Sie INCREMENTAL angeben, werden die Daten aus Spanner inkrementell in Ihrem Datenspeicher aktualisiert. Dies führt zu einem Upsert-Vorgang. Vorgang, bei dem neue Dokumente hinzugefügt und vorhandene Dokumente ersetzt werden Dokumente mit derselben ID aktualisiert. Die Angabe von FULL führt zu einem ein vollständiges Rebase der Dokumente in Ihrem Datenspeicher durchzuführen. Mit anderen Worten: Ihrem Datenspeicher werden neue und aktualisierte Dokumente hinzugefügt und Dokumente, die nicht in Spanner enthalten sind, werden aus Ihrem Datenspeicher entfernt. Die Der FULL-Modus ist hilfreich, wenn du Dokumente automatisch löschen möchtest die Sie nicht mehr benötigen.
    • AUTO_GENERATE_IDS: Optional. Gibt an, ob automatisch Dokument-IDs generieren. Wenn dieser Wert auf true gesetzt ist, werden Dokument-IDs basierend auf einem Hash der Nutzlast generiert. Das generierte Dokument-IDs bleiben möglicherweise bei mehreren Importen nicht einheitlich. Wenn Sie IDs bei mehreren Importen automatisch generieren, empfehlen wir Ihnen, reconciliationMode auf FULL festzulegen, um einheitliche Dokument-IDs beizubehalten.

    • ID_FIELD: Optional. Gibt an, welche Felder die Dokument-IDs sind.

Python

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

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

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

  • Erstellen Sie eine Anwendung und wählen Sie Ihren Datenspeicher aus, um Ihren Datenspeicher an eine Anwendung anzuhängen indem Sie die Schritte in Erstellen Sie eine Suchanwendung.

  • Eine Vorschau, wie Ihre Suchergebnisse nach der Einrichtung Ihrer App und Ihres Datenspeichers aussehen, finden Sie unter Suchergebnisse abrufen.

Aus Firestore importieren

Führen Sie die folgenden Schritte aus, um Daten aus Firestore aufzunehmen. einen Datenspeicher erstellen und Daten über die Google Cloud Console oder die API aufnehmen.

Wenn sich Ihre Firestore-Daten im selben Projekt wie Vertex AI Search befinden, rufen Sie Daten aus Firestore importieren auf.

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

Firestore-Zugriff über ein anderes Projekt einrichten

Um Vertex AI Search Zugriff auf Firestore-Daten zu gewähren, Projekt arbeiten, gehen Sie so vor:

  1. Ersetzen Sie die folgende PROJECT_NUMBER-Variable durch Ihre Vertex AI Search-Projektnummer. Kopieren Sie dann den Inhalt Codeblock. Das ist die Kennung Ihres Vertex AI Search-Dienstkontos:

    service-PROJECT_NUMBER@gcp-sa-discoveryengine.iam.gserviceaccount.com
    
  2. Zur Seite IAM & Verwaltung.

    IAM und Verwaltung

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

  4. Geben Sie unter Neue Hauptkonten die Kennzeichnung des Dienstkontos der Instanz ein und 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 als Nächstes zu Daten aus Firestore importieren.

Daten aus Firestore importieren

Console

So nehmen Sie mit der Console Daten aus Firestore auf:

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

    Zum Agent Builder

  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, Datenbank-ID und Sammlungs-ID der Daten an, die Sie zu importieren.

  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. Den Status der Aufnahme können Sie auf der Seite Datenspeicher prüfen. und klicken Sie auf den Namen des Datenspeichers, um Details dazu auf der Seite Daten anzuzeigen. Wenn sich der Status in der Spalte „Status“ auf dem Tab Aktivität von In Bearbeitung zu Import abgeschlossen ändert, ist die Datenaufnahme abgeschlossen.

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

REST

So erstellen Sie mit der Befehlszeile einen Datenspeicher 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 ID Ihres Projekts.
    • DATA_STORE_ID: Die ID des Datenspeichers. Die ID darf nur Kleinbuchstaben, Ziffern, Unterstriche und Bindestriche enthalten.
    • DISPLAY_NAME: Der Anzeigename des Datenspeichers. Dieser Fehler wird möglicherweise in der Google Cloud Console angezeigt.
  2. Daten aus Firestore 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 '{
        "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. Der Ausweis kann dürfen 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 Daten aus Firestore inkrementell in Ihrem Datenspeicher 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, wird ein vollständiges Rebase der Dokumente in Ihren Daten erstellt. speichern. Mit anderen Worten: Ihren Daten werden neue und aktualisierte Dokumente hinzugefügt. nicht in Firestore enthaltene Dokumente, werden entfernt. Daten aus Ihrem Datenspeicher abrufen. Der Modus FULL ist hilfreich, wenn Sie Dokumente, die Sie nicht mehr benötigen, automatisch löschen möchten.
    • AUTO_GENERATE_IDS: Optional. Gibt an, ob automatisch Dokument-IDs generieren. Wenn dieser Wert auf true gesetzt ist, werden Dokument-IDs basierend auf einem Hash der Nutzlast generiert. Das generierte Dokument-IDs bleiben möglicherweise bei mehreren Importen nicht einheitlich. Wenn automatisch IDs über mehrere Importe hinweg generieren, empfiehlt, reconciliationMode auf FULL zu setzen, um einheitliche Dokument-IDs.
    • ID_FIELD: Optional. Gibt an, welche Felder Dokument-IDs.

Python

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

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

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

  • Erstellen Sie eine Anwendung und wählen Sie Ihren Datenspeicher aus, um Ihren Datenspeicher an eine Anwendung anzuhängen indem Sie die Schritte in Erstellen Sie eine Suchanwendung.

  • Eine Vorschau, wie Ihre Suchergebnisse nach der Einrichtung Ihrer App und Ihres Datenspeichers aussehen, finden Sie unter Suchergebnisse abrufen.

Aus Bigtable importieren

Führen Sie die folgenden Schritte aus, um Daten aus Bigtable aufzunehmen, einen Datenspeicher hinzufügen und Daten mithilfe der API aufnehmen.

Bigtable-Zugriff einrichten

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

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

    service-PROJECT_NUMBER@gcp-sa-discoveryengine.iam.gserviceaccount.com`
    
  2. Zur Seite IAM & Verwaltung.

    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 Dienstkonto-ID der Instanz ein und wählen Sie das Bigtable > Bigtable Reader Rolle.

  5. Klicken Sie auf Speichern.

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

Gehen Sie als Nächstes zu Daten aus Bigtable importieren.

Daten aus Bigtable importieren

REST

Um über die Befehlszeile einen Datenspeicher zu erstellen und Daten aus gehen Sie so vor:

  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 ID Ihres Projekts.
    • DATA_STORE_ID: Die ID des Datenspeichers. Die ID darf nur Kleinbuchstaben, Ziffern, Unterstriche und Bindestriche enthalten.
    • DISPLAY_NAME: Der Anzeigename des Datenspeichers. Dieser Fehler wird möglicherweise in der Google Cloud Console angezeigt.
  2. Daten aus Bigtable 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 '{
        "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 Ihrer Vertex AI Search Projekt arbeiten.
    • DATA_STORE_ID: Die ID des Datenspeichers. Die ID darf nur Kleinbuchstaben, Ziffern, Unterstriche und Bindestriche enthalten.
    • BIGTABLE_PROJECT_ID: Die ID Ihres Bigtable-Projekt erstellen.
    • INSTANCE_ID: Die ID Ihrer Bigtable-Instanz.
    • TABLE_ID: Die ID Ihrer Bigtable-Datei .
    • KEY_FIELD_NAME: Optional, aber empfohlen. Der Feldname, der nach der Datenaufnahme in Vertex AI Search für den Zeilenschlüsselwert verwendet werden soll.
    • KEY: erforderlich. Ein Stringwert für den Spaltenfamilienschlüssel.
    • ENCODING: Optional. Der Codierungsmodus der Werte, wenn der Typ nicht STRING ist. Dieser kann für eine bestimmte Spalte überschrieben werden, indem Sie diese Spalte in columns angeben und eine Codierung dafür festlegen.
    • COLUMN_TYPE: Optional. Der Werttyp dieser Spaltenfamilie.
    • QUALIFIER: erforderlich. Kennzeichner der Spalte.
    • FIELD_NAME: Optional, aber empfohlen. Der zu verwendende Feldname für diese Spalte nach der Aufnahme in Vertex AI Search.
    • COLUMN_ENCODING: Optional. Der Codierungsmodus der Werte für eine bestimmte Spalte, wenn der Typ nicht STRING ist.
    • RECONCILIATION_MODE: Optional. Mögliche Werte: FULL und INCREMENTAL. Der Standardwert ist INCREMENTAL. Wenn Sie INCREMENTAL angeben, werden die Daten aus Bigtable inkrementell in Ihrem Datenspeicher aktualisiert. Dies führt einen Upsert-Vorgang aus, der neue und ersetzt vorhandene Dokumente durch aktualisierte Dokumente mit dieselbe ID haben. Wenn Sie FULL angeben, werden die Dokumente in Ihrem Datenspeicher vollständig neu ausgerichtet. Mit anderen Worten: Neue und aktualisierte Dokumente werden Datenspeicher und Dokumente, die sich nicht in Bigtable befinden, werden aus Ihrem Datenspeicher entfernt. Der Modus FULL ist hilfreich, wenn Sie Dokumente, die Sie nicht mehr benötigen, automatisch löschen möchten.
    • AUTO_GENERATE_IDS: Optional. Gibt an, ob Dokument-IDs automatisch generiert werden sollen. Wenn true festgelegt ist, werden Dokument-IDs werden auf Basis eines Hashwerts der Nutzlast generiert. Die generierten Dokument-IDs bleiben bei mehreren Importen möglicherweise nicht gleich. Wenn Sie IDs bei mehreren Importen automatisch generieren, empfehlen wir Ihnen, reconciliationMode auf FULL festzulegen, um einheitliche Dokument-IDs beizubehalten.

      autoGenerateIds nur angeben, wenn bigquerySource.dataSchema gleich auf custom festgelegt. Andernfalls wird der Fehler INVALID_ARGUMENT angezeigt. zurückgegeben. Wenn Sie autoGenerateIds nicht angeben oder auf false festlegen, müssen Sie idField angeben. Andernfalls werden die Dokumente nicht zu importieren.

    • ID_FIELD: Optional. Gibt an, welche Felder Dokument-IDs.

Python

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

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

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

  • Erstellen Sie eine Anwendung und wählen Sie Ihren Datenspeicher aus, um Ihren Datenspeicher an eine Anwendung anzuhängen indem Sie die Schritte in Erstellen Sie eine Suchanwendung.

  • Eine Vorschau, wie Ihre Suchergebnisse nach der Einrichtung Ihrer App und Ihres Datenspeichers aussehen, finden Sie unter Suchergebnisse abrufen.

Aus AlloyDB for PostgreSQL importieren

Führen Sie die folgenden Schritte aus, um Daten aus AlloyDB for PostgreSQL aufzunehmen und einen Datenspeicher erstellen und Daten über die Google Cloud Console oder die API aufnehmen.

Wenn sich Ihre AlloyDB for PostgreSQL-Daten im selben Projekt wie Vertex AI Search-Projekt aufrufen: Daten importieren aus AlloyDB for PostgreSQL

Wenn sich Ihre AlloyDB for PostgreSQL-Daten in einem anderen Projekt befinden als Ihre Vertex AI Search-Projekt: AlloyDB for PostgreSQL einrichten Zugriff.

AlloyDB for PostgreSQL-Zugriff über ein anderes Projekt einrichten

Um Vertex AI Search Zugriff auf AlloyDB for PostgreSQL-Daten zu gewähren, Projekt arbeiten, gehen Sie so vor:

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

    service-PROJECT_NUMBER@gcp-sa-discoveryengine.iam.gserviceaccount.com
    
  2. Wechseln Sie zu dem 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 Admin aus.

  6. Klicken Sie auf Speichern.

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

Gehen Sie als Nächstes zu Daten aus AlloyDB for PostgreSQL importieren.

Daten aus AlloyDB for PostgreSQL importieren

Console

So nehmen Sie mit der Konsole Daten aus AlloyDB for PostgreSQL auf:

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

    Zum Agent Builder

  2. Klicken Sie im Navigationsmenü auf Datenspeicher.

  3. Klicken Sie auf Datenspeicher erstellen.

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

  5. Geben Sie die Projekt-ID, Speicherort-ID, Cluster-ID, Datenbank-ID und Tabellen-ID der Daten an, die Sie importieren möchten.

  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. Den Status der Aufnahme können Sie auf der Seite Datenspeicher prüfen. und klicken Sie auf den Namen des Datenspeichers, um Details dazu auf der Seite Daten anzuzeigen. Wenn sich der Status in der Spalte „Status“ auf dem Tab Aktivität von In Bearbeitung zu Import abgeschlossen ändert, ist die Datenaufnahme abgeschlossen.

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

REST

Um über die Befehlszeile einen Datenspeicher zu erstellen und Daten aus Führen Sie in AlloyDB for PostgreSQL die folgenden Schritte aus:

  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 ID Ihres 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 könnte in der Google Cloud Console angezeigt werden sollen.
  2. Daten aus AlloyDB for PostgreSQL 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 '{
        "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 Ihrer AlloyDB for PostgreSQL Standort.
    • CLUSTER_ID: die ID Ihrer AlloyDB for PostgreSQL Cluster.
    • DATABASE_ID: Die ID Ihrer AlloyDB for PostgreSQL-Datenbank.
    • TABLE_ID: Die ID Ihrer AlloyDB for PostgreSQL-Tabelle.
    • RECONCILIATION_MODE: Optional. Mögliche Werte: FULL und INCREMENTAL. Der Standardwert ist INCREMENTAL. Wenn Sie INCREMENTAL angeben, werden die Daten aus AlloyDB for PostgreSQL inkrementell in Ihrem Datenspeicher 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 ausgerichtet. Mit anderen Worten: Ihrem Datenspeicher werden neue und aktualisierte Dokumente hinzugefügt und Dokumente, die nicht in AlloyDB for PostgreSQL vorhanden sind, werden daraus entfernt. Der FULL-Modus ist hilfreich, wenn Sie nicht mehr benötigte Dokumente automatisch löschen.
    • AUTO_GENERATE_IDS: Optional. Gibt an, ob automatisch Dokument-IDs generieren. Wenn dieser Wert auf true gesetzt ist, werden Dokument-IDs basierend auf einem Hash der Nutzlast generiert. Das generierte Dokument-IDs bleiben möglicherweise bei mehreren Importen nicht einheitlich. Wenn automatisch IDs über mehrere Importe hinweg generieren, empfiehlt, reconciliationMode auf FULL zu setzen, um einheitliche Dokument-IDs.
    • ID_FIELD: Optional. Gibt an, welche Felder die Dokument-IDs sind.

Nächste Schritte

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

  • Eine Vorschau, wie Ihre Suchergebnisse nach der Einrichtung Ihrer App und Ihres Datenspeichers aussehen, finden Sie unter Suchergebnisse abrufen.

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, Daten für die Aufnahme vorbereiten

REST

So erstellen Sie mit der Befehlszeile einen Datenspeicher 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 ist die ID Ihres Google Cloud-Projekts.
    • DATA_STORE_ID: Die ID des Vertex AI Search-Datenspeichers, den Sie erstellen möchten. Die ID darf nur Kleinbuchstaben, Ziffern, Unterstriche und Bindestriche enthalten.
    • DATA_STORE_DISPLAY_NAME: der Anzeigename von Vertex AI Suchdatenspeicher, den Sie erstellen möchten.
  2. Importieren Sie strukturierte Daten.

    Es gibt verschiedene Ansätze, um 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 nur Kleinbuchstaben, Ziffern, Unterstriche und Bindestriche enthalten.
      • JSON_DOCUMENT_STRING: das JSON-Dokument als einzelner String. Dieser muss dem JSON-Schema entsprechen, das Sie im vorherigen Schritt angegeben haben. Beispiel:

        { \"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. Dieser muss dem von Ihnen angegebenen JSON-Schema entsprechen aus dem vorherigen Schritt. Beispiel:

      ```json
      {
        "title": "test title",
        "categories": [
          "cat_1",
          "cat_2"
        ],
        "uri": "test uri"
      }
      ```
      
    • Aktualisieren Sie sie mit einem JSON-Dokument.

      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"
      }'
      
    • Aktualisieren Sie mit einem JSON-Objekt.

      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

  • Erstellen Sie eine Anwendung und wählen Sie Ihren Datenspeicher aus, um Ihren Datenspeicher an eine Anwendung anzuhängen indem Sie die Schritte in Erstellen Sie eine Suchanwendung.

  • So sehen Sie sich eine Vorschau der Suchergebnisse an, die nach der Erstellung Ihrer App und Ihres Datenspeichers angezeigt werden. finden Sie unter Suchergebnisse abrufen

Fehlerbehebung bei der Datenaufnahme

Wenn Sie Probleme mit der Datenaufnahme haben, lesen Sie diese 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 gewährt wurde. Weitere Informationen finden Sie unter „Vom Kunden verwaltete Verschlüsselungsschlüssel“ im Abschnitt Vorbereitung.

  • Wenn Sie die erweiterte Website-Indexierung verwenden und die Dokumentnutzung für den Datenspeicher viel niedriger ist als erwartet, prüfen Sie die für die Indexierung angegebenen URL-Muster. 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 den Websites, die indexiert werden sollen, möglicherweise *.example.com/* hinzufügen.

Datenspeicher mit Terraform erstellen

Mit Terraform können Sie einen leeren Datenspeicher erstellen. Nach dem leeren Datenspeicher erstellt haben, können Sie mit der Google Cloud Console Daten in den Datenspeicher aufnehmen. oder API-Befehlen.

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.