Extension Vertex AI Search

Ce document explique comment enregistrer et utiliser l'extension Vertex AI Search fournie par Google à partir de la console Google Cloud et de l'API Vertex AI. Cette extension vous permet d'accéder à des corpus de sites Web et à des données non structurées, et d'y effectuer des recherches afin de fournir des réponses pertinentes à des questions en langage naturel, telles que :

  • "Comment les menaces concurrentielles pour l'entreprise ont-elles évolué entre le premier trimestre de l'année dernière et le premier trimestre de cette année ?"
  • "Quelles sont les parties de l'entreprise qui connaissent la croissance la plus rapide ? À quelle vitesse ?"

L'extension Vertex AI Search utilise Vertex AI Search pour récupérer des résultats pertinents à partir de votre data store. L'extension Vertex AI Search est définie dans un fichier vertex_ai_search.yaml de spécification OpenAPI.

Pour utiliser l'extension Vertex AI Search, vous devez créer un datastore dans la région globale avec un champ d'application de recherche spécifié. Pour de meilleurs résultats de recherche, activez l'indexation avancée pour les données de sites Web et l'édition Enterprise pour les données non structurées. Pour en savoir plus, consultez la page À propos des fonctionnalités avancé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

    

Pour en savoir plus sur les extensions Google avec des tutoriels de bout en bout, consultez les notebooks Jupyter suivants :

  • Workflow des analystes commerciaux avec extensions Vertex AI : utilisez l'extension Code Interpreter et l'extension Vertex AI Search pour remplir un rapport de recherche sur les opportunités d'investissement dans le logement pour les partenaires commerciaux.
    Colab | GitHub | Vertex AI Workbench
  • Workflow d'analyse des avis sur les jeux avec Vertex AI Extensions : utilisez l'extension Code Interpreter pour analyser les avis sur les jeux dans Steam. Utilisez l'extension Vertex AI Search pour résumer des avis sur des jeux provenant de sites Web. Utilisez l'extension de l'interpréteur de code pour créer un rapport avec tous les éléments générés.
    Colab | GitHub | Vertex AI Workbench

Avant de commencer

  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

Enregistrer et exécuter l'extension Vertex AI Search

Les sections suivantes expliquent comment enregistrer l'extension Vertex AI Search à l'aide de la console Google Cloud et de l'API Vertex AI. Une fois l'extension enregistrée, vous pouvez l'exécuter à l'aide de l'API Vertex AI.

Console

Enregistrer l'extension

Pour enregistrer l'extension Vertex AI Search à l'aide de la console Google Cloud, procédez comme suit :

  1. Dans la console Google Cloud, accédez à la page Extensions de Vertex AI.

    Accéder à la page Vertex AI Extensions

  2. Cliquez sur Créer une extension.

  3. Dans la boîte de dialogue Create a new extension (Créer une extension), renseignez les champs suivants:

    • Nom de l'extension: saisissez un nom pour votre extension, par exemple "vertex_search_extension".
    • Description (facultatif): saisissez une description de l'extension, par exemple "Une extension de recherche Vertex AI".
    • Type d'extension: sélectionnez Vertex AI search.
  4. Dans la section Fichier de spécification OpenAPI qui s'affiche, vérifiez que les champs suivants sont correctement définis :

    • Nom d'API: vertex_ai_search
    • Description de l'API: Performs search on user ingested data including website and unstructured data type...
    • Source: Cloud Storage
    • Spécification OpenAPI: vertex-extension-public/vertex_ai_search.yaml
    • Authentication: Google service account.
  5. Dans la section Configurations d'exécution, indiquez un nom de configuration de diffusion. Le nom de la configuration de diffusion est spécifié dans vertexAiSearchRuntimeConfig. Il est mis en forme et terminé comme suit : projects/PROJECT_ID/locations/global/collections/COLLECTION_NAME/engines/ENGINE/servingConfigs/SERVING_CONFIG.

  6. Cliquez sur Créer une extension.

REST

Enregistrer l'extension

Envoyez une requête extensions.import de l'API Vertex AI pour enregistrer l'extension Vertex AI Search.

Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

  • PROJECT_ID : ID de votre projet Google Cloud.
  • REGION : région Compute Engine.
  • DISPLAY_NAME : extension du nom visible par les utilisateurs, telle que "my_search_extension".
  • DESCRIPTION (facultatif): description de l'extension visible par les utilisateurs (par exemple, "Extension de recherche").
  • SERVICE_ACCOUNT : (facultatif) l'extension Vertex AI Search utilise GOOGLE_SERVICE_ACCOUNT_AUTH comme indiqué dans l'exemple de corps de la requête. Si vous ne spécifiez pas de compte de service, l'extension utilise le compte de service Agent de service de l'extension Vertex AI par défaut. Si vous spécifiez un autre compte de service, accordez l'autorisation iam.serviceAccounts.getAccessToken au compte de service de l'agent de service Vertex AI Extension sur le compte de service spécifié.
  • SERVING_CONFIG_NAME : le nom de la configuration de diffusion est spécifié dans vertexAiSearchRuntimeConfig. Il est mis en forme et terminé comme suit: projects/PROJECT_ID/locations/global/collections/COLLECTION_NAME/engines/ENGINE/servingConfigs/SERVING_CONFIG.
    • PROJECT_ID : ID de votre projet Google Cloud.
    • Définissez COLLECTION_NAME sur default_collection.
    • ENGINE: ID d'application que vous avez reçu lors de la création de votre application de recherche. Pour en savoir plus, consultez Créer une application de recherche pour les données de sites Web.
    • Définissez SERVING_CONFIG sur default_search.
    L'APIBucket Cloud Storage que l'extension utilisera pour lire les fichiers d'entrée, y compris legs:// préfixe, par exemple: gs://sample-bucket-name. Si spécifié, vous devez attribuer le rôle roles/storage.objectViewer sur ce bucket à l'agent de service de code personnalisé de l'extension Vertex.

Méthode HTTP et URL :

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

Corps JSON de la requête :

{
  "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",
     }
  }
}

Pour envoyer votre requête, choisissez l'une des options suivantes :

curl

Enregistrez le corps de la requête dans un fichier nommé request.json, puis exécutez la commande suivante :

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

Enregistrez le corps de la requête dans un fichier nommé request.json, puis exécutez la commande suivante :

$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

Exécuter l'extension

Vous pouvez envoyer une opération execute à l'API Vertex AI pour obtenir des résultats significatifs de votre data store.

Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

  • PROJECT_ID : ID de votre projet Google Cloud.
  • REGION : région Compute Engine.
  • EXTENSION_ID: ID de votre extension Vertex AI Search répertoriée dans les détails de l'extension dans la console Google Cloud.

Méthode HTTP et URL :

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

Corps JSON de la requête :

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

Pour envoyer votre requête, choisissez l'une des options suivantes :

curl

Enregistrez le corps de la requête dans un fichier nommé request.json, puis exécutez la commande suivante :

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

Enregistrez le corps de la requête dans un fichier nommé request.json, puis exécutez la commande suivante :

$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