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

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

कोड के सैंपल पर जाएं


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

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

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

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

सिस्टम के निर्देशों का इस्तेमाल, सभी Gemini मॉडल के साथ किया जा सकता है. ये Imagen 3 मॉडल के साथ काम नहीं करते.

सिस्टम के लिए निर्देश सेट करना

इस पेज पर, Gemini API उपलब्ध कराने वाली कंपनी के हिसाब से कॉन्टेंट और कोड देखने के लिए, उस कंपनी पर क्लिक करें.

इस्तेमाल के सामान्य उदाहरणों के लिए, सिस्टम के निर्देश सेट करना

Swift

GenerativeModel इंस्टेंस बनाते समय, systemInstruction तय किया जाता है.


import FirebaseAI

// Specify the system instructions as part of creating the `GenerativeModel` instance
let model = FirebaseAI.firebaseAI(backend: .googleAI()).generativeModel(
  modelName: "GEMINI_MODEL_NAME",
  systemInstruction: ModelContent(role: "system", parts: "You are a cat. Your name is Neko.")
)

Kotlin

GenerativeModel इंस्टेंस बनाते समय, systemInstruction तय किया जाता है.


// Specify the system instructions as part of creating the `GenerativeModel` instance
val model = Firebase.ai(backend = GenerativeBackend.googleAI()).generativeModel(
  modelName = "GEMINI_MODEL_NAME",
  systemInstruction = content { text("You are a cat. Your name is Neko.") }
)

Java

GenerativeModel इंस्टेंस बनाते समय, systemInstruction तय किया जाता है.


// Specify the system instructions as part of creating the `GenerativeModel` instance
GenerativeModel ai = FirebaseAI.getInstance(GenerativeBackend.googleAI())
    .generativeModel(
      /* modelName */ "GEMINI_MODEL_NAME",
      /* generationConfig (optional) */ null,
      /* safetySettings (optional) */ null,
      /* requestOptions (optional) */ new RequestOptions(),
      /* tools (optional) */ null,
      /* toolsConfig (optional) */ null,
      /* systemInstruction (optional) */ new Content.Builder().addText("You are a cat. Your name is Neko.").build()
    );

GenerativeModelFutures model = GenerativeModelFutures.from(ai);

Web

GenerativeModel इंस्टेंस बनाते समय, systemInstruction तय किया जाता है.


// ...

const ai = getAI(firebaseApp, { backend: new GoogleAIBackend() });

// Specify the system instructions as part of creating the `GenerativeModel` instance
const model = getGenerativeModel(ai, {
  model: "GEMINI_MODEL_NAME",
  systemInstruction: "You are a cat. Your name is Neko."
});

Dart

GenerativeModel इंस्टेंस बनाते समय, systemInstruction तय किया जाता है.


// ...

// Specify the system instructions as part of creating the `GenerativeModel` instance
final model = FirebaseAI.googleAI().generativeModel(
  model: 'GEMINI_MODEL_NAME',
  systemInstruction: Content.system('You are a cat. Your name is Neko.'),
);

// ...

Unity

GenerativeModel इंस्टेंस बनाते समय, systemInstruction तय किया जाता है.


// ...

var ai = FirebaseAI.GetInstance(FirebaseAI.Backend.GoogleAI());

// Specify the system instructions as part of creating the `GenerativeModel` instance
var model = ai.GetGenerativeModel(
  modelName: "GEMINI_MODEL_NAME",
  systemInstruction: ModelContent.Text("You are a cat. Your name is Neko.")
);

Gemini Live API के लिए सिस्टम के निर्देश सेट करना

प्रॉम्प्ट के उदाहरण

यहां सिस्टम प्रॉम्प्ट के कुछ उदाहरण दिए गए हैं. इनसे मॉडल के काम करने के तरीके के बारे में पता चलता है.

कोड जनरेट करना

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

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

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

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

    • name: The name of the recipe
    • usedIngredients: रेसिपी में इस्तेमाल की गई वे सामग्रियां जो सूची में दी गई थीं
    • otherIngredients: रेसिपी में इस्तेमाल की गई ऐसी सामग्री जिसकी जानकारी सूची में नहीं दी गई है. अगर कोई अन्य सामग्री इस्तेमाल नहीं की गई है, तो इसे शामिल नहीं किया जाता
    • description: A brief description of the recipe, written positively as if to sell it
  • उपयोगकर्ता:

    • एक पाउंड फ़्रोज़न ब्रोकली
    • 1 पिंट गाढ़ी क्रीम
    • 1 पाउंड के पैक में चीज़ के बचे हुए टुकड़े

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

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

कॉन्टेंट जनरेट करने की सुविधा को कंट्रोल करने के अन्य विकल्प

  • प्रॉम्प्ट डिज़ाइन के बारे में ज़्यादा जानें, ताकि मॉडल को अपनी ज़रूरतों के हिसाब से आउटपुट जनरेट करने के लिए कहा जा सके.
  • मॉडल पैरामीटर कॉन्फ़िगर करें, ताकि यह कंट्रोल किया जा सके कि मॉडल जवाब कैसे जनरेट करता है. Gemini मॉडल के लिए, इन पैरामीटर में ज़्यादा से ज़्यादा आउटपुट टोकन, तापमान, topK, और topP शामिल हैं. Imagen मॉडल के लिए, इनमें पहलू का अनुपात, व्यक्ति जनरेशन, वॉटरमार्किंग वगैरह शामिल हैं.
  • सुरक्षा सेटिंग का इस्तेमाल करके, ऐसे जवाब मिलने की संभावना को कम करें जिन्हें नुकसान पहुंचाने वाला माना जा सकता है. जैसे, नफ़रत फैलाने वाली भाषा और साफ़ तौर पर सेक्शुअल ऐक्ट दिखाने वाला कॉन्टेंट.
  • किसी खास आउटपुट स्कीमा के बारे में बताने के लिए, प्रॉम्प्ट के साथ जवाब का स्कीमा पास करें. इस सुविधा का इस्तेमाल आम तौर पर तब किया जाता है, जब JSON आउटपुट जनरेट करना हो. हालांकि, इसका इस्तेमाल क्लासिफ़िकेशन टास्क के लिए भी किया जा सकता है. जैसे, जब आपको मॉडल से खास लेबल या टैग का इस्तेमाल करवाना हो.