1. Panoramica
La ricerca di brevetti è ampia e complessa. Analizzare innumerevoli abstract tecnici per trovare innovazioni pertinenti è un compito arduo. Le ricerche tradizionali basate sulle parole chiave sono spesso imprecise e richiedono molto tempo. Gli estratti sono lunghi e tecnici, il che rende difficile comprendere rapidamente l'idea centrale. Ciò può portare i ricercatori a perdere i brevetti chiave o perdere tempo per risultati irrilevanti.
Il segreto di questa rivoluzione sta nella ricerca vettoriale. Anziché fare affidamento sulla semplice corrispondenza delle parole chiave, la ricerca vettoriale trasforma il testo in rappresentazioni numeriche (incorporamenti). 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 "rilevatore di frequenza cardiaca indossabile" anche se nel documento non viene utilizzata la frase esatta.
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), imparerai a:
- Crea un agente Vertex AI Agent Builder
- Integra lo strumento AlloyDB con l'agente
Requisiti
2. Architettura
Flusso di dati: osserviamo più da vicino come si spostano i dati nel nostro sistema:
Importazione:
I dati relativi ai brevetti vengono caricati in AlloyDB.
Motore di analisi:
Utilizzeremo AlloyDB come motore di analisi per eseguire le seguenti operazioni:
- Estrazione del contesto: il motore analizza i dati archiviati all'interno di AlloyDB per comprendere il set di dati dei brevetti.
- Creazione degli incorporamenti: gli incorporamenti (rappresentazioni matematiche del testo) vengono generati sia per la query dell'utente sia per le informazioni archiviate in AlloyDB.
- 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.
Generazione della risposta:
Le risposte convalidate sono strutturate in un array JSON e l'intero motore è pacchettizzato in una funzione Cloud Run serverless che viene richiamata da Agent Builder.
I passaggi precedenti sono già trattati nella parte 1 del lab.
Abbiamo parlato dei dettagli tecnici della creazione di un motore di analisi basato sulle conoscenze su cui si basa il nostro assistente intelligente per la ricerca di brevetti. Ora vediamo come sfruttiamo la magia di Agent Builder per dare vita a questo motore in un'interfaccia di conversazione. Assicurati che l'URL dell'endpoint sia pronto prima di iniziare la parte 2. Questo è il passaggio successivo che tratteremo in questo lab:
Interazione conversazionale:
Agent Builder presenta le risposte all'utente in un formato di linguaggio naturale, facilitando un dialogo continuo.
3. Prima di iniziare
Creare un progetto
- Nella pagina del selettore dei progetti della console Google Cloud, seleziona o crea un progetto Google Cloud.
- Verifica che la fatturazione sia attivata per il tuo progetto Cloud. Scopri come controllare se la fatturazione è abilitata su un progetto .
- Utilizzerai Cloud Shell, un ambiente a riga di comando in esecuzione su Google Cloud in cui è precaricato bq. Fai clic su Attiva Cloud Shell nella parte superiore della console Google Cloud.
- Una volta stabilita la connessione a Cloud Shell, potrai verificare di avere già eseguito l'autenticazione e che il progetto sia impostato sul tuo ID progetto utilizzando questo comando:
gcloud auth list
- Esegui questo comando in Cloud Shell per confermare che il comando gcloud è a conoscenza del tuo progetto.
gcloud config list project
- Se il progetto non è configurato, utilizza il comando seguente per impostarlo:
gcloud config set project <YOUR_PROJECT_ID>
- Abilita le API richieste. L'alternativa al comando gcloud è tramite la console: cerca ogni prodotto o utilizza questo link.
Se un'API non viene rilevata, puoi sempre abilitarla durante l'implementazione.
Consulta la documentazione per i comandi e l'utilizzo di gcloud.
Nota importante:inoltre, assicurati di aver completato la PARTE 1 del lab per portarlo a termine.
4. Creazione agente
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 con la creazione di questo nuovo agente per rispondere alle domande degli utenti sui prodotti di abbigliamento.
- Per prima cosa, accedi alla piattaforma Agent Builder. Se ti viene richiesto di attivare l'API, procedi e fai clic su CONTINUA E ATTIVA L'API.
- Fai clic su "CREA APP" e assegna all'agente un nome descrittivo (ad es. "Assistente per la ricerca di brevetti").
- Fai clic su Tipo di app "Agent".
- di Google. Dai all'agente un nome descrittivo come "Assistente Ricerca Brevetti" e imposta la regione su us-central1
- Inserisci i dettagli dell'agente:
- Cambia il nome dell'agente in "Patent Search Agent".
- Aggiungi il seguente "Obiettivo":
You are a professional intelligent patent search agent! Your job is to help the customer find patents matching the context of their search text.
- Salvalo a questo punto e lascia le istruzioni vuote per il momento.
- Poi fai clic su Strumenti nel menu di navigazione e fai clic su CREA.
Inserisci il nome dello strumento: strumento di ricerca 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 - ApriAPI in formato YAML:
Questa è la parte in cui utilizziamo l'endpoint di backend per alimentare l'agente. Copia la seguente specifica OpenAPI e sostituisci il segnaposto dell'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".
- A questo punto torna all'agente perché vogliamo aggiungere lo "Strumento" configurazione 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" e salvare 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 qui sotto, ho salutato la qualità di utente e ho avviato la mia chat con una richiesta di "Brevetto corrispondente per qualsiasi idea di fitness tracker":
Questa è la risposta JSON:
Si tratta del risultato JSON non elaborato della funzione Cloud Functions che elabora la Similarity Search di AlloyDB. È tutto. Abbiamo finito 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, di cui abbiamo parlato in questo 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:
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 di letteratura accessibili, efficienti e realmente basate sul significato. Combinando le funzionalità di AlloyDB, Vertex AI e Vector Search, abbiamo compiuto un enorme passo avanti nel rendere le ricerche contestuali e vettoriali accessibili, efficienti, realmente basate sul significato e su un agente efficace.