คุณสามารถสร้างแอปและฟีเจอร์ของ Apple ที่ทำงานด้วยระบบ AI พร้อมการอนุมานแบบไฮบริดโดยใช้ Firebase AI Logic การอนุมานแบบไฮบริดช่วยให้สามารถทำการอนุมานโดยใช้โมเดลในอุปกรณ์ (โดยเฉพาะเฟรมเวิร์ก Foundation Models ของ Apple) เมื่อพร้อมใช้งาน และกลับไปใช้โมเดลของ Google ที่โฮสต์บนระบบคลาวด์ได้อย่างราบรื่นในกรณีอื่นๆ (และในทางกลับกัน)
หน้านี้อธิบายวิธี เริ่มต้นใช้งาน Client SDK, รวมถึงแสดง ตัวเลือกการกำหนดค่าและความสามารถเพิ่มเติม, เช่น อุณหภูมิ
โปรดทราบว่าระบบรองรับการอนุมานในอุปกรณ์ผ่าน Firebase AI Logic สำหรับแอป Apple ที่ใช้ Firebase AI Logic SDK เวอร์ชัน 12.13.0 ขึ้นไปและทำงานใน อุปกรณ์ที่เปิดใช้ Apple Intelligence โดยอยู่ภายใต้ ข้อกำหนดการใช้งานที่ยอมรับได้สำหรับเฟรมเวิร์ก Foundation Models ของ 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 Logic
คลิกเริ่มต้นใช้งาน เพื่อเปิดใช้เวิร์กโฟลว์แบบแนะนำที่จะช่วยคุณตั้งค่า API ที่จำเป็น และทรัพยากรสำหรับโปรเจ็กต์
ตั้งค่าโปรเจ็กต์ให้ใช้ผู้ให้บริการ "Gemini API"
เราขอแนะนำให้เริ่มต้นใช้งานโดยใช้ Gemini Developer API. คุณสามารถตั้งค่า Vertex AI Gemini API (และข้อกำหนดในการเรียกเก็บเงิน) ได้ทุกเมื่อ
สำหรับ Gemini Developer API คอนโซลจะเปิดใช้ API ที่จำเป็น และสร้างคีย์ Gemini API ในโปรเจ็กต์
**ห้าม** เพิ่มคีย์ Gemini API นี้ลงในโค้ดเบสของแอป ดูข้อมูลเพิ่มเติมหากระบบแจ้งในเวิร์กโฟลว์ของคอนโซล ให้ทำตามวิธีการบนหน้าจอเพื่อลงทะเบียนแอปและเชื่อมต่อแอปกับ Firebase
ทำตามขั้นตอนถัดไปในคู่มือนี้เพื่อเพิ่ม SDK ลงในแอป
ขั้นตอนที่ 2: เพิ่ม SDK ที่จำเป็น
ใช้ Swift Package Manager (SPM) เพื่อติดตั้งและจัดการทรัพยากร Dependency ของ Xcode การรองรับแบบไฮบริดจะใช้ได้เมื่อใช้ SPM เท่านั้น
ไลบรารี Firebase AI Logic ช่วยให้เข้าถึง API สำหรับโต้ตอบ
กับโมเดล Generative ได้ ไลบรารีนี้รวมอยู่ใน Firebase SDK สำหรับแพลตฟอร์ม Apple (firebase-ios-sdk)
หากคุณใช้ Firebase อยู่แล้ว โปรดตรวจสอบว่าแพ็กเกจ Firebase เป็นเวอร์ชัน 12.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