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