Resumen
En este episodio Cris presenta la continuación del tema de agentes: un chatbot propio construido con PydanticAI para gestionar el conocimiento que consume (videos de YouTube, podcasts, libros, texto) y poder consultarlo después con resúmenes y comparaciones. El stack incluye Cursor con Claude 3.5, Python, GitHub, Docker con CUDA, WhisperX, FastAPI, MinIO, Mermaid y la API de OpenAI (GPT-4). Un agente coordinador delega en agentes especializados (descarga de YouTube, transcripción, resumen), que a su vez llaman a herramientas conectadas a APIs. La propiedad emergente clave es que el agente decide qué herramientas usar sin que el flujo esté programado, como cuando comparó dos transcripciones sin que eso se hubiera implementado explícitamente. También se comentan los problemas de versiones con CUDA, PyTorch y NumPy, el prompt engineering iterativo, la evaluación de resultados y el valor de los proyectos personales para el portafolio. El episodio incluye además memes, una actualización sobre la venta de cartas y una charla sobre un crucero de juegos de mesa.
Capítulos
- 00:00IntroBienvenida al episodio 124, continuación del tema de agentes del mes anterior. En esa ocasión el código de la demo no funcionó y ahora sí.
- 00:35Demostración del chatbot y su funcionamientoCris muestra un chatbot para gestionar el conocimiento que consume (YouTube, podcasts, audiolibros, libros) y pedirle resúmenes y conceptos clave. Lo compara con el Rincón del Vago, lista los archivos transcritos y pide el resumen de un video de YouTube de unos 40 minutos.
- 04:02Comparación con otros LLMsFrente a la duda sobre la diferencia con ChatGPT, Cris explica que esta es una versión 0.5 básica y que el valor está en agregar funcionalidades propias. Un objetivo secundario es aprender herramientas como PydanticAI y Docker. Un agente toma acciones y tiene habilidades emergentes: se le dan herramientas y un objetivo, y decide cuáles usar.
- 06:54Frameworks y herramientas utilizadasCris eligió PydanticAI por ser de los creadores de Pydantic (usado en FastAPI), con buena documentación y un GitHub activo. Frente a LangGraph, donde hay que definir el grafo, aquí el agente decide el flujo. Muestra el stack: Cursor con Claude 3.5, Python, Git para hacer rollback, Docker con CUDA, WhisperX, FastAPI y una interfaz de chat lista. El único costo es OpenAI; la transcripción corre gratis en su PC (laptop con 16 GB de RAM). Recomienda conocer al menos dos frameworks por categoría.
- 17:47Importancia de los proyectos personalesUn proyecto así sirve para el portafolio y da control sobre las herramientas y el objetivo. Cris planea una versión 2.0 que genere extractos para shorts a partir de los videos de enCoders. Dice que la mayor parte de lo que sabe de AWS, Linux, servidores y programación vino de proyectos personales. Para quienes buscan su primer trabajo, recomienda construirse experiencia con proyectos.
- 23:28Posibles problemas de versionesExplica la cadena CUDA, cuDNN, cuBLAS, PyTorch y Python, con una tabla de compatibilidades. Cambiar la versión mayor de NumPy (de 1 a 2) rompió librerías compiladas con NumPy 1. Cris pasó unas 4 horas depurando el fin de semana, y Docker y Conda ayudaron a fijar versiones. Un comentario del chat recomienda contenedores con soporte de GPU de NVIDIA.
- 26:46Más del stack tecnológicoMenciona Mermaid para diagramas de flujo en Markdown (generados con Cursor y Claude) y MinIO como almacenamiento de objetos tipo S3 en su propio servidor. PydanticAI tenía unas 53k estrellas en GitHub y actividad reciente.
- 27:48Demo y flujo del productoCada agente especializado usa herramientas distintas: uno baja videos de YouTube al storage, otro transcribe con una API en FastAPI y WhisperX, otro resume con la API de OpenAI y otro responde consultas generales. Planea una base de datos y una extensión de navegador para enviar URLs. Se responde por qué WhisperX en vez de Whisper o whisper.cpp: la diarización (identificar quién habla) se activa con un argumento.
- 32:02MemesSe muestran memes sobre datos, información, conocimiento, insight y sabiduría, sobre leer la documentación y sobre librerías de IA que ocultan el prompt. Se comenta que los LLM suelen acertar pero no se debe confiar al 100%. También bromean sobre la diferencia entre estudiar ciencia de datos y trabajar con datos reales.
- 38:01Update proyecto de RO de MatiMati cuenta que vendió dos cartas con su proyecto, que funciona mejor de lo que pensaba. La notificación es automática y el resto del proceso es manual.
- 38:32Experiencia en eventos de juegos de mesaRelato de un crucero de juegos de mesa con una biblioteca de juegos, participantes con credenciales y meeples gigantes con banderas para buscar jugadores. Se menciona que lo organizan canales como Dice Tower y que participan jugadores de varios países. El evento tiene mucha gente de unos 40 años en promedio, y se encontraron allí con una persona que habían entrevistado en el podcast.
- 44:19Comparación de transcripciones y comportamiento emergenteCris le pidió comparar dos transcripciones y el agente lo hizo llamando a las herramientas necesarias, sin estar programado para eso. Lo extrapola a empresas con varios sistemas conectados.
- 45:41Discusión sobre algunas aplicaciones en telecomunicaciones y asistentes recomendadoresMati propone un asistente recomendador, por ejemplo para elegir celular según presupuesto y reviews, conectado a la base de datos de la empresa. Cris responde que los agentes encajan porque razonan y acceden a herramientas e inventario. Se debate la ventaja de que la empresa recomiende solo lo que tiene en stock.
- 52:25Código del agente y prompt engineeringCris muestra el agente coordinador con su prompt, reglas y herramientas, y cada herramienta llama a otro agente. Dice que el prompt engineering es crítico pero iterativo y de prueba y error, con mayúsculas y énfasis como "doble check". Anuncia un curso de prompt engineering en un mes y el Patreon. Explica que revisa la lista de videos y transcripciones antes de bajar o transcribir, y que usa yt-dlp para sacar el nombre del video. Comenta una librería que también trae transcripciones de YouTube.
- 01:05:37Repaso del flujo y APIsEl coordinador delega en subagentes que llaman a APIs normales (listar transcripciones, transcribir con WhisperX, bajar de YouTube, obtener nombre, traer contenido). Cuantas más herramientas, más posibilidades, aunque con muchas APIs el agente podría marearse o gastar muchos tokens. Responde sobre conectar Obsidian y sobre la dificultad de que las empresas den acceso a sus sistemas.
- 01:11:38LogsRevisa los logs del sistema, que muestran la consulta, las llamadas a los endpoints y las solicitudes a OpenAI. En la comparación el agente de resumen obtuvo cada transcripción por separado y repitió el doble check. Se sugiere un agente que resuma los logs y Cris resume un log con Cursor.
- 01:21:39CierreSobre cómo saber si el resultado es correcto, Cris dice que depende de la criticidad de la decisión: revisión por un experto, un agente crítico, fine-tuning, y que siempre hace falta alguna revisión humana. Lo principal es el concepto de agente y su propiedad emergente de decidir qué herramientas usar. Prevé agentes especializados con coordinadores encima. Despedida y un debate sobre procesadores Intel y AMD.