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.

Funktion-Calling, On-Device

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

PlattformFormatStorlekHuggingFace
Apple (macOS / iOS)CoreML283 MBaufklarer/FunctionGemma-270M-CoreML
Android (och Linux / Windows via Speech Core)LiteRT-LM283 MBsoniqo/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