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: 17 days ago

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 coisas, como capacitar assistentes de AI com recursos ou criar integrações profundas entre suas aplicações e LLMs.

Saiba mais em nosso guia do desenvolvedor sobre chamada de função.

Em junho de 2024, lançamos as saídas estruturadas. Quando você as ativa definindo strict: true na definição da função, as 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 “Gerar qualquer coisa”, que permite que desenvolvedores descrevam uma função, colem-na diretamente ou colem seu código e gerem um schema de função válido. Saiba mais sobre “Gerar qualquer coisa” 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:

  • Permitir que assistentes realizem ações:

  • Permitir que assistentes realizem cálculos:

  • 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 que antes eram 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 tem garantia de ser JSON válido, exceto em alguns casos extremos que você deve detectar e tratar adequadamente.

Para solicitar o modo JSON com a API Chat Completions, defina response_format como { "type": "json_object" } em modelos compatíveis. Com a API Responses, defina text.format como { "type": "json_object" }, por exemplo text: { "format": { "type": "json_object" } }, quando aplicável. Em qualquer uma das APIs, o modo JSON só funciona quando os pré-requisitos de modelo/mensagem/ferramenta são atendidos (por exemplo, o modelo é compatível com json_object, a conversa inclui instruções para produzir JSON e quaisquer restrições de ferramenta são compatíveis). Pelo menos uma mensagem de solicitação ou mensagem de entrada no contexto de entrada efetivo deve conter json em uma forma sem diferenciação entre maiúsculas e minúsculas, como JSON, json ou Json; caso contrário, a API retorna um erro. Em Responses, o campo de instruções de nível superior sozinho não satisfaz essa validação. Quando a chamada de função é usada em modelos/caminhos compatíveis, as restrições de JSON são aplicadas automaticamente aos argumentos de chamada de função; modelos incompatíveis ou combinações de ferramenta/formato de resposta podem ser rejeitados ou não usar amostragem restrita a 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, pela sua mensagem de 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 esqueça, o modo JSON rejeita solicitações a menos que as mensagens de entrada ou instruções relevantes contenham a palavra json de alguma forma, sem diferenciar maiúsculas de minúsculas.

  • O modo JSON não garante que a saída corresponda a qualquer schema específico, apenas que ela seja válida e 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.

  • Sua aplicação deve detectar e tratar os casos extremos que podem resultar em a saída do modelo não ser um objeto JSON completo (veja abaixo)

Este artigo foi útil?