Диагностика и исправление неудачных запросов
Систематический список проверок для улучшения плохо работающих запросов
«Диагностика и исправление неудачных запросов» — бесплатный урок AI Prompt Engineering на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения AI Prompt Engineering, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс AI Prompt Engineering содержит 4 уроков всего.
Отладочное мышление
Когда промпт выдаёт плохой результат, большинство людей сначала винит модель. Но в большинстве случаев проблема заключается в промпте, а модель ведёт себя именно так, как должна, учитывая полученные инструкции.
Рассматривать сбои промпта как задачи по отладке продуктивнее. Как и при отладке кода, Вы систематически определяете первопричину, предполагаете исправление, проверяете его и подтверждаете результат. Такой подход приводит к более быстрому улучшению, чем раздражённые попытки методом проб и ошибок.
Контрольный список отладки промпта
Если промпт не срабатывает, систематически пройдите по этому контрольному списку из пяти аспектов:
- Конкретность — промпт слишком расплывчатый? Нужно ли точнее определить задачу?
- Контекст — отсутствует ли нужная модели исходная информация?
- Формат — указаны ли желаемый формат и объём вывода?
- Ограничения — чётко ли сформулированы ограничения? Не противоречат ли они друг другу?
- Примеры — устранит ли неоднозначность пример хорошего вывода?
Каждому аспекту соответствует определённый тип исправления. Определите, какой аспект дал сбой, и примените соответствующее исправление.
Аспект 1: проверка конкретности
Сбои конкретности приводят к следующим результатам: выбрана неправильная тема или точка зрения, не учтён уровень аудитории, пропущены ключевые аспекты задачи.
Диагностические вопросы:
- Может ли незнакомый с задачей, но умный человек понять этот промпт иначе, чем задумали Вы?
- Есть ли в нём расплывчатые слова («хороший», «лучший», «подходящий», «профессиональный»), которые нужно заменить?
- Указан ли тип задачи (статья? электронное письмо? краткое изложение? анализ)?
- Достаточно ли точно определена аудитория?
Исправление: замените расплывчатые слова конкретными. Назовите тип задачи. Укажите исходные знания аудитории. Добавьте однопредложный пример желаемого вывода.
Аспект 2: проверка контекста
Сбои контекста приводят к следующим результатам: общие советы, не учитывающие Вашу конкретную ситуацию; ошибочные предположения о Вашем технологическом стеке, компании или аудитории; ответы, которые подошли бы в другом контексте, но не в Вашем.
Диагностические вопросы:
- Что модели нужно знать о моей конкретной ситуации, но она не может узнать из общих данных обучения?
- Предоставил ли я нужный код, документ или данные, к которым относится задача?
- Описал ли я ограничения своей среды?
Исправление: добавьте перед инструкцией к задаче раздел «Исходная информация». Вставьте нужный код или содержимое непосредственно в промпт.
Аспект 3: проверка формата
Сбои формата приводят к следующему: содержание правильное, но структура неправильная — сплошной текст вместо маркированного списка, эссе вместо пошагового руководства, отсутствие заголовков там, где нужна навигация.
Диагностические вопросы:
- Указал ли я формат вывода (маркированный список, нумерованный список, сплошной текст, таблица, блок кода)?
- Указал ли я объём?
- Указал ли я обязательные разделы или структуру?
Исправление: добавьте явные инструкции по формату. Используйте шаблон: «Формат: [структура]. Объём: [целевой объём]. Разделы: [список].» Для сложных форматов предоставьте шаблон с текстом-заполнителем, который должна подставить модель.
Аспект 4: проверка ограничений
Сбои ограничений приводят к следующему: в содержании оказывается то, что Вы хотели исключить, или вывод выглядит механическим из-за противоречащих друг другу ограничений.
Диагностические вопросы:
- Чётко ли сформулированы мои ограничения или они только подразумеваются?
- Не противоречат ли какие-либо ограничения друг другу?
- Не противоречат ли мои ограничения области содержания или объёму?
- Есть ли инструкция, определяющая приоритет ограничений при их возможном конфликте?
Исправление: сформулируйте неявные ограничения явно. Добавьте инструкцию о приоритетах. Разрешите конфликты, выбрав ограничение с более высоким приоритетом. Проверьте совместимость области содержания и объёма.
Аспект 5: проверка примеров
Если первые четыре аспекта выглядят нормально, но вывод всё ещё не соответствует ожиданиям, часто не хватает примеров. Они передают то, что невозможно выразить словами.
Диагностические вопросы:
- Поможет ли пример хорошего вывода прояснить ожидаемые стиль, тон или формат?
- Поможет ли отрицательный пример (того, что NOT следует создавать)?
- Есть ли уже готовые выводы для этого типа задачи, которые можно использовать как образец?
Исправление: добавьте в промпт один или два примера идеального вывода. Используйте шаблон: «Вот пример того, что мне нужно: [пример]. Теперь сделайте то же самое для [ваша фактическая задача].»
Рабочий процесс отладки промпта
Ниже приведён полный диагностический рабочий процесс, который можно применять к любому неработающему промпту:
def diagnose_prompt(original_prompt, failed_output, problem_description):
'''
Use a second LLM call to diagnose why a prompt produced a bad output.
Returns a diagnosis and an improved prompt.
'''
import openai
client = openai.OpenAI(api_key='sk-...')
diagnosis_prompt = f'''You are a prompt engineering expert.
A user ran this prompt:
---PROMPT---
{original_prompt}
---END PROMPT---
It produced this output (which was unsatisfactory):
---OUTPUT---
{failed_output[:500]}...
---END OUTPUT---
The problem the user identified: {problem_description}
Diagnose the prompt failure using this framework:
1. Specificity: Is anything too vague?
2. Context: What background information is missing?
3. Format: Is the desired format/length unclear?
4. Constraints: Are there missing or conflicting constraints?
5. Examples: Would an example help?
Then write an improved version of the prompt that addresses the root cause.
Format: Diagnosis: [analysis] || Improved prompt: [new prompt]'''
response = client.chat.completions.create(
model='gpt-4o-mini',
messages=[{'role': 'user', 'content': diagnosis_prompt}]
)
return response.choices[0].message.contentПервопричина и симптом
Распространённая ошибка при отладке — устранять симптом, а не первопричину.
Симптом: вывод слишком общий.
Исправление симптома: добавить в промпт фразу «будьте конкретнее».
Первопричина: аудитория не была определена, поэтому модель выбрала аудиторию по умолчанию — широкую и неопределённую.
Исправление первопричины: добавить точное описание аудитории.
Устранение симптомов даёт незначительное улучшение. Устранение первопричин даёт надёжное улучшение. Прежде чем писать исправление, задайте вопрос «почему возникает этот симптом?» и разберитесь на уровень глубже.
Ведение журнала сбоев промптов
Для регулярно повторяющихся типов задач ведение журнала сбоев промптов со временем ускоряет улучшение. В каждой записи фиксируются:
- исходный промпт;
- плохой вывод (или описание ошибки);
- диагностированная первопричина (конкретность / контекст / формат / ограничения / примеры);
- применённое исправление;
- результат.
После 10–20 записей начинают проявляться закономерности. Вы можете обнаружить, что одна и та же первопричина (например, отсутствие контекста об аудитории) объясняет 60% сбоев в определённой категории. Исправьте её в шаблоне — и эта закономерность исчезнет.
Улучшенный шаблон промпта
Большинство хорошо структурированных промптов построено по единому шаблону, который заранее учитывает все пять аспектов отладки:
ROBUST_PROMPT_TEMPLATE = '''
## Role
[Who the model should act as — establishes expertise level and perspective]
## Context
[Background the model needs: company, audience, product, prior decisions, constraints]
## Task
[Specific, precise description of what to produce]
## Format
[Output structure: bullet points / prose / numbered list / table]
[Length: word count or sentence count]
[Required sections: list them if the output needs specific sections]
## Constraints
[What to include: required elements]
[What to exclude: off-limits content or approaches]
[Priority: if constraints conflict, X takes priority over Y]
## Example
[One example of good output for this task type — optional but powerful]
'''
print(ROBUST_PROMPT_TEMPLATE)Проверка знаний: отладка промпта
Промпт создаёт хорошо написанный вывод, но вместо конкретной ситуации, описанной в задаче, сосредотачивается на общих рекомендациях по лучшим практикам в этой области. Формат и объём правильные. Ограничения не нарушены. Какой аспект отладки является первопричиной?
Повторение: диагностика и исправление плохих промптов
Отладка промпта — это систематический процесс, а не метод проб и ошибок. Контрольный список из пяти аспектов — конкретность, контекст, формат, ограничения и примеры — сопоставляет каждому распространённому типу сбоя определённое исправление.
Надёжный шаблон промпта заранее учитывает все пять аспектов и предотвращает большинство сбоев ещё до их возникновения. Рабочий процесс отладки (определить симптом → найти первопричину → применить исправление → проверить результат) обеспечивает надёжное улучшение. Журнал сбоев промптов ускоряет обучение от сеанса к сеансу.
С помощью этих инструментов Вы сможете методично и последовательно диагностировать и исправлять любые сбои промптов.
Часто задаваемые вопросы
Урок «Диагностика и исправление неудачных запросов» бесплатный?
Да — полный текст урока «Диагностика и исправление неудачных запросов» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс AI Prompt Engineering, подпишись на CoddyKit PRO. Курс AI Prompt Engineering содержит 4 уроков всего.
Чему я научусь в уроке «Диагностика и исправление неудачных запросов»?
Систематический список проверок для улучшения плохо работающих запросов Ты практикуешь AI Prompt Engineering с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать AI Prompt Engineering?
Предыдущий опыт не требуется. AI Prompt Engineering на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.
Сколько времени занимает урок «Диагностика и исправление неудачных запросов»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке AI Prompt Engineering?
Да. Каждый урок AI Prompt Engineering включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Слишком расплывчатые инструкции
- Противоречивые требования
- Ошибки из-за отсутствующего контекста
- Диагностика и исправление неудачных запросов