AI Prompt Engineering · Урок

Форматирование Markdown в запросах

Заголовки, полужирный текст и блоки кода — как задавать расширенное форматирование

Урок 3 из 413 шагов

«Форматирование Markdown в запросах» — бесплатный урок AI Prompt Engineering на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения AI Prompt Engineering, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс AI Prompt Engineering содержит 4 уроков всего.

Разметка в выводе ИИ

Разметка — это лёгкий синтаксис форматирования текста, который модели ИИ понимают без дополнительного объяснения. Если Вы просите вывести текст с форматированием в разметке, модель создаёт текст, который отображается как форматированный в совместимых средах.

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

Запрос заголовков

Заголовки в разметке используют символы решётки: # для H1, ## для H2 и ### для H3.

Запрашивайте их явно: «Структурируйте текст с заголовками разделов H2», «Используйте ## для основных разделов и ### для подразделов» или «Включите в начале один заголовок H1 с символом #».

Заголовки создают удобную для навигации структуру в Notion, GitHub, Obsidian и большинстве инструментов документирования.

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': (
            'Write a technical guide outline for "Getting Started with FastAPI". '
            'Structure: one # H1 title at the top, then 4 ## H2 section headers, '
            'each with 2 ### H3 subsection headers beneath it. '
            'Add one sentence of placeholder content under each H3.'
        )
    }]
)
print(response.content[0].text)

Выделение жирным и курсивом

Жирное и курсивное выделение в разметке:

  • **bold text** → жирный текст
  • *italic text* → текст курсивом
  • ***bold and italic*** → жирный курсивный текст

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

import openai

client = openai.OpenAI(api_key='sk-your-key-here')

response = client.chat.completions.create(
    model='gpt-4o',
    messages=[{
        'role': 'user',
        'content': (
            'Explain the concept of idempotency in REST APIs. '
            'Rules:\n'
            '- Bold every technical term on its first occurrence only\n'
            '- Italicize all HTTP method names (GET, POST, PUT, DELETE, PATCH)\n'
            '- 150 words max, flowing prose — no bullets or headers'
        )
    }]
)
print(response.choices[0].message.content)

Блоки кода

Блоки кода в разметке используют тройные обратные кавычки с необязательным указанием языка для подсветки синтаксиса:

```python
print('hello')
```

Запрос: «Включите весь код в блоки кода Python», «Оформите каждую команду в блоке кода bash» или «Покажите пример JSON в блоке кода json».

Указание языка включает подсветку синтаксиса в GitHub, VS Code и на сайтах с документацией.

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': (
            'Show me how to connect to PostgreSQL from Python using psycopg3.\n'
            'Structure:\n'
            '1. Install command in a bash code block.\n'
            '2. Connection example in a python code block with type hints.\n'
            '3. A sample SELECT query in a python code block.\n'
            'Keep each code block under 10 lines. Brief one-sentence intro before each block.'
        )
    }]
)
print(response.content[0].text)

Встроенный код

Встроенный код обозначается одиночными обратными кавычками: `variable_name`. Он отображается моноширинным текстом внутри предложения — это идеально подходит для:

  • Имен переменных: user_id
  • Имен функций: calculate_tax()
  • Имен команд: git commit
  • Путей к файлам: /etc/nginx/nginx.conf
  • Конечных точек HTTP: /api/v1/users

Запрос: «Используйте форматирование встроенного кода для всех имён переменных и функций».

import openai

client = openai.OpenAI(api_key='sk-your-key-here')

response = client.chat.completions.create(
    model='gpt-4o',
    messages=[{
        'role': 'user',
        'content': (
            'Explain the difference between Python list .append() and .extend(). '
            'Rules:\n'
            '- Use inline code for all method names, parameter names, and variable examples\n'
            '- Use a python code block for each demonstration example\n'
            '- Prose sections: max 2 sentences\n'
            '- Do NOT use headers or bullets — flowing prose with code blocks only'
        )
    }]
)
print(response.choices[0].message.content)

Блоки цитат

Блоки цитат используют > в начале строки. В разметке:

> This is a blockquote.

Варианты использования: выделенные блоки, важные примечания, примерные диалоги, цитируемые исходные материалы, предупреждения.

Запрос: «Поместите самое важное предупреждение в блок цитаты» или «Используйте блок цитаты для описания сценария-примера».

import anthropic

client = anthropic.Anthropic(api_key='sk-ant-your-key-here')

response = client.messages.create(
    model='claude-opus-4-5',
    max_tokens=300,
    messages=[{
        'role': 'user',
        'content': (
            'Write a security guide section about SQL injection prevention. '
            'Structure:\n'
            '- 2-sentence explanation of the risk\n'
            '- One blockquote containing a real example of vulnerable code (as a note/warning)\n'
            '- 3 bullet points on how to prevent it\n'
            '- One blockquote containing the safe alternative code pattern'
        )
    }]
)
print(response.content[0].text)

Вложенные списки в разметке

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

- Main item
  - Sub-item
  - Sub-item
    - Sub-sub-item

Запрос: «Создайте вложенный список из двух уровней с X основными элементами и Y вложенными элементами для каждого» или «Используйте вложенные маркеры, чтобы показать связь между категориями и примерами».

import openai

client = openai.OpenAI(api_key='sk-your-key-here')

response = client.chat.completions.create(
    model='gpt-4o',
    messages=[{
        'role': 'user',
        'content': (
            'Create a 2-level nested markdown list of AWS services for a web startup. '
            'Level 1: 4 service categories (Compute, Storage, Database, Networking). '
            'Level 2: 3 specific services under each category with a 5-word description. '
            'Format: markdown nested bullets with proper indentation.'
        )
    }]
)
print(response.choices[0].message.content)

Ссылки и изображения

Ссылки в разметке: [link text](URL)
Изображения в разметке: ![alt text](image-URL)

Модели ИИ могут создавать ссылки-заполнители с понятным текстом: «Включите ссылки в разметке на релевантную документацию — используйте адреса-заполнители, например [официальная документация](https://example.com)».

Для документации с заполнителями диаграмм: «Добавьте заполнитель изображения с понятным альтернативным текстом».

import anthropic

client = anthropic.Anthropic(api_key='sk-ant-your-key-here')

response = client.messages.create(
    model='claude-opus-4-5',
    max_tokens=300,
    messages=[{
        'role': 'user',
        'content': (
            'Write a README section for a Python open-source project called "sqlens". '
            'Include:\n'
            '- An image placeholder for a demo screenshot: ![Demo screenshot](docs/demo.png)\n'
            '- At least 2 markdown links: one to the PyPI page, one to the documentation\n'
            '- A badge placeholder using an image link\n'
            '- 3 bullet points of key features\n'
            'Use realistic placeholder URLs (pypi.org/project/sqlens etc).'
        )
    }]
)
print(response.content[0].text)

Горизонтальные линии и разделители

Горизонтальные линии создаются с помощью трёх дефисов (---), звёздочек (***) или символов подчёркивания (___).

Используйте их, чтобы визуально разделять основные разделы документа. Запрос: «Добавьте горизонтальную линию --- между каждым основным разделом» или «Разделите три раздела с помощью разделителей разметки».

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

import openai

client = openai.OpenAI(api_key='sk-your-key-here')

response = client.chat.completions.create(
    model='gpt-4o',
    messages=[{
        'role': 'user',
        'content': (
            'Write a mini technical specification document for a user authentication API. '
            'Include exactly 3 sections: Overview, Endpoints, Security Requirements. '
            'Separate each section with a --- horizontal rule. '
            'Each section: ## H2 header + 3-5 bullet points of content. '
            'Under Endpoints: use inline code for all route paths and HTTP methods.'
        )
    }]
)
print(response.choices[0].message.content)

Когда разметка не отображается

Разметка полезна только в том случае, если среда вывода поддерживает её отображение. Разметка NOT отображается в следующих случаях:

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

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

import anthropic

client = anthropic.Anthropic(api_key='sk-ant-your-key-here')

# Check if environment renders markdown before requesting it
rendering_environments = {
    'GitHub':     True,
    'Notion':     True,
    'Obsidian':   True,
    'VS Code':    True,
    'Gmail body': False,  # some markdown, not all
    'Outlook':    False,
    'SMS':        False,
    'Plain text file': False,
}

print('Markdown rendering support:')
for env, renders in rendering_environments.items():
    status = 'RENDERS' if renders else 'DOES NOT RENDER'
    print(f'  {env:<20} {status}')

# Decision: use markdown only when you know it renders
use_markdown = True  # set based on your environment

format_instruction = (
    'Use markdown headers, bold, and code blocks.' if use_markdown
    else 'Plain text only — no markdown symbols.'
)
print('\nFormat instruction:', format_instruction)

Сочетание элементов разметки

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

  • Заголовок H1 с # и разделы H2 с ##
  • Ключевые термины, выделенные с помощью **bold** при первом упоминании
  • Блоки кода с указанием языка для всего кода
  • Встроенный код для всех имён переменных и функций
  • Маркированные списки для требований и нумерованные списки для шагов
  • Блоки цитат для предупреждений и важных примечаний
  • Разделители --- между основными разделами
import openai

client = openai.OpenAI(api_key='sk-your-key-here')

response = client.chat.completions.create(
    model='gpt-4o',
    messages=[{
        'role': 'user',
        'content': (
            'Write a mini developer guide for the requests Python library. '
            'Use all of the following markdown elements:\n'
            '- # H1 title at the top\n'
            '- ## H2 sections: Installation, Basic Usage, Error Handling\n'
            '- Bold all key terms on first use\n'
            '- Code blocks with python/bash language hints\n'
            '- Inline code for all function names\n'
            '- One blockquote warning about timeout best practice\n'
            '- --- between each section\n'
            'Max 300 words total.'
        )
    }]
)
print(response.choices[0].message.content)

Проверка знаний

Разработчик создаёт помощника на основе ИИ, который выводит содержимое в терминал с помощью print() — без веб-интерфейса и средства отображения разметки. Разработчик просит ИИ объяснить функцию и получает вывод, полный звёздочек и символов решётки. Что следует добавить в системное сообщение, чтобы это исправить?

Разметка в запросах — итоги

Форматирование с помощью разметки придаёт документам, создаваемым ИИ, профессиональную структуру. Основные элементы, которые следует запрашивать:

  • Заголовки: # H1, ## H2, ### H3 — для удобной навигации по структуре документа
  • Выделение: **жирный шрифт** для ключевых терминов, *курсив* для особых названий
  • Блоки кода: тройные обратные кавычки с указанием языка для подсветки синтаксиса
  • Встроенный код: одиночные обратные кавычки для имён переменных, команд и путей
  • Блоки цитат: префикс > для предупреждений, выделенных блоков и цитируемого содержимого
  • Вложенные списки: списки с отступами для иерархической информации

Используйте разметку только в том случае, если известно, что среда вывода поддерживает её отображение.

Можно начать бесплатно

Изучай AI Prompt Engineering с ИИ-репетитором — бесплатно

Пиши и запускай код прямо в браузере, получай мгновенную помощь от ИИ-репетитора 24/7 и продолжи учиться на сайте или в приложении.

Курсы
53
Уроки
199

Часто задаваемые вопросы

Урок «Форматирование Markdown в запросах» бесплатный?

Да — полный текст урока «Форматирование Markdown в запросах» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс AI Prompt Engineering, подпишись на CoddyKit PRO. Курс AI Prompt Engineering содержит 4 уроков всего.

Чему я научусь в уроке «Форматирование Markdown в запросах»?

Заголовки, полужирный текст и блоки кода — как задавать расширенное форматирование Ты практикуешь AI Prompt Engineering с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать AI Prompt Engineering?

Предыдущий опыт не требуется. AI Prompt Engineering на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.

Сколько времени занимает урок «Форматирование Markdown в запросах»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке AI Prompt Engineering?

Да. Каждый урок AI Prompt Engineering включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Запросы списков и маркированных пунктов
  2. Запрос таблиц и структурированных данных
  3. Форматирование Markdown в запросах
  4. Обычный текст и форматированный вывод
← Назад к AI Prompt Engineering