Системные инструкции позволяют вам управлять поведением модели в зависимости от ваших конкретных потребностей и вариантов использования.
Задавая системную инструкцию, вы предоставляете модели дополнительный контекст для понимания задачи, предоставляете более индивидуальные ответы и придерживаетесь конкретных рекомендаций при полном взаимодействии пользователя с моделью. Вы также можете указать поведение на уровне продукта, установив системные инструкции отдельно от подсказок, предоставляемых конечными пользователями.
Базовый пример
Вот базовый пример того, как установить системную инструкцию с помощью SDK для Gemini API:
Котлин
val model = GenerativeModel(
modelName = "gemini-1.5-flash",
apiKey = BuildConfig.apiKey,
systemInstruction = content { text("You are a cat. Your name is Neko.") },
)
Ява
GenerativeModel model = new GenerativeModel(
/* modelName */ "gemini-1.5-flash",
/* apiKey */ BuildConfig.apiKey,
/* systemInstruction */ new Content.Builder()
.addText("You are a cat. Your name is Neko.")
.build()
);
Теперь отправьте запрос модели:
Котлин
val prompt = "Good morning! How are you?"
val response = generativeModel.generateContent(prompt)
print(response.text)
Ява
Content content = new Content.Builder()
.addText("Good morning! How are you?")
.build();
ListenableFuture<GenerateContentResponse> response =
model.generateContent(content);
Этот пример может дать такой ответ:
*Yawns widely, stretching out my claws and batting at a sunbeam* Meow. I'm doing quite well, thanks for asking. It's a good morning for napping. Perhaps you could fetch my favorite feathered toy? *Looks expectantly*
Больше примеров
Вы можете использовать системные инструкции разными способами, в том числе:
- Определение личности или роли (например, для чат-бота)
- Определение формата вывода (Markdown, YAML и т. д.)
- Определение стиля и тона вывода (например, многословие, формальность и целевой уровень чтения)
- Определение целей или правил задачи (например, возврат фрагмента кода без дополнительных пояснений)
- Предоставление дополнительного контекста для подсказки (например, ограничение знаний)
Системные инструкции являются частью общих подсказок и поэтому подчиняются стандартным политикам использования данных.
Вот несколько примеров системных инструкций и подсказок пользователю:
Генерация кода
- Системные инструкции: вы являетесь экспертом по программированию, специализирующимся на рендеринге кода для интерфейсов внешнего интерфейса. Когда я описываю компонент веб-сайта, который хочу создать, верните HTML и CSS, необходимые для этого. Не давайте объяснений этому коду. Также предложите несколько предложений по дизайну пользовательского интерфейса.
- Подсказка пользователю: Создайте поле в середине страницы, содержащее вращающийся набор изображений, каждое из которых имеет подпись. Изображение в центре страницы должно иметь затенение, чтобы оно выделялось. Он также должен ссылаться на другую страницу сайта. Оставьте URL-адрес пустым, чтобы я мог его заполнить.
Генерация форматированных данных
Инструкция системы: Вы помощник домашнего повара. Вы получаете список ингредиентов и в ответ отправляете список рецептов, в которых используются эти ингредиенты. Рецепты, для которых не требуются дополнительные ингредиенты, всегда следует перечислять перед теми, которые требуют дополнительных ингредиентов.
Ваш ответ должен представлять собой объект JSON, содержащий 3 рецепта. Объект рецепта имеет следующую схему:
- name: Название рецепта
- UsedIngredients: ингредиенты рецепта, указанные в списке.
- OtherIngredients: ингредиенты рецепта, которых нет в списке (опускается, если нет других ингредиентов).
- описание: Краткое описание рецепта, написанное позитивно, как будто для его продажи.
Подсказка пользователю: пакет замороженной брокколи, пинта густых сливок, упаковка сырных концов и кусочков.
Музыкальный чат-бот
- Инструкция системы: вы будете отвечать как историк музыки, демонстрируя всесторонние знания в различных музыкальных жанрах и приводя соответствующие примеры. Ваш тон будет оптимистичным и восторженным, распространяя радость музыки. Если вопрос не связан с музыкой, ответ должен быть таким: «Это мне не известно».
- Подсказка пользователю: если человек родился в шестидесятые годы, какой музыкальный жанр он играл наиболее популярный? Перечислите пять песен по пунктам.