Системные инструкции – это своего рода вводные инструкции, которые вы добавляете до того, как модель получит дальнейшие инструкции от конечного пользователя. Они позволяют управлять поведением модели в зависимости от ваших потребностей и сценариев использования.
Системные инструкции поддерживаются всеми моделями Gemini.
Системные инструкции дают модели дополнительный контекст, который помогает ей лучше понять задачу, давать более персонализированные ответы и придерживаться определенных правил на протяжении всего взаимодействия с пользователем. Вы можете указать поведение на уровне товара в системных инструкциях, отдельно от запросов, предоставляемых конечными пользователями. Например, вы можете указать роль или персону, контекстную информацию и инструкции по форматированию.
Системные инструкции можно использовать по-разному, например:
- Определение роли или персонажа (например, для чат-бота).
- Определение формата вывода (Markdown, YAML и т. д.)
- Определение стиля и тона выходных данных (например, многословность, формальность и целевой уровень чтения)
- Определение целей или правил для задачи (например, возврат фрагмента кода без дополнительных объяснений).
- Дополнительный контекст для запроса (например, дата актуальности данных)
Когда системная инструкция задана, она применяется ко всему запросу. Если включить его в запрос, он будет работать на протяжении нескольких реплик пользователя и модели. Хотя системные инструкции отделены от содержимого запроса, они все равно являются частью ваших общих запросов и поэтому на них распространяются стандартные правила использования данных.
Как задать системные инструкции
|
Нажмите на название своего поставщика Gemini API, чтобы посмотреть контент и код, относящиеся к нему. |
Как задать системные инструкции для общих сценариев использования
Swift
Вы указываете systemInstruction при создании экземпляра GenerativeModel.
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
Вы указываете systemInstruction при создании экземпляра GenerativeModel.
// 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
Вы указываете systemInstruction при создании экземпляра GenerativeModel.
// 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
Вы указываете systemInstruction при создании экземпляра GenerativeModel.
// ...
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
Вы указываете systemInstruction при создании экземпляра GenerativeModel.
// ...
// 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
Вы указываете systemInstruction при создании экземпляра GenerativeModel.
// ...
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
Вы указываете systemInstruction при создании экземпляра LiveModel.
// ...
// 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
Вы указываете systemInstruction при создании экземпляра LiveModel.
// ...
// 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
Вы указываете systemInstruction при создании экземпляра LiveModel.
// ...
// 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
Вы указываете systemInstruction при создании экземпляра LiveGenerativeModel.
// ...
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
Вы указываете systemInstruction при создании экземпляра LiveGenerativeModel.
// ...
// 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
Вы указываете systemInstruction при создании экземпляра LiveModel.
// ...
// 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-код, необходимый для этого. Не объясняй код. Также предложи несколько вариантов дизайна интерфейса.Запрос пользователя:
Создай в центре страницы поле с чередующимися изображениями, у каждого из которых есть подпись. Изображение в центре страницы должно иметь затенение за ним, чтобы оно выделялось. Она также должна ссылаться на другую страницу сайта. Оставьте поле URL пустым, чтобы я мог заполнить его.
Музыкальный чат-бот
Системные инструкции:
Ты будешь отвечать как историк музыки, демонстрируя всесторонние знания в различных музыкальных жанрах и приводя соответствующие примеры. Тон должен быть оптимистичным и восторженным, чтобы передавать радость от музыки. Если вопрос не связан с музыкой, ответ должен быть таким: "Я не знаю ответа на этот вопрос".Запрос пользователя:
Какой музыкальный жанр был самым популярным в 60-х годах? Перечисли пять песен в виде маркированного списка.
Генерация форматированных данных
Системная инструкция:
Ты помощник для домашних поваров. Вы получаете список ингредиентов и отвечаете списком рецептов, в которых используются эти ингредиенты. Рецепты, для которых не нужны дополнительные ингредиенты, всегда должны быть указаны перед теми, для которых они нужны.Your response must be a JSON object containing 3 recipes. Объект рецепта имеет следующую схему:
- name – название рецепта;
- usedIngredients – ингредиенты из списка, которые используются в рецепте;
- otherIngredients – ингредиенты, которые не были указаны в списке (если других ингредиентов нет, это свойство не используется).
- description: краткое описание рецепта, написанное в положительном ключе, как будто вы хотите его продать.
Запрос пользователя:
- 1 пакет замороженной брокколи (450 г)
- 1 пинта жирных сливок
- Упаковка сырных обрезков, 1 фунт
Другие способы управления генерацией контента
- Подробнее о создании запросов…
- Настройте параметры модели, чтобы управлять тем, как она генерирует ответ, например максимальное количество токенов вывода, вероятность повторения токенов вывода и т. д.
- Используйте настройки безопасности, чтобы снизить вероятность получения ответов, которые могут считаться вредными, включая дискриминационные высказывания и откровенно сексуальный контент.
- Передайте схему ответа вместе с запросом, чтобы указать определенную схему вывода. Чаще всего эта функция используется при генерации выходных данных в формате JSON, но ее также можно применять для задач классификации, например когда нужно, чтобы модель использовала определенные метки или теги.