Creare un assistente per la ricerca di brevetti con AlloyDB e Vertex AI Agent Builder - Parte 2

1. Panoramica

La ricerca di brevetti è vasta e complessa. Esaminare innumerevoli abstract tecnici per trovare innovazioni pertinenti è un'impresa ardua. Le ricerche tradizionali basate sulle parole chiave sono spesso imprecise e dispendiose in termini di tempo. Gli estratti sono lunghi e tecnici, il che rende difficile comprendere rapidamente l'idea fondamentale. Ciò può portare i ricercatori a perdere i brevetti chiave o perdere tempo per risultati irrilevanti.

Il segreto di questa rivoluzione risiede in Vector Search. Invece di fare affidamento su una semplice corrispondenza delle parole chiave, la ricerca di vettori trasforma il testo in rappresentazioni numeriche (embedding). Questo ci consente di effettuare ricerche in base al significato della query e non solo alle parole specifiche utilizzate. Nel mondo delle ricerche letterarie, questa svolta è rivoluzionaria. Immagina di trovare un brevetto per un "cardiofrequenzimetro indossabile" anche se la frase esatta non viene utilizzata nel documento.

La sfida: le ricerche moderne nella letteratura dovrebbero fornire risposte immediate e suggerimenti intelligenti in linea con le loro preferenze specifiche. I metodi di ricerca tradizionali spesso non offrono questo livello di personalizzazione.

La soluzione: la nostra applicazione di chat basata sulle conoscenze affronta questa sfida direttamente. Sfrutta una ricca knowledge base derivata dal set di dati dei brevetti per comprendere le intenzioni dei clienti, rispondere in modo intelligente e fornire risultati estremamente pertinenti.

Cosa creerai

Nell'ambito di questo lab (Parte 2), dovrai:

  1. Creare un agente Vertex AI Agent Builder
  2. Integrare lo strumento AlloyDB con l'agente

Requisiti

  • Un browser, ad esempio Chrome o Firefox
  • Un progetto Google Cloud con la fatturazione abilitata.

2. Architettura

Flusso di dati: diamo un'occhiata più da vicino a come i dati si spostano nel nostro sistema:

Importazione:

I dati dei brevetti vengono caricati in AlloyDB.

Motore di analisi:

Utilizzeremo AlloyDB come motore di analisi per eseguire le seguenti operazioni:

  1. Estrazione del contesto: il motore analizza i dati archiviati in AlloyDB per comprendere il set di dati dei brevetti.
  2. Creazione di incorporamenti: gli incorporamenti (rappresentazioni matematiche del testo) vengono generati sia per la query dell'utente sia per le informazioni memorizzate in AlloyDB.
  3. Ricerca vettoriale: il motore esegue una ricerca di somiglianza, confrontando l'incorporamento della query con gli incorporamenti degli abstract relativi ai brevetti. Identifica il "vicino più vicino" più pertinente al contesto che l'utente sta cercando.

Generare risposta:

Le risposte convalidate sono strutturate in un array JSON e l'intero motore è pacchettizzato in una funzione Cloud Run serverless invocata da Agent Builder.

I passaggi precedenti sono già trattati nella parte 1 del lab.

Abbiamo discusso i dettagli tecnici della creazione di un motore di analisi basato sulla conoscenza che alimenta il nostro assistente alla ricerca di brevetti intelligente. Ora vediamo come sfruttiamo la magia di Agent Builder per dare vita a questo motore in un'interfaccia di conversazione. Assicurati di avere a disposizione l'URL dell'endpoint prima di iniziare la parte 2. Questo passaggio successivo è l'argomento di questo lab:

Interazione di conversazione:

Agent Builder presenta le risposte all'utente in un formato di linguaggio naturale, facilitando un dialogo continuo.

3. Prima di iniziare

Creare un progetto

  1. Nella pagina del selettore dei progetti della console Google Cloud, seleziona o crea un progetto Google Cloud.
  2. Verifica che la fatturazione sia attivata per il tuo progetto Cloud. Scopri come controllare se la fatturazione è abilitata su un progetto .
  3. Utilizzerai Cloud Shell, un ambiente a riga di comando in esecuzione in Google Cloud precaricato con bq. Fai clic su Attiva Cloud Shell nella parte superiore della console Google Cloud.

Immagine del pulsante Attiva Cloud Shell

  1. Una volta connesso a Cloud Shell, verifica di aver già eseguito l'autenticazione e che il progetto sia impostato sul tuo ID progetto utilizzando il seguente comando:
gcloud auth list
  1. Esegui questo comando in Cloud Shell per confermare che il comando gcloud è a conoscenza del tuo progetto.
gcloud config list project
  1. Se il progetto non è configurato, utilizza il comando seguente per impostarlo:
gcloud config set project <YOUR_PROJECT_ID>
  1. Abilita le API richieste. L'alternativa al comando gcloud è tramite la console cercando ciascun prodotto o utilizzando questo link.

Se un'API non viene rilevata, puoi sempre abilitarla durante l'implementazione.

Fai riferimento alla documentazione per i comandi e l'utilizzo di gcloud.

Nota importante: per completare questa operazione, assicurati di aver completato la PARTE 1 del lab.

4. Creazione di agenti

Introduzione ad Agent Builder

Agent Builder è un potente strumento con poco codice che ci consente di creare agenti conversazionali in modo rapido ed efficiente. Semplifica il processo di progettazione dei flussi di dialogo, integrazione delle knowledge base e connessione ad API esterne. Nel nostro caso, utilizzeremo Agent Builder per connetterci perfettamente con l'endpoint della funzione Cloud Functions che abbiamo creato nella Parte 1, consentendo al nostro assistente per la ricerca di brevetti di accedere alla nostra knowledge base sui brevetti e rispondere alle query degli utenti in modo intelligente.

Assicurati di avere la funzione Java Cloud Run creata nella Parte 1 che restituisce un ARRAY JSON anziché testo normale.

Creazione dell'agente

Iniziamo creando questo nuovo agente per rispondere alle domande degli utenti sui prodotti di abbigliamento.

  1. Per iniziare, accedi alla piattaforma Agent Builder. Se ti viene chiesto di attivare l'API, fai clic su CONTINUA E ATTIVA L'API.
  2. Fai clic su "CREA APP" e assegna all'agente un nome descrittivo (ad es. "Assistente per la ricerca di brevetti").
  3. Fai clic su Tipo di app "Agente".

462bb48664e9a14e.png

  1. Assegna all'agente un nome descrittivo, ad esempio "Assistente alla ricerca di brevetti", e imposta la regione su us-central1
  2. Inserisci i dettagli dell'agente:
  3. Cambia il nome dell'agente in "Patent Search Agent".
  4. Aggiungi l'"Obiettivo" riportato di seguito:
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. Salvalo a questo punto e lascia le istruzioni vuote per il momento.
  2. Poi fai clic su Strumenti nel menu di navigazione e fai clic su CREA.

38f7d77d5ed0cb2a.png

Inserisci il nome dello strumento: Strumento di ricerca di brevetti

Tipo: OpenAPI

Inserisci la descrizione dello strumento:

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.

Inserisci Schema - OpenAPI in formato YAML:

Questa è la parte in cui utilizziamo l'endpoint di backend per alimentare l'agente. Copia la specifica OpenAPI riportata di seguito e sostituisci il segnaposto URL (racchiuso tra parentesi angolari) con l'endpoint della funzione Cloud Functions:

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.

Lascia invariati i valori predefiniti delle altre configurazioni e fai clic su "Salva".

  1. A questo punto, torna all'agente perché vogliamo aggiungere la configurazione dello "strumento" alle "istruzioni" dell'agente. Aggiungi quanto segue al segnaposto delle istruzioni (ricorda che i rientri sono importanti per definire il flusso):
- 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.

Assicurati che lo strumento "Strumento di ricerca di brevetti" sia selezionata in "Strumenti disponibili" quindi salva di nuovo l'agente.

5. Testa l'agente

Nel riquadro a destra dovresti vedere la sezione dell'agente di anteprima che ti consente di testare l'agente.

Come puoi vedere nello screenshot di seguito, ho salutato come utente e ho iniziato la chat con una richiesta di "Brevetto corrispondente per qualsiasi idea di tracker per il fitness":

e4ffaa48b5c1f012.png

Questa è la risposta JSON:

b0ee0af57ba63943.png

Questo è il risultato JSON non elaborato della funzione Cloud che elabora la ricerca di somiglianza AlloyDB. È tutto. Ora è tutto a posto con l\'agente.

6. Distribuzione e integrazione

Quando l'agente ti soddisfa, puoi eseguirne il deployment su vari canali utilizzando le integrazioni di Agent Builder. Puoi incorporarlo nel tuo sito web, integrarlo con le piattaforme di messaggistica più diffuse o persino creare un'app mobile dedicata. Possiamo anche utilizzare l'API Agent Builder direttamente nelle nostre applicazioni client web, come spiegato in questo post del blog.

7. Esegui la pulizia

Per evitare che al tuo account Google Cloud vengano addebitati costi relativi alle risorse utilizzate in questo post, segui questi passaggi:

  1. Nella console Google Cloud, vai a Gestisci
  2. risorse.
  3. Nell'elenco dei progetti, seleziona il progetto che vuoi eliminare, quindi fai clic su Elimina.
  4. Nella finestra di dialogo, digita l'ID progetto, quindi fai clic su Chiudi per eliminare il progetto.

8. Complimenti

Complimenti! Integrando la potenza del nostro motore di analisi personalizzato con l'interfaccia intuitiva di Agent Builder, abbiamo creato un assistente intelligente per la ricerca nella letteratura che ci ha permesso di rendere le ricerche della letteratura accessibili, efficienti e realmente basate sul significato. Combinando le funzionalità di AlloyDB, Vertex AI e Vector Search, abbiamo fatto un enorme passo avanti nel rendere le ricerche contestuali e vettoriali accessibili, efficienti, basate sul significato e proattive.