Trang này mô tả các tuỳ 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 đã sử dụng suy luận trên thiết bị hay trong đám mây.
Sử dụng cấu hình mô hình để kiểm soát câu trả lời (chẳng hạn như nhiệt độ).
Hãy đảm bảo 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 các "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.Thử sử dụng mô hình trên thiết bị nếu mô hình đó dùng đượ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ị, sau đó 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 trong đám mây: đặt
primarythành mô hình đám mây vàsecondarythành 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ị trực tuyến và mô hình đó dùng được. Nếu thiết bị không kết nối mạng, hãy quay lại mô hình trên thiết bị. Trong tất cả các trường hợp lỗ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 trong đám mây
SDK hỗ trợ việc đặt chỉ một model. Điều này có nghĩa là SDK sẽ chỉ thử 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 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.Thử sử dụng mô hình trên thiết bị nếu mô hình đó dùng đượ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 trong đám mây: đặt
modelthành 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ị trực tuyến và mô hình đó dùng được. 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ó dùng được hay không
Bạn chỉ cần kiểm tra thủ công xem mô hình trên thiết bị có dùng được 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 trên thiết bị xuống. Nếu mô hình trên thiết bị không dùng được (và bạn đã đặt primary thành mô hình trên thiết bị và secondary thành mô hình đám mây), thì SDK sẽ tự động quay lại sử dụng mô hình được lưu trữ trên đám mây.
Để kiểm tra 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ể khiến mô hình trên thiết bị không dùng được, 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 trong đá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 sử dụng cho một yêu cầu nhất định.
Thông tin này được cung cấp bởi thuộc tính modelVersion của rawResponse trong mỗi câu trả lời.
Khi bạn truy cập vào thuộc tính này, giá trị trả về sẽ là một trong những giá trị sau:
- Mô hình được lưu trữ trên đám mây đã sử dụng: tên mô hình, ví dụ:
gemini-3.1-flash-lite - Mô hình trên thiết bị đã sử 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ô hình, bạn có thể gửi kèm theo cấu hình mô hình để kiểm soát cách mô hình tạo câu trả lời. 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 tuỳ chọn cấu hình khác nhau (tham số đám mây so với tham số trên thiết bị ).
- Mô hình được lưu trữ trên đám mây: đặt cấu hình của các mô hình này trong a
GenerationConfig. - 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 tuỳ 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à ví dụ về cách đặt cấu hình cho mô hình được lưu trữ trên đám mây và mô hình 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