Contenido del curso
Fundamentos de la API de OpenAI
Control de Respuestas
Desarrollo de 'PlatziVision'
Fine-Tuning
OpenAI Batch
OpenAI Assistants
Proyecto Final y Cierre del Curso
Qué son los threads en OpenAI Assistants
Resumen
OpenAI Assistants es una interfaz en beta que permite interactuar con modelos GPT de forma más robusta que la API de chat completions. Si ya trabajas con la API de OpenAI y quieres saber cuándo conviene migrar a Assistants, aquí encuentras las diferencias clave, sus herramientas extra y un caso práctico con Code Interpreter para resolver cálculos matemáticos sin errores.
¿En qué se diferencia OpenAI Assistants de Chat Completions?
Ambas interfaces comparten los roles de user y assistant, pero Assistants amplía lo que puedes hacer dentro de la propia plataforma de OpenAI [2:00].
Las tres diferencias que importan en la práctica son:
- Acceso a más herramientas que solo functions: además de funciones, soporta Code Interpreter (ejecución de Python en la plataforma) y File Search (consulta de archivos cargados al asistente).
- Llamadas a herramientas en paralelo: mientras chat completions invoca múltiples tools de forma secuencial, Assistants puede ejecutarlas al mismo tiempo.
- Manejo nativo de la conversación a través de threads: ya no tienes que guardar tú el historial en frontend o base de datos.
¿Cuál es la desventaja de OpenAI Assistants? Sigue en beta y la mayoría de desarrolladores prefiere chat completions porque ofrece más control sobre el flujo y el estado de la conversación.
¿Cómo funcionan los threads y los runs en Assistants?
En chat completions tú eres responsable de almacenar cada "Hola" y cada "¿en qué puedo ayudarte?" para mantener el contexto. En proyectos como Blaxibition, esa memoria vivía en la interfaz; en producción suele vivir en backend y base de datos [3:30].
Con Assistants el flujo cambia. Creas un thread, le agregas el mensaje del usuario y obtienes un identificador único. Con ese ID puedes seguir añadiendo mensajes al mismo hilo y disparar un run para que el asistente procese y responda.
¿Qué es un run dentro de un thread?
Un run es la ejecución del hilo. Puede tardar un par de segundos, pero al completarse devuelve la respuesta del asistente con todo el contexto previo intacto.
¿Qué es un thread en OpenAI Assistants? Es un hilo de conversación persistente, identificado por un ID, donde se acumulan los mensajes del usuario y del asistente sin que tú gestiones el historial manualmente.
¿Por qué usar Code Interpreter para cálculos matemáticos?
Los modelos GPT no calculan, predicen el siguiente token. Por eso, si le pides a ChatGPT una suma larga y le prohíbes usar herramientas de análisis, es muy probable que falle.
En la prueba con GPT 4o sobre una suma que empezaba en 16,984, el modelo respondió con un resultado terminado en 8607, cuando el cálculo correcto terminaba en 4007 según la calculadora de Google [5:30]. El error es esperable: el modelo solo sigue patrones de lenguaje, no opera aritmética con precisión.
La solución es delegar el cálculo a una herramienta confiable. Tienes dos caminos:
- Definir una function matemática que reciba la operación y devuelva el resultado.
- Usar Code Interpreter, que ejecuta Python directamente y soporta sumas, restas y multiplicaciones de forma nativa.
Cuando el caso de uso exige resultados exactos, sumar una capa de validación externa al modelo es la práctica recomendada.
¿Cómo crear un Math Assistant con Code Interpreter?
Desde el dashboard de OpenAI, en la sección Assistants, puedes crear uno nuevo en pocos pasos [7:30].
La configuración mínima para un asistente que resuelve cálculos sería:
- Nombre: Math Assistant.
- Instrucciones: "Debe resolver ecuaciones o cálculos utilizando Python en Code Interpreter".
- Modelo: GPT 4o (también puedes seleccionar un modelo fine-tuned si lo necesitas).
- Tool activa: Code Interpreter. File Search queda fuera porque aquí no necesitamos cargar documentos de conocimiento.
Al darle Create, OpenAI genera un ID de asistente. Ese identificador es la pieza con la que harás requests, crearás threads y dispararás runs desde tu código.
En la siguiente clase tomaremos ese ID, agregaremos un hilo con la pregunta del usuario sobre un cálculo y veremos cómo el asistente usa Code Interpreter para devolver el resultado correcto. ¿Tú en qué caso de tu producto cambiarías chat completions por Assistants? Cuéntalo en los comentarios.