Wenn Sie ein generatives KI-Modell wie Gemma verwenden, können Sie das Modell verwenden, um Programmierschnittstellen zu bedienen, um Aufgaben auszuführen oder Fragen zu beantworten. Wenn Sie ein Modell anweisen, indem Sie eine Programmierschnittstelle definieren und dann eine Anfrage mit dieser Schnittstelle stellen, wird dies als Funktionsaufruf bezeichnet.
Gemma gibt kein toolspezifisches Token aus. Ihr Framework muss einen Toolaufruf erkennen, indem es prüft, ob die Struktur der Ausgabe der Spezifikation der angeforderten Funktionsausgabe entspricht.
Sie können Funktionsaufrufe für eine Reihe von Anwendungen verwenden:
- Erstellen Sie eine Natural Language Interface für eine Programmier-API, damit auch Nicht-Programmierer eine programmatische Schnittstelle ohne Programmieren bedienen können.
- Programmaufrufe generieren als Teil eines KI-Agenten-Workflows
Funktionsaufrufe werden in Gemma 3 unterstützt, die Funktion kann aber auch mit früheren Gemma-Versionen verwendet werden. In diesem Leitfaden erfahren Sie, wie Sie Gemma-Prompts mit Funktionsaufrufen erstellen. Für die beste Leistung empfehlen wir Gemma3 27B und für eine ausgewogene Leistung und Latenz Gemma3 12B.
Programmierfunktionen aufrufen
Sie können den Funktionsaufruf mit Gemma verwenden, indem Sie einen Prompt erstellen, der Anweisungen zum Angeben des Ausgabeformats und zum Definieren der verfügbaren Funktionen enthält.
Wenn der Nutzer-Prompt enthalten ist, gibt das Modell einen Funktionsaufruf aus, also einen String, der dem angegebenen Ausgabeformat entspricht. Das signalisiert eine Anfrage, die von Ihrem Modell-Framework geparst werden muss, um die definierten Funktionen aufzurufen.
Das folgende Beispiel für einen Prompt zeigt einen Funktionsdefinitionsbereich, eine Funktionsaufrufsyntax und eine Funktionsaufrufausgabe aus dem Modell. Der folgende Beispiel-Prompt ist für die Verwendung mit einer Programmieroberfläche für einen Produktkatalog gedacht:
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?
Dieser Prompt sollte die folgende Antwort liefern:
[get_product_name_by_PID(PID="807ZPKBL9V")]
In diesem Beispiel wird eine Funktionaufrufausgabe im Python-Format verwendet. Alternativ können Sie ein JSON-Ausgabeformat angeben, wie im folgenden Beispiel gezeigt:
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?
Dieser Prompt sollte die folgende Antwort liefern:
{"name": "get_product_name_by_PID", "parameters": {"PID": "807ZPKBL9V"}}
Komponenten eines Prompts für Funktionsaufrufe
Wenn Sie den Funktionsaufruf mit Gemma-Modellen verwenden, sollte der Prompt des Modells dieser bestimmten Reihenfolge und Struktur folgen:
- Einrichtung von Funktionsaufrufen
- Funktionsdefinitionen
In den folgenden Abschnitten werden die einzelnen Prompt-Komponenten näher beschrieben.
Einrichtung von Funktionsaufrufen
Im Abschnitt setup des Prompts für den Funktionsaufruf wird das erwartete Gesamtverhalten des Modells festgelegt. In diesem Abschnitt können Sie zusätzliche allgemeine Anweisungen für das Verhalten des Modells hinzufügen, z. B. angeben, dass die Ausgabe mit einer print
- oder console.log
-Funktion angezeigt werden soll. Verwenden Sie einzelne Backticks (func_name
) im Markdown-Stil, um die Codesyntax anzugeben.
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
Diese Anleitung sollte so klar und prägnant wie möglich sein. Priorisieren Sie die wichtigsten Anweisungen und geben Sie nicht zu viele allgemeine Anweisungen. Gemma-Modelle ignorieren möglicherweise Anweisungen, die zu detailliert oder nicht klar formuliert sind, insbesondere wenn Sie Modellversionen mit einer geringeren Parameteranzahl verwenden.
Funktionsdefinition
Der Abschnitt definition des Prompts enthält den Funktionsnamen, die Parameter und die Ausgabe, einschließlich einer Beschreibung für jeden. Sie können Funktionen im dargestellten Format deklarieren. Innerhalb des Blocks für die Funktionsdeklaration können eine oder mehrere Funktionen definiert werden.
[ { "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" ] } } ]
Nächste Schritte
So können Sie Gemma-Modelle bereitstellen und ausführen: