Na tej stronie opisano następujące opcje konfiguracji hybrydowych rozwiązań i rozwiązań na urządzeniu:
Upewnij się, że masz za sobą przewodnik dla początkujących dotyczący tworzenia hybrydowych rozwiązań.
Ustaw „tryb wnioskowania”
Przykłady w przewodniku dla początkujących pokazują, jak wdrożyć najpierw wnioskowanie na urządzeniu, a potem przejść do modelu hostowanego w chmurze. Jest to tylko jeden z dostępnych „trybów wnioskowania”, które możesz wdrożyć.
Wnioskowanie hybrydowe
Preferuj wnioskowanie na urządzeniu: ustaw
primaryna model „systemowy”, asecondaryna model w chmurze.Spróbuj użyć modelu na urządzeniu, jeśli jest dostępny i obsługuje typ żądania. W przeciwnym razie zaloguj błąd na urządzeniu, a następnie automatycznie przejdź do modelu hostowanego w chmurze.
// Imports + initialization of Gemini API backend service // ... // Initialize a cloud model that supports your use case let cloudModel = ai.geminiModel(name: "GEMINI_MODEL_NAME") // Initialize an on-device model that supports your use case let systemModel = FirebaseAI.SystemLanguageModel.default // Create a GenerativeModelSession with a hybrid model. // Provide your preferred model as `primary` and your fallback model as `secondary` // Attempt to use the on-device model; otherwise, fall back to the cloud-hosted model. let session = ai.generativeModelSession( model: .hybridModel(primary: systemModel, secondary: cloudModel) )Preferuj wnioskowanie w chmurze: ustaw
primaryna model w chmurze, asecondaryna model "systemowy".Spróbuj użyć modelu hostowanego w chmurze, jeśli urządzenie jest online i model jest dostępny. Jeśli urządzenie jest offline, przejdź do modelu na urządzeniu. We wszystkich innych przypadkach niepowodzenia zgłoś wyjątek.
// Imports + initialization of Gemini API backend service // ... // Initialize a cloud model that supports your use case let cloudModel = ai.geminiModel(name: "GEMINI_MODEL_NAME") // Initialize an on-device model that supports your use case let systemModel = FirebaseAI.SystemLanguageModel.default // Create a GenerativeModelSession with a hybrid model. // Provide your preferred model as `primary` and your fallback model as `secondary` // Attempt to use the cloud-hosted model; otherwise, fall back to the on-device model. let session = ai.generativeModelSession( model: .hybridModel(primary: cloudModel, secondary: systemModel) )
Tylko wnioskowanie na urządzeniu lub tylko w chmurze
Pakiet SDK obsługuje ustawienie tylko jednego model, co oznacza, że pakiet SDK będzie próbował tylko wnioskować na urządzeniu lub w chmurze. W tym przypadku nie tworzysz też HybridModel. Aby jednak uzyskać hybrydowe rozwiązanie, musisz utworzyć HybridModel i ustawić modele primary i secondary (jak opisano powyżej).
Tylko wnioskowanie na urządzeniu: ustaw
modelna model „systemowy”. W tym przypadku nie tworzyszHybridModel.Spróbuj użyć modelu na urządzeniu, jeśli jest dostępny i obsługuje typ żądania. W przeciwnym razie zgłoś wyjątek.
// Imports + initialization of Gemini API backend service // ... // Initialize an on-device model that supports your use case let systemModel = FirebaseAI.SystemLanguageModel.default // Create a GenerativeModelSession with the on-device model. let session = ai.generativeModelSession( model: systemModel )Tylko wnioskowanie w chmurze: ustaw
modelna model w chmurze. W tym przypadku nie tworzyszHybridModel.Spróbuj użyć modelu hostowanego w chmurze, jeśli urządzenie jest online i model jest dostępny. W przeciwnym razie zgłoś wyjątek.
// Imports + initialization of Gemini API backend service // ... // Initialize a cloud model that supports your use case let cloudModel = ai.geminiModel(name: "GEMINI_MODEL_NAME") // Create a GenerativeModelSession with a cloud model. let session = ai.generativeModelSession( model: cloudModel )
Sprawdzanie, czy model na urządzeniu jest dostępny
Ręczne sprawdzanie dostępności na urządzeniu jest konieczne tylko wtedy, gdy chcesz przekazać te informacje użytkownikowi lub poprosić go o pobranie modelu na urządzeniu. Jeśli model na urządzeniu jest niedostępny, a model primary został ustawiony na model na urządzeniu, a secondary na model w chmurze, pakiet SDK automatycznie przejdzie do modelu hostowanego w chmurze.
Aby ręcznie sprawdzić, czy model na urządzeniu jest rzeczywiście użyteczny, sprawdź właściwość isAvailable:
if FirebaseAI.SystemLanguageModel.default.isAvailable {
// The on-device model is ready to use.
} else {
// The on-device model is unavailable.
}
Aby sprawdzić konkretne przyczyny dostępności modelu na urządzeniu, sprawdź właściwość availability:
switch FirebaseAI.SystemLanguageModel.default.availability {
case .available:
// The on-device model is ready to use.
break
case .unavailable(.deviceNotEligible):
// This device does not support Apple Intelligence.
break
case .unavailable(.appleIntelligenceNotEnabled):
// The user has not enabled Apple Intelligence in Settings.
break
case .unavailable(.modelNotReady):
// The model is still being downloaded.
break
case let .unavailable(reason):
// The model is unavailable due to the specified `reason`.
break
}
Określanie, czy użyto wnioskowania na urządzeniu czy w chmurze
Jeśli używasz HybridModel (i ustawisz modele primary i secondary), może się przydać informacja, który model został użyty w danym żądaniu.
Te informacje są dostępne we właściwości modelVersion elementu rawResponse w każdej odpowiedzi.
Gdy uzyskasz dostęp do tej właściwości, zwrócona wartość będzie jedną z tych:
- Użyto modelu hostowanego w chmurze: nazwa modelu, np.
gemini-3.1-flash-lite - Użyto modelu na urządzeniu:
apple-foundation-models-system-language-model
// let response = try await session.respond(to: ...
print("You used: \(response.rawResponse.modelVersion)")
print(response.content)
Używanie konfiguracji modelu do kontrolowania odpowiedzi
W każdym żądaniu wysyłanym do modelu możesz wysłać konfigurację modelu, aby określić, jak model ma generować odpowiedź. Modele hostowane w chmurze i modele na urządzeniu oferują różne opcje konfiguracji (parametry w chmurze i na urządzeniu ).
- Modele hostowane w chmurze: ich konfigurację ustaw w
GenerationConfig. - Modele na urządzeniu: ich konfigurację ustaw w
FirebaseAI.GenerationOptions.
Te opcje są konfigurowane dla każdego żądania wysyłanego do modelu.
Oto przykład, który ustawia konfiguracje modeli hostowanych w chmurze i na urządzeniu na potrzeby wnioskowania hybrydowego:
// ...
let response = try await session.respond(
to: "Why is the sky blue?",
options: .hybrid(
// Config for cloud-hosted model
gemini: GenerationConfig(
temperature: 0.8,
topP: 0.9,
thinkingConfig: ThinkingConfig(thinkingLevel: .high)
),
// Config for on-device model
foundationModels: FirebaseAI.GenerationOptions(
sampling: .random(probabilityThreshold: 0.9),
temperature: 0.8
)
)
)
// ...
Prześlij opinię o korzystaniu z Firebase AI Logic