Trang này mô tả các lựa chọn cấu hình sau đây cho trải nghiệm kết hợp và trên thiết bị:
Xác định xem bạn có sử dụng suy luận trên thiết bị hay suy luận trên đám mây hay không.
Sử dụng cấu hình mô hình để kiểm soát các câu trả lời (chẳng hạn như nhiệt độ).
Đảm bảo rằng bạn đã hoàn tất hướng dẫn bắt đầu xây dựng trải nghiệm kết hợp.
Đặt "chế độ suy luận"
Các ví dụ trong hướng dẫn bắt đầu cho thấy cách triển khai việc thử suy luận trên thiết bị trước, sau đó quay lại mô hình được lưu trữ trên đám mây. Đây chỉ là một trong những "chế độ suy luận" mà bạn có thể triển khai.
Suy luận kết hợp
Ưu tiên suy luận trên thiết bị: đặt
primarythành mô hình "hệ thống" vàsecondarythành mô hình đám mây.Cố gắng sử dụng mô hình trên thiết bị nếu có và hỗ trợ loại yêu cầu. Nếu không, hãy ghi lại lỗi trên thiết bị rồi tự động quay lại mô hình được lưu trữ trên đám mây.
// 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) )Ưu tiên suy luận trên đám mây: đặt
primarythành một mô hình đám mây vàsecondarythành một mô hình "hệ thống".Thử sử dụng mô hình được lưu trữ trên đám mây nếu thiết bị đang trực tuyến và nếu mô hình đó có sẵn. Nếu thiết bị không kết nối mạng, hãy chuyển về mô hình trên thiết bị. Trong tất cả các trường hợp thất bại khác, hãy gửi một ngoại lệ.
// 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) )
Chỉ suy luận trên thiết bị hoặc chỉ suy luận trên đám mây
SDK chỉ hỗ trợ việc thiết lập một model duy nhất, tức là SDK chỉ cố gắng suy luận trên thiết bị hoặc trong đám mây. Ngoài ra, bạn không tạo HybridModel cho trường hợp sử dụng này. Tuy nhiên, đối với trải nghiệm kết hợp, bạn cần tạo một HybridModel và đặt cả mô hình primary và secondary (như mô tả ở trên).
Chỉ suy luận trên thiết bị: đặt
modelthành mô hình "hệ thống". Bạn không tạoHybridModelcho trường hợp sử dụng này.Cố gắng sử dụng mô hình trên thiết bị nếu có và hỗ trợ loại yêu cầu. Nếu không, hãy gửi một ngoại lệ.
// 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 )Chỉ suy luận trên đám mây: đặt
modelthành một mô hình đám mây. Bạn không tạoHybridModelcho trường hợp sử dụng này.Thử sử dụng mô hình được lưu trữ trên đám mây nếu thiết bị đang trực tuyến và nếu mô hình đó có sẵn. Nếu không, hãy gửi một ngoại lệ.
// 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 )
Kiểm tra xem mô hình trên thiết bị có hoạt động hay không
Bạn chỉ cần kiểm tra theo cách thủ công xem có sẵn trên thiết bị hay không nếu muốn hiển thị thông tin đó cho người dùng hoặc yêu cầu người dùng cuối thực hiện hành động tải mô hình xuống thiết bị. Nếu không có mô hình trên thiết bị – và bạn đã đặt primary thành mô hình trên thiết bị và secondary thành mô hình trên đám mây – thì SDK sẽ tự động chuyển về sử dụng mô hình được lưu trữ trên đám mây.
Để kiểm tra theo cách thủ công xem mô hình trên thiết bị có thực sự dùng được hay không, hãy kiểm tra thuộc tính isAvailable:
if FirebaseAI.SystemLanguageModel.default.isAvailable {
// The on-device model is ready to use.
} else {
// The on-device model is unavailable.
}
Để kiểm tra các lý do cụ thể về phạm vi cung cấp mô hình trên thiết bị, hãy kiểm tra thuộc tính 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
}
Xác định xem bạn đã sử dụng suy luận trên thiết bị hay suy luận trên đám mây
Nếu bạn sử dụng HybridModel (và đặt cả mô hình primary và secondary), thì bạn nên biết mô hình nào đã được dùng cho một yêu cầu nhất định.
Thông tin này do thuộc tính modelVersion của rawResponse cung cấp trong mỗi phản hồi.
Khi bạn truy cập vào thuộc tính này, giá trị được trả về sẽ là một trong những giá trị sau:
- Mô hình được lưu trữ trên đám mây đã dùng: tên mô hình, ví dụ:
gemini-3.1-flash-lite - Mô hình trên thiết bị được dùng:
apple-foundation-models-system-language-model
// let response = try await session.respond(to: ...
print("You used: \(response.rawResponse.modelVersion)")
print(response.content)
Sử dụng cấu hình mô hình để kiểm soát câu trả lời
Trong mỗi yêu cầu gửi đến một mô hình, bạn có thể gửi kèm theo một cấu hình mô hình để kiểm soát cách mô hình tạo ra phản hồi. Các mô hình được lưu trữ trên đám mây và mô hình trên thiết bị cung cấp các lựa chọn cấu hình khác nhau (các tham số đám mây so với trên thiết bị).
- Các mô hình được lưu trữ trên đám mây: thiết lập cấu hình của các mô hình này trong một
GenerationConfig. - Các mô hình trên thiết bị: đặt cấu hình của các mô hình này trong
FirebaseAI.GenerationOptions.
Các lựa chọn này được định cấu hình cho từng yêu cầu gửi đến mô hình.
Dưới đây là một ví dụ thiết lập cấu hình cho các mô hình được lưu trữ trên đám mây và trên thiết bị để suy luận kết hợp:
// ...
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
)
)
)
// ...
Gửi ý kiến phản hồi về trải nghiệm của bạn với Firebase AI Logic