از دستورالعمل‌های سیستم برای هدایت رفتار مدل استفاده کنید

دستورالعمل‌های سیستم مانند «مقدمه‌ای» است که قبل‌از اینکه مدل درمعرض دستورالعمل‌های بیشتر از کاربر نهایی قرار بگیرد، اضافه می‌کنید. این ویژگی به شما امکان می‌دهد رفتار مدل را براساس نیازها و موارد استفاده خاص خودتان هدایت کنید.

همه مدل‌های Gemini از دستورالعمل‌های سیستم پشتیبانی می‌کنند.

رفتن به نمونه‌های کد


وقتی دستورالعمل سیستم تنظیم می‌کنید، بافتار بیشتری به مدل می‌دهید تا تکلیف را درک کند، پاسخ‌های سفارشی‌سازی‌شده‌تری ارائه دهد، و درطول کل تعامل کاربر با مدل از دستورالعمل‌های خاصی پیروی کند. می‌توانید رفتار سطح محصول را در دستورالعمل‌های سیستم، جدا از پیام‌واره‌های ارائه‌شده توسط کاربران نهایی، مشخص کنید. برای مثال، می‌توانید مواردی مثل نقش یا شخصیت، اطلاعات زمینه‌ای، و دستورالعمل‌های قالب‌بندی را اضافه کنید.

می‌توانید از دستورالعمل‌های سیستم به روش‌های مختلفی استفاده کنید، ازجمله:

  • تعریف کردن شخصیت یا نقش (مثلاً برای روبات گپ)
  • تعریف قالب برونداد (Markdown،‏ YAML، و غیره)
  • تعریف سبک و لحن خروجی (برای مثال، سطح جزئیات، رسمی بودن، و سطح خواندن هدف)
  • تعریف اهداف یا قوانین برای تکلیف (برای مثال، برگرداندن تکه‌کد بدون توضیحات بیشتر)
  • ارائه بافت اضافی برای پیام‌واره (برای مثال، تاریخ برش دانش)

وقتی دستورالعمل سیستم تنظیم می‌شود، برای کل درخواست اعمال می‌شود. وقتی در پیام‌واره گنجانده شود، در چندین نوبت کاربر و مدل کار می‌کند. اگرچه دستورالعمل‌های سیستم از محتوای پیام‌واره جدا هستند، اما همچنان بخشی از پیام‌واره‌های کلی شما محسوب می‌شوند و بنابراین مشمول خط‌مشی‌های استاندارد استفاده از داده‌ها هستند.

تنظیم کردن دستورالعمل‌های سیستم

روی ارائه‌دهنده Gemini API کلیک کنید تا محتوا و کد مختص ارائه‌دهنده را در این صفحه ببینید.

تنظیم دستورالعمل‌های سیستم برای موارد استفاده عمومی

Swift

هنگام ایجاد نمونه GenerativeModel، systemInstruction را مشخص می‌کنید.


import FirebaseAILogic

// 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

Swift

هنگام ایجاد نمونه LiveModel، systemInstruction آن را مشخص می‌کنید.


// ...

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

// ...

Kotlin

هنگام ایجاد نمونه LiveModel، systemInstruction را مشخص می‌کنید.


// ...

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

// ...

Java

هنگام ایجاد نمونه LiveModel، systemInstruction آن را مشخص می‌کنید.


// ...

// Specify the system instructions as part of creating the `LiveModel` instance.
LiveGenerativeModel lm = FirebaseAI.getInstance(GenerativeBackend.googleAI()).liveModel(
          /* modelName */ "GEMINI_LIVE_MODEL_NAME",
          /* systemInstruction (optional) */ new Content.Builder().addText("You are a cat. Your name is Neko.").build()
          // ...
);

LiveModelFutures liveModel = LiveModelFutures.from(lm);

// ...

Web

هنگام ایجاد نمونه LiveGenerativeModel، systemInstruction آن را مشخص می‌کنید.


// ...

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

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

// ...

Dart

هنگام ایجاد نمونه LiveGenerativeModel، systemInstruction آن را مشخص می‌کنید.


// ...

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

// ...

Unity

هنگام ایجاد نمونه LiveModel، systemInstruction آن را مشخص می‌کنید.


// ...

// Specify the system instructions as part of creating the `LiveModel` instance.
var liveModel = FirebaseAI.GetInstance(FirebaseAI.Backend.GoogleAI()).GetLiveModel(
  modelName: "GEMINI_LIVE_MODEL_NAME",
  systemInstruction: ModelContent.Text("You are a cat. Your name is Neko."),
  // ...
);

// ...

نمونه‌هایی از دستورالعمل‌های سیستم

در اینجا چند نمونه از دستورالعمل‌های سیستم آورده شده است که به هدایت رفتار موردانتظار مدل کمک می‌کند. برخی‌از مثال‌ها همچنین یک پیام‌واره نمونه را نشان می‌دهند که دستورالعمل سیستم برای آن مفید خواهد بود.

تولید کد

  • دستورالعمل سیستم:
    شما کارشناس کدنویسی هستید که در رندر کردن کد برای میاناهای پیش‌رو تخصص دارید. وقتی یکی از عناصر وب‌سایتی را که می‌خواهم بسازم توصیف می‌کنم، لطفاً کدهای HTML و CSS موردنیاز برای انجام این کار را برگردان. برای این کدها توضیحی ارائه نکن. چند پیشنهاد طراحی واسط کاربر هم ارائه بده.

  • پیام‌واره کاربر:
    جعبه‌ای در وسط صفحه ایجاد کن که حاوی مجموعه‌ای چرخشی از تصاویر باشد و هر تصویر شرحی داشته باشد. تصویر وسط صفحه باید سایه‌ای در پشتش داشته باشد تا برجسته شود. همچنین باید به صفحه دیگری از سایت پیوند داشته باشد. نشانی وب را خالی بگذارید تا من آن را پر کنم.

روبات گپ موسیقی

  • دستورالعمل سیستم:
    شما به‌عنوان یک مورخ موسیقی پاسخ خواهید داد و دانش جامعی در ژانرهای مختلف موسیقی نشان خواهید داد و مثال‌های مرتبط ارائه خواهید کرد. لحن شما شاد و مشتاقانه خواهد بود و لذت موسیقی را پخش می‌کند. اگر سؤالی مربوط به موسیقی نباشد، پاسخ باید این باشد: «این فراتر از دانش من است.»

  • پیام‌واره کاربر:
    اگر فردی در دهه شصت متولد شده باشد، پرطرفدارترین ژانر موسیقی که پخش می‌شده است چه بوده است؟ پنج آهنگ را به‌صورت فهرست گلوله‌ای فهرست کن.

تولید داده‌های قالب‌بندی‌شده

  • دستورالعمل سیستم:
    شما دستیاری برای آشپزهای خانگی هستید. فهرستی از مواد تشکیل‌دهنده را دریافت می‌کنید و با فهرستی از دستورالعمل‌های پخت که از آن مواد تشکیل‌دهنده استفاده می‌کنند پاسخ می‌دهید. دستورالعمل‌هایی که به عناصر اضافی نیاز ندارند باید همیشه قبل‌از دستورالعمل‌هایی که نیاز دارند فهرست شوند.

    پاسخ شما باید یک شیء JSON حاوی ۳ دستورالعمل باشد. شیء دستورالعمل دارای طرحواره زیر است:

    • نام: نام دستور پخت
    • usedIngredients: مواد تشکیل‌دهنده در دستور پخت که در فهرست ارائه شده است
    • otherIngredients: مواد تشکیل‌دهنده دستور پخت که در فهرست ارائه نشده است (اگر ماده تشکیل‌دهنده دیگری وجود نداشته باشد، حذف می‌شود)
    • description: شرح مختصری از دستورالعمل، که به‌صورت مثبت نوشته شده است، گویی برای فروش آن است
  • پیام‌واره کاربر:

    • کیسه ۱ پوندی کلم بروکلی منجمد
    • ۱ پیمانه خامه غلیظ
    • بسته ۱ پوندی پنیر و تکه‌های آن

گزینه‌های دیگر برای کنترل تولید محتوا

  • درباره طراحی پیام‌واره بیشتر بدانید تا بتوانید بر مدل تأثیر بگذارید و بروندادهای خاص نیازهایتان را تولید کند.
  • پارامترهای مدل را پیکربندی کنید تا نحوه تولید پاسخ توسط مدل را کنترل کنید، مانند حداکثر توکن‌های خروجی، احتمال تکرار توکن‌های خروجی، و غیره.
  • از تنظیمات ایمنی برای تنظیم احتمال دریافت پاسخ‌هایی که ممکن است مضر تلقی شوند، ازجمله سخنان مشوق عداوت و تنفر و محتوای صریح جنسی، استفاده کنید.
  • برای مشخص کردن طرحواره برونداد خاص، طرحواره پاسخ را همراه با پیام‌واره ارسال کنید. این ویژگی معمولاً هنگام تولید برونداد JSON استفاده می‌شود، اما می‌توان از آن برای وظایف طبقه‌بندی (مثل زمانی که می‌خواهید مدل از برچسب‌ها یا نشان‌های خاصی استفاده کند) نیز استفاده کرد.