Quando usamos chatbots baseados em modelos de linguagem de grande porte (LLM) como usuários finais, eles geralmente nos retornam uma resposta em linguagem natural não estruturada. Ao construir aplicações de GenAI que vão além de chatbots, pode ser útil solicitar ao LLM uma resposta estruturada em JSON, YAML ou outros formatos, para então analisar e usar essa resposta na aplicação. No entanto, como os LLMs não são determinísticos, eles nem sempre fazem exatamente o que pedimos. A biblioteca Instructor pode ser usada para nos ajudar a solicitar saídas estruturadas de LLMs. Você pode definir a estrutura de saída desejada e configurar tentativas adicionais se o LLM não retornar a estrutura que você solicitou. Como a melhor experiência da usuária ao trabalhar com LLMs muitas vezes envolve o streaming dos resultados em vez de esperar pela resposta completa, o Instructor também cuida de analisar estruturas parciais de um fluxo.