Wywoływanie funkcji w Gemme

Jeśli korzystasz z modelu generatywnej sztucznej inteligencji (AI), takiego jak Gemma, możesz go użyć do obsługi interfejsów programowania w celu wykonywania zadań lub odpowiadania na pytania. Przekazywanie instrukcji modelowi przez zdefiniowanie interfejsu programowania, a następnie wysyłanie żądania, które korzysta z tego interfejsu, nazywa się wywoływaniem funkcji.

Gemma nie generuje tokenu konkretnego narzędzia. Twoja platforma musi wykrywać wywołania narzędzia, sprawdzając, czy struktura danych wyjściowych jest zgodna ze specyfikacją wyjścia funkcji prompt.

Funkcji wywoływania możesz używać w różnych aplikacjach:

  • Utwórz interfejs języka naturalnego dla interfejsu programowania API, aby umożliwić użytkownikom, którzy nie są programistami, korzystanie z interfejsu programowania bez kodowania.
  • Generowanie wywołań programowania w ramach procesu obsługi przez agenta AI

Wywołania funkcji są obsługiwane w Gemini 3, ale technika wywołania funkcji może być używana w poprzednich wersjach Gemma. Ten przewodnik zawiera instrukcje tworzenia promptów Gemma, które korzystają z wywołania funkcji. Zalecamy użycie Gemma3 27B, aby uzyskać najlepszą wydajność, oraz Gemma3 12B, aby osiągnąć zrównoważoną wydajność i opóźnienie.

Funkcje programowania wywołań

Możesz używać wywoływania funkcji w Gemme, tworząc prompt, który zawiera instrukcje określające format danych wyjściowych i definiujące dostępne funkcje.

Gdy prompt użytkownika jest uwzględniony, model zwraca wywołanie funkcji, które jest ciągiem znaków zgodnym z określonym formatem danych wyjściowych. To sygnał, że żądanie ma zostać przeanalizowane przez framework modelu w celu wywołania zdefiniowanych funkcji.

Poniższy przykładowy prompt pokazuje blok definicji funkcji wraz z składnią wywołania funkcji i wywołaniem funkcji z modelu. Ten przykładowy prompt jest przeznaczony do użycia z interfejsem programowania katalogu produktów:

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?

Ten prompt powinien wywołać taką odpowiedź:

[get_product_name_by_PID(PID="807ZPKBL9V")]

W tym przykładzie użyto wyjścia wywołania funkcji w stylu Pythona. Możesz też określić format wyjściowy w stylu JSON, jak w tym przykładzie:

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?

Ten prompt powinien wywołać taką odpowiedź:

{"name": "get_product_name_by_PID", "parameters": {"PID": "807ZPKBL9V"}}

Składniki promptu wywołania funkcji

Jeśli używasz wywołania funkcji w modelach Gemma, prompt modelu powinien być zgodny z tą kolejnością i strukturą:

  1. Konfiguracja wywołania funkcji
  2. Definicje funkcji

W następnych sekcjach znajdziesz więcej informacji o każdym z tych elementów.

Konfigurowanie wywoływania funkcji

Sekcja setup promptu wywołania funkcji określa ogólne oczekiwane zachowanie modelu. W tej sekcji możesz dodać dodatkowe, ogólne instrukcje dotyczące zachowania modelu, np. określić, że dane wyjściowe powinny być wyświetlane za pomocą funkcji print lub console.log. Aby wskazać składnię kodu, użyj pojedynczych cudzysłowów w stylu Markdown (func_name).

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

Instrukcje powinny być jak najprostsze i jak najkrótsze. Priorytetowo traktuj najważniejsze instrukcje i nie podawaj zbyt wielu ogólnych instrukcji. Modele Gemma mogą zignorować instrukcje, które są zbyt szczegółowe lub niejasne, zwłaszcza gdy używasz wersji modelu z mniejszym عدد المعلمات.

Definicja funkcji

Sekcja definicja promptu zawiera nazwę funkcji, parametry i wyjście, w tym opis każdego z nich. Funkcje możesz zadeklarować w takim formacie. W bloku deklaracji funkcji można zdefiniować jedną lub wiele funkcji.

[
  {
    "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"
      ]
    }
  }
]

Dalsze kroki

Poznaj sposoby wdrażania i uruchamiania modeli Gemma: