Você conhece o recurso Function Calling do Azure OpenAI?
Seguindo a trilha de artigos sobre Inteligência Artificial, hoje vamos abordar o uso desta ferramenta na construção de aplicações — onde a IA decide e a aplicação executa.
Como funciona o Function Calling na prática
O recurso facilita e otimiza a forma como as aplicações interagem com dados que não fazem parte do contexto dos modelos, a partir da definição de funções dedicadas. Essas funções podem, por exemplo, ser separadas por tipo de dado, operação, sistema ou níveis mais granulares.
O conceito principal estabelece que a aplicação deve criar as funções previamente, durante o desenvolvimento das chamadas às APIs dos modelos. Na definição, a aplicação configura o tipo da ferramenta, o nome, a descrição e os parâmetros esperados. O modelo considera essas informações em seu contexto e as utiliza para distinguir e escolher a função mais eficiente para cada solicitação.
Fluxo de execução com tool_calls
Na prática, a aplicação envia as configurações definidas junto com as instruções (prompts) e a solicitação do usuário. A resposta do modelo para a requisição inicial pode variar conforme a demanda. Quando identifica a necessidade de dados ou ações adicionais para atender à requisição e, além disso, existe uma ferramenta adequada nas Tools, o modelo retorna uma resposta denominada ‘tool_calls’.
Esse tipo de resposta contém a função solicitada pelo modelo e os parâmetros necessários. Assim como nas demais respostas, a aplicação deve gerenciar o fluxo e os dados fornecidos. Quando identifica uma ‘tool_calls’, a aplicação deve acionar a função, tratar exceções, capturar o resultado e devolver essas informações na próxima requisição. Dessa forma, o modelo consegue determinar a próxima ação desejada. Nesse modo de atuação, a aplicação sempre executa as funções, enquanto a IA apenas solicita a execução.
A partir dessas operações, o contexto convencional — antes composto por prompts, solicitações dos usuários e respostas do modelo — passa a incluir também a requisição de função com seu respectivo resultado.
No fluxo da aplicação, podem ser necessárias uma ou mais requisições para a mesma função ou para outras. Isso ocorre quando o modelo identifica que a solicitação foi atendida parcialmente. Dessa forma, a aplicação deve avaliar continuamente os resultados e retornar ao usuário somente quando atingir a condição de parada (stop).
Na plataforma Azure OpenAI, existem outras Tools além da Function Calling, como a Web Search e a Code Interpreter. Essas ferramentas permitem que os modelos consultem informações na Web e processem códigos em ambientes isolados, respectivamente. Assim como na Function Calling, a aplicação anexa essas ferramentas à requisição inicial da API, permitindo que o modelo compreenda os recursos disponíveis antes de iniciar o tratamento das requisições.
Exemplo prático em Python
Trazendo os conceitos para a prática, exemplificamos, com o código Python abaixo, a definição de uma função responsável por retornar informações sobre produtos a partir do seu código. Seguindo esse exemplo, é possível incorporar a função em uma aplicação que distribui dinamicamente os dados relacionados aos produtos, de acordo com as solicitações.

Benefícios e aplicações
O uso das ferramentas aplicadas às soluções do Azure OpenAI gera novas possibilidades. Também aumenta a quantidade de operações que um único modelo pode atender. No caso da Function Calling, o próprio desenvolvedor delimita quais serão as funções e comportamentos de cada operação, o que flexibiliza as possibilidades. Nos casos em que o objetivo da função é incluir dados externos no contexto, o recurso permite anexar apenas os dados relevantes, principalmente no momento ideal.
Se você gostaria de compreender os desafios envolvidos com a consulta de dados organizacionais com LLMs, recomendamos a leitura do nosso último artigo: https://cdbdatasolutions.com.br/explorando-dados-com-ia-generativa/.
Esperamos que este material tenha ajudado a entender um pouco mais sobre o uso de funções na requisição de modelos do Azure OpenAI — onde a IA decide e a aplicação executa.
Até a próxima!
Por Luciano Gambato