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 ferramenta é uma funcionalidade de modelo de IA que permite descrever as ferramentas disponíveis para um modelo de IA para que o modelo possa solicitar que seu aplicativo as invoque. As ferramentas podem ser métodos .NET, chamadas para APIs externas, interações com servidores MCP (Model Context Protocol) ou qualquer outra operação executável. Em vez de executar diretamente essas ferramentas, o modelo retorna uma saída estruturada que descreve quais ferramentas chamar e com quais argumentos. Seu aplicativo invoca essas ferramentas e envia os resultados de volta para o modelo, permitindo que ele crie uma resposta mais precisa e fundamentada.
Microsoft.Extensions.AI (MEAI) fornece abstrações independentes de provedor para chamadas de ferramenta que funcionam em serviços de IA, incluindo Azure OpenAI, OpenAI, Ollama e outros. Você escreve sua lógica de chamada de ferramenta uma vez e ela funciona independentemente de qual modelo ou provedor subjacente você usa.
Por que usar invocação de ferramenta
A chamada de ferramenta simplifica a conexão de ferramentas externas a modelos de IA. Você descreve cada ferramenta para o modelo como parte da conversa. Em seguida, o modelo decide quais ferramentas invocar com base na pergunta do usuário. Depois que seu aplicativo invoca as ferramentas solicitadas e retorna os resultados, o modelo usa esses resultados para construir uma resposta mais completa e precisa.
Casos de uso comuns para chamadas de ferramenta incluem:
- Respondendo a perguntas chamando APIs externas. Por exemplo, verificar a previsão do tempo ou enviar email.
- Recuperando informações de armazenamentos de dados internos. Por exemplo, agregar dados de vendas para responder: "Quais são meus produtos mais vendidos?"
- Produzindo dados estruturados de texto não estruturado. Por exemplo, construir um perfil de usuário a partir do histórico de chat.
Chamar funções de IA no MEAI
O fluxo geral para chamar as funções de IA com IChatClient é:
Defina métodos .NET como funções e configure-os em uma ChatOptions instância.
Envie a mensagem do usuário para o modelo. O modelo decide quais funções, se houver, devem ser chamadas. Ele retorna uma resposta estruturada que lista as chamadas de função e seus argumentos.
Observação
Os modelos podem alucinar argumentos que não foram descritos em suas definições de função.
Analise a resposta do modelo e invoque as funções solicitadas com os argumentos especificados.
Envie outra solicitação que inclua os resultados da função como novas mensagens no histórico de conversas.
O modelo responde com mais solicitações de chamada de função ou uma resposta final à pergunta do usuário. Continue invocando funções solicitadas até que o modelo forneça uma resposta final.
O FunctionInvokingChatClient MEAI manipula automaticamente as etapas 3 a 5, portanto, você não precisa gerenciar o loop de invocação por conta própria.
Tipos de chave
O MEAI fornece os seguintes tipos para dar suporte à chamada de função:
- AIFunction: representa uma função que pode ser descrita para um modelo de IA e invocada. Essa é a abstração principal de uma função no MEAI.
-
AIFunctionFactory: fornece métodos de criação para gerar instâncias de
AIFunctiona partir de métodos .NET. UseAIFunctionFactorypara encapsular métodos existentes como funções sem escrever a descrição clichê ou o código de análise de argumentos. -
FunctionInvokingChatClient: Envolve qualquer
IChatCliente adiciona recursos automáticos de invocação de função. Quando o modelo solicita uma chamada de função,FunctionInvokingChatClientinvoca o correspondenteAIFunction, coleta o resultado e continua a conversa, tudo de forma transparente.
Chamada de função paralela
Alguns modelos dão suporte à chamada de função paralela, em que o modelo solicita várias invocações de função em uma única resposta. Seu aplicativo invoca cada função e retorna todos os resultados juntos em uma mensagem de acompanhamento. A chamada de função paralela reduz o número de viagens de ida e volta para o modelo, o que reduz a latência e o uso da API.
FunctionInvokingChatClient dá suporte à chamada de função paralela automaticamente.
Suporte entre provedores
Um dos principais benefícios do uso do MEAI para a chamada de função é a independência do provedor. Os AIFunction, AIFunctionFactory e FunctionInvokingChatClient tipos funcionam com qualquer implementação IChatClient, incluindo:
- OpenAI do Azure
- OpenAI
- Ollama
- Qualquer outro provedor que implemente
IChatClient
Como o suporte à chamada de função varia entre modelos e provedores, verifique a documentação do provedor para confirmar se um modelo específico dá suporte à chamada de função ou à chamada de função paralela.
Considerações sobre token
As descrições da ferramenta são incluídas na solicitação enviada ao modelo e contam em relação ao limite de token do modelo. Isso significa que as definições de ferramenta contribuem para o consumo de token e o custo da solicitação.
Se sua solicitação se aproximar do limite de token do modelo, considere estes ajustes:
- Reduza o número de ferramentas registradas para a conversa.
- Reduza os nomes e descrições do método usados para gerar definições de ferramenta.
- Limite o registro da ferramenta apenas para as ferramentas relevantes para um determinado contexto de conversa.