مهندس روابط توسعهدهنده
ساختن هوش مصنوعی زایای آماده تولید در برنامههای Android به چیزی بیشتر از اتصال به مدل زبانی بزرگ نیاز دارد—این کار مستلزم امنیت در سطح سازمانی و کنترل هزینهها است. در این جلسه، کشف کنید که Firebase AI Logic چگونه توسعهدهندگان را قادر میسازد تا تجربههای هوش مصنوعی امن و مقرونبهصرفه را در مقیاس بزرگ مستقر کنند.
ما از اصول امنیتی و Firebase App Check، مدیریت هزینه، مسیریابی مدل پویا تا بهرهبرداری از قابلیتهای چندحالتی را پوشش خواهیم داد.
آوانویسی
به «نشست توسعهدهندگان Android» خوش آمدید.
من آنکیتا ساکسنا، مدیر محصول Firebase هستم.
و من آرتور تامپسون، مهندس روابط توسعهدهنده در تیم Firebase هستم.
امروز به شما نشان میدهیم که چگونه ویژگیهای زایا را به برنامههای Android خود اضافه کنید.
بسیار خوب.
Firebase چیست؟
کسانی که نام Firebase را شنیدهاند دستشان را بالا ببرند.
اوه، خیلی چیزها میبینم.
عالی.
Firebase پلاتفرم توسعه برنامه Google است.
آنچه Firebase در اینجا ارائه میدهد یک پلاتفرم یکپارچه است که بیش از ۲۰ محصول را با هم ادغام کرده است، بنابراین شما تجربه تکهتکه شدهای را که با هر نرمافزار اضافی دیگری خواهید داشت، ندارید.
بیایید درباره چالشهای ارسال «هوش مصنوعی زایا» به برنامههای تلفن همراه صحبت کنیم.
سه چالش برتر را شناسایی کردهایم.
اول، نشت کلید میانای برنامهسازی کاربردی: استخراج آنها چند دقیقه طول میکشد.
دوم، بهروزرسانی نام مدلها: ما همیشه به توسعهدهندگان توصیه میکنیم که آنها را در برنامههای خود کدنویسی نکنند، درغیراینصورت، هر بار که مدل جدیدی ارائه میشود، باید نسخه دیگری را منتشر کنید.
مورد سوم حریم خصوصی فایل است: برای هر توسعهدهنده یا کاربر برنامه بسیار مهم است که از دادههایش محافظت شود و حفاظهای مناسبی برای برنامه وجود داشته باشد.
معرفی Firebase AI Logic بهعنوان راهحل کلیدی برای مدیریت چالشهایی که درباره آنها بحث کردیم.
What is the value proposition that Firebase AI Logic provides to you?
ما اساساً از همه بخشهای پیچیده سفارشی پشتیبانی مراقبت میکنیم تا شما مجبور نباشید آن را در سمت خود توسعه دهید.
دوم، بااستفاده از کیتهای توسعه نرمافزار کارخواه ما، میتوانید Gemini API را مستقیماً و بهطور ایمن از برنامههای تلفن همراهتان فراخوانی کنید.
بیایید نگاهی به زیر کاپوت بیندازیم و بفهمیم که معماری چگونه جریان دارد.
در سمت چپ، کیتهای توسعه نرمافزار کارخواه Firebase را داریم.
ما طیف گستردهای از کیتهای توسعه نرمافزار کارخواه داریم که امروزه از آنها پشتیبانی میکنیم.
میخواهم به Kotlin هم اشاره کنم که از آن نیز پشتیبانی میکنیم.
وقتی توسعهدهنده میخواهد، وقتی میخواهید کنش هوش مصنوعی انجام دهید، کیت توسعه نرمافزار درخواست را به Firebase AI Logic ارسال میکند، که سپس آن را بهطور ایمن به Gemini Developer API یا Agent Platform Gemini API هدایت میکند.
بنابراین، اساساً ما همه پسزمینههای سفارشی را که امروز ایجاد میکنید مدیریت میکنیم.
و ارزشی که از آن بهدست میآوریم این است که شما مدت زمان قبلاز عرضه به بازار را با هزینه صفر تسریع میکنید.
حالا بخش جالب.
این یک نسخه نمایشی برای نمایش برنامه FriendlyMeals است.
ضمناً، برای بقیه نسخههای نمایشی در این جلسه از همین برنامه استفاده خواهیم کرد، بنابراین میتوانید آن را بارگیری کنید.
میتوانید آن را بااستفاده از رمزینه پاسخسریع در اینجا اسکن کنید.
بیایید نسخه نمایشی را مرور کنیم.
برنامه FriendlyMeals اساساً به شما کمک میکند دستورالعملهای غذایی را براساس موادی که وارد میکنید شناسایی کنید.
بنابراین، در این گردش کار، دو روش برای ثبت این مواد اولیه میبینید.
اول، موادی را که دارید وارد میکنید.
دوم، از مواد تشکیلدهنده عکس میگیرید.
میخواهم بروم و از اولین گردش کار استفاده کنم، یعنی وارد کردن مواد تشکیلدهنده.
این تمام چیزی است که توانستم در یخچالم پیدا کنم.
درحالیکه این دستور پخت درحال تولید است، میخواهم به چند نکته اشاره کنم.
بنابراین در پشت صحنه، ما مدلهای Gemini را در اینجا فراخوانی میکنیم.
برای این مورد استفاده خاص، ما سه Gemini 3.8 Flash را فراخوانی میکنیم.
اگر بالا را ببینید، تصویر، درواقع از مدل Gemini Nano Banana استفاده میکند که Nano Banana 2.1، جدیدترین نسخه است.
قبلاز اینکه سراغ کد برویم، میخواهم گزاره ارزش را که ازطریق Firebase AI Logic دریافت میکنید تقویت کنم.
بنابراین، اولین مورد کیتهای توسعه نرمافزار بدون سرور است.
میخواهید ویژگی هوش مصنوعی اضافه کنید، اما نمیخواهید مجبور به راهاندازی بکاند باشید.
اینجا است که کیتهای توسعه نرمافزار سمت کارخواه ما وارد عمل میشوند.
مستقیماً از برنامه Android با Gemini تماس میگیرید.
مورد دوم ویژگیهای امنیتی داخلی قدرتمند است.
بنابراین، برای تماسهایتان با Gemini، میتوانید از چیزهایی مثل Firebase App Check و همچنین «الگوهای پیامواره سرور» و موارد دیگر استفاده کنید و کمی بعدتر درباره این ویژگیهای امنیتی بیشتر صحبت خواهیم کرد.
سوم، پشتیبانی از ویژگیهای پیشرفته مانند ورودیهای چندحالتی و جاریسازی است.
فرض کنید میخواهید برنامهای بسازید که یک ویژگی هوش مصنوعی ساده برای تولید داستانی درباره یک کولهپشتی جادویی اضافه میکند.
import com.google.firebase.Firebase
import com.google.firebase.ai.ai
@Composable
fun MagicBackpackGenerator() {
var output by remember { mutableStateOf("") }
LaunchedEffect(Unit) {
val model=Firebase.ai.generativeModel("gemini-4-argon")
val response = model.generateContent("Write a story about a magic backpack")
output = response.text.toString()
}
MagicBackpackUI(output)
}با این سه مرحله ساده میتوانید آن ویژگی هوش مصنوعی را اضافه کنید و آن را برای تولید آماده کنید.
بنابراین، با Firebase AI Logic که افزودن ویژگیهای هوش مصنوعی به برنامهتان را بسیار آسان میکند، اولین سؤالی که باید بپرسید این است که چگونه میخواهید این ویژگی را ایمن کنید؟
پس بیایید به جزئیات امنیتی بپردازیم، از «بررسی برنامه Firebase» شروع میکنیم.
«بررسی برنامه Firebase» با تصدیق اینکه درخواستها از برنامه شما میآیند، به شما کمک میکند از دادههایتان محافظت کنید، از کاربران خود محافظت کنید، و کنترل کنید چه کسی به منابع میانای برنامهسازی کاربردی شما دسترسی دارد.
این یک لایه امنیتی اضافی است که به جلوگیری از سوءاستفاده از برنامه شما کمک میکند.
قبلاز وارد شدن به کد، چند مرحله وجود دارد که باید در کنسول Firebase انجام دهید.
بنابراین، در بخش «بررسی برنامه» در کنسول Firebase، برنامه Android خود را ثبت میکنید و ارائهدهندگان گواهی مربوطه را اضافه میکنید.
بنابراین چیزهایی مثل Play Integrity یا reCAPTCHA Enterprise.
توجه داشته باشید که پساز شروع، وقتی «بررسی برنامه» را راهاندازی کردید، باید با حالت غیرالزامی شروع کنید.
با این کار، به برنامهتان اجازه میدهید تا دورسنجی ارائه دهد تا مطمئن شوید که همه برنامههایتان قبلاز اعمال، فراخوانیهای میانای برنامهسازی کاربردی موفق به پسبخش شما دریافت میکنند.
وقتی دیدید که دورسنجی بهخوبی انجام میشود، میتوانید «بررسی برنامه» را اجرا کنید، در این مرحله هر درخواستی که فاقد یک کد معتبر و تأییدشده توسط سختافزار باشد رد خواهد شد.
بنابراین، کد پیادهسازی «بررسی برنامه» به این صورت است.
class FireTravelApp : Application() {
lateinit var appContainer: AppContainer
private set
override fun onCreate() {
super.onCreate()
if (BuildConfig.DEBUG) {
Firebase.appCheck.installAppCheckProviderFactory(
DebugAppCheckProviderFactory.getInstance()
)
} else {
Firebase.appCheck.installAppCheckProviderFactory(
PlayIntegrityAppCheckProviderFactory.getInstance()
)
}
appContainer = AppContainer(this)
}
}در کلاس برنامه، ارائهدهنده «بررسی برنامه» را نصب میکنید.
در مراحل توسعه، بهتر است از ارائهدهنده اشکالزدایی توسعه استفاده کنید و سپس وقتی آماده رفتن به مرحله تولید هستید، به Play Integrity یا reCAPTCHA Enterprise بروید.
اما همیشه بهخاطر داشته باشید که قبلاز برقراری هرگونه تماس Firebase دیگر، باید ابتدا «بررسی برنامه» را پیکربندی کنید.
هنگام ساختن ویژگیهای هوش مصنوعی، توسعهدهندگان اغلب پیاموارهها را مستقیماً در کد برنامههایشان کدگذاری میکنند، اما این کار دو چالش بزرگ ایجاد میکند.
یک، اگر لازم باشد پیاموارهای را بهبود دهید، باید بهروزرسانی کامل را منتشر کنید.
دوم اینکه هرکسی که برنامه شما را از حالت فشرده خارج کند به مهندسی پیامواره اختصاصی شما دسترسی خواهد داشت.
برای حل کردن این مشکل، Firebase AI Logic از الگوهای پیامواره سرور استفاده میکند.
بهجای نگه داشتن پیاموارههایتان در دستگاه، این پیاموارهها در فضای ابری ذخیره میشوند.
این نمای الگوهای پیامواره سرور است که در کنسول Firebase نشان داده میشود.
الگوها را در قالب .prompt مینویسید.
---
model: 'gemini-3-flash'
input:
schema:...
tools:...
---
{{role "system"}}
You're a storyteller that tells nice and joyful stories with happy endings.
{{role "user"}}
Create a story about {{topic}} with the length of {{length}} words in the {{language}} language.میتوانید نام مدل را همینجا تنظیم کنید.
هرزمان بخواهید میتوانید آن را بهروز کنید.
لازم نیست بهروزرسانی کامل برنامه را ارسال کنید.
میتوانید دستورالعملهای سیستم را نیز بهروز کنید و همچنین یک طرحواره JSON دقیق برای ورودی و خروجی میگیرد.
بازهم، به انتشار برنامه نیازی نیست.
چون در فضای ابری قرار دارد، میتوانید فوراً پیاموارهای را تنظیم یا تنظیم کنید یا مدل را عوض کنید.
و این نحوه نمایش کد در Kotlin است.
val generativeModel = Firebase.ai.templateGenerativeModel()
val response = generativeModel.generateContent("storyteller-v1",
mapOf(
"topic" to topic,
"length" to length,
"language" to language
)
)
output.value = response.textیک نکته مهم که باید ذکر شود این است که الگوهای پیامواره سرور در مرحله پیشنمایش عمومی است.
همچنین میتوانید «حالت فقط اصالتسنجی» را پیادهسازی کنید.
این روش از توکنهای کاربر Firebase Auth برای صدور مجوز درخواست استفاده میکند.
برای تکمیل ویژگیهای امنیتی ما و قفل کردن کامل برنامهتان، میتوانید از «حالت فقط الگو» مستقیماً از کنسول Firebase نیز استفاده کنید.
و وقتی برنامهتان منتشر شد، شاید بخواهید از نحوه رفتار آن مطلع شوید.
در برگه «پایش هوش مصنوعی»، فقط با یک کلیک میتوانید «پایش هوش مصنوعی» را فعال کنید و همچنین نرخ نمونهبرداری را پیکربندی کنید.
Firebase بهطور خودکار سنجهها، تأخیرها، و تعداد دادهواحدها را بدون اینکه شما کد تجزیهوتحلیل سفارشی برای آن بنویسید ضبط میکند.
یک یادآوری برای اشاره به دو حالتی که بهتازگی دیدیم، هر دو در یک پنجره دردسترس هستند.
پساز فعال کردن «پایش هوش مصنوعی» در کنسول Firebase، این دادهها مستقیماً به داشبورد «پایش هوش مصنوعی» ارسال میشود.
میتوانید تأخیر صدک ۹۵ خود را مشاهده کنید، جهشهای ناگهانی خطا را شناسایی کنید، و مصرف کد را در حالتهای مختلف مانند نوشتار، تصویر، و صدا ردیابی کنید.
همچنین میتوانید «نمایشگر ردیابی» را بازرسی کنید تا ردیابیهای خاصی را در سراسر آن ببینید.
بنابراین، در این مورد، همانطور که تفاوت مدل مورداستفاده ما را نشان میدهد، میتوانید تأخیر و نرخ موفقیت را ببینید.
در کنسول Firebase، جایی که میتوانید همه دورسنجیها و رؤیتپذیری نحوه عملکرد ویژگی هوش مصنوعی خود را دریافت کنید.
بنابراین، در این مورد، فرض کنید که شاهد افزایش ناگهانی در استفاده از توکن یا افزایش ناگهانی در تأخیر هستید، ترکیبی یکی از راههای کاهش این هزینهها یا کاهش این تأخیر است.
و ازآنجاییکه ویژگیهای هوش مصنوعی زایا به بخش کلیدی برنامههای ما تبدیل میشوند، اتکای ۱۰۰٪ به فضای ابری احتمالاً انتخاب درستی نیست.
بنابراین، با استفاده از Nano 4، مدلهای دروندستگاهی در Android، سه مزیت عمده را باز میکند که ممکن است همه با آنها آشنا باشید.
اولین مورد حالت آفلاین است.
بنابراین، چه در کنفرانس بزرگی باشید یا در هواپیما یا مترو، ویژگی هوش مصنوعی شما همچنان کار خواهد کرد.
هزینه.
بنابراین، چون استنتاج در دستگاه اجرا میشود، میتوانید این ویژگیها را اضافه کنید و نگران افزایش هزینههای ویژگی هوش مصنوعی خود نباشید.
و سومین مورد حریم خصوصی دادهها است.
بنابراین، اگر دادهها حساس باشند، میتوانید به کاربران خود تضمین دهید که هیچیک از استنتاجها از دستگاه شما خارج نمیشوند.
بنابراین، بااستفاده از Firebase AI Logic، میتوانید این حالتهای استنتاج را تنظیم کنید و استراتژیهای مسیریابی واضحی مانند PREFER_ON_DEVICE، PREFER_IN_CLOUD، یا ONLY_ON_DEVICE داشته باشید.
وقتی ONLY_ON_DEVICE را انتخاب میکنید، کیت توسعه نرمافزار مستقیماً به مدل دروندستگاهی متصل میشود و بهطور کامل ابر را دور میزند.
بیایید به تلفن برویم.
بنابراین، دوباره به FriendlyMeals میرویم و برخیاز قابلیتهای دروندستگاهی را بررسی میکنیم.
بنابراین، اولین چیزی که میخواهیم امتحان کنیم، ایجاد یک دستور غذا براساس برخیاز موادی است که ممکن است در یخچال ما موجود باشد.
بنابراین، قبلاً دیدید که آنکیتا از روش دستی استفاده کرد، یعنی فقط مواد لازم را تایپ کرد و سپس دستور غذا را تولید کرد.
پس بیایید روش دیگری را امتحان کنیم.
بنابراین، بیایید این یخچال کاملاً واقعی را درنظر بگیریم که اصلاً تولیدشده نیست.
زیتون زیادی در این یخچال هست، پس بیایید ببینیم چه نوع دستورالعملی در اینجا تولید میشود.
بنابراین، میخواهم به چند نکته در آنجا اشاره کنم.
یکی اینکه تصویر هرگز از دستگاه خارج نشده است.
تصویر بهصورت محلی توسط Nano by Gemma تجزیهوتحلیل شد…
Nano 4.
و سپس، همچنین، نکته دوم سرعت بازگشت پاسخ است.
بنابراین، عناصر تولید شد.
بنابراین، دو مزیت بهدست میآورید.
دادهها از دستگاه خارج نمیشوند و همچنین تأخیر بهطور قابلتوجهی کاهش مییابد.
بسیار خوب، بیایید ببینیم از یخچال پر از زیتون چه دستور غذایی میگیریم.
بنابراین، این بار از فضای ابری استفاده میکنیم.
بنابراین، موادی را که از یخچال شناسایی شدهاند میگیریم و سپس آنها را به فضای ابری ارسال میکنیم، و اکنون همه این کارها را بااستفاده از Firebase AI Logic برای تولید دستور غذا انجام میدهیم.
من ماهی سالمون در یخچال ندیدم، اما در دستور پخت ماهی سالمون میبینم.
اما این… لطفاً به اسلایدها برگردیم.
بنابراین، همانطور که در نسخه نمایشی دیدیم، جابهجایی بین مدل محلی و مدل ابری بسیار ساده است.
امروزه، Firebase AI Logic استنتاج را بااستفاده از مسیریابی پایه براساس دردسترس بودن شبکه امکانپذیر میکند.
برای مدیریت این استنتاج، میتوانید آن را بهعنوان حفاظ درنظر بگیرید.
بنابراین، این معماری شامل پشتیبانی داخلی از ویژگیهایی مانند چندوجهی و طرحوارههای ورودی و خروجی، و همچنین ادغام کامل با Gemma، ببخشید، با Gemini Nano 4 است.
بنابراین، بیایید نگاهی بیندازیم به اینکه این حفاظها چگونه در عمل اجرا میشوند.
بنابراین، مسیریابی ترکیبی شما را ملزم نمیکند که میانافزار پیچیده بسازید یا منطق بازگشت زیادی را خودتان بسازید.
ازنظر کد، فقط یک پارامتر اضافی است.
پارامتری را به onDeviceConfig ارسال میکنید تا حالت موردنظرتان را تنظیم کنید.
import com.google.firebase.Firebase
import com.google.firebase.ai.ai
@Composable
fun MagicBackpackGenerator() {
var output by remember { mutableStateOf("") }
LaunchedEffect(Unit) {
val model = Firebase.ai.generativeModel(modelName = "gemini-3.8-flash",
onDeviceConfig = OnDeviceConfig(mode = InferenceMode.PREFER_ON_DEVICE))
val response = model.generateContent("Write a story about a magic backpack")
output = response.text.toString()
}
MagicBackpackUI(output)
}کیت توسعه نرمافزار تلاش میکند در این حالت، کیت توسعه نرمافزار ابتدا مدل محلی را امتحان میکند و اگر دردسترس نباشد، بهطور خودکار به مدل ابری برمیگردد.
اکنون که نحوه ساختن برنامههای ایمن و استفاده از مدلهای دروندستگاهی را پوشش دادیم، بیایید درباره بهینهسازی هزینه صحبت کنیم.
ویژگیهای زایا میتوانند بهسرعت مقیاسبندی شوند و صورتحساب ابری شما نیز همینطور.
بنابراین، باید حفاظهای مناسبی داشته باشیم تا مطمئن شویم که کنترلهای زیرساختی پیشکنشی و ویژگیهای خودکار مناسبی داریم که میتوانند به قابلپیشبینی کردن بودجههای شما و کارآمدی مالی برنامههایتان کمک کنند.
Arthur بهتازگی تأکید کرد که استنتاج دروندستگاهی کاملاً رایگان است، اما همیشه سناریوهایی وجود خواهد داشت که به وظایف استدلال پیچیده نیاز دارند و همچنین به بازگشت به حالت قبلی و مسیریابی به ابر نیاز دارند.
وقتی این فراخوانیهای ابری اتفاق میافتد، به حفاظهایی نیاز دارید تا بودجهتان قابلپیشبینی بماند.
این دقیقاً همان دلیلی است که سقف هزینه Firebase وارد عمل میشود.
با سقف هزینه، میتوانید کنترل دقیقتری بر هزینه برنامههایتان داشته باشید.
بنابراین، بهجای تنظیم بودجه عمومی در سطح پروژه و هشدارهای بودجهای که فقط برای شما ایمیل ارسال میکنند، میتوانید محدودیت بودجه خاصی را برای سرویسهای جداگانه مانند Firebase AI Logic تعیین کنید.
وقتی هزینه شما به ۱۰۰٪ میرسد، Firebase بهطور خودکار سرویس هوش مصنوعی را موقتاً متوقف میکند تا از افزایش بیرویه صورتحساب جلوگیری کند.
فراتر از سقفهای هزینه ساده، چندین استراتژی پیشرفته بهینهسازی هزینه وجود دارد.
موردی که امروز میخواهیم برجسته کنیم راهاندازهای Firebase AI Logic است.
اگر به منطق سفارشی در وسط نیاز داشته باشید چه؟
این راهاندازهای Firebase AI Logic است.
میتوانید تابعی را قبلاز تولید محتوا یا بعداز آن اجرا کنید.
از آن برای بررسی اینکه آیا-- بررسی کاربر، فیلتر کردن ورودی، افزودن بافت، و همچنین تنظیم پاسخ استفاده کنید.
خب، حالا که بهینهسازی هزینه و امنیت را پوشش دادیم، بیایید به قابلیت مدل بپردازیم و ببینیم Firebase AI Logic چه چیزی ارائه میدهد.
برای تقویت این تجربههای چندحالته، Firebase AI Logic کاتالوگ جامعی از مدلها و ابزارهای آماده تولید ارائه میدهد.
برای استدلال، نوشتار، کد، و رسانه با سرعت بالا، میتوانید از Gemini 4 Argon، Gemini 3.1 Pro، Gemini 3.8 Flash، و غیره استفاده کنید.
همچنین میتوانید این مدلها را بااستفاده از «پایهسازی جستجو و Maps» به دادههای دنیای واقعی متصل کنید.
و درنهایت، برای صدا، نوشتار به گفتار طبیعی و تولید صدای Gemini Live را ارائه میدهیم.
بیایید یکبار دیگر به تلفن برگردیم.
بنابراین، در اینجا شیرین و خوشطعم را داریم.
اوه، ببخشید، آن یکی نه.
در اینجا دستور تهیه نان تست پنیری سریع با سس گوجهفرنگی را داریم.
خوشمزه بهنظر میرسد.
و اولین چیزی که میخواهیم به آن نگاهی بیندازیم Live API است.
بنابراین، در این مورد، میتوانیم از ویدیویی که برمیگردد استفاده کنیم و من میتوانم بگویم: «هی Gemini، میتوانی به من بگویی چه موادی روی میز است؟»
براساس تصویر روی صفحهنمایش رایانه کیفی، مواد اولیهای که دارید نان، پنیر چدار، و سس گوجهفرنگی است.
بسیار خوب.
خب، میتوانم با اولین مرحله دستورالعمل شروع کنم؟
بله.
اولین قدم این است که آون توستر یا کبابپز را روی حرارت متوسط روبهبالا گرم کنید.
متشکریم.
بسیار خوب.
بنابراین، در آن مورد، Live API بود و آن مکالمه تا زمانی که من آن را بهطور مؤثر نمیبستم، باز میماند.
مورد دیگری که میخواهم نشان دهم گفتار به نوشتار است، یا ببخشید، نوشتار به گفتار.
و با نوشتار به گفتار، در این مثال، دستورالعملهای دستور غذا را داریم.
بنابراین، بهجای اینکه مجبور باشم آن را بخوانم، میتوانم روی «تولید» یا «صحبت کردن» ضربه بزنم و متن دستورالعملها را به مدل نوشتار به گفتار ارسال کنم.
صدا را تولید میکند و آن را به دستگاه برمیگرداند.
میتوانم آن را پخش کنم، برای بعداً ذخیره کنم، و همانطور که اینجا میبینیم پخش خواهد شد.
۱.
آون توستر یا کبابپز را ازقبل روی حرارت متوسط روبهبالا گرم کنید.
۲.
دو برش نان را روی سینی فر یا سینی توستر قرار دهید.
خوب است.
جالب است، نه؟
بنابراین، Firebase AI Logic به ما امکان میدهد این نوع ویژگیهای جالب را فقط با چند خط کد پیادهسازی کنیم.
بیایید به اسلایدها برگردیم.
اکنون که در نمایش دیدیم Gemini Live API چگونه کار میکند، اگر بخواهید خودتان یک تجربه مکالمهای دستآزاد بسازید چه؟
اینجاست که Gemini Live API وارد میشود و به شما امکان میدهد مکالمههای صوتی دوطرفه ایجاد کنید.
برنامه Android شما میتواند صدای میکروفون و فریمهای دوربین را بهصورت زنده به سرور ارسال کند و پاسخهای صوتی طبیعی، با تأخیر کم، و گفتاری را بهصورت همزمان دریافت کند.
در Kotlin، راهاندازی این مورد بسیار آشنا بهنظر میرسد.
val model = Firebase.ai.liveModel(
modelName = "gemini-3.1-flash-live-preview",
generationConfig = liveGenerationConfig {
responseModality = ResponseModality.AUDIO
},
systemInstruction = "Your main job is to change the color...",
tools = listOf(Tool.functionDeclarations(listOf(changeColorFunction)))
)
val session = model.connect(::handler)
session.startAudioConversation(::handler)
session.stopAudioConversation()یک مدل Live را که برای پاسخهای صوتی پیکربندی شده است نمونهسازی میکنید و با یک کنترلکننده جاریسازی به جلسه متصل میشوید.
نکته اصلی که میخواهیم در اینجا به آن اشاره کنیم این است که کیت توسعه نرمافزار (SDK) کل موارد WebSocket و پروتکلهای جاریسازی را در پشت صحنه مدیریت میکند.
بنابراین، لازم نیست آن را کدنویسی کنید، درست است؟
به نوشتن سطرها ادامه دهید.
As we wrap up our demos and look towards the future of app development, we would like to highlight one powerful tool for your workflow, Firebase Agent Skills.
# Execute to add agent capabilities to your workspace
npx skills add firebase/agent-skillsعلاوهبراین، برای کسانی از شما که از Antigravity و «استودیو Android» استفاده میکنید، Firebase AI Logic را مستقیماً در جریان آمادهسازی ادغام کردهایم.
برای اینکه سه نکته کلیدی را به شما یادآوری کنم: ساختن را شروع کنید، از همان ابتدا به ابزارهای تولید تکیه کنید، مانند ابزارهای امنیتی که امروز پوشش دادیم، و سوم اینکه هرجا میتوانید از مهارتهای عامل استفاده کنید.
متشکریم.
import com.google.firebase.Firebase
import com.google.firebase.ai.ai
@Composable
fun MagicBackpackGenerator() {
var output by remember { mutableStateOf("") }
LaunchedEffect(Unit) {
val model=Firebase.ai.generativeModel("gemini-4-argon")
val response = model.generateContent("Write a story about a magic backpack")
output = response.text.toString()
}
MagicBackpackUI(output)
}class FireTravelApp : Application() {
lateinit var appContainer: AppContainer
private set
override fun onCreate() {
super.onCreate()
if (BuildConfig.DEBUG) {
Firebase.appCheck.installAppCheckProviderFactory(
DebugAppCheckProviderFactory.getInstance()
)
} else {
Firebase.appCheck.installAppCheckProviderFactory(
PlayIntegrityAppCheckProviderFactory.getInstance()
)
}
appContainer = AppContainer(this)
}
}---
model: 'gemini-3-flash'
input:
schema:...
tools:...
---
{{role "system"}}
You're a storyteller that tells nice and joyful stories with happy endings.
{{role "user"}}
Create a story about {{topic}} with the length of {{length}} words in the {{language}} language.val generativeModel = Firebase.ai.templateGenerativeModel()
val response = generativeModel.generateContent("storyteller-v1",
mapOf(
"topic" to topic,
"length" to length,
"language" to language
)
)
output.value = response.textimport com.google.firebase.Firebase
import com.google.firebase.ai.ai
@Composable
fun MagicBackpackGenerator() {
var output by remember { mutableStateOf("") }
LaunchedEffect(Unit) {
val model = Firebase.ai.generativeModel(modelName = "gemini-3.8-flash",
onDeviceConfig = OnDeviceConfig(mode = InferenceMode.PREFER_ON_DEVICE))
val response = model.generateContent("Write a story about a magic backpack")
output = response.text.toString()
}
MagicBackpackUI(output)
}val model = Firebase.ai.liveModel(
modelName = "gemini-3.1-flash-live-preview",
generationConfig = liveGenerationConfig {
responseModality = ResponseModality.AUDIO
},
systemInstruction = "Your main job is to change the color...",
tools = listOf(Tool.functionDeclarations(listOf(changeColorFunction)))
)
val session = model.connect(::handler)
session.startAudioConversation(::handler)
session.stopAudioConversation()# Execute to add agent capabilities to your workspace
npx skills add firebase/agent-skills