Configurare il completamento automatico

Questa pagina descrive la funzionalità di completamento automatico di base di Vertex AI Search. Il completamento automatico genera suggerimenti per le query in base ai primi caratteri inseriti per la query.

I suggerimenti generati dal completamento automatico variano a seconda del tipo di dati utilizzati dall'app di ricerca:

  • Dati strutturati e non strutturati. Per impostazione predefinita, il completamento automatico genera suggerimenti basati sui contenuti dei documenti nel datastore. Dopo l'importazione dei documenti, per impostazione predefinita il completamento automatico non inizia a generare suggerimenti finché non sono disponibili dati di qualità sufficiente, in genere dopo un paio di giorni. Se effettui richieste di completamento automatico tramite l'API, il completamento automatico può generare suggerimenti basati sulla cronologia delle ricerche o sugli eventi utente.

  • Dati del sito web. Per impostazione predefinita, il completamento automatico genera suggerimenti dalla cronologia delle ricerche. Il completamento automatico richiede traffico di ricerca reale. Dopo l'inizio del traffico di ricerca, il completamento automatico impiega uno o due giorni prima di generare suggerimenti. I suggerimenti possono essere generati dai dati sottoposti a scansione del web di siti pubblici con il modello di dati avanzato per i documenti sperimentale.

  • Dati sanitari. Per impostazione predefinita, viene utilizzata un'origine dati medici canonica per generare suggerimenti di completamento automatico per i datastore dei dati sanitari.

Il modello di suggerimenti per le query determina il tipo di dati utilizzato dal completamento automatico per generare suggerimenti. Esistono quattro modelli di suggerimenti per le query:

  • Documento. Il modello di documento genera suggerimenti dai documenti importati dall'utente. Questo modello non è disponibile per i dati dei siti web o per i dati sanitari.

  • Campi configurabili. Il modello di campi completabili suggerisce il testo estratto direttamente dai campi di dati strutturati. Solo i campi annotati con completable vengono utilizzati per i suggerimenti di completamento automatico. Questo modello è disponibile solo per i dati strutturati.

  • Cronologia delle ricerche. Il modello della cronologia delle ricerche genera suggerimenti dalla cronologia delle chiamate API SearchService.search. Non utilizzare questo modello se non è disponibile traffico per il metodo servingConfigs.search. Questo modello non è disponibile per i dati sanitari.

  • Evento utente. Il modello di eventi utente genera suggerimenti dagli eventi importati dall'utente di tipo search. Questo modello non è disponibile per i dati sanitari.

Le richieste Autocomplete vengono inviate utilizzando il metodo dataStores.completeQuery.

In alternativa, se non vuoi utilizzare un modello di suggerimenti per le query, puoi utilizzare i suggerimenti importati che forniscono suggerimenti di completamento automatico in base a un elenco di suggerimenti importati. Per saperne di più, vedi Utilizzare un elenco importato di suggerimenti di completamento automatico.

Tipi di modelli disponibili in base al tipo di dati

La tabella seguente mostra i tipi di modelli di suggerimenti per le query disponibili per ciascun tipo di dati.


Modello di suggerimenti per le query

Origine dati

Dati del sito web

Dati strutturati

Dati non strutturati
Documento Importato ✔* (predefinita) ✔ (valore predefinito)
Campi configurabili Importato
Cronologia delle ricerche Raccolti automaticamente ✔ (valore predefinito)
Eventi utente Importati o raccolti automaticamente dal widget
Contenuti sottoposti a scansione del web Eseguita la scansione dei contenuti di siti web pubblici che specifichi

* : Lo schema del documento deve contenere i campi title o description oppure devono essere presenti campi specificati come proprietà chiave title o description. Consulta la pagina Aggiornare uno schema per i dati strutturati.

: i contenuti sottoposti a scansione del web possono essere utilizzati come origine dati solo se è attivato il modello sperimentale avanzato di dati dei documenti per il completamento automatico. Consulta Modello di dati avanzato per i documenti.

Se non vuoi utilizzare il modello predefinito per il tuo tipo di dati, puoi specificare un modello diverso quando invii la richiesta di completamento automatico. Le richieste di completamento automatico vengono inviate utilizzando il metodo dataStores.completeQuery. Per informazioni, consulta Istruzioni API: invia una richiesta di completamento automatico per scegliere un modello diverso.

Funzionalità di completamento automatico

Vertex AI Search supporta le seguenti funzionalità di completamento automatico per mostrare le previsioni più utili durante la ricerca:

Funzionalità Descrizione Esempio o maggiori informazioni
Correggere gli errori di battitura Corregge l'ortografia delle parole che presentano errori di battitura. MilcMilk.
Rimuovere i termini non sicuri
  • Basato su Google SafeSearch.
  • Rimuovi le query inappropriate.
  • Supportato in inglese (en), francese (fr), tedesco (de), italiano (it), polacco (pl), portoghese (pt), russo (ru), spagnolo (es) e ucraino (uk).
Testo offensivo, ad esempio pornografia, contenuti osé, volgari o violenti.
Impedire la visualizzazione di informazioni che consentono l'identificazione personale (PII) di base Grazie a Sensitive Data Protection, Vertex AI Search si impegna ragionevolmente a impedire la visualizzazione di tipi di PII di base, come numeri di telefono e indirizzi email.

Se nel datastore è presente un indirizzo email jeffersonloveshiking@gmail.com, Vertex AI Search non lo restituirà come suggerimento di completamento automatico se l'utente digita jef nella barra di ricerca.

Per proteggerti in modo più completo dalle fughe di PII, Google consiglia di applicare la tua soluzione di prevenzione della perdita di dati (DLP) oltre ai rilevatori forniti da Vertex AI Search. Per saperne di più, vedi Proteggersi dalle fughe di PII.

Lista bloccata
  • Rimuovi i termini elencati nella lista bloccata.
Per saperne di più, consulta Usare una lista bloccata a completamento automatico.
Deduplica termini
  • Basato sulla comprensione semantica basata sull'AI.
  • Per i termini quasi identici, viene trovata una corrispondenza per entrambi, ma viene suggerito solo quello più popolare.
Shoes for Women, Womens Shoes e Womans Shoes vengono deduplicati e viene suggerito solo quello più popolare.
Suggerimenti per la corrispondenza esatta
  • Non disponibile nelle multiregioni USA e UE.
  • Impostazione facoltativa.
  • Se non ci sono corrispondenze di completamento automatico per l'intera query, suggerisci corrispondenze solo per l'ultima parola della query.
  • Non disponibile per la ricerca di servizi sanitari.
Per ulteriori informazioni, vedi Suggerimenti per la corrispondenza esatta.

Suggerimenti per la corrispondenza esatta

I suggerimenti per la corrispondenza finale vengono creati utilizzando la corrispondenza esatta del prefisso con l'ultima parola di una stringa di query.

Ad esempio, supponiamo che la query "canzoni con lui" venga inviata in una richiesta di completamento automatico. Quando la corrispondenza finale è attivata, il completamento automatico potrebbe rilevare che il prefisso completo "canzoni con he" non ha corrispondenze. Tuttavia, l'ultima parola della query, "he", ha una corrispondenza esatta con il prefisso di "hello world" e "hello kitty". In questo caso, i suggerimenti restituiti sono "canzoni con hello world" e "canzoni con hello kitty" perché non ci sono suggerimenti di corrispondenza esatta.

Puoi utilizzare questa funzionalità per ridurre i risultati di suggerimento vuoti e aumentare la diversità dei suggerimenti, rendendola particolarmente utile nei casi in cui le origini dati (conteggio eventi utente, cronologia delle ricerche e copertura degli argomenti dei documenti) sono limitate. Tuttavia, l'attivazione dei suggerimenti per la corrispondenza esatta può ridurre la qualità complessiva dei suggerimenti. Poiché la corrispondenza finale corrisponde solo all'ultima parola del prefisso, alcuni suggerimenti restituiti potrebbero non avere senso. Ad esempio, una query come "canzoni con lui" potrebbe ricevere un suggerimento di corrispondenza di coda come "canzoni con guide di aiuto".

I suggerimenti per la corrispondenza esatta vengono restituiti solo se:

  1. include_tail_suggestions è impostato su true nella richiesta dataStores.completeQuery.

  2. Non ci sono suggerimenti di corrispondenza del prefisso completo per la query.

Proteggiti dalle fughe di PII

La definizione di PII è ampia e le PII possono essere difficili da rilevare. Di conseguenza, Vertex AI Search non può garantire che i dati PII non vengano restituiti nei suggerimenti di completamento automatico.

Vertex AI Search applica il servizio di ispezione Sensitive Data Protection per cercare e bloccare i tipi comuni di PII che vengono visualizzati come suggerimenti. Tuttavia, se i tuoi data store contengono PII o se utilizzi i modelli di suggerimenti per le query della cronologia delle ricerche o degli eventi utente, esamina quanto segue e intraprendi le azioni appropriate:

  1. Se i tipi di PII che vuoi proteggere sono abbastanza standard, ad esempio numeri di telefono e indirizzi email, inizia testando a fondo i suggerimenti per il completamento automatico della tua app. Vertex AI Search non può garantire che le PII non vengano restituite nei suggerimenti per il completamento automatico.

  2. Se vengono rilevate perdite di PII durante il test del completamento automatico o se sai già di dover proteggere PII non standard (ad esempio ID utente proprietari), prova a modificare la soglia del completamento automatico e i parametri di pubblicazione dei contenuti. Per ulteriori informazioni, vedi Ridurre il rischio di restituire suggerimenti che contengono PII.

  3. Se la modifica dei parametri non è sufficiente a impedire la perdita di informazioni PII, implementa una soluzione DLP personalizzata. Personalizza la soluzione DLP per i tipi di PII più probabilmente presenti nei tuoi data store, negli eventi utente o nelle query di ricerca degli utenti. Puoi utilizzare Sensitive Data Protection o un servizio DLP di terze parti. Scegli uno dei metodi seguenti:

    • Filtra le PII prima di importare i documenti e gli eventi utente nei datastore.

    • Esamina i suggerimenti di completamento automatico prima di presentarli all'utente al momento della pubblicazione e blocca quelli che contengono dati personali.

  4. Se utilizzi il modello della cronologia delle ricerche o degli eventi utente, aggiungi del testo informativo nella barra di ricerca, comunicando agli utenti di non inserire PII nelle query di ricerca.

  5. Se hai domande o riscontri particolari difficoltà con il blocco dei dati PII, contatta il tuo Customer Engineer (CE) o il team dedicato all'account Google.

Attivare o disattivare il completamento automatico per un widget

Per attivare o disattivare il completamento automatico per un widget:

Console

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

    Applicazioni di AI

  2. Fai clic sul nome dell'app da modificare.

  3. Fai clic su Configurations (Configurazione).

  4. Fai clic sulla scheda UI.

  5. Attiva o disattiva l'opzione Mostra suggerimenti di completamento automatico per il widget. Quando attivi il completamento automatico, attendi uno o due giorni prima che vengano visualizzati i suggerimenti.

Aggiornare le impostazioni di completamento automatico

Per configurare le impostazioni di completamento automatico nell'interfaccia utente:

Console

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

    Applicazioni di AI

  2. Fai clic sul nome dell'app da modificare.

  3. Fai clic su Configurations (Configurazione).

  4. Fai clic sulla scheda Completamento automatico.

  5. Inserisci o seleziona nuovi valori per le impostazioni di completamento automatico che vuoi aggiornare:

    • Numero massimo di suggerimenti:il numero massimo di suggerimenti di completamento automatico che possono essere offerti per una query.
    • Lunghezza minima per l'attivazione:il numero minimo di caratteri che possono essere digitati prima che vengano offerti suggerimenti di completamento automatico.
    • Ordine di corrispondenza: la posizione in una stringa di query da cui il completamento automatico può iniziare a trovare corrispondenze per i suggerimenti.
    • Modello di suggerimenti di query: il modello di suggerimenti di query utilizzato per generare i suggerimenti recuperati. Questo valore può essere sostituito in dataStores.completeQuery utilizzando il parametro queryModel.
    • Attiva il completamento automatico: per impostazione predefinita, il completamento automatico non inizia a fornire suggerimenti finché non dispone di dati di qualità sufficiente, in genere dopo un paio di giorni. Se vuoi ignorare questa impostazione predefinita e iniziare a ricevere suggerimenti di completamento automatico prima, seleziona Ora.

      Anche quando selezioni Ora, possono essere necessari un giorno prima che i suggerimenti vengano generati e alcuni suggerimenti di completamento automatico saranno mancanti o di scarsa qualità finché non saranno disponibili dati validi sufficienti.

    • Denylist: importa una denylist come file JSON in un bucket Cloud Storage. Per ulteriori informazioni sui vincoli e sulle specifiche della lista bloccata, consulta Utilizzare una lista bloccata a completamento automatico.

  6. Fai clic su Salva e pubblica. Le modifiche diventano effettive entro pochi minuti per i motori di ricerca in cui il completamento automatico è già attivo.

Ridurre il rischio di restituire suggerimenti che contengono PII

Gli utenti finali dispongono di tutti i tipi di informazioni PII, come patenti di guida e numeri di telefono, che dovrebbero mantenere privati. Tuttavia, gli utenti che cercano risultati specifici per se stessi potrebbero digitare nella barra di ricerca una qualsiasi di queste informazioni PII.

Se utilizzi il modello di cronologia delle ricerche o eventi utente e i tuoi utenti potrebbero digitare PII nella barra di ricerca, puoi ridurre le perdite di PII modificando i seguenti parametri:

  • queryFrequencyThreshold: prima che una query possa essere restituita come suggerimento di completamento automatico, deve essere stata inserita questo numero di volte.

  • numUniqueUsersThreshold: Prima che una query possa essere restituita come suggerimento di completamento automatico, deve essere stata inserita da questo numero di utenti unici. Il valore del campo userPseudoId nell'evento utente di ricerca determina se l'utente è unico.

Esempio di caso d'uso

Ad esempio, considera un caso in cui gli utenti hanno numeri di conto che devono rimanere privati.

Se viene utilizzato il modello di suggerimenti della cronologia delle ricerche o degli eventi utente, questi numeri di conto, insieme a tutti gli altri termini cercati dagli utenti finali, vengono utilizzati per generare suggerimenti. Pertanto, se il numero di conto dell'utente A YZ-46789A è stato inserito ripetutamente nella barra di ricerca e l'utente B ha un numero di conto YZ-42345B, quando l'utente B digita YZ-4 nella barra di ricerca, il suggerimento di completamento automatico restituito potrebbe essere il numero di conto dell'utente A.

Per ridurre la probabilità che si verifichi questo tipo di perdita, l'amministratore delle applicazioni di AI decide di:

  • Aumenta il valore del parametro queryFrequencyThreshold a 30. In questo caso, è molto improbabile che un numero di conto venga inserito così spesso. Tuttavia, le query di ricerca più frequenti verranno inserite almeno con questa frequenza.

  • Aumenta il valore del parametro numUniqueUsersThreshold a 6. L'amministratore ritiene improbabile che lo stesso numero di conto venga inserito nella barra di ricerca in sei eventi di ricerca ciascuno associato a un userPseudoId diverso.

Procedura

Esistono due parametri di soglia per il completamento automatico. Questi parametri non sono disponibili nella console Google Cloud , ma possono essere impostati con una chiamata all'API REST al metodo updateCompletionConfig.

Per configurare le impostazioni della soglia di completamento automatico, segui questi passaggi. Ogni passaggio è facoltativo, a seconda del parametro che vuoi modificare.

REST

  1. Aggiorna il campo CompletionConfig.queryFrequencyThreshold:

    curl -X PATCH \
      -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/DATA_STORE_ID/completionConfig?updateMask=queryFrequencyThreshold \
      -d '{
        "name": "projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID/completionConfig",
        "queryFrequencyThreshold": QUERY_FREQUENCY_THRESHOLD
      }'
    

    Sostituisci quanto segue:

    • PROJECT_ID: il numero o l'ID del tuo progetto Google Cloud .

    • DATA_STORE_ID: l'ID del datastore associato alla tua app.

    • QUERY_FREQUENCY_THRESHOLD: un valore intero che indica il numero minimo di volte in cui una query di ricerca deve essere inserita prima di poter essere restituita come suggerimento di completamento automatico. Il conteggio viene sommato in una finestra temporale mobile di diversi mesi. Il valore predefinito è 8.

  2. Aggiorna il campo CompletionConfig.numUniqueUsersThreshold:

    curl -X PATCH \
      -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/DATA_STORE_ID/completionConfig?updateMask=numUniqueUsersThreshold \
      -d '{
        "name": "projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID/completionConfig",
        "numUniqueUsersThreshold": UNIQUE_USERS
      }'
    

    Sostituisci UNIQUE_USERS con un valore intero che rappresenta il numero minimo di utenti unici che devono inserire una determinata query di ricerca prima che possa essere restituita come suggerimento di completamento automatico. Il conteggio viene sommato in una finestra temporale mobile di diversi mesi. Il valore predefinito è 3.

Aggiorna le annotazioni dei campi completabili nello schema

Per attivare il completamento automatico per i campi nello schema dei dati strutturati:

Console

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

    Applicazioni di AI

  2. Fai clic sul nome dell'app da modificare. Deve utilizzare dati strutturati.

  3. Fai clic su Dati.

  4. Fai clic sulla scheda Schema.

  5. Fai clic su Modifica per selezionare i campi dello schema da contrassegnare come completable.

  6. Fai clic su Salva per salvare le configurazioni dei campi aggiornate. Questi suggerimenti richiedono circa un giorno per essere generati e restituiti.

Inviare richieste di completamento automatico

Gli esempi riportati di seguito mostrano come inviare richieste di completamento automatico.

REST

Per inviare una richiesta di completamento automatico utilizzando l'API:

  1. Trova l'ID datastore. Se hai già l'ID del tuo datastore, vai al passaggio successivo.

    1. Nella Google Cloud console, vai alla pagina AI Applications e nel menu di navigazione, fai clic su Datastore.

      Vai alla pagina Datastore

    2. Fai clic sul nome del tuo datastore.

    3. Nella pagina Dati del datastore, recupera l'ID datastore.

  2. Chiama il metodo dataStores.completeQuery.

    curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID:completeQuery?query=QUERY_STRING"
    

    Sostituisci quanto segue:

    • PROJECT_ID: il numero o l'ID del tuo progetto Google Cloud .

    • DATA_STORE_ID: l'ID del datastore associato alla tua app.

    • QUERY_STRING: l'input di completamento automatico utilizzato per recuperare i suggerimenti.

Inviare una richiesta di completamento automatico a un modello diverso

Per inviare una richiesta di completamento automatico con un modello di suggerimenti per le query diverso, segui questi passaggi:

  1. Trova l'ID datastore. Se hai già l'ID del tuo datastore, vai al passaggio successivo.

    1. Nella Google Cloud console, vai alla pagina AI Applications e nel menu di navigazione, fai clic su Datastore.

      Vai alla pagina Datastore

    2. Fai clic sul nome del tuo datastore.

    3. Nella pagina Dati del datastore, recupera l'ID datastore.

  2. Chiama il metodo dataStores.completeQuery.

    curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID:completeQuery?query=QUERY_STRING&query_model=QUERY_SUGGESTIONS_MODEL"
    

    Sostituisci quanto segue:

    • PROJECT_ID: il numero o l'ID del tuo progetto Google Cloud .

    • DATA_STORE_ID: l'ID univoco dell'datastore associato alla tua app.

    • QUERY_STRING: l'input di completamento automatico utilizzato per recuperare i suggerimenti.

    • AUTOCOMPLETE_MODEL: i dati del completamento automatico

    • QUERY_SUGGESTIONS_MODEL: il modello di suggerimenti per le query da utilizzare per la richiesta: document, document-completable, search-history o user-event. Per i dati sanitari, utilizza healthcare-default.

C#

Per saperne di più, consulta la documentazione di riferimento dell'API AI Applications per C#.

Per autenticarti in AI Applications, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.

using Google.Cloud.DiscoveryEngine.V1;

public sealed partial class GeneratedCompletionServiceClientSnippets
{
    /// <summary>Snippet for CompleteQuery</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 CompleteQueryRequestObject()
    {
        // Create client
        CompletionServiceClient completionServiceClient = CompletionServiceClient.Create();
        // Initialize request argument(s)
        CompleteQueryRequest request = new CompleteQueryRequest
        {
            DataStoreAsDataStoreName = DataStoreName.FromProjectLocationDataStore("[PROJECT]", "[LOCATION]", "[DATA_STORE]"),
            Query = "",
            QueryModel = "",
            UserPseudoId = "",
            IncludeTailSuggestions = false,
        };
        // Make the request
        CompleteQueryResponse response = completionServiceClient.CompleteQuery(request);
    }
}

Go

Per saperne di più, consulta la documentazione di riferimento dell'API AI Applications per Go.

Per autenticarti in AI Applications, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.


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.NewCompletionClient(ctx)
	if err != nil {
		// TODO: Handle error.
	}
	defer c.Close()

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

Java

Per saperne di più, consulta la documentazione di riferimento dell'API AI Applications per Java.

Per autenticarti in AI Applications, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.

import com.google.cloud.discoveryengine.v1.CompleteQueryRequest;
import com.google.cloud.discoveryengine.v1.CompleteQueryResponse;
import com.google.cloud.discoveryengine.v1.CompletionServiceClient;
import com.google.cloud.discoveryengine.v1.DataStoreName;

public class SyncCompleteQuery {

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

  public static void syncCompleteQuery() 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 (CompletionServiceClient completionServiceClient = CompletionServiceClient.create()) {
      CompleteQueryRequest request =
          CompleteQueryRequest.newBuilder()
              .setDataStore(
                  DataStoreName.ofProjectLocationDataStoreName(
                          "[PROJECT]", "[LOCATION]", "[DATA_STORE]")
                      .toString())
              .setQuery("query107944136")
              .setQueryModel("queryModel-184930495")
              .setUserPseudoId("userPseudoId-1155274652")
              .setIncludeTailSuggestions(true)
              .build();
      CompleteQueryResponse response = completionServiceClient.completeQuery(request);
    }
  }
}

Node.js

Per saperne di più, consulta la documentazione di riferimento dell'API AI Applications per Node.js.

Per autenticarti in AI Applications, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.

/**
 * 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 data store resource name for which the completion is
 *  performed, such as
 *  `projects/* /locations/global/collections/default_collection/dataStores/default_data_store`.
 */
// const dataStore = 'abc123'
/**
 *  Required. The typeahead input used to fetch suggestions. Maximum length is
 *  128 characters.
 */
// const query = 'abc123'
/**
 *  Specifies the autocomplete data model. This overrides any model specified
 *  in the Configuration > Autocomplete section of the Cloud console. Currently
 *  supported values:
 *  * `document` - Using suggestions generated from user-imported documents.
 *  * `search-history` - Using suggestions generated from the past history of
 *  SearchService.Search google.cloud.discoveryengine.v1.SearchService.Search 
 *  API calls. Do not use it when there is no traffic for Search API.
 *  * `user-event` - Using suggestions generated from user-imported search
 *  events.
 *  * `document-completable` - Using suggestions taken directly from
 *  user-imported document fields marked as completable.
 *  Default values:
 *  * `document` is the default model for regular dataStores.
 *  * `search-history` is the default model for site search dataStores.
 */
// const queryModel = 'abc123'
/**
 *  A unique identifier for tracking visitors. For example, this could be
 *  implemented with an HTTP cookie, which should be able to uniquely identify
 *  a visitor on a single device. This unique identifier should not change if
 *  the visitor logs in or out of the website.
 *  This field should NOT have a fixed value such as `unknown_visitor`.
 *  This should be the same identifier as
 *  UserEvent.user_pseudo_id google.cloud.discoveryengine.v1.UserEvent.user_pseudo_id 
 *  and
 *  SearchRequest.user_pseudo_id google.cloud.discoveryengine.v1.SearchRequest.user_pseudo_id.
 *  The field must be a UTF-8 encoded string with a length limit of 128
 *  characters. Otherwise, an `INVALID_ARGUMENT` error is returned.
 */
// const userPseudoId = 'abc123'
/**
 *  Indicates if tail suggestions should be returned if there are no
 *  suggestions that match the full query. Even if set to true, if there are
 *  suggestions that match the full query, those are returned and no
 *  tail suggestions are returned.
 */
// const includeTailSuggestions = true

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

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

async function callCompleteQuery() {
  // Construct request
  const request = {
    dataStore,
    query,
  };

  // Run request
  const response = await discoveryengineClient.completeQuery(request);
  console.log(response);
}

callCompleteQuery();

Python

Per saperne di più, consulta la documentazione di riferimento dell'API AI Applications per Python.

Per autenticarti in AI Applications, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.

# 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://googleapis.dev/python/google-api-core/latest/client_options.html
from google.cloud import discoveryengine_v1


def sample_complete_query():
    # Create a client
    client = discoveryengine_v1.CompletionServiceClient()

    # Initialize request argument(s)
    request = discoveryengine_v1.CompleteQueryRequest(
        data_store="data_store_value",
        query="query_value",
    )

    # Make the request
    response = client.complete_query(request=request)

    # Handle the response
    print(response)

Ruby

Per saperne di più, consulta la documentazione di riferimento dell'API AI Applications per Ruby.

Per autenticarti in AI Applications, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.

require "google/cloud/discovery_engine/v1"

##
# Snippet for the complete_query call in the CompletionService 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::CompletionService::Client#complete_query.
#
def complete_query
  # Create a client object. The client can be reused for multiple calls.
  client = Google::Cloud::DiscoveryEngine::V1::CompletionService::Client.new

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

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

  # The returned object is of type Google::Cloud::DiscoveryEngine::V1::CompleteQueryResponse.
  p result
end

Utilizzare una lista bloccata a completamento automatico

Puoi usare una lista bloccata per evitare che termini specifici appaiano come suggerimenti di completamento automatico.

Prendiamo ad esempio un'azienda farmaceutica. Se un farmaco non è più approvato dalla FDA, ma è menzionato nei documenti del suodatastorei, potrebbe voler impedire che venga visualizzato come query suggerita. L'azienda potrebbe aggiungere il nome del farmaco a una denylist per impedirne il suggerimento.

I limiti sono i seguenti:

  • Una lista bloccata per datastore
  • Il caricamento di una lista bloccata sovrascrive qualsiasi lista bloccata esistente per quel datastore
  • Fino a 1000 termini per lista bloccata
  • I termini non fanno distinzione tra maiuscole e minuscole
  • Dopo l'importazione di una denylist, sono necessari 1-2 giorni per l'applicazione

Ogni voce della tua denylist è composta da un blockPhrase e un matchOperator:

  • blockPhrase: inserisci una stringa come termine della lista bloccata. I termini non distinguono tra maiuscole e minuscole.
  • matchOperator: accetta i seguenti valori:
    • EXACT_MATCH: impedisce che una corrispondenza esatta del termine della lista bloccata venga visualizzata come query suggerita.
    • CONTAINS: impedisce la visualizzazione di qualsiasi suggerimento che contenga il termine della lista bloccata.

Di seguito è riportato un esempio di denylist con quattro voci:

{
    "entries": [
        {"blockPhrase":"Oranges","matchOperator":"CONTAINS"},
        {"blockPhrase":"bAd apples","matchOperator":"EXACT_MATCH"},
        {"blockPhrase":"Cool as A Cucumber","matchOperator":"EXACT_MATCH"},
        {"blockPhrase":"cherry pick","matchOperator":"CONTAINS"}
    ]
}

Prima di importare una denylist, verifica che siano impostati i controlli di accesso necessari per l'accesso all'editor di Discovery Engine.

Le liste bloccate possono essere importate da dati JSON locali o da Cloud Storage. Per rimuovere una denylist da un datastore, elimina la denylist.

Importare una lista bloccata da dati JSON locali

Per importare una denylist da un file JSON locale contenente la denylist:

  1. Crea la tua denylist in un file JSON locale nel seguente formato. Assicurati che ogni voce della denylist si trovi su una nuova riga senza interruzioni di riga.

    {
        "inlineSource": {
            "entries": [
                { "blockPhrase":"TERM_1","matchOperator":"MATCH_OPERATOR_1" },
                { "blockPhrase":"TERM_2","matchOperator":"MATCH_OPERATOR_2" }
            ]
        }
    }
  2. Invia una richiesta POST al metodo suggestionDenyListEntries:import, fornendo il nome del file JSON.

    curl -X POST \
        -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        -H "Content-Type: application/json; charset=utf-8" \
        --data @DENYLIST_FILE \
      "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/dataStores/DATA_STORE_ID/suggestionDenyListEntries:import"
    

    Sostituisci quanto segue:

    • DENYLIST_FILE: il percorso locale del file JSON contenente i termini della denylist.
    • PROJECT_ID: il numero o l'ID del tuo progetto Google Cloud .

    • DATA_STORE_ID: l'ID del datastore associato alla tua app.

Dopo l'importazione della denylist, sono necessari 1-2 giorni per iniziare a filtrare i suggerimenti.

Importare una lista bloccata da Cloud Storage

Per importare una denylist da un file JSON in Cloud Storage:

  1. Crea la tua denylist in un file JSON con il seguente formato e importala in un bucket Cloud Storage. Assicurati che ogni voce della denylist si trovi su una nuova riga senza interruzioni di riga.

    { "blockPhrase":"TERM_1","matchOperator":"MATCH_OPERATOR_1" }
    { "blockPhrase":"TERM_2","matchOperator":"MATCH_OPERATOR_2" }
  2. Crea un file JSON locale contenente l'oggetto gcsSource. Utilizza questo campo per indicare la posizione del file della denylist in un bucket Cloud Storage.

    {
        "gcsSource": {
            "inputUris": [ "DENYLIST_STORAGE_LOCATION" ]
        }
    }

    Sostituisci DENYLIST_STORAGE_LOCATION con la posizione della tua denylist in Cloud Storage. Puoi inserire un solo URI. L'URI deve essere inserito nel seguente formato: gs://BUCKET/FILE_PATH.

  3. Invia una richiesta POST al metodo suggestionDenyListEntries:import, incluso l'oggetto gcsSource.

    curl -X POST \
        -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        -H "Content-Type: application/json; charset=utf-8" \
        --data @GCS_SOURCE_FILE \
       "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/dataStores/DATA_STORE_ID/suggestionDenyListEntries:import"
    

    Sostituisci quanto segue:

    • GCS_SOURCE_FILE: il percorso locale del file contenente l'oggetto gcsSource che punta alla tua lista bloccata.
    • PROJECT_ID: il numero o l'ID del tuo progetto Google Cloud .

    • DATA_STORE_ID: l'ID del datastore associato alla tua app.

Dopo l'importazione della denylist, sono necessari 1-2 giorni per iniziare a filtrare i suggerimenti.

Eliminare definitivamente una lista bloccata

Per eliminare un elenco bloccato dal tuo datastore:

  1. Invia una richiesta POST al metodo suggestionDenyListEntries:purge.

    curl -X POST \
        -H "Authorization: Bearer $(gcloud auth print-access-token)" \
       "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/dataStores/DATA_STORE_ID/suggestionDenyListEntries:purge"
    

    Sostituisci quanto segue:

    • PROJECT_ID: il numero o l'ID del tuo progetto Google Cloud .

    • DATA_STORE_ID: l'ID del datastore associato alla tua app.

Utilizzare un elenco importato di suggerimenti di completamento automatico

Puoi scegliere di fornire il tuo elenco di suggerimenti di completamento automatico anziché utilizzare quelli generati da unmodello dei datii di completamento automatico.

Per la maggior parte delle applicazioni, l'utilizzo di suggerimenti generati da uno dei modelli di dati di completamento automatico produce risultati migliori. Tuttavia, in alcune rare situazioni i suggerimenti del modello potrebbero non corrispondere alle tue esigenze e fornire un elenco discreto di suggerimenti offre agli utenti un'esperienza di completamento automatico migliore.

Ad esempio, una piccola libreria online importa il proprio elenco di titoli di libri come suggerimenti di completamento automatico. Quando un cliente inizia a digitare nella barra di ricerca, il suggerimento di completamento automatico sarà sempre il titolo di un libro dell'elenco importato. Quando l'elenco dei libri cambia, la libreria elimina l'elenco attuale e importa il nuovo elenco. Un estratto dell'elenco potrebbe avere un aspetto simile a questo:

{"suggestion": "Wuthering Heights", "globalScore": "0.52" },
{"suggestion": "The Time Machine", "globalScore": "0.26" },
{"suggestion": "Nicholas Nickleby", "globalScore": "0.38" },
{"suggestion": "A Little Princess", "globalScore": "0.71" },
{"suggestion": "The Scarlet Letter", "globalScore": "0.32" }

globalScore è un numero con rappresentazione in virgola mobile compreso nell'intervallo [0, 1] utilizzato per classificare il suggerimento. In alternativa, puoi utilizzare un punteggio frequency, che è un numero intero maggiore di uno. Il punteggio frequency viene utilizzato per classificare i suggerimenti quando globalScore non è disponibile (impostato come nullo).

Configurare e importare i suggerimenti di completamento automatico

Per configurare e importare un elenco di suggerimenti di completamento automatico da BigQuery:

  1. Crea l'elenco di suggerimenti e caricalo in una tabella BigQuery.

    Come minimo, devi fornire ogni suggerimento come stringa e un punteggio globale o una frequenza.

    Utilizza lo schema della tabella seguente per l'elenco di suggerimenti:

    [
      {
        "description": "The suggestion text",
        "mode": "REQUIRED",
        "name": "suggestion",
        "type": "STRING"
      },
      {
        "description": "Global score of this suggestion. Control how this suggestion would be scored and ranked. Set global score or frequency; not both.",
        "mode": "NULLABLE",
        "name": "globalScore",
        "type": "FLOAT"
      },
      {
        "description": "Frequency of this suggestion. Used to rank suggestions when the global score is not available.",
        "mode": "NULLABLE",
        "name": "frequency",
        "type": "INTEGER"
      }
    ]
    

    Consulta la documentazione di BigQuery per istruzioni su come creare una tabella BigQuery e caricare la tabella con l'elenco di suggerimenti per il completamento automatico.

  2. Importa l'elenco da BigQuery.

    Invia una richiesta POST al metodo completionSuggestions:import, incluso l'oggetto bigquerySource.

    curl -X POST \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     -H "Content-Type: application/json; charset=utf-8" \
     -H "X-Goog-User-Project: PROJECT_ID" \
     "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/dataStores/DATA_STORE_ID/completionSuggestions:import" \
     -d '{
          "bigquery_source": {"project_id": "PROJECT_ID_SOURCE", "dataset_id": "DATASET_ID", "table_id": "TABLE_ID"}
     }'
    

    Sostituisci quanto segue:

    • PROJECT_ID: il numero o l'ID del tuo progetto Google Cloud .
    • DATA_STORE_ID: l'ID del datastore Vertex AI Search.
    • PROJECT_ID_SOURCE: il progetto che contiene il set di dati che vuoi importare.
    • DATASET_ID: l'ID del set di dati per l'elenco di suggerimenti che vuoi importare
    • TABLE_ID: l'ID tabella per l'elenco di suggerimenti che vuoi importare
  3. (Facoltativo) Prendi nota del valore name restituito e segui le istruzioni riportate in Visualizzare i dettagli di un'operazione di lunga durata per vedere quando l'operazione di importazione è completata.

  4. Se non hai attivato il completamento automatico per l'app, segui la procedura Aggiornare le impostazioni di completamento automatico. Assicurati di impostare Attiva completamento automatico su Ora.

  5. Attendi un paio di giorni per il completamento dell'indicizzazione e la disponibilità dei suggerimenti importati.

Inviare una richiesta di completamento automatico

Per inviare una richiesta di completamento automatico che restituisce un suggerimento importato anziché un suggerimento di un modello di completamento automatico:

  1. Segui la procedura per inviare una richiesta di completamento automatico a un modello diverso e imposta AUTOCOMPLETE_MODEL su imported-suggestion.

Eliminare l'elenco dei suggerimenti di completamento automatico importati

Prima di importare un nuovo elenco di suggerimenti di completamento automatico, rimuovi quello esistente.

Per eliminare un elenco esistente di suggerimenti di completamento automatico, segui questo passaggio:

  1. Invia una richiesta POST al metodo completionSuggestions:purge.

    curl -X POST \
        -H "Authorization: Bearer $(gcloud auth print-access-token)" \
       "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/dataStores/DATA_STORE_ID/completionSuggestions:purge"
    

    Sostituisci quanto segue:

    • PROJECT_ID: il numero o l'ID del tuo progetto Google Cloud .

    • DATA_STORE_ID: l'ID del datastore associato alla tua app.

Modello dei dati avanzato per i documenti

AI Applications fornisce un modello dei dati avanzato per il completamento automatico. In base ai documenti che importi, questo modello dei dati genera suggerimenti di completamento automatico di alta qualità sfruttando i modelli linguistici di grandi dimensioni (LLM) di Google.

Questa funzionalità è sperimentale. Se ti interessa utilizzare questa funzionalità, contatta il tuo team dedicato all'account Google Cloud e chiedi di essere aggiunto alla lista consentita.

Il modello avanzato di dati dei documenti non è disponibile per la ricerca di dati sanitari o nelle regioni multiple USA e UE.