Como usar respostas estruturadas
Para usar adequadamente “response_format”, você pode definir seu schema com várias “properties”, representando categorias de saídas, cada uma com tipos de dados configurados individualmente. Esses objetos podem ser aninhados para criar estruturas mais avançadas de saídas. Aqui está um exemplo de uma chamada de API usando response_format para explicar o processo passo a passo de resolver uma equação matemática. Você pode ver que as properties foram configuradas para exigir tanto “steps” quanto “final_answer” na resposta. No aninhamento, a categoria steps consiste em “explanation” e “output”, cada um como strings.Detalhes importantes
Aqui estão alguns requisitos importantes a serem lembrados ao usar saídas estruturadas via response_format:- Requisições iniciais usando response_format podem demorar mais para gerar uma resposta. Requisições subsequentes não terão a mesma latência da requisição inicial.
-
Para consultas maiores, o modelo pode falhar em completar se
max_tokensou o timeout do modelo forem atingidos, ou se algum limite de taxa for violado - Formato de schema incorreto resultará em erros na conclusão, geralmente por timeout
- Embora response_format garanta que o modelo produzirá saída de uma forma específica, ele não garante que o modelo forneceu a informação correta dentro dela. O conteúdo é guiado pelo prompt e pelo desempenho do modelo.
- Saídas estruturadas via response_format não são compatíveis com chamadas de função paralelas
-
Importante: Todos os campos ou parâmetros devem incluir uma tag
required. Para tornar um campo opcional, você precisa adicionar uma opçãonulldentro dotypedo campo, assim:"type": ["string", "null"] -
É possível tornar campos opcionais dando uma opção
nulldentro do campo required para permitir uma resposta vazia. -
Importante:
additionalPropertiesdeve ser definido como false para que response_format funcione corretamente -
Importante:
strictdeve ser definido como true para que response_format funcione corretamente