Meme-Generator

Dieser Leitfaden bietet einen praktischen Ansatz für die Implementierung einer Anwendung mit Funktionsaufrufen mit Gemma. Diese Technik kann durch sorgfältige Prompt-Entwicklung auf verschiedene Gemma-Modellversionen angewendet werden. Weitere Informationen finden Sie im Artikel Beyond the Chatbot: Agentic AI with Gemma.

Funktionsaufrufe

Die gängige Struktur für Funktionsaufrufe umfasst einige wichtige Komponenten, die es Gemma ermöglichen, mit externen Tools oder APIs zu interagieren.

  1. Tools beschreiben
    Sie geben dem Modell die „Tools“ (Funktionen) an, die es verwenden kann. Dazu zählen:

    • Funktionsweise des Tools (Beschreibung)
    • Welche Informationen benötigt das Tool (Parameter)
  2. Nutzer stellt eine Frage
    Sie stellen dem Modell eine Frage oder geben ihm eine Aufgabe.

  3. Gemma entscheidet
    Das Modell ermittelt, ob es ein Tool benötigt, um Ihre Frage zu beantworten.

  4. Gemma fordert ein Tool an
    Wenn ein Tool erforderlich ist, generiert Gemma einen Code, der in ```tool_code``` eingehüllt ist.

  5. Tool erfüllt seine Aufgabe
    Das Tool (die Funktion) nimmt die Informationen aus dem Modell und führt die vorgesehenen Aktionen aus.

  6. Tool gibt Ergebnisse zurück
    Gemma erwartet, dass das Ergebnis in ```tool_output``` zurückgegeben wird.

  7. Gemma gibt eine endgültige Antwort
    Das Modell verwendet die Ergebnisse des Tools, um eine vollständige und korrekte Antwort für Sie zu erstellen.

Hilfreiche Tipps

  • JSON-Schema: Die Verwendung von JSON-Schemas für Parameterdefinitionen ist zwar nicht obligatorisch, bietet aber die Vorteile einer einheitlichen Struktur und einer automatisierten Validierung.
  • Klare Definition: Die Qualität der Beschreibung der Funktion ist entscheidend, damit das Modell richtig erkennen kann, wann sie verwendet werden soll.
  • Fehlerbehandlung: Eine robuste Fehlerbehandlung ist unerlässlich, um Fälle zu verwalten, in denen der Funktionsaufruf fehlschlägt oder unerwartete Ergebnisse zurückgibt.
  • Iterativer Prozess: Manchmal gibt es mehrere Gesprächsrunden zwischen dem Modell und den Funktionsaufrufen.

Beispiele für Prompts und Ausgaben

Den Code für diese Anwendung finden Sie im Gemma Cookbook-Code-Repository.

Schritt 1 und 2: Tool beschreiben und Aufgabe stellen

Ein lustiges Bild einer Katze

Eingabe: Ein lustiges Bild einer Katze
Texteingabe:

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"

Schritt 3: Gemma trifft eine Entscheidung und fordert ein Tool an

Dieser Prompt würde die folgende Antwort hervorrufen:

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

Schritt 4: Tool erledigt seine Aufgabe

Sie verarbeiten die Ausgabe des Modells, indem Sie die Codeblöcke suchen, Funktionsargumente parsen und die Funktionen ausführen.

Endgültige Ausgabe des Meme-Generators