Flujos de lecho rocoso del Amazonas ofrece un generador visual intuitivo y un conjunto de API para vincular perfectamente los modelos básicos (FM), Roca Amazónica funciones y servicios de AWS para crear y automatizar flujos de trabajo de IA generativos definidos por el usuario a escala. Agentes de Amazon Bedrock 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 de clientes subóptimas.
- 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 una Gestión de acceso e identidad de AWS (IAM) rol autorizado para usar Bedrock. Para obtener orientación, consulte Primeros pasos con Amazon Bedrock. Asegúrese de que el rol incluya los permisos para usar Flujos, como se explica en Requisitos previos para los flujos de Amazon Bedrocky 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 Administre el acceso a los modelos de base de Amazon Bedrock.
- Crear un agente de Amazon Bedrock 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 Los agentes de Amazon Bedrock ahora admiten retención de memoria e interpretación de código (versión preliminar). Asegúrese de que el agente tenga funcionalidad de entrada del usuario activado. 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 generalizada con seguridad y trazabilidad mejoradas.
Bedrock ofrece diferentes tipos de nodos para construir su flujo rápido.
- Elija el nodo de solicitud para evaluar la intención de entrada. Clasificará las intenciones como
categoryLetter=Asi el usuario desea buscar o reservar un hotel o vuelo ycategoryLetter=Bsi el usuario solicita información de destino. Si estas usando Gestión rápida de Amazon Bedrockpuede seleccionar el mensaje desde allí.
Para este nodo, utilizamos el siguiente mensaje en la configuración del mensaje:
Para nuestro ejemplo, elegimos Amazon Nova Lite modele y establezca el parámetro de inferencia de temperatura en 0,1 para minimizar las alucinaciones y mejorar la confiabilidad de la salida. Puedes seleccionar otros Modelos disponibles de Amazon Bedrock.
- 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ás 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 el API de flujo de invocacióncomo se muestra en el siguiente código. Durante la invocación inicial, el sistema genera automáticamente un código único executionIdque 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_REQUIREDel 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 (referirse a Ver información sobre flujos en Amazon Bedrock para obtener instrucciones sobre cómo obtener estas identificaciones).
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, AWS Lambda funciones creadas para el agente y 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 el 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 IA de vanguardia utilizando el conjunto completo de herramientas de AWS, centrándose 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.