Compartilhar via


Noções básicas sobre a chamada de função do OpenAI

A chamada de função é um recurso de modelo do OpenAI que permite descrever funções e seus argumentos em prompts usando JSON. Em vez de invocar a função em si, o modelo retorna uma saída JSON que descreve quais funções devem ser chamadas e os argumentos a serem usados.

A chamada de função simplifica como você conecta ferramentas externas ao seu modelo de IA. Primeiro, especifique as funções de cada ferramenta para o modelo. Em seguida, o modelo decide quais funções devem ser chamadas, com base na pergunta de prompt. O modelo usa os resultados da chamada de função para criar uma resposta mais precisa e consistente.

Os possíveis casos de uso para chamadas de função incluem:

  • Responder perguntas chamando APIs externas, por exemplo, enviando emails ou obtendo a previsão do tempo.
  • Responder perguntas com informações de um armazenamento de dados interno, por exemplo, agregando dados de vendas para responder: "Quais são meus produtos mais vendidos?".
  • Criar dados estruturados a partir de informações de texto, por exemplo, criando um objeto de informações do usuário com detalhes do histórico de chat.

Chamar funções com o OpenAI

As etapas gerais para chamar funções com um modelo do OpenAI são:

  1. Envie a pergunta do usuário como uma solicitação com funções definidas nos parâmetros tools.
  2. O modelo decide quais funções, se houver, devem ser chamadas. A saída contém um objeto JSON que lista as chamadas de função e seus argumentos.

    Observação

    O modelo pode alucinar argumentos adicionais.

  3. Analise a saída e chame as funções solicitadas com seus argumentos especificados.
  4. Envie outra solicitação com os resultados da função incluídos como uma nova mensagem.
  5. O modelo responde com mais solicitações de chamada de função ou uma resposta à pergunta do usuário.
    • Continue invocando as chamadas de função solicitadas até que o modelo responda com uma resposta.

Você pode forçar o modelo a solicitar uma função específica definindo o parâmetro tool_choice como o nome da função. Você também pode forçar o modelo a responder com uma mensagem para o usuário definindo o parâmetro tool_choice como "none".

Chamar funções paralelamente

Alguns modelos são compatíveis com a chamada de função paralela, o que permite que o modelo solicite várias chamadas de função em uma saída. Os resultados de cada chamada de função são incluídos juntos em uma resposta ao modelo. A chamada de função paralela reduz o número de solicitações de API e o tempo necessários para gerar uma resposta. Cada resultado da função é incluído como uma nova mensagem na conversa com um tool_call_id correspondendo ao id da solicitação de chamada de função.

Modelos com suporte

Nem todos os modelos do OpenAI são treinados para dar suporte à chamada de função. Para obter uma lista de modelos compatíveis com a chamada de função ou a chamada de função paralela, confira OpenAI – Modelos compatíveis.

Chamada de função com o SDK do Kernel Semântico

O SDK do Kernel Semântico dá suporte à descrição de quais funções estão disponíveis para sua IA usando o decorador KernelFunction.

O Kernel cria o parâmetro tools de uma solicitação com base nos decoradores, orquestra as chamadas de função solicitadas ao seu código e retorna os resultados de volta ao modelo.

Contagens de tokens

As descrições de função são incluídas na mensagem do sistema da solicitação para um modelo. Essas descrições de função são contabilizadas no limite de token do modelo e estão incluídas no custo da solicitação.

Se a solicitação exceder o limite de token do modelo, tente as seguintes modificações:

  • Reduza o número de funções.
  • Reduza as descrições de função e o argumento no JSON.