Нейросеть для написания текста почти всегда возвращает воду, если промпт написан в одну строку без структуры. Я тестирую формулировки на рабочих задачах: карточки товаров для Tilda-магазинов, письма клиентам, автоответы в aiogram-ботах, черновики статей. Разница между «напиши текст про доставку» и промптом с ролью, форматом и явным запретом на вводные фразы видна уже в первом ответе модели, без единой правки.
По теме статьи
Готовое решение
AI-чатбот для сайта на Claude - отвечает как ваш менеджер, работает 24/7
Подключу к вашему сайту чат-бота на Claude API. Бот отвечает на вопросы клиентов голосом вашего бренда, знает каталог и условия доставки, забирает лиды в CRM или Telegram.
от25 000 ₽
AI / Claude API
Искусственный интеллект для бизнеса
AI-чатбот на сайт с базой знаний, автообработка заявок, генерация контента, умный парсинг. Claude API, OpenAI, RAG.
от50 000 ₽
Почему языковая модель по умолчанию льет воду в тексте
GPT, Claude и YandexGPT обучены дописывать текст так, чтобы он звучал складно и безопасно. Если в запросе нет ограничений, модель заполняет пустоты тем, что статистически чаще всего стоит рядом с похожими фразами: вводными конструкциями, общими утверждениями, повторами мысли другими словами. Это не баг, а следствие того, как работает генерация текста: без явных рамок модель выбирает средний по объему и стилю вариант, а средний вариант почти всегда многословный.
На практике вижу три причины, из-за которых ответ раздувается:
- не задан объем, и модель выбирает длину сама, обычно с запасом;
- не указана аудитория, поэтому текст пишется на всех сразу и получается расплывчатым;
- нет прямого запрета на клише, а без него модель тянет их по умолчанию, потому что так проще для нее самой.
Для сравнения: без ограничений на запрос про доставку модель часто выдает что-то вроде «мы понимаем, как важна для вас быстрая и надежная доставка, поэтому предлагаем удобные варианты получения заказа». Тот же набор фактов с промптом, где заданы роль, аудитория и запрет на вводные фразы, превращается в «курьером по городу за 1 день, забор из пункта СДЭК за 2-3 дня, самовывоз со склада бесплатно». Второй вариант короче примерно втрое и содержит ровно те же факты, просто без обертки из вежливых слов.
Из чего собрать промпт для нейросети для написания текста
Промпт для нейросети для написания текста я всегда собираю из шести блоков, в таком порядке: роль модели, задача, аудитория, исходные факты, формат ответа и ограничение по объему. Пропуск любого блока модель заполняет чем-то усредненным, и туда просачивается вода.
Роль задает не только тон, но и словарь: «пиши как технический писатель» и «пиши как копирайтер маркетингового агентства» дают на выходе совершенно разные тексты про один и тот же продукт. Задачу формулирую как результат, а не процесс: не «расскажи про тариф», а «объясни, чем тариф А выгоднее тарифа Б для владельца интернет-магазина с оборотом до 500 заказов в месяц». Факты передаю списком, а не абзацем, иначе модель начинает пересказывать их своими словами и превращает три строки в десять. Аудиторию указываю тоже не абстрактно: не «для клиентов», а «для владельца небольшого магазина, который сам ведет соцсети и не готов читать текст дольше 20 секунд», тогда и лексика, и длина предложений подстраиваются автоматически.
Отдельно фиксирую тон, даже если кажется, что он и так понятен из роли. «Деловой тон» нейросеть может понять как сухой канцелярит, а «дружелюбный» легко скатывается в избыток восклицательных знаков и уменьшительных суффиксов. Пишу тон через пример: «как в переписке с постоянным клиентом, без канцелярита и без панибратства» работает точнее, чем одно прилагательное. После доработки такого промпта для писем клиентам количество правок с моей стороны упало примерно вдвое: раньше переписывал через раз, теперь чаще просто отправляю черновик как есть.
| Элемент промпта | Слабая формулировка | Рабочая формулировка |
|---|---|---|
| Роль | отсутствует | «Ты редактор карточек товаров интернет-магазина стройматериалов» |
| Задача | «Напиши про товар» | «Опиши, чем плитка отличается от аналога дешевле на 15%» |
| Формат | отсутствует | «5 пунктов списком, без вступления и заключения» |
| Ограничение | отсутствует | «Не больше 400 знаков, без превосходных степеней» |
Бесплатный материал
🎁 Полезный скрипт в подарок
Подпишитесь на Telegram - пришлю готовый скрипт по этой теме.
Без спама. Отписка в 1 клик.
Как задать объем и формат ответа для генератора текста
Модель заметно точнее держит объем, если просить не «коротко», а конкретное число: символов, предложений или пунктов списка. Слово «коротко» каждая нейросеть трактует по-своему, а формулировка «максимум 600 знаков с пробелами» дает предсказуемый результат. То же с форматом: если нужен список, а не абзац, это стоит написать прямо, иначе модель сама решает, во что завернуть ответ, и обычно выбирает более многословный вариант.
Когда работаю через API, а не через чат, добавляю управление длиной на уровне запроса, а не только текстом промпта. Это особенно важно для пайплайнов в n8n, где один и тот же system-промпт прогоняется на сотне карточек товаров подряд и вручную резать каждую не вариант.
response = client.messages.create(
model="claude-sonnet-5",
max_tokens=250,
system="Пиши только фактами. Один тезис - одно предложение. "
"Без вводных фраз, обобщений и слов «уникальный», «идеальный».",
messages=[{"role": "user", "content": prompt}]
)
Параметр max_tokens здесь не столько экономит токены, сколько физически не дает модели развернуться в длинное рассуждение. Для формальных текстов вроде описаний товаров или ответов техподдержки ставлю температуру ближе к 0.3, потому что при высокой температуре модель охотнее уходит в общие фразы, а не держится фактов из промпта. Если ответ все равно уходит в отвлеченные рассуждения, обычно достаточно одной фразы в конце промпта: «отвечай только тем, что можно проверить по фактам выше, ничего не придумывай». Это снижает соблазн модели дополнить текст правдоподобно звучащими, но не заявленными деталями, а для карточек товаров и технических текстов это критично: придуманная характеристика превращается в риск для репутации и в претензию от клиента, если товар на деле не соответствует описанию.
Стоп-лист: что запрещать в промпте прямо текстом
Самый быстрый способ убрать воду, это перечислить модели конкретные конструкции, которые нельзя использовать, а не просить «писать без воды» абстрактно. Формулировка «без воды» сама по себе слишком общая, и модель не знает, что под ней понимать. Работает конкретный список запретов, вставленный прямо в system-промпт или в начало запроса:
- вводные фразы вроде «в современном мире», «стоит отметить, что», «важно понимать»;
- риторические вопросы с самоответом в духе «сложно? да»;
- слова «данный», «является», «позволяет», «в рамках» как канцелярские заменители простых глаголов;
- повтор одной мысли разными словами в соседних предложениях;
- обобщения без цифр там, где цифра есть в исходных фактах.
Этот список я держу как отдельный блок промпта и переиспользую в разных задачах: для карточек товаров, писем и постов в соцсети правила одни и те же, меняется только роль и аудитория.
Примеры промптов для ИИ для текста в разных задачах
Для карточки товара на Tilda промпт выглядит так: «Ты редактор карточек для магазина сантехники. Опиши смеситель для кухни по фактам: материал корпуса - латунь, покрытие - хром, гарантия 5 лет, поворот излива 360 градусов. Формат: 4 пункта списком, до 350 знаков суммарно. Без вводных фраз и превосходных степеней». Модель получает ровно то, из чего можно собрать текст, и ей не приходится придумывать общие слова, чтобы заполнить пустоты.
Для автоответа в aiogram-боте промпт короче, но с тем же принципом: роль («ты бот поддержки интернет-магазина»), формат ответа (1-2 предложения, без приветствия, если это не первое сообщение в диалоге) и явный запрет повторять вопрос пользователя перед ответом. Без этого запрета модель почти всегда начинает с пересказа вопроса, что для чат-бота выглядит как задержка перед сутью.
Если текстов много и генерировать их нужно пачками, промпт выносится в систему один раз, а данные подставляются построчно через n8n или похожий инструмент автоматизации. В таких сценариях цена ошибки в промпте умножается на количество строк, поэтому проверяю формулировку на 5-10 примерах вручную, прежде чем запускать на весь массив данных. Если задача шире разового промпта и нужен постоянный пайплайн генерации текста с проверкой на выходе, обычно делаю это как разработку AI-интеграции под конкретный поток текстов, а не набор промптов, которые каждый раз настраиваются заново.
Для поста в соцсети под тот же товар меняю только формат и длину, роль и факты оставляю теми же: вместо 4 пунктов списком прошу связный абзац на 3-4 предложения с одной мыслью в начале и без хэштегов внутри текста. Из-за общего блока фактов и стоп-листа карточка на сайте и пост для соцсетей не расходятся между собой в цифрах, хотя пишутся разными запросами и в разное время, а это как раз то место, где при ручном копирайтинге чаще всего вылезают несостыковки.
Как проверить и дожать результат языковой модели
Даже с хорошим промптом модель иногда возвращает одну лишнюю вводную фразу или повтор мысли. Проверяю результат по короткому чек-листу: можно ли убрать первое предложение без потери смысла, есть ли в тексте цифра или факт в каждом абзаце, повторяется ли одна и та же мысль дважды другими словами. Если да хотя бы по одному пункту, текст возвращаю на доработку тем же промптом с добавкой: «убери первое предложение, оно не несет факта» или «объедини пункты два и четыре, они про одно и то же». Из внешних проверок использую сервис Главред: если оценка текста ниже 7, почти всегда проблема в тех же конструкциях, что я запрещаю в промпте, просто модель подмешала их обходным путем. Переписывать текст руками с нуля не тороплюсь, это медленнее, чем уточнить промпт и перегенерировать ответ: правка формулировки один раз работает на все последующие тексты того же типа, а ручная правка каждый раз начинается заново.
Для больших партий текста, например 50 карточек товара за раз, беглую проверку делаю выборочно: смотрю каждую пятую карточку целиком, а по остальным сверяю только длину и наличие цифр из исходных данных. Полная ручная вычитка полусотни коротких текстов занимает больше времени, чем ушло на саму генерацию, и на практике не нужна, если промпт уже проверен на первых десяти примерах и стоп-лист в нем действительно работает.
Частые вопросы
Как понять, что ответ нейросети нужно переписывать, а не пускать в работу как есть?
Смотрю по трем признакам: первое предложение можно убрать без потери смысла, ни один абзац не опирается на конкретный факт или цифру из промпта, одна и та же мысль повторяется дважды другими словами. Если сработал хотя бы один признак, проще уточнить промпт и перегенерировать ответ, чем вычищать текст руками.
Какая нейросеть меньше льет воды в текстах: ChatGPT, Claude или YandexGPT?
Разница не столько в самой модели, сколько в том, насколько детально расписан промпт. По моим наблюдениям Claude чуть строже держит стоп-лист запрещенных конструкций при точном system-промпте, YandexGPT слабее соблюдает заданный объем ответа, а ChatGPT в среднем между ними. При одинаково подробном промпте разница по количеству воды в готовом тексте небольшая.
Сколько раз обычно приходится переписывать промпт, прежде чем текст перестает быть водянистым?
На новых задачах уходит 2-3 итерации: первый вариант промпта показывает, где модель тянет обобщения, я добавляю конкретный запрет или факт, и со второй-третьей попытки формулировка становится шаблоном, который переиспользую без правок на похожих текстах.
Можно ли автоматически проверять сгенерированный текст на воду?
Да, если объем позволяет, добавляю в пайплайн отдельный шаг: прошу модель сверить черновик со стоп-листом из исходного промпта и переписать те фразы, что нарушают правила, либо прогоняю текст через сервис проверки читаемости и отсекаю по порогу оценки все, что не проходит.