Gemini, семейство моделей Google, используется через приложение Gemini, Google AI Studio и API Gemini в Google Cloud. Основы промптинга применимы без изменений. Это руководство охватывает то, что характерно для Gemini, следуя опубликованным рекомендациям Google по проектированию промптов.
Названия и ограничения моделей меняются, поэтому советы здесь касаются стабильного поведения. Актуальные модели смотрите в документации Google.
Системные инструкции
API Gemini принимает системные инструкции отдельно от разговора. Используйте их для роли, постоянных правил и соглашений о выводе, а задачу и её данные оставляйте в содержимом пользователя. См. системные промпты и ролевой промптинг.
В приложении Gemini сохранённые инструкции и пользовательские Gem выполняют ту же функцию: Gem — это повторно используемый ассистент со своими постоянными инструкциями.
Включайте примеры few-shot
Рекомендации Google в этом вопросе прямолинейны: они советуют по возможности включать в промпты примеры few-shot и отмечают, что промпты без примеров, вероятно, менее эффективны. На практике:
- Обычно хватает двух-пяти примеров. Слишком много может привести к переобучению модели на них.
- Сохраняйте одинаковое оформление во всех примерах, включая разделители и интервалы.
- Показывайте шаблон, которому надо следовать, а не шаблоны, которых надо избегать.
- Варьируйте содержимое, чтобы общим был только задуманный шаблон.
Classify the request as question, complaint, or praise.
Text: "How do I export my data?"
Category: question
Text: "The app crashed twice during checkout."
Category: complaint
Text: "{{text}}"
Category:
Завершение промпта началом ожидаемого ответа, как выше, — подсказка в стиле продолжения, которой Gemini хорошо следует. Подробнее — в разделе о промптинге few-shot.
Используйте согласованную структуру
Gemini работает с XML-подобными тегами или заголовками Markdown для разделения инструкций, контекста и ввода. Выберите один стиль и последовательно используйте его во всём промпте. Смешение стилей делает границы менее ясными.
Префиксы — ещё одна лёгкая структура: метки вроде Text:, Category: или JSON: обозначают, что представляет каждая часть и что должно следовать дальше.
Длинный контекст: вопрос в конце
Модели Gemini принимают очень большие входы, включая длинные документы, кодовые базы и часы аудио или видео. Когда вы используете эту возможность:
- Ставьте вопрос или инструкцию после материала. Рекомендация Google для длинного контекста — размещать запрос в конце.
- Не включайте материал только потому, что он помещается. Нерелевантный контекст стоит денег и может размывать внимание. См. оптимизацию токенов.
- Используйте кеширование контекста для больших объёмов содержимого, повторно используемых в запросах.
Мультимодальный промптинг
Gemini принимает в одном промпте текст, изображения, аудио, видео и документы, например PDF. Несколько приёмов улучшают результат:
- Говорите, на что смотреть. «На втором графике» или «между 01:20 и 02:00 в видео».
- Для одного изображения ставьте изображение перед текстом, который о нём спрашивает.
- Сначала просите описание, когда задача требует внимательного прочтения изображения, затем задавайте вопрос. Это двухшаговая цепочка.
- Дайте правило для нечитаемого. «Если значение неразборчиво, используй null».
- Указывайте формат вывода, как и для текста.
The image is a photo of a utility bill. Extract the account number,
billing period, and amount due as JSON. Use null for any field you
cannot read with confidence.
Структурированный вывод
Для вывода, который разбирает ваш код, установите тип ответа JSON и передайте через API схему ответа. Тогда ответ ограничен этой схемой.
- Используйте перечисления для полей с фиксированными значениями; для чистой классификации есть и тип ответа-перечисление.
- Описывайте поля в схеме, поскольку модель её читает.
- Держите схемы достаточно простыми; очень большие или глубоко вложенные схемы могут быть отклонены или ухудшить качество.
- Проверяйте результат в своём коде.
См. промпты для структурированного вывода.
Мышление
Текущие модели Gemini могут рассуждать перед ответом, с настройкой, управляющей объёмом. Для этих моделей описывайте цель и ограничения и позвольте модели планировать. Понижайте настройку для простых задач с большим объёмом, чтобы снизить задержку и стоимость, и повышайте для многошагового анализа. Явные инструкции «думай шаг за шагом» мало что добавляют, когда мышление включено. См. промптинг цепочкой рассуждений.
Обоснование результатами Google Поиска
API Gemini может обосновывать ответ результатами Google Поиска и возвращать цитаты. Используйте это для вопросов о недавних событиях или меняющихся фактах. Для ответов, которые должны опираться на ваши данные, предоставьте документы сами и потребуйте, чтобы модель отвечала по ним: см. промптинг для RAG.
Каким бы ни был источник, скажите модели, что делать, когда предоставленный контекст не содержит ответа.
Вызов функций
Инструменты объявляются с именем, описанием и схемой параметров. Как и у любой модели, описание — то, по чему модель решает, когда вызывать. Будьте конкретны в отношении назначения, параметров и возвращаемых значений. См. промпты для ИИ-агентов.
Настройки сэмплирования
Для задач, требующих согласованности, например извлечения и классификации, обычный совет — низкая температура. Рекомендация Google для некоторых недавних моделей Gemini — оставлять температуру по умолчанию, поскольку её понижение может вызвать зацикливание или более слабое рассуждение. Прежде чем менять её, сверьтесь с документацией используемой модели.
Подсчёт токенов
Gemini предоставляет метод API для подсчёта токенов, а мультимодальные входы тоже считаются в токенах, при этом у изображений, аудио и видео свои ставки. Офлайн-токенизатора нет, поэтому PromptFlowEngine помечает свои подсчёты для Gemini как приблизительные. Для бюджетов используйте подсчёт API.
Промптинг в приложении Gemini
- Создайте Gem для задачи, которую повторяете, и напишите её инструкции один раз.
- Прикрепляйте файлы или подключайте нужные источники Google Workspace вместо вставки.
- Просите формат: таблицу, список или лимит слов.
- Начинайте новый чат при смене темы.
- Не вносите в чат учётные данные и данные клиентов.
Расширение PromptFlowEngine для Chrome работает внутри Gemini: оно анализирует и реструктурирует черновик в поле промпта и предупреждает, когда в нём есть секрет.
Типичные ошибки с Gemini
| Ошибка | Что происходит | Исправление |
|---|---|---|
| Нет примеров | Формат и стиль «плывут» | Добавить от двух до пяти согласованных примеров |
| Вопрос перед длинным документом | Хуже используется материал | Ставить вопрос в конце |
| Смешение стилей тегов и заголовков | Размытые границы | Выбрать один и придерживаться |
| Расплывчатый мультимодальный запрос | Общее описание | Сказать, на что смотреть и что вернуть |
| JSON запрошен только прозой | Периодически невалидный вывод | Использовать схему ответа |
| Заполнять окно, потому что можно | Выше стоимость, размытый фокус | Отправлять то, что нужно задаче |
Оптимизация промпта для Gemini
- Перенесите постоянные правила в системные инструкции.
- Сформулируйте задачу, затем добавьте согласованные примеры.
- Ставьте длинный материал первым, а вопрос — последним.
- Определяйте вывод схемой там, где его читает код.
- Уберите лишние слова и повторы и протестируйте снова.
Оптимизатор промптов PromptFlowEngine выполняет последний шаг с проверкой, а анализатор промптов помечает отсутствие формата вывода, прежде чем вы что-либо запустите.
Сравните с руководством по промптингу для ChatGPT и OpenAI и руководством по промптингу для Claude.