Strojový překlad · Anglický originál
FunctionGemma 270M
Function Gemma 270M Gemma 3 derivát fine- laned pro strukturované nástroje a funkce volání. Místo volnotvarového textu vydává striktní <start_function_call>call:NAME{...}<end_function_call> gramatika, že SDK parses into typed FunctionCall hodnoty. Na disku je zhruba 283 MB dost malý na to, aby se vedle plynovodu ASR + TTS na hardware třídy phone-class a slouží jako "router", který mění uživatelovo prohlášení na vyvolání nástroje.
FunctionGemma sloty do hlasových agentů, kdekoliv byste jinak nazývali hostované LLM pro směrování nástrojů. Gramatika je striktní konstrukcí, takže dostanete zpět parsed FunctionCall objekty přímo - žádná oprava JSON, žádné podněcování schématu.
Nástupiště
| Platforma | Formát | Velikost | HuggingFace |
|---|---|---|---|
| Apple (macOS / iOS) | CoreML | ~ 283 MB | aufklarer / FunctionGemma-270M-CoreML |
| Android (a Linux / Windows přes Speech Core) | LiteRT- LM | ~ 283 MB | soniqo/FunctionGemma-270M-LiteRT-LM |
Gramatika
Model je vyškolen k vypouštění jednoho hovoru (nebo posloupnost hovorů) zabalený ve dvou sentinelových tokenech:
<start_function_call>call:set_timer{"minutes": 5, "label": "tea"}<end_function_call>
SDK rozděluje každý hovor do psacího stroje FunctionCall(name:, arguments:) hodnota. Argumenty jsou dekódovány jako JSON, takže je můžete zmapovat přímo na Swift Codable nebo Kotlin @Serializable datová třída.
Swift (Apple, CoreML)
Na platformách Apple je FunctionGemma vystavena speech-swift jako FunctionGemma třída. Načítá CoreML model HuggingFace při prvním použití a běží na Neural Engine.
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)
Na Android je model vystaven prostřednictvím speech-android jako audio.soniqo.speech.llm.FunctionGemma. Je to bring- your-own- runtime adaptér: poskytujete LiteRtLmRuntime instance (SDK loď výchozí), a FunctionGemma zpracovává rychlou šablonu a gramatiku parsing.
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"}
}
Další čtení
- Řečnické jádro - C++ motor, který hostí LiteRT- LM runtime a funkce- volání smyčka na Linux, Windows a Android.
- github.com /soniqo/speech-core - varhanní jádro a lepidlo LiteRT- LM, včetně
VoicePipelinetool- call loop. - github.com /soniqo/speech-swift - Apple SDK s
FunctionGemmaTřída Swift. - github.com /soniqo/speech-android - Android SDK
audio.soniqo.speech.llm.FunctionGemma. - Google / gemma-3-270m - proti proudu Gemma 3 270M základní model HuggingFace.