Gerador de memes

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.

  1. 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)
  2. O usuário faz uma pergunta
    Você faz uma pergunta ou dá uma tarefa ao modelo

  3. A Gemma decide
    O modelo descobre se precisa de uma ferramenta para responder à sua pergunta.

  4. O Gemma solicita uma ferramenta
    Se uma ferramenta for necessária, o Gemma vai gerar um código envolvido com ```tool_code```.

  5. A ferramenta faz o trabalho
    A ferramenta (função) extrai as informações do modelo e faz o que precisa fazer.

  6. A ferramenta retorna resultados
    O Gemma espera receber o resultado retornado com o recurso ```tool_output```

  7. 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

Uma imagem engraçada de um gato

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.

Saída final do gerador de memes