Добавление конкретных деталей
Числа, имена, форматы и примеры, задающие ориентиры для результатов искусственного интеллекта.
«Добавление конкретных деталей» — бесплатный урок AI Prompt Engineering на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения AI Prompt Engineering, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс AI Prompt Engineering содержит 4 уроков всего.
Конкретные детали — это якоря
Конкретные детали — это точные, измеримые и проверяемые фрагменты информации. Они привязывают вывод модели к вашей реальной ситуации, а не к обобщённой трактовке.
Без якорей модель создаёт ответ для воображаемого среднего пользователя. С якорями она создаёт ответ для вас.
Количество слов как конкретное ограничение
Количество слов — одна из самых простых и эффективных конкретных деталей, которые можно добавить. Сравните:
- Расплывчато: «Напишите короткое описание»
- Конкретно: «Напишите описание объёмом 75 слов»
Модель подсчитает токены и постарается достичь заданного значения. Если результат немного отклонится, вы сможете попросить точно пересчитать слова. Указание количества слов устраняет целые категории переписываний.
import anthropic
client = anthropic.Anthropic(api_key='sk-ant-your-key-here')
response = client.messages.create(
model='claude-opus-4-5',
max_tokens=200,
messages=[{
'role': 'user',
'content': (
'Write a product description for a noise-cancelling travel pillow in exactly 60 words. '
'After the description, output the word count in parentheses on a new line.'
)
}]
)
print(response.content[0].text)Целевая аудитория как конкретная деталь
Указание конкретной аудитории существенно меняет лексику, примеры и глубину вывода.
- Расплывчато: «Объясните нейронные сети»
- Конкретно: «Объясните нейронные сети менеджеру по маркетингу в компании из списка Форчун 500, у которого нет опыта программирования, но есть опыт работы со сводными таблицами Эксель»
Второй запрос создаёт у модели мысленный образ реального читателя и позволяет идеально настроить сложность.
import openai
client = openai.OpenAI(api_key='sk-your-key-here')
concrete_audience_prompt = (
'Explain what a REST API is.\n\n'
'Audience: a non-technical product manager who uses Salesforce daily '
'and understands the concept of a form submission on a website. '
'They will use this explanation to brief their engineering team tomorrow. '
'Use one real-world analogy. Max 100 words.'
)
response = client.chat.completions.create(
model='gpt-4o',
messages=[{'role': 'user', 'content': concrete_audience_prompt}]
)
print(response.choices[0].message.content)Именованные сущности вместо обобщений
Использование именованных сущностей — настоящих названий продуктов и компаний, имён людей, технологий и дат — выводит модель за пределы обобщений.
- Расплывчато: «Напишите конкурентный анализ»
- Конкретно: «Напишите конкурентный анализ Нотиона, Обсидиана и Роум Рисёрч для опытного пользователя, который управляет удалённой командой из 10 человек, ежедневно пишет и нуждается в автономном доступе»
Именованные сущности привязывают модель к реальным знаниям, полученным ею во время обучения.
import anthropic
client = anthropic.Anthropic(api_key='sk-ant-your-key-here')
response = client.messages.create(
model='claude-opus-4-5',
max_tokens=400,
messages=[{
'role': 'user',
'content': (
'Compare FastAPI vs Flask vs Django REST Framework '
'for building a production API that will serve a React frontend. '
'Context: 2-person startup team, Python 3.11, needs async support, '
'expects < 50 ms response time, and will deploy on AWS Lambda. '
'Format: 3-column markdown table with rows: setup complexity, '
'async support, performance, learning curve, community size.'
)
}]
)
print(response.content[0].text)Количественные ограничения
Числа не допускают неоднозначности. Если у вас есть числовое требование, включите его в запрос:
- Укажите ровно N элементов (а не «несколько» или «несколько разных»)
- Задайте максимальное или минимальное количество слов либо символов
- Укажите конкретные проценты или соотношения («70% практики, 30% теории»)
- Задайте временные ограничения («объясните это так, будто у меня есть 3 минуты на чтение»)
- Задайте целевые показатели производительности («предложите подходы с временной сложностью O(n)»)
import openai
client = openai.OpenAI(api_key='sk-your-key-here')
response = client.chat.completions.create(
model='gpt-4o',
messages=[{
'role': 'user',
'content': (
'Generate exactly 8 onboarding email subject lines for a B2B SaaS product. '
'Requirements:\n'
'- Exactly 8 lines, no more, no fewer\n'
'- Each subject line between 40 and 60 characters\n'
'- 4 must emphasize value, 4 must create urgency\n'
'- Label each line: [VALUE] or [URGENCY]\n'
'- No emojis\n'
'- No duplicate words across all 8 lines'
)
}]
)
print(response.choices[0].message.content)Сроки и временные рамки
Указание временного контекста меняет глубину и направленность вывода. Сообщите модели, когда будет использоваться этот материал и какие ограничения это создаёт:
- «Это письмо будет отправлено через 2 часа — сделайте его кратким»
- «Это материал для презентации правлению в понедельник — используйте лексику для руководителей»
- «Это объяснение должно уложиться в пятиминутное ежедневное совещание»
- «Напишите это для команды, у которой есть 10 минут на ознакомление перед звонком с клиентом»
import anthropic
client = anthropic.Anthropic(api_key='sk-ant-your-key-here')
response = client.messages.create(
model='claude-opus-4-5',
max_tokens=256,
messages=[{
'role': 'user',
'content': (
'Write a project status update for our AI chatbot project. '
'This will be read aloud at a 5-minute Monday morning stand-up. '
'The audience has zero technical background. '
'Talking time: max 2 minutes (approximately 300 words). '
'Cover: what we shipped last week, one current blocker, one upcoming milestone. '
'Tone: confident and factual. No jargon.'
)
}]
)
print(response.content[0].text)Конкретные примеры в запросе
Добавление конкретных примеров того, что Вы хотите получить или чего Вы не хотите, — один из самых эффективных приёмов. Примеры одновременно задают формат, голос и стиль.
Вы можете добавить:
- Пример идеального результата (один пример)
- Несколько примеров с метками
- Пример того, что раньше пошло не так (негативный пример)
import openai
client = openai.OpenAI(api_key='sk-your-key-here')
prompt = '''
Write 3 feature announcement tweets for a new developer tool.
Here is an example of the style I want:
"We just shipped inline type errors in the editor. No more tab-switching to find
what broke. Your flow stays unbroken. Try it now: [link]"
Characteristics of this style:
- Opens with what shipped, not with excitement words
- Describes the user benefit in the second sentence
- Ends with a CTA
- No hashtags. No emojis. Under 200 characters.
New feature: autocomplete that learns from your codebase.
'''
response = client.chat.completions.create(
model='gpt-4o',
messages=[{'role': 'user', 'content': prompt}]
)
print(response.choices[0].message.content)Предметная лексика
Использование предметных терминов показывает модели, какого уровня экспертизы ожидают от результата.
- «Объясните кэширование» → ответ типа generic
- «Объясните политику вытеснения Redis LRU для разработчика серверной части, который переходит с Memcached на Redis 7.x» → ответ экспертного уровня с привязкой к предметной области
Используйте в запросе лексику своей области, и модель будет отражать её в результате.
import anthropic
client = anthropic.Anthropic(api_key='sk-ant-your-key-here')
# Generic prompt vs domain-vocabulary prompt
generic = 'Explain caching strategies.'
domain_anchored = (
'Compare write-through, write-behind, and cache-aside patterns '
'for a microservices architecture using Redis 7.x as the cache layer and '
'PostgreSQL 15 as the source of truth. '
'Focus on consistency guarantees, latency tradeoffs, and failure modes. '
'Audience: senior backend engineers familiar with CAP theorem.'
)
response = client.messages.create(
model='claude-opus-4-5',
max_tokens=400,
messages=[{'role': 'user', 'content': domain_anchored}]
)
print(response.content[0].text)Ограничения на исключаемое содержание
Конкретные отрицательные ограничения (исключения) не позволяют модели двигаться по предсказуемым, generic-направлениям:
- «Не предлагайте решения, для которых требуется платный ключ API»
- «Не упоминайте конкурентов по названию»
- «Не используйте слова “рычаг” или “синергия”»
- «Не включайте теоретический материал — только практические сведения»
- «Исключите подходы, на реализацию которых требуется больше 5 минут»
Каждое правило исключения делает результат точнее, устраняя ещё один путь к generic-содержанию.
import openai
client = openai.OpenAI(api_key='sk-your-key-here')
response = client.chat.completions.create(
model='gpt-4o',
messages=[{
'role': 'user',
'content': (
'Suggest 5 ways to speed up a slow Python script. '
'EXCLUDE:\n'
'- Suggestions requiring third-party libraries (stdlib only)\n'
'- Suggestions about hardware upgrades\n'
'- Rewrites of the entire script\n'
'- Suggestions that take more than 30 minutes to implement\n'
'Each suggestion: one sentence describing what to do, one sentence on expected speedup.'
)
}]
)
print(response.choices[0].message.content)Собираем всё вместе
Пошагово составим полностью конкретный запрос. Начнём с: «Напишите описание вакансии».
- Добавьте должность: «Для старшего инженера по машинному обучению»
- Добавьте именованный объект: «в лондонском стартапе в сфере ИИ на стадии B»
- Добавьте объём: «350–400 слов»
- Добавьте аудиторию: «для кандидатов с опытом более 5 лет»
- Добавьте структуру: «Формат: вступление, обязанности (8 пунктов), требования (5 пунктов), желательные качества (3 пункта)»
- Добавьте исключение: «Без клише вроде “динамичный темп” или “увлечённость»
import anthropic
client = anthropic.Anthropic(api_key='sk-ant-your-key-here')
concrete_prompt = (
'Write a job description for a Senior ML Engineer position '
'at a Series B AI startup in London. '
'Target candidate: 5+ years ML experience, strong Python, familiar with LLMs. '
'Length: 350-400 words. '
'Structure:\n'
'1. 3-sentence company intro (no fluff — focus on product and mission)\n'
'2. Responsibilities: exactly 8 bullet points\n'
'3. Requirements: exactly 5 bullet points\n'
'4. Nice-to-haves: exactly 3 bullet points\n'
'EXCLUDE: phrases like "fast-paced", "passionate", "ninja", "rockstar", "self-starter".'
)
response = client.messages.create(
model='claude-opus-4-5',
max_tokens=600,
messages=[{'role': 'user', 'content': concrete_prompt}]
)
print(response.content[0].text)Привычка обогащать запросы
Выработайте привычку обогащать каждый запрос перед отправкой. Проведите быструю мысленную проверку:
- Могу ли я заменить какое-либо расплывчатое слово числом?
- Могу ли я назвать конкретный инструмент, технологию или человека?
- Могу ли я точнее описать аудиторию?
- Могу ли я добавить пример желаемого результата?
- Могу ли я добавить хотя бы одно ограничение «не включать»?
- Могу ли я точнее указать формат результата?
Даже два или три уточнения значительно повышают качество результата.
# Prompt enrichment in code form: before/after comparison
before = 'Give me ideas for my presentation.'
after = (
'Generate 6 opening hook ideas for a 15-minute conference talk '
'titled "Why Your AI Prompts Are Failing You" at PyCon 2025. '
'Audience: Python developers, mostly backend, some ML experience. '
'Each hook: 2 sentences max. '
'Mix: 2 provocative statistics, 2 counterintuitive questions, 2 short stories. '
'EXCLUDE: "Did you know..." openers and rhetorical questions about the future of AI.'
)
print('BEFORE:', before)
print()
print('AFTER:', after)Проверка знаний
Основатель стартапа отправляет такой запрос: «Помогите мне написать маркетинговый текст». Какой из переработанных запросов использует наиболее эффективные конкретные детали?
Добавление конкретных деталей — итоги
Конкретные детали превращают расплывчатые запросы в точные инструкции. Используйте следующие приёмы привязки:
- Количество слов: заменяйте «короткий/длинный» точными числами
- Именованные объекты: конкретные продукты, инструменты, компании, люди
- Аудитория: должность, уровень опыта, уже имеющиеся знания
- Количественные ограничения: ровно N элементов, N% каждого типа
- Предметная лексика: используйте собственные термины области, чтобы указать ожидаемую глубину
- Примеры: показывайте, как выглядит хороший результат
- Исключения: указывайте, чего модели следует избегать
Часто задаваемые вопросы
Урок «Добавление конкретных деталей» бесплатный?
Да — полный текст урока «Добавление конкретных деталей» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс AI Prompt Engineering, подпишись на CoddyKit PRO. Курс AI Prompt Engineering содержит 4 уроков всего.
Чему я научусь в уроке «Добавление конкретных деталей»?
Числа, имена, форматы и примеры, задающие ориентиры для результатов искусственного интеллекта. Ты практикуешь AI Prompt Engineering с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать AI Prompt Engineering?
Предыдущий опыт не требуется. AI Prompt Engineering на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.
Сколько времени занимает урок «Добавление конкретных деталей»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке AI Prompt Engineering?
Да. Каждый урок AI Prompt Engineering включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Почему важна конкретика
- Устранение неоднозначности в запросах
- Добавление конкретных деталей
- Сравнение расплывчатых и конкретных запросов