ساخت اپ‌های هوش مصنوعی روی دستگاه با Foundation Models اپل

آغاز دوران هوش مصنوعی روی دستگاه با iOS 26 و Foundation Models

اپل با معرفی فریمورک Foundation Models در iOS 26، انقلابی در دنیای توسعه‌دهندگان ایجاد کرده است. این جعبه‌ابزار پیشگامانه، دروازه‌ای برای ادغام مدل‌های زبان قدرتمند موجود در Apple Intelligence، مستقیماً در اپلیکیشن‌های شماست. ویژگی منحصربه‌فرد آن چیست؟ این یک راه‌حل مبتنی بر حریم خصوصی و کاملاً روی دستگاه (on-device) است که در سراسر اکوسیستم اپل، از جمله iOS، macOS، iPadOS و visionOS، از طریق یک API ساده و روان در Swift در دسترس قرار گرفته است.

برخلاف سرویس‌های ابری مانند ChatGPT یا Claude که داده‌ها را روی سرورهای راه دور پردازش می‌کنند، رویکرد اپل همه چیز را محلی نگه می‌دارد. این معماری روی دستگاه سه مزیت بزرگ دارد: حریم خصوصی بی‌نظیر برای کاربر (چون داده‌ها هرگز از دستگاه خارج نمی‌شوند)، تأخیر بسیار کمتر برای تجربه‌ی کاربری روان‌تر، و عملکرد کامل حتی در حالت آفلاین. این ویژگی‌ها دنیایی از امکانات جدید را برای ساخت اپلیکیشن‌های واقعاً هوشمند و پاسخگو باز می‌کند.

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

ساخت یک اپلیکیشن آزمایشی «از من بپرس»

بهترین راه برای یادگیری یک فناوری جدید، ساختن چیزی با آن است. در اینجا مراحل ساخت یک اپلیکیشن ساده اما قدرتمند به نام «از من بپرس» را بررسی می‌کنیم که از مدل زبان بزرگ (LLM) روی دستگاه اپل برای پاسخ به سؤالات کاربران استفاده می‌کند. این پروژه به شما یاد می‌دهد که چگونه فریمورک Foundation Models را در یک اپلیکیشن SwiftUI ادغام کنید، پرامپت (دستور) بسازید و پاسخ‌های تولیدشده را مدیریت کنید.

رابط کاربری اپلیکیشن آزمایشی

دسترسی به مدل زبان پیش‌فرض سیستم

اپل یک مدل آماده به نام SystemLanguageModel را روی دستگاه ارائه می‌دهد. برای اکثر کارهای عمومی، می‌توانید از طریق پراپرتی .default به نسخه پایه آن دسترسی داشته باشید. قبل از استفاده، باید فریمورک را وارد کرده و در دسترس بودن آن را بررسی کنید، زیرا فقط روی دستگاه‌هایی که Apple Intelligence فعال است کار می‌کند. مدیریت حالت‌هایی که مدل به دلیل عدم پشتیبانی دستگاه، تنظیمات یا در حال دانلود بودن در دسترس نیست، بسیار حیاتی است.

import FoundationModels

struct ContentView: View {
    private var model = SystemLanguageModel.default

    var body: some View {
        switch model.availability {
        case .available:
            mainView
        case .unavailable(let reason):
            // نمایش پیامی برای توضیح دلیل عدم دسترسی
        }
    }
}

طراحی رابط کاربری

رابط کاربری اپ ما با استفاده از SwiftUI بسیار ساده است. این رابط شامل یک فیلد متنی برای سؤال کاربر، یک دکمه برای فراخوانی هوش مصنوعی و یک نمای متنی برای نمایش پاسخ است. متغیرهای State ساده‌ای برای نگهداری سؤال و پاسخ تولیدشده استفاده می‌شوند.
رابط کاربری اپ در SwiftUI

تولید پاسخ

جادوی اصلی تنها در چند خط کد اتفاق می‌افتد. شما یک LanguageModelSession ایجاد کرده و با استفاده از متد ناهمزمان (asynchronous) respond(to:)، سؤال کاربر (پرامپت) را به مدل ارسال می‌کنید. محتوای بازگشتی سپس در رابط کاربری نمایش داده می‌شود. به همین سادگی می‌توانید اولین پاسخ تولیدشده توسط هوش مصنوعی را دریافت کنید!
اولین سؤال پاسخ داده شده توسط اپ

حفظ زمینه گفتگو با استفاده مجدد از Session

اگر بخواهید سؤالات تکمیلی بپرسید چه؟ اگر برای هر پرسش یک Session جدید ایجاد کنید، مدل هیچ حافظه‌ای از مکالمه قبلی نخواهد داشت. راه‌حل این است که از همان نمونه LanguageModelSession مجدداً استفاده کنید. با تعریف Session به عنوان یک متغیر State، در طول تعاملات باقی می‌ماند و به مدل اجازه می‌دهد زمینه گفتگو را درک کرده و پاسخ‌های مرتبطی برای سؤالات تکمیلی ارائه دهد؛ مانند پیشنهاد رستوران در ژاپن پس از پرسیدن درباره غذاهای ژاپنی.
سؤال تکمیلی با حفظ زمینه گفتگو

بهبود تجربه کاربری

از آنجایی که تولید پاسخ ممکن است چند لحظه طول بکشد، بهتر است به کاربر بازخورد مناسبی ارائه دهید. شما می‌توانید به راحتی دکمه «دریافت پاسخ» را در حین کار مدل با بررسی پراپرتی isResponding در Session غیرفعال کنید.

برای ارتقای بیشتر تجربه کاربری، می‌توانید پاسخ را به صورت جریانی (stream) دریافت کنید. به جای انتظار برای تولید کامل پاسخ، متد streamResponse(to:) به شما امکان می‌دهد متن را همزمان با تولید، کلمه به کلمه نمایش دهید. این کار باعث می‌شود اپلیکیشن فوق‌العاده پاسخگو به نظر برسد، مشابه چت‌بات‌های محبوب. پیاده‌سازی این ویژگی شامل پیمایش در جریان داده و به‌روزرسانی رابط کاربری با هر نتیجه جزئی است.
نمایش پاسخ جریانی

سفارشی‌سازی رفتار مدل

برای اپلیکیشن‌های تخصصی‌تر، می‌توانید رفتار مدل را با ارائه دستورالعمل‌های اولیه هنگام ایجاد Session هدایت کنید. به عنوان مثال، اگر در حال ساخت یک اپلیکیشن سفر هستید، می‌توانید به مدل دستور دهید که به عنوان یک «کارشناس سفر آگاه و دوستانه» عمل کند. این به شما امکان می‌دهد نقش، تمرکز و لحن آن را تعریف کنید تا اطمینان حاصل شود که پاسخ‌هایش کاملاً متناسب با هدف اپلیکیشن شماست.

فریمورک Foundation Models یک ابزار قدرتمند برای توسعه‌دهندگان است که هوش مصنوعی پیشرفته و حافظ حریم خصوصی را بیش از هر زمان دیگری در دسترس قرار می‌دهد. این تنها آغاز راه است و قابلیت‌های بسیار بیشتری برای کشف وجود دارد.

منبع: appcoda.com

Leave a Comment