ساخت تجربه‌های ترکیبی در اپلیکیشن‌های اپل با مدل‌های روی دستگاه و ابری

شما می‌توانید برنامه‌ها و ویژگی‌های اپل مبتنی بر هوش مصنوعی را با استنتاج ترکیبی و با استفاده از منطق هوش مصنوعی فایربیس بسازید. استنتاج ترکیبی، اجرای استنتاج با استفاده از مدل‌های روی دستگاه (به‌ویژه چارچوب مدل‌های بنیادی اپل) را در صورت وجود امکان‌پذیر می‌کند و در غیر این صورت (و برعکس) به طور یکپارچه به مدل‌های گوگل میزبانی شده توسط ابر بازمی‌گردد.

این صفحه نحوه شروع به کار با SDK کلاینت و همچنین نمایش گزینه‌ها و قابلیت‌های پیکربندی اضافی ، مانند دما، را شرح می‌دهد.

توجه داشته باشید که استنتاج روی دستگاه از طریق Firebase AI Logic برای برنامه‌های اپل که از Firebase AI Logic SDK نسخه ۱۲.۱۳.۰+ استفاده می‌کنند و روی دستگاه‌هایی با Apple Intelligence فعال اجرا می‌شوند، پشتیبانی می‌شود. این امر تابع الزامات استفاده قابل قبول برای چارچوب Foundation Models اپل است.

موارد استفاده توصیه شده

  • استفاده از یک مدل روی دستگاه برای استنتاج، موارد زیر را ارائه می‌دهد:

    • حریم خصوصی پیشرفته
    • استنتاج بدون هزینه
    • قابلیت آفلاین
  • استفاده از قابلیت‌های ترکیبی موارد زیر را ارائه می‌دهد:

    • صرف نظر از دستگاه کاربر نهایی، به همه مشتریان یک تجربه برنامه مشابه ارائه دهید
    • بهبود دسترسی به ویژگی‌های هوش مصنوعی مولد، صرف نظر از اتصال اینترنت، محدودیت‌های سهمیه‌بندی یا قابلیت‌های دستگاه

قابلیت‌ها، APIها و دستگاه‌های پشتیبانی‌شده

قبل از اینکه استنتاج ترکیبی و درون دستگاهی را با استفاده از منطق هوش مصنوعی فایربیس پیاده‌سازی کنید، این بخش را مرور کنید تا بفهمید چه چیزهایی برای برنامه‌های اپل پشتیبانی می‌شود.

قابلیت‌ها و ویژگی‌های پشتیبانی‌شده برای استنتاج روی دستگاه

استنتاج روی دستگاه فقط از تولید متن ، به ویژه قابلیت‌های تولید متن زیر، پشتیبانی می‌کند:

حتماً لیست کامل مربوط به استنتاج ترکیبی یا درون دستگاهی که هنوز پشتیبانی نمی‌شوند را در پایین این صفحه بررسی کنید.

APIها و دستگاه‌های پشتیبانی‌شده

شروع کنید

مطمئن شوید که بخش بالا که قابلیت‌ها، APIها و دستگاه‌های پشتیبانی‌شده را شرح می‌دهد، مرور کرده‌اید.

این مراحل شروع، تنظیمات کلی مورد نیاز برای هر درخواست پشتیبانی‌شده‌ای که می‌خواهید ارسال کنید را شرح می‌دهند.

مرحله ۱ : یک پروژه Firebase راه‌اندازی کنید و برنامه خود را به Firebase متصل کنید

  1. وارد کنسول Firebase شوید و سپس پروژه Firebase خود را انتخاب کنید.

  2. در کنسول Firebase ، به بخش سرویس‌های هوش مصنوعی > منطق هوش مصنوعی بروید.

  3. برای شروع یک گردش کار هدایت‌شده که به شما در تنظیم APIها و منابع مورد نیاز پروژه‌تان کمک می‌کند، روی «شروع به کار» کلیک کنید.

  4. پروژه خود را طوری تنظیم کنید که از یک ارائه‌دهنده « Gemini API » استفاده کند.

    توصیه می‌کنیم برای شروع از رابط برنامه‌نویسی نرم‌افزار Gemini Developer API استفاده کنید. در هر مرحله، می‌توانید رابط برنامه‌نویسی نرم‌افزار Vertex AI Gemini (و الزامات آن برای صدور صورتحساب) را تنظیم کنید .

    برای Gemini Developer API ، کنسول APIهای مورد نیاز را فعال کرده و یک کلید API Gemini در پروژه شما ایجاد می‌کند.
    این کلید API مربوط به Gemini را به کدبیس برنامه خود اضافه نکنید . اطلاعات بیشتر.

  5. اگر در گردش کار کنسول از شما خواسته شد، دستورالعمل‌های روی صفحه را برای ثبت برنامه خود و اتصال آن به Firebase دنبال کنید.

  6. برای افزودن SDK به برنامه خود، به مرحله بعدی این راهنما بروید.

مرحله ۲ : اضافه کردن SDK های مورد نیاز

برای نصب و مدیریت وابستگی‌های Xcode از Swift Package Manager (SPM) استفاده کنید. پشتیبانی ترکیبی فقط هنگام استفاده از SPM در دسترس است.

کتابخانه Firebase AI Logic دسترسی به APIها را برای تعامل با مدل‌های مولد فراهم می‌کند. این کتابخانه به عنوان بخشی از Firebase SDK برای پلتفرم‌های اپل ( firebase-ios-sdk ) گنجانده شده است.

اگر از قبل از Firebase استفاده می‌کنید، مطمئن شوید که بسته Firebase شما نسخه ۱۲.۱۳.۰ یا بالاتر است.

  1. در Xcode، با باز کردن پروژه برنامه خود، به File > Add Package Dependencies بروید.

  2. وقتی از شما خواسته شد، مخزن SDK پلتفرم‌های اپل فایربیس را اضافه کنید:

    https://github.com/firebase/firebase-ios-sdk
    
  3. آخرین نسخه SDK را انتخاب کنید.

  4. کتابخانه FirebaseAILogic را انتخاب کنید.

پس از اتمام، Xcode به طور خودکار شروع به حل و دانلود وابستگی‌های شما در پس‌زمینه می‌کند.

مرحله ۳ : سرویس را مقداردهی اولیه کنید و یک نمونه از جلسه مدل ایجاد کنید

برای مشاهده محتوا و کد مخصوص ارائه‌دهنده در این صفحه، روی ارائه‌دهنده API Gemini خود کلیک کنید.

قبل از ارسال درخواست سریع به مدل، موارد زیر را تنظیم کنید.

  1. سرویس را برای ارائه‌دهنده API انتخابی Gemini خود راه‌اندازی کنید.

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

مرحله ۴ : ارسال درخواست سریع به یک مدل

این بخش به شما نشان می‌دهد که چگونه موارد زیر را انجام دهید:

تولید متن از ورودی فقط متنی

قبل از امتحان کردن این نمونه، مطمئن شوید که بخش « شروع به کار » این راهنما را تکمیل کرده‌اید.

برای تولید متن از یک اعلان که حاوی متن است، 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)

متن را از ورودی فقط متنی پخش کنید

قبل از امتحان کردن این نمونه، مطمئن شوید که بخش « شروع به کار » این راهنما را تکمیل کرده‌اید.

شما می‌توانید با منتظر نماندن برای کل نتیجه حاصل از تولید مدل، به تعاملات سریع‌تری دست یابید و در عوض از streaming برای مدیریت نتایج جزئی استفاده کنید. برای پخش متن تولید شده از یک prompt که حاوی متن است، از 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 و قالب‌های اعلان. همچنین، نباید به تعداد توکن‌ها اعتماد کرد زیرا تعداد آنها بین مدل‌های میزبانی ابری و روی دستگاه متفاوت خواهد بود، بنابراین هیچ راه حل جایگزین شهودی وجود ندارد.

  • ویژگی‌های زیر هنوز برای استنتاج روی دستگاه پشتیبانی نمی‌شوند. اگر می‌خواهید از هر یک از این ویژگی‌ها استفاده کنید، توصیه می‌کنیم برای تجربه‌ای پایدارتر، فقط از یک مدل میزبانی ابری استفاده کنید.

    • تولید متن از ورودی‌های چندوجهی، مانند تصاویر، صدا، ویدئو و اسناد (PDF)

    • تولید رسانه، مانند تصاویر، صدا یا ویدیو

    • ارسال درخواست‌هایی که بیش از ۴۰۹۶ توکن (یا تقریباً ۳۰۰۰ کلمه انگلیسی) باشند.

    • ارائه ابزارهای داخلی به مدل روی دستگاه برای کمک به تولید پاسخ (مانند اجرای کد، زمینه URL و اتصال به زمین با جستجوی گوگل)

  • نظارت بر هوش مصنوعی در کنسول Firebase هیچ داده‌ای برای استنتاج روی دستگاه (از جمله گزارش‌های روی دستگاه) نشان نمی‌دهد . با این حال، هر استنتاجی که از یک مدل میزبانی ابری استفاده می‌کند، می‌تواند درست مانند سایر استنتاج‌ها از طریق Firebase AI Logic نظارت شود.

محدودیت‌های اضافی

علاوه بر موارد فوق، استنتاج روی دستگاه محدودیت‌های زیر را نیز دارد:


درباره تجربه خود با Firebase AI Logic بازخورد دهید