Halaman ini menjelaskan opsi konfigurasi berikut untuk pengalaman hybrid dan di perangkat:
Menentukan apakah inferensi di perangkat atau di cloud digunakan.
Gunakan konfigurasi model untuk mengontrol respons (seperti temperatur).
Pastikan Anda telah menyelesaikan panduan memulai untuk membangun pengalaman hybrid.
Menetapkan "mode inferensi"
Contoh dalam panduan memulai menunjukkan cara mengimplementasikan percobaan inferensi di perangkat terlebih dahulu, lalu melakukan penggantian ke model yang dihosting di cloud. Ini hanyalah salah satu "mode inferensi" yang tersedia yang dapat Anda terapkan.
Inferensi hybrid
Lebih memilih inferensi di perangkat: tetapkan
primaryke model "sistem" dansecondaryke model cloud.Mencoba menggunakan model di perangkat jika tersedia dan mendukung jenis permintaan. Jika tidak, catat error di perangkat, lalu kembali ke model yang dihosting di cloud secara otomatis.
// 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) )Lebih memilih inferensi dalam cloud: tetapkan
primaryke model cloud dansecondaryke model "sistem".Coba gunakan model yang dihosting di cloud jika perangkat sedang online dan jika model tersedia. Jika perangkat sedang offline, kembali ke model di perangkat. Dalam semua kasus kegagalan lainnya, berikan pengecualian.
// 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) )
Inferensi hanya di perangkat atau hanya di cloud
SDK mendukung penyetelan hanya satu model yang berarti SDK akan hanya
mencoba inferensi di perangkat atau di cloud. Selain itu, Anda tidak membuat
HybridModel untuk kasus penggunaan ini. Namun, untuk pengalaman hybrid, Anda perlu membuat HybridModel dan menetapkan model primary dan secondary (seperti yang dijelaskan di atas).
Inferensi hanya di perangkat: tetapkan
modelke model "sistem". Anda tidak membuatHybridModeluntuk kasus penggunaan ini.Mencoba menggunakan model di perangkat jika tersedia dan mendukung jenis permintaan. Jika tidak, berikan pengecualian.
// 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 )Hanya inferensi dalam cloud: tetapkan
modelke model cloud. Anda tidak membuatHybridModeluntuk kasus penggunaan ini.Coba gunakan model yang dihosting di cloud jika perangkat sedang online dan jika model tersedia. Jika tidak, berikan pengecualian.
// 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 )
Memeriksa apakah model di perangkat tersedia
Pemeriksaan manual untuk ketersediaan di perangkat hanya diperlukan jika Anda ingin menampilkan informasi tersebut kepada pengguna atau meminta pengguna akhir mengambil tindakan untuk mendownload model di perangkat. Jika model pada perangkat tidak tersedia – dan Anda telah menetapkan primary ke model pada perangkat dan secondary ke model cloud – SDK akan otomatis kembali menggunakan model yang dihosting di cloud.
Untuk memeriksa secara manual apakah model di perangkat benar-benar dapat digunakan, periksa properti isAvailable:
if FirebaseAI.SystemLanguageModel.default.isAvailable {
// The on-device model is ready to use.
} else {
// The on-device model is unavailable.
}
Untuk memeriksa alasan ketersediaan model di perangkat tertentu, periksa properti
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
}
Menentukan apakah inferensi di perangkat atau di cloud digunakan
Jika Anda menggunakan HybridModel (dan menetapkan model primary dan secondary),
maka akan berguna untuk mengetahui model mana yang digunakan untuk permintaan tertentu.
Informasi ini disediakan oleh properti modelVersion dari rawResponse di setiap respons.
Saat Anda mengakses properti ini, nilai yang ditampilkan akan menjadi salah satu dari berikut:
- Model yang di-host di cloud yang digunakan: nama model, misalnya
gemini-3.1-flash-lite - Model di perangkat yang digunakan:
apple-foundation-models-system-language-model
// let response = try await session.respond(to: ...
print("You used: \(response.rawResponse.modelVersion)")
print(response.content)
Menggunakan konfigurasi model untuk mengontrol respons
Dalam setiap permintaan ke model, Anda dapat mengirimkan konfigurasi model untuk mengontrol cara model menghasilkan respons. Model yang dihosting di cloud dan model di perangkat menawarkan opsi konfigurasi yang berbeda (parameter cloud vs di perangkat).
- Model yang dihosting di cloud: tetapkan konfigurasinya di
GenerationConfig. - Model di perangkat: tetapkan konfigurasinya dalam
FirebaseAI.GenerationOptions.
Opsi ini dikonfigurasi untuk setiap permintaan ke model.
Berikut contoh yang menetapkan konfigurasi untuk model yang di-host di cloud dan di perangkat untuk inferensi hybrid:
// ...
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
)
)
)
// ...
Memberikan masukan tentang pengalaman Anda dengan Firebase AI Logic