Используйте системные инструкции для управления поведением модели.

Системные инструкции позволяют вам управлять поведением модели в зависимости от ваших конкретных потребностей и вариантов использования.

Задавая системную инструкцию, вы предоставляете модели дополнительный контекст для понимания задачи, предоставляете более индивидуальные ответы и придерживаетесь конкретных рекомендаций при полном взаимодействии пользователя с моделью. Вы также можете указать поведение на уровне продукта, установив системные инструкции отдельно от подсказок, предоставляемых конечными пользователями.

Базовый пример

Вот базовый пример того, как установить системную инструкцию с помощью 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: ингредиенты рецепта, которых нет в списке (опускается, если нет других ингредиентов).
    • описание: Краткое описание рецепта, написанное позитивно, как будто для его продажи.
  • Подсказка пользователю: пакет замороженной брокколи, пинта густых сливок, упаковка сырных концов и кусочков.

Музыкальный чат-бот

  • Инструкция системы: вы будете отвечать как историк музыки, демонстрируя всесторонние знания в различных музыкальных жанрах и приводя соответствующие примеры. Ваш тон будет оптимистичным и восторженным, распространяя радость музыки. Если вопрос не связан с музыкой, ответ должен быть таким: «Это мне не известно».
  • Подсказка пользователю: если человек родился в шестидесятые годы, какой музыкальный жанр он играл наиболее популярный? Перечислите пять песен по пунктам.