Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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:
- Envie a pergunta do usuário como uma solicitação com funções definidas nos parâmetros
tools
. - 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.
- Analise a saída e chame as funções solicitadas com seus argumentos especificados.
- Envie outra solicitação com os resultados da função incluídos como uma nova mensagem.
- 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.