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