Configura la función de autocompletar

En esta página, se describe la función básica de autocompletado de Vertex AI Search. La función Autocomplete genera sugerencias de búsqueda en función de los primeros caracteres ingresados para la búsqueda.

Las sugerencias que genera la función de autocompletar varían según el tipo de datos que usa la app de búsqueda:

  • Datos estructurados y no estructurados. De forma predeterminada, el autocompletado genera sugerencias basadas en el contenido de los documentos del almacén de datos. Después de la importación de documentos, de forma predeterminada, el autocompletado no comienza a generar sugerencias hasta que hay datos de calidad suficientes, por lo general, un par de días. Si realizas solicitudes de autocompletado a través de la API, el autocompletado puede generar sugerencias basadas en el historial de búsqueda o los eventos del usuario.

  • Datos del sitio web. De forma predeterminada, la función de autocompletar genera sugerencias del historial de búsqueda. La función Autocompletar requiere tráfico de búsqueda real. Después de que comienza el tráfico de búsqueda, el autocompletado tarda uno o dos días en generar sugerencias. Las sugerencias se pueden generar a partir de datos rastreados en la Web de sitios públicos con el modelo de datos de documentos avanzados experimental.

  • Datos de atención médica. De forma predeterminada, se usa una fuente de datos médica canónica para generar sugerencias de autocompletado para almacenes de datos de atención médica.

El modelo de sugerencias de consulta determina qué tipo de datos usa la función de autocompletar para generar sugerencias. Existen cuatro modelos de sugerencias de consultas:

  • Document. El modelo de documentos genera sugerencias a partir de los documentos que importa el usuario. Este modelo no está disponible para datos de sitios web ni de atención médica.

  • Campos completables. El modelo de campos completables sugiere texto tomado directamente de los campos de datos estructurados. Solo los campos que están anotados con completable se usan para las sugerencias de autocompletado. Este modelo solo está disponible para datos estructurados.

  • Historial de búsqueda. El modelo de historial de búsqueda genera sugerencias a partir del historial de llamadas a la API de SearchService.search. No uses este modelo si no hay tráfico disponible para el metodo servingConfigs.search. Este modelo no está disponible para los datos de atención médica.

  • Evento del usuario. El modelo de eventos de usuario genera sugerencias a partir de los eventos importados por el usuario de tipo search. Este modelo no está disponible para los datos de atención médica.

Las solicitudes de Autocomplete se envían con el método dataStores.completeQuery.

Como alternativa, si no quieres usar un modelo de sugerencias de búsqueda, puedes usar las sugerencias importadas que proporcionan sugerencias de autocompletado según una lista de sugerencias importada. Para obtener más información, consulta Cómo usar una lista importada de sugerencias de autocompletado.

Tipos de modelos disponibles según el tipo de datos

En la siguiente tabla, se muestran los tipos de modelos de sugerencias de búsqueda disponibles para cada tipo de datos.


Modelo de sugerencias de consultas

Fuente de datos

Datos del sitio web

Datos estructurados

Datos desordenados
Documento Importado ✔* (predeterminada) ✔ (predeterminada)
Campos completables Importado
Historial de búsquedas Recopilada automáticamente ✔ (predeterminada)
Eventos del usuario Se importan o se recopilan automáticamente con widgets.
Contenido rastreado en la Web Se rastrea desde el contenido de los sitios web públicos que especifiques.

* : El esquema del documento debe contener campos title o description, o bien debe haber campos que se hayan especificado como propiedades clave title o description. Consulta Cómo actualizar un esquema para datos estructurados.

: El contenido rastreado en la Web solo se puede usar como fuente de datos si está habilitado el modelo experimental de datos de documentos avanzados para el autocompletado. Consulta el modelo de datos de documentos avanzados.

Si no quieres usar el modelo predeterminado para tu tipo de datos, puedes especificar un modelo diferente cuando envíes tu solicitud de Autocomplete. Las solicitudes de autocompletado se envían con el método dataStores.completeQuery. Para obtener información, consulta Instrucciones de la API: Envía una solicitud de autocompletado para elegir un modelo diferente.

Funciones de Autocompletar

Vertex AI Search admite las siguientes funciones de autocompletado para mostrar las predicciones más útiles durante la búsqueda:

Función Descripción Ejemplo o más información
Cómo corregir errores tipográficos Corrige la ortografía de las palabras que son errores tipográficos. MilcMilk.
Quita los términos no seguros
  • Con la tecnología de Google SafeSearch.
  • Quita las consultas inapropiadas.
  • Se admite en inglés (en), francés (fr), alemán (de), italiano (it), (pl), portugués (pt), ruso (ru), español (es) y ucraniano (uk).
Texto ofensivo, como pornografía, imágenes subidas de tono, vulgaridad o violencia
Evita la visualización de información de identificación personal (PII) básica Con la Protección de datos sensibles, Vertex AI Search hace un esfuerzo razonable para evitar la visualización de tipos básicos de PII, como números de teléfono y direcciones de correo electrónico.

Si hay una dirección de correo electrónico jeffersonloveshiking@gmail.com en el almacén de datos, Vertex AI Search no mostrará la dirección de correo electrónico como una sugerencia de autocompletar si el usuario escribe jef en la barra de búsqueda.

Para protegerte de manera más exhaustiva contra las filtraciones de PII, Google recomienda que apliques tu propia solución de Prevención de pérdida de datos (DLP), además de los detectores que proporciona Vertex AI Search. Para obtener más información, consulta Cómo protegerte contra filtraciones de PII.

Lista de bloqueo
  • Quita los términos que se indican en la lista de bloqueo.
Para obtener más información, consulta Cómo usar una lista de bloqueo para autocompletar.
Anula duplicados de términos
  • Se basa en la comprensión semántica impulsada por IA.
  • En el caso de los términos casi idénticos, se muestra una coincidencia para cualquiera de ellos, pero solo se sugiere el más popular.
Shoes for Women, Womens Shoes y Womans Shoes se eliminan, y solo se sugiere la más popular.
Sugerencias de concordancia de cola
  • No está disponible en las multirregiones de EE.UU. y la UE.
  • Configuración opcional.
  • Si no hay coincidencias de autocompletar para toda la consulta, sugiere coincidencias solo para la palabra final de la consulta.
  • No está disponible para la búsqueda de atención médica.
Para obtener más información, consulta Sugerencias de coincidencia de cola.

Sugerencias de concordancia de cola

Las sugerencias de concordancia de cola se realizan con la concordancia de prefijo exacta en la última palabra de una cadena de consulta.

Por ejemplo, supongamos que la búsqueda "canciones con él" se envía en una solicitud de autocompletar. Cuando la coincidencia de cola está habilitada, es posible que el autocompletado detecte que el prefijo completo "songs with he" no tiene ninguna coincidencia. Sin embargo, la última palabra de la búsqueda, "he", tiene una concordancia de prefijo exacta con "hello world" y "hello kitty". En ese caso, las sugerencias que se muestran son "songs with hello world" y "songs with hello kitty" porque no hay sugerencias de concordancia total.

Puedes usar esta función para reducir los resultados de sugerencias vacías y aumentar la diversidad de sugerencias, lo que resulta especialmente útil en los casos en que las fuentes de datos (cantidad de eventos del usuario, historial de búsqueda y cobertura de temas de documentos) son limitadas. Sin embargo, habilitar las sugerencias de concordancia de cola puede reducir la calidad general de las sugerencias. Debido a que la concordancia de cola solo coincide con la palabra final del prefijo, es posible que algunas sugerencias que se muestran no tengan sentido. Por ejemplo, una búsqueda como "canciones con él" podría obtener una sugerencia de concordancia de cola como "canciones con guías de ayuda".

Las sugerencias de concordancia de cola solo se muestran en los siguientes casos:

  1. include_tail_suggestions se establece en true en la solicitud dataStores.completeQuery.

  2. No hay sugerencias de coincidencia de prefijo completo para la consulta.

Protección contra filtraciones de PII

La definición de PII es amplia y puede ser difícil de detectar. Como resultado, Vertex AI Search no puede garantizar que no se devuelva PII en las sugerencias de autocompletar.

Vertex AI Search aplica el servicio de inspección de Protección de datos sensibles para buscar y bloquear tipos comunes de PII para que no aparezcan como sugerencias. Sin embargo, si tus almacenes de datos contienen PII o si usas el historial de búsqueda o los modelos de sugerencias de consultas de eventos de usuarios, revisa lo siguiente y toma las medidas adecuadas:

  1. Si los tipos de PII que deseas proteger son bastante estándar, como números de teléfono y direcciones de correo electrónico, comienza por probar de forma exhaustiva las sugerencias de autocompletado para tu app. La Búsqueda de Vertex AI no puede garantizar que no se muestre PII en las sugerencias de autocompletado.

  2. Si se descubren filtraciones de PII durante las pruebas de autocompletado o si ya sabes que tienes PII no estándar que proteger (por ejemplo, IDs de usuario propietarios), intenta ajustar el umbral de autocompletado y los parámetros de publicación de contenido. Para obtener más información, consulta Cómo reducir el riesgo de mostrar sugerencias que contengan PII.

  3. Si ajustar los parámetros no es suficiente para evitar filtraciones de PII, implementa tu propia solución de DLP. Personaliza la solución de DLP para los tipos de PII que es más probable que se encuentren en tus almacenes de datos, eventos de usuario o consultas de búsqueda de los usuarios. Puedes usar Sensitive Data Protection o un servicio de DLP de terceros. Sigue uno de los siguientes enfoques:

    • Filtra la PII antes de importar los documentos y los eventos de usuario en tus almacenes de datos.

    • Revisa las sugerencias de autocompletado antes de presentarlas al usuario en el momento de la publicación y bloquea las que contengan PII.

  4. Si usas el modelo de historial de búsqueda o de eventos del usuario, agrega texto informativo en la barra de búsqueda para indicarles a los usuarios que no incluyan PII en sus búsquedas.

  5. Si tienes preguntas o encuentras dificultades específicas para bloquear la PII, comunícate con tu ingeniero de atención al cliente (CE) o con el equipo de Cuentas de Google.

Cómo activar o desactivar la función Autocomplete en un widget

Para activar o desactivar el autocompletado de un widget, sigue estos pasos:

Console

  1. En la consola de Google Cloud , ve a la página AI Applications.

    Aplicaciones de IA

  2. Haz clic en el nombre de la app que deseas editar.

  3. Haz clic en Parámetros de configuración.

  4. Haz clic en la pestaña IU.

  5. Activa o desactiva la opción Mostrar sugerencias de autocompletar para activar o desactivar las sugerencias de autocompletar del widget. Cuando habilites la función, espera uno o dos días antes de que comiencen a aparecer las sugerencias.

Actualiza la configuración de Autocompletar

Para configurar la configuración de autocompletado en la IU, sigue estos pasos:

Console

  1. En la consola de Google Cloud , ve a la página AI Applications.

    Aplicaciones de IA

  2. Haz clic en el nombre de la app que deseas editar.

  3. Haz clic en Parámetros de configuración.

  4. Haz clic en la pestaña Autocomplete.

  5. Ingresa o selecciona valores nuevos para la configuración de autocompletar que deseas actualizar:

    • Cantidad máxima de sugerencias: Es la cantidad máxima de sugerencias de autocompletar que se puede ofrecer para una consulta.
    • Longitud mínima para activar: Es la cantidad mínima de caracteres que se pueden escribir antes de que se ofrezcan sugerencias de autocompletar.
    • Orden coincidente: Es la ubicación en una cadena de consulta desde la que la función Autocomplete puede comenzar a hacer coincidir sus sugerencias.
    • Modelo de sugerencias de consulta: Es el modelo de sugerencias de consulta que se usa para generar las sugerencias recuperadas. Esto se puede anular en dataStores.completeQuery con el parámetro queryModel.
    • Habilitar la función Autocompletar: De forma predeterminada, la función Autocompletar no comienza a hacer sugerencias hasta que tiene datos de calidad suficientes, por lo general, un par de días. Si quieres anular esta configuración predeterminada y comenzar a recibir algunas sugerencias de autocompletado antes, selecciona Ahora.

      Incluso si seleccionas Ahora, es posible que las sugerencias tarden un día en generarse y que algunas sugerencias de autocompletado no estén disponibles o sean de baja calidad hasta que haya suficientes datos de buena calidad.

    • Lista de entidades rechazadas: Importa una lista de entidades rechazadas como un archivo JSON en un bucket de Cloud Storage. Para obtener más información sobre las restricciones y especificaciones de la lista de bloqueo, consulta Usa una lista de bloqueo para autocompletar.

  6. Haz clic en Guardar y publicar. Los cambios se aplican en unos minutos en los motores en los que ya se activó el autocompletado.

Reduce el riesgo de mostrar sugerencias que contengan PII

Los usuarios finales tienen todo tipo de información de PII, como licencias de conducir y números de teléfono, que se supone que deben mantener en privado. Sin embargo, los usuarios que buscan resultados específicos para ellos pueden escribir cualquiera de esta información de PII en la barra de búsqueda.

Si usas el modelo de historial de búsqueda o de eventos del usuario y es probable que los usuarios escriban PII en la barra de búsqueda, puedes reducir las filtraciones de PII ajustando los siguientes parámetros:

  • queryFrequencyThreshold: Para que una consulta se pueda mostrar como sugerencia de autocompletado, se debe haber ingresado esta cantidad de veces.

  • numUniqueUsersThreshold: Para que una consulta se pueda mostrar como sugerencia de autocompletado, esta debe haber sido ingresada por esta cantidad de usuarios únicos. El valor del campo userPseudoId en el evento de usuario de búsqueda determina si el usuario es único.

Ejemplo de caso de uso

Por ejemplo, considera un caso en el que los usuarios tienen números de cuenta que deben mantenerse privados.

Si se está usando el modelo de sugerencias de eventos de usuario o historial de búsqueda, estos números de cuenta, junto con todos los demás términos que buscan los usuarios finales, se usan para generar sugerencias. Por lo tanto, si el número de cuenta del usuario A, YZ-46789A, se ingresó de forma reiterada en la barra de búsqueda y el usuario B tiene el número de cuenta YZ-42345B, cuando el usuario B escribe YZ-4 en la barra de búsqueda, la sugerencia de autocompletar que se muestra podría ser el número de cuenta del usuario A.

Para reducir la probabilidad de que ocurra este tipo de filtración, el administrador de aplicaciones de IA decide hacer lo siguiente:

  • Aumenta el valor del parámetro queryFrequencyThreshold a 30. En este caso, es muy poco probable que se ingrese un número de cuenta con tanta frecuencia. Sin embargo, las búsquedas populares se ingresarán al menos con esa frecuencia.

  • Aumenta el valor del parámetro numUniqueUsersThreshold a 6. El administrador cree que es poco probable que se ingrese el mismo número de cuenta en la barra de búsqueda en seis eventos de búsqueda, cada uno asociado con un userPseudoId diferente.

Procedimiento

Existen dos parámetros de umbral para la función de autocompletar. Estos parámetros no están disponibles en la consola de Google Cloud , pero se pueden configurar con una llamada a la API de REST al método updateCompletionConfig.

Para configurar el umbral de autocompletado, sigue estos pasos. Cada paso es opcional, según el parámetro que desees cambiar.

REST

  1. Actualiza el 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
      }'
    

    Reemplaza lo siguiente:

    • PROJECT_ID: El número o ID de tu Google Cloud proyecto.

    • DATA_STORE_ID: Es el ID del almacén de datos asociado con tu app.

    • QUERY_FREQUENCY_THRESHOLD: Es un valor entero que indica la cantidad mínima de veces que se debe ingresar una búsqueda antes de que se pueda mostrar como sugerencia de autocompletado. El recuento se suma durante un período móvil de un mes. El valor predeterminado es 8.

  2. Actualiza el 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
      }'
    

    Reemplaza UNIQUE_USERS por un valor entero que represente la cantidad mínima de usuarios únicos que deben ingresar una búsqueda determinada antes de que se pueda mostrar como una sugerencia de autocompletado. El recuento se suma durante un período continuo de meses. El valor predeterminado es 3.

Actualiza las anotaciones de campos completables en el esquema

Para activar la función de autocompletado de campos en el esquema de datos estructurados, sigue estos pasos:

Console

  1. En la consola de Google Cloud , ve a la página AI Applications.

    Aplicaciones de IA

  2. Haz clic en el nombre de la app que deseas editar. Se deben usar datos estructurados.

  3. Haz clic en Datos (Data).

  4. Haz clic en la pestaña Esquema.

  5. Haz clic en Editar para seleccionar los campos del esquema que deseas marcar como completable.

  6. Haz clic en Guardar para guardar las configuraciones de campos actualizadas. Estas sugerencias tardan aproximadamente un día en generarse y mostrarse.

Envía solicitudes de autocompletar

En los siguientes ejemplos, se muestra cómo enviar solicitudes de autocompletado.

REST

Para enviar una solicitud de autocompletado con la API, sigue estos pasos:

  1. Busca el ID de tu almacén de datos. Si ya tienes el ID del almacén de datos, ve al siguiente paso.

    1. En la consola de Google Cloud , ve a la página AI Applications y, en el menú de navegación, haz clic en Data Stores.

      Ve a la página Almacenes de datos.

    2. Haz clic en el nombre de tu almacén de datos.

    3. En la página Datos de tu almacén de datos, obtén el ID del almacén de datos.

  2. Llama al método 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"
    

    Reemplaza lo siguiente:

    • PROJECT_ID: El número o ID de tu Google Cloud proyecto.

    • DATA_STORE_ID: Es el ID del almacén de datos asociado con tu app.

    • QUERY_STRING: Es la entrada de escritura anticipada que se usa para recuperar sugerencias.

Envía una solicitud de autocompletado a un modelo diferente

Para enviar una solicitud de autocompletar con un modelo de sugerencias de búsqueda diferente, sigue estos pasos:

  1. Busca el ID de tu almacén de datos. Si ya tienes el ID del almacén de datos, ve al siguiente paso.

    1. En la consola de Google Cloud , ve a la página AI Applications y, en el menú de navegación, haz clic en Data Stores.

      Ve a la página Almacenes de datos.

    2. Haz clic en el nombre de tu almacén de datos.

    3. En la página Datos de tu almacén de datos, obtén el ID del almacén de datos.

  2. Llama al método 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"
    

    Reemplaza lo siguiente:

    • PROJECT_ID: El número o ID de tu Google Cloud proyecto.

    • DATA_STORE_ID: Es el ID único del almacén de datos asociado con tu app.

    • QUERY_STRING: Es la entrada de escritura anticipada que se usa para recuperar sugerencias.

    • AUTOCOMPLETE_MODEL: Los datos de autocompletar

    • QUERY_SUGGESTIONS_MODEL: Es el modelo de sugerencias de consulta que se usará para la solicitud: document, document-completable, search-history o user-event. Para los datos de atención médica, usa healthcare-default.

C#

Para obtener más información, consulta la documentación de referencia de la API de C# de aplicaciones de IA.

Para autenticarte en las aplicaciones de IA, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

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

Para obtener más información, consulta la documentación de referencia de la API de Go de aplicaciones de IA.

Para autenticarte en las aplicaciones de IA, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.


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

Para obtener más información, consulta la documentación de referencia de la API de Java de aplicaciones de IA.

Para autenticarte en las aplicaciones de IA, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

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

Para obtener más información, consulta la documentación de referencia de la API de Node.js de aplicaciones de IA.

Para autenticarte en las aplicaciones de IA, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

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

Para obtener más información, consulta la documentación de referencia de la API de Python de aplicaciones de IA.

Para autenticarte en las aplicaciones de IA, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

# 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

Para obtener más información, consulta la documentación de referencia de la API de Ruby de aplicaciones de IA.

Para autenticarte en las aplicaciones de IA, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

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

Usa una lista de bloqueo para autocompletar

Puedes usar una lista de bloqueo para evitar que términos específicos aparezcan como sugerencias de autocompletar.

Por ejemplo, tomemos una empresa farmacéutica. Si un medicamento ya no está aprobado por la FDA, pero se menciona en documentos de su almacén de datos, es posible que desee evitar que ese medicamento aparezca como una consulta sugerida. La empresa podría agregar el nombre de ese medicamento a una lista de entidades rechazadas para evitar que se sugiera.

Se aplican los siguientes límites:

  • Una lista de bloqueo por almacén de datos
  • Si subes una lista de bloqueo, se reemplazará cualquier lista de bloqueo existente para ese almacén de datos.
  • Hasta 1,000 términos por lista de entidades rechazadas
  • Los términos no distinguen mayúsculas de minúsculas.
  • Después de importar una lista de entidades rechazadas, esta demora entre 1 y 2 días en aplicarse.

Cada entrada de tu lista de entidades rechazadas consta de un blockPhrase y un matchOperator:

  • blockPhrase: Ingresa una cadena como término de la lista de entidades rechazadas. Los términos no distinguen mayúsculas de minúsculas.
  • matchOperator: Acepta los siguientes valores:
    • EXACT_MATCH: Evita que una concordancia exacta del término de la lista de bloqueo aparezca como una consulta sugerida.
    • CONTAINS: Evita que aparezca cualquier sugerencia que contenga el término de la lista de bloqueo.

El siguiente es un ejemplo de una lista de entidades rechazadas con cuatro entradas:

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

Antes de importar una lista de entidades rechazadas, verifica que los controles de acceso necesarios estén configurados para el acceso del editor del motor de descubrimiento.

Las listas de entidades rechazadas se pueden importar desde datos JSON locales o desde Cloud Storage. Para quitar una lista de entidades bloqueadas de un almacén de datos, borra la lista.

Cómo importar una lista de entidades rechazadas desde datos JSON locales

Para importar una lista de entidades bloqueadas desde un archivo JSON local que la contenga, haz lo siguiente:

  1. Crea tu lista de bloqueo en un archivo JSON local con el siguiente formato. Asegúrate de que cada entrada de la lista de entidades bloqueadas esté en una línea nueva sin saltos de línea.

    {
        "inlineSource": {
            "entries": [
                { "blockPhrase":"TERM_1","matchOperator":"MATCH_OPERATOR_1" },
                { "blockPhrase":"TERM_2","matchOperator":"MATCH_OPERATOR_2" }
            ]
        }
    }
  2. Realiza una solicitud POST al método suggestionDenyListEntries:import y proporciona el nombre de tu archivo 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"
    

    Reemplaza lo siguiente:

    • DENYLIST_FILE: Es la ruta de acceso local del archivo JSON que contiene los términos de la lista de entidades rechazadas.
    • PROJECT_ID: El número o ID de tu Google Cloud proyecto.

    • DATA_STORE_ID: Es el ID del almacén de datos asociado con tu app.

Después de importar tu lista de entidades rechazadas, se tardará entre 1 y 2 días en comenzar a filtrar las sugerencias.

Importa una lista de entidades rechazadas desde Cloud Storage

Para importar una lista de entidades rechazadas desde un archivo JSON en Cloud Storage, haz lo siguiente:

  1. Crea tu lista de entidades rechazadas en un archivo JSON con el siguiente formato y, luego, impórtala a un bucket de Cloud Storage. Asegúrate de que cada entrada de la lista de entidades bloqueadas esté en una línea nueva sin saltos de línea.

    { "blockPhrase":"TERM_1","matchOperator":"MATCH_OPERATOR_1" }
    { "blockPhrase":"TERM_2","matchOperator":"MATCH_OPERATOR_2" }
  2. Crea un archivo JSON local que contenga el objeto gcsSource. Úsalo para apuntar a la ubicación del archivo de la lista de entidades rechazadas en un bucket de Cloud Storage.

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

    Reemplaza DENYLIST_STORAGE_LOCATION por la posición de tu lista de entidades rechazadas en Cloud Storage. Solo puedes ingresar un URI. El URI se debe ingresar en este formato: gs://BUCKET/FILE_PATH.

  3. Realiza una solicitud POST al método suggestionDenyListEntries:import, incluido el objeto 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"
    

    Reemplaza lo siguiente:

    • GCS_SOURCE_FILE: Es la ruta de acceso local del archivo que contiene el objeto gcsSource que apunta a tu lista de entidades rechazadas.
    • PROJECT_ID: El número o ID de tu Google Cloud proyecto.

    • DATA_STORE_ID: Es el ID del almacén de datos asociado con tu app.

Después de importar tu lista de entidades rechazadas, se tardará entre 1 y 2 días en comenzar a filtrar las sugerencias.

Borrar definitivamente una lista de bloqueo

Para purgar una lista de entidades rechazadas de tu almacén de datos, haz lo siguiente:

  1. Realiza una solicitud POST al método 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"
    

    Reemplaza lo siguiente:

    • PROJECT_ID: El número o ID de tu Google Cloud proyecto.

    • DATA_STORE_ID: Es el ID del almacén de datos asociado con tu app.

Usa una lista importada de sugerencias de autocompletado

Puedes proporcionar tu propia lista de sugerencias de autocompletado en lugar de usar las sugerencias de autocompletado generadas a partir de un modelo de datos de autocompletado.

En la mayoría de las aplicaciones, usar sugerencias generadas de uno de los modelos de datos de autocompletar brinda mejores resultados. Sin embargo, puede haber algunas situaciones poco comunes en las que las sugerencias del modelo no coincidan con tus necesidades y proporcionar una lista discreta de sugerencias les brinde a los usuarios una mejor experiencia de autocompletado.

Por ejemplo, una pequeña librería en línea importa su lista de títulos de libros como las sugerencias de autocompletado. Cuando un cliente comienza a escribir en la barra de búsqueda, la sugerencia de autocompletar siempre será el título de un libro de la lista importada. Cuando cambia la lista de libros, la librería borra la lista actual y la importa. Un extracto de la lista podría verse de la siguiente manera:

{"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 es un número de punto flotante en el rango [0, 1] que se usa para clasificar la sugerencia. Como alternativa, puedes usar una puntuación frequency que sea un número entero superior a uno. La puntuación frequency se usa para clasificar las sugerencias cuando globalScore no está disponible (se establece como nulo).

Cómo configurar e importar sugerencias de autocompletar

Para configurar e importar una lista de sugerencias de autocompletado desde una fuente de BigQuery, sigue estos pasos:

  1. Crea tu lista de sugerencias y cárgala en una tabla de BigQuery.

    Como mínimo, debes proporcionar cada sugerencia como una cadena y una puntuación global o una frecuencia.

    Usa el siguiente esquema de tabla para tu lista de sugerencias:

    [
      {
        "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 documentación de BigQuery para obtener instrucciones sobre cómo crear una tabla de BigQuery y cargarla con tu lista de sugerencias de autocompletado.

  2. Importa la lista desde BigQuery.

    Realiza una solicitud POST al método completionSuggestions:import, incluido el objeto 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"}
     }'
    

    Reemplaza lo siguiente:

    • PROJECT_ID: El número o ID de tu Google Cloud proyecto.
    • DATA_STORE_ID: El ID del almacén de datos de Vertex AI Search.
    • PROJECT_ID_SOURCE: Es el proyecto que contiene el conjunto de datos que deseas importar.
    • DATASET_ID: El ID del conjunto de datos de la lista de sugerencias que deseas importar
    • TABLE_ID: El ID de la tabla de la lista de sugerencias que deseas importar
  3. Opcional: Anota el valor name que se muestra y sigue las instrucciones de Obtén detalles sobre una operación de larga duración para ver cuándo se completa la operación de importación.

  4. Si no habilitaste el autocompletado para la app, sigue el procedimiento para actualizar la configuración de autocompletado. Asegúrate de establecer Habilitar autocompletar en Ahora.

  5. Espera unos días para que se complete la indexación y las sugerencias importadas estén disponibles.

Cómo enviar una solicitud de Autocomplete

Para enviar una solicitud de autocompletar que devuelva una sugerencia importada en lugar de una sugerencia de un modelo de autocompletar, haz lo siguiente:

  1. Sigue el procedimiento para enviar una solicitud de autocompletado a un modelo diferente y establece AUTOCOMPLETE_MODEL en imported-suggestion.

Cómo purgar la lista de sugerencias de autocompletado importadas

Antes de importar una nueva lista de sugerencias de autocompletado, quita la existente.

Para purgar una lista existente de sugerencias de autocompletado, sigue estos pasos:

  1. Realiza una solicitud POST al método 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"
    

    Reemplaza lo siguiente:

    • PROJECT_ID: El número o ID de tu Google Cloud proyecto.

    • DATA_STORE_ID: Es el ID del almacén de datos asociado con tu app.

Modelo de datos de documentos avanzados

Las aplicaciones de IA proporcionan un modelo de datos avanzado para el autocompletado. En función de los documentos que importas, este modelo de datos genera sugerencias de autocompletado de alta calidad aprovechando los modelos de lenguaje grandes (LLM) de Google.

Esta característica es experimental. Si te interesa usar esta función, comunícate con el equipo de tu Google Cloud cuenta y pídeles que te agreguen a la lista de entidades permitidas.

El modelo de datos de documentos avanzados no está disponible para la búsqueda de atención médica ni en las multirregiones de EE.UU. y la UE.