1. Descripción general
La investigación de patentes es amplia y compleja. Analizar un sinfín de 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 extensos y técnicos, lo que dificulta la comprensión rápida de la idea principal. Esto puede provocar que a los investigadores les falten 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 moderna brinden respuestas instantáneas y recomendaciones inteligentes que se ajusten a 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 amplia base de conocimiento derivada del conjunto de datos de tu patente para comprender la intención de los clientes, responder de forma inteligente y ofrecer resultados sumamente relevantes.
Qué compilarás
Como parte de este lab (Parte 2), harás lo siguiente:
- 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 estadísticas para realizar lo siguiente:
- 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 abordan 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 darle vida a este motor en una interfaz conversacional. 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 en 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 tu ID del proyecto:
gcloud auth list
- Ejecuta el siguiente comando en Cloud Shell para confirmar que el comando de 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, siempre puedes habilitarla durante el curso 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 este proceso.
4. Creación del agente
Presentación de Agent Builder
Agent Builder es una herramienta potente y con poco 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 que la función Java Cloud Run creada en la Parte 1 devuelva 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.
- Primero, accede a la plataforma de Agent Builder. Si te solicita que actives la API, haz clic en CONTINUAR Y ACTIVA LA API.
- Haz clic en "CREAR APLICACIÓN". y asígnale un nombre descriptivo (p.ej., "Asistente de búsqueda de patentes").
- Haz clic en el tipo de app "Agente".
- de Google Cloud. Asigna un nombre descriptivo al agente, como "Patent Search Assistant". y establece la región en us-central1.
- Ingresa los detalles del agente:
- Cambia el nombre del agente a "Patent Search Agent".
- Agregue 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 haz clic en CREAR.
Ingresar 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 usaremos el extremo de backend para potenciar el agente. Copia la siguiente especificación de OpenAPI y reemplaza el marcador de posición de URL (encerrado entre corchetes angulares) por tu 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 las otras configuraciones con sus valores predeterminados y haz clic en “Guardar”.
- Regresemos al agente en este punto porque queremos agregar la "Herramienta". configuración 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 del agente de vista previa, que te permite probar tu agente.
Como se puede observar en la siguiente captura de pantalla, 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 Cloud Function 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! Mediante la integración de la potencia de nuestro motor de analítica personalizado con la interfaz intuitiva de Agent Builder, creamos un asistente de búsqueda inteligente de literatura que hace que las búsquedas de literatura sean accesibles, eficientes y verdaderamente centradas en el significado. 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.