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

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

همه مدل‌های 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: مواد تشکیل‌دهنده دستور پخت که در فهرست ارائه نشده است (اگر ماده تشکیل‌دهنده دیگری وجود نداشته باشد، حذف می‌شود)
    • شرح: شرح کوتاهی از دستور پخت که به‌صورت مثبت نوشته شده است، انگار برای فروش آن است
  • پیام‌واره کاربر:

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

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

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