Este guia oferece uma abordagem prática para implementar um aplicativo usando chamadas de função com o Gemma. Essa técnica pode ser aplicada a várias versões do modelo Gemma com uma engenharia de comando cuidadosa. Confira mais informações em Além do chatbot: IA ativa com o Gemma.
Explicação das chamadas de função
A estrutura comum para chamada de função envolve alguns componentes principais, projetados para permitir que o Gemma interaja com ferramentas ou APIs externas.
Descrever as ferramentas
Você informa ao modelo as "ferramentas" (funções) que ele pode usar. Isso inclui:- O que a ferramenta faz (descrição)
- Quais informações a ferramenta precisa (parâmetros)
O usuário faz uma pergunta
Você faz uma pergunta ou dá uma tarefa ao modeloA Gemma decide
O modelo descobre se precisa de uma ferramenta para responder à sua pergunta.O Gemma solicita uma ferramenta
Se uma ferramenta for necessária, o Gemma vai gerar um código envolvido com ```tool_code```.A ferramenta faz o trabalho
A ferramenta (função) extrai as informações do modelo e faz o que precisa fazer.A ferramenta retorna resultados
O Gemma espera receber o resultado retornado com o recurso ```tool_output```Gemma dá a resposta final
O modelo usa os resultados da ferramenta para criar uma resposta completa e precisa para você.
Dicas úteis
- Esquema JSON: o uso do esquema JSON para definições de parâmetros, embora não obrigatório, oferece as vantagens de estrutura consistente e validação automatizada.
- Compreensão clara: a qualidade da descrição da função é fundamental para que o modelo identifique corretamente quando usá-la.
- Tratamento de erros: um tratamento de erros robusto é essencial para gerenciar casos em que a chamada de função falha ou retorna resultados inesperados.
- Processo iterativo: às vezes, há várias rodadas de conversa entre o modelo e as chamadas de função.
Exemplos de comandos e saídas
Encontre o código desse aplicativo no repositório de código do Gemma Cookbook (link em inglês).
Etapa 1 e 2: descrever a ferramenta e dar uma tarefa
Entrada: uma imagem engraçada de um gato
Entrada de texto:
If you decide to invoke any of the function(s), it should be wrapped with ```tool_code```.
You have access to the following tools.
* `generate_meme(image, top_text, middle_text, bottom_text)`: Generate a meme with the given parameters
Make a funny meme with this. "meme.jpg"
Etapa 3: Gemma decide e solicita uma ferramenta
Essa solicitação produziria a seguinte resposta:
Okay, here's a funny meme based on the image of the surprised cat: ```tool_code generate_meme(image="meme.jpg", top_text="Me when I hear a creak", middle_text="Is it safe?", bottom_text="Probably not.") ```
Etapa 4: a ferramenta faz o trabalho
Você vai processar a saída do modelo localizando os blocos de código, analisando os argumentos da função e executando as funções.