OpenAI
Esta página foi traduzida automaticamente. Veja o artigo original em inglês.

Chamada de função na API da OpenAI

O que é chamada de função e como ela funciona na API da OpenAI?

Atualizado: yesterday

Em 11 de março de 2025, lançamos os componentes básicos da nossa nova plataforma de agentes. Para mais detalhes, consulte nossa documentação da API sobre a API Responses, Ferramentas, incluindo Pesquisa na Web, Pesquisa de arquivos e Uso do computador, e nosso SDK de Agentes com Tracing.

A chamada de função permite conectar modelos da OpenAI a ferramentas e sistemas externos. Isso é útil para muitas finalidades, como dar capacidades a assistentes de IA ou criar integrações profundas entre seus aplicativos e LLMs.

Saiba mais em nosso guia para desenvolvedores sobre chamada de função.

Em junho de 2024, lançamos saídas estruturadas. Quando você ativa isso definindo `strict: true` na definição da função, saídas estruturadas garantem que os argumentos gerados pelo modelo para uma chamada de função correspondam exatamente ao JSON Schema fornecido na definição da função.

Em outubro de 2024, lançamos o recurso ‘Generate Anything’, que permite aos desenvolvedores descrever uma função, colá-la diretamente ou colar seu código e gerar um schema de função válido. Saiba mais sobre ‘Generate Anything’ neste artigo da central de ajuda

Como posso usar a chamada de função?

A chamada de função é útil para um grande número de casos de uso, como:

  • Permitir que assistentes busquem dados:

    • um assistente de IA precisa buscar os dados mais recentes do cliente em um sistema interno quando um usuário pergunta “quais são meus pedidos recentes?” antes de poder gerar a resposta para o usuário

  • Permitir que assistentes realizem ações:

    • um assistente de IA precisa agendar reuniões com base nas preferências do usuário e na disponibilidade do calendário.

  • Permitir que assistentes façam cálculos:

    • um assistente tutor de matemática precisa realizar um cálculo matemático.

  • Criar fluxos de trabalho avançados:

    • um pipeline de extração de dados que busca texto bruto, depois o converte em dados estruturados e o salva em um banco de dados.

A chamada de função é compatível com a API Responses, que unifica recursos antes divididos entre a API chat completions e a API Assistants.

Como posso usar o modo JSON?

Quando o modo JSON está ativado, a saída do modelo é garantida como JSON válido, exceto em alguns casos extremos que você deve detectar e tratar adequadamente.

Para solicitar o modo JSON com a API Responses ou a API chat completions, você pode definir response_format como { "type": "json_object" } em modelos compatíveis, mas isso só funciona quando as pré-condições de modelo/mensagem/ferramenta são atendidas (por exemplo, o modelo oferece suporte a json_object, a conversa inclui uma instrução para produzir JSON e quaisquer restrições de ferramenta são compatíveis). Para o modo JSON com response_format: {"type": "json_object"}, pelo menos uma mensagem da solicitação deve conter json de alguma forma, como JSON, json ou Json; caso contrário, a API retorna um erro. Quando a chamada de função é usada em modelos/caminhos compatíveis, restrições de JSON são aplicadas automaticamente aos argumentos da chamada de função; modelos incompatíveis ou combinações de ferramenta/formato de resposta podem ser rejeitados ou podem não usar amostragem restrita por JSON.

Observações importantes:

  • Ao usar o modo JSON, você deve sempre instruir o modelo a produzir JSON por meio de alguma mensagem na conversa, por exemplo, na sua mensagem do sistema. Se você não incluir uma instrução explícita para gerar JSON, o modelo poderá gerar um fluxo interminável de espaços em branco, e a solicitação poderá continuar em execução até atingir o limite de tokens. Para ajudar a garantir que você não se esqueça, o modo JSON rejeita solicitações a menos que as mensagens ou instruções de entrada relevantes contenham a palavra json de alguma forma, sem diferenciar maiúsculas de minúsculas.

  • O modo JSON não garantirá que a saída corresponda a qualquer schema específico, apenas que ela seja válida e possa ser analisada sem erros. Você deve usar saídas estruturadas para garantir que ela corresponda ao seu schema ou, se isso não for possível, usar uma biblioteca de validação e possivelmente novas tentativas para garantir que a saída corresponda ao schema desejado.

  • Seu aplicativo deve detectar e tratar os casos extremos que podem fazer com que a saída do modelo não seja um objeto JSON completo (veja abaixo)

Este artigo foi útil?