En este documento se explica cómo registrar y usar la extensión de búsqueda de Vertex AI proporcionada por Google desde la consola de Google Cloud y la API de Vertex AI. Esta extensión te permite acceder a corpus de sitios web y a datos no estructurados, así como buscarlos, para ofrecer respuestas relevantes a preguntas en lenguaje natural, como las siguientes:
- "¿Cómo han cambiado las amenazas de la competencia para la empresa del primer trimestre del año pasado al primer trimestre de este año?"
- "¿Qué partes de la empresa están creciendo más rápido? ¿A qué velocidad?"
La extensión Vertex AI Search usa Vertex AI Search para obtener resultados significativos de tu almacén de datos. La extensión Vertex AI Search se define en un archivo de especificación de OpenAPI
vertex_ai_search.yaml
.
Para usar la extensión Vertex AI Search, debes crear un almacén de datos en la región global con un ámbito de búsqueda específico. Para obtener los mejores resultados de búsqueda, habilita la indexación avanzada de los datos del sitio web y la edición Enterprise para los datos no estructurados. Consulta Información sobre las funciones avanzadas para obtener más información.
openapi: "3.0.0" info: title: Vertex AI Search version: v1alpha description: > Performs search on user ingested data including website and unstructured data type. This extension is used when user wants to search or retrieve meaningful results from their ingested data in the Vertex AI Search service. Supported AuthTypes: - GOOGLE_SERVICE_ACCOUNT_AUTH: (only supports using Vertex AI Extension Service Agent). paths: /search: get: operationId: search description: Retrieves the results from user's query by searching in the data store. parameters: - name: query in: query schema: type: string description: User natural language instructions for search. required: true responses: default: description: Search execution result. content: application/json: schema: $ref: "#/components/schemas/SearchResult" components: schemas: SearchResult: description: Top results from search response. type: object properties: results: type: array items: type: object properties: title: type: string description: Retrieved document title. display_link: type: string description: Retrieved document link to display. link: type: string description: Retrieved document link. extractive_segments: type: array description: Extractive segments from the retrieved file. items: type: string extractive_answers: type: array description: Extractive answers from the retrieved file. These are generated from the extractive segments. items: type: string
Para obtener información sobre las extensiones de Google con tutoriales integrales, consulta los siguientes cuadernos de Jupyter:
- Flujo de trabajo de analista de negocios con extensiones de Vertex AI: usa la extensión de intérprete de código y la extensión de búsqueda de Vertex AI para completar un informe de investigación sobre oportunidades de inversión en vivienda para las partes interesadas de la empresa.
Colab | GitHub | Vertex AI Workbench - Flujo de trabajo de análisis de reseñas de juegos con extensiones de Vertex AI: usa la extensión de intérprete de código para analizar las reseñas de juegos de Steam. Usa la extensión Vertex AI Search para resumir reseñas de juegos de sitios web. Usa la extensión de intérprete de código para crear un informe con todos los recursos generados.
Colab | GitHub | Vertex AI Workbench
Antes de empezar
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Vertex AI API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles. -
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Vertex AI API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles. En la consola de Google Cloud , ve a la página Extensiones de Vertex AI.
Haz clic en Crear extensión.
En el cuadro de diálogo Crear una extensión, rellena los siguientes campos:
- Nombre de la extensión: introduce un nombre para la extensión, como "vertex_search_extension".
- Descripción: (opcional) introduce una descripción de la extensión, como "Una extensión de búsqueda de Vertex AI".
- Tipo de extensión: selecciona
Vertex AI search
.
En la sección Archivo de especificación de OpenAPI que aparece ahora, compruebe que los siguientes campos estén configurados correctamente:
- Nombre de la API:
vertex_ai_search
. - Descripción de la API:
Performs search on user ingested data including website and unstructured data type...
- Fuente:
Cloud Storage
. - Especificación de OpenAPI:
vertex-extension-public/vertex_ai_search.yaml
. - Autenticación:
Google service account
.
- Nombre de la API:
En la sección Configuraciones del tiempo de ejecución, proporcione un nombre para la configuración de publicación. El nombre de la configuración de servicio se especifica en vertexAiSearchRuntimeConfig. Se le da formato y se completa de la siguiente manera:
projects/PROJECT_ID/locations/global/collections/COLLECTION_NAME/engines/ENGINE/servingConfigs/SERVING_CONFIG
- Asigna el valor
default_collection
a COLLECTION_NAME. - Asigna a ENGINE el ID de aplicación que recibiste al crear tu aplicación de búsqueda. Para obtener más información, consulta Crear una aplicación de búsqueda para datos de sitios web.
- Asigna el valor
default_search
a SERVING_CONFIG.
- Asigna el valor
Haz clic en Crear extensión.
- PROJECT_ID: el ID de tu proyecto de Google Cloud .
- REGION: una región de Compute Engine.
- DISPLAY_NAME: el nombre de la extensión que se muestra a los usuarios, como "mi_extensión_de_búsqueda".
- DESCRIPTION: (Opcional) La descripción de la extensión que se muestra a los usuarios, como "Una extensión de búsqueda".
- SERVICE_ACCOUNT: (Opcional) La extensión de búsqueda de Vertex AI
usa GOOGLE_SERVICE_ACCOUNT_AUTH
como se muestra en el cuerpo de la solicitud de ejemplo. Si no especificas ninguna cuenta de servicio, la extensión usará la cuenta de servicio predeterminada Vertex AI Extension Service Agent. Si especifica otra cuenta de servicio, conceda el permiso
iam.serviceAccounts.getAccessToken
a la cuenta de servicio del agente de servicio de extensión de Vertex AI en la cuenta de servicio especificada. - SERVING_CONFIG_NAME: El nombre de la configuración de servicio se especifica en vertexAiSearchRuntimeConfig.
Se da formato y se completa de la siguiente manera:
projects/PROJECT_ID/locations/global/collections/COLLECTION_NAME/engines/ENGINE/servingConfigs/SERVING_CONFIG
.- PROJECT_ID: el ID de tu proyecto de Google Cloud .
- Asigna el valor
default_collection
a COLLECTION_NAME. - ENGINE: el ID de aplicación que recibió al crear su aplicación de búsqueda. Para obtener más información, consulta Crear una aplicación de búsqueda para datos de sitios web.
- Asigna el valor
default_search
a SERVING_CONFIG.
- PROJECT_ID: el ID de tu proyecto de Google Cloud .
- REGION: una región de Compute Engine.
- EXTENSION_ID: el ID de tu extensión de Vertex AI Search, que se indica en la sección Detalles de la extensión de la Google Cloud consola.
Registrar y ejecutar la extensión Vertex AI Search
En las siguientes secciones se muestra cómo registrar la extensión de búsqueda de Vertex AI mediante la Google Cloud consola Google Cloud y la API de Vertex AI. Una vez que hayas registrado la extensión, podrás ejecutarla con la API de Vertex AI.
Consola
Registrar la extensión
Sigue estos pasos para registrar la extensión Vertex AI Search con la consola. Google Cloud
REST
Registrar la extensión
Envía una solicitud de la API de Vertex AI
extensions.import
para registrar la extensión de Vertex AI Search.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
Método HTTP y URL:
POST https://REGION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/REGION/extensions:import
Cuerpo JSON de la solicitud:
{ "displayName":"DISPLAY_NAME", "description":"DESCRIPTION", "manifest":{ "name":"vertex_ai_search_tool", "description":"A Vertex AI Search tool", "apiSpec":{ "openApiGcsUri":"gs://vertex-extension-public/vertex_ai_search.yaml" }, "authConfig":{ "authType":"GOOGLE_SERVICE_ACCOUNT_AUTH", "googleServiceAccountConfig":{ "serviceAccount":"SERVICE_ACCOUNT" } } } "runtimeConfig": { "vertexAiSearchRuntimeConfig": { "servingConfigName": "SERVING_CONFIG_NAME", } } }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://REGION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/REGION/extensions:import"
PowerShell
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://REGION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/REGION/extensions:import" | Select-Object -Expand Content
Ejecutar la extensión
Puede enviar una operación execute
a la API de Vertex AI para obtener resultados significativos de su almacén de datos.
Búsqueda de documentos
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
Método HTTP y URL:
POST https://REGION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/REGION/extensions/EXTENSION_ID:execute
Cuerpo JSON de la solicitud:
{ "operation_id":"search", "operation_params":{ "query":"Housing affordability since 2010", } }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://REGION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/REGION/extensions/EXTENSION_ID:execute"
PowerShell
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://REGION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/REGION/extensions/EXTENSION_ID:execute" | Select-Object -Expand Content