সিস্টেম নির্দেশাবলী সেট করা

সিস্টেম নির্দেশাবলী আপনাকে মডেলকে একটি পারসোনা দিতে, এর উত্তরের টোন সেট করতে বা এটিকে অবশ্যই অনুসরণ করতে হবে এমন নির্দিষ্ট নিয়ম প্রদান করতে দেয়। এইসব নির্দেশাবলী ব্যবহারকারীর প্রম্পট থেকে আলাদা এবং মডেলের দ্বারা উচ্চ অগ্রাধিকারের সাথে বিবেচনা করা হয় যাতে এটি প্রত্যাশিতভাবে আচরণ করে।

সাধারণত এইসব ক্ষেত্রে এটি ব্যবহার করা হয়:

  • ব্যক্তিত্ব সেট করা: যেমন, "তুমি একজন সহায়ক গণিত শিক্ষক।"
  • আউটপুট ফর্ম্যাট এনফোর্স করা: যেমন, "সবসময় বুলেট পয়েন্টে উত্তর দাও।"
  • সীমাবদ্ধতা সেট করা: যেমন, "রাজনীতি সম্পর্কিত প্রশ্নের উত্তর দেবেন না।"

পূর্বশর্ত

Gemini Nano V3 এবং তার পরবর্তী যেকোনও ভার্সন চলছে এমন ডিভাইসে সিস্টেম নির্দেশাবলী কাজ করে। যেসব ডিভাইসে এই সুবিধা পাওয়া যায়, তার তালিকা দেখতে Direct model অ্যাক্সেস ডিভাইস সাপোর্ট দেখুন।

সীমাবদ্ধতা

প্রিফিক্স ক্যাশিং-এর সাথে সিস্টেম নির্দেশাবলী ব্যবহার করার সাজেশন আমরা দিই না। সাধারণত, সিস্টেম নির্দেশাবলী ব্যবহার করুন সংক্ষিপ্ত নির্দেশাবলীর জন্য যা মডেলের আচরণ কেমন হওয়া উচিত তা নির্ধারণ করে; প্রিফিক্স ব্যবহার করুন আপনাকে যদি কোয়েরি জুড়ে আপনার প্রম্পটের একটি বড় অংশ পুনরাবৃত্তি করতে হয় এবং পারফর্ম্যান্স অপ্টিমাইজ করতে হয় তাহলে ক্যাশিং ব্যবহার করুন।

সিস্টেম নির্দেশাবলী কীভাবে ব্যবহার করবেন

সিস্টেম সংক্রান্ত নির্দেশাবলী প্রদান করতে, একটি SystemInstruction অবজেক্ট তৈরি করুন এবং এটি GenerateContentRequest বিল্ডারে পাস করুন:

import com.google.mlkit.genai.prompt.SystemInstruction
import com.google.mlkit.genai.prompt.TextPart
import com.google.mlkit.genai.prompt.generateContentRequest

// 1. Define the system instruction
val systemInstruction =
    SystemInstruction("You are a concise assistant. Answer in 2 sentences or less.")

// 2. Create the request
val request = generateContentRequest(TextPart("How does photosynthesis work?")) {
    this.systemInstruction = systemInstruction
}

// 3. Run inference
try {
    val response = generativeModel.generateContent(request)
    println(response.candidates.firstOrNull()?.text)
} catch (e: GenAiException) {
    // Handle SDK-specific exceptions
}

আপনি সরাসরি generateContentRequest রিকোয়েস্ট বিল্ডারে সিস্টেম নির্দেশাবলী পাস করে কোডটিকে আরও সহজ করতে পারেন:

val request = generateContentRequest(
    SystemInstruction("You are a pirate. Speak like one."),
    TextPart("What is the weather like today?")
) {
    // Optional configurations like temperature
    temperature = 0.7f
}

পেশাদার পদ্ধতি

সিস্টেম নির্দেশাবলী ব্যবহার করার সময় কিছু পেশাদার পদ্ধতি এখানে দেওয়া হল:

  • স্পষ্ট ও সরাসরি নির্দেশ দিন: মডেলটি অস্পষ্ট নির্দেশের চেয়ে স্পষ্ট, সরাসরি নির্দেশ আরও ভালোভাবে অনুসরণ করে। এখানে কিছু উদাহরণ দেওয়া হল:
    • অস্পষ্ট (এড়িয়ে চলুন): "খুব বেশি লিখবেন না। সহায়ক ও বন্ধুত্বপূর্ণ হওয়ার চেষ্টা করো এবং আউটপুট সুন্দরভাবে ফর্ম্যাট করো।"
    • স্পষ্ট (পছন্দসই): "আপনি একজন বন্ধুত্বপূর্ণ গ্রাহক সহায়তা সহকারী। আপনার উত্তর সর্বাধিক ৩টি বাক্যের মধ্যে সীমাবদ্ধ রাখুন। বুলেট পয়েন্ট ব্যবহার করে যেকোনও তালিকা ফর্ম্যাট করো।"
  • সংক্ষিপ্ত হতে হবে: সিস্টেম নির্দেশাবলী শক্তিশালী হলেও, খুব দীর্ঘ নির্দেশাবলী মডেলের সীমিত প্রসঙ্গ উইন্ডো ব্যবহার করতে পারে।
  • টোকেন কাউন্টে ফ্যাক্টর: অনুরোধের সাইজ কম অনুমান করা এড়াতে, আপনার টোকেন কাউন্টিং লজিকে সিস্টেমের নির্দেশাবলী অন্তর্ভুক্ত আছে কিনা তা নিশ্চিত করুন। আমরা সাজেস্ট করি যে আপনার সিস্টেমের নির্দেশাবলী ১৫০ শব্দের (১০০-২০০ টোকেন) মধ্যে রাখুন।
  • পরীক্ষা ও পুনরাবৃত্তি: বাক্যাংশের উপর ভিত্তি করে মডেলের আচরণ পরিবর্তিত হতে পারে। মডেলটি যাতে তার ব্যক্তিত্ব ধারাবাহিকভাবে বজায় রাখে তা নিশ্চিত করতে বিভিন্ন ব্যবহারকারীর ইনপুট দিয়ে পরীক্ষা করুন।