คุณสามารถสร้างแอปและฟีเจอร์ของ Apple ที่ทำงานด้วยระบบ AI ด้วยการอนุมานแบบไฮบริดโดยใช้ Firebase AI Logic การอนุมานแบบไฮบริดช่วยให้สามารถเรียกใช้การอนุมานโดยใช้โมเดลในอุปกรณ์ (โดยเฉพาะเฟรมเวิร์กโมเดลพื้นฐานของ Apple) เมื่อพร้อมใช้งาน และเปลี่ยนไปใช้โมเดลของ Google ที่โฮสต์ในระบบคลาวด์ได้อย่างราบรื่นในกรณีอื่นๆ (และในทางกลับกัน)
หน้านี้อธิบายวิธี เริ่มต้นใช้งาน Client SDK รวมถึงแสดง ตัวเลือกการกำหนดค่าและความสามารถเพิ่มเติม เช่น อุณหภูมิ
โปรดทราบว่าระบบรองรับการอนุมานในอุปกรณ์ผ่าน Firebase AI Logic สำหรับแอป Apple ที่ใช้ SDK Firebase AI Logic เวอร์ชัน 12.13.0 ขึ้นไปและทำงานบนอุปกรณ์ที่เปิดใช้ Apple Intelligence อยู่ภายใต้ ข้อกำหนดการใช้งานที่ยอมรับได้สำหรับเฟรมเวิร์กโมเดลพื้นฐานของ Apple
กรณีการใช้งานที่แนะนำ
การใช้โมเดลในอุปกรณ์สำหรับการอนุมานมีข้อดีดังนี้
- ความเป็นส่วนตัวที่ดียิ่งขึ้น
- การอนุมานโดยไม่มีค่าใช้จ่าย
- ฟังก์ชันการทำงานแบบออฟไลน์
การใช้ฟังก์ชันไฮบริดมีข้อดีดังนี้
- มอบประสบการณ์การใช้งานแอปที่คล้ายกันให้กับลูกค้าทุกคน ไม่ว่าอุปกรณ์ของผู้ใช้ปลายทางจะเป็นอะไรก็ตาม
- ปรับปรุงความพร้อมใช้งานของฟีเจอร์ Generative AI ไม่ว่าจะเป็นการเชื่อมต่ออินเทอร์เน็ต ข้อจำกัดของโควต้า หรือความสามารถของอุปกรณ์
ความสามารถ, API และอุปกรณ์ที่รองรับ
ก่อนที่จะใช้การอนุมานแบบไฮบริดและในอุปกรณ์โดยใช้ Firebase AI Logic โปรดอ่านส่วนนี้เพื่อทำความเข้าใจสิ่งที่รองรับสำหรับแอป Apple
ความสามารถและฟีเจอร์ที่รองรับสำหรับการอนุมานในอุปกรณ์
การอนุมานในอุปกรณ์รองรับเฉพาะการสร้างข้อความ โดยเฉพาะความสามารถในการสร้างข้อความต่อไปนี้
โปรดดูรายการโดยละเอียดสำหรับการอนุมานแบบไฮบริดหรือในอุปกรณ์ที่ยังไม่รองรับ ที่ด้านล่างของหน้านี้
API และอุปกรณ์ที่รองรับ
การอนุมานในระบบคลาวด์ใช้Gemini APIผู้ให้บริการที่คุณเลือก (Gemini Developer API หรือ Vertex AI Gemini API)
การอนุมานในอุปกรณ์ใช้เฟรมเวิร์ก Foundation Models ของ Apple ซึ่ง ใช้ได้เฉพาะใน อุปกรณ์ที่เปิดใช้ Apple Intelligence ระบบจะดาวน์โหลดโมเดลในอุปกรณ์โดยอัตโนมัติเมื่อเปิดใช้ Apple Intelligence
เริ่มต้นใช้งาน
ตรวจสอบว่าคุณได้อ่านส่วนด้านบนที่อธิบายความสามารถ API และอุปกรณ์ที่รองรับแล้ว
ขั้นตอนการเริ่มต้นใช้งานเหล่านี้อธิบายการตั้งค่าทั่วไปที่จำเป็นสำหรับคำขอพรอมต์ที่รองรับ ที่คุณต้องการส่ง
ขั้นตอนที่ 1: ตั้งค่าโปรเจ็กต์ Firebase และเชื่อมต่อแอปกับ Firebase
ลงชื่อเข้าใช้คอนโซล Firebase แล้วเลือกโปรเจ็กต์ Firebase
ในFirebaseคอนโซล ให้ไปที่บริการ AI > ตรรกะ AI
คลิกเริ่มต้นใช้งานเพื่อเปิดตัวเวิร์กโฟลว์แบบมีคำแนะนำที่จะช่วยคุณตั้งค่า API ที่จำเป็น และทรัพยากรสำหรับโปรเจ็กต์
ตั้งค่าโปรเจ็กต์ให้ใช้ผู้ให้บริการ "Gemini API"
เราขอแนะนำให้เริ่มต้นใช้งานโดยใช้ Gemini Developer API คุณสามารถตั้งค่าVertex AI Gemini API (และข้อกำหนดสำหรับการเรียกเก็บเงิน) ได้ทุกเมื่อ
สำหรับ Gemini Developer API คอนโซลจะเปิดใช้ API ที่จำเป็น และสร้างคีย์ API ของ Gemini ในโปรเจ็กต์ของคุณ
อย่าเพิ่มคีย์ API Gemini นี้ลงในโค้ดเบสของแอป ดูข้อมูลเพิ่มเติมหากได้รับแจ้งในเวิร์กโฟลว์ของคอนโซล ให้ทำตามวิธีการบนหน้าจอเพื่อ ลงทะเบียนแอปและเชื่อมต่อกับ Firebase
ทําตามขั้นตอนถัดไปในคู่มือนี้เพื่อเพิ่ม SDK ลงในแอป
ขั้นตอนที่ 2: เพิ่ม SDK ที่จำเป็น
ใช้ Swift Package Manager (SPM) เพื่อติดตั้งและจัดการทรัพยากร Dependency ของ Xcode การรองรับไฮบริด จะใช้ได้เมื่อใช้ SPM เท่านั้น
Firebase AI Logic ไลบรารีให้สิทธิ์เข้าถึง API สำหรับการโต้ตอบ
กับโมเดล Generative ไลบรารีนี้รวมอยู่ใน Firebase SDK
สำหรับแพลตฟอร์ม Apple (firebase-ios-sdk)
หากใช้ Firebase อยู่แล้ว ให้ตรวจสอบว่าแพ็กเกจ Firebase เป็น v12.13.0 ขึ้นไป
เปิดโปรเจ็กต์แอปใน Xcode แล้วไปที่ File > Add Package Dependencies
เมื่อได้รับข้อความแจ้ง ให้เพิ่มที่เก็บ Firebase Apple Platforms SDK ดังนี้
https://github.com/firebase/firebase-ios-sdkเลือก SDK เวอร์ชันล่าสุด
เลือกคลัง
FirebaseAILogic
เมื่อเสร็จแล้ว Xcode จะเริ่มจับคู่ข้อมูลและดาวน์โหลดทรัพยากร Dependency ในเบื้องหลังโดยอัตโนมัติ
ขั้นตอนที่ 3: เริ่มต้นบริการและสร้างอินสแตนซ์เซสชันโมเดล
|
คลิกผู้ให้บริการ Gemini API เพื่อดูเนื้อหาและโค้ดของผู้ให้บริการรายนั้นๆ ในหน้านี้ |
ตั้งค่าสิ่งต่อไปนี้ก่อนส่งคำขอพรอมต์ไปยังโมเดล
เริ่มต้นบริการสำหรับGemini APIผู้ให้บริการที่คุณเลือก
สร้างอินสแตนซ์
GenerativeModelSessionด้วยHybridModelตั้งค่าโมเดล
primaryและsecondaryตามค่ากำหนดของคุณ คุณ ตั้งค่าลำดับของการอนุมานที่พยายามได้ดังนี้ลองใช้การอนุมานในอุปกรณ์ก่อน แต่ให้ใช้ระบบคลาวด์เป็นตัวเลือกสำรอง: ตั้งค่า
primaryเป็นโมเดล "ระบบ" และsecondaryเป็นโมเดลระบบคลาวด์พยายามใช้การอนุมานในระบบคลาวด์ก่อน แต่ให้ใช้การอนุมานในอุปกรณ์เป็นทางเลือกสำรอง: ตั้งค่า
primaryเป็นโมเดลระบบคลาวด์และsecondaryเป็นโมเดล "ระบบ"
โปรดทราบว่า SDK รองรับการตั้งค่า
modelเพียงรายการเดียว ซึ่งหมายความว่า SDK จะพยายามอนุมานบนอุปกรณ์หรือในระบบคลาวด์เท่านั้น อย่างไรก็ตาม หากต้องการประสบการณ์การใช้งานแบบผสมผสาน คุณต้องสร้างHybridModelและตั้งค่าทั้งโมเดลprimaryและsecondaryดูข้อมูลเพิ่มเติมเกี่ยวกับลักษณะการทำงานของ "โหมดการอนุมาน" (ลำดับของการอนุมานที่พยายาม) ในตัวเลือกการกำหนดค่า
ตัวอย่างต่อไปนี้แสดงวิธีลองใช้การอนุมานในอุปกรณ์ก่อน แต่จะอนุญาตให้ใช้โมเดลที่โฮสต์ในระบบคลาวด์แทนได้
// Initialize the Gemini Developer API backend service
let ai = FirebaseAI.firebaseAI(backend: .googleAI())
// 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 Hybrid Model
// Provide your preferred model as `primary` and your fallback model as `secondary`
// In this example, attempt to use on-device model; otherwise, fall back to cloud.
let hybridModel = HybridModel(
primary: systemModel,
secondary: cloudModel
)
// Create a GenerativeModelSession with the HybridModel created earlier.
let session = firebaseAI.generativeModelSession(
model: hybridModel,
)
ขั้นตอนที่ 4: ส่งคำขอพรอมต์ไปยังโมเดล
ส่วนนี้จะแสดงวิธีดำเนินการต่อไปนี้
สร้างข้อความจากอินพุตที่เป็นข้อความเท่านั้น
| ก่อนที่จะลองใช้ตัวอย่างนี้ โปรดตรวจสอบว่าคุณได้ทำตามส่วนเริ่มต้นใช้งานของคู่มือนี้แล้ว |
หากต้องการสร้างข้อความจากพรอมต์ที่มีข้อความ ให้ใช้ respond(to:) ดังนี้
// Imports + initialization of Gemini API backend service + creation of model session
// Provide a prompt that contains text
let prompt = "Write a story about a magic backpack."
// To generate text output, call `respond(to:)` with the text input
let response = try await session.respond(to: prompt)
print(response.content)
สตรีมข้อความจากอินพุตแบบข้อความเท่านั้น
| ก่อนที่จะลองใช้ตัวอย่างนี้ โปรดตรวจสอบว่าคุณได้ทำตามส่วนเริ่มต้นใช้งานของคู่มือนี้แล้ว |
คุณสามารถโต้ตอบได้เร็วขึ้นโดยไม่ต้องรอผลลัพธ์ทั้งหมดจากการสร้างโมเดล แต่ให้ใช้การสตรีมเพื่อจัดการผลลัพธ์บางส่วนแทน หากต้องการสตรีมข้อความที่สร้างขึ้นจากพรอมต์ที่มีข้อความ ให้ใช้
streamResponse(to:) ดังนี้
// Imports + initialization of Gemini API backend service + creation of model session
// Provide a prompt that contains text
let prompt = "Write a story about a magic backpack."
// To stream generated text output, call `streamResponse(to:)` with the text input
let stream = session.streamResponse(to: prompt)
for try await snapshot in stream {
print(snapshot.content)
}
คุณทำอะไรได้อีกบ้าง
คุณสามารถใช้ตัวเลือกการกำหนดค่าและความสามารถเพิ่มเติมต่างๆ สำหรับประสบการณ์แบบไฮบริดได้ดังนี้
ฟีเจอร์ที่ยังไม่รองรับการอนุมานแบบไฮบริดหรือในอุปกรณ์
เนื่องจากเป็นรุ่นทดลอง ระบบจึงไม่รองรับความสามารถทั้งหมดของ Firebase AI Logic หรือโมเดลที่โฮสต์ในระบบคลาวด์
การติดตั้งใช้งานแบบไฮบริดหรือในอุปกรณ์ไม่รองรับโมเดล Imagen, Gemini Live API และเทมเพลตพรอมต์ นอกจากนี้ ไม่ควรใช้โทเค็นจำนวนมากเนื่องจากจำนวนจะแตกต่างกันระหว่างโมเดลที่โฮสต์ในระบบคลาวด์กับโมเดลในอุปกรณ์ จึงไม่มีการสำรองข้อมูลที่ใช้งานง่าย
การอนุมานในอุปกรณ์ยังไม่รองรับฟีเจอร์ต่อไปนี้ หากต้องการใช้ฟีเจอร์เหล่านี้ เราขอแนะนำให้ใช้เฉพาะโมเดลที่โฮสต์ในระบบคลาวด์เพื่อให้ได้รับประสบการณ์การใช้งานที่สอดคล้องกันมากขึ้น
การสร้างข้อความจากอินพุตหลายรูปแบบ เช่น รูปภาพ เสียง วิดีโอ และ เอกสาร (PDF)
การสร้างสื่อ เช่น รูปภาพ เสียง หรือวิดีโอ
การส่งคำขอที่มีโทเค็นเกิน 4096 รายการ (หรือประมาณ 3000 คำในภาษาอังกฤษ)
การจัดหาเครื่องมือในตัวให้กับโมเดลในอุปกรณ์เพื่อช่วยสร้าง คำตอบ (เช่น การเรียกใช้โค้ด บริบท URL และการอ้างอิงจาก Google Search)
การตรวจสอบ AI ในคอนโซล Firebase จะไม่แสดงข้อมูลใดๆ สำหรับ การอนุมานในอุปกรณ์ (รวมถึงบันทึกในอุปกรณ์) อย่างไรก็ตาม การอนุมานใดๆ ที่ ใช้โมเดลที่โฮสต์ในระบบคลาวด์สามารถตรวจสอบได้เช่นเดียวกับการอนุมานอื่นๆ ผ่าน Firebase AI Logic
ข้อจำกัดเพิ่มเติม
นอกเหนือจากที่กล่าวมาข้างต้น การอนุมานในอุปกรณ์มีข้อจำกัดต่อไปนี้
ผู้ใช้ปลายทางของแอปต้องใช้อุปกรณ์ที่เปิดใช้ Apple Intelligence
แอปจะเรียกใช้การอนุมานในอุปกรณ์ได้ก็ต่อเมื่อแอปอยู่เบื้องหน้าเท่านั้น
แสดงความคิดเห็น เกี่ยวกับประสบการณ์การใช้งาน Firebase AI Logic