Системные инструкции – это своего рода "преамбула", которую вы добавляете до того, как модель получит дальнейшие инструкции от конечного пользователя. Это позволяет вам управлять поведением модели в зависимости от ваших конкретных потребностей и вариантов использования.
Системные инструкции поддерживаются всеми моделями 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-х годах, какой музыкальный жанр был самым популярным в то время? Перечисли пять песен в виде списка.
Создание данных в нужном формате
Системная инструкция:
Ты помощник для домашних поваров. Вы получаете список ингредиентов и отвечаете списком рецептов, в которых они используются. Рецепты, для которых не нужны дополнительные ингредиенты, должны быть перечислены раньше тех, для которых они нужны.Ответ должен быть объектом JSON, содержащим три рецепта. Объект рецепта имеет следующую схему:
- name – название рецепта;
- usedIngredients – ингредиенты в рецепте, которые были указаны в списке.
- otherIngredients – ингредиенты, которые не были указаны в списке (если других ингредиентов нет, это свойство не используется).
- description: краткое описание рецепта, написанное в положительном ключе, как будто вы хотите его продать.
Запрос пользователя:
- 1 пакет замороженной брокколи (450 г)
- 1 пинта жирных сливок
- Упаковка сыра весом 1 фунт
Другие способы управления созданием контента
- Подробнее о создании запросов…
- Настройте параметры модели, чтобы управлять тем, как она генерирует ответ, например максимальное количество токенов вывода, вероятность повторения токенов вывода и т. д.
- Используйте настройки безопасности, чтобы снизить вероятность получения ответов, которые могут считаться вредными, включая дискриминационные высказывания и откровенно сексуальный контент.
- Передайте схему ответа вместе с запросом, чтобы указать определенную схему вывода. Эта функция чаще всего используется при генерации выходных данных JSON, но ее также можно использовать для задач классификации (например, когда вы хотите, чтобы модель использовала определенные метки или теги).