Системные инструкции позволяют задать для модели роль, тон ответов или правила, которым она должна следовать. Эти инструкции отделены от запроса пользователя и обрабатываются моделью с более высоким приоритетом, чтобы обеспечить ожидаемое поведение.
Вот несколько примеров:
- Задайте роль. Например: "Ты – репетитор по математике".
- Формат вывода. Например, "Всегда отвечай в виде маркированного списка".
- Ограничения. Например, "Не отвечай на вопросы о политике".
Требования
Системные инструкции работают на устройствах с Gemini Nano V3 и более поздними версиями. Список поддерживаемых устройств приведен в статье Поддержка устройств с прямым доступом к модели.
Ограничения
Мы не рекомендуем использовать системные инструкции с кешированием префиксов. В целом, используйте системные инструкции для коротких инструкций, определяющих, как должна вести себя модель. Используйте кеширование префиксов, если вам нужно повторить большую часть подсказки в разных запросах и оптимизировать производительность.
Как использовать системные инструкции
Чтобы предоставить системные инструкции, создайте объект 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
}
Рекомендации
Вот несколько рекомендаций по использованию системных инструкций:
- Выражайтесь ясно и прямо. Модель лучше понимает четкие и прямые инструкции, чем двусмысленные. Вот несколько примеров:
- Неопределенный (не рекомендуется): "Не пиши слишком много. Старайся быть полезным и дружелюбным, а также красиво форматируй ответ".
- Понятный (предпочтительный): "Ты дружелюбный специалист службы поддержки. Ограничьте свои ответы максимум тремя предложениями. Оформи списки в виде маркированных списков".
- Будьте кратки. Системные инструкции – мощный инструмент, но если они будут слишком длинными, то могут занять все ограниченное окно контекста модели.
- Учитывайте количество токенов. Убедитесь, что логика подсчета токенов включает системные инструкции, чтобы избежать недооценки размера запроса. Рекомендуем ограничить системные инструкции 150 словами (100–200 токенов).
- Тестируйте и дорабатывайте. Поведение модели может меняться в зависимости от формулировок. Протестируйте модель с различными входными данными, чтобы убедиться, что она сохраняет свою личность.