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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  5. เมื่อระบบขอให้เลือก "ผู้ให้บริการ Gemini API" เราขอแนะนำให้เลือก Gemini Developer API ซึ่งจะช่วยให้คุณเริ่มต้นใช้งานได้อย่างรวดเร็วโดยไม่มีค่าใช้จ่าย

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

  6. ดำเนินการต่อในเวิร์กโฟลว์เพื่อตั้งค่า API ที่จำเป็นและบริการที่เกี่ยวข้องสำหรับ Firebase AI Logic

    ตั้งแต่ต้นเดือนกรกฎาคม 2026 เป็นต้นไป ขั้นตอนนี้ของเวิร์กโฟลว์จะบังคับใช้ Firebase App Check สำหรับ AI Logic โดยอัตโนมัติ ซึ่งเป็นบริการสำคัญที่ช่วยปกป้อง Gemini API เมื่อมีการเข้าถึงโดยตรงจากแอปของคุณ ในการเริ่มต้นใช้งาน (ดูขั้นตอนในคู่มือนี้) คุณจะต้องกำหนดค่าApp Check ผู้ให้บริการแก้ไขข้อบกพร่องสำหรับการพัฒนาในเครื่องเมื่อมีการบังคับใช้ App Check

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

  1. ใน Xcode ขณะที่โปรเจ็กต์แอปเปิดอยู่ ให้ไปที่ไฟล์ > เพิ่มทรัพยากร Dependency ของแพ็กเกจ

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

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

  4. เลือกไลบรารี FirebaseAILogic และ FirebaseAppCheck

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

ขั้นตอนที่ 3: กำหนดค่าผู้ให้บริการแก้ไขข้อบกพร่อง App Check สำหรับการพัฒนาในเครื่อง

ตั้งแต่ต้นเดือนกรกฎาคม 2026 เป็นต้นไป Firebase App Check จะได้รับการบังคับใช้โดยอัตโนมัติเพื่อปกป้อง Gemini API โดยเป็นส่วนหนึ่งของเวิร์กโฟลว์การตั้งค่าที่มีคำแนะนำสำหรับ AI Logic ในคอนโซล สำหรับการพัฒนาในเครื่อง คุณต้องกำหนดค่าApp Check ผู้ให้บริการแก้ไขข้อบกพร่องเพื่อข้ามการรับรองในขณะที่ยังคงบังคับใช้ App Check

วิธีใช้ผู้ให้บริการแก้ไขข้อบกพร่องขณะเรียกใช้แอปในเครื่องจำลองแบบอินเทอร์แอกทีฟ (เช่น ระหว่างการพัฒนาในเครื่อง) มีดังนี้

  1. ในโปรเจ็กต์ Xcode ให้นําเข้า FirebaseAppCheck และเริ่มต้น App Check ด้วยโรงงานผู้ให้บริการแก้ไขข้อบกพร่องก่อนกําหนดค่า Firebase

    import SwiftUI
    import FirebaseCore
    import FirebaseAppCheck
    
    @main
    struct YourApp: App {
      init() {
        let providerFactory = AppCheckDebugProviderFactory()
        AppCheck.setAppCheckProviderFactory(providerFactory)
        FirebaseApp.configure()
      }
    
      var body: some Scene {
        WindowGroup {
          NavigationView {
            ContentView()
          }
        }
      }
    }
    
  2. รับโทเค็นการแก้ไขข้อบกพร่องโดยทำดังนี้

    1. เปิดแอปในเครื่องจำลองหรือในอุปกรณ์ทดสอบ

    2. เปิดคอนโซล Xcode แล้วมองหาโทเค็นการแก้ไขข้อบกพร่อง App Check เช่น

      <Warning> [AppCheckCore][I-GAC004001] App Check debug token: '123a4567-b89c-12d3-e456-789012345678'.
      
    3. คัดลอกโทเค็น (เช่น 123a4567-b89c-12d3-e456-789012345678)

  3. ลงทะเบียนโทเค็นการแก้ไขข้อบกพร่องกับ App Check โดยทำดังนี้

    1. ในคอนโซล Firebase ให้ไปที่แท็บความปลอดภัย > App Check > แอป

    2. ค้นหาแอปของคุณ คลิกเมนูรายการเพิ่มเติม () แล้วเลือกจัดการโทเค็นการแก้ไขข้อบกพร่อง

    3. ทำตามวิธีการบนหน้าจอเพื่อลงทะเบียนโทเค็นการแก้ไขข้อบกพร่อง

ดูรายละเอียดเกี่ยวกับผู้ให้บริการแก้ไขข้อบกพร่อง (รวมถึงวิธีรับโทเค็นการแก้ไขข้อบกพร่องใหม่) ได้ที่เอกสารประกอบอย่างเป็นทางการของ App Check

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

คลิกผู้ให้บริการ 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,
)

ขั้นตอนที่ 5: ส่งคำขอพรอมต์ไปยังโมเดล

ส่วนนี้จะแสดงวิธีการทำสิ่งต่อไปนี้

สร้างข้อความที่สร้างขึ้นจากอินพุตแบบข้อความเท่านั้น

ก่อนลองใช้ตัวอย่างนี้ โปรดตรวจสอบว่าคุณได้ทำตามส่วนเริ่มต้นใช้งานของคู่มือนี้แล้ว

หากต้องการสร้างข้อความที่สร้างขึ้นจากพรอมต์ที่มีข้อความ ให้ใช้ 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 หรือโมเดลที่โฮสต์ในระบบคลาวด์

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

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

    • การสร้างข้อความที่สร้างขึ้นจากอินพุตหลายรูปแบบ เช่น รูปภาพ เสียง วิดีโอ และเอกสาร (PDF)

    • การสร้างสื่อ เช่น รูปภาพ เสียง หรือวิดีโอ

    • การส่งคำขอที่เกิน 4,096 โทเค็น (หรือประมาณ 3,000 คำในภาษาอังกฤษ)

    • การจัดหาโมเดลในอุปกรณ์พร้อมเครื่องมือในตัวเพื่อช่วยสร้างคำตอบ (เช่น การเรียกใช้โค้ด, บริบท URL และการเชื่อมต่อแหล่งข้อมูลกับ Google Search)

  • การตรวจสอบ AI ในคอนโซล Firebase จะไม่แสดงข้อมูลสำหรับการอนุมานในอุปกรณ์ (รวมถึงบันทึกของอุปกรณ์) อย่างไรก็ตาม การอนุมานใดๆ ที่ใช้โมเดลที่โฮสต์ในระบบคลาวด์สามารถตรวจสอบได้เช่นเดียวกับการอนุมานอื่นๆ ผ่าน Firebase AI Logic

ข้อจำกัดเพิ่มเติม

นอกเหนือจากที่กล่าวมาข้างต้นแล้ว การอนุมานในอุปกรณ์ยังมีข้อจำกัดต่อไปนี้ด้วย

  • ผู้ใช้ปลายทางของแอปต้องใช้อุปกรณ์ที่เปิดใช้ Apple Intelligence

  • แอปของคุณจะเรียกใช้การอนุมานในอุปกรณ์ได้ก็ต่อเมื่อแอปทำงานอยู่เบื้องหน้าเท่านั้น


แสดงความคิดเห็นเกี่ยวกับประสบการณ์การใช้งาน Firebase AI Logic