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

Системные инструкции — это своего рода «преамбула», которую вы добавляете перед тем, как модель получит дальнейшие инструкции от конечного пользователя. Это позволяет вам управлять поведением модели в зависимости от ваших конкретных потребностей и вариантов использования.

Перейти к примерам кода


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

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

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

Когда задана системная инструкция, она применяется ко всему запросу. Она работает для нескольких пользовательских и модельных ходов, если включена в подсказку. Хотя системные инструкции отделены от содержимого подсказки, они по-прежнему являются частью ваших общих подсказок и, следовательно, подчиняются стандартным политикам использования данных.

Системные инструкции поддерживаются всеми моделями Gemini . Они не поддерживаются моделями Imagen 3 .

Установить системные инструкции

Щелкните своего поставщика API Gemini , чтобы просмотреть специфичный для этого поставщика контент и код на этой странице.

Установите системные инструкции для общих случаев использования

Быстрый

Вы указываете systemInstruction при создании экземпляра GenerativeModel .


import FirebaseAI

// Initialize the Gemini Developer API backend service
// Create an `GenerativeModel` instance and add system instructions to its config
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 .


// Initialize the Vertex AI Gemini API backend service
// Create a `GenerativeModel` instance and add system instructions to its config
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 .


// Initialize the Gemini Developer API backend service
// Create a `GenerativeModel` instance and add system instructions to its config
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 .


// ..

// Initialize the Gemini Developer API backend service
const ai = getAI(firebaseApp, { backend: new GoogleAIBackend() });

// Create a `GenerativeModel` instance and add system instructions to its config
const model = getGenerativeModel(ai, {
  model: "GEMINI_MODEL_NAME",
  systemInstruction: "You are a cat. Your name is Neko."
});

Dart

Вы указываете systemInstruction при создании экземпляра GenerativeModel .


// ...

// Initialize the Gemini Developer API backend service
// Create a `GenerativeModel` instance and add system instructions to its config
final model = FirebaseAI.googleAI().generativeModel(
  model: 'GEMINI_MODEL_NAME',
  systemInstruction: Content.system('You are a cat. Your name is Neko.'),
);

// ...

Единство

Вы указываете systemInstruction при создании экземпляра GenerativeModel .


// ...

// Initialize the Gemini Developer API backend service
var ai = FirebaseAI.GetInstance(FirebaseAI.Backend.GoogleAI());

// Create a `GenerativeModel` instance and add system instructions to its config
var model = ai.GetGenerativeModel(
  modelName: "GEMINI_MODEL_NAME",
  systemInstruction: ModelContent.Text("You are a cat. Your name is Neko.")
);

Установите системные инструкции для Gemini Live API

Примеры подсказок

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

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

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

Форматированная генерация данных

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

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

    • имя: Название рецепта
    • usedIngredients: Ингредиенты в рецепте, указанные в списке
    • otherIngredients: Ингредиенты в рецепте, которые не были указаны в списке (пропускаются, если нет других ингредиентов)
    • описание: Краткое описание рецепта, написанное в позитивном ключе, как будто для того, чтобы продать его.
  • Пользователь:

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

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

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

Другие варианты управления генерацией контента

  • Узнайте больше о разработке подсказок , чтобы вы могли влиять на модель и генерировать результаты, соответствующие вашим потребностям.
  • Настройте параметры модели , чтобы контролировать, как модель генерирует ответ. Для моделей Gemini эти параметры включают макс. выходные токены, температуру, topK и topP. Для моделей Imagen они включают соотношение сторон, генерацию человека, водяные знаки и т. д.
  • Используйте настройки безопасности , чтобы отрегулировать вероятность получения ответов, которые могут считаться вредоносными, включая разжигание ненависти и откровенно сексуальный контент.
  • Передайте схему ответа вместе с приглашением указать определенную схему вывода. Эта функция чаще всего используется при генерации вывода JSON , но ее также можно использовать для задач классификации (например, когда вы хотите, чтобы модель использовала определенные метки или теги).