सिस्टम से जुड़े निर्देशों की मदद से, मॉडल को कोई पर्सोना दिया जा सकता है, उसके जवाबों का टोन सेट किया जा सकता है या उसे पालन करने के लिए खास नियम दिए जा सकते हैं. ये निर्देश, उपयोगकर्ता के प्रॉम्प्ट से अलग होते हैं. मॉडल इन्हें ज़्यादा प्राथमिकता देता है, ताकि यह पक्का किया जा सके कि वह उम्मीद के मुताबिक काम करे.
इसके सामान्य इस्तेमाल के उदाहरणों में ये शामिल हैं:
- पर्सोना सेट करना: उदाहरण के लिए, "तुम गणित के एक मददगार ट्यूटर हो."
- आउटपुट फ़ॉर्मैट लागू करना: उदाहरण के लिए, "हमेशा बुलेट पॉइंट में जवाब दें."
- पाबंदियां सेट करना: उदाहरण के लिए, "राजनीति से जुड़े सवालों के जवाब न दें."
ज़रूरी शर्तें
सिस्टम से जुड़े निर्देश, Gemini Nano V3 और इसके बाद के वर्शन वाले डिवाइसों पर काम करते हैं. इस सुविधा के साथ काम करने वाले डिवाइसों की सूची देखने के लिए, मॉडल को सीधे ऐक्सेस करने की सुविधा के साथ काम करने वाले डिवाइस लेख पर जाएं.
सीमाएं
हमारा सुझाव है कि प्रीफ़िक्स कैश मेमोरी के साथ सिस्टम से जुड़े निर्देशों का इस्तेमाल न करें. आम तौर पर, सिस्टम के निर्देशों का इस्तेमाल छोटे निर्देशों के लिए करें. इनसे यह तय होता है कि मॉडल को कैसा व्यवहार करना चाहिए. अगर आपको क्वेरी के दौरान अपने प्रॉम्प्ट के बड़े हिस्से को दोहराना है और परफ़ॉर्मेंस को ऑप्टिमाइज़ करना है, तो प्रीफ़िक्स कैश मेमोरी का इस्तेमाल करें.
सिस्टम से जुड़े निर्देशों का इस्तेमाल करने का तरीका
सिस्टम से जुड़े निर्देश देने के लिए, 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
}
सबसे सही तरीके
सिस्टम से जुड़े निर्देशों का इस्तेमाल करते समय, इन सबसे सही तरीकों को अपनाएं:
- साफ़ और सीधे तौर पर निर्देश दें: मॉडल, उलझाने वाले निर्देशों के बजाय साफ़ और सीधे तौर पर दिए गए निर्देशों को बेहतर तरीके से समझता है. यहां कुछ उदाहरण दिए गए हैं:
- अस्पष्ट (इससे बचें): "ज़्यादा न लिखें. मददगार और दोस्ताना अंदाज़ में जवाब देने की कोशिश करो. साथ ही, आउटपुट को अच्छे से फ़ॉर्मैट करो."
- साफ़ तौर पर निर्देश दें (यह तरीका सबसे सही है): "तुम ग्राहक सहायता टीम के एक मददगार असिस्टेंट हो. ज़्यादा से ज़्यादा तीन वाक्यों में जवाब दें. किसी भी सूची को बुलेट पॉइंट का इस्तेमाल करके फ़ॉर्मैट करें."
- कम शब्दों में जानकारी दें: सिस्टम के निर्देश काफ़ी असरदार होते हैं. हालांकि, बहुत लंबे निर्देश, मॉडल की सीमित कॉन्टेक्स्ट विंडो का इस्तेमाल कर सकते हैं.
- टोकन की संख्या में शामिल करें: पक्का करें कि टोकन की गिनती करने के आपके लॉजिक में सिस्टम के निर्देश शामिल हों. इससे अनुरोध के साइज़ का कम अनुमान लगाने से बचा जा सकता है. हमारा सुझाव है कि सिस्टम के लिए दिए जाने वाले निर्देश 150 शब्दों (100 से 200 टोकन) से कम के हों.
- टेस्ट करें और बार-बार दोहराएं: शब्दों के इस्तेमाल के आधार पर, मॉडल का व्यवहार अलग-अलग हो सकता है. उपयोगकर्ता के अलग-अलग इनपुट के साथ टेस्ट करें, ताकि यह पक्का किया जा सके कि मॉडल अपनी पर्सोना को लगातार बनाए रखे.