Générateur de mèmes

Ce guide propose une approche pratique pour implémenter une application à l'aide de l'appel de fonction avec Gemma. Cette technique peut être appliquée à différentes versions du modèle Gemma grâce à une ingénierie des requêtes minutieuse. Pour en savoir plus, consultez Au-delà du chatbot: l'IA agentique avec Gemma.

Explication des appels de fonction

La structure commune des appels de fonction implique quelques composants clés, conçus pour permettre à Gemma d'interagir avec des outils ou des API externes.

  1. Décrire les outils
    Vous indiquez au modèle les "outils" (fonctions) qu'il peut utiliser. Par exemple :

    • Fonctionnement de l'outil (description)
    • Informations dont l'outil a besoin (paramètres)
  2. L'utilisateur pose une question
    Vous posez une question au modèle ou lui confiez une tâche

  3. Gemma décide
    Le modèle détermine s'il a besoin d'un outil pour répondre à votre question.

  4. Gemma demande un outil
    Si un outil est nécessaire, Gemma génère un code encapsulé avec ```tool_code```

  5. L'outil fait son travail
    L'outil (fonction) récupère les informations du modèle et fait ce qu'il est censé faire.

  6. L'outil renvoie des résultats
    Gemma s'attend à ce que son résultat soit encapsulé avec ```tool_output```

  7. Gemma fournit une réponse finale
    Le modèle utilise les résultats de l'outil pour vous fournir une réponse complète et précise.

Conseils utiles

  • Schéma JSON: bien que non obligatoire, l'utilisation du schéma JSON pour les définitions de paramètres offre les avantages d'une structure cohérente et d'une validation automatisée.
  • Clarté: la qualité de la description de la fonction est essentielle pour que le modèle puisse identifier correctement quand l'utiliser.
  • Gestion des erreurs: une gestion des erreurs robuste est essentielle pour gérer les cas où l'appel de fonction échoue ou renvoie des résultats inattendus.
  • Processus itératif: il existe parfois plusieurs tours de conversation entre le modèle et les appels de fonction.

Exemples de requêtes et de sorties

Vous trouverez le code de cette application dans le dépôt de code du livre de recettes Gemma.

Étapes 1 et 2: Décrivez l'outil et donnez une tâche

Image amusante d'un chat

Données: image amusante d'un chat
Données textuelles:

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"

Étape 3: Gemma prend une décision et demande un outil

Cette invite génère la réponse suivante:

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.")
```

Étape 4: L'outil fait son travail

Vous allez traiter la sortie du modèle en localisant les blocs de code, en analysant les arguments de fonction et en exécutant les fonctions.

Résultat final du générateur de mèmes