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.

Funksjonskalling, On-Equity

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

PlattformFormat StørrelseHuggingFace
Apple (macOS / iOS)CoreML~283 MBaufklarer/FunctionGemma-270M-CoreML
Android (og Linux / Windows via talekjerne) LiteRT-LM~283 MBsoniqo/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