Créer un assistant de recherche de brevets avec AlloyDB et Vertex AI Agent Builder – Partie 2

1. Présentation

La recherche de brevets est vaste et complexe. Passer au crible d'innombrables résumés techniques pour trouver les innovations pertinentes est une tâche ardue. Les recherches traditionnelles basées sur des mots clés sont souvent inexactes et chronophages. Les résumés sont longs et techniques, ce qui rend difficile la compréhension rapide de l'idée principale. Les chercheurs peuvent ainsi passer à côté de brevets clés ou perdre du temps sur des résultats non pertinents.

L'ingrédient secret de cette révolution réside dans Vector Search. Au lieu de s'appuyer sur une simple correspondance de mots clés, la recherche vectorielle transforme le texte en représentations numériques (embeddings). Cela nous permet d'effectuer des recherches en fonction du sens de la requête, et pas seulement des mots spécifiques utilisés. Dans le monde des recherches bibliographiques, cela change la donne. Imaginez trouver un brevet pour un "cardiofréquencemètre portable", même si l'expression exacte n'est pas utilisée dans le document.

Le défi : les recherches littéraires modernes doivent fournir des réponses instantanées et des recommandations intelligentes qui correspondent aux préférences uniques des utilisateurs. Les méthodes de recherche traditionnelles ne permettent souvent pas d'atteindre ce niveau de personnalisation.

La solution : notre application de chat basée sur les connaissances relève ce défi de front. Il s'appuie sur une base de connaissances riche issue de votre ensemble de données sur les brevets pour comprendre l'intention du client, répondre de manière intelligente et fournir des résultats très pertinents.

Ce que vous allez faire

Dans cet atelier (partie 2), vous allez :

  1. Créer un agent Vertex AI Agent Builder
  2. Intégrer l'outil AlloyDB à l'agent

Conditions requises

  • Un navigateur tel que Chrome ou Firefox
  • Un projet Google Cloud avec facturation activée.

2. Architecture

Flux de données : examinons de plus près comment les données circulent dans notre système :

Ingestion :

Les données de brevets sont chargées dans AlloyDB.

Moteur Analytics :

Nous utiliserons AlloyDB comme moteur d'analyse pour effectuer les opérations suivantes :

  1. Extraction du contexte : le moteur analyse les données stockées dans AlloyDB pour comprendre l'ensemble de données sur les brevets.
  2. Création d'embeddings : des embeddings (représentations mathématiques du texte) sont générés à la fois pour la requête de l'utilisateur et pour les informations stockées dans AlloyDB.
  3. Vector Search : le moteur effectue une recherche de similarité en comparant l'embedding de la requête à ceux des résumés de brevets. Cela permet d'identifier le "voisin le plus proche" le plus pertinent par rapport au contexte recherché par l'utilisateur.

Génération de réponses :

Les réponses validées sont structurées dans un tableau JSON, et l'ensemble du moteur est intégré dans une fonction Cloud Run sans serveur, qui est appelée à partir d'Agent Builder.

Les étapes ci-dessus sont déjà abordées dans la partie 1 de l'atelier.

Nous avons abordé les détails techniques de la création d'un moteur d'analyse axé sur les connaissances qui alimente notre assistant intelligent de recherche de brevets. Voyons maintenant comment nous exploitons la magie d'Agent Builder pour donner vie à ce moteur dans une interface conversationnelle. Assurez-vous d'avoir l'URL du point de terminaison avant de commencer la partie 2. Voici l'étape que nous allons aborder dans cet atelier :

Interaction conversationnelle :

Agent Builder présente les réponses à l'utilisateur dans un format en langage naturel, ce qui facilite le dialogue.

3. Avant de commencer

Créer un projet

  1. Dans la console Google Cloud, sur la page du sélecteur de projet, sélectionnez ou créez un projet Google Cloud.
  2. Assurez-vous que la facturation est activée pour votre projet Cloud. Découvrez comment vérifier si la facturation est activée sur un projet .
  3. Vous allez utiliser Cloud Shell, un environnement de ligne de commande exécuté dans Google Cloud et fourni avec bq. Cliquez sur "Activer Cloud Shell" en haut de la console Google Cloud.

Image du bouton "Activer Cloud Shell"

  1. Une fois connecté à Cloud Shell, vérifiez que vous êtes déjà authentifié et que le projet est défini sur votre ID de projet à l'aide de la commande suivante :
gcloud auth list
  1. Exécutez la commande suivante dans Cloud Shell pour vérifier que la commande gcloud connaît votre projet.
gcloud config list project
  1. Si votre projet n'est pas défini, utilisez la commande suivante pour le définir :
gcloud config set project <YOUR_PROJECT_ID>
  1. Activez les API requises. Vous pouvez également accéder à la console en recherchant chaque produit ou en utilisant ce lien.

Si vous oubliez d'activer une API, vous pourrez toujours le faire au cours de l'implémentation.

Consultez la documentation pour connaître les commandes gcloud ainsi que leur utilisation.

Remarque importante : Assurez-vous également d'avoir terminé la PARTIE 1 de l'atelier pour pouvoir effectuer cette tâche.

4. Création d'agents

Présentation d'Agent Builder

Agent Builder est un outil puissant nécessitant peu de programmation qui nous permet de créer des agents conversationnels rapidement et efficacement. Il simplifie la conception des flux de dialogue, l'intégration des bases de connaissances et la connexion aux API externes. Dans notre cas, nous utiliserons Agent Builder pour nous connecter facilement au point de terminaison Cloud Functions que nous avons créé dans la partie 1. Cela permettra à notre assistant de recherche de brevets d'accéder à notre base de connaissances sur les brevets et de répondre intelligemment aux requêtes des utilisateurs.

Assurez-vous que la fonction Java Cloud Run créée dans la partie 1 renvoie un ARRAY JSON au lieu d'un texte brut.

Créer l'agent

Commençons par créer cet agent pour répondre aux questions des utilisateurs sur les produits vestimentaires.

  1. Commencez par vous connecter à la plate-forme Agent Builder. Si vous êtes invité à activer l'API, cliquez sur CONTINUER ET ACTIVER L'API.
  2. Cliquez sur "CREATE APP" (CRÉER UNE APPLICATION) et donnez à votre agent un nom descriptif (par exemple, "Assistant de recherche de brevets").
  3. Cliquez sur le type d'application "Agent".

462bb48664e9a14e.png

  1.  Donnez un nom descriptif à votre agent, par exemple Assistant de recherche de brevets, et définissez la région sur us-central1.
  2. Saisissez les informations concernant l'agent :
  3. Remplacez le nom de l'agent par Agent de recherche de brevets.
  4. Ajoutez l'objectif ci-dessous :
You are a professional intelligent patent search agent! Your job is to help the customer find patents matching the context of their search text.

38f7d77d5ed0cb2a.png

  1. Enregistrez-le à ce stade et ne renseignez pas les instructions pour le moment.
  2. Cliquez ensuite sur "Outils" dans le menu de navigation, puis sur "CRÉER".

38f7d77d5ed0cb2a.png

Nom de l'outil : outil de recherche de brevets

Type : OpenAPI

Saisissez la description de l'outil :

This tool refers to the dataset in the backend as the context information for product inventory. It takes as input the user's search text summarized by the agent and matches with the most appropriate list of items and returns as an array of items.

Saisissez le schéma OpenAPI au format YAML :

C'est la partie où nous utilisons le point de terminaison du backend pour alimenter l'agent. Copiez la spécification OpenAPI ci-dessous et remplacez l'espace réservé pour l'URL (entre crochets) par le point de terminaison de votre fonction Cloud :

openapi: 3.0.0
info:
  title: Patent Search API
  version: v1
servers:
  - url: YOUR_CLOUDFUNCTION_ENDPOINT_URL
paths:
  /patent-search:
    post:
      summary: Search for patents using a text query.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                search:
                  type: string
                  description: The text query to search for patents.
                  example: A new Natural Language Processing related Machine Learning Model
      responses:
        '200':
          description: Successful search response with a JSON array of matching patents.
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    result:
                      type: string
                      description: Patent title.
        '400':
          description: Invalid request body.
        '500':
          description: Internal server error.

Conservez les valeurs par défaut des autres configurations, puis cliquez sur "Enregistrer".

  1. Revenez à l'agent à ce stade, car nous voulons ajouter la configuration "Outil" aux "Instructions" de l'agent. Ajoutez les éléments ci-dessous à l'espace réservé pour les instructions (n'oubliez pas que les retraits sont importants pour définir le flux) :
- Greet the users, then ask how you can help them today.
- Summarize the user's request and ask them to confirm that you understood correctly.
    - If necessary, seek clarifying details.
- Use ${TOOL:Patent Search Tool} to help the user with their task.
- Return the response from the ${TOOL:Patent Search Tool} to the user in a well formed string.
- Thank the user for their business and say goodbye.

Assurez-vous que l'outil "Patent Search Tool" (Outil de recherche de brevets) est sélectionné dans la section "Available Tools" (Outils disponibles), puis enregistrez à nouveau l'agent.

5. Tester l'agent

Dans le volet de droite, vous devriez voir la section "Prévisualiser l'agent" qui vous permet de tester votre agent.

Comme vous pouvez le voir sur la capture d'écran ci-dessous, j'ai salué l'utilisateur et commencé ma discussion en demandant "Matching patent for any fitness tracker idea" (Brevet correspondant à toute idée de bracelet d'activité) :

e4ffaa48b5c1f012.png

Voici la réponse JSON :

b0ee0af57ba63943.png

Il s'agit du résultat JSON brut de la fonction Cloud qui traite la recherche de similarités AlloyDB. Et voilà ! Nous avons terminé avec l'agent.

6. Déploiement et intégration

Une fois que vous êtes satisfait de votre agent, vous pouvez facilement le déployer sur différents canaux à l'aide des intégrations d'Agent Builder. Vous pouvez l'intégrer à votre site Web, l'associer à des plates-formes de messagerie populaires ou même créer une application mobile dédiée. Vous pouvez également utiliser l'API Agent Builder directement dans vos applications clientes Web, comme expliqué dans cet article de blog.

7. Effectuer un nettoyage

Pour éviter que les ressources utilisées dans cet article soient facturées sur votre compte Google Cloud, procédez comme suit :

  1. Dans la console Google Cloud, accédez à Gérer .
  2. la page Ressources.
  3. Dans la liste des projets, sélectionnez le projet que vous souhaitez supprimer, puis cliquez sur Supprimer.
  4. Dans la boîte de dialogue, saisissez l'ID du projet, puis cliquez sur Arrêter pour supprimer le projet.

8. Félicitations

Félicitations ! En intégrant la puissance de notre moteur d'analyse personnalisé à l'interface intuitive d'Agent Builder, nous avons créé un assistant de recherche bibliographique intelligent qui rend les recherches bibliographiques accessibles, efficaces et réellement axées sur le sens. En combinant les capacités d'AlloyDB, de Vertex AI et de Vector Search, nous avons fait un grand pas en avant pour rendre les recherches contextuelles et vectorielles accessibles, efficaces, véritablement axées sur le sens et autonomes.