Промпт как часть приложения: шаблоны и переменные
В приложении промпт не пишут руками каждый раз — его собирают из шаблона и переменных, как HTML из компонентов.
Шаблон промпта — текст с плейсхолдерами, в который во время выполнения подставляются переменные (данные пользователя, контекст, параметры).
Зачем шаблоны
Когда промпт — часть продукта, его структура постоянна, а меняются только данные: имя пользователя, текст документа, выбранный тон. Разделение «постоянный шаблон» и «переменный контент» даёт: единый формат, лёгкие правки в одном месте, версионирование и тесты. Это та же идея, что параметризованные SQL-запросы вместо склейки строк.
Запускаемый пример: сборка промпта
Соберём промпт-шаблон из частей и подставим переменные. Код самодостаточный, печатает готовый промпт.
def build_prompt(role, task, data, fmt, constraints):
template = (
"Роль: {role}\n"
"Задача: {task}\n"
"Формат: {fmt}\n"
"Ограничения: {constraints}\n\n"
"Данные:\n\"\"\"\n{data}\n\"\"\""
)
return template.format(role=role, task=task, data=data,
fmt=fmt, constraints=constraints)
prompt = build_prompt(
role="ты технический редактор",
task="сделай заголовок к тексту",
data="Сегодня вышла новая версия библиотеки с ускорением парсинга.",
fmt="один заголовок, до 8 слов",
constraints="без кликбейта, по фактам",
)
print(prompt)Вывод:
Роль: ты технический редактор Задача: сделай заголовок к тексту Формат: один заголовок, до 8 слов Ограничения: без кликбейта, по фактам Данные: """ Сегодня вышла новая версия библиотеки с ускорением парсинга. """
Обратите внимание: данные пользователя подставлены в отдельный блок с делимитерами — это разделение шаблона и контента заодно защищает от инъекций.
Правила хороших шаблонов
- Минимум логики в строке. Условные части собирайте в коде, а не одной огромной f-строкой с if-ами внутри текста.
- Экранируйте/обрамляйте пользовательский ввод делимитерами, не вклеивайте его в инструкции.
- Один источник правды. Шаблон лежит в коде/конфиге, а не размазан по проекту.
- Параметры наружу. Тон, длину, язык делайте переменными, чтобы менять без правки шаблона.
Где хранить шаблоны
Маленький проект — константы в коде. Серьёзный — отдельные файлы или хранилище промптов с версиями, чтобы менять текст без передеплоя логики и откатывать при регрессе. Об этом — следующий урок.
Итог
- В приложении промпт собирают из постоянного шаблона и переменных.
- Разделение шаблона и данных даёт единый формат, правки в одном месте и защиту от инъекций.
- Держите логику в коде, а пользовательский ввод — в делимитерах.
- Параметризуйте тон/длину/язык и храните шаблоны как единый источник правды.