Crea un datastore di consigli personalizzato

Per creare un datastore e importare i dati per i suggerimenti personalizzati, vai alla sezione relativa all'origine che prevedi di utilizzare:

BigQuery

Puoi creare data store dalle tabelle BigQuery in due modi:

  • Importazione una tantum: importi i dati da una tabella BigQuery in un datastore. I dati nel datastore non cambiano a meno che tu non li aggiorni manualmente.

  • Importazione periodica: importi i dati da una o più tabelle BigQuery e imposti una frequenza di sincronizzazione che determina la frequenza con cui gli archivi di dati vengono aggiornati con i dati più recenti del set di dati BigQuery.

La tabella seguente confronta i due modi in cui puoi importare i dati BigQuery nei datastore di Agent Search.

Importazione una tantum Importazione periodica
I dati devono essere aggiornati manualmente. I dati vengono aggiornati automaticamente ogni 1, 3 o 5 giorni. I dati non possono essere aggiornati manualmente.
Agent Search crea un unico datastore da una tabella in BigQuery. Agent Search crea un connettore dati per un set di dati BigQuery e un datastore (chiamato datastore entità) per ogni tabella specificata. Per ogni connettore dati, le tabelle devono avere lo stesso tipo di dati (ad esempio, strutturati) e trovarsi nello stesso set di dati BigQuery.
I dati di più tabelle possono essere combinati in un unico datastore prima di inserire i dati di una tabella e poi altri dati da un'altra origine o tabella BigQuery. Poiché l'importazione manuale dei dati non è supportata, i dati in un datastore delle entità possono provenire solo da una tabella BigQuery.
Il controllo dell'accesso all'origine dati è supportato. Controllo dell'accesso all'origine dati non è supportato. I dati importati possono contenere controlli dell'accesso, ma questi controlli non verranno rispettati.
Puoi creare un datastore utilizzando la consoleGoogle Cloud o l'API. Devi utilizzare la console per creare i connettori di dati e i relativi datastore delle entità.
Conforme a CMEK. Conforme a CMEK.

Prima di iniziare

Per importare dati da un progetto Google Cloud di origine diverso dal progettoGoogle Cloud con l'datastore di Agent Search, concedi i seguenti ruoli Identity and Access Management (IAM) all'account di servizioservice-PROJECT_NUMBER@gcp-sa-discoveryengine.iam.gserviceaccount.com nel progetto che contiene l'datastore di Agent Search:

Importa una volta da BigQuery

Per importare dati da una tabella BigQuery, segui questi passaggi per creare un datastore e importare i dati utilizzando la console Google Cloud o l'API.

Prima di importare i dati, consulta Preparare i dati per l'importazione.

Console

Per utilizzare la console Google Cloud per importare i dati da BigQuery, segui questi passaggi:

  1. Nella Google Cloud console, vai alla pagina AI Applications.

    Applicazioni di AI

  2. Vai alla pagina Datastore.

  3. Fai clic su Crea datastore.

  4. Nella pagina Origine, seleziona BigQuery.

  5. Seleziona il tipo di dati che importerai dalla sezione Che tipo di dati stai importando?

  6. Seleziona Una volta nella sezione Frequenza della sincronizzazione.

  7. Nel campo Percorso BigQuery, fai clic su Sfoglia, seleziona una tabella che hai preparato per l'importazione e poi fai clic su Seleziona. In alternativa, inserisci la posizione della tabella direttamente nel campo Percorso BigQuery.

  8. Fai clic su Continua.

  9. Se esegui un'importazione una tantum di dati strutturati:

    1. Mappa i campi alle proprietà chiave.

    2. Se mancano campi importanti nello schema, utilizza Aggiungi nuovo campo per aggiungerli.

      Per saperne di più, consulta Informazioni sul rilevamento e la modifica automatici.

    3. Fai clic su Continua.

  10. Seleziona una regione per il datastore.

  11. Inserisci un nome per il tuo datastore.

  12. Fai clic su Crea.

  13. Per controllare lo stato dell'importazione, vai alla pagina Datastore e fai clic sul nome del datastore per visualizzarne i dettagli nella pagina Data (Dati). Quando la colonna dello stato nella scheda Attività cambia da In corso a Importazione completata, l'importazione è terminata.

    A seconda delle dimensioni dei dati, l'importazione può richiedere diversi minuti o diverse ore.

REST

Per utilizzare la riga di comando per creare un datastore e importare i dati da BigQuery, segui questi passaggi.

  1. Crea un datastore.

    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_RECOMMENDATION"]
    }'
    

    Sostituisci quanto segue:

    • PROJECT_ID: l'ID del tuo Google Cloud progetto.
    • DATA_STORE_ID: l'ID del datastore di Agent Search che vuoi creare. Questo ID può contenere solo lettere minuscole, cifre, trattini bassi e trattini.
    • DATA_STORE_DISPLAY_NAME: il nome visualizzato del datastore Agent Search che vuoi creare.
  2. Importa i dati da BigQuery.

    Se hai definito uno schema, assicurati che i dati siano conformi.

    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"
      }
    }'
    

    Sostituisci quanto segue:

    • PROJECT_ID: l'ID del tuo Google Cloud progetto.
    • DATA_STORE_ID: l'ID del datastore di Agent Search.
    • DATASET_ID: l'ID del set di dati BigQuery.
    • TABLE_ID: l'ID della tabella BigQuery.
      • Se la tabella BigQuery non si trova in PROJECT_ID, devi concedere all'account di servizio service-<project number>@gcp-sa-discoveryengine.iam.gserviceaccount.com l'autorizzazione "Visualizzatore dati BigQuery" per la tabella BigQuery. Ad esempio, se importi una tabella BigQuery dal progetto di origine "123" al progetto di destinazione "456", concedi service-456@gcp-sa-discoveryengine.iam.gserviceaccount.com autorizzazioni per la tabella BigQuery nel progetto "123".
    • DATA_SCHEMA: facoltativo. I valori sono document e custom. Il valore predefinito è document.
      • document: la tabella BigQuery che utilizzi deve essere conforme allo schema BigQuery predefinito fornito in Preparare i dati per l'importazione. Puoi definire l'ID di ogni documento, mentre racchiudi tutti i dati nella stringa jsonData.
      • custom: viene accettato qualsiasi schema di tabella BigQuery e Agent Search genera automaticamente gli ID per ogni documento importato.
    • ERROR_DIRECTORY: facoltativo. Una directory Cloud Storage per informazioni sugli errori relativi all'importazione, ad esempio gs://<your-gcs-bucket>/directory/import_errors. Google consiglia di lasciare vuoto questo campo per consentire a Agent Search di creare automaticamente una directory temporanea.
    • RECONCILIATION_MODE: facoltativo. I valori sono FULL e INCREMENTAL. Il valore predefinito è INCREMENTAL. Se specifichi INCREMENTAL, viene eseguito un aggiornamento incrementale dei dati da BigQuery al tuo datastore. Esegue un'operazione di upsert, che aggiunge nuovi documenti e sostituisce quelli esistenti con documenti aggiornati con lo stesso ID. La specifica di FULL causa una ribasatura completa dei documenti nel datastore. In altre parole, i documenti nuovi e aggiornati vengono aggiunti al tuo datastore e i documenti che non si trovano in BigQuery vengono rimossi dal tuo datastore. La modalità FULL è utile se vuoi eliminare automaticamente i documenti che non ti servono più.
    • AUTO_GENERATE_IDS: facoltativo. Specifica se generare automaticamente gli ID documento. Se impostato su true, gli ID documento vengono generati in base a un hash del payload. Tieni presente che gli ID documento generati potrebbero non rimanere coerenti in più importazioni. Se generi automaticamente ID in più importazioni, Google consiglia vivamente di impostare reconciliationMode su FULL per mantenere ID documento coerenti.

      Specifica autoGenerateIds solo quando bigquerySource.dataSchema è impostato su custom. In caso contrario, viene restituito un errore INVALID_ARGUMENT. Se non specifichi autoGenerateIds o lo imposti su false, devi specificare idField. In caso contrario, l'importazione dei documenti non andrà a buon fine.

    • ID_FIELD: facoltativo. Specifica quali campi sono gli ID documento. Per i file di origine BigQuery, idField indica il nome della colonna nella tabella BigQuery che contiene gli ID documento.

      Specifica idField solo quando: (1) bigquerySource.dataSchema è impostato su custom e (2) auto_generate_ids è impostato su false o non è specificato. In caso contrario, viene restituito un errore INVALID_ARGUMENT.

      Il valore del nome della colonna BigQuery deve essere di tipo stringa, deve essere compreso tra 1 e 63 caratteri e deve essere conforme allo standard RFC-1034. In caso contrario, l'importazione dei documenti non andrà a buon fine.

C#

Per saperne di più, consulta la documentazione di riferimento dell'API Agent Search C#.

Per eseguire l'autenticazione in Agent Search, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.

Crea un datastore

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

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

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

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

Importa documenti

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

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

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

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

Go

Per saperne di più, consulta la documentazione di riferimento dell'API Agent Search Go.

Per eseguire l'autenticazione in Agent Search, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.

Crea un datastore


//go:build examples

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
}

Importa documenti


//go:build examples

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