Extensión de Vertex AI Search

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

  1. 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.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the Vertex AI API.

    Enable the API

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  6. Make sure that billing is enabled for your Google Cloud project.

  7. Enable the Vertex AI API.

    Enable the 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.

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

    Ir a Extensiones de Vertex AI

  2. Haz clic en Create Extension.

  3. 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.
  4. 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.
  5. 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.
  6. 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.
    El bucket de Cloud Storage que usará la extensión para leer archivos de entrada, incluido el prefijo gs://, por ejemplo, gs://sample-bucket-name. Si se especifica, debes asignar el rol roles/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.

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