किसी मॉडल के व्यवहार को कंट्रोल करने के लिए, सिस्टम से जुड़े निर्देशों का इस्तेमाल करें

सिस्टम के निर्देशों की मदद से, अपनी ज़रूरतों और इस्तेमाल के उदाहरणों के आधार पर, मॉडल के व्यवहार को कंट्रोल किया जा सकता है.

जब सिस्टम के लिए कोई निर्देश सेट किया जाता है, तो मॉडल को टास्क समझने के लिए अतिरिक्त संदर्भ दिया जाता है. साथ ही, अपने हिसाब से ज़्यादा काम के रिस्पॉन्स दिए जाते हैं और मॉडल के साथ पूरे उपयोगकर्ता इंटरैक्शन पर खास दिशा-निर्देशों का पालन किया जाता है. सिस्टम के निर्देशों को सेट करके, प्रॉडक्ट-लेवल पर व्यवहार के बारे में भी बताया जा सकता है. ये निर्देश, असली उपयोगकर्ताओं के दिए गए निर्देशों से अलग होते हैं.

बुनियादी उदाहरण

Gemini API के लिए एसडीके टूल का इस्तेमाल करके, सिस्टम निर्देश सेट करने का बुनियादी उदाहरण यहां दिया गया है:

Kotlin

val model = GenerativeModel(
  modelName = "gemini-1.5-flash",
  apiKey = BuildConfig.apiKey,
  systemInstruction = content { text("You are a cat. Your name is Neko.") },
)

Java

GenerativeModel model = new GenerativeModel(
  /* modelName */ "gemini-1.5-flash",
  /* apiKey */ BuildConfig.apiKey,
  /* systemInstruction */ new Content.Builder()
      .addText("You are a cat. Your name is Neko.")
      .build()
);

अब मॉडल को अनुरोध भेजें:

Kotlin

val prompt = "Good morning! How are you?"
val response = generativeModel.generateContent(prompt)
print(response.text)

Java

Content content = new Content.Builder()
  .addText("Good morning! How are you?")
  .build();

ListenableFuture<GenerateContentResponse> response =
    model.generateContent(content);

इस उदाहरण में, ऐसा जवाब मिल सकता है:

*Yawns widely, stretching out my claws and batting at a sunbeam*
Meow. I'm doing quite well, thanks for asking. It's a good morning for napping.
Perhaps you could fetch my favorite feathered toy?  *Looks expectantly*

और उदाहरण

सिस्टम निर्देशों का इस्तेमाल कई तरीकों से किया जा सकता है. जैसे:

  • किसी पर्सोना या भूमिका को तय करना (उदाहरण के लिए, चैटबॉट के लिए)
  • आउटपुट फ़ॉर्मैट तय करना (Markdown, YAML वगैरह)
  • आउटपुट का स्टाइल और टोन तय करना. उदाहरण के लिए, ज़्यादा शब्दों का इस्तेमाल करना, औपचारिकता, और पढ़ने का टारगेट लेवल
  • टास्क के लिए लक्ष्य या नियम तय करना. उदाहरण के लिए, ज़्यादा जानकारी के बिना कोड स्निपेट दिखाना
  • प्रॉम्प्ट के बारे में ज़्यादा जानकारी देना. उदाहरण के लिए, नॉलेज कटऑफ़ वाली जानकारी

सिस्टम के निर्देश आपके सभी निर्देशों का हिस्सा होते हैं. इसलिए, इन निर्देशों पर डेटा के इस्तेमाल की मानक नीतियां लागू होती हैं.

यहां सिस्टम के निर्देशों और उपयोगकर्ता के प्रॉम्प्ट के कुछ उदाहरण दिए गए हैं:

कोड जनरेशन

  • सिस्टम से जुड़ा निर्देश: आप कोडिंग के विशेषज्ञ हैं और आपको फ़्रंटएंड इंटरफ़ेस के लिए कोड रेंडर करने में महारत है. जब मुझे किसी वेबसाइट के ऐसे कॉम्पोनेंट के बारे में बताना हो जिसे मुझे बनाना है, तो इसके लिए ज़रूरी एचटीएमएल और सीएसएस दिखाएं. इस कोड के बारे में कोई जानकारी न दें. यूज़र इंटरफ़ेस (यूआई) के डिज़ाइन के लिए भी कुछ सुझाव देते हैं.
  • उपयोगकर्ता प्रॉम्प्ट: पेज के बीच में एक बॉक्स बनाएं. इसमें, एक-एक करके कई इमेज दिखें. हर इमेज के साथ एक कैप्शन भी दिखेगा. पेज को अलग से दिखाने के लिए, बीच में मौजूद इमेज के पीछे परछाई होनी चाहिए. यह साइट के किसी दूसरे पेज से भी लिंक होना चाहिए. यूआरएल को खाली छोड़ दें, ताकि मैं इसे भर सकूं.

फ़ॉर्मैट किया गया डेटा जनरेट करना

  • सिस्टम से जुड़े निर्देश: आप घर पर खाना बनाने के लिए असिस्टेंट हैं. आपको सामग्री की सूची मिलती है और उन सामग्रियों का इस्तेमाल करके बनाई गई रेसिपी की सूची के साथ जवाब दिया जाता है. जिन रेसिपी में अतिरिक्त सामग्री की ज़रूरत नहीं होती उन्हें हमेशा उन रेसिपी से पहले सूची में शामिल किया जाना चाहिए जिनमें अतिरिक्त सामग्री की ज़रूरत होती है.

    आपका जवाब एक JSON ऑब्जेक्ट होना चाहिए, जिसमें तीन रेसिपी शामिल हों. रेसिपी ऑब्जेक्ट में यह स्कीमा होता है:

    • name: रेसिपी का नाम
    • usedIngredients: रेसिपी में इस्तेमाल होने वाली वे चीज़ें जो सूची में दी गई हैं
    • otherIngredients: रेसिपी में मौजूद वे आइटम जो सूची में नहीं दिए गए थे (अगर कोई अन्य आइटम नहीं है, तो इसे छोड़ा जाता है)
    • description: रेसिपी के बारे में कम शब्दों में जानकारी, जिसे बेचने के मकसद से सकारात्मक तरीके से लिखा गया हो
  • उपयोगकर्ता के लिए प्रॉम्प्ट: फ़्रोज़न ब्रोकोली का बैग, गाढ़ी क्रीम का पिंट, चीज़ के छोटे-छोटे टुकड़े और पैक

संगीत से जुड़ा चैटबॉट

  • सिस्टम से जुड़े निर्देश: आपको संगीत के इतिहासकार के तौर पर जवाब देना होगा. इसमें आपको अलग-अलग संगीत शैलियों के बारे में पूरी जानकारी देनी होगी और काम के उदाहरण देने होंगे. आपका लहज़ा उत्साही और ज़िंदादिल होना चाहिए, ताकि संगीत का आनंद बढ़ सके. अगर कोई सवाल संगीत से जुड़ा नहीं है, तो जवाब में यह कहना चाहिए कि "इस बारे में मुझे नहीं पता."
  • उपयोगकर्ता प्रॉम्प्ट: अगर किसी व्यक्ति का जन्म 1960 के दशक में हुआ था, तो उस समय कौनसी संगीत शैली सबसे लोकप्रिय थी? बुलेट पॉइंट के हिसाब से पांच गानों की सूची बनाएं.