สร้างประสบการณ์แบบไฮบริดในแอปของ Apple ด้วยโมเดลในอุปกรณ์และโมเดลที่โฮสต์ในระบบคลาวด์

คุณสามารถสร้างแอปและฟีเจอร์ของ Apple ที่ทำงานด้วยระบบ AI ด้วยการอนุมานแบบไฮบริดโดยใช้ Firebase AI Logic การอนุมานแบบไฮบริดช่วยให้สามารถเรียกใช้การอนุมานโดยใช้ โมเดลในอุปกรณ์ (โดยเฉพาะเฟรมเวิร์ก Foundation Models ของ Apple) เมื่อ พร้อมใช้งาน และเปลี่ยนกลับไปใช้โมเดลของ Google ที่โฮสต์ในระบบคลาวด์ได้อย่างราบรื่นในกรณีอื่นๆ (และในทางกลับกัน)

หน้านี้อธิบายวิธี เริ่มต้นใช้งาน Client SDK รวมถึงแสดง ตัวเลือกการกำหนดค่าและความสามารถเพิ่มเติม เช่น อุณหภูมิ

โปรดทราบว่าระบบรองรับการอนุมานในอุปกรณ์ผ่าน Firebase AI Logic สำหรับแอป Apple ที่ใช้ Firebase AI Logic SDK เวอร์ชัน 12.13.0 ขึ้นไปและทำงานบนอุปกรณ์ที่เปิดใช้ Apple Intelligence โดยเป็นไปตาม ข้อกำหนดการใช้งานที่ยอมรับได้สำหรับเฟรมเวิร์กโมเดลพื้นฐานของ Apple

กรณีการใช้งานที่แนะนำ

  • การใช้โมเดลในอุปกรณ์สำหรับการอนุมานมีข้อดีดังนี้

    • ความเป็นส่วนตัวที่ดียิ่งขึ้น
    • การอนุมานโดยไม่มีค่าใช้จ่าย
    • ฟังก์ชันการทำงานแบบออฟไลน์
  • การใช้ฟังก์ชันไฮบริดมีข้อดีดังนี้

    • มอบประสบการณ์การใช้งานแอปที่คล้ายกันให้กับลูกค้าทุกคน ไม่ว่าอุปกรณ์ของผู้ใช้ปลายทางจะเป็นอะไรก็ตาม
    • ปรับปรุงความพร้อมใช้งานของฟีเจอร์ Generative AI ไม่ว่าจะเป็นการเชื่อมต่ออินเทอร์เน็ต ข้อจำกัดของโควต้า หรือความสามารถของอุปกรณ์

ความสามารถ, API และอุปกรณ์ที่รองรับ

ก่อนที่จะใช้การอนุมานแบบไฮบริดและในอุปกรณ์โดยใช้ตรรกะ AI ของ Firebase โปรดอ่านส่วนนี้เพื่อทำความเข้าใจสิ่งที่รองรับสำหรับแอป Apple

ความสามารถและฟีเจอร์ที่รองรับสำหรับการอนุมานในอุปกรณ์

การอนุมานในอุปกรณ์รองรับเฉพาะการสร้างข้อความ โดยเฉพาะความสามารถในการสร้างข้อความต่อไปนี้

โปรดดูรายการโดยละเอียดสำหรับการอนุมานแบบไฮบริดหรือในอุปกรณ์ที่ยังไม่รองรับที่ด้านล่างของหน้านี้

API และอุปกรณ์ที่รองรับ

เริ่มต้นใช้งาน

โปรดตรวจสอบว่าคุณได้อ่านส่วนด้านบนที่อธิบายความสามารถ API และอุปกรณ์ที่รองรับแล้ว

ขั้นตอนการเริ่มต้นใช้งานเหล่านี้อธิบายการตั้งค่าทั่วไปที่จำเป็นสำหรับคำขอพรอมต์ที่รองรับ ที่คุณต้องการส่ง

ขั้นตอนที่ 1: ตั้งค่าโปรเจ็กต์ Firebase และเชื่อมต่อแอปกับ Firebase

  1. ลงชื่อเข้าใช้คอนโซล Firebase แล้วเลือกโปรเจ็กต์ Firebase

  2. ในFirebaseคอนโซล ให้ไปที่บริการ AI > ตรรกะ AI

  3. คลิกเริ่มต้นใช้งานเพื่อเปิดตัวเวิร์กโฟลว์แบบมีคำแนะนำที่จะช่วยคุณตั้งค่า API ที่จำเป็น และทรัพยากรสำหรับโปรเจ็กต์

  4. ตั้งค่าโปรเจ็กต์ให้ใช้ผู้ให้บริการ "Gemini API"

    เราขอแนะนำให้เริ่มต้นใช้งานโดยใช้ Gemini Developer API คุณสามารถตั้งค่าVertex AI Gemini API (และข้อกำหนดสำหรับการเรียกเก็บเงิน) ได้ทุกเมื่อ

    สำหรับ Gemini Developer API คอนโซลจะเปิดใช้ API ที่จำเป็น และสร้างคีย์ API ของ Gemini ในโปรเจ็กต์
    อย่าเพิ่มคีย์ API Gemini นี้ลงในโค้ดเบสของแอป ดูข้อมูลเพิ่มเติม

  5. หากได้รับข้อความแจ้งในเวิร์กโฟลว์ของคอนโซล ให้ทำตามวิธีการบนหน้าจอเพื่อ ลงทะเบียนแอปและเชื่อมต่อกับ Firebase

  6. ทําตามขั้นตอนถัดไปในคู่มือนี้เพื่อเพิ่ม 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 ขึ้นไป

  1. เปิดโปรเจ็กต์แอปใน Xcode แล้วไปที่ File > Add Package Dependencies

  2. เมื่อได้รับข้อความแจ้ง ให้เพิ่มที่เก็บ Firebase Apple Platforms SDK ดังนี้

    https://github.com/firebase/firebase-ios-sdk
    
  3. เลือก SDK เวอร์ชันล่าสุด

  4. เลือกคลังFirebaseAILogic

เมื่อเสร็จแล้ว Xcode จะเริ่มจับคู่ข้อมูลและดาวน์โหลดทรัพยากร Dependency ในเบื้องหลังโดยอัตโนมัติ

ขั้นตอนที่ 3: เริ่มต้นบริการและสร้างอินสแตนซ์เซสชันโมเดล

คลิกผู้ให้บริการ Gemini API เพื่อดูเนื้อหาและโค้ดเฉพาะของผู้ให้บริการ ในหน้านี้

ตั้งค่าสิ่งต่อไปนี้ก่อนส่งคำขอพรอมต์ไปยังโมเดล

  1. เริ่มต้นบริการสำหรับGemini APIผู้ให้บริการที่เลือก

  2. สร้างอินสแตนซ์ GenerativeModelSession ด้วย HybridModel

  3. ตั้งค่าโมเดล 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