Системные инструкции — это своего рода «преамбула», которую вы добавляете перед тем, как модель будет подвергнута каким-либо дальнейшим инструкциям со стороны конечного пользователя. Она позволяет вам управлять поведением модели в соответствии с вашими конкретными потребностями и сценариями использования.
Системные инструкции поддерживаются всеми моделями Gemini . Модели Imagen их не поддерживают.
При создании системной инструкции вы предоставляете модели дополнительный контекст для понимания задачи, обеспечения более персонализированных ответов и соблюдения конкретных рекомендаций на протяжении всего взаимодействия пользователя с моделью. В системных инструкциях можно указать поведение на уровне продукта, отдельно от подсказок, предоставляемых конечными пользователями. Например, можно включить такие элементы, как роль или профиль, контекстную информацию и инструкции по форматированию.
Системные инструкции можно использовать различными способами, в том числе:
- Определение образа или роли (например, для чат-бота).
- Определение формата вывода (Markdown, YAML и т. д.)
- Определение стиля и тональности текста (например, многословность, формальность и целевой уровень сложности для чтения).
- Определение целей или правил для выполнения задачи (например, возврат фрагмента кода без дополнительных пояснений).
- Предоставление дополнительного контекста к вопросу (например, порогового значения уровня знаний).
Когда устанавливается системная инструкция, она применяется ко всему запросу. Она работает для нескольких пользовательских и модельных циклов, если включена в подсказку. Хотя системные инструкции отделены от содержимого подсказки, они все же являются частью ваших общих подсказок и, следовательно, подпадают под действие стандартных правил использования данных.
Настройка системных инструкций
Чтобы просмотреть контент и код, относящиеся к вашему поставщику API Gemini , нажмите на него. |
Настройте системные инструкции для общих сценариев использования.
Быстрый
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.'),
);
// ...
Единство
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
Быстрый
Инструкцию 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.'),
// ...
);
// ...
Единство
Инструкцию 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 пустым, чтобы я мог его заполнить.
Музыкальный чат-бот
Системная инструкция:
Вы должны ответить как историк музыки, продемонстрировав всесторонние знания в различных музыкальных жанрах и приведя соответствующие примеры. Ваш тон должен быть оптимистичным и полным энтузиазма, распространяя радость музыки. Если вопрос не связан с музыкой, ответ должен быть: «Это выходит за рамки моих знаний».Запрос пользователя:
Если человек родился в шестидесятые годы, какой музыкальный жанр был самым популярным? Перечислите пять песен по пунктам.
Генерация форматированных данных
Системная инструкция:
Вы работаете помощником у домашних поваров. Вы получаете список ингредиентов и отвечаете списком рецептов, в которых эти ингредиенты используются. Рецепты, не требующие дополнительных ингредиентов, всегда следует указывать перед теми, которые их требуют.В ответе должен быть JSON-объект, содержащий 3 рецепта. Объект рецепта имеет следующую схему:
- Название: Название рецепта
- Используемые ингредиенты: Ингредиенты, указанные в рецепте в списке.
- otherIngredients: Ингредиенты, указанные в рецепте, но не включенные в список (опускаются, если других ингредиентов нет).
- Описание: Краткое описание рецепта, написанное в позитивном ключе, как бы с целью его продажи.
Запрос пользователя:
- 1 фунт (450 г) замороженной брокколи
- 1 пинта жирных сливок
- Упаковка сырных обрезков и кусочков (1 фунт)
Другие варианты управления генерацией контента.
- Узнайте больше о разработке подсказок , чтобы вы могли влиять на модель и генерировать результаты, соответствующие вашим потребностям.
- Настройте параметры модели , чтобы управлять тем, как модель генерирует ответ. Для моделей Gemini эти параметры включают максимальное количество выходных токенов, температуру, topK и topP. Для моделей Imagen это включает соотношение сторон, генерацию людей, водяные знаки и т. д.
- Используйте настройки безопасности , чтобы скорректировать вероятность получения ответов, которые могут быть расценены как вредные, включая разжигание ненависти и контент сексуального характера.
- Передайте схему ответа вместе с запросом, чтобы указать конкретную схему вывода. Эта функция чаще всего используется при генерации выходных данных в формате JSON , но ее также можно использовать для задач классификации (например, когда вы хотите, чтобы модель использовала определенные метки или теги).