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

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

پرش به نمونه‌های کد


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

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

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

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

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

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

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

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

سویفت

شما هنگام ایجاد یک نمونه 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.'),
);

// ...

وحدت

شما هنگام ایجاد یک نمونه 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 تنظیم کنید

سویفت

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


import FirebaseAI

// Specify the system instructions as part of creating the `LiveGenerativeModel` instance
let model = FirebaseAI.firebaseAI(backend: .googleAI()).liveModel(
  modelName: "GEMINI_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 model = Firebase.ai(backend = GenerativeBackend.googleAI()).liveModel(
  modelName = "GEMINI_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
LiveModel ai = FirebaseAI.getInstance(GenerativeBackend.googleAI())
    .liveModel(
      /* 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()
    );

LiveModelFutures model = LiveModelFutures.from(gm);

Web

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


// ...

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

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

// ...

Dart

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


// ...

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

// ...

وحدت

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


// ...

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

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

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

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

تولید کد

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

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

چت‌بات موسیقی

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

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

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

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

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

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

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

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

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