Extensión Vertex AI Search

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

  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.

    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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. 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 the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  5. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  6. Verify that billing is enabled for your Google Cloud project.

  7. 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 the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  8. 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

    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 Crear extensión.

    3. 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.
    4. 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.
    5. 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.
    6. Haz clic en Crear extensión.

    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:

    • 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.

    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.

    Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

    • 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.

    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