Membangun pengalaman hybrid di aplikasi Apple dengan model yang dihosting di perangkat dan cloud

Anda dapat membuat aplikasi dan fitur Apple berteknologi AI dengan inferensi hibrida menggunakan Firebase AI Logic. Inferensi hybrid memungkinkan inferensi berjalan menggunakan model di perangkat (khususnya framework Model Dasar Apple) jika tersedia dan melakukan failover dengan lancar ke model Google yang dihosting di cloud jika tidak tersedia (dan sebaliknya).

Halaman ini menjelaskan cara mulai menggunakan SDK klien, serta menunjukkan opsi dan kemampuan konfigurasi tambahan, seperti suhu.

Perhatikan bahwa inferensi di perangkat melalui Firebase AI Logic didukung untuk aplikasi Apple yang menggunakan Firebase AI Logic SDK v12.13.0+ dan berjalan di perangkat dengan Apple Intelligence diaktifkan. Penggunaannya diatur oleh Persyaratan penggunaan yang dapat diterima untuk framework Model Dasar Apple.

Kasus penggunaan yang direkomendasikan

  • Penggunaan model di perangkat untuk inferensi menawarkan:

    • Privasi yang ditingkatkan
    • Inferensi tanpa biaya
    • Fungsi offline
  • Menggunakan penawaran fungsi hybrid:

    • Memberikan pengalaman aplikasi yang serupa kepada semua pelanggan, terlepas dari perangkat pengguna akhir
    • Meningkatkan ketersediaan fitur AI generatif, terlepas dari konektivitas internet, batasan kuota, atau kemampuan perangkat

Kemampuan, API, dan perangkat yang didukung

Sebelum Anda menerapkan inferensi hybrid dan di perangkat menggunakan Firebase AI Logic, tinjau bagian ini untuk memahami apa yang didukung untuk aplikasi Apple.

Kemampuan dan fitur yang didukung untuk inferensi di perangkat

Inferensi di perangkat hanya mendukung pembuatan teks, khususnya kemampuan pembuatan teks berikut:

Pastikan untuk meninjau daftar mendetail untuk inferensi hybrid atau di perangkat yang belum didukung di bagian bawah halaman ini.

API dan perangkat yang didukung

Mulai

Pastikan Anda telah meninjau bagian di atas yang menjelaskan kemampuan, API, dan perangkat yang didukung.

Langkah-langkah memulai ini menjelaskan penyiapan umum yang diperlukan untuk setiap permintaan perintah yang didukung yang ingin Anda kirim.

Langkah 1: Siapkan project Firebase dan hubungkan aplikasi Anda ke Firebase

  1. Login ke konsol Firebase, lalu pilih project Firebase Anda.

  2. Di konsol Firebase, buka AI Services > AI Logic.

  3. Klik Mulai untuk meluncurkan alur kerja terpandu yang membantu Anda menyiapkan API dan resource yang diperlukan untuk project Anda.

  4. Siapkan project Anda untuk menggunakan penyedia "Gemini API".

    Sebaiknya mulai menggunakan Gemini Developer API. Kapan saja, Anda selalu dapat menyiapkan Vertex AI Gemini API (dan persyaratan penagihannya).

    Untuk Gemini Developer API, konsol akan mengaktifkan API yang diperlukan dan membuat kunci API Gemini di project Anda.
    Jangan tambahkan kunci API Gemini ini ke codebase aplikasi Anda. Pelajari lebih lanjut.

  5. Jika diminta dalam alur kerja konsol, ikuti petunjuk di layar untuk mendaftarkan aplikasi dan menghubungkannya ke Firebase.

  6. Lanjutkan ke langkah berikutnya dalam panduan ini untuk menambahkan SDK ke aplikasi Anda.

Langkah 2: Tambahkan SDK yang diperlukan

Gunakan Swift Package Manager (SPM) untuk menginstal dan mengelola dependensi Xcode. Dukungan hibrida hanya tersedia saat menggunakan SPM.

Library Firebase AI Logic menyediakan akses ke API untuk berinteraksi dengan model generatif. Library ini disertakan sebagai bagian dari Firebase SDK untuk platform Apple (firebase-ios-sdk).

Jika Anda sudah menggunakan Firebase, pastikan paket Firebase Anda adalah v12.13.0 atau yang lebih baru.

  1. Di Xcode, dengan project aplikasi Anda dalam keadaan terbuka, buka File > Add Package Dependencies.

  2. Saat diminta, tambahkan repositori SDK platform Apple Firebase:

    https://github.com/firebase/firebase-ios-sdk
    
  3. Pilih versi SDK terbaru.

  4. Pilih library FirebaseAILogic.

Setelah selesai, Xcode akan otomatis mulai me-resolve dan mendownload dependensi Anda di latar belakang.

Langkah 3: Lakukan inisialisasi layanan dan buat instance sesi model

Klik penyedia Gemini API untuk melihat konten dan kode khusus penyedia di halaman ini.

Siapkan hal berikut sebelum Anda mengirim permintaan perintah ke model.

  1. Lakukan inisialisasi layanan untuk penyedia Gemini API pilihan Anda.

  2. Buat instance GenerativeModelSession dengan HybridModel.

  3. Tetapkan model primary dan secondary berdasarkan preferensi Anda. Anda dapat menetapkan urutan inferensi yang dicoba:

    • Coba inferensi di perangkat terlebih dahulu, tetapi izinkan penggantian ke cloud: tetapkan primary ke model "sistem" dan secondary ke model cloud.

    • Coba inferensi dalam cloud terlebih dahulu, tetapi izinkan penggantian ke perangkat: tetapkan primary ke model cloud dan secondary ke model "sistem".

    Perhatikan bahwa SDK mendukung penetapan hanya satu model yang berarti SDK akan hanya mencoba inferensi dalam perangkat atau dalam cloud. Namun, untuk pengalaman hybrid, Anda perlu membuat HybridModel dan menetapkan model primary dan secondary.

    Pelajari lebih lanjut perilaku "mode inferensi" (urutan inferensi yang dicoba) di Opsi konfigurasi.

Contoh berikut menunjukkan cara mencoba inferensi di perangkat terlebih dahulu, tetapi mengizinkan penggantian ke model yang dihosting di cloud:

// 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,
)

Langkah 4: Kirim permintaan perintah ke model

Bagian ini menunjukkan cara melakukan hal berikut:

Membuat teks dari input khusus teks

Sebelum mencoba contoh ini, pastikan Anda telah menyelesaikan bagian Mulai dalam panduan ini.

Untuk membuat teks dari perintah yang berisi teks, gunakan respond(to:) seperti berikut:

// 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)

Streaming teks dari input khusus teks

Sebelum mencoba contoh ini, pastikan Anda telah menyelesaikan bagian Mulai dalam panduan ini.

Anda dapat mencapai interaksi yang lebih cepat dengan tidak menunggu seluruh hasil dari pembuatan model, dan menggunakan streaming untuk menangani hasil parsial. Untuk mengalirkan teks yang dihasilkan dari perintah yang berisi teks, gunakan streamResponse(to:) seperti berikut:

// 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)
}

Kamu bisa apa lagi?

Anda dapat menggunakan berbagai opsi dan kemampuan konfigurasi tambahan untuk pengalaman hybrid:

Fitur yang belum didukung untuk inferensi hibrida atau di perangkat

Sebagai rilis eksperimental, tidak semua kemampuan Firebase AI Logic atau model yang dihosting di cloud didukung.

  • Berikut adalah yang tidak didukung untuk penerapan hybrid atau di perangkat: Model Imagen, Gemini Live API, dan template prompt. Selain itu, token jumlah tidak boleh diandalkan karena jumlahnya akan berbeda antara model yang dihosting di cloud dan model di perangkat, sehingga tidak ada penggantian yang intuitif.

  • Fitur berikut belum didukung untuk inferensi di perangkat. Jika Anda ingin menggunakan salah satu fitur ini, sebaiknya gunakan hanya model yang dihosting di cloud untuk pengalaman yang lebih konsisten.

    • Membuat teks dari input multimodal, seperti gambar, audio, video, dan dokumen (PDF)

    • Membuat media, seperti gambar, audio, atau video

    • Mengirim permintaan yang melebihi 4.096 token (atau sekitar 3.000 kata dalam bahasa Inggris).

    • Menyediakan alat bawaan untuk model di perangkat guna membantu model membuat responsnya (seperti eksekusi kode, konteks URL, dan Grounding dengan Google Penelusuran)

  • Pemantauan AI di konsol Firebase tidak menampilkan data apa pun untuk inferensi di perangkat (termasuk log di perangkat). Namun, inferensi apa pun yang menggunakan model yang dihosting di cloud dapat dipantau seperti inferensi lainnya melalui Firebase AI Logic.

Batasan tambahan

Selain hal di atas, inferensi di perangkat memiliki batasan berikut:


Memberikan masukan tentang pengalaman Anda dengan Firebase AI Logic