FunctionGemma 270M

FunctionGemma 270M, yapılandırılmış araç ve fonksiyon çağrıları için ince ayar yapılmış bir Gemma 3 türevidir. Serbest biçimli metin yerine, SDK tarafından tipli FunctionCall değerlerine ayrıştırılan katı bir <start_function_call>call:NAME{...}<end_function_call> grameri üretir. Disk üzerinde yaklaşık 283 MB olan model, telefon sınıfı donanımda ASR + TTS pipeline'ı ile birlikte yüklenecek kadar küçüktür ve kullanıcının ifadesini bir araç çağrısına dönüştüren "yönlendirici" olarak hizmet verir.

Cihaz üzeri fonksiyon çağırma

FunctionGemma, araç yönlendirmesi için aksi takdirde barındırılan bir LLM çağıracağınız her yerde ses ajanlarına entegre olur. Gramer tasarımı gereği katıdır; bu nedenle doğrudan ayrıştırılmış FunctionCall nesnelerini geri alırsınız — JSON onarımı yok, şema modu prompt yazımı yok.

Platformlar

PlatformFormatBoyutHuggingFace
Apple (macOS / iOS)CoreML~283 MBaufklarer/FunctionGemma-270M-CoreML
Android (ve Speech Core üzerinden Linux / Windows)LiteRT-LM~283 MBsoniqo/FunctionGemma-270M-LiteRT-LM

Gramer

Model, iki sentinel token arasına sarılmış tek bir çağrı (veya çağrı dizisi) üretmek üzere eğitilmiştir:

<start_function_call>call:set_timer{"minutes": 5, "label": "tea"}<end_function_call>

SDK, her çağrıyı tipli bir FunctionCall(name:, arguments:) değerine ayrıştırır. Argümanlar JSON olarak çözümlenir; bu sayede onları doğrudan bir Swift Codable ya da bir Kotlin @Serializable veri sınıfına eşleyebilirsiniz.

Swift (Apple, CoreML)

Apple platformlarında FunctionGemma, speech-swift üzerinden FunctionGemma sınıfı olarak sunulur. CoreML modelini ilk kullanımda HuggingFace'ten yükler ve Neural Engine üzerinde çalışır.

import FunctionGemma

let model = try await FunctionGemma.fromPretrained()

let tools = """
- set_timer(minutes: Int, label: String)
- get_weather(city: String)
"""

let calls = try model.callFunctions(
    tools: tools,
    userMessage: "Set a 5 minute tea timer"
)

for call in calls {
    print(call.name)       // "set_timer"
    print(call.arguments)  // ["minutes": 5, "label": "tea"]
}

Kotlin (Android, LiteRT-LM)

Android'de model, speech-android üzerinden audio.soniqo.speech.llm.FunctionGemma olarak sunulur. Kendi runtime'ınızı getirme adaptörüdür: bir LiteRtLmRuntime örneği sağlarsınız (SDK varsayılan bir tane sunar) ve FunctionGemma prompt şablonu ile gramer ayrıştırmasını yönetir.

import audio.soniqo.speech.llm.FunctionGemma
import audio.soniqo.speech.llm.LiteRtLmRuntime

val runtime = LiteRtLmRuntime.fromPretrained(context)
val model = FunctionGemma(runtime)

val tools = """
- set_timer(minutes: Int, label: String)
- get_weather(city: String)
""".trimIndent()

val calls = model.callFunctions(
    tools = tools,
    userMessage = "Set a 5 minute tea timer",
)

for (call in calls) {
    println(call.name)       // "set_timer"
    println(call.arguments)  // {"minutes": 5, "label": "tea"}
}

Daha fazla okuma