ডেভেলপার রিলেশনস ইঞ্জিনিয়ার
Android অ্যাপে প্রোডাকশন-রেডি জেনারেটিভ AI তৈরি করার জন্য LLM-এর সাথে কানেক্ট করার চেয়েও বেশি কিছু প্রয়োজন—এটির জন্য এন্টারপ্রাইজ-গ্রেড নিরাপত্তা ও খরচ নিয়ন্ত্রণ প্রয়োজন। এই সেশনে, Firebase AI Logic কীভাবে ডেভেলপারদের নিরাপদ, বাজেট-সচেতন AI অভিজ্ঞতা স্কেলে ডিপ্লয় করতে সাহায্য করে তা জানুন।
আমরা নিরাপত্তার ভিত্তি এবং Firebase App Check, খরচ ম্যানেজমেন্ট, ডাইনামিক মডেল রাউটিং থেকে শুরু করে মাল্টিমোডাল ক্ষমতার সুবিধা নেওয়া পর্যন্ত সবকিছু কভার করব।
ট্রান্সস্ক্রিপ্ট করা
Android ডেভেলপার সামিটে আপনাকে স্বাগত।
আমি অঙ্কিতা সাক্সেনা, Firebase-এর প্রোডাক্ট ম্যানেজার।
আমি আর্থার থম্পসন, Firebase টিমের ডেভেলপার রিলেশনস ইঞ্জিনিয়ার।
আজ, আমরা আপনাকে দেখাব কীভাবে আপনার Android অ্যাপে জেনারেটিভ ফিচার যোগ করতে হয়।
ঠিক আছে।
Firebase কী?
Firebase-এর নাম শুনেছেন এমন ব্যক্তিরা হাত তুলুন।
ওহ, আমি অনেক কিছু দেখতে পাচ্ছি।
দারুণ।
Firebase হল Google-এর অ্যাপ ডেভেলপমেন্ট প্ল্যাটফর্ম।
Firebase এখানে যা প্রদান করে তা হল একটি ইউনিফায়েড প্ল্যাটফর্ম যাতে ২০টির বেশি প্রোডাক্ট একসাথে ইন্টিগ্রেট করা থাকে, তাই আপনি কোনও অতিরিক্ত সফ্টওয়্যারের সাথে যে ফ্র্যাগমেন্টেড অভিজ্ঞতা পাবেন তা এখানে পাবেন না।
মোবাইল অ্যাপে GenAI শিপিং করার চ্যালেঞ্জ সম্পর্কে আলোচনা করা যাক।
আমরা সেরা তিনটি চ্যালেঞ্জ শনাক্ত করেছি।
প্রথমত, API কী লিক: এগুলি এক্সট্র্যাক্ট করতে কয়েক মিনিট সময় লাগে।
দ্বিতীয়ত, মডেলের নাম আপডেট করা: আমরা সবসময় ডেভেলপারদের সাজেস্ট করি যে তারা যেন অ্যাপে মডেলের নাম হার্ড-কোড না করেন, অন্যথায়, প্রতিবার নতুন মডেল এলে, আপনাকে আরেকটি রিলিজ পুশ করতে হবে।
তৃতীয়টি হল ফাইলের গোপনীয়তা: যেকোনও ডেভেলপার বা অ্যাপ ব্যবহারকারীর জন্য তাদের ডেটা সুরক্ষিত রাখা এবং অ্যাপের জন্য সঠিক সুরক্ষা ব্যবস্থা থাকা খুবই গুরুত্বপূর্ণ।
আমরা যে চ্যালেঞ্জগুলি নিয়ে আলোচনা করেছি তা সমাধান করার জন্য Firebase AI Logic-কে মূল সমাধান হিসেবে উপস্থাপন করা।
Firebase AI Logic আপনাকে কী সাশ্রয়ী মূল্যে সেরা প্রস্তাবনা প্রদান করে?
আমরা মূলত সমস্ত জটিল কাস্টম ব্যাক-এন্ডের যত্ন নিই এবং যাতে আপনাকে এটি আপনার প্রান্তে বিকাশ করতে না হয়।
দ্বিতীয়ত, আমাদের ক্লায়েন্ট SDK ব্যবহার করে, আপনি সরাসরি এবং নিরাপদে আপনার মোবাইল অ্যাপ থেকে Gemini API কল করতে পারবেন।
আসুন, আমরা এর মূল চালিকাশক্তি এবং আর্কিটেকচার কীভাবে কাজ করে তা বুঝি।
বাঁদিকে Firebase ক্লায়েন্ট SDK আছে।
আমাদের কাছে বিভিন্ন ধরনের ক্লায়েন্ট SDK আছে যা আমরা বর্তমানে সাপোর্ট করি।
আমি Kotlin-এর কথাও উল্লেখ করতে চাই, যা আমরা সাপোর্ট করি।
ডেভেলপার যখন চান, আপনি যখন কোনও AI অ্যাকশন পারফর্ম করতে চান, তখন SDK, Firebase AI Logic-এ অনুরোধ পাঠায়, যা পরে এটিকে Gemini Developer API বা Agent Platform Gemini API-তে নিরাপদে রুট করে।
সুতরাং, মূলত আমরা সমস্ত কাস্টম ব্যাক-এন্ড পরিচালনা করছি যা আপনি আজ তৈরি করছেন।
এবং এর থেকে আমরা যে সুবিধা পাচ্ছি তা হল, আপনি কোনও খরচ ছাড়াই বিপননের জন্য সময় ত্বরান্বিত করছেন।
এবার মজার অংশ।
এটি FriendlyMeals অ্যাপের একটি ডেমো।
এছাড়াও, এই সেশনের বাকি ডেমোর জন্য আমরা একই অ্যাপ ব্যবহার করব, তাই এটি ডাউনলোড করতে দ্বিধা করবেন না।
আপনি এখানে QR কোড ব্যবহার করে এটি স্ক্যান করতে পারবেন।
আসুন, ডেমোটি দেখে নেওয়া যাক।
FriendlyMeals অ্যাপ মূলত আপনার লেখা উপাদানের উপর ভিত্তি করে রেসিপি শনাক্ত করতে সাহায্য করে।
সুতরাং, এই ওয়ার্কফ্লোতে, আপনি দেখতে পাচ্ছেন, মূলত, সেই ইনগ্রিডিয়েন্টগুলি ক্যাপচার করার দুটি উপায়।
প্রথমত, আপনার কাছে যেসব উপকরণ আছে সেগুলি লিখুন।
দ্বিতীয়ত, আপনি উপকরণগুলির ছবি তোলেন।
আমি প্রথম ওয়ার্কফ্লো ব্যবহার করব, অর্থাৎ উপকরণগুলি লিখব।
আমার ফ্রিজে শুধু এইগুলিই আছে।
এটি রেসিপি জেনারেট করছে, তাই আমি কিছু বিষয় উল্লেখ করতে চাই।
তাই, এখানে আমরা Gemini মডেলকে কল করছি।
এই নির্দিষ্ট ব্যবহারের ক্ষেত্রে, আমরা তিনটি Gemini 3.8 Flash কল করছি।
আপনি যদি উপরে দেখেন, তাহলে দেখতে পাবেন যে ছবিটি আসলে Gemini Nano Banana মডেল ব্যবহার করছে, যা হল 2.1 Nano Banana, লেটেস্ট ভার্সন।
কোড নিয়ে আলোচনা করার আগে, Firebase AI Logic-এর মাধ্যমে আপনি যে সাশ্রয়ী মূল্যে সেরা প্রস্তাবনা পান, সেই বিষয়ে আমি আরও একবার জোর দিতে চাই।
তাই, প্রথমটি হল সার্ভারলেস SDK।
আপনি একটি AI ফিচার যোগ করতে চান, কিন্তু আপনি ব্যাক-এন্ড তৈরি করতে চান না।
এখানেই আমাদের ক্লায়েন্ট-সাইড SDK-এর ভূমিকা রয়েছে।
আপনার Android অ্যাপ থেকে সরাসরি Gemini-কে কল করতে পারবেন।
দ্বিতীয়টি হল, শক্তিশালী বিল্ট-ইন নিরাপত্তা ফিচার।
তাই, Gemini-তে আপনার কলের জন্য, আপনি Firebase App Check-এর পাশাপাশি সার্ভার প্রম্পট টেমপ্লেট এবং অন্যান্য জিনিস ব্যবহার করতে পারেন এবং আমরা একটু পরে সেই নিরাপত্তা ফিচারগুলি সম্পর্কে আরও কথা বলব।
তৃতীয়ত, মাল্টিমোডাল ইনপুট ও স্ট্রিমিংয়ের মতো উন্নত ফিচারের জন্য সহায়তা।
ধরা যাক, আপনি এমন একটি অ্যাপ তৈরি করতে চান যা একটি ম্যাজিক ব্যাকপ্যাক সম্পর্কে গল্প তৈরি করার জন্য একটি সহজ, AI ফিচার যোগ করে।
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)
}এই তিনটি সহজ ধাপের মাধ্যমে AI ফিচার যোগ করা এবং প্রোডাকশনের জন্য তা রেডি করা যায়।
Firebase AI Logic-এর মাধ্যমে আপনার অ্যাপে AI ফিচার যোগ করা এত সহজ হয়ে যাওয়ার পরে, আপনার প্রথম প্রশ্ন হওয়া উচিত যে কীভাবে আপনি এই ফিচার সুরক্ষিত করবেন?
তাহলে, Firebase App Check দিয়ে শুরু করে নিরাপত্তা সংক্রান্ত বিবরণ দেখে নেওয়া যাক।
Firebase App Check আপনার ডেটা ও ব্যবহারকারীদের সুরক্ষিত রাখতে এবং আপনার API রিসোর্সে কার অ্যাক্সেস আছে তা নিয়ন্ত্রণ করতে সাহায্য করে। এটি করার জন্য, অনুরোধগুলি যে আপনার অ্যাপ থেকেই আসছে তা অ্যাটেস্ট করা হয়।
আপনার অ্যাপ যাতে অপব্যবহার না হয়, তার জন্য এটি একটি অতিরিক্ত নিরাপত্তা স্তর।
কোড লেখার আগে, Firebase কনসোলে আপনাকে কয়েকটি ধাপ অনুসরণ করতে হবে।
তাই Firebase কনসোলে App Check-এর অধীনে, আপনি নিজের Android অ্যাপ রেজিস্টার করতে যান এবং সংশ্লিষ্ট অ্যাটেস্টেশন প্রদানকারী যোগ করেন।
যেমন, Play Integrity বা reCAPTCHA Enterprise।
মনে রাখবেন, আপনি একবার শুরু করলে, একবার App Check সেট-আপ করলে, আপনি আনএনফোর্সড মোড দিয়ে শুরু করতে চান।
এইভাবে, আপনি নিজের অ্যাপকে টেলিমেট্রি প্রদান করার অনুমতি দিচ্ছেন যাতে আপনি এনফোর্স করার আগে আপনার সব অ্যাপ ব্যাক এন্ডে API কল পাচ্ছে ও সফল হচ্ছে কিনা তা নিশ্চিত করতে পারেন।
টেলিমেট্রি ঠিকভাবে কাজ করছে বলে দেখতে পেলে, আপনি App Check এনফোর্স করতে পারবেন, যার ফলে হার্ডওয়্যার-অ্যাটেস্টেড টোকেন নেই এমন যেকোনও অনুরোধ বাতিল করা হবে।
App Check প্রয়োগ করার কোডটি দেখতে কেমন হয় তা এখানে দেওয়া হল। এটি দেখতে এরকম হয়।
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)
}
}আপনার অ্যাপ্লিকেশন ক্লাসে, আপনি App Check প্রোভাইডার ইনস্টল করেন।
ডেভেলপমেন্টের বিভিন্ন পর্যায়ে, আপনি ডেভেলপমেন্ট ডিবাগ প্রোভাইডার ব্যবহার করতে চাইবেন এবং তারপরে প্রোডাকশনে যাওয়ার জন্য প্রস্তুত হলে, Play Integrity বা reCAPTCHA Enterprise-এ পাল্টে নেবেন।
তবে, সবসময় মনে রাখবেন যে অন্য কোনও Firebase কল করার আগে আপনাকে প্রথমে App Check কনফিগার করতে হবে।
AI ফিচার তৈরি করার সময়, ডেভেলপাররা প্রায়ই তাদের অ্যাপ কোডে সরাসরি হার্ড-কোড প্রম্পট ব্যবহার করেন, তবে এটি দুটি বড় চ্যালেঞ্জ তৈরি করে।
প্রথমত, প্রম্পটে কোনও ইম্প্রোভাইজেশন প্রয়োজন হলে, আপনাকে সম্পূর্ণ আপডেট পুশ করতে হবে।
দ্বিতীয়ত, যে কেউ আপনার অ্যাপ আনপ্যাক করলে, আপনার মালিকানাধীন প্রম্পট ইঞ্জিনিয়ারিং অ্যাক্সেস করতে পারবেন।
এই সমস্যার সমাধান করতে, 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এখানে উল্লেখ করার মতো একটি কল-আউট হল, সার্ভার প্রম্পট টেমপ্লেট পাবলিক প্রিভিউতে আছে।
এছাড়াও, আপনি শুধু-Auth মোড প্রয়োগ করতে পারবেন।
অনুরোধ অনুমোদন করতে এটি Firebase Auth ব্যবহারকারীর টোকেন ব্যবহার করে।
আমাদের নিরাপত্তা ফিচার সম্পূর্ণ করতে এবং আপনার অ্যাপ্লিকেশন সম্পূর্ণভাবে লক ডাউন করতে, আপনি সরাসরি Firebase কনসোল থেকে শুধুমাত্র-টেমপ্লেট মোড ব্যবহার করতে পারেন।
আপনার অ্যাপ লাইভ হয়ে গেলে, সেটি কেমন কাজ করছে তা আপনি দেখতে চাইতে পারেন।
AI মনিটরিং ট্যাবে, মাত্র একটি ক্লিক করে, আপনি AI মনিটরিং চালু করতে এবং আপনার স্যাম্পলিং রেট কনফিগার করতে পারবেন।
Firebase অটোমেটিক মেট্রিক, লেটেন্সি ও টোকেন কাউন্ট ক্যাপচার করবে, এর জন্য আপনাকে কোনও কাস্টম অ্যানালিটিক্স কোড লিখতে হবে না।
আমরা এইমাত্র যে দুটি মোড দেখলাম, সেগুলি উল্লেখ করার জন্য একটি কল-আউট, সেগুলি একই উইন্ডোর অধীনে উপলভ্য।
আপনার Firebase কনসোলে AI মনিটরিং চালু করার পরে, এটি সরাসরি AI মনিটরিং ড্যাশবোর্ডে ফিড করে।
আপনি ৯৫তম পার্সেন্টাইল লেটেন্সি পর্যবেক্ষণ করতে, হঠাৎ করে ত্রুটির স্পাইক শনাক্ত করতে এবং টেক্সট, ছবি ও অডিওর মতো বিভিন্ন মোডালিটি জুড়ে টোকেন ব্যবহার ট্র্যাক করতে পারবেন।
এছাড়াও, আপনি ট্রেস ভিউয়ার পরীক্ষা করে নির্দিষ্ট ট্রেস দেখতে পারেন।
সুতরাং, এই ক্ষেত্রে, এটি যেমন পার্থক্য দেখাচ্ছে-- আমরা যে মডেলটি ব্যবহার করছি, আপনি লেটেন্সি, সাফল্যের হার দেখতে পারেন।
Firebase কনসোলে, যেখানে আপনি সমস্ত টেলিমেট্রি এবং আপনার AI ফিচার কীভাবে কাজ করছে তার দৃশ্যমানতা পেতে পারেন।
সুতরাং, সেই ক্ষেত্রে, ধরা যাক আপনি টোকেন ব্যবহারে হঠাৎ স্পাইক দেখতে পাচ্ছেন বা লেটেন্সিতে হঠাৎ স্পাইক দেখতে পাচ্ছেন, হাইব্রিড হল সেই খরচ কমানোর বা লেটেন্সি কমানোর একটি উপায়।
আর জেনারেটিভ AI ফিচার আমাদের অ্যাপের মূল অংশ হয়ে ওঠার কারণে, ১০০% ক্লাউডের উপর নির্ভর করা সম্ভবত সঠিক সিদ্ধান্ত নয়।
তাই, Android-এ Nano 4, অন-ডিভাইস মডেল ব্যবহার করে, এটি তিনটি প্রধান সুবিধা আনলক করে, যার সাথে আপনারা সবাই পরিচিত হতে পারেন।
প্রথমটি হল অফলাইন মোড।
তাই, আপনি কোনও বড় কনফারেন্সে থাকুন বা প্লেনে বা সাবওয়েতে, আপনার AI ফিচার এখনও কাজ করবে।
খরচ।
তাই, ডিভাইসে ইনফারেন্স রান করার কারণে, আপনি এইসব ফিচার যোগ করতে পারবেন এবং আপনার AI ফিচারের জন্য খরচ বেড়ে যাওয়ার ব্যাপারে আপনাকে চিন্তা করতে হবে না।
এবং তারপর তিন নম্বর হল ডেটার গোপনীয়তা।
তাই, এটি যদি সংবেদনশীল ডেটা হয়, তাহলে আপনি ব্যবহারকারীদের গ্যারান্টি দিতে পারেন যে কোনও ইনফারেন্স আপনার ডিভাইস থেকে বেরোচ্ছে না।
তাই, Firebase AI Logic ব্যবহার করে, আপনি এইসব ইনফারেন্স মোড সেট করতে এবং PREFER_ON_DEVICE, PREFER_IN_CLOUD বা ONLY_ON_DEVICE-এর মতো স্পষ্ট রাউটিং স্ট্র্যাটেজি পেতে পারেন।
আপনি ONLY_ON_DEVICE বেছে নিলে, SDK সরাসরি অন-ডিভাইস মডেল ব্যবহার করে, ক্লাউডকে সম্পূর্ণভাবে বাইপাস করে।
ফোনে পরিবর্তন করা যাক।
তাই, আমরা আবার 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)
}SDK চেষ্টা করে এই ক্ষেত্রে, SDK প্রথমে লোকাল মডেল ব্যবহার করার চেষ্টা করবে এবং এটি উপলভ্য না থাকলে, এটি অটোমেটিক ক্লাউডে ফিরে যাবে।
এখন আমরা কীভাবে নিরাপদ অ্যাপ তৈরি করতে হয় এবং অন-ডিভাইস মডেলের সুবিধা নিতে হয় তা কভার করেছি, আসুন খরচ অপ্টিমাইজেশন সম্পর্কে কথা বলি।
জেনারেটিভ ফিচার দ্রুত স্কেল করতে পারে এবং আপনার ক্লাউড বিলও তাই।
তাই, আমাদের কাছে সঠিক প্রোঅ্যাক্টিভ ইনফ্রাস্ট্রাকচার কন্ট্রোল এবং অটোমেটেড ফিচার আছে কিনা তা নিশ্চিত করার জন্য আমাদের কাছে উপযুক্ত গার্ডরেল থাকতে হবে যা আপনার বাজেট অনুমান করতে এবং আপনার অ্যাপ্লিকেশনগুলিকে আর্থিকভাবে দক্ষ করতে সাহায্য করতে পারে।
আর্থার যেমন হাইলাইট করেছেন যে অন-ডিভাইস ইনফারেন্স সম্পূর্ণ ফ্রি, তবুও এমন পরিস্থিতি সবসময় থাকবে যেখানে জটিল রিজনিং টাস্কের প্রয়োজন হবে এবং ফলব্যাকও প্রয়োজন হবে এবং তার জন্য ক্লাউডে রাউটিং করতে হবে।
এইসব ক্লাউড কল করার সময়, আপনার বাজেট যাতে অনুমান করা যায় তার জন্য আপনার গার্ডরেল প্রয়োজন।
এই কারণেই Firebase-এ খরচের সীমা নির্ধারণ করা হয়।
খরচের ক্যাপের মাধ্যমে, আপনি নিজের অ্যাপের খরচের উপর আরও সূক্ষ্ম কন্ট্রোল পেতে পারেন।
তাই, সাধারণ, প্রোজেক্ট-ব্যাপী বাজেট সেটিং, বাজেট অ্যালার্ট যা আপনাকে শুধু একটি ইমেল পাঠায়, তার পরিবর্তে আপনি আসলে Firebase AI Logic-এর মতো স্বতন্ত্র পরিষেবার জন্য একটি নির্দিষ্ট বাজেট সীমা সেট করতে পারেন।
আপনার খরচ ১০০% হয়ে গেলে, Firebase অটোমেটিক AI পরিষেবা পজ করে দেয় যাতে বিলের পরিমাণ অনেক বেশি না হয়ে যায়।
সহজ খরচের ক্যাপ ছাড়াও, খরচ অপ্টিমাইজ করার জন্য বেশ কিছু উন্নত কৌশল রয়েছে।
আজ আমরা Firebase AI Logic ট্রিগার সম্পর্কে আলোচনা করব।
মাঝখানে কাস্টম লজিক প্রয়োজন হলে কী করবেন?
এগুলি হল Firebase AI Logic ট্রিগার।
আপনি কন্টেন্ট জেনারেট করার আগে বা পরে কোনও ফাংশন রান করতে পারেন।
এটি ব্যবহার করে চেক করুন যে-- ব্যবহারকারীকে চেক করুন, ইনপুট ফিল্টার করুন, প্রসঙ্গ যোগ করুন এবং উত্তর দেওয়ার পদ্ধতিও অ্যাডজাস্ট করুন।
এখন আমরা খরচ অপ্টিমাইজেশন এবং নিরাপত্তা কভার করেছি, তাই এবার মডেলের ক্ষমতা সম্পর্কে আলোচনা করা যাক এবং Firebase AI Logic কী অফার করে তা দেখা যাক।
এইসব মাল্টিমোডাল অভিজ্ঞতা প্রদান করতে, Firebase AI Logic প্রোডাকশন-রেডি মডেল ও টুলের একটি বিস্তারিত ক্যাটালগ প্রদান করে।
হাই-স্পিড রিজনিং, টেক্সট, কোড ও মিডিয়ার জন্য আপনি Gemini 4 Argon, Gemini 3.1 Pro, Gemini 3.8 Flash ও অন্যান্য মডেল ব্যবহার করতে পারবেন।
এছাড়াও, আপনি Search এবং Maps Grounding ব্যবহার করে বাস্তব-জগতের ডেটার সাথে এই মডেলগুলি কানেক্ট করতে পারেন।
এবং অবশেষে, ভয়েসের জন্য, আমরা স্বাভাবিক টেক্সট-টু-স্পিচ এবং 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()আপনি অডিও উত্তরের জন্য কনফিগার করা একটি লাইভ মডেল ইনস্ট্যান্টিয়েট করেন এবং একটি স্ট্রিম হ্যান্ডলারের সাথে সেশনে কানেক্ট করেন।
এখানে আমরা যে বিষয়টি সবচেয়ে বেশি গুরুত্ব দিতে চাই তা হল, এই SDK সম্পূর্ণ WebSocket এবং স্ট্রিমিং প্রোটোকল ব্যাকগ্রাউন্ডে ম্যানেজ করে।
তাহলে, আপনাকে এটি কোড করতে হবে না, তাই তো?
লাইন লিখতে থাকুন।
আমাদের ডেমো শেষ করার সাথে সাথে এবং অ্যাপ ডেভেলপমেন্টের ভবিষ্যতের দিকে তাকিয়ে, আমরা আপনার ওয়ার্কফ্লোর জন্য একটি শক্তিশালী টুল, Firebase এজেন্ট সংক্রান্ত দক্ষতা হাইলাইট করতে চাই।
# Execute to add agent capabilities to your workspace
npx skills add firebase/agent-skillsএছাড়াও, যারা Antigravity এবং Android Studio ব্যবহার করছেন, তাদের জন্য আমরা ইতিমধ্যেই অনবোর্ডিং ফ্লোতে সরাসরি 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