এই পৃষ্ঠায় হাইব্রিড ও অন-ডিভাইস অভিজ্ঞতার জন্য নিম্নলিখিত কনফিগারেশন বিকল্পের বিবরণ দেওয়া আছে:
ডিভাইসে বা ক্লাউডে ইনফারেন্স ব্যবহার করা হয়েছে কিনা তা নির্ধারণ করুন।
উত্তর কন্ট্রোল করতে মডেল কনফিগারেশন ব্যবহার করুন (যেমন, তাপমাত্রা)।
নিশ্চিত করুন যে আপনি হাইব্রিড অভিজ্ঞতা তৈরি করার জন্য শুরু করার গাইড সম্পূর্ণ করেছেন।
"ইনফারেন্স মোড" সেট করা
শুরু করার নির্দেশিকায় দেওয়া উদাহরণ থেকে আপনি জানতে পারবেন যে কীভাবে প্রথমে অন-ডিভাইস ইনফারেন্স প্রয়োগ করতে হয় এবং তারপরে ক্লাউড-হোস্টেড মডেলে ফিরে যেতে হয়। এটি উপলভ্য "ইনফারেন্স মোড"-এর মধ্যে একটি যা আপনি প্রয়োগ করতে পারবেন।
হাইব্রিড ইনফারেন্স
ডিভাইসে ইনফারেন্স করার সুবিধা পছন্দ করা:
primary-কে "সিস্টেম" মডেল এবংsecondary-কে ক্লাউড মডেল হিসেবে সেট করুন।অন-ডিভাইস মডেল উপলভ্য থাকলে এবং সেটি অনুরোধের ধরন সাপোর্ট করলে, সেটি ব্যবহার করার চেষ্টা করুন। অন্যথায়, ডিভাইসে একটি সমস্যার লগ তৈরি করুন এবং তারপর অটোমেটিক ক্লাউড-হোস্টেড মডেলে ফিরে যান।
// Imports + initialization of Gemini API backend service // ... // 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 GenerativeModelSession with a hybrid model. // Provide your preferred model as `primary` and your fallback model as `secondary` // Attempt to use the on-device model; otherwise, fall back to the cloud-hosted model. let session = ai.generativeModelSession( model: .hybridModel(primary: systemModel, secondary: cloudModel) )ক্লাউড-ইনফারেন্স পছন্দ করা:
primary-কে ক্লাউড মডেল এবংsecondary-কে "সিস্টেম" মডেল হিসেবে সেট করুন।ডিভাইস অনলাইন থাকলে এবং মডেল উপলভ্য থাকলে, ক্লাউড-হোস্টেড মডেল ব্যবহার করার চেষ্টা করুন। ডিভাইস অফলাইন থাকলে, ডিভাইসে সেভ করা মডেল ব্যবহার করুন। অন্যান্য সব ব্যর্থতার ক্ষেত্রে, ব্যতিক্রম দেখান।
// Imports + initialization of Gemini API backend service // ... // 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 GenerativeModelSession with a hybrid model. // Provide your preferred model as `primary` and your fallback model as `secondary` // Attempt to use the cloud-hosted model; otherwise, fall back to the on-device model. let session = ai.generativeModelSession( model: .hybridModel(primary: cloudModel, secondary: systemModel) )
শুধুমাত্র ডিভাইসে বা শুধুমাত্র ক্লাউডে ইনফারেন্স
SDK শুধুমাত্র একটি model সেট করার সুবিধা দেয়, যার অর্থ হল SDK শুধুমাত্র
ডিভাইসে বা ক্লাউডে ইনফারেন্স করার চেষ্টা করবে। এছাড়াও, আপনি এই ব্যবহারের ক্ষেত্রে
HybridModel তৈরি করেন না। তবে, হাইব্রিড অভিজ্ঞতার জন্য, আপনাকে
HybridModel তৈরি করতে হবে এবং primary ও secondary মডেল
দুটিই সেট করতে হবে (যেমন উপরে বর্ণনা করা হয়েছে)।
শুধুমাত্র অন-ডিভাইস ইনফারেন্স:
model-কে "সিস্টেম" মডেলে সেট করুন। এই ব্যবহারের উদাহরণের জন্য আপনাকেHybridModelতৈরি করতে হবে না।অন-ডিভাইস মডেল উপলভ্য থাকলে এবং সেটি অনুরোধের ধরন সাপোর্ট করলে, সেটি ব্যবহার করার চেষ্টা করুন। অন্যথায়, ব্যতিক্রম দেখান।
// Imports + initialization of Gemini API backend service // ... // Initialize an on-device model that supports your use case let systemModel = FirebaseAI.SystemLanguageModel.default // Create a GenerativeModelSession with the on-device model. let session = ai.generativeModelSession( model: systemModel )শুধুমাত্র ইন-ক্লাউড ইনফারেন্স:
model-কে ক্লাউড মডেল হিসেবে সেট করুন। এই ব্যবহারের ক্ষেত্রে আপনাকেHybridModelতৈরি করতে হবে না।ডিভাইস অনলাইন থাকলে এবং মডেল উপলভ্য থাকলে, ক্লাউড-হোস্টেড মডেল ব্যবহার করার চেষ্টা করুন। অন্যথায়, ব্যতিক্রম দেখান।
// Imports + initialization of Gemini API backend service // ... // Initialize a cloud model that supports your use case let cloudModel = ai.geminiModel(name: "GEMINI_MODEL_NAME") // Create a GenerativeModelSession with a cloud model. let session = ai.generativeModelSession( model: cloudModel )
অন-ডিভাইস মডেল উপলভ্য আছে কিনা তা চেক করুন
আপনি যদি ব্যবহারকারীকে সেই তথ্য দেখাতে চান অথবা এন্ড-ইউজারকে অন-ডিভাইস মডেল ডাউনলোড করার জন্য
অ্যাকশন নিতে অনুরোধ করতে চান, তাহলেই শুধুমাত্র ডিভাইসে উপলভ্যতা ম্যানুয়ালি চেক করার প্রয়োজন হয়।
অন-ডিভাইস মডেল উপলভ্য না থাকলে – এবং
আপনি primary-কে অন-ডিভাইস মডেল ও secondary-কে ক্লাউড মডেল হিসেবে সেট করে থাকলে –
SDK অটোমেটিক ক্লাউড-হোস্ট করা মডেল ব্যবহার করবে।
অন-ডিভাইস মডেলটি আসলে ব্যবহারযোগ্য কিনা তা ম্যানুয়ালি চেক করতে, isAvailable প্রপার্টিটি দেখুন:
if FirebaseAI.SystemLanguageModel.default.isAvailable {
// The on-device model is ready to use.
} else {
// The on-device model is unavailable.
}
ডিভাইসে নির্দিষ্ট মডেল উপলভ্য না থাকার কারণ চেক করতে, availability প্রপার্টি ভালোভাবে দেখুন:
switch FirebaseAI.SystemLanguageModel.default.availability {
case .available:
// The on-device model is ready to use.
break
case .unavailable(.deviceNotEligible):
// This device does not support Apple Intelligence.
break
case .unavailable(.appleIntelligenceNotEnabled):
// The user has not enabled Apple Intelligence in Settings.
break
case .unavailable(.modelNotReady):
// The model is still being downloaded.
break
case let .unavailable(reason):
// The model is unavailable due to the specified `reason`.
break
}
ডিভাইসে বা ক্লাউডে ইনফারেন্স ব্যবহার করা হয়েছে কিনা তা নির্ধারণ করা
আপনি যদি HybridModel ব্যবহার করেন (এবং primary ও secondary মডেল, দুটিই সেট করেন),
তাহলে কোনও নির্দিষ্ট অনুরোধের জন্য কোন মডেল ব্যবহার করা হয়েছে তা জানলে সুবিধা হতে পারে।
এই তথ্য প্রতিটি উত্তরের মধ্যে rawResponse-এর modelVersion প্রপার্টির মাধ্যমে
প্রদান করা হয়।
আপনি এই প্রপার্টি অ্যাক্সেস করলে, রিটার্ন করা ভ্যালু নিম্নলিখিতগুলির মধ্যে একটি হবে:
- ব্যবহার করা ক্লাউড-হোস্টেড মডেল: মডেলের নাম, যেমন
gemini-3.1-flash-lite - ব্যবহৃত অন-ডিভাইস মডেল:
apple-foundation-models-system-language-model
// let response = try await session.respond(to: ...
print("You used: \(response.rawResponse.modelVersion)")
print(response.content)
উত্তর নিয়ন্ত্রণ করতে মডেল কনফিগারেশন ব্যবহার করা
মডেলের কাছে করা প্রতিটি অনুরোধে, মডেল কীভাবে উত্তর জেনারেট করবে তা নিয়ন্ত্রণ করতে আপনি মডেল কনফিগারেশন পাঠাতে পারেন। ক্লাউড-হোস্ট করা মডেল ও অন-ডিভাইস মডেল আলাদা আলাদা কনফিগারেশন বিকল্প অফার করে (ক্লাউড বনাম অন-ডিভাইস প্যারামিটার)।
- ক্লাউড-হোস্ট করা মডেল: a
GenerationConfig-এ সেগুলির কনফিগারেশন সেট করুন। - অন-ডিভাইস মডেল: এগুলির কনফিগারেশন
FirebaseAI.GenerationOptions-এর মধ্যে সেট করুন।
মডেলের কাছে করা প্রতিটি অনুরোধের জন্য এইসব বিকল্প কনফিগার করা হয়।
হাইব্রিড ইনফারেন্সের জন্য ক্লাউড-হোস্টেড এবং অন-ডিভাইস মডেলের কনফিগারেশন সেট করার একটি উদাহরণ এখানে দেওয়া হল:
// ...
let response = try await session.respond(
to: "Why is the sky blue?",
options: .hybrid(
// Config for cloud-hosted model
gemini: GenerationConfig(
temperature: 0.8,
topP: 0.9,
thinkingConfig: ThinkingConfig(thinkingLevel: .high)
),
// Config for on-device model
foundationModels: FirebaseAI.GenerationOptions(
sampling: .random(probabilityThreshold: 0.9),
temperature: 0.8
)
)
)
// ...
Firebase AI Logic-এর সাথে আপনার অভিজ্ঞতা সম্পর্কে মতামত জানান