Бесплатный оптимизатор prompt
Вставьте черновой prompt - получите понятную структурированную версию, которая даёт лучшие результаты в Claude, ChatGPT или любом AI.
Ваш оптимизированный prompt появится здесь.
Вставьте черновой prompt, затем нажмите «Оптимизировать».
Что такое оптимизатор prompt?
Оптимизатор prompt - это бесплатный инструмент, который превращает черновой, незаконченный prompt в понятный и структурированный, дающий гораздо лучшие результаты в любом AI. Вставьте свою черновую идею, и этот бесплатный оптимизатор prompt перепишет её, добавив действительно важные части - роль AI, задачу, контекст, ваши требования и нужный формат вывода. Разница между расплывчатым запросом и структурированным prompt - это разница между шаблонным и по-настоящему полезным результатом.
Он также работает как усилитель prompt и оптимизатор prompts для ChatGPT: создаваемый им структурированный prompt можно использовать в разных системах, поэтому вы можете сразу вставить его в Claude, ChatGPT, Gemini или любой AI-чат. Знания prompt-инжиниринга не нужны - просто опишите, чего хотите, обычным языком, а оптимизатор сам займётся структурой.
Хотите полностью отказаться от prompt для регулярных задач? Готовый набор prompts или файл Skill от KissMySkills превращает Claude или ChatGPT в специалиста по конкретной задаче, чтобы вы получали экспертный результат без написания prompts. Впервые работаете с prompts? Прочитайте, что такое Claude Skills, чтобы узнать, почему сохранённый Skill лучше, чем каждый раз заново писать prompt.
Место, где вы размещаете элементы в prompt, меняет ответ
Позиция - наименее обсуждаемая и наиболее измеримая часть структуры prompt, и два из трёх крупнейших поставщиков моделей публикуют одни и те же рекомендации.
В рекомендациях Anthropic по созданию prompt для входных данных объёмом от 20 000 токенов советуют «размещать длинные документы и входные данные в верхней части prompt, перед запросом, инструкциями и примерами» и утверждают, что запросы в конце «могут повысить качество ответов на 30 процентов в тестах, особенно при работе со сложными входными данными из нескольких документов». Считайте этот процент внутренним показателем без опубликованной методологии, но сам совет о порядке размещения однозначен. Google даёт Gemini ту же инструкцию: «При передаче большого объёма контекста (например, документов или кода) сначала предоставьте весь контекст. Размещайте конкретные инструкции или вопросы в самом конце prompt», а также добавляет полезный приём связки - переходную фразу вроде «Основываясь на приведённой выше информации…»
За этой интуицией стоят исследования. В работе Lost in the Middle (Liu и др., arXiv:2307.03172) установлено, что производительность моделей «часто максимальна, когда релевантная информация находится в начале или конце входного контекста, и значительно снижается, когда моделям приходится обращаться к релевантной информации в середине длинных контекстов, даже если это модели с явно заявленной поддержкой длинного контекста». Если нужный факт затерян в середине вставленного документа, его перемещение будет более надёжным решением, чем переформулировка вопроса.
В актуальных рекомендациях OpenAI сообщения разработчика предлагается организовывать иначе - сначала идентичность, затем инструкции, примеры и контекст; при этом отмечается, что контекст «обычно лучше размещать ближе к концу prompt». Это скорее не противоречие, а различие в том, что именно размещается: справочные материалы, относящиеся к конкретному запросу, а не большие документы. Практический вывод таков: универсальной структуры не существует, поэтому prompt, оптимизированный по расположению элементов для одной модели, следует повторно проверить на другой.
Структура важнее прилагательных
Методы, которые разработчики действительно описывают, имеют структурный характер, и ни один из них не предполагает сообщения модели, что она эксперт мирового класса.
Формулировка Anthropic для проверки ясности - это скорее тест, чем правило: «Покажите свой prompt коллеге, предоставив минимум контекста о задаче, и попросите его следовать ему. Если коллега растеряется, Claude тоже». В тех же рекомендациях советуют объяснять, почему существует ограничение, а не просто безапелляционно его формулировать, поскольку модель «достаточно умна, чтобы обобщить объяснение» - инструкция с обоснованием переносится на случаи, которые вы не перечислили.
Разделители - ещё одна неизменно повторяющаяся рекомендация. Anthropic: теги XML «помогают Claude однозначно разбирать сложные промпты», а заключение каждого типа содержимого в собственный тег, например <instructions>, <context>, <input> «снижает вероятность неправильной интерпретации». OpenAI: «Заголовки и списки Markdown могут быть полезны для обозначения отдельных разделов промпта», а «теги XML могут помочь обозначить, где начинается и заканчивается один фрагмент содержимого…». Google в другом контексте предупреждает о примерах: единообразное форматирование в примерах few-shot важно, а «если включить слишком много примеров, модель может начать подгонять ответ под эти примеры». Anthropic рекомендует от трёх до пяти, заключая их в <example> теги.
Роли дают меньше, чем утверждает интернет, но не бесполезны. Позиция Anthropic скромна и конкретна: «Задание роли в системном промпте фокусирует поведение и тон Claude под ваш сценарий использования. Даже одно предложение имеет значение». Одно предложение в системном промпте - не абзац выдуманной биографии в сообщении пользователя.
Два распространённых совета по промптам, которые теперь неверны
Руководства по промптам быстро устаревают, и два самых часто повторяемых совета уже опровергнуты собственной документацией разработчиков моделей.
«Всегда просите его думать шаг за шагом». В рекомендациях OpenAI по рассуждениям говорится обратное применительно к моделям рассуждений: «Избегайте промптов с цепочкой рассуждений: поскольку эти модели выполняют рассуждения внутренне, просить их “думать шаг за шагом” или “объяснять свои рассуждения” не нужно», а в другом месте отмечается, что такие методы «могут не повышать эффективность (а иногда даже мешать ей)». На той же странице рекомендуется сначала попробовать zero-shot, а примеры добавлять только при необходимости. Стоит сохранить аналогию OpenAI: модель рассуждений «подобна опытному коллеге. Вы можете дать ей цель и доверить ей проработать детали. Модель GPT подобна младшему коллеге». Цепочка рассуждений не умерла - Anthropic по-прежнему описывает ручной CoT с тегами <thinking> и <answer> - но теперь это подаётся как запасной вариант на случай, когда встроенное рассуждение отключено, а не как настройка по умолчанию.
Также стоит знать, что утверждалось в оригинальной статье. В статье Chain-of-Thought Prompting Elicits Reasoning in Large Language Models (Wei и др., arXiv:2201.11903) сообщалось, что такие способности «естественным образом проявляются в достаточно крупных языковых моделях». Знаменитый результат с формулировкой «давайте подумаем шаг за шагом» (Kojima и др., arXiv:2205.11916) был получен на модели 2022 года. Ни то ни другое не является непреложным законом.
«Предварительно заполнить первые слова ассистента». В актуальной документации Anthropic говорится, что начиная с последних моделей Claude предварительно заполненные сообщения ассистента в последнем ходе «больше не поддерживаются», а запросы, содержащие их, «возвращают ошибку 400». В качестве замен документированы структурированные выходные данные, прямая инструкция отвечать без вступления или вызов инструментов. Любое руководство, которое всё ещё рекомендует prefill как приём форматирования, описывает запрос, который теперь завершается ошибкой.
Есть ещё одно важное различие: self-consistency (Wang et al., arXiv:2203.11171) - это стратегия декодирования, которая сэмплирует несколько ходов рассуждения и выбирает наиболее распространённый ответ. Её нельзя реализовать переписыванием prompt, поскольку для этого требуется несколько генераций.
Что этот оптимизатор не может делать
Он не может предоставить знания, которыми модель не располагает. Заявленная OpenAI причина добавления контекста - дать модели «доступ к закрытым данным или любым другим данным за пределами набора данных, на котором она обучалась». Если не хватает факта, нужно вставить сам факт, а не лучше сформулировать вопрос.
Он не может устранить галлюцинации. Anthropic прямо говорит, что даже продвинутые модели «иногда могут генерировать фактически неверный текст», а методы смягчения - разрешение отвечать «я не знаю», извлечение дословных цитат перед ответом по объёмным документам, ограничение модели предоставленными источниками - «значительно сокращают количество галлюцинаций», но «не устраняют их полностью».
Он не может защитить вас от prompt injection. Anthropic выделяет две модели угроз: прямую инъекцию, при которой злоумышленником выступает пользователь, и косвенную инъекцию, при которой prompt доверенного пользователя заставляет модель обрабатывать сторонний контент - веб-страницы, электронные письма, документы, результаты инструментов - содержащий вредоносные инструкции. Формулировки не являются средством защиты.
Он не может задать параметры сэмплирования. Temperature и top-p задаются в вызове API, а не в prompt. Учтите, что у разных поставщиков они также несопоставимы: Anthropic документирует диапазон 0.0-1.0 и предупреждает, что «даже при temperature 0.0 результаты не будут полностью детерминированными», тогда как OpenAI документирует диапазон 0-2 и рекомендует «изменять этот параметр или top_p, но не оба».
Он не может сказать, хороший ли результат. Документация Anthropic по prompt-engineering предполагает, что у вас уже есть определение успеха и способ его проверить. Без этого более длинный и лучше структурированный prompt просто выдаёт более длинную и лучше структурированную догадку.