Firebase AI লজিক SDK ব্যবহার করে আপনার অ্যাপ থেকে Gemini API-কে কল করার সময়, আপনার অনুরোধে অনেকগুলি প্যারামিটার থাকে যা জেনারেটিভ AI প্রতিক্রিয়া নিয়ন্ত্রণ করে। এর মধ্যে সাধারণত মডেলের নাম, মডেল জেনারেশন কনফিগারেশন (সর্বোচ্চ টোকেন, তাপমাত্রা ইত্যাদি), নিরাপত্তা সেটিংস, সিস্টেম নির্দেশাবলী এবং প্রম্পট ডেটা অন্তর্ভুক্ত থাকে।
বেশিরভাগ ক্ষেত্রে, আপনি চাহিদা অনুযায়ী বা বেশ কয়েকটি পরিস্থিতিতে এইগুলি পরিবর্তন করতে চাইবেন:
- একটি নতুন অ্যাপ প্রকাশ না করেই আপনার জেনারেটিভ এআই মডেল আপডেট করুন। পূর্ববর্তী সংস্করণগুলি বাতিল হওয়ার আগে আপনি নতুন, স্থিতিশীল মডেল সংস্করণগুলিতে আপগ্রেড করতে পারেন, আপনার ব্যবহারকারীদের চাহিদা এবং বৈশিষ্ট্যগুলির উপর ভিত্তি করে কম খরচে বা উচ্চ কার্যক্ষমতার মডেলগুলিতে নামতে পারেন, বা শর্তসাপেক্ষে নির্দিষ্ট ব্যবহারকারী বিভাগে (যেমন বিটা পরীক্ষক) সর্বশেষ এবং সর্বশ্রেষ্ঠ মডেল স্থাপন করতে পারেন।
- আপনি মডেলটি যেখানে অ্যাক্সেস করবেন সেই অবস্থানটি সেট করুন যাতে এটি আপনার ব্যবহারকারীদের কাছাকাছি হয়।
- A/B বিভিন্ন সিস্টেম নির্দেশাবলী এবং প্রম্পট পরীক্ষা করুন, তারপর ধীরে ধীরে আপনার ব্যবহারকারীদের কাছে বিজয়ী পরীক্ষার মানগুলি রোল আউট করুন।
- আপনার অ্যাপে জেনারেটিভ AI বৈশিষ্ট্যগুলি দ্রুত প্রকাশ বা লুকানোর জন্য বৈশিষ্ট্য পতাকা ব্যবহার করুন।
Firebase Remote Config এই সমস্ত এবং আরও অনেক কিছু করে, আপনাকে আপনার অ্যাপের একটি নতুন সংস্করণ প্রকাশ না করেই, Firebase কনসোলে আপনার সেট করা বৈশিষ্ট্যগুলির সাথে মেলে এমন অ্যাপের উদাহরণগুলির জন্য প্রয়োজনীয় এবং শর্তসাপেক্ষে প্যারামিটার মান আপডেট করতে দেয়।
এই সমাধান নির্দেশিকা নির্দিষ্ট প্রস্তাবিত ব্যবহারের ক্ষেত্রে প্রদান করে এবং কীভাবে আপনার জেনারেটিভ এআই অ্যাপে Remote Config যোগ করতে হয় তা বর্ণনা করে।
কেন আপনার অ্যাপের সাথে Firebase Remote Config ব্যবহার করবেন?
Firebase Remote Config আপনাকে অ্যাপ আপডেটের প্রয়োজন ছাড়াই আপনার অ্যাপের আচরণকে গতিশীলভাবে সামঞ্জস্য করতে দেয়। এটি বিশেষত এমন অ্যাপগুলির জন্য শক্তিশালী যেগুলি জেনারেটিভ এআই ব্যবহার করে, যেখানে দ্রুত পুনরাবৃত্তি এবং সূক্ষ্ম-টিউনিং অত্যন্ত গুরুত্বপূর্ণ।
জেনারেটিভ এআই অ্যাপের সাথে Remote Config জন্য প্রয়োজনীয় ব্যবহারের ক্ষেত্রে
আমরা নিম্নলিখিত প্রয়োজনীয় ব্যবহারের ক্ষেত্রে Firebase AI লজিকের সাথে Remote Config ব্যবহার করার পরামর্শ দিই:
অ্যাপ আপডেট ছাড়াই সর্বশেষ মডেল সংস্করণে আপগ্রেড করুন : প্রয়োজন অনুযায়ী মডেলের নাম পরিবর্তন করতে Remote Config প্যারামিটার ব্যবহার করুন, যাতে আপনি আপনার পছন্দের জেমিনি মডেলের সর্বশেষ সংস্করণে এটি উপলব্ধ হওয়ার সাথে সাথে আপগ্রেড করতে পারেন।
অ্যাপ আপডেট ছাড়াই সিস্টেমের নির্দেশাবলী এবং নিরাপত্তা সেটিংস আপডেট করুন : Remote Config প্যারামিটারের মধ্যে সিস্টেম নির্দেশাবলী এবং নিরাপত্তা সেটিংস সংরক্ষণ করুন যাতে আপনি স্থাপনের পরে সমস্যাগুলি আবিষ্কার করলে আপনি সেগুলি অন-ডিমান্ড পরিবর্তন করতে পারেন।
ঝুঁকি হ্রাস করুন এবং AI সুরক্ষা প্রয়োগ করুন : আপনার iOS এবং Android ব্যবহারকারীদের জন্য নিরাপদে এবং ধীরে ধীরে জেনারেটিভ AI পরিবর্তনগুলি প্রকাশ করতে Remote Config রোলআউটগুলি ব্যবহার করুন৷
জেনারেটিভ এআই অ্যাপের সাথে Remote Config জন্য উন্নত এবং প্রস্তাবিত ব্যবহারের ক্ষেত্রে
Remote Config এবং Google Analytics সাথে আপনার অ্যাপকে ইনস্ট্রুমেন্ট করার পরে, আপনি উন্নত ব্যবহারের ক্ষেত্রে অন্বেষণ করতে পারেন:
ক্লায়েন্ট অবস্থানের উপর ভিত্তি করে অবস্থান সেট করুন : ক্লায়েন্টের সনাক্ত করা অবস্থানের উপর ভিত্তি করে আপনি মডেলটি যেখানে অ্যাক্সেস করবেন সেটি সেট করতে Remote Config শর্তাবলী ব্যবহার করুন।
বিভিন্ন মডেলের সাথে পরীক্ষা করুন : দ্রুত পরীক্ষা করুন এবং বিভিন্ন জেনারেটিভ এআই মডেলের মধ্যে স্যুইচ করুন, এমনকি আপনার নির্দিষ্ট ব্যবহারের ক্ষেত্রে সর্বোত্তম উপযুক্ত খুঁজে পেতে বিভিন্ন ব্যবহারকারী বিভাগের জন্য বিভিন্ন মডেল অ্যাক্সেস করুন।
মডেলের কর্মক্ষমতা অপ্টিমাইজ করুন : ফাইন-টিউন মডেল প্যারামিটার, যেমন সিস্টেম প্রম্পট, সর্বোচ্চ আউটপুট টোকেন, তাপমাত্রা এবং অন্যান্য সেটিংস।
ক্লায়েন্ট অ্যাট্রিবিউটের উপর ভিত্তি করে বিভিন্ন সিস্টেম নির্দেশাবলী, প্রম্পট এবং মডেল কনফিগারেশন ব্যবহার করুন : Google Analytics সাথে Remote Config ব্যবহার করার সময়, আপনি ক্লায়েন্ট অ্যাট্রিবিউট বা কাস্টম অডিয়েন্সের উপর ভিত্তি করে শর্ত তৈরি করতে পারেন এবং এই বৈশিষ্ট্যগুলির উপর ভিত্তি করে বিভিন্ন প্যারামিটার সেট করতে পারেন।
উদাহরণস্বরূপ, আপনি যদি আপনার অ্যাপে প্রযুক্তিগত সহায়তা প্রদানের জন্য জেনারেটিভ AI ব্যবহার করেন, তাহলে আপনার Android, iOS এবং ওয়েব প্ল্যাটফর্ম ব্যবহারকারীদের সঠিক নির্দেশাবলী প্রদান করা হয়েছে তা নিশ্চিত করতে আপনি অ্যাপ প্ল্যাটফর্মের জন্য নির্দিষ্ট সিস্টেম নির্দেশাবলী সেট করতে চাইতে পারেন।
প্রতিটি ব্যবহারকারীর জন্য অভিজ্ঞতা ব্যক্তিগতকৃত করুন : প্রতিটি ব্যবহারকারীর জন্য সর্বোত্তম জেনারেটিভ AI সেটিংস স্বয়ংক্রিয়ভাবে নির্ধারণ করতে আপনার মোবাইল অ্যাপ এবং গেমগুলির সাথে Remote Config ব্যক্তিগতকরণ ব্যবহার করুন।
কন্ট্রোল খরচ : দূরবর্তীভাবে কোন জেনারেটিভ AI মডেলগুলিকে বলা হয়, কত ঘন ঘন ব্যবহার করা হয় তা সামঞ্জস্য করুন এবং অপ্রয়োজনীয় খরচ কমাতে ব্যবহারকারীর দর্শকদের উপর ভিত্তি করে সর্বাধিক আউটপুট টোকেন মানগুলি গতিশীলভাবে কনফিগার করুন৷
অ্যাপের অভিজ্ঞতা এবং ফলাফল অপ্টিমাইজ করুন : আপনার মোবাইল অ্যাপস এবং গেমগুলির সাথে Remote Config সাথে A/B Testing ব্যবহার করুন বিভিন্ন ব্যবহারকারী বিভাগে জেনারেটিভ এআই প্যারামিটারে পরিবর্তনগুলি পরীক্ষা করতে তারা কীভাবে ধারণ এবং আয়ের মতো মূল মেট্রিক্সকে প্রভাবিত করে তা দেখতে।
Firebase Remote Config সাথে আপনার জেনারেটিভ AI অ্যাপটিকে ইনস্ট্রুমেন্ট করে, আপনি আপনার ব্যবহারকারীদের জন্য আনন্দদায়ক অভিজ্ঞতা তৈরি করার সাথে সাথে নমনীয়, নিরাপদ এবং সাশ্রয়ী AI-চালিত অ্যাপ্লিকেশন তৈরি করতে পারেন।
আপনার অ্যাপে Firebase Remote Config যোগ করুন
এই সমাধান নির্দেশিকাটিতে, আপনি Firebase AI Logic SDK ব্যবহার করে আপনার Android অ্যাপে প্যারামিটারগুলিকে গতিশীলভাবে আপডেট করতে Firebase Remote Config ব্যবহার করবেন। আপনি শিখবেন কিভাবে:
- Firebase Remote Config থেকে মডেলের নাম এবং সিস্টেম নির্দেশের মতো প্যারামিটারগুলি আনুন এবং সক্রিয় করুন।
- গতিশীলভাবে পুনরুদ্ধার করা প্যারামিটারগুলি ব্যবহার করতে আপনার জেমিনি API কলগুলি আপডেট করুন, আপনাকে বিভিন্ন মডেলের মধ্যে স্যুইচ করতে বা কোনও অ্যাপ আপডেট ছাড়াই সিস্টেম নির্দেশাবলী পরিবর্তন করতে দেয়৷
- প্রয়োজন অনুযায়ী মডেল আচরণ এবং ক্ষমতা সামঞ্জস্য, দূরবর্তীভাবে পরামিতি নিয়ন্ত্রণ.
পূর্বশর্ত
এই গাইডটি অনুমান করে যে আপনি আপনার প্ল্যাটফর্মের জন্য অ্যাপ্লিকেশনগুলি তৈরি করার সাথে পরিচিত৷
আপনি শুরু করার আগে, নিশ্চিত করুন যে আপনি নিম্নলিখিতগুলি করেন:
Firebase AI লজিক শুরু করার নির্দেশিকাটি সম্পূর্ণ করুন, যা বর্ণনা করে যে কীভাবে আপনার Firebase প্রকল্প সেট আপ করবেন, আপনার অ্যাপকে Firebase-এর সাথে সংযুক্ত করবেন, SDK যোগ করবেন, আপনার নির্বাচিত " জেমিনি API " প্রদানকারীর জন্য ব্যাকএন্ড পরিষেবা শুরু করবেন এবং একটি মডেল উদাহরণ তৈরি করবেন৷
আপনার ফায়ারবেস প্রোজেক্টে Google Analytics সক্ষম করুন এবং আপনার অ্যাপে এর SDK যোগ করুন (শর্তসাপেক্ষ টার্গেটিংয়ের জন্য প্রয়োজন, যেমন ক্লায়েন্ট ডিভাইসের অবস্থানের উপর ভিত্তি করে আপনি মডেলটি যেখানে অ্যাক্সেস করবেন সেটি সেট করা)।
ধাপ 1 : Firebase কনসোলে প্যারামিটার মান সেট করুন
একটি ক্লায়েন্ট Remote Config টেমপ্লেট তৈরি করুন এবং অ্যাপে আনতে এবং ব্যবহার করার জন্য প্যারামিটার এবং মান কনফিগার করুন।
- Firebase কনসোলে আপনার Firebase প্রকল্প খুলুন। তারপর, নেভিগেশন মেনু থেকে, রান প্রসারিত করুন এবং Remote Config নির্বাচন করুন।
- পৃষ্ঠার শীর্ষে থাকা ক্লায়েন্ট/সার্ভার নির্বাচক থেকে ক্লায়েন্ট নির্বাচন করা হয়েছে তা নিশ্চিত করুন।
- কনফিগারেশন তৈরি করুন ক্লিক করে একটি ক্লায়েন্ট টেমপ্লেট শুরু করুন (অথবা যদি আপনি পূর্বে ক্লায়েন্ট টেমপ্লেট ব্যবহার করে থাকেন তাহলে প্যারামিটার যোগ করুন )।
Remote Config মাধ্যমে আপনি যে প্যারামিটারগুলি নিয়ন্ত্রণ করতে চান তা নির্ধারণ করুন। যেমন:
পরামিতি নাম বর্ণনা টাইপ ডিফল্ট মান model_name
মডেলের নাম। উপলব্ধ মডেল নাম দেখুন. স্ট্রিং gemini-2.0-flash
system_instructions
সিস্টেম নির্দেশাবলী একটি "প্রস্তাবনা" এর মতো যা আপনি মডেলের আচরণকে প্রভাবিত করার জন্য শেষ ব্যবহারকারীর কাছ থেকে অন্য কোনো নির্দেশাবলীর সামনে আসার আগে যোগ করেন। স্ট্রিং You are a helpful assistant who knows everything there is to know about Firebase!
prompt
আপনার জেনারেটিভ এআই বৈশিষ্ট্যের সাথে ব্যবহার করার জন্য ডিফল্ট প্রম্পট। স্ট্রিং I am a developer who wants to know more about Firebase!
vertex_location
শুধুমাত্র Vertex AI Gemini API ব্যবহার করলেই প্রযোজ্য।
মডেল অ্যাক্সেস করতে অবস্থান নিয়ন্ত্রণ. আপনি Google Analytics দ্বারা সনাক্ত করা ক্লায়েন্ট অবস্থানের উপর ভিত্তি করে এই বিকল্পটি কনফিগার করার শর্ত সেট করতে পারেন।স্ট্রিং us-central1
প্যারামিটার যোগ করা শেষ হলে, পরিবর্তনগুলি প্রকাশ করুন এ ক্লিক করুন। যদি এটি একটি নতুন Remote Config টেমপ্লেট না হয় তবে পরিবর্তনগুলি পর্যালোচনা করুন এবং পরিবর্তনগুলি প্রকাশ করুন ক্লিক করুন৷
ধাপ 2 : আপনার অ্যাপে Remote Config যোগ করুন এবং শুরু করুন
Remote Config লাইব্রেরি যোগ করুন এবং আপনার অ্যাপের মধ্যে Remote Config সেট আপ করুন।
সুইফট
Firebase AI লজিক সেটআপের অংশ হিসেবে, আপনি ইতিমধ্যেই আপনার অ্যাপে Firebase SDK যোগ করেছেন, কিন্তু Remote Config যোগ করতে হবে।
এক্সকোডে, প্রকল্প খোলার সাথে, ফাইল > প্যাকেজ নির্ভরতা যোগ করুন এ নেভিগেট করুন।
Firebase-ios-sdk নির্বাচন করুন এবং তারপর প্যাকেজ যুক্ত করুন ক্লিক করুন।
প্রজেক্ট নেভিগেটর থেকে, আপনার অ্যাপ > টার্গেট > আপনার অ্যাপ নির্বাচন করুন।
সাধারণ ট্যাব থেকে, ফ্রেমওয়ার্ক, লাইব্রেরি এবং এমবেডেড সামগ্রীতে স্ক্রোল করুন।
+ ক্লিক করুন এবং FirebaseRemoteConfig নির্বাচন করুন, তারপর যোগ করুন ক্লিক করুন।
আপনার কোডে
FirebaseRemoteConfig
আমদানি যোগ করুন:import FirebaseRemoteConfig
আপনার অ্যাপের জন্য উপযুক্ত ক্লাসের ভিতরে, Firebase শুরু করুন এবং আপনার প্রধান অ্যাপ্লিকেশন লজিকে Remote Config যোগ করুন।
এখানে, আপনি আমদানি হিসাবে Remote Config এবং Remote Config রিয়েল-টাইম লিসেনার অন্তর্ভুক্ত করবেন যাতে অ্যাপটি রিয়েল-টাইমে নতুন মান আনতে পারে এবং একটি ন্যূনতম আনয়ন ব্যবধান যোগ করতে পারে:
let remoteConfig = RemoteConfig.remoteConfig() let settings = RemoteConfigSettings() settings.minimumFetchInterval = 3600 remoteConfig.configSettings = settings
Quickstart অ্যাপে , এটি হবে
VertexAISampleApp
ভিতরে,AppDelegate
ক্লাসের মধ্যে।
Kotlin
আপনার মডিউল (অ্যাপ-লেভেল) গ্রেডল ফাইলে Remote Config নির্ভরতা যোগ করুন (সাধারণত
app/build.gradle.kts
বাapp/build.gradle
):dependencies { implementation(platform("com.google.firebase:firebase-bom:33.14.0")) implementation("com.google.firebase:firebase-ai") implementation("com.google.firebase:firebase-config") // ... other dependencies }
আপনার প্রধান অ্যাপ্লিকেশন যুক্তিতে Remote Config যোগ করুন। এখানে, আপনি Remote Config আরম্ভ করবেন এবং একটি ন্যূনতম আনয়ন ব্যবধান যোগ করবেন:
val remoteConfig: FirebaseRemoteConfig = Firebase.remoteConfig val configSettings = remoteConfigSettings { minimumFetchIntervalInSeconds = 3600 } remoteConfig.setConfigSettingsAsync(configSettings)
Java
আপনার মডিউল (অ্যাপ-লেভেল) গ্রেডল ফাইলে Remote Config নির্ভরতা যোগ করুন (সাধারণত
app/build.gradle.kts
বাapp/build.gradle
):dependencies { implementation(platform("com.google.firebase:firebase-bom:33.14.0")) implementation("com.google.firebase:firebase-ai") implementation("com.google.firebase:firebase-config") // ... other dependencies }
আপনার প্রধান অ্যাপ্লিকেশন যুক্তিতে Remote Config যোগ করুন। এখানে, আপনি Remote Config আরম্ভ করবেন এবং একটি ন্যূনতম আনয়ন ব্যবধান যোগ করবেন:
FirebaseRemoteConfig mFirebaseRemoteConfig = FirebaseRemoteConfig.getInstance(); FirebaseRemoteConfigSettings configSettings = new FirebaseRemoteConfigSettings.Builder() .setMinimumFetchIntervalInSeconds(3600) .build(); mFirebaseRemoteConfig.setConfigSettingsAsync(configSettings);
Web
একটি পাঠ্য সম্পাদকে আপনার কোড খুলুন এবং Remote Config আমদানি করুন:
import { getRemoteConfig } from 'firebase/remote-config';
আপনার প্রাথমিক ফাংশনের ভিতরে এবং Firebase এআই লজিক SDK-এর জন্য Firebase অ্যাপ চালু হওয়ার পরে, Remote Config শুরু করুন:
// Initialize Remote Config and get a reference to the service const remoteConfig = getRemoteConfig(app);
একটি সর্বনিম্ন আনার ব্যবধান সেট করুন:
remoteConfig.settings.minimumFetchIntervalMillis = 3600000;
Dart
আপনার ফ্লাটার প্রজেক্ট ডিরেক্টরি থেকে, নিম্নলিখিত কমান্ডটি ব্যবহার করে Remote Config ইনস্টল করুন এবং যোগ করুন:
flutter pub add firebase_remote_config
./lib/main.dart
খুলুন এবং Firebase AI লজিক সমর্থন করতে আপনার যোগ করা অন্যান্য আমদানির পরে আমদানি যোগ করুন:import 'package:firebase_vertexai/firebase_ai.dart'; import 'package:firebase_core/firebase_core.dart'; import 'package:firebase_remote_config/firebase_remote_config.dart';
আপনার অ্যাপে
_modelName
,_systemInstructions
, এবং_prompt
ভেরিয়েবল যোগ করুন যাতে আমরা সেগুলি পরে ব্যবহার করতে পারি:late final String _modelName; late final String _systemInstructions; late final String _prompt;
Remote Config অবজেক্ট ইনস্ট্যান্স পান এবং ঘন ঘন রিফ্রেশ করার জন্য ন্যূনতম আনয়ন ব্যবধান সেট করুন। Firebase আরম্ভ করার পরে এটি যোগ করতে ভুলবেন না।
final remoteConfig = FirebaseRemoteConfig.instance; await remoteConfig.setConfigSettings(RemoteConfigSettings( fetchTimeout: const Duration(seconds: 3600), minimumFetchInterval: const Duration(seconds: 3600), ));
ঐক্য
এই নির্দেশাবলী অনুসরণ করে আপনার ইউনিটি প্রকল্পে Remote Config যোগ করুন।
Remote Config অবজেক্ট ইনস্ট্যান্স পান এবং ঘন ঘন রিফ্রেশ করার জন্য ন্যূনতম আনয়ন ব্যবধান সেট করুন। Firebase আরম্ভ করার পরে এটি যোগ করতে ভুলবেন না।
var remoteConfig = FirebaseRemoteConfig.DefaultInstance; const int MillisecondsPerSecond = 1000; await remoteConfig.SetConfigSettingsAsync(new ConfigSettings() { FetchTimeoutInMilliseconds = 3600 * MillisecondsPerSecond, MinimumFetchIntervalInMilliseconds = 3600 * MillisecondsPerSecond });
ধাপ 3 : অ্যাপ-মধ্যস্থ প্যারামিটার মান সেট করুন
Remote Config অবজেক্টে আপনার ইন-অ্যাপ ডিফল্ট প্যারামিটার মান সেট করা উচিত। এটি নিশ্চিত করে যে আপনার অ্যাপটি Remote Config পরিষেবা থেকে মান আনতে না পারলেও প্রত্যাশিতভাবে আচরণ করে।
সুইফট
Firebase কনসোলে, Remote Config খুলুন।
প্যারামিটার ট্যাবে, মেনু খুলুন এবং ডিফল্ট মান ডাউনলোড করুন নির্বাচন করুন।
যখন অনুরোধ করা হয়, iOS এর জন্য .plist সক্ষম করুন, তারপর ফাইল ডাউনলোড করুন ক্লিক করুন।
আপনার অ্যাপ্লিকেশন ডিরেক্টরিতে ফাইলটি সংরক্ষণ করুন।
নমুনা অ্যাপ ব্যবহার করলে,
FirebaseVertexAI/Sample/VertexAISample
মধ্যে এটি সংরক্ষণ করুন।এক্সকোডে, আপনার অ্যাপে ডান-ক্লিক করুন এবং ফাইল যোগ করুন নির্বাচন করুন
নমুনা ব্যবহার করলে, VertexAISample- এ ডান-ক্লিক করুন এবং "VertexAISample"-এ ফাইল যোগ করুন নির্বাচন করুন।
remote_config_defaults.plist নির্বাচন করুন, তারপর যোগ করুন ক্লিক করুন।
ডিফল্ট ফাইল উল্লেখ করতে আপনার অ্যাপ কোড আপডেট করুন:
// Set default values remoteConfig.setDefaults(fromPlist: "remote_config_defaults")
Kotlin
Firebase কনসোল থেকে, Remote Config খুলুন।
প্যারামিটার ট্যাবে, মেনু খুলুন এবং ডিফল্ট মান ডাউনলোড করুন নির্বাচন করুন।
অনুরোধ করা হলে, Android এর জন্য .xml সক্ষম করুন, তারপর ফাইল ডাউনলোড করুন ক্লিক করুন।
ফাইলটি আপনার অ্যাপের XML রিসোর্স ডিরেক্টরিতে সংরক্ষণ করুন।
আপনি পূর্বে যোগ করা
configSettings
পরে ডিফল্ট যোগ করতে আপনার প্রধান কার্যকলাপ ফাইল আপডেট করুন:// Set default values. remoteConfig.setDefaultsAsync(R.xml.remote_config_defaults)
Java
Firebase কনসোলে, Remote Config খুলুন।
প্যারামিটার ট্যাবে, মেনু খুলুন এবং ডিফল্ট মান ডাউনলোড করুন নির্বাচন করুন।
অনুরোধ করা হলে, Android এর জন্য .xml সক্ষম করুন, তারপর ফাইল ডাউনলোড করুন ক্লিক করুন।
ফাইলটি আপনার অ্যাপের XML রিসোর্স ডিরেক্টরিতে সংরক্ষণ করুন।
আপনি পূর্বে যোগ করা
configSettings
পরে ডিফল্ট যোগ করতে আপনার প্রধান কার্যকলাপ ফাইল আপডেট করুন:// Set default values. mFirebaseRemoteConfig.setDefaultsAsync(R.xml.remote_config_defaults);
Web
আপনি সরাসরি আপনার কোডে ডিফল্ট মান সেট করতে পারেন:
// Set default Remote Config parameter values
remoteConfig.defaultConfig = {
model_name: 'gemini-2.0-flash',
system_instructions:
'You are a helpful assistant who knows everything there is to know about Firebase!',
prompt: 'I am a developer who wants to know more about Firebase!',
vertex_location: 'us-central1',
};
Dart
আপনি সরাসরি আপনার কোডে ডিফল্ট মান সেট করতে পারেন:
remoteConfig.setDefaults(const {
"model_name": "gemini-2.0-flash",
"system_instructions": "You are a helpful assistant who knows everything there is to know about Firebase!",
"prompt": "I am a developer who wants to know more about Firebase!",
"vertex_location": "us-central1"
});
ঐক্য
আপনি সরাসরি আপনার কোডে ডিফল্ট মান সেট করতে পারেন:
await remoteConfig.SetDefaultsAsync(
new System.Collections.Generic.Dictionary<string, object>() {
{ "model_name", "gemini-2.0-flash" },
{ "system_instructions", "You are a helpful assistant who knows everything there is to know about Firebase!" },
{ "prompt", "I am a developer who wants to know more about Firebase!" },
{ "vertex_location", "us-central1" }
}
);
ধাপ 4 : মান আনুন এবং সক্রিয় করুন
ডিফল্ট সেট করার পরে, মান আনতে এবং সক্রিয় করতে নিম্নলিখিত যোগ করুন।
সুইফট
// Fetch and activate Remote Config values
remoteConfig.fetchAndActivate { status, error in
if let error = error {
print("Error fetching Remote Config: \(error.localizedDescription)")
}
}
যখনই একটি নতুন Remote Config টেমপ্লেট প্রকাশিত হয় তখন এটি Remote Config অবজেক্ট আপডেট করা উচিত।
Kotlin
// Fetch and activate Remote Config values
remoteConfig.fetchAndActivate()
.addOnCompleteListener(this) { task ->
if (task.isSuccessful) {
val updated = task.result
Log.d(TAG, "Remote Config values fetched and activated: $updated")
} else {
Log.e(TAG, "Error fetching Remote Config", task.exception)
}
}
Java
// Fetch and activate Remote Config values
mFirebaseRemoteConfig.fetchAndActivate()
.addOnCompleteListener(this, new OnCompleteListener<Boolean>() {
@Override
public void onComplete(@NonNull Task<Boolean> task) {
if (task.isSuccessful()) {
boolean updated = task.getResult();
Log.d(TAG, "Config params updated: " + updated);
} else {
Log.e(TAG, "Error fetching Remote Config", task.exception)
}
}
});
Web
আপনার আমদানিতে
getValue
এবংfetchAndActivate
যোগ করুন:import { getValue, fetchAndActivate } from 'firebase/remote-config';
আপনি ডিফল্ট Remote Config মান কনফিগার করতে যে কোডটি যোগ করেছেন তার পরে, কনফিগার আনুন এবং সক্রিয় করুন, তারপর
modelName
,systemInstructions
,prompt
, এবংvertexLocation
ধ্রুবকগুলিতে মান নির্ধারণ করুন৷// Fetch and activate Remote Config. try { await fetchAndActivate(remoteConfig); } catch(err) { console.error('Remote Config fetch failed', err); } console.log('Remote Config fetched.'); // Assign Remote Config values. const modelName = getValue(remoteConfig, 'model_name').asString(); const systemInstructions = getValue(remoteConfig, 'system_instructions').asString(); const prompt = getValue(remoteConfig, 'prompt').asString(); const vertexLocation = getValue(remoteConfig, 'vertex_location').asString();
Dart
// Fetch and activate Remote Config.
remoteConfig.fetchAndActivate();
// Assign Remote Config values.
String? _modelName = remoteConfig.getString("model_name");
String? _systemInstructions = remoteConfig.getString("system_instructions");
String? _prompt = remoteConfig.getString("prompt");
String? _vertexLocation = remoteConfig.getString("vertex_location");
ঐক্য
// Fetch and activate Remote Config values.
await remoteConfig.FetchAndActivateAsync();
ধাপ 5 : একটি রিয়েল-টাইম Remote Config শ্রোতা যোগ করুন
Remote Config টেমপ্লেটে আপনার করা পরিবর্তনগুলি আপডেট হওয়ার সাথে সাথে ক্লায়েন্টের কাছে প্রচারিত হয় তা নিশ্চিত করতে আপনার অ্যাপে একটি রিয়েল-টাইম Remote Config লিসেনার যোগ করুন।
নিম্নলিখিত কোডটি Remote Config অবজেক্ট আপডেট করে যখনই একটি প্যারামিটারের মান পরিবর্তিত হয়।
সুইফট
// Add real-time Remote Config
remoteConfig.addOnConfigUpdateListener { configUpdate, error in
guard let configUpdate = configUpdate, error == nil else {
print("Error listening for config updates: \(error?.localizedDescription ?? "No error available")")
return
}
print("Updated keys: \(configUpdate.updatedKeys)")
remoteConfig.activate { changed, error in
guard error == nil else {
print("Error activating config: \(error?.localizedDescription ?? "No error available")")
return
}
print("Activated config successfully")
}
}
Kotlin
ঐচ্ছিকভাবে, আপনি addOnCompleteListener
অ্যাক্টিভেশনের ভিতরে একটি ক্রিয়া কনফিগার করতে পারেন:
// Add a real-time Remote Config listener
remoteConfig.addOnConfigUpdateListener(object : ConfigUpdateListener {
override fun onUpdate(configUpdate : ConfigUpdate) {
Log.d(ContentValues.TAG, "Updated keys: " + configUpdate.updatedKeys);
remoteConfig.activate().addOnCompleteListener {
// Optionally, add an action to perform on update here.
}
}
override fun onError(error : FirebaseRemoteConfigException) {
Log.w(ContentValues.TAG, "Config update error with code: " + error.code, error)
}
}
Java
ঐচ্ছিকভাবে, আপনি addOnCompleteListener
অ্যাক্টিভেশনের ভিতরে একটি ক্রিয়া কনফিগার করতে পারেন:
// Add a real-time Remote Config listener
remoteConfig.addOnConfigUpdateListener(new ConfigUpdateListener() {
@Override
public void onUpdate(ConfigUpdate configUpdate) {
Log.d(ContentValues.TAG, "Updated keys: " + configUpdate.getUpdatedKeys());
remoteConfig.activate().addOnCompleteListener(new OnCompleteListener<Boolean>() {
@Override
public void onComplete(@NonNull Task<Boolean> task) {
// Optionally, add an action to perform on update here.
}
});
}
@Override
public void onError(FirebaseRemoteConfigException error) {
Log.w(ContentValues.TAG, "Config update error with code: " + error.getCode(), error);
}
});
Web
রিয়েল-টাইম Remote Config শ্রোতারা ওয়েব অ্যাপের জন্য সমর্থিত নয়।
Dart
// Add a real-time Remote Config listener
remoteConfig.onConfigUpdated.listen((event) async {
await remoteConfig.activate();
});
ঐক্য
// Add a real-time Remote Config listener to automatically update whenever
// a new template is published.
// Note: the parameters can be anonymous as they are unused.
remoteConfig.OnConfigUpdateListener += (_, _) => {
remoteConfig.ActivateAsync();
};
ধাপ 6 : Remote Config মান ব্যবহার করার জন্য Gemini API অনুরোধ আপডেট করুন
এই পৃষ্ঠায় প্রদানকারী-নির্দিষ্ট সামগ্রী এবং কোড দেখতে আপনার Gemini API প্রদানকারীতে ক্লিক করুন। |
এখন যেহেতু Remote Config সম্পূর্ণরূপে কনফিগার করা হয়েছে, Remote Config থেকে উৎসারিত মানগুলির সাথে হার্ড-কোডেড মানগুলি প্রতিস্থাপন করতে আপনার কোড আপডেট করুন৷
সুইফট
// Initialize the Gemini Developer API backend service
// The Gemini Developer API doesn't support setting the location of a model
let ai = FirebaseAI.firebaseAI(backend: .googleAI())
// Create a `GenerativeModel` and add system instructions into its config
// Both the model name and the system instructions will be sourced from Remote Config
let modelName = remoteConfig.configValue(forKey: "model_name").stringValue
let systemInstructions = remoteConfig.configValue(forKey: "system_instructions").stringValue
let model = ai.generativeModel(
modelName: modelName,
systemInstruction: ModelContent(role: "system", parts: systemInstructions)
)
// Provide a prompt that contains text
// The text in the prompt will be sourced from Remote Config
let userPrompt = remoteConfig.configValue(forKey: "prompt").stringValue
// To generate text output, call `generateContent` with the text input
let response = try await model.generateContent(userPrompt)
if let text = response.text {
print(text)
}
Kotlin
// Initialize the Gemini Developer API backend service
// The Gemini Developer API doesn't support setting the location of a model
val ai = Firebase.ai(backend = GenerativeBackend.googleAI())
// Create a `GenerativeModel` and add system instructions into its config
// Both the model name and the system instructions will be sourced from Remote Config
val model = ai.generativeModel(
modelName = remoteConfig.getString("model_name"),
systemInstruction = content { text(remoteConfig.getString("system_instructions")) }
)
// To generate text output, call `generateContent` with the text input
// The text in the prompt will be sourced from Remote Config
val response = model.generateContent(remoteConfig.getString("prompt"))
print(response.text)
Java
// Initialize the Gemini Developer API backend service
// The Gemini Developer API doesn't support setting the location of a model
FirebaseAI ai = FirebaseAI.getInstance(GenerativeBackend.googleAI());
// Create a `GenerativeModel` and add system instructions into its config
// Both the model name and the system instructions will be sourced from Remote Config
GenerativeModel gm = ai.generativeModel(
/* modelName */ remoteConfig.getString("model_name"),
/* generationConfig (optional) */ null,
/* safetySettings (optional) */ null,
/* tools (optional) */ null,
/* toolsConfig (optional) */ null,
/* systemInstruction (optional) */ new Content.Builder().addText(
remoteConfig.getString("system_instructions")).build(),
/* requestOptions (optional) */ new RequestOptions()
);
GenerativeModelFutures model = GenerativeModelFutures.from(gm);
// Provide a prompt that contains text
// The text in the prompt will be sourced from Remote Config
Content userPrompt = new Content.Builder()
.addText(remoteConfig.getString("prompt"))
.build();
// To generate text output, call `generateContent` with the text input
ListenableFuture<GenerateContentResponse> response = model.generateContent(userPrompt);
Futures.addCallback(response, new FutureCallback<GenerateContentResponse>() {
@Override
public void onSuccess(GenerateContentResponse result) {
String resultText = result.getText();
System.out.println(resultText);
}
@Override
public void onFailure(Throwable t) {
t.printStackTrace();
}
}, executor);
Web
// Initialize FirebaseApp
const firebaseApp = initializeApp(firebaseConfig);
// Initialize the Gemini Developer API backend service
// The Gemini Developer API doesn't support setting the location of a model
const ai = getAI(firebaseApp, { backend: new GoogleAIBackend() });
// Create a `GenerativeModel` and add system instructions into its config
// Both the model name and the system instructions will be sourced from Remote Config
const model = getGenerativeModel(ai, {
model: modelName,
systemInstruction: systemInstruction
});
// Wrap in an async function so you can use await
async function run() {
// Provide a prompt that contains text
// The text in the prompt will be sourced from Remote Config
const userPrompt = prompt;
// To generate text output, call `generateContent` with the text input
const result = await model.generateContent(userPrompt);
const response = result.response;
const text = response.text();
console.log(text);
}
Dart
// Initialize the Gemini Developer API backend service
// The Gemini Developer API doesn't support setting the location of a model
final ai = await FirebaseAI.googleAI();
// Create a `GenerativeModel` and add system instructions into its config
// Both the model name and the system instructions will be sourced from Remote Config
final model =
ai.generativeModel(
model: _modelName,
systemInstruction: Content.system(_systemInstructions),
);
// Provide a prompt that contains text
// The text in the prompt will be sourced from Remote Config
final _userPrompt = [Content.text(_prompt)];
// To generate text output, call `generateContent` with the text input
final response = await model.generateContent(_userPrompt);
print(response.text);
ঐক্য
// Initialize the Gemini Developer API backend service
// The Gemini Developer API doesn't support setting the location of a model
var ai = FirebaseAI.GetInstance(FirebaseAI.Backend.GoogleAI());
// Create a `GenerativeModel` and add system instructions into its config
// Both the model name and the system instructions will be sourced from Remote Config
var modelName = remoteConfig.GetValue("model_name").StringValue;
var systemInstructions = remoteConfig.GetValue("system_instructions").StringValue;
var model = ai.GetGenerativeModel(
modelName: modelName,
systemInstruction: ModelContent.Text(systemInstructions)
);
// Provide a prompt that contains text
// The text in the prompt will be sourced from Remote Config
var userPrompt = remoteConfig.GetValue("prompt").StringValue;
// To generate text output, call `GenerateContentAsync` with the text input
var response = await model.GenerateContentAsync(userPrompt);
UnityEngine.Debug.Log(response.Text ?? "No text in response.");
ধাপ 7 : অ্যাপটি চালান
অ্যাপটি তৈরি করুন এবং চালান এবং যাচাই করুন যে এটি কাজ করে। Firebase কনসোলে Remote Config পৃষ্ঠা থেকে আপনার কনফিগারেশনে পরিবর্তন করুন, পরিবর্তনগুলি প্রকাশ করুন এবং ফলাফল যাচাই করুন।
পরবর্তী পদক্ষেপ
Remote Config সম্পর্কে আরও জানুন।
টার্গেটিং সক্ষম করতে আপনার ক্লায়েন্ট কোডে Google Analytics যোগ করুন।
মোবাইল অ্যাপ এবং গেমের জন্য:
Remote Config এবং A/B Testing এর মাধ্যমে বিভিন্ন মডেল সেটিংস পরীক্ষা করুন।
Remote Config রোলআউটগুলি ব্যবহার করে ধীরে ধীরে মডেল প্যারামিটার পরিবর্তনগুলি প্রকাশ করুন (শুধুমাত্র iOS+ এবং Android)।
পৃথক ব্যবহারকারীদের জন্য সেরা সেটিংস নির্ধারণ করতে মেশিন লার্নিং ব্যবহার করতে Remote Config ব্যক্তিগতকরণ ব্যবহার করুন (শুধুমাত্র iOS+, Android এবং ইউনিটি)।