Системные инструкции подобны «преамбуле», которую вы добавляете до того, как модель будет подвергнута дальнейшим инструкциям конечного пользователя. Это позволяет вам управлять поведением модели в зависимости от ваших конкретных потребностей и вариантов использования.
Задавая системную инструкцию, вы предоставляете модели дополнительный контекст для понимания задачи, предоставляете более индивидуальные ответы и придерживаетесь конкретных рекомендаций при полном взаимодействии пользователя с моделью. Вы можете указать поведение на уровне продукта в системных инструкциях отдельно от подсказок, предоставляемых конечными пользователями. Например, вы можете включить такие вещи, как роль или персонаж, контекстную информацию и инструкции по форматированию.
Вы можете использовать системные инструкции разными способами, в том числе:
- Определение личности или роли (например, для чат-бота)
- Определение формата вывода (Markdown, YAML и т. д.)
- Определение стиля и тона вывода (например, многословие, формальность и целевой уровень чтения)
- Определение целей или правил задачи (например, возврат фрагмента кода без дополнительных пояснений)
- Предоставление дополнительного контекста для подсказки (например, ограничение знаний)
Если установлена системная инструкция, она применяется ко всему запросу. Он работает при нескольких поворотах пользователя и модели, если включен в подсказку. Хотя системные инструкции отделены от содержимого подсказки, они по-прежнему являются частью общих подсказок и, следовательно, подчиняются стандартным политикам использования данных.
Системные инструкции поддерживаются всеми моделями Gemini . Они не поддерживаются моделями Imagen 3 .
Установить системные инструкции
Установите системные инструкции для общих случаев использования.
Быстрый
Вы указываете systemInstruction
при создании экземпляра GenerativeModel
.
import FirebaseVertexAI
// Initialize the Vertex AI service
let vertex = VertexAI.vertexAI()
// Create a `GenerativeModel` instance
let model = vertex.generativeModel(
modelName: "gemini-2.0-flash",
systemInstruction: ModelContent(role: "system", parts: "You are a cat. Your name is Neko.")
)
Kotlin
Вы указываете systemInstruction
при создании экземпляра GenerativeModel
.
// Initialize the Vertex AI service and create a `GenerativeModel` instance
val generativeModel = Firebase.vertexAI.generativeModel(
modelName = "gemini-2.0-flash",
systemInstruction = content { text("You are a cat. Your name is Neko.") }
)
Java
Вы указываете systemInstruction
при создании экземпляра GenerativeModel
.
// Initialize the Vertex AI service and create a `GenerativeModel` instance
GenerativeModel gm = FirebaseVertexAI.getInstance().generativeModel(
/* modelName */ "gemini-2.0-flash",
/* 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(gm);
Web
Вы указываете systemInstruction
при создании экземпляра GenerativeModel
.
import { initializeApp } from "firebase/app";
import { getVertexAI, getGenerativeModel } from "firebase/vertexai";
// TODO(developer) Replace the following with your app's Firebase configuration
// See: https://firebase.google.com/docs/web/learn-more#config-object
const firebaseConfig = {
// ...
};
// Initialize FirebaseApp
const firebaseApp = initializeApp(firebaseConfig);
// Initialize the Vertex AI service
const vertexAI = getVertexAI(firebaseApp);
// Create a `GenerativeModel` instance
const model = getGenerativeModel(vertexAI, {
model: "gemini-2.0-flash",
systemInstruction: "You are a cat. Your name is Neko."
});
Dart
Вы указываете systemInstruction
при создании экземпляра GenerativeModel
.
import 'package:firebase_vertexai/firebase_vertexai.dart';
import 'package:firebase_core/firebase_core.dart';
await Firebase.initializeApp();
// Initialize the Vertex AI service and create a `GenerativeModel` instance
final model =
FirebaseVertexAI.instance.generativeModel(
model: 'gemini-2.0-flash',
systemInstruction: Content.system('You are a cat. Your name is Neko.'),
);
Установите системные инструкции для Gemini Live API
Быстрый
Live API пока не поддерживается для приложений платформы Apple, но загляните сюда позже!
Kotlin
Вы указываете systemInstruction
при создании экземпляра LiveModel
.
// Initialize the Vertex AI service and create a `LiveModel` instance
val model = Firebase.vertexAI.LiveModel(
modelName = "gemini-2.0-flash-live-preview-04-09",
systemInstruction = content { text("You are a cat. Your name is Neko.") }
)
Java
Вы указываете systemInstruction
при создании экземпляра LiveModel
.
// Initialize the Vertex AI service and create a `LiveeModel` instance
GenerativeModel gm = FirebaseVertexAI.getInstance().LiveModel(
/* modelName */ "gemini-2.0-flash",
/* generationConfig (optional) */ null,
/* requestOptions (optional) */ new RequestOptions(),
/* tools (optional) */ null,
/* systemInstruction (optional) */ new Content.Builder().addText("You are a cat. Your name is Neko.").build()
);
LiveModelFutures model = LiveModelFutures.from(gm);
Web
Live API пока не поддерживается для веб-приложений, но загляните сюда позже!
Dart
Вы указываете systemInstruction
при создании экземпляра LiveModel
.
import 'package:firebase_vertexai/firebase_vertexai.dart';
import 'package:firebase_core/firebase_core.dart';
await Firebase.initializeApp();
// Initialize the Vertex AI service and create a `LiveModel` instance
final model =
FirebaseVertexAI.instance.liveModel(
model: 'gemini-2.0-flash-live-preview-04-09',
systemInstruction: Content.system('You are a cat. Your name is Neko.'),
);
Подскажите примеры
Вот несколько примеров системных подсказок, определяющих ожидаемое поведение модели.
Генерация кода
- Система: вы эксперт по программированию, специализирующийся на рендеринге кода для интерфейсов внешнего интерфейса. Когда я описываю компонент веб-сайта, который хочу создать, пожалуйста, верните необходимые для этого HTML и CSS. Не давайте пояснений к этому коду. Также предложите несколько предложений по дизайну пользовательского интерфейса.
- Пользователь: Создайте поле в середине страницы, содержащее вращающийся набор изображений, каждое из которых имеет подпись. Изображение в центре страницы должно иметь затенение, чтобы оно выделялось. Он также должен ссылаться на другую страницу сайта. Оставьте URL-адрес пустым, чтобы я мог его заполнить.
Генерация форматированных данных
Система: Вы помощник домашнего повара. Вы получаете список ингредиентов и в ответ отправляете список рецептов, в которых используются эти ингредиенты. Рецепты, для которых не требуются дополнительные ингредиенты, всегда следует перечислять перед теми, которые требуют дополнительных ингредиентов.
Ваш ответ должен представлять собой объект JSON, содержащий 3 рецепта. Объект рецепта имеет следующую схему:
- name: Название рецепта
- UsedIngredients: ингредиенты рецепта, указанные в списке.
- OtherIngredients: ингредиенты рецепта, которых нет в списке (опускается, если нет других ингредиентов).
- описание: Краткое описание рецепта, написанное позитивно, как будто с целью его продать.
Пользователь:
- 1-фунтовый пакет замороженной брокколи
- 1 пинта густых сливок
- 1 фунт упаковки сырных кончиков и кусочков
Музыкальный чат-бот
- Система: вы будете отвечать как историк музыки, продемонстрировав всесторонние знания в различных музыкальных жанрах и приведя соответствующие примеры. Ваш тон будет оптимистичным и восторженным, распространяя радость музыки. Если вопрос не связан с музыкой, ответ должен быть таким: «Это мне не известно».
- Пользователь: Если человек родился в шестидесятые годы, какой музыкальный жанр был самым популярным? Перечислите пять песен по пунктам.
Другие варианты управления созданием контента
- Узнайте больше о разработке подсказок , чтобы вы могли влиять на модель и генерировать выходные данные, соответствующие вашим потребностям.
- Настройте параметры модели , чтобы контролировать, как модель генерирует ответ. Для моделей Gemini эти параметры включают максимальное количество токенов вывода, температуру, topK и topP. Для моделей Imagen к ним относятся соотношение сторон, генерация людей, водяные знаки и т. д.
- Используйте настройки безопасности , чтобы настроить вероятность получения ответов, которые могут быть расценены как вредные, включая разжигание ненависти и контент откровенно сексуального характера.
- Передайте схему ответа вместе с приглашением указать конкретную схему вывода. Эта функция чаще всего используется при генерации выходных данных JSON , но ее также можно использовать для задач классификации (например, когда вы хотите, чтобы модель использовала определенные метки или теги).