Cuando usamos bots de conversación basados en modelos de lenguaje de gran tamaño (LLM, por sus siglas en inglés) como usuarios finales, generalmente devuelven una respuesta no estructurada en lenguaje natural. Cuando construimos aplicaciones con IA generativa que son algo más que bots de conversación, puede ser útil que el bot devuelva una respuesta estructurada en JSON, YAML u otros formatos para después procesar esta respuesta y utilizarla en la aplicación. Sin embargo, ya que los LLM no son deterministas, puede que no siempre hagan lo que les pedimos. Instructor es una biblioteca que nos ayuda a solicitar salida estructurada a LLMs. Se puede definir la estructura de salida deseada y configurar reintentos si el modelo no devuelve una respuesta en el formato solicitado. Además, ya que la experiencia de usuario óptima con LLMs suele ser transmitir los resultados según se generan en lugar de esperar a tener la respuesta completa, Instructor también se encarga de procesar estructuras parciales a partir de un flujo de datos.