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

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

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


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

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

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

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

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

सिस्टम से जुड़े निर्देश सेट करना

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

Swift

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

import FirebaseVertexAI

// Initialize the Vertex AI service
let vertex = VertexAI.vertexAI()

// Create a `GenerativeModel` instance
let model = vertex.generativeModel(
  modelName: "gemini-2.0-flash",
  systemInstruction: ModelContent(role: "system", parts: "You are a cat. Your name is Neko.")
)

Kotlin

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

// Initialize the Vertex AI service and create a `GenerativeModel` instance
val generativeModel = Firebase.vertexAI.generativeModel(
  modelName = "gemini-2.0-flash",
  systemInstruction = content { text("You are a cat. Your name is Neko.") }
)

Java

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

// Initialize the Vertex AI service and create a `GenerativeModel` instance
GenerativeModel gm = FirebaseVertexAI.getInstance().generativeModel(
  /* modelName */ "gemini-2.0-flash",
  /* 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(gm);

Web

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

import { initializeApp } from "firebase/app";
import { getVertexAI, getGenerativeModel } from "firebase/vertexai";

// TODO(developer) Replace the following with your app's Firebase configuration
// See: https://firebase.google.com/docs/web/learn-more#config-object
const firebaseConfig = {
  // ...
};

// Initialize FirebaseApp
const firebaseApp = initializeApp(firebaseConfig);

// Initialize the Vertex AI service
const vertexAI = getVertexAI(firebaseApp);

// Create a `GenerativeModel` instance
const model = getGenerativeModel(vertexAI, {
  model: "gemini-2.0-flash",
  systemInstruction: "You are a cat. Your name is Neko."
});

Dart

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

import 'package:firebase_vertexai/firebase_vertexai.dart';
import 'package:firebase_core/firebase_core.dart';

await Firebase.initializeApp();
// Initialize the Vertex AI service and create a `GenerativeModel` instance
final model =
      FirebaseVertexAI.instance.generativeModel(
        model: 'gemini-2.0-flash',
        systemInstruction: Content.system('You are a cat. Your name is Neko.'),
      );

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

Swift

फ़िलहाल, Live API Apple के प्लैटफ़ॉर्म पर काम नहीं करता. हालांकि, जल्द ही यह सुविधा उपलब्ध होगी!

Kotlin

LiveModel इंस्टेंस बनाते समय, systemInstruction की जानकारी दी जाती है.

// Initialize the Vertex AI service and create a `LiveModel` instance
val model = Firebase.vertexAI.LiveModel(
  modelName = "gemini-2.0-flash-live-preview-04-09",
  systemInstruction = content { text("You are a cat. Your name is Neko.") }
)

Java

LiveModel इंस्टेंस बनाते समय, systemInstruction की जानकारी दी जाती है.

// Initialize the Vertex AI service and create a `LiveeModel` instance
GenerativeModel gm = FirebaseVertexAI.getInstance().LiveModel(
  /* modelName */ "gemini-2.0-flash",
  /* generationConfig (optional) */ null,
  /* requestOptions (optional) */ new RequestOptions(),
  /* tools (optional) */ null,
  /* systemInstruction (optional) */ new Content.Builder().addText("You are a cat. Your name is Neko.").build()
);
LiveModelFutures model = LiveModelFutures.from(gm);

Web

फ़िलहाल, Live API वेब ऐप्लिकेशन के लिए उपलब्ध नहीं है. हालांकि, जल्द ही इसे उपलब्ध कराया जाएगा!

Dart

LiveModel इंस्टेंस बनाते समय, systemInstruction की वैल्यू तय की जाती है.

import 'package:firebase_vertexai/firebase_vertexai.dart';
import 'package:firebase_core/firebase_core.dart';

await Firebase.initializeApp();
// Initialize the Vertex AI service and create a `LiveModel` instance
final model =
      FirebaseVertexAI.instance.liveModel(
        model: 'gemini-2.0-flash-live-preview-04-09',
        systemInstruction: Content.system('You are a cat. Your name is Neko.'),
      );

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

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

कोड जनरेशन

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

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

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

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

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

    • 1 पाउंड का फ़्रोज़न ब्रोकोली वाला बैग
    • 1 पिंट हेवी क्रीम
    • 1 पाउंड का पैक, चीज़ के आखिरी हिस्से और टुकड़े

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

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

कॉन्टेंट जनरेशन को कंट्रोल करने के अन्य विकल्प

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