En este documento, se muestra cómo registrar y usar la extensión de Vertex AI Search que proporciona 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 datos no estructurados para buscarlos y proporcionar respuestas relevantes a preguntas hechas con lenguaje natural, como las siguientes:
- "¿Cómo cambiaron las amenazas competitivas para la empresa del primer trimestre del año pasado al primer trimestre de este año?"
- "¿Qué partes de la empresa crecen más rápido? ¿Qué tan rápido?"
La extensión de Vertex AI Search usa
Vertex AI Search
para recuperar resultados significativos de tu almacén de datos. La extensión de Vertex AI
Search se define
en un archivo vertex_ai_search.yaml
de Especificación de OpenAPI.
Para usar la extensión de Vertex AI Search, debes crear un almacén de datos en la región global con un alcance de búsqueda especificado. Para obtener mejores resultados de la búsqueda, habilita la indexación avanzada para los datos de sitios web y la edición Enterprise para los datos no estructurados. Consulta Acerca de 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 instructivos de extremo a extremo, consulta los siguientes notebooks de Jupyter:
- Flujo de trabajo de analistas de negocios con extensiones de Vertex AI: Usa la extensión Code Interpreter y la extensión de Vertex AI Search para completar un informe de investigación de oportunidades de inversión en viviendas para las partes interesadas de la empresa.
Colab | GitHub | Vertex AI Workbench - Flujo de trabajo del análisis de opiniones de juegos con Vertex AI Extensions: Usa la extensión del intérprete de código para analizar las opiniones de juegos de Steam. Usa la extensión de Vertex AI Search para resumir las opiniones de los juegos de los sitios web. Usa la extensión de intérprete de código para crear un informe con todos los elementos generados.
Colab | GitHub | Vertex AI Workbench
Antes de comenzar
- 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.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Vertex AI API.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Vertex AI API.
Registra y ejecuta la extensión de Vertex AI Search
En las siguientes secciones, se muestra cómo registrar la extensión de Vertex AI Search a través de la consola de Google Cloud y la API de Vertex AI. Después de registrar la extensión, puedes ejecutarla con la API de Vertex AI.
Console
Registra la extensión
Realiza los siguientes pasos para registrar la extensión de Vertex AI Search con la consola de Google Cloud.
En la consola de Google Cloud, ve a la página Extensiones de Vertex AI.
Haz clic en Create Extension.
En el cuadro de diálogo Create a new extension, completa los siguientes campos:
- Nombre de la extensión: ingresa un nombre para la extensión, como "vertex_search_extension".
- Descripción: ingresa una descripción de la extensión, como "Una extensión de Vertex AI Search" (opcional).
- Tipo de extensión: selecciona
Vertex AI search
.
En la sección OpenAPI Spec file que aparece ahora, confirma que los siguientes campos estén configurados de forma correcta:
- Nombre de la API:
vertex_ai_search
. - API description:
Performs search on user ingested data including website and unstructured data type...
- Fuente:
Cloud Storage
. - OpenAPI Spec:
vertex-extension-public/vertex_ai_search.yaml
. - Autenticación:
Google service account
.
- Nombre de la API:
En la sección Runtime configurations, proporciona el nombre de una configuración de entrega. El nombre de la configuración de entrega se especifica en vertexAiSearchRuntimeConfig. Su formato es el siguiente y se completa de esta manera:
projects/PROJECT_ID/locations/global/collections/COLLECTION_NAME/engines/ENGINE/servingConfigs/SERVING_CONFIG
- Establece COLLECTION_NAME en
default_collection
. - Configura ENGINE como el ID de la aplicación que recibiste cuando creaste tu aplicación de búsqueda. Para obtener más información, consulta Crea una app de búsqueda para datos de sitios web.
- Establece SERVING_CONFIG en
default_search
.
- Establece COLLECTION_NAME en
Haz clic en Create Extension.
REST
Registra la extensión
Envía una solicitud extensions.import
a la API de Vertex AI
para registrar la extensión de Vertex AI Search.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_ID: El ID del proyecto de Google Cloud.
- REGION: una región de Compute Engine.
- DISPLAY_NAME: la extensión de nombre que se muestra a los usuarios, como "my_search_extension".
- DESCRIPTION: la descripción de la extensión que se muestra a los usuarios, como “Una extensión de búsqueda” (opcional).
- SERVICE_ACCOUNT: la extensión de Vertex AI Search
usa GOOGLE_SERVICE_ACCOUNT_AUTH
como se muestra en el cuerpo de la solicitud de muestra (opcional). Si no especificas una cuenta de servicio, la extensión usa la cuenta de servicio del
agente de servicio de Vertex AI Extension
predeterminada. Si especificas una cuenta de servicio diferente, otorga el
permiso
iam.serviceAccounts.getAccessToken
a la cuenta de servicio del agente de servicio de Vertex AI Extension en la cuenta de servicio especificada. - SERVING_CONFIG_NAME: el nombre de la configuración de entrega se especifica en
vertexAiSearchRuntimeConfig.
Su formato es el siguiente y se completa de la siguiente manera:
projects/PROJECT_ID/locations/global/collections/COLLECTION_NAME/engines/ENGINE/servingConfigs/SERVING_CONFIG
.- PROJECT_ID: El ID del proyecto de Google Cloud.
- Establece COLLECTION_NAME en
default_collection
. - ENGINE: el ID de aplicación que recibiste cuando creaste tu aplicación de búsqueda. Para obtener más información, consulta Crea una app de búsqueda para datos de sitios web.
- Establece SERVING_CONFIG en
default_search
.
gs://
, por ejemplo,gs://sample-bucket-name
. Si se especifica, debes asignar el rolroles/storage.objectViewer
en este bucket al agente de servicio del código personalizado de la extensión de Vertex.
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":"code_interpreter_tool", "description":"A Google Code Interpreter tool", "apiSpec":{ "openApiGcsUri":"gs://vertex-extension-public/code_interpreter.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
Ejecuta la extensión
Puedes enviar una operación execute
a la API de Vertex AI
para obtener resultados significativos de tu almacén de datos.
Búsqueda de documentos
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_ID: El ID del proyecto de Google Cloud.
- REGION: una región de Compute Engine.
- EXTENSION_ID: el ID de tu extensión de Vertex AI Search que aparece en los detalles de la extensión en la consola de Google Cloud.
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