Ofrezca experiencias de espectador hiperpersonalizadas con un asistente de películas con IA agente utilizando Amazon Nova Sonic 2.0. Los sistemas de recomendación son la columna vertebral de los servicios de transmisión de medios modernos y dan forma a la forma en que los usuarios descubren el contenido. Los sistemas tradicionales de aprendizaje automático (ML) utilizan filtrado colaborativo o basado en contenido para predecir las preferencias de contenido. Sin embargo, a menudo pasan por alto necesidades que dependen del contexto, como la hora del día, el estado de ánimo o los entornos sociales. Por ejemplo, después de ver 'The Shawshank Redemption', un sistema podría sugerir más dramas carcelarios, ignorando que el usuario podría querer algo más ligero para relajarse. Un enfoque híbrido aborda esta brecha combinando las capacidades tradicionales de reconocimiento de patrones de aprendizaje automático con la comprensión contextual y las capacidades conversacionales de la IA generativa. Agentic AI va más allá al involucrar a los usuarios a través de un diálogo dinámico y un razonamiento sobre el contexto de visualización. Estos agentes de recomendación sintetizan información de múltiples fuentes (resúmenes de tramas, reseñas, historial de visualización) e incorporan comentarios de los usuarios en tiempo real. Los usuarios pueden preguntar sobre escenas o temas específicos y el agente proporciona explicaciones contextuales. Esto crea una experiencia como consultar a un curador experto que comprende tanto el contenido como las preferencias individuales.
En esta publicación, analizamos dos casos de uso que ayudan a mejorar la experiencia de visualización del usuario. Primero, imagina decirle al agente de IA que quieres algo divertido después de un largo día y recibir recomendaciones que coincidan con cómo te sientes y no solo con lo que has visto antes. En segundo lugar, imagine una pausa a mitad de la película para preguntar: "¿quién es ese actor?" o "¿resumir lo que acaba de pasar?" y obtener una respuesta instantánea. Crear este asistente conversacional requiere orquestar el procesamiento del habla en tiempo real, la gestión del contexto, la invocación de herramientas y respuestas seleccionadas. Este es un desafío complejo que podemos ayudar a simplificar utilizando herramientas y marcos de IA agentes, incluidos Strands Agents SDK, Amazon Bedrock AgentCore y Amazon Nova Sonic 2.0. Este sistema de inteligencia artificial utiliza un protocolo de contexto modelo (MCP) para brindar un conserje de entretenimiento personal que comprende las preferencias del usuario a través de un diálogo natural. Compartimos los ejemplos de código para esta aplicación en el repositorio de GitHub.
Arquitectura
La arquitectura de la solución se centra en 1/ recomendación de películas y 2/ análisis de escenas de películas. Desarrollamos ambos flujos con mayor detalle en las secciones siguientes de esta publicación.
Flujo de trabajo de interacción del usuario
El usuario se autentica con la interfaz de usuario web alojada como un sitio web estático en Amazon Simple Storage Service (Amazon S3) y sirve a través de Amazon CloudFront con Amazon Cognito. Se establece una conexión WebSocket desde el cliente al servidor alojado en AWS Fargate expuesto mediante un punto final de Amazon CloudFront. Las comunicaciones de sesión entre cliente y servidores se realizan a través de esta conexión. Las conexiones WebSocket requieren la validación del token JWT en el momento de la conexión. Las comunicaciones de sesión entre cliente y servidores se realizan a través de esta conexión. El servidor AWS Fargate valida la conexión entrante, crea una instancia de una sesión con Amazon Nova Sonic 2.0 para comunicaciones de transmisión bidireccional con el servidor. Los comandos de voz del usuario se envían al modelo Amazon Nova Sonic a través de la conexión WebSocket establecida. El contenedor Fargate utiliza un protocolo RPC de transmisión bidireccional Smithy para comunicarse con el modelo Nova Sonic. Las respuestas del modelo son procesadas por el contenedor. El contenedor AWS Fargate administra los eventos de la herramienta desde Nova Sonic e inicia un flujo de trabajo agente utilizando el servidor MCP para procesar las solicitudes de los usuarios. Amazon Bedrock AgentCore Gateway ayuda a transformar las funciones de AWS Lambda en herramientas compatibles con MCP para el agente. AWS Lambda utiliza modelos de comprensión de Amazon Nova (micro, lite, pro) para el procesamiento, con OpenSearch y S3 Vector como capas de almacenamiento y búsqueda semántica. Los resultados se devuelven al servidor a través de Amazon Bedrock AgentCore Gateway. AWS Fargate envía la respuesta a Amazon Nova Sonic para la formulación final de la respuesta de voz. La respuesta de voz se transmite a la interfaz de usuario web a través de la conexión WebSocket.
Interfaz de usuario de voz natural
Usamos Amazon Nova Sonic 2.0, nuestro último modelo de voz a voz que ofrece conversaciones de voz en tiempo real, similares a las humanas, con baja latencia. Esto proporciona una experiencia de usuario con intercambios fluidos que se sienten genuinamente conversacionales, lo que ayuda a transformar las interacciones de IA de rígidas sesiones de preguntas y respuestas en diálogos dinámicos y productivos. Con soporte asincrónico para completar tareas, puede mantener un diálogo fluido mientras procesa tareas complejas en segundo plano durante conversaciones activas. Finalmente, Nova Sonic 2.0 admite de forma nativa entradas de texto y de voz en tiempo real, lo que le brinda flexibilidad en la forma de interactuar con el asistente de IA. También puede definir la personalidad del asistente de IA proporcionando un mensaje del sistema al comienzo de la conversación. La capacidad de controlar la personalidad del asistente garantiza que las respuestas se mantengan dentro de la marca y dentro de los límites apropiados, lo que ayuda a proteger la reputación de su servicio. Compartimos algunas de las mejores prácticas para crear indicaciones efectivas del sistema con Nova Sonic para ayudar a maximizar los resultados. El indicador completo del sistema definido en nuestra solución se puede encontrar en este módulo.
Flujo de trabajo de preprocesamiento
El siguiente diagrama ilustra los procesos fuera de línea que generan información clave a partir de datos del catálogo de títulos, escenas de películas y guiones de películas. Estos conocimientos respaldan los flujos de trabajo de personalización de películas y análisis de escenas en nuestra solución y sirven como conocimiento fundamental para el agente asistente de películas.
Para mostrar la función de personalización de películas, creamos 500 películas de muestra para representar el catálogo. Los metadatos de la película, incluidos el título, el género y la descripción, se convierten en una incrustación, una representación numérica que captura su significado. Esto permite la búsqueda semántica, donde las consultas coinciden en función del significado en lugar de palabras clave exactas. Otros metadatos, incluidos los miembros del elenco y las fechas de lanzamiento, se almacenan como atributos en el mismo índice dentro de un clúster de Amazon OpenSearch Service con Amazon Simple Storage Service (Amazon S3) Vector como capa de almacenamiento. Este índice se utiliza para impulsar el híbrido y buscar el flujo de trabajo de recomendación de películas descrito en la sección anterior.
Para habilitar la función de análisis de escena con alta precisión, dividimos el procesamiento del contenido multimedia en dos pasos. En primer lugar, utilizamos Amazon Bedrock Data Automation para extraer información clave del contenido del vídeo. La información incluye un resumen a nivel de capítulo y los códigos de tiempo, transcripciones, segmentos de audio y más correspondientes. Además, utilizamos la función de reconocimiento de celebridades en Amazon Rekognition para identificar a las celebridades que aparecen en los capítulos. En segundo lugar, utilizamos las incrustaciones generadas a partir de los guiones de películas extraídos a través de Amazon Bedrock Data Automation para la búsqueda de similitudes semánticas. Estas incrustaciones son la base que el agente utiliza para encontrar los momentos semánticamente más similares dentro del guión que coincidan con el resumen de la escena de la película dada. Proporcionamos más detalles sobre esto en la sección posterior.
Flujo de recomendación de películas
La siguiente interacción del usuario demuestra un flujo de trabajo de personalización de contenido con más detalle:
Haciendo referencia al diagrama anterior, cuando un usuario solicita una recomendación de película, Amazon Nova Sonic reconoce la intención del usuario y activa la herramienta adecuada para manejar las solicitudes de recomendación de película. Se activa una función Lambda mediante AgentCore Gateway para procesar la solicitud. La función primero recupera la afinidad del usuario de la tabla de DynamoDB para comprender mejor el perfil del usuario. Esta tabla representa un perfil personalizado de las preferencias, gustos y patrones de visualización de cada usuario. Por ejemplo, si el usuario ha visto la serie de Harry Potter en el pasado, el sistema podría asignar una mayor afinidad hacia los géneros de fantasía y aventuras. Combinando la afinidad del usuario y la consulta del usuario, procesamos la solicitud en múltiples llamadas de modelo de lenguaje grande (LLM) encadenadas en una secuencia. Primero, un LLM clasifica el tipo de búsqueda según la intención de la consulta. La clasificación ayuda a determinar la consulta de búsqueda adecuada a utilizar. Por ejemplo, recomendaciones generales de películas, búsqueda directa de películas, citas de películas o algo que no tenga ninguna relación con las películas. Usamos Amazon Nova Micro para este mensaje debido a su beneficio de precio y rendimiento. El mensaje que extrae la clasificación de intenciones y otros metadatos se pueden encontrar en este ejemplo de código.
A continuación, enviamos la consulta del usuario a otro LLM para reescribirla y proporcionar una consulta de búsqueda más rica y relevante que pueda usarse para la búsqueda semántica en los datos del catálogo de películas. Por ejemplo, la siguiente consulta de usuario:
Estoy buscando algunas películas divertidas, ¿qué me recomiendas?
se reescribirá como:
Películas divertidas y entretenidas que ofrecen humor, emoción o una narración agradable.
A través de nuestras pruebas internas, descubrimos que el uso de Amazon Nova Lite produjo la respuesta estructurada de la manera más rentable. El fragmento completo del mensaje de reescritura de la consulta se encuentra en el siguiente ejemplo de código.
El resultado de la consulta para reescribir y las indicaciones de clasificación de intenciones se utilizan como parámetros para una consulta de búsqueda de Amazon OpenSearch Service. Convertimos la consulta reescrita en un vector de 1024 dimensiones utilizando incrustaciones de Nova para búsqueda semántica. Además, nuestra consulta de búsqueda incorpora un aumento de la actualidad y la popularidad para elevar los programas más nuevos y de mayor rendimiento en las clasificaciones de recomendación. Se puede encontrar un fragmento de consulta de búsqueda de ejemplo en la función _get_titles_from_query_v2 en el siguiente módulo OpenSearch.
Los resultados de la consulta de búsqueda de muestra arrojaron 30 películas relevantes. Finalmente, utilizamos el modelo Amazon Rerank para volver a clasificar las películas recomendadas según los resultados de la búsqueda y la consulta del usuario reescrita para devolver las tres películas más relevantes. Este proceso se repite durante toda la sesión del usuario, y el historial de conversaciones forma parte del contexto de la cadena LLM anterior para ayudar a enriquecer aún más la experiencia del usuario. Aquí hay una captura de pantalla de un ejemplo de una consulta de recomendación de película:
Solicitud de recomendación general
P: "Estoy buscando algunas películas divertidas, ¿qué me recomiendas?"
P: "¿Tienes algo más reciente?"
Búsqueda directa de películas
P: "Estoy buscando una película llamada 'Tears of Steel', ¿tienes esta película?"
Flujo de análisis de escenas de películas
Al igual que el flujo de recomendaciones, aquí describimos un flujo de trabajo de análisis de escenas habilitado a través de los mismos componentes. Imagina que tuviste que tomar un descanso y te perdiste unos minutos de tu programa favorito, este asistente te brindará un resumen. También puede proporcionarle un análisis detallado de una escena, incluidos los actores y lo que sucede en la escena.
Cuando un usuario pausa la película para hacer una pregunta, la aplicación captura los metadatos relevantes, como el código de tiempo actual y el título de la película, y luego almacena esta información en una tabla de Amazon DynamoDB para su uso posterior. Por ejemplo, si el usuario pregunta: "¿Puede decirme qué está pasando en esta escena?", la aplicación consulta el registro de visualización del usuario para localizar el estado más reciente y la película que está viendo. El análisis de la escena se maneja mediante una herramienta activada por Amazon Nova Sonic en función de la comprensión contextual del diálogo del usuario. Procesamos la solicitud de análisis de escena en múltiples llamadas LLM encadenadas en una secuencia. Primero, utilizamos Amazon Nova Micro con un mensaje para clasificar la intención del análisis de la escena según la consulta del usuario. El mensaje utilizado para esta tarea se puede encontrar en la función movieScene_classfier en el módulo asistente de escena de película.
Según la funcionalidad de clasificación de intenciones, activamos el flujo de trabajo adecuado para procesar los detalles de la escena. Para esta sección, centrémonos en los detalles a nivel de escena. Utilizando el registro de visualización del usuario recuperado, extraemos el resumen del capítulo, la transcripción y las celebridades conocidas que coinciden con los códigos de tiempo dados. La información de la película, incluidos los detalles de la escena y los guiones de la película, se procesa mediante Amazon Bedrock Data Automation y se almacena en una colección sin servidor de Amazon OpenSearch para búsqueda semántica y filtros. Opcionalmente, incluimos información del capítulo anterior cuando el registro de visualización del usuario se encuentra al principio de un capítulo para poder proporcionar un mejor contexto que ayude a enriquecer el análisis de la escena. A continuación, utilizamos los detalles de la escena extraídos para encontrar los segmentos semánticamente más similares del guión de la película y utilizamos los detalles del guión para proporcionar una comprensión enriquecida de la escena. Para demostrar este proceso, consideremos una escena extraída entre las 5:15 y las 5:40 de “Tears of Steel” de la siguiente manera:
Según los conocimientos generados por Amazon Bedrock Data Automation, el resumen del capítulo de la escena anterior se muestra a continuación:
En una histórica ciudad europea, un gran robot atraviesa los tejados y causa destrucción. Un hombre con un ojo cibernético observa los movimientos del robot desde un balcón. Se comunica con alguien fuera de la pantalla y le dice "Haz que entre" y "Quedan 2 minutos". Luego insta: “Acelera, amigo”, indicando una operación urgente. Aparece otro hombre con un rifle, posicionado para atacar al robot. La escena muestra una operación militar o táctica en curso, con el robot como principal amenaza. El hombre con ojos cibernéticos monitorea un cronómetro de cuenta regresiva, lo que sugiere que se están preparando para una confrontación con el robot.n[spk_0]: haz que entre. Quedan 2 minutos. 2 minutos. Acelera, amigo.
Utilizando el resumen de la escena anterior, realizamos una búsqueda semántica en el índice de Amazon OpenSearch administrado por Amazon Bedrock Knowledge Bases. La fuente de datos contiene el guión de la película preprocesado con un tamaño de fragmento de 300 tokens junto con una superposición del 10 %. Reclasificamos los documentos recuperados utilizando el modelo de Amazon Rerank para seleccionar el segmento superior que se utilizará como representación final de la descripción de la escena. Aquí hay un segmento de script de muestra derivado del proceso de reclasificación:
Mira a su alrededor y luego ve a Barley en la torre. BARLEY: (Al radio) OK, ya vienen. ¡Quedan dos minutos! 14.INT. IGLESIA/BUNKER. MAÑANA El director escucha a Barley por la radio. CEBADA: (CONT.) (A través de la radio) Dos minutos. DIRECTOR: (A través de la radio al altavoz) ¡Acelera Thom! ¡Vivacissimo! 15. EXT. CALLE. DÍA Se reanuda la recreación de la ruptura de Thom y Celia. Celia ahora es más amenazante de lo que era originalmente, ya no está tan molesta sino intimidante. CELIA: ¿Por qué no admites que estás asustado por mi mano robótica? Aparecen más palabras en el cielo para que Thom diga “Celia, me encanta tu mano robótica”, aunque decide ignorarlas. 6. THOM: Escucha, Celia, yo era joven. Pero esa no es razón para destruir el mundo. Celia continúa mirando amenazadoramente a Thom, abriendo y cerrando su mano robótica. 16.INT. IGLESIA/BUNKER. MAÑANA Director y asistente en el cargo mientras observan cómo se desarrolla la escena. ASISTENTE: ¿Por qué hace esto? DIRECTOR: ¡Ese ya lo probamos! 17. EXT. CALLE. DÍA.'
Finalmente, utilizamos Amazon Nova Micro para resumir la información de la escena anterior. Amazon Nova Sonic transforma la respuesta en voz natural y la transmite al usuario para completar la interacción. Aquí está la narrativa final producida por Amazon Nova Sonic:
En esta escena, Barley cuenta los segundos desde lo alto de una torre, creando una sensación de urgencia. Abajo, en un búnker, el director da órdenes para acelerar la acción. En la calle, Thom y Celia se enfrentan con tensión. Celia tiene una mano robótica amenazante y Thom admite sus errores pasados. El director y su asistente observan cómo se desarrolla la escena, y el director permanece concentrado a pesar de la confusión del asistente.
A continuación se ofrece un recorrido completo de la solución presentada en IBC2025, una feria comercial anual líder para profesionales de los sectores de medios, entretenimiento y tecnología.
Conclusión
En esta publicación, mostramos un agente de IA conversacional que comprende y responde mediante una interacción de voz natural para ayudar a los usuarios a descubrir películas y programas de televisión de forma personalizada, al tiempo que proporciona información en tiempo real durante la visualización. El sistema analiza los patrones de visualización individuales de los usuarios y el historial de visualización para crear perfiles personalizados que generen recomendaciones relevantes. Por ejemplo, un usuario que ve muchas películas de acción puede recibir recomendaciones de películas relacionadas con la acción cuando se le hace una pregunta temática genérica como "películas divertidas". Puedes interactuar con la IA a través de comandos de voz para recibir sugerencias de contenido personalizadas, acceder a información detallada sobre los actores y obtener explicaciones instantáneas sobre escenas específicas de las películas que estás viendo actualmente. La solución muestra la capacidad de Nova Sonic 2.0 para comprender el lenguaje natural, realizar búsquedas en la base de conocimientos semánticos, administrar listas de reproducción y mantener el contexto durante conversaciones de varios turnos. Este enfoque representa un salto significativo desde las recomendaciones implícitas basadas en comentarios hasta la recopilación de preferencias explícita y conversacional. En última instancia, esto ayuda a crear una experiencia de descubrimiento de contenido más atractiva e intuitiva que puede impulsar una mayor participación del usuario y retención del servicio.
Reconocimiento
Esta publicación es producto de un fantástico esfuerzo colaborativo. Muchas gracias a Arturo Velasco, Daryl Cartwright, George Vasels, Juan Andres Caycedo y Vince Palazzo por dedicar su tiempo y experiencia al blog, la demostración y los ejemplos de código. Esto no existiría sin ellos.