Cree un chatbot de recomendación de productos de comercio electrónico con Amazon Bedrock Agents

Muchas aplicaciones de comercio electrónico quieren ofrecer a sus usuarios un chatbot con apariencia humana que los oriente a elegir el mejor producto como regalo para sus seres queridos o amigos. Para mejorar la experiencia del cliente, el chatbot debe interactuar de manera natural y conversacional para comprender las preferencias y los requisitos del usuario, como el género del destinatario, la ocasión para el regalo y la categoría de producto deseada. En función de la conversación con el usuario, el chatbot debe poder consultar el catálogo de productos de comercio electrónico, filtrar los resultados y recomendar los productos más adecuados.

La roca madre del Amazonas es un servicio completamente administrado que ofrece una selección de modelos base (FM) de alto rendimiento de empresas líderes en inteligencia artificial (IA) como AI21 Labs, Anthropic, Cohere, Meta, Mistral AI, Stability AI y Amazon a través de una única API, junto con un amplio conjunto de capacidades para crear aplicaciones de IA generativa con seguridad, privacidad e IA responsable.

Agentes de Amazon Bedrock es una característica que permite IA generativa Aplicaciones para ejecutar tareas de varios pasos en los sistemas de la empresa y las fuentes de datos. En esta publicación, le mostramos cómo crear un chatbot de recomendación de productos de comercio electrónico utilizando los agentes y FM de Amazon Bedrock disponibles en Amazon Bedrock.

Descripción general de la solución

Los chatbots tradicionales basados ​​en reglas suelen tener dificultades para gestionar los matices y las complejidades de las conversaciones abiertas, lo que genera experiencias frustrantes para los usuarios. Además, codificar manualmente todos los flujos de conversación posibles y la lógica de filtrado de productos requiere mucho tiempo y es propenso a errores, especialmente a medida que crece el catálogo de productos.

Para abordar este desafío, necesita una solución que utilice los últimos avances en IA generativa para crear una experiencia de conversación natural. La solución debe integrarse perfectamente con la API de su catálogo de productos existente y adaptar dinámicamente el flujo de conversación en función de las respuestas del usuario, lo que reduce la necesidad de una codificación extensa.

Con Amazon Bedrock Agents, puede crear chatbots inteligentes que puedan conversar de forma natural con los usuarios, comprender sus preferencias y recuperar y recomendar de manera eficiente los productos más relevantes del catálogo. Amazon Bedrock Agents simplifica el proceso de creación e implementación de modelos de IA generativos, lo que permite a las empresas crear experiencias de conversación atractivas y personalizadas sin la necesidad de una amplia experiencia en aprendizaje automático (ML).

Para nuestro caso de uso, creamos un chatbot de recomendación utilizando Amazon Bedrock Agents que solicita a los usuarios que describan a quién quieren comprar el regalo y la ocasión correspondiente. El agente consulta la información del producto almacenada en un Amazon DynamoDB tabla, utilizando una API implementada como una AWS Lambda Función. El agente adapta las entradas de la API para filtrar productos en función de su conversación con el usuario, por ejemplo, género, ocasión y categoría. Después de obtener las preferencias de obsequios del usuario mediante preguntas aclaratorias, el agente responde con los productos más relevantes que están disponibles en la tabla de DynamoDB en función de las preferencias del usuario.

El siguiente diagrama ilustra la arquitectura de la solución.

Como se muestra en el diagrama anterior, la aplicación de comercio electrónico primero utiliza el agente para dirigir la conversación con los usuarios y generar recomendaciones de productos. El agente utiliza una API respaldada por Lambda para obtener información del producto. Por último, la función Lambda busca datos del producto en DynamoDB.

Prerrequisitos

Debe tener una cuenta de AWS con un usuario o rol que tenga como mínimo lo siguiente Gestión de identidad y acceso de AWS Políticas y permisos de (IAM):

  • Políticas administradas por AWS:
    • AmazonBedrockFullAccess
    • AWSMarketplaceManageSubscriptions
    • AWSLambda_ReadOnlyAccess
    • AmazonDynamoDBReadOnlyAccess
  • Acciones de IAM:
    • iam:CreateRole
    • iam:CreatePolicy
    • iam:AttachRolePolicy

Implemente los recursos de la solución con AWS CloudFormation

Antes de crear su agente, debe configurar la base de datos del producto y la API. Usamos un Formación en la nube de AWS Plantilla para crear una tabla DynamoDB para almacenar información del producto y una función Lambda que sirva como API para recuperar detalles del producto.

Al momento de escribir esta publicación, puede utilizar cualquiera de las siguientes regiones de AWS para implementar la solución: EE. UU. Este (Norte de Virginia), EE. UU. Oeste (Oregón), Asia Pacífico (Bombay, Sídney), Europa (Frankfurt, París), Canadá (Central) o Sudamérica (São Paulo). Visite Regiones y modelos compatibles con Amazon Bedrock Agents para actualizaciones.

Para implementar la plantilla, seleccione Pila de lanzamiento:

Lanzamiento de Stack para crear recursos de solución

Esta plantilla crea una tabla DynamoDB denominada Products con los siguientes atributos: product_name (clave de partición), category, gendery occasionTambién define un índice secundario global (GSI) para cada uno de estos atributos para permitir una consulta eficiente.

Además, la plantilla configura una función Lambda denominada GetProductDetailsFunction que actúa como una API para recuperar detalles del producto. Esta función Lambda acepta parámetros de consulta como category, gendery occasionConstruye una expresión de filtro en función de los parámetros proporcionados y escanea la tabla DynamoDB para recuperar los productos coincidentes. Si no se proporcionan parámetros, recupera todos los productos de la tabla y devuelve los primeros 100 productos.

La plantilla también crea otra función Lambda llamada PopulateProductsTableFunction que genera datos de muestra para almacenar en el Products tabla. La plantilla CloudFormation incluye un recurso personalizado que ejecutará el PopulateProductsTableFunction funcionar una vez como parte de la implementación de la plantilla, para agregar 100 entradas de producto de muestra en la tabla de productos DynamoDB, con varias combinaciones de nombres de productos, descripciones, categorías, géneros y ocasiones.

Opcionalmente, puede actualizar las entradas de productos de muestra o reemplazarlas con sus propios datos de productos. Para ello, abra la consola de DynamoDB, seleccione Explorar artículosy seleccione el Products mesa. Elige Escanear y elige Correr para ver y editar los elementos actuales o elegir Crear artículo Para agregar un nuevo artículo. Si sus datos tienen atributos diferentes a los de las entradas de productos de muestra, debe ajustar el código de la función Lambda. GetProductDetailsFunctionel esquema OpenAPI y las instrucciones para el agente que se utilizan en la siguiente sección.

Crear el agente

Ahora que tiene la infraestructura en funcionamiento, puede crear el agente. El primer paso es solicitar acceso al modelo.

  1. En la consola de Amazon Bedrock, seleccione Acceso al modelo en el panel de navegación.
  2. Elegir Habilitar modelos específicos.

Acceso al modelo Habilitar modelo específico

  1. Seleccione el modelo al que necesita acceder (para esta publicación, seleccionamos Soneto Claude 3).

Editar la página de acceso al modelo y seleccionar el soneto de Claude 3

Espere a que el estado de acceso al modelo cambie a Acceso concedido.

Se concedió acceso al modelo

Ahora puedes crear tu agente. Usamos una plantilla de CloudFormation para crear el agente y el grupo de acciones que invocará la función Lambda.

  1. Para implementar la plantilla, seleccione Pila de lanzamiento:

Iniciar Stack para crear el agente

Ahora puedes verificar los detalles del agente que fue creado por la pila.

  1. En la consola de Amazon Bedrock, seleccione Agentes bajo Herramientas de construcción en el panel de navegación.
  2. Elige el agente product-recommendation-agentluego elige Editar en el generador de agentes.
  3. El Instrucciones para el Agente La sección incluye un conjunto de instrucciones que guían al agente sobre cómo comunicarse con el usuario y usar la API. Puede ajustar las instrucciones en función de diferentes casos de uso y escenarios comerciales, así como de las API disponibles.

El objetivo principal del agente es entablar una conversación con el usuario para recopilar información sobre el género del destinatario, la ocasión para la que se entrega el regalo y la categoría deseada. En función de esta información, el agente consultará la función Lambda para recuperar y recomendar productos adecuados.

El siguiente paso es verificar el grupo de acciones que permite al agente invocar la función Lambda.

  1. En el Grupos de acción sección, seleccione la Get-Product-Recommendations grupo de acción.

Puedes ver el GetProductDetailsFunction La función Lambda está seleccionada en el Invocación de grupo de acción sección.

Detalles de invocación del grupo de acción

En el Esquema de grupo de acciones En esta sección, puede ver el esquema OpenAPI, que permite al agente comprender la descripción, las entradas, las salidas y las acciones de la API que puede utilizar durante la conversación con el usuario.

esquema de grupo de acciones

Ahora puedes utilizar el Agente de prueba Panel para tener conversaciones con el chatbot.

Probar el chatbot

Las siguientes capturas de pantalla muestran conversaciones de ejemplo, con el chatbot recomendando productos después de llamar a la API.

Muestra de prueba del agente para un regalo de graduación de un hermano

Muestra de prueba del agente para un regalo para esposa en el día de San Valentín

En la conversación de muestra, el chatbot hace preguntas relevantes para determinar el género del destinatario del regalo, la ocasión y la categoría deseada. Una vez que ha recopilado suficiente información, consulta la API y presenta una lista de productos recomendados que coinciden con las preferencias del usuario.

Puedes ver la justificación de cada respuesta eligiendo Mostrar rastroLas siguientes capturas de pantalla muestran cómo el agente decidió utilizar diferentes filtros de API en función de la discusión.

Mostrar rastro y justificación

Otro rastro y fundamento del espectáculo

Puedes verlo en el rationale campo en el que el agente tomó su decisión para cada interacción. Estos datos de seguimiento pueden ayudarle a comprender las razones detrás de una recomendación. Registrar esta información puede ser beneficioso para futuras mejoras de las recomendaciones de su agente.

Limpiar

Complete los siguientes pasos para limpiar sus recursos:

  1. En la consola de AWS CloudFormation, elimine la pila AgentStack.
  2. Luego borra la pila Productstableandapi.

Conclusión

En esta publicación, se mostró cómo usar los agentes de Amazon Bedrock para crear un chatbot conversacional que puede ayudar a los usuarios a encontrar el regalo perfecto. El chatbot recopila de manera inteligente las preferencias del usuario, consulta una API de backend para recuperar detalles relevantes del producto y presenta sus recomendaciones al usuario. Este enfoque demuestra el poder de los agentes para Amazon Bedrock para crear experiencias conversacionales atractivas y contextuales.

Le recomendamos que siga las prácticas recomendadas al utilizar los agentes de Amazon Bedrock. Por ejemplo, el uso de AWS CloudFormation para crear y configurar el agente le permite minimizar el error humano y recrear el agente en diferentes entornos y regiones. Además, la automatización de las pruebas del agente mediante un conjunto de preguntas clave y sus respuestas esperadas le permite probar la calidad de las instrucciones para el agente y comparar los resultados de los diferentes modelos en Amazon Bedrock en relación con su caso de uso.

Visita Agentes de Amazon Bedrock para obtener más información sobre las características y detalles.


Acerca del autor

Mahmud Salaheldin es arquitecto de soluciones sénior en AWS y trabaja con clientes en Oriente Medio, el norte de África y Turquía, donde ayuda a empresas, negocios centrados en lo digital y proveedores de software independientes a innovar nuevos productos que pueden mejorar la experiencia de sus clientes y aumentar la eficiencia de sus negocios. Es embajador de la IA generativa y miembro de la comunidad de contenedores. Vive en Dubái, Emiratos Árabes Unidos, y disfruta de andar en motocicleta y viajar.