Saltar al contenido
latentSource

ReActReel: encontrar una escena o canción a partir de una frase

Un agente de Gemini busca escenas y canciones, muestra sus llamadas a herramientas y devuelve un resultado de YouTube dentro de la aplicación.

·2 min read
AI agentsReActGeminiTool calling
Compartir

Mira la aplicación en acción

ReActReel identifica una película y una canción a partir de frases, sin recibir sus títulos ni los nombres de los artistas. La grabación muestra las herramientas y reproduce la frase de la película desde el segundo 44.

Narración con voz sintética en inglés y diálogo original de la película. Activa el sonido para escuchar la coincidencia.

Abrir video

Construí ReActReel para esas búsquedas que empiezan con un recuerdo incompleto. Te acuerdas de una escena, de un artista o de una frase. El agente tiene que convertir esa descripción en algo que puedas ver.

La aplicación tiene modos separados para películas y música. Muestra las llamadas a herramientas junto al resultado, así puedo revisar cómo pasó de la consulta a una URL de YouTube. Esa traza es lo que me interesa al evaluar un agente: qué herramienta eligió, qué recibió y qué hizo después.

Dos búsquedas para verlo funcionar

La consulta de cine da la frase "You can't handle the truth!" La de música da una línea del estribillo. Ninguna incluye el título, un actor o un artista. El agente identifica A Few Good Men y Get Lucky, de Daft Punk.

Las dos consultas parten de frases recordadas. El modo seleccionado delimita el tema; el agente todavía tiene que identificar la obra y encontrar un video mediante sus herramientas.

La búsqueda de cine usa el modo con marca de tiempo. El agente busca en YouTube, llama a get_timestamp_from_text y pasa los 44 segundos devueltos a process_video. La grabación reproduce la escena de Movieclips desde 0:44. El reproductor avanza durante la frase solicitada, con el tiempo, los subtítulos y el diálogo original capturados. La narración hace una pausa para que se escuche la coincidencia.

La búsqueda de música usa el modo rápido y encuentra el audio oficial de Daft Punk, sin afirmar un segundo exacto para la letra. Un indicador animado muestra cuándo el agente piensa o ejecuta una herramienta. El reproductor del sitio empieza silenciado; activa el sonido para escuchar la narración en inglés y el diálogo de la película. Se elimina una pausa breve entre las búsquedas; las consultas y la reproducción de la frase conservan su velocidad original.

Cómo funciona

La interfaz en Next.js envía la consulta a un backend en FastAPI. El backend ejecuta el agente compartido de reactreel-core y transmite los eventos al navegador. La interfaz muestra cada iteración, la herramienta elegida, sus argumentos y la observación que devuelve.

Las herramientas disponibles cubren búsqueda web, búsqueda en YouTube, localización de marcas de tiempo y construcción de enlaces a clips. El modelo decide la siguiente acción a partir de los resultados recibidos. Al terminar, el navegador inserta la URL final de YouTube.

El modo rápido termina al identificar el video y omite la búsqueda de la marca de tiempo. El flujo más largo puede intentar localizar una frase dentro del video. Encontrar el video correcto no demuestra en qué segundo empieza una línea concreta.

Qué reviso

Generar un título convincente es fácil. Quiero ver una URL devuelta por las herramientas, un resultado que corresponda a la consulta y suficiente información para investigar un error.

La disponibilidad de YouTube y los permisos para insertar videos pueden cambiar. Obtener un enlace y reproducirlo dentro de la página son comprobaciones distintas. La aplicación conserva los resultados de las herramientas para que un reproductor fallido no oculte cómo se hizo la búsqueda.

El artículo sobre el ciclo ReAct explica con más detalle la orquestación que usa este proyecto.