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.
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
| Platform | Format | Boyut | HuggingFace |
|---|---|---|---|
| Apple (macOS / iOS) | CoreML | ~283 MB | aufklarer/FunctionGemma-270M-CoreML |
| Android (ve Speech Core üzerinden Linux / Windows) | LiteRT-LM | ~283 MB | soniqo/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
- Speech Core — Linux, Windows ve Android üzerinde LiteRT-LM runtime'ını ve fonksiyon çağırma döngüsünü barındıran C++ motoru.
- github.com/soniqo/speech-core —
VoicePipelinearaç çağırma döngüsü dahil orkestrasyon çekirdeği ve LiteRT-LM tutkalı. - github.com/soniqo/speech-swift —
FunctionGemmaSwift sınıfını içeren Apple SDK. - github.com/soniqo/speech-android —
audio.soniqo.speech.llm.FunctionGemmaiçeren Android SDK. - google/gemma-3-270m — HuggingFace üzerindeki üst seviye Gemma 3 270M temel modeli.