Maskinöversättning · Engelskt original
FunctionGemma 270M
Function Gemma 270M är en Gemma 3 derivat finjusterat för strukturerade verktyg och funktionssamtal. Istället för fri form text, avger det en strikt <start_function_call>call:NAME{...}<end_function_call> grammatik som SDK parses in FunctionCall värden. Vid ungefär 283 MB på disken är det tillräckligt liten för att ladda tillsammans med en ASR + TTS pipeline på telefonklass hårdvara och fungera som "router" som förvandlar en användares yttrande till en verktygsfakturering.
FunctionGemma slots till röstagenter var du annars skulle ringa en värd LLM för verktygsrouting. Grammatiken är strikt genom konstruktion, så du får tillbaka parsed FunctionCall objekt direkt - ingen JSON reparation, ingen schema-mode prompting.
Plattformar
| Plattform | Format | Storlek | HuggingFace |
|---|---|---|---|
| Apple (macOS / iOS) | CoreML | 283 MB | aufklarer/FunctionGemma-270M-CoreML |
| Android (och Linux / Windows via Speech Core) | LiteRT-LM | 283 MB | soniqo/FunctionGemma-270M-LiteRT-LM |
Grammar
Modellen är utbildad för att avge ett enda samtal (eller en sekvens av samtal) inslagna i två mesinel tokens:
<start_function_call>call:set_timer{"minutes": 5, "label": "tea"}<end_function_call>
SDK parses varje samtal i en typad FunctionCall(name:, arguments:) värde. Argument avkodas som JSON så att du kan kartlägga dem direkt på en Swift Codable eller en Kotlin @Serializable data class.
Swift (Apple, CoreML)
På Apple-plattformar FunctionGemma exponeras genom speech-swift som FunctionGemma klass. Den laddar CoreML modellen från HuggingFace vid första användning och körs 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 exponeras modellen genom speech-android som audio.soniqo.speech.llm.FunctionGemmaDet är en bring-your-own-runtime adapter: du ger en LiteRtLmRuntime instans (SDK fartyg en standard), och FunctionGemma hanterar snabb mall och grammatik 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"}
}
Ytterligare läsning
- Speech Core -- C++ motor som är värd för LMRT-Runtime och funktionskallingsloopen på Linux, Windows och Android.
- github.com/soniqo/speech-core -- orkestreringskärna och LiteRT-LM-lim, inklusive
VoicePipelineverktygsringsloopen. - github.com/soniqo/speech-swift -- Apple SDK med
FunctionGemmaSwift klass. - github.com/soniqo/speech-android -- Android SDK med
audio.soniqo.speech.llm.FunctionGemma. - google/gemma-3-270m -- upstream Gemma 3 270M basmodell på HuggingFace.