Extensão do Vertex AI Search

Este documento mostra como registar e usar a extensão do Vertex AI Search fornecida pela Google a partir da consola Google Cloud e da API Vertex AI. Esta extensão permite-lhe aceder e pesquisar conjuntos de dados de Websites e dados não estruturados para fornecer respostas relevantes a perguntas de linguagem natural, como:

  • "Como mudaram as ameaças competitivas para a empresa do 1.º trimestre do ano passado para o 1.º trimestre deste ano?"
  • "Que partes da empresa estão a crescer mais rapidamente? A que velocidade?"

A extensão Vertex AI Search usa o Vertex AI Search para obter resultados significativos da sua base de dados. A extensão de pesquisa do Vertex AI está definida num ficheiro de especificação OpenAPI vertex_ai_search.yaml.

Para usar a extensão Vertex AI Search, tem de criar um repositório de dados na região global com um âmbito de pesquisa especificado. Para os melhores resultados de pesquisa, ative a indexação avançada para dados de Websites e a edição Enterprise para dados não estruturados. Consulte o artigo Acerca das funcionalidades avançadas para mais informações.

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 saber mais sobre as extensões Google com tutoriais completos, consulte os seguintes cadernos Jupyter:

  • Fluxo de trabalho do analista de negócios com as extensões da Vertex AI: use a extensão do intérprete de código e a extensão da Vertex AI Search para concluir um relatório de pesquisa de oportunidades de investimento imobiliário para as partes interessadas da empresa.
    Colab | GitHub | Vertex AI Workbench
  • Fluxo de trabalho de análise de críticas de jogos com extensões do Vertex AI: use a extensão Code Interpreter para analisar críticas de jogos do Steam. Use a extensão Vertex AI Search para resumir críticas de jogos de Websites. Use a extensão Code Interpreter para criar um relatório com todos os recursos gerados.
    Colab | GitHub | Vertex AI Workbench

Antes de começar

  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. Registe e execute a extensão Vertex AI Search

    As secções seguintes mostram como registar a extensão do Vertex AI Search através da Google Cloud consola e da API Vertex AI. Depois de registar a extensão, pode executá-la através da API Vertex AI.

    Consola

    Registe a extensão

    Execute os passos seguintes para registar a extensão do Vertex AI Search através da consola. Google Cloud

    1. Na Google Cloud consola, aceda à página Vertex AI Extensions.

      Aceda às extensões do Vertex AI

    2. Clique em Criar extensão.

    3. Na caixa de diálogo Criar uma nova extensão, preencha os seguintes campos:

      • Nome da extensão: introduza um nome para a extensão, como "vertex_search_extension".
      • Descrição: (opcional) introduza uma descrição da extensão, como "Uma extensão de pesquisa da Vertex AI".
      • Tipo de extensão: selecione Vertex AI search.
    4. Na secção Ficheiro de especificação OpenAPI que é apresentada, confirme se os seguintes campos estão definidos corretamente:

      • Nome da API: vertex_ai_search.
      • Descrição da API: Performs search on user ingested data including website and unstructured data type...
      • Fonte: Cloud Storage.
      • Especificação OpenAPI: vertex-extension-public/vertex_ai_search.yaml.
      • Autenticação: Google service account.
    5. Na secção Configurações de tempo de execução, indique um nome para a configuração de envio. O nome da configuração de publicação é especificado em vertexAiSearchRuntimeConfig. É formatado e preenchido da seguinte forma: projects/PROJECT_ID/locations/global/collections/COLLECTION_NAME/engines/ENGINE/servingConfigs/SERVING_CONFIG

      • Defina COLLECTION_NAME como default_collection.
      • Defina ENGINE para o ID da aplicação que recebeu quando criou a sua aplicação de pesquisa. Para saber mais, consulte o artigo Crie uma app de pesquisa para dados do Website.
      • Defina SERVING_CONFIG como default_search.
    6. Clique em Criar extensão.

    REST

    Registe a extensão

    Envie um pedido da API Vertex AI extensions.import para registar a extensão do Vertex AI Search.

    Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

    • PROJECT_ID: o ID do seu projeto Google Cloud .
    • REGION: Uma região do Compute Engine.
    • DISPLAY_NAME: o nome da extensão apresentado aos utilizadores, como "my_search_extension".
    • DESCRIPTION: (Opcional) A descrição apresentada aos utilizadores, como "Uma extensão de pesquisa".
    • SERVICE_ACCOUNT: (Opcional) A extensão Vertex AI Search usa GOOGLE_SERVICE_ACCOUNT_AUTH , conforme mostrado no corpo do pedido de exemplo. Se não especificar uma conta de serviço, a extensão usa a conta de serviço Vertex AI Extension Service Agent predefinida. Se especificar uma conta de serviço diferente, conceda a autorização iam.serviceAccounts.getAccessToken à conta de serviço do agente do serviço de extensão do Vertex AI na conta de serviço especificada.
    • SERVING_CONFIG_NAME: o nome da configuração de publicação é especificado em vertexAiSearchRuntimeConfig. É formatado e preenchido da seguinte forma: projects/PROJECT_ID/locations/global/collections/COLLECTION_NAME/engines/ENGINE/servingConfigs/SERVING_CONFIG.
      • PROJECT_ID: o ID do seu projeto Google Cloud .
      • Defina COLLECTION_NAME como default_collection.
      • ENGINE: o ID da aplicação que recebeu quando criou a sua aplicação de pesquisa. Para saber mais, consulte o artigo Crie uma app de pesquisa para dados do Website.
      • Defina SERVING_CONFIG como default_search.

    Método HTTP e URL:

    POST https://REGION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/REGION/extensions:import

    Corpo JSON do pedido:

    {
      "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 o seu pedido, escolha uma destas opções:

    curl

    Guarde o corpo do pedido num ficheiro com o nome request.json, e execute o seguinte 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

    Guarde o corpo do pedido num ficheiro com o nome request.json, e execute o seguinte 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

    Execute a extensão

    Pode enviar uma operação execute para a API Vertex AI para obter resultados significativos do seu arquivo de dados.

    Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

    • PROJECT_ID: o ID do seu projeto Google Cloud .
    • REGION: Uma região do Compute Engine.
    • EXTENSION_ID: O ID da sua extensão do Vertex AI Search indicado nos Detalhes da extensão na Google Cloud consola.

    Método HTTP e URL:

    POST https://REGION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/REGION/extensions/EXTENSION_ID:execute

    Corpo JSON do pedido:

    {
      "operation_id":"search",
      "operation_params":{
        "query":"Housing affordability since 2010",
      }
    }
    
    

    Para enviar o seu pedido, escolha uma destas opções:

    curl

    Guarde o corpo do pedido num ficheiro com o nome request.json, e execute o seguinte 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

    Guarde o corpo do pedido num ficheiro com o nome request.json, e execute o seguinte 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