Maskinoversettelse · Engelsk original
FunctionGemma 270M
Function Gemma 270M er en Gemma 3 derivat finjustert for strukturerte verktøy og funksjonssamtaler. I stedet for friformstekst, sender den ut en streng <start_function_call>call:NAME{...}<end_function_call> grammatikk som SDK tolkes i skrivne FunctionCall verdier. Ved omtrent 283 MB på disken er det lite nok til å laste sammen med en ASR + TTS rørledning på telefonklasse maskinvare og betjene som \"omdiriger\" som forvandler en brukers uttalelse til en vocation.
FunctionGemma slots inn i talemidler uansett hvor du ellers vil kalle en vert LLM for verktøyruting. grammatikken er strengt ved konstruksjon, så du får tilbake tolket FunctionCall objekter direkte - ingen JSON reparasjon, ingen skjemamodus-forespørsel.
Plattformene
| Plattform | Format | Størrelse | HuggingFace |
|---|---|---|---|
| Apple (macOS / iOS) | CoreML | ~283 MB | aufklarer/FunctionGemma-270M-CoreML |
| Android (og Linux / Windows via talekjerne) | LiteRT-LM | ~283 MB | soniqo/FunctionGemma-270M-LiteRT-LM |
Grammar
Modellen er utdannet til å avgi et enkelt anrop (eller en anropssekvens) som er innpakket i to sentineltokenser:
<start_function_call>call:set_timer{"minutes": 5, "label": "tea"}<end_function_call>
SDK tolker hvert kall i et skrevet FunctionCall(name:, arguments:) verdi. Argumentene dekodes som JSON slik at du kan kartlegge dem rett på en Swift Codable eller en Kotlin @Serializable dataklasse.
Swift (Apple, CoreML)
På Apple-plattformene FunctionGemma blir eksponert gjennom speech-swift som FunctionGemma klasse. Den lastes CoreML modell fra HuggingFace ved første bruk og kjører på 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)
På Android er modellen eksponert gjennom speech-android som audio.soniqo.speech.llm.FunctionGemma. Det er en medbring-din egen kjøretid adapter: du gir en LiteRtLmRuntime eksempel ( SDK skiper en standard en), og FunctionGemma håndterer den hurtige malen og grammatikktolkingen.
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"}
}
Ytterligere lesing
- talekjerne — C++ motoren som er vert for LiteRT-LM kjøretid og funksjonssamtale sløyfe på Linux, Windows og Android.
- github.com/soniqo/speech-core - orkesterkjerne og LiteRT-LM lim, inkludert
VoicePipelineverktøy-kall loop. - github.com/soniqo/speech-swift — Apple SDK med
FunctionGemmaSwift - Github.com/soniqo/speech-android - Android SDK med
audio.soniqo.speech.llm.FunctionGemma. - google/gemma-3-270m — oppstrøms Gemma 3 270M-basert modell på HuggingFace.