1. Descripción general
La investigación de patentes es amplia y compleja. Examinar innumerables resúmenes técnicos para encontrar innovaciones relevantes es una tarea abrumadora. Las búsquedas tradicionales basadas en palabras clave suelen ser imprecisas y requieren mucho tiempo. Los resúmenes son largos y técnicos, lo que dificulta comprender la idea principal con rapidez. Esto puede provocar que los investigadores pierdan patentes clave o pierdan tiempo en resultados irrelevantes.
El ingrediente secreto de esta revolución yace en la búsqueda de vectores. En lugar de depender de la coincidencia simple de palabras clave, la búsqueda vectorial transforma el texto en representaciones numéricas (incorporaciones). Esto nos permite buscar según el significado de la consulta, no solo las palabras específicas utilizadas. En el mundo de las búsquedas literarias, esto cambia las reglas del juego. Imagina que encuentras una patente de un "monitor de frecuencia cardíaca wearable" aunque la frase exacta no se use en el documento.
El desafío: Se espera que las búsquedas de literatura modernas proporcionen respuestas instantáneas y recomendaciones inteligentes que se alineen con sus preferencias únicas. Los métodos de búsqueda tradicionales no suelen proporcionar este nivel de personalización.
La solución: Nuestra aplicación de chat basada en el conocimiento aborda este desafío de manera directa. Aprovecha una base de conocimiento rica derivada de tu conjunto de datos de patentes para comprender la intención del cliente, responder de forma inteligente y ofrecer resultados hiperrelevantes.
Qué compilarás
Como parte de este lab (Parte 2), harás lo siguiente:
- Cómo compilar un agente de Vertex AI Agent Builder
- Integra la herramienta de AlloyDB al agente
Requisitos
2. Arquitectura
Flujo de datos: Analicemos con más detalle cómo se mueven los datos a través de nuestro sistema:
Transferencia:
Los datos de patentes se cargan en AlloyDB.
Motor de estadísticas:
Usaremos AlloyDB como motor de análisis para realizar las siguientes acciones:
- Extracción de contexto: El motor analiza los datos almacenados en AlloyDB para comprender el conjunto de datos de patentes.
- Creación de incorporaciones: Las incorporaciones (representaciones de texto matemáticas) se generan tanto para la consulta del usuario como para la información almacenada en AlloyDB.
- Búsqueda de vectores: El motor realiza una búsqueda de similitud, comparando la incorporación de consultas con las incorporaciones de resúmenes de patentes. Esto identifica el “vecino más cercano” más relevante al contexto que busca el usuario.
Generación de respuestas:
Las respuestas validadas se estructuran en un array JSON y todo el motor se empaqueta en una Cloud Run Function sin servidores que se invoca desde Agent Builder.
Los pasos anteriores ya se abordaron en la parte 1 del lab.
Analizamos los detalles técnicos de la creación de un motor de análisis basado en el conocimiento que impulsa nuestro asistente de búsqueda inteligente de patentes. Ahora, exploremos cómo aprovechamos la magia de Agent Builder para dar vida a este motor en una interfaz de conversación. Asegúrate de tener lista la URL del extremo antes de comenzar la parte 2. El siguiente paso es lo que abordaremos en este lab:
Interacción conversacional:
Agent Builder presenta las respuestas al usuario en un formato de lenguaje natural, lo que facilita un diálogo de ida y vuelta.
3. Antes de comenzar
Crea un proyecto
- En la página del selector de proyectos de la consola de Google Cloud, selecciona o crea un proyecto de Google Cloud.
- Asegúrate de que la facturación esté habilitada para tu proyecto de Cloud. Obtén información para verificar si la facturación está habilitada en un proyecto .
- Usarás Cloud Shell, un entorno de línea de comandos que se ejecuta en Google Cloud y que viene precargado con bq. Haz clic en Activar Cloud Shell en la parte superior de la consola de Google Cloud.
- Cuando te conectes a Cloud Shell, usa el siguiente comando para comprobar que ya estés autenticado y que el proyecto esté configurado con el ID de tu proyecto:
gcloud auth list
- En Cloud Shell, ejecuta el siguiente comando para confirmar que el comando gcloud conoce tu proyecto.
gcloud config list project
- Si tu proyecto no está configurado, usa el siguiente comando para hacerlo:
gcloud config set project <YOUR_PROJECT_ID>
- Habilita las API necesarias. La alternativa al comando de gcloud es a través de la consola buscando cada producto o usando este vínculo.
Si falta alguna API, puedes habilitarla durante el transcurso de la implementación.
Consulta la documentación para ver los comandos y el uso de gcloud.
Nota importante: Además, asegúrate de haber completado la PARTE 1 del lab para completar esta actividad.
4. Creación del agente
Presentamos Agent Builder
Agent Builder es una herramienta potente y de bajo código que nos permite crear agentes conversacionales con rapidez y eficiencia. Agiliza el proceso de diseño de flujos de diálogo, integración de bases de conocimiento y conexión a APIs externas. En nuestro caso, usaremos Agent Builder para conectarnos sin problemas con el extremo de Cloud Function que compilamos en la Parte 1, lo que permitirá que nuestro asistente de búsqueda de patentes acceda a nuestra base de conocimiento y responda a las consultas de los usuarios de manera inteligente.
Asegúrate de tener la función de Cloud Run de Java creada en la Parte 1 que devuelve un ARRAY JSON en lugar de texto sin formato.
Compila el agente
Comencemos con la creación de este nuevo agente para responder las preguntas de los usuarios sobre los productos de indumentaria.
- Para comenzar, accede a la plataforma de Agent Builder. Si se te solicita que actives la API, haz clic en CONTINUAR Y ACTIVAR LA API.
- Haz clic en "CREAR APLICACIÓN". y asígnale un nombre descriptivo (p.ej., "Patent Search Assistant").
- Haz clic en el tipo de app "Agente".
- . Asigna a tu agente un nombre descriptivo, como "Patent Search Assistant", y establece la región como us-central1.
- Ingresa los detalles del agente:
- Cambia el nombre del agente a "Patent Search Agent".
- Agrega el siguiente "Objetivo":
You are a professional intelligent patent search agent! Your job is to help the customer find patents matching the context of their search text.
- Guárdala y, por ahora, deja las instrucciones en blanco.
- Luego, haz clic en Herramientas en el menú de navegación y, luego, en CREAR.
Ingresa el nombre de la herramienta: Herramienta de búsqueda de patentes
Tipo: OpenAPI
Ingresa la descripción de la herramienta:
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.
Ingresa el esquema: OpenAPI en formato YAML:
Esta es la parte en la que usamos el extremo de backend para potenciar el agente. Copia la siguiente especificación de OpenAPI y reemplaza el marcador de posición de URL (entre corchetes) por el extremo de Cloud Function:
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.
Deja el resto de los parámetros de configuración con sus valores predeterminados y haz clic en "Guardar".
- En este punto, vuelve al agente porque queremos agregar la configuración de "Herramienta" a las "Instrucciones" del agente. Agrega lo siguiente al marcador de posición de las instrucciones (recuerda que las sangrías son importantes para definir el flujo):
- 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.
Asegúrate de que la herramienta "Herramienta de búsqueda de patentes" está seleccionado en las "Herramientas disponibles" y, luego, vuelve a guardar el agente.
5. Prueba el agente
En el panel de la derecha, deberías ver la sección Agente de vista previa, que te permite probar el agente.
Como puedes ver en la captura de pantalla a continuación, me saludé como usuario y comencé mi chat con una solicitud de "Matching patent for any fitness tracker idea":
Esta es la respuesta JSON:
Este es el resultado JSON sin procesar de la función de Cloud que procesa la búsqueda de similitud de AlloyDB. Eso es todo. Ya estamos listos con el agente.
6. Implementación e integración
Una vez que estés satisfecho con tu agente, puedes implementarlo fácilmente en varios canales mediante las integraciones de Agent Builder. Puedes insertarlo en tu sitio web, integrarlo a plataformas de mensajería populares o incluso crear una aplicación móvil dedicada. También podemos usar la API de Agent Builder directamente en nuestras aplicaciones cliente web, como se explica en este blog.
7. Limpia
Sigue estos pasos para evitar que se apliquen cargos a tu cuenta de Google Cloud por los recursos que usaste en esta publicación:
- En la consola de Google Cloud, ve a Administrar
- Recursos.
- En la lista de proyectos, elige el proyecto que deseas borrar y haz clic en Borrar.
- En el diálogo, escribe el ID del proyecto y, luego, haz clic en Cerrar para borrarlo.
8. Felicitaciones
¡Felicitaciones! Integramos la potencia de nuestro motor de análisis personalizado con la interfaz intuitiva de Agent Builder para crear un asistente inteligente de búsqueda de literatura que permite que las búsquedas de literatura sean accesibles, eficientes y realmente significativas. Con la combinación de las capacidades de AlloyDB, Vertex AI y Vector Search, dimos un gran paso hacia adelante para hacer que las búsquedas contextuales y vectoriales sean accesibles, eficientes, verdaderamente centradas en el significado y a agentes.