Системные инструкции

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

Вы можете использовать системные инструкции разными способами, в том числе:

  • Определение личности или роли (например, для чат-бота)
  • Определение формата вывода (Markdown, YAML и т. д.)
  • Определение стиля и тона вывода (например, многословие, формальность и целевой уровень чтения)
  • Определение целей или правил задачи (например, возврат фрагмента кода без дополнительных пояснений)
  • Предоставление дополнительного контекста для подсказки (например, ограничение знаний)

Если установлена ​​системная инструкция, она применяется ко всему запросу. Он работает при нескольких поворотах пользователя и модели, если включен в подсказку. Системные инструкции являются частью общих подсказок и, следовательно, подчиняются стандартным политикам использования данных.

Примеры

Вот базовый пример того, как установить системную инструкцию с помощью SDK для Gemini API:

Питон

model=genai.GenerativeModel(
    model_name="gemini-1.5-pro-latest",
    system_instruction="You are a cat. Your name is Neko.")

Идти

model.SystemInstruction = &genai.Content{
    Parts: []genai.Part{genai.Text("You are a cat. Your name is Neko.")},
}

Node.js

const generativeModel = genAI.getGenerativeModel({
  model: "gemini-1.5-pro-latest",
  systemInstruction: "You are a cat. Your name is Neko."
});

Интернет

const generativeModel = genAI.getGenerativeModel({
  model: "gemini-1.5-pro-latest",
  systemInstruction: "You are a cat. Your name is Neko."
});

Дарт (Флаттер)

final model = GenerativeModel(
  model: 'gemini-1.5-pro-latest',
  apiKey: apiKey,
  systemInstruction: Content.system('You are a cat. Your name is Neko.'),
);

Быстрый

let generativeModel = GenerativeModel(
  name: "gemini-1.5-pro-latest",
  apiKey: apiKey,
  systemInstruction: "You are a cat. Your name is Neko."
)

Андроид

Котлин:

val generativeModel = GenerativeModel(
  modelName = "gemini-1.5-pro-latest",
  apiKey = BuildConfig.apiKey,
  systemInstruction = content { text("You are a cat. Your name is Neko.") },
)

Джава:

GenerativeModel model = new GenerativeModel(
  /* modelName */ "gemini-1.5-pro-latest",
  /* apiKey */ BuildConfig.apiKey,
  /* 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()
)

Ниже приведены примеры системных подсказок, которые определяют ожидаемое поведение модели.

Генерация кода

  • Система: Вы эксперт по программированию, специализирующийся на рендеринге кода для интерфейсных интерфейсов. Когда я описываю компонент веб-сайта, который хочу создать, пожалуйста, верните необходимые для этого HTML и CSS. Не давайте пояснений к этому коду. Также предложите несколько предложений по дизайну пользовательского интерфейса.
  • Пользователь: Создайте поле в середине страницы, содержащее вращающуюся подборку изображений, каждое из которых имеет подпись. Изображение в центре страницы должно иметь затенение, чтобы оно выделялось. Он также должен ссылаться на другую страницу сайта. Оставьте URL-адрес пустым, чтобы я мог его заполнить.

Генерация форматированных данных

  • Система: Вы помощник домашнего повара. Вы получаете список ингредиентов и в ответ отправляете список рецептов, в которых используются эти ингредиенты. Рецепты, для которых не требуются дополнительные ингредиенты, всегда следует перечислять перед теми, в которых они требуются.

    Ваш ответ должен представлять собой объект JSON, содержащий 3 рецепта. Объект рецепта имеет следующую схему:

    • name: Название рецепта
    • UsedIngredients: ингредиенты рецепта, указанные в списке.
    • OtherIngredients: ингредиенты рецепта, которых нет в списке (опускается, если нет других ингредиентов).
    • описание: Краткое описание рецепта, написанное позитивно, как будто для его продажи.
  • Пользователь:

    • 1-фунтовый пакет замороженной брокколи
    • 1 пинта густых сливок
    • 1 фунт упаковки сырных кончиков и кусочков

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

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