amazon Bedrock Flows ofrece un generador visual intuitivo y un conjunto de API para vincular perfectamente modelos básicos (FM), características de amazon Bedrock y servicios de AWS para crear y automatizar flujos de trabajo de IA generativos definidos por el usuario a escala. amazon Bedrock Agents ofrece una solución totalmente administrada para crear, implementar y escalar agentes de IA en AWS. Con Flujos, puede proporcionar una lógica de decisión definida explícitamente por el usuario para ejecutar flujos de trabajo y agregar Agentes como un nodo en un flujo para usar FM para interpretar y ejecutar tareas dinámicamente basándose en el razonamiento contextual para ciertos pasos de su flujo de trabajo.
Hoy, nos complace anunciar la conversación de múltiples turnos con un nodo de agente (vista previa), una nueva y poderosa capacidad en Flows. Esta nueva capacidad mejora la funcionalidad del nodo del agente, permitiendo conversaciones dinámicas de ida y vuelta entre usuarios y flujos, similar a un diálogo natural en una ejecución de flujo.
Con esta nueva característica, cuando un nodo de agente requiere aclaración o contexto adicional por parte del usuario antes de poder continuar, puede pausar de manera inteligente la ejecución del flujo y solicitar información específica del usuario. Después de que el usuario envía la información solicitada, el flujo reanuda sin problemas la ejecución con la entrada enriquecida, manteniendo la executionId
de la conversación.
Esto crea una experiencia más interactiva y consciente del contexto, porque el nodo puede adaptar su comportamiento en función de las respuestas del usuario. El siguiente diagrama de secuencia muestra los pasos del flujo.
Las conversaciones de varios turnos facilitan a los desarrolladores la creación de flujos de trabajo agentes que pueden adaptarse y razonar dinámicamente. Esto es particularmente valioso para escenarios complejos donde una sola interacción podría no ser suficiente para comprender y abordar completamente las necesidades del usuario.
En esta publicación, analizamos cómo crear una conversación de varios turnos y exploramos cómo esta función puede transformar sus aplicaciones de IA.
Descripción general de la solución
Considere ACME Corp, una importante agencia de viajes ficticia en línea que desarrolla un planificador de viajes de vacaciones impulsado por inteligencia artificial utilizando Flows. Se enfrentan a varios desafíos en su implementación:
- Su planificador no puede entablar conversaciones dinámicas y exige todos los detalles del viaje por adelantado en lugar de hacer preguntas de seguimiento.
- Se enfrentan a desafíos para orquestar procesos complejos de planificación de viajes de varios pasos que requieren coordinar vuelos, alojamiento, actividades y transporte a través de múltiples destinos, lo que a menudo genera ineficiencias y experiencias subóptimas para los clientes.
- Su aplicación no puede adaptar dinámicamente sus recomendaciones cuando los usuarios modifican sus preferencias o introducen nuevas restricciones durante el proceso de planificación.
Exploremos cómo la nueva capacidad de conversación de múltiples turnos en Flows aborda estos desafíos y permite a ACME Corp crear un planificador de viajes de vacaciones más inteligente, eficiente y consciente del contexto que realmente mejora la experiencia de planificación de viajes del cliente.
El flujo ofrece dos caminos de interacción distintos. Para consultas generales sobre viajes, los usuarios reciben respuestas instantáneas impulsadas por un LLM. Sin embargo, cuando los usuarios quieren buscar o reservar vuelos y hoteles, se conectan con un agente que los guía a través del proceso, recopilando información esencial mientras mantienen la sesión hasta su finalización. El flujo de trabajo se ilustra en el siguiente diagrama.
Requisitos previos
Para este ejemplo, necesita lo siguiente:
- Una cuenta de AWS y un usuario con un rol de AWS Identity and Access Management (IAM) autorizado para utilizar Bedrock. Para obtener orientación, consulte Introducción a amazon Bedrock. Asegúrese de que el rol incluya los permisos para usar flujos, como se explica en Requisitos previos para amazon Bedrock Flows, y los permisos para usar agentes, como se explica en Requisitos previos para crear agentes de amazon Bedrock.
- Acceso proporcionado a los modelos que utiliza para la invocación y evaluación. Para obtener orientación, consulte Administrar el acceso a los modelos de base de amazon Bedrock.
- Cree un agente de amazon Bedrock para automatizar la tarea de la aplicación de agencia de viajes orquestando las interacciones entre el FM, las llamadas API y las conversaciones de los usuarios. Nuestro agente de viajes ofrece cuatro funciones de reserva esenciales: buscar vuelos disponibles, asegurar reservas de vuelos, encontrar alojamiento en hotel adecuado y completar reservas de hotel. Para ver un ejemplo de cómo crear un agente de viajes, consulte Agentes para amazon Bedrock ahora admiten retención de memoria e interpretación de códigos (vista previa). Asegúrese de que el agente tenga habilitada la funcionalidad de entrada del usuario. Esta configuración permite al agente recopilar todos los detalles requeridos a través de una conversación natural, incluso cuando la solicitud inicial está incompleta.
Cree un flujo de conversación de varios turnos
Para crear un flujo de conversación de varios turnos, complete los siguientes pasos:
- En la consola Bedrock, elija Flujos bajo Herramientas de construcción en el panel de navegación.
- Comience a crear un nuevo flujo llamado
ACME-Corp-trip-planner
.
Para obtener instrucciones detalladas sobre cómo crear un flujo, consulte amazon Bedrock Flows ahora está disponible de forma general con seguridad y trazabilidad mejoradas.
Bedrock proporciona diferentes tipos de nodos para crear su flujo de avisos.
- Elija el nodo de solicitud para evaluar la intención de entrada. Clasificará las intenciones como
categoryLetter=A
si el usuario desea buscar o reservar un hotel o vuelo ycategoryLetter=B
si el usuario solicita información de destino. Si está utilizando amazon Bedrock Prompt Management, puede seleccionar el mensaje desde allí.
Para este nodo, utilizamos el siguiente mensaje en la configuración del mensaje:
Para nuestro ejemplo, elegimos el modelo Nova Lite de amazon y configuramos el parámetro de inferencia de temperatura en 0,1 para minimizar las alucinaciones y mejorar la confiabilidad de la salida. Puede seleccionar otros modelos de amazon Bedrock disponibles.
- Cree el nodo Condición con la siguiente información y conéctese con el nodo Clasificador de consultas. Para este nodo, el valor de la condición es:
- Cree un segundo nodo de aviso para la invocación de la guía LLM. La entrada del nodo es la salida del nodo Condición “Si todas las condiciones son falsas”. Para finalizar esta rama de flujo, agregue un nodo de salida de flujo y conecte la salida del nodo de solicitud a él.
Para nuestro ejemplo, elegimos el modelo Nova Lite de amazon y configuramos el parámetro de inferencia de temperatura en 0,1 para minimizar las alucinaciones y mejorar la confiabilidad de la salida.
- Finalmente, cree el nodo del agente y configúrelo para usar el agente que se creó anteriormente. La entrada del nodo es la salida del nodo Condición “Reserva de condiciones”. Para finalizar esta rama de flujo, agregue un nodo de salida de flujo y conecte la salida del nodo del agente a él.
- Elegir Ahorrar para guardar su flujo.
Pruebe el flujo
Ahora está listo para probar el flujo a través de la consola o API de amazon Bedrock. Primero, pedimos información sobre París. En la respuesta, puede revisar los seguimientos de flujo, que brindan visibilidad detallada del proceso de ejecución. Estos seguimientos lo ayudan a monitorear y depurar los tiempos de respuesta para cada paso, rastrear el procesamiento de las entradas de los clientes, verificar si las barreras de seguridad se aplican correctamente e identificar cualquier cuello de botella en el sistema. Los seguimientos de flujo ofrecen una descripción general completa de todo el proceso de generación de respuesta, lo que permite una resolución de problemas y una optimización del rendimiento más eficientes.
A continuación, continuamos nuestra conversación y solicitamos reservar un viaje a París. Como puede ver, ahora con el soporte de múltiples turnos en Flows, nuestro nodo de agente puede hacer preguntas de seguimiento para recopilar toda la información y realizar la reserva.
Seguimos hablando con nuestro agente, brindándole toda la información requerida y finalmente, el agente realiza la reserva por nosotros. En las trazas se puede comprobar el ExecutionId
que mantiene la sesión para las solicitudes de múltiples turnos.
Después de la confirmación, el agente completó con éxito la solicitud del usuario.
Utilice las API de amazon Bedrock Flows
También puede interactuar con flujos mediante programación utilizando la API InvokeFlow, como se muestra en el siguiente código. Durante la invocación inicial, el sistema genera automáticamente un código único executionId
que mantiene la sesión durante 1 hora. Este executionId
es esencial para posteriores InvokeFlow
Llamadas API, porque proporciona al agente la información contextual necesaria para mantener el historial de conversaciones y completar acciones.
Si el nodo agente en el flujo decide que necesita más información del usuario, el flujo de respuesta (responseStream
) de InvokeFlow
incluye un FlowMultiTurnInputRequestEvent
objeto del evento. El evento tiene la información solicitada en el contenido(FlowMultiTurnInputContent
) campo.
El siguiente es un ejemplo FlowMultiTurnInputRequestEvent
Objeto JSON:
Debido a que el flujo no puede continuar hasta que se reciban más entradas, el flujo también emite un FlowCompletionEvent
evento. Un flujo siempre emite la FlowMultiTurnInputRequestEvent
antes del FlowCompletionEvent
. Si el valor de completionReason
en el FlowCompletionEvent
evento es INPUT_REQUIRED
el flujo necesita más información antes de poder continuar.
El siguiente es un ejemplo FlowCompletionEvent
Objeto JSON:
Envíe la respuesta del usuario al flujo llamando al InvokeFlow
API de nuevo. Asegúrese de incluir el executionId
para la conversación.
El siguiente es un ejemplo de solicitud JSON para el InvokeFlow
API, que proporciona información adicional requerida por un nodo de agente:
Este ida y vuelta continúa hasta que no se necesita más información y el agente tiene todo lo necesario para completar la solicitud del usuario. Cuando no se necesita más información, el flujo emite un FlowOutputEvent
evento, que contiene la respuesta final.
El siguiente es un ejemplo FlowOutputEvent
Objeto JSON:
El flujo también emite un FlowCompletionEvent
evento. el valor de completionReason
es SUCCESS
.
El siguiente es un ejemplo FlowCompletionEvent
Objeto JSON:
Para comenzar con la invocación de varios turnos, utilice el siguiente código de ejemplo. Maneja interacciones posteriores utilizando el mismo executionId
y mantiene el contexto durante toda la conversación. Debes especificar el ID de tu flujo en FLOW_ID
y su ID de alias en FLOW_ALIAS_ID
(consulte Ver información sobre flujos en amazon Bedrock para obtener instrucciones sobre cómo obtener estos ID).
El sistema solicitará información adicional según sea necesario, utilizando el executionId
para mantener el contexto en múltiples interacciones, proporcionando un flujo de conversación coherente y continuo mientras se ejecutan las acciones solicitadas.
Limpiar
Para limpiar sus recursos, elimine el flujo, el agente, las funciones de AWS Lambda creadas para el agente y la base de conocimientos.
Conclusión
La introducción de la capacidad de conversación en múltiples turnos en Flows marca un avance significativo en la creación de aplicaciones sofisticadas de IA conversacional. En esta publicación, demostramos cómo esta característica permite a los desarrolladores crear flujos de trabajo dinámicos y sensibles al contexto que pueden manejar interacciones complejas mientras mantienen el historial y el estado de la conversación. La combinación de la interfaz del creador visual de Flows y las API con potentes capacidades de agente hace que sea sencillo desarrollar e implementar aplicaciones inteligentes que puedan entablar conversaciones naturales de varios pasos.
Con esta nueva capacidad, las empresas pueden crear soluciones de IA más intuitivas y con mayor capacidad de respuesta que satisfagan mejor las necesidades de sus clientes. Ya sea que esté desarrollando un sistema de reserva de viajes, servicio al cliente u otra aplicación conversacional, la conversación multiturno con Flows proporciona las herramientas necesarias para crear flujos de trabajo de IA sofisticados con una complejidad mínima.
Lo alentamos a explorar estas capacidades en la consola Bedrock y comenzar a crear sus propias aplicaciones conversacionales de múltiples turnos hoy. Para obtener más información y documentación detallada, visite la Guía del usuario de amazon Bedrock. Esperamos ver las soluciones innovadoras que creará con estas nuevas y potentes funciones.
Acerca de los autores
Christian Kamwangala es un arquitecto de soluciones especializado en IA/ML e IA generativa en AWS, con sede en París, Francia. Ayuda a los clientes empresariales a diseñar e implementar soluciones de inteligencia artificial de vanguardia utilizando el conjunto completo de herramientas de AWS, con un enfoque en sistemas listos para producción que siguen las mejores prácticas de la industria. En su tiempo libre, Christian disfruta explorar la naturaleza y pasar tiempo con familiares y amigos.
Irene Arroyo Delgado es arquitecto de soluciones especializado en IA/ML y GenAI en AWS. Se centra en aprovechar el potencial de la IA generativa para cada caso de uso y en producir cargas de trabajo de ML para lograr los resultados comerciales deseados por los clientes mediante la automatización de los ciclos de vida de ML de un extremo a otro. En su tiempo libre, a Irene le gusta viajar y hacer senderismo.