Ao usar um modelo de IA generativa, como o Gemma, você pode operar interfaces de programação para concluir tarefas ou responder perguntas. Instruir um modelo definindo uma interface de programação e, em seguida, fazer uma solicitação que usa essa interface é chamado de chamada de função.
O Gemma não gera um token específico para a ferramenta. Seu framework precisa detectar uma chamada de ferramenta verificando se a estrutura da saída corresponde à especificação de saída da função solicitada.
É possível usar a chamada de função para vários aplicativos:
- Crie uma interface de linguagem natural para uma API de programação para permitir que pessoas que não são programadores operem uma interface programática sem precisar de programação.
- Gerar chamadas de programação como parte de um fluxo de trabalho de agente de IA
A chamada de função tem suporte no Gemma 3, mas a técnica de chamada de função pode ser usada com versões anteriores do Gemma. Este guia fornece instruções sobre como criar comandos do Gemma que usam chamadas de função. Recomendamos o Gemma3 27B para melhor desempenho e o Gemma3 12B para desempenho e latência equilibrados.
Chamar funções de programação
É possível usar a chamada de função com Gemma construindo uma instrução que forneça instruções que especifiquem o formato de saída e definam as funções disponíveis.
Quando o comando do usuário é incluído, o modelo gera uma chamada de função, que é uma string que corresponde ao formato de saída especificado. Isso sinaliza uma solicitação para ser analisada pelo modelo do modelo para chamar as funções definidas.
O exemplo de solicitação a seguir mostra um bloco de definição de função, junto com uma sintaxe de chamada de função e uma saída de chamada de função do modelo. O exemplo de comando a seguir é destinado a ser usado com uma interface de programação para um catálogo de produtos:
You have access to functions. If you decide to invoke any of the function(s), you MUST put it in the format of [func_name1(params_name1=params_value1, params_name2=params_value2...), func_name2(params)] You SHOULD NOT include any other text in the response if you call a function [ { "name": "get_product_name_by_PID", "description": "Finds the name of a product by its Product ID", "parameters": { "type": "object", "properties": { "PID": { "type": "string" } }, "required": [ "PID" ] } } ] While browsing the product catalog, I came across a product that piqued my interest. The product ID is 807ZPKBL9V. Can you help me find the name of this product?
Essa solicitação deve gerar a seguinte resposta:
[get_product_name_by_PID(PID="807ZPKBL9V")]
Este exemplo usa uma saída de chamada de função no estilo Python. Como alternativa, você pode especificar um formato de saída de estilo JSON, conforme mostrado no exemplo abaixo:
You have access to functions. If you decide to invoke any of the function(s), you MUST put it in the format of {"name": function name, "parameters": dictionary of argument name and its value} You SHOULD NOT include any other text in the response if you call a function [ { "name": "get_product_name_by_PID", "description": "Finds the name of a product by its Product ID", "parameters": { "type": "object", "properties": { "PID": { "type": "string" } }, "required": [ "PID" ] } } ] While browsing the product catalog, I came across a product that piqued my interest. The product ID is 807ZPKBL9V. Can you help me find the name of this product?
Essa solicitação deve gerar a seguinte resposta:
{"name": "get_product_name_by_PID", "parameters": {"PID": "807ZPKBL9V"}}
Componentes do comando de chamada de função
Ao usar a chamada de função com modelos Gemma, o comando do modelo precisa seguir esta ordem e estrutura específica:
- Configuração de chamada de função
- Definições da função
As seções a seguir fornecem mais detalhes sobre cada um desses componentes de solicitação.
Configuração de chamada de função
A seção configuração do comando de chamada de função define o comportamento esperado
geral do modelo. É possível adicionar outras instruções gerais para o comportamento do modelo nesta seção, como especificar que a saída precisa ser mostrada usando uma função print
ou console.log
. Use chaves simples
no estilo Markdown (func_name
) para indicar a sintaxe do código.
You have access to functions. If you decide to invoke any of the function(s), you MUST put it in the format of {"name": function name, "parameters": dictionary of argument name and its value} You SHOULD NOT include any other text in the response if you call a function
Essas instruções precisam ser o mais claras e breves possível. Priorize as instruções mais importantes e tenha cuidado ao fornecer muitas instruções gerais. Os modelos Gemma podem ignorar instruções que são muito detalhadas ou não são claramente expressas, principalmente quando você está usando versões de modelo com uma contagem de parâmetros menor.
Definição de função
A seção definition do comando fornece o nome da função, os parâmetros e a saída, incluindo uma descrição para cada um. É possível declarar funções no formato mostrado. É possível definir uma ou várias funções no bloco de declaração de função.
[ { "name": "get_product_name_by_PID", "description": "Finds the name of a product by its Product ID", "parameters": { "type": "object", "properties": { "PID": { "type": "string" } }, "required": [ "PID" ] } }, { "name": "get_product_price_by_PID", "description": "Finds the price of a product by its Product ID", "parameters": { "type": "object", "properties": { "PID": { "type": "string" } }, "required": [ "PID" ] } } ]
Próximas etapas
Confira maneiras de implantar e executar modelos do Gemma: