หน้านี้อธิบายตัวเลือกการกำหนดค่าต่อไปนี้สำหรับประสบการณ์การใช้งานแบบไฮบริดและในอุปกรณ์
ตรวจสอบว่าคุณได้ทำตามคู่มือเริ่มต้นใช้งานสำหรับการสร้างประสบการณ์แบบไฮบริดเรียบร้อยแล้ว
ตั้งค่า "โหมดการอนุมาน"
ตัวอย่างในคู่มือเริ่มต้นใช้งานแสดงวิธีใช้การพยายาม อนุมานในอุปกรณ์ก่อน แล้วจึงเปลี่ยนไปใช้โมเดลที่โฮสต์ในระบบคลาวด์ นี่เป็นเพียง "โหมดการอนุมาน" ที่ใช้ได้โหมดหนึ่งที่คุณสามารถนำไปใช้
การอนุมานแบบไฮบริด
ต้องการการอนุมานในอุปกรณ์: ตั้งค่า
primaryเป็นโมเดล "ระบบ" และsecondaryเป็นโมเดลระบบคลาวด์พยายามใช้โมเดลในอุปกรณ์หากมีและรองรับคำขอประเภท ดังกล่าว มิเช่นนั้น ให้บันทึกข้อผิดพลาดในอุปกรณ์ แล้วกลับไปใช้โมเดลที่โฮสต์ในระบบคลาวด์โดยอัตโนมัติ
// 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) )ต้องการการอนุมานในระบบคลาวด์: ตั้งค่า
primaryเป็นโมเดลระบบคลาวด์และsecondaryเป็นโมเดล "ระบบ"พยายามใช้โมเดลที่โฮสต์ในระบบคลาวด์หากอุปกรณ์ออนไลน์และหากโมเดลพร้อมใช้งาน หากอุปกรณ์ออฟไลน์อยู่ ให้กลับไปใช้โมเดลในอุปกรณ์ ในกรณีอื่นๆ ทั้งหมดที่การดำเนินการไม่สำเร็จ ให้ส่งข้อยกเว้น
// 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) )
การอนุมานในอุปกรณ์เท่านั้นหรือในระบบคลาวด์เท่านั้น
SDK รองรับการตั้งค่า model รายการเดียวเท่านั้น ซึ่งหมายความว่า SDK จะ พยายามอนุมานในอุปกรณ์หรือในระบบคลาวด์อย่างใดอย่างหนึ่งเท่านั้น นอกจากนี้ คุณไม่ต้องสร้างHybridModelสำหรับกรณีการใช้งานนี้ อย่างไรก็ตาม สำหรับประสบการณ์การใช้งานแบบผสมผสาน คุณจะต้องสร้าง HybridModel และตั้งค่าทั้งโมเดล primary และ secondary (ตามที่อธิบายไว้ข้างต้น)
การอนุมานในอุปกรณ์เท่านั้น: ตั้งค่า
modelเป็นโมเดล "ระบบ" คุณไม่จำเป็นต้องสร้างHybridModelสำหรับกรณีการใช้งานนี้พยายามใช้โมเดลในอุปกรณ์หากมีและรองรับคำขอประเภท ดังกล่าว มิเช่นนั้น throw an exception
// 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 )การอนุมานในระบบคลาวด์เท่านั้น: ตั้งค่า
modelเป็นโมเดลระบบคลาวด์ คุณไม่ต้องสร้างHybridModelสำหรับกรณีการใช้งานนี้พยายามใช้โมเดลที่โฮสต์ในระบบคลาวด์หากอุปกรณ์ออนไลน์และหากโมเดลพร้อมใช้งาน มิเช่นนั้น throw an exception
// 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 )
ตรวจสอบว่าโมเดลในอุปกรณ์พร้อมใช้งานหรือไม่
การตรวจสอบความพร้อมใช้งานในอุปกรณ์ด้วยตนเองจะจำเป็นก็ต่อเมื่อคุณต้องการ
แสดงข้อมูลดังกล่าวต่อผู้ใช้ หรือขอให้ผู้ใช้ปลายทางดำเนินการเพื่อ
ดาวน์โหลดโมเดลในอุปกรณ์ หากโมเดลในอุปกรณ์ไม่พร้อมใช้งาน และ
คุณตั้งค่า primary เป็นโมเดลในอุปกรณ์และ secondary เป็นโมเดลในระบบคลาวด์
SDK จะเปลี่ยนไปใช้โมเดลที่โฮสต์ในระบบคลาวด์โดยอัตโนมัติ
หากต้องการตรวจสอบด้วยตนเองว่าโมเดลในอุปกรณ์ใช้งานได้จริงหรือไม่ ให้ตรวจสอบพร็อพเพอร์ตี้
isAvailable
if FirebaseAI.SystemLanguageModel.default.isAvailable {
// The on-device model is ready to use.
} else {
// The on-device model is unavailable.
}
หากต้องการตรวจสอบเหตุผลที่เฉพาะเจาะจงเกี่ยวกับความพร้อมใช้งานของโมเดลในอุปกรณ์ ให้ตรวจสอบพร็อพเพอร์ตี้
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
}
พิจารณาว่าใช้การอนุมานในอุปกรณ์หรือในระบบคลาวด์
หากคุณใช้ HybridModel (และตั้งค่าทั้งโมเดล primary และ secondary)
คุณอาจต้องทราบว่าระบบใช้โมเดลใดสำหรับคำขอที่กำหนด
ข้อมูลนี้มาจากพร็อพเพอร์ตี้ modelVersion ของ rawResponse ใน
การตอบกลับแต่ละครั้ง
เมื่อเข้าถึงพร็อพเพอร์ตี้นี้ ค่าที่แสดงจะเป็นค่าใดค่าหนึ่งต่อไปนี้
- โมเดลที่โฮสต์บนระบบคลาวด์ที่ใช้: ชื่อโมเดล เช่น
gemini-3.1-flash-lite - โมเดลในอุปกรณ์ที่ใช้:
apple-foundation-models-system-language-model
// let response = try await session.respond(to: ...
print("You used: \(response.rawResponse.modelVersion)")
print(response.content)
ใช้การกำหนดค่าโมเดลเพื่อควบคุมคำตอบ
ในแต่ละคำขอที่ส่งไปยังโมเดล คุณสามารถส่งการกำหนดค่าโมเดลเพื่อควบคุม วิธีที่โมเดลสร้างคำตอบ โมเดลที่โฮสต์ในระบบคลาวด์และโมเดลในอุปกรณ์ มีตัวเลือกการกำหนดค่าที่แตกต่างกัน (พารามิเตอร์คลาวด์ เทียบกับ ในอุปกรณ์ )
- โมเดลที่โฮสต์บนระบบคลาวด์: ตั้งค่าใน
GenerationConfig - โมเดลในอุปกรณ์: ตั้งค่าภายใน
FirebaseAI.GenerationOptions
ตัวเลือกเหล่านี้ได้รับการกำหนดค่าสำหรับคำขอแต่ละรายการที่ส่งไปยังโมเดล
ตัวอย่างที่กำหนดค่าสำหรับโมเดลที่โฮสต์บนระบบคลาวด์และโมเดลในอุปกรณ์สำหรับการอนุมานแบบไฮบริดมีดังนี้
// ...
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
)
)
)
// ...
แสดงความคิดเห็น เกี่ยวกับประสบการณ์การใช้งาน Firebase AI Logic