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

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

موارد استفاده رایج عبارت‌اند از:

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

پیش‌نیازها

دستورالعمل‌های سیستم در دستگاه‌های دارای Gemini Nano نسخه ۳ و بالاتر کار می‌کند. برای مشاهده فهرست دستگاه‌های پشتیبانی‌شده، پشتیبانی دستگاه از دسترسی مستقیم به مدل را ببینید.

محدودیت‌ها

توصیه نمی‌کنیم از دستورالعمل‌های سیستم با ذخیره پیشوند در حافظه نهان استفاده کنید. به‌طور کلی، از دستورالعمل‌های سیستم برای دستورالعمل‌های کوتاهی استفاده کنید که نحوه رفتار مدل را تعریف می‌کنند؛ اگر لازم است بخش بزرگی از پیام‌واره‌تان را در پُرسمان‌ها تکرار کنید و نیاز به بهینه‌سازی عملکرد دارید، از پیش‌نهان‌سازی استفاده کنید.

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

برای ارائه دستورالعمل‌های سیستم، یک شیء SystemInstruction ایجاد کنید و آن را به سازنده GenerateContentRequest ارسال کنید:

import com.google.mlkit.genai.prompt.SystemInstruction
import com.google.mlkit.genai.prompt.TextPart
import com.google.mlkit.genai.prompt.generateContentRequest

// 1. Define the system instruction
val systemInstruction =
    SystemInstruction("You are a concise assistant. Answer in 2 sentences or less.")

// 2. Create the request
val request = generateContentRequest(TextPart("How does photosynthesis work?")) {
    this.systemInstruction = systemInstruction
}

// 3. Run inference
try {
    val response = generativeModel.generateContent(request)
    println(response.candidates.firstOrNull()?.text)
} catch (e: GenAiException) {
    // Handle SDK-specific exceptions
}

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

val request = generateContentRequest(
    SystemInstruction("You are a pirate. Speak like one."),
    TextPart("What is the weather like today?")
) {
    // Optional configurations like temperature
    temperature = 0.7f
}

روال‌های مطلوب

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

  • واضح و مستقیم باشید: مدل دستورالعمل‌های واضح و مستقیم را بهتر از دستورالعمل‌های مبهم دنبال می‌کند. چند نمونه در زیر آمده است:
    • مبهم (اجتناب کنید): «زیاد ننویسید. سعی کن مفید و صمیمی باشی و خروجی را به‌خوبی قالب‌بندی کنی.»
    • واضح (ترجیحی): «شما دستیار پشتیبانی مشتری صمیمی هستید. پاسخ‌هایتان را به حداکثر ۳ جمله محدود کنید. هر فهرستی را بااستفاده از گلوله‌نقطه قالب‌بندی کن.»
  • مختصر باشید: اگرچه دستورالعمل‌های سیستم قدرتمند هستند، دستورالعمل‌های بسیار طولانی می‌توانند پنجره زمینه محدود مدل را مصرف کنند.
  • تعداد داده‌واحدها را درنظر بگیرید: مطمئن شوید که منطق شمارش داده‌واحد شما شامل دستورالعمل‌های سیستم باشد تا از تخمین کمتر از حد واقعی اندازه درخواست جلوگیری شود. توصیه می‌کنیم دستورالعمل‌های سیستم را به کمتر از ۱۵۰ کلمه (۱۰۰ تا ۲۰۰ توکن) محدود کنید.
  • آزمایش و تکرار: رفتار مدل می‌تواند براساس عبارت‌بندی متفاوت باشد. با ورودی‌های مختلف کاربر آزمایش کنید تا مطمئن شوید مدل شخصیت خود را به‌طور مداوم حفظ می‌کند.