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. Trier d'innombrables résumés techniques pour trouver des innovations pertinentes est une tâche ardue. Les recherches traditionnelles basées sur les mots clés sont souvent inexactes et prennent du temps. Les résumés sont longs et techniques, ce qui rend difficile la compréhension rapide de l'idée principale. Cela peut conduire les chercheurs à passer à côté de brevets clés ou à perdre du temps avec des résultats non pertinents.

L'ingrédient secret de cette révolution réside dans Vector Search. Plutôt que 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 une recherche 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 cette expression exacte n'est pas utilisée dans le document.

Défi:les recherches de littérature modernes doivent fournir des réponses instantanées et des recommandations intelligentes en adéquation avec leurs préférences spécifiques. Les méthodes de recherche traditionnelles ne permettent souvent pas d'offrir ce niveau de personnalisation.

La solution:notre application de chat basée sur les connaissances permet de relever ce défi. Il s'appuie sur une base de connaissances approfondie tirée de votre ensemble de données de brevets pour comprendre l'intention des clients, réagir intelligemment et fournir des résultats ultrapertinents.

Ce que vous allez faire

Au cours de 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 le flux des données dans notre système :

Ingestion:

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

Moteur d'analyse:

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. Recherche vectorielle: le moteur effectue une recherche par similarité en comparant la représentation vectorielle continue de la requête à celle d'extraits de brevets. Cela permet d'identifier le "plus proche voisin" le plus pertinent. en fonction du 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 empaqueté dans une fonction Cloud Run sans serveur appelée à partir d'Agent Builder.

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

Nous avons abordé les aspects techniques de la création d'un moteur d'analyse basé sur les connaissances sur lequel repose notre assistant intelligent de recherche de brevets. Voyons maintenant comment nous utilisons la magie de l'outil Agent Builder pour donner vie à ce moteur dans une interface conversationnelle. Assurez-vous d'avoir l'URL du point de terminaison prête avant de commencer la partie 2. C'est ce 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 les échanges.

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. Activer les API requises. Vous pouvez également rechercher chaque produit dans la console ou utiliser ce lien.

Si une API est manquante, vous pouvez toujours l'activer 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 réaliser cette tâche.

4. Création d'un agent

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 le processus de conception des flux de discussion, d'intégration des bases de connaissances et de connexion aux API externes. Dans notre cas, nous allons utiliser Agent Builder pour nous connecter facilement au point de terminaison de la fonction Cloud que nous avons créé dans la partie 1. Notre assistant de recherche de brevets pourra ainsi accéder à notre base de connaissances sur les brevets et 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 de texte brut.

Créer l'agent

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

  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 "CRÉER UNE APPLICATION" et attribuez un nom descriptif à votre agent (par exemple, "Assistant de recherche de brevet").
  3. Cliquez sur le type d'application "Agent".

462bb48664e9a14e.png

  1. . Donnez à votre agent un nom descriptif, par exemple "Assistant de recherche de brevets", et définissez la région sur us-central1.
  2. Saisissez les informations sur 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 maintenant et laissez les instructions vides 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 une 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 dans cette partie que 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 (encadré par des crochets angulaires) 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 l'outil configuration dans les "Instructions" de l'agent. Ajoutez le code ci-dessous à l'espace réservé pour les instructions (n'oubliez pas que les retraits sont importants dans la définition du 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 "Outil de recherche de brevets" est sélectionné dans la section "Outils disponibles", puis enregistrez à nouveau l'agent.

5. Tester l'agent

Dans le volet de droite, vous devriez voir la section "Aperçu de l'agent", qui vous permet de tester votre agent.

Comme vous pouvez le voir dans la capture d'écran ci-dessous, j'ai accueilli l'appel d'un utilisateur et commencé ma discussion par une demande de type "Correspondance du brevet pour une idée de bracelet pour la forme au quotidien":

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é AlloyDB. Et voilà ! L'agent est maintenant prêt.

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'intégrer à 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 nous l'avons 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. 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 de l'outil Agent Builder, nous avons créé un assistant de recherche de littérature intelligent qui rend les recherches de littérature accessibles, efficaces et véritablement pertinentes. En combinant les fonctionnalité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 agissantes.