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

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

همه مدل‌های 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 لازم برای انجام آن را برگردان. توضیحی برای این کد ارائه نکن. همچنین چند پیشنهاد برای طراحی میانای کاربر ارائه بده.

  • پیام‌واره کاربر:
    Create a box in the middle of the page that contains a rotating selection of images each with a caption. (جعبه‌ای در وسط صفحه ایجاد کن که حاوی مجموعه‌ای از تصاویر چرخشی باشد که هرکدام زیرنویس داشته باشند.) تصویر وسط صفحه باید سایه‌ای در پشتش داشته باشد تا برجسته شود. همچنین باید به صفحه دیگری از سایت پیوند داشته باشد. نشانی وب را خالی بگذارید تا من آن را پر کنم.

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

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

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

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

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

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

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

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

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

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