Привет всем. В интернетах расплодились уже сотни и даже тысячи статей по промпт инжинирингу. Почему бы не написать 1001? Собственно, никто не просил, но вот и она.

Важное уточнение:

  • Статья пишется по большей части для самого себя, чтобы использовать ее как шпаргалку и систематизировать десятки просмотренных видео и сотни (без тени иронии) прочитанных статей.

  • Мой круг интереса, как и технических знаний, невысокий поэтому:

    • это проекция исключительно моего личного опыта и не претендует на звание истины и божьего откровения;

    • советы будут работать в первую очередь для веб версий нейронок, без всяких подключений API, MCP, настроек температуры и прочих слов, которые в приличном обществе не принято произносить вслух (если не хочешь, чтобы тебя нарекли тыжпрограммистом);

    • советы будут работать с ChatGPT, DeepSeek, Gemini. За остальные чаты не ручаюсь;

    • частично советы будут работать с ролевыми чат ботами по типу c.ai, spicychat.ai, j.ai и т.д.

  • Это НЕ советы или гайды по типу «Увеличь продажи в 20 раз с помощью всего одного промпта». Наоборот, моя позиция такова, что не существует идеального универсального промпта и нужно (внимание - сейчас будут страшные слова) ДУМАТЬ И ПРИНИМАТЬ РЕШЕНИЕ для чего какой промпт применять.

Теперь, если есть понимание, о чем будет статья, можно начинать

Что из себя представляют классические (не думающие) нейронки, я писал в другой своей смежной статье (ссылка) Там полно технических косяков, но главную суть понять можно:

  • нейронка не универсальный решатель проблем, а инструмент для упрощения работы и, как и любым инструментом, крайне желательно понимать, как с ним работать

  • нейронка не умеет «думать» (ну почти, но об этом будет сказано позже), она лишь предсказывает следующий токен (считай слово) и делает это насколько успешно, что людям до сих под это кажется магией

Чтобы было еще понятнее, с чем приходится работать нейронке, поставим себя на ее место:

ты не можешь задавать уточняющие вопросы, и тебе дают задание по написанию кода, который в разных проектах может быть устроен вообще по-разному. При этом ты не можешь отказаться выполнять задание, и тебе требуется выполнить его максимально хорошо. Тебе ничего не остается, кроме как предположить какую-то архитектуру (и не факт, что нужную) верной и придерживаться выбранной тактики.

Если кто-то тут узнал себя на работе, то могу обрадовать: тебя увольнять точно не будут, так как твоему начальнику всегда надо будет скинуть на кого-то вину за свою некомпетентность. Может этот начальник и знает, как это делать, но уметь делать и уметь объяснять, что делать – очень сильно разные задачи и навыки.

Если же этот самый начальник - это ты, то научись давать понятные и недвусмысленные указания подчиненным. Поверь, это не так легко, как кажется.

 Обычно, когда мы, юзеры, даем нейронке задание, очень значительная часть информации остается за кадром. Она как бы сама собой разумеющаяся и «итак слишком очевидная и понятная, чтобы озвучивать». Увы, часто это не так - и с нейронками это становится особенно заметно.

 По большей части ради решения проблем, описанных в двух предыдущих абзацах и будет весь последующий текст.

Простые советы

Итак, начнем с наиболее очевидного и простого. Эти советы большинство из читателей видело и может смело пропускать. Это информация больше для новичков.

1. В сложных и комплексных задачах запрос всегда начинайте с глагола действия: «Сгенерируй», «Дай», «Напиши», «Проанализируй», «Найди», «Придумай» и т.д.

В более простых запросах можно использовать неформальный стиль общения.

 2. Не используй двусмысленных фраз. Даже при общении с другими людьми они (или ты) не всегда могут понять, о чем речь: недосказанное слово, внезапно сменившаяся тема, отсутствие контекста и т.д. Если человек тебя не может понять, то нейронка тем более.

Ниже я приведу пару примеров, для наглядности:

Однозначная фраза: Объясни, как работает бензиновый двигатель внутреннего сгорания.

Двусмысленная фраза: Сделай это лучше. (Что именно? По каким критериям лучше?)

Однозначная фраза: Перепиши следующий абзац так, чтобы он звучал более профессионально и убедительно для делового письма.

Двусмысленная фраза: Сделай текст нейтральным. (Нейтральным в чём? Эмоционально, политически?)

Однозначная фраза: Перепиши текст, убрав эмоциональную окраску, чтобы он звучал объективно и по деловому.

Двусмысленная фраза: Сделай по-нормальному. (Что такое "нормально"? Простыми словами? Официально?)

Однозначная фраза: Перепиши текст простыми словами, чтобы его мог понять подросток без технического образования.

Если видишь, что нейронка тебя не понимает, проверь сначала ЧТО ты ей написал. В большинстве случаев оказывается виновник по эту сторону экрана.

3. Начинать новую задачу с нового диалога

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

Если вкратце то, чем больше надо обработать символов, тем больше требуется ресурсов, но проблема в том, что скорость роста вычислительных затрат не линейная, а квадратичная (то есть, при увеличении длины в 10 раз — нагрузка возрастает в 100 раз). Например, для миллиона токенов потребуется 2 ×10^12 (или 2 000 000 000 000) операций на каждый новый токен в генерации при полном контексте, а это ОЧЕНЬ много (для бесплатных пользователей в ChatGPT лимит всего в 16 000 токенов). И это не единый ответ на весь текст. Расчет ведется для каждого отдельного токена!

 А это приводит к 4 основным проблемам:

  • чем длиннее диалог, тем медленнее на него ответ

  • есть упор в количество токенов (считай слов). Для бесплатных пользователей это около 16 000 токенов, что вроде бы и много, но по факту кончается быстро

  • качество ответа падает. Иногда существенно

  • чем более разнообразные вопросы будут в одном диалоге, тем выше вероятность, что модель начнет галлюцинировать. Иногда это принимает радикальные формы.

Чат боты решают это по-разному. Где-то ограничивают количество ответов в день, а где-то «забывают» часть предыдущих сообщений, как на примере ниже:

Как избежать этих проблем? Начинать новый чат. Каждый раз. Для каждой новой задачи или вопроса. Если решение старой задачи не окончено, то скопировать задачу, один из крайних ответов и продолжать работать (иногда это даже улучшает качество ответа, особенно в задачах с программированием).

Важное утонение: если нужна долгосрочная память (проект, персонаж, база знаний) — наоборот, лучше не сбрасывать историю

Да, это не всегда удобно. Да, скапливается тонна мусорных диалогов. Да, этим советом можно пренебречь. Но если ты чувствуешь, что ответы уже какие-то не те, то попробуй просто сделать ту же задачу в новом чате, если не помогает, то перейдем к следующим советам.

4. Задай контекст

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

Пример 1:

Ты пишешь нейронке вопрос:

Где мне отдохнуть с семьей?

Модель не знает: где ты живешь, сколько у тебя детей, их возраст, какие интересы у семьи (пляж, природа, музеи, активный отдых), сезон/погоду, бюджет, доступный транспорт, уровень комфорта… короче много инфы утеряно.

В итоге будет предложено что-то банальное или неподходящее — от "Турции" до "Лапландии", с равной вероятностью.

Лучше написать запрос следующим образом:

Посоветуй, где можно отдохнуть с семьёй на Дальнем Востоке зимой.
Мы живём в Хабаровске.
Хотим съездить на 4–5 дней, не дальше чем в 5 часах езды на поезде или машине.
В семье 2 взрослых и 3 ребёнка: 3 года, 8 лет и 12 лет.
Хотелось бы, чтобы была инфраструктура для детей, возможность немного отдохнуть взрослым, и не слишком экстремальные температуры.
Бюджет — средний, готовы потратить до 80 тысяч рублей на весь отпуск

Думаю, понятно, где ответ будет лучше. Особенно если у тебя включен ВПН и нейронка думает, что ты находишься в условном Таиланде.

Пример 2:

Моя кошка съела кусочек шоколада. Стоит ли волноваться?

Без указания веса кошки, количества шоколада и времени — сложно понять, критично ли это. А в реальности — может быть токсично и смертельно. Данный предмет смотрится особенно важным, если поменять кошку на ребенка, а шоколад на что-то более вредное.

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

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

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

Еще раз: если нейронка далеко не первый раз выдает плохой или неподходящий ответ, то скорее всего ей для этого не хватает данных. Дополняй информацию, выдавай контекст!

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

Еще раз: если нейронка далеко не первый раз выдает плохой или неподходящий ответ, то скорее всего ей для этого не хватает данных. Дополняй информацию, выдавай контекст!

5. Примеры

Окей, ты начал новый чат, обозначил конкретную недвусмысленную задачу, задал контекст, и вроде ответ верный, но не совсем то, чего ты хотел.

И следом вопрос: откуда нейронка знает, как именно ты хотел? Покажи пример, а лучше несколько.

Эта часть текста будет без примеров, так как задачи у людей слишком разные: придумать и написать код для игры, составить описание товара, сделать выборку по маркетинговому исследованию, выбрать технические данные из проектной документации, начать ролевой чат с горячей цыпочкой (или мачо) на тихом острове… Чем больше будет примеров, тем лучше.

НО! 2-3 тщательно подобранных примера лучше, чем 20 средних: контекст съедается, а точность уже не растёт.

Приветствуется добавление плохих примеров с пометкой, что так делать ненужно. Но ты сам быстро поймешь, где такие примеры нужны.

Например, я терпеть не могу в ролевых чат ботах тематику осознанности и принятия себя и первый делом указываю, что ТАК ПИСАТЬ НЕ НАДО!

Но есть важное дополнение к составлению примеров:

  • используй разнообразные и качественные примеры.

  • показывай не только стандартные, но и краевые случаи.

  • в примере не должно быть ошибок (это очень важно!).

  • выбирай примеры, максимально близкие к задаче, но не идентичные

6. Формат вывода

Если примеров нет, или ты не можешь их придумать, но ответ тебя все равно не устраивает, то можешь задать желаемый формат вывода. Просто скажи нейронке, что в и каком формате хочешь получить.

Несколько примеров для наглядности.

Задача: Сравни 3 самых популярных видеоредактора для начинающих.
Формат вывода: Таблица с колонками: Название, Платформа, Преимущества, Недостатки, Цена
Задача: Опиши день из жизни средневекового крестьянина.
Формат вывода: Рассказ от первого лица, 3–4 абзаца, прошедшее время.
Задача: Составь 3 идеи для мобильного приложения.
Формат вывода: JSON-массив с полями: название, описание, ключевая функция, целевая аудитория.
Задача: Опиши ключевые события в истории искусственного интеллекта.
Формат вывода: Хронологический список с годами и кратким описанием событий
Задача: Расскажи про плюсы и минусы удалённой работы.
Формат вывода: Два блока: «Преимущества» и «Недостатки», по 3–5 пунктов

Я почти всегда в своих задачах, требующих сбора информации, пишу:

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

А уже дальше, если меня что-то заинтересовало, прошу расписать подробнее или перехожу на источники.

7. Сгенерируй несколько ответов

Если ответ не устраивает, незачем ограничиваться одним вариантов ответа. Во всех нейронках есть кнопки по типу этой, позволяющих перегенерировать ответ.

В самые отчаянные моменты у меня выходило до 20 повторов, но обычно, если качество ответа не устраивает, то на 2-5 генерации появляется ответ нужного качества.
В самые отчаянные моменты у меня выходило до 20 повторов, но обычно, если качество ответа не устраивает, то на 2-5 генерации появляется ответ нужного качества.

Увы, но и это не спасает и можно попасть в те самые 0.00001% счастливчиков, которым нейронка в 10 из 10 случаев выдаст бред.

Забавный факт

обычно автоматизированная проверка фактов (оно же заморское фактчекинг) и корректности ответов делается этим же методом. На сложную задачу генерируют несколько ответов и если из 10 ответов нейронка ответила одинаково 8-9 раз, то ответ считается правильным. Ирония в том, что у простых людей те же ответы на те же задачи могут совпадать в 5-7 случаях, но нет – нейронкам доверять нельзя, а вот кожаные все делаю правильно (это все написано утрированно, и понятно, что найдутся задачи, где нейронки могут ошибаться чаще, но к несчастью скептиков, такие задачи каждый год находить все сложнее, но об этом я как-то выскажусь в другой статье)

8. Самопроверка.

Если итоговый результат требует точности (и не важно какой именно: математической, исторической, юридической), то просто допиши в конце промпта что-то вроде:

Перепроверь свой ответ. Убедись, что он не содержит ошибок и неточностей

Еще лучше, если ты попросишь сослаться на источник, или сделать внешнюю валидацию (доверить проверку агенту, другой неронке, человеку или самому перепроверить).

9. Ошибки в тексте

Мне стоит тебе признаться. Я соврал (можешь закрывать статью), модель, когда анализирует текст и выдает ответ она «думает» не словами, а токенами. Токены, это такие минимальные куски информации, с которыми может работать нейронка – это могут быть отдельные буквы, части слова, слова целиком, а очень редко и целые фразы.

В английском языке 1 токен почти равен 0.8 слову. С русским языком сложнее, тут 1 токен равен примерно 0.7 части слова. Поэтому часто рекомендуется в нейронках работать с английским. Но статья о методах, доступных каждому, поэтому поговорим о другом: о твоих плохих оценках по Русскому языку в школе.

Например, я взял кусок текста из начала статьи (всю вводную часть) и прогоню его через токенайзер (специальная приблуда, которая считает количество токенов в тексте).

Текст без ошибок вышел на 871 токен, а текст с ошибками на 879.

Текст с ошибками

Привет всем. В интернетах расплодились уже сотни и даже тысячи статей поо ппромпт инжинирингу. Почемуу ббы не написать 1001? Собственно, никто не просил, но вот и она.

 Важное уточнение:

1. Статья пишется по большей части для самого себя, чтобы использовать ее как шпаргалку и систематизировать десятки прросмотренных видео и сотни (без тенни иронии) прочитанных статей.

2. Моой круг интереса, как и технических знаний, невысокий поэтому:

- это проекция исключительно моего личнного опыта и не претендует на звание истины и божьего откровенияя;

- советы будут работать в первую очередь для веб версий нейронок, без всяких подключений API, MCP, настроек температуры и ппрочих слов, которые в приличном обществе не принято произносить всслух ((если нне хочешь, ччтобы тебя нарекли тыжпрограммистом);

- советыы будут работать с ChatGPT, DeepSeek, Geminni. За остальные чаты не ручаюсь;

- частично советы будут работать с ролевыми чат ботами поо типу c..ai, spicychat.ai, j.ai и т.д.

3. Это НЕ советы или гайды по типу «Увеличь продажи в 20 раз с помощью всего одного промпта». Наоборот, моя позиция такова, что не существует идеальноого универсального промппта и нужно (внимание - сейчас будут страшные слова) ДУМАТЬ И ПРИНИМАТЬ РЕШЕНИЕ для чего какой промпт применять.

Теперь, если естьь понимание, о чем будет статья, можно начинать.

 Что из себя представляют классические (не думающие) нейронки, я писал в другой свооей смежной стаатье (ссылка). Там полно технических косяков, но главную суть понять можно:

1. нейронка нее универсальный решатель проблем, а инструмент для упрощения работы и, как и любым инструментом, крайне желательно понимать, как с ним работать.

2. нейронка не умеет «думать» (ну почти, но ооб этом будет сказано позже), она лишь предсказывает следующий токен (считай слово) и делает это насколько успешно, что этим люди с большимм удовольствием пользуются.

 Чтобы было еще понятнее, с ччем приходится работать нейронке, поставим себя на ее место: ты не можешь задавать уточняющие вопроссы, и тебе дают задание по написанию кодда, который в разных проектах может быть устроен вообще по-разному. При этом ты не можешь отказаться выполнять задание, и теббе требуется выполнить его максимально хоррошо. Тебе ничего не остается, кроме как предположить какую-то архитектуру (и не факт, что нужную)) верной и придерживаться выбранной тактики.

Если кто-то тут узнал себя нна работе, тоо могу обрадовать: тебя увольнять точно не будуут, так как твоему начальнику всегда надо будет скинуть на кого-то ввину за ссвою некомпетентность. Может этот начальник и знает, как это делатьь, но умметь делать и уметь объяснять, что делать – очень сильно разные задачи и навыки.

 Если же этот самый начальник - это ты, тто научись даватьь понятные и недвусмысленные указания подчиненным. Поверь, это не так легко, как кажется.

 Обычно, когда мы, юзеры, даем нейронке задание, очень значительная часть информации остается за кадром. Она как бы сама соббой разумеющаяся и «итак слишком очевидная и понятная, чтобы озвучивать». Увы, частоо это не так - и с нейронками это становится особенно заметно.

 По большей части ради решения проблем, описанных в двух предыдущих абзацах и будет весь последующий текст.

Ты читатель, разумно спросишь меня: И ЧО? Всего 8 токенов разницы. Да, всего 8 токенов, но как говорится есть нюанс. Дело не только в дополнительном количестве токенов, главное — ухудшение семантики (считай, понимания текста).

 Если в нейронке попадается «сложное» слово, ей приходится разбивать его на части. Если же нейронке попадается сложное и «поломанное слово», то тратится еще больше ресурсов и не факт, что после этого придет понимание, что сделать надо.

 Также если нейронка в режиме простой генерации текста (без режима «размышления»), то в своей генерации она не подумает «ну тут этот гений ошибся, очевидно он имел ввиду «пришли сантехники - вырезали отверстия ПОД ЛЮКИ», вместо «пришли сантехники - вырезали отверстия, ПОДЛЮКИ» (другой пример: «Удар в псину» и «Удар в спину»). В лучшем случае нейронка будет предполагать, что ты имел ввиду другое, но будет работать с исходным текстом. В худшем случае получится совсем другая инструкция.

 Да и в режиме размышления это тоже критично. Вот мой личный пример при использовании DeepSeek:

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

 Слова, итак, приходится дробить на множество частей, из-за чего растет сложность решения задачи (на серверах потратится больше ресурсов), а твои ошибки подливают масла в огонь.

 Итог: надо было учиться в школе перепроверяй себя, благо ошибки в словах везде указываются – и в телефоне, и на компе.

10. Повтори задание

В как-то на глаза попадалось исследование (если найду прикреплю ссылку) где говорится, что если задание написать и вначале промпта и в конце, но немного другими словами, то качество ответа вырастет.

Лично не проверял, но звучит вполне правдиво, поэтому просто оставлю это тут.

Итоги

Подведем итоги первой части статьи. Если качество ответа не устраивает, то убедись, что твой промпт:

  • не содержит ошибок

  • не уходит в абстракцию, а обозначает конкретное задание/действие

  • не допускают двусмысленности, ясны, понятны и однозначны

  • начинается с нового диалога

  • имеет контекст к задаче

  • имеет примеры выводимой информации

  • имеет заданный формат вывода

  • имеет несколько повторных генераций

  • проверяет свой ответ

  • повторяет задачу вначале и в конце промпта

Не обязательно пользоваться всеми советами сразу, выбери сначала те, что кажутся наиболее уместными, потом, если качество все еще не устраивает, используй остальные советы.

В общем итоге первую часть статьи можно объединить в этот мем
В общем итоге первую часть статьи можно объединить в этот мем

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

ЧАСТЬ 2. ПРОДВИНУТЫЕ СОВЕТЫ

ЧАСТЬ 3. ДОПОЛНИТЕЛЬНЫЕ ХИТРОСТИ (скоро)

ЧАСТЬ 4. ИСТОЧНИКИ И ИТОГИ (скоро)

За дополнительной информацией прошу в мой телеграмм: https://t.me/double_mirror_ru

Комментарии (4)


  1. Androlera
    10.07.2025 12:02

    Хорошие советы для новичков. Могу добавить несколько слов о программировании именно для начинающих юзеров: нейронки гораздо лучше генерируют маленькие участки кода. Не нужно скармливать ей сразу всю свою задачу: будет много ненужной архитектуры, ошибок и тд. Поэтому, перед тем как решать свою прогерскую задачу, нужно самостоятельно её проанализировать, разбить на мелкие подзадачи и в разных диалогах генерировать решение. Очень люблю просить писать комментарии к каждой строчке кода. Перед тем как включать кусок кода в решение, всегда разбираюсь, как он работает - комментарии в этом очень помогают.

    Жду следующих частей


    1. nikv19 Автор
      10.07.2025 12:02

      Кстати, да. Про комментирование строк надо будет написать. Спасибо.


  1. KEugene
    10.07.2025 12:02

    Нашёл и для себя некоторые интересные моменты.

    Проверьте, пожалуйста, орфографию/пунктуацию. Есть пара мест. Например, в п. 10 я потратил "дополнительные токены" чтобы распознать смысл.


    1. nikv19 Автор
      10.07.2025 12:02

      И то верно. Исправил.