Проектирование промптов для продуктивных приложений с LLM
Проектирование системного промпта, примеры few-shot, форматирование вывода, логика повторных попыток, оптимизация затрат
«Проектирование промптов для продуктивных приложений с LLM» — бесплатный урок Learn AI with Python на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Learn AI with Python, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Learn AI with Python содержит 4 уроков всего.
Промпты в рабочей среде
В реальных приложениях промпты — это код: им нужны структура, тестирование и надёжность. Хорошее проектирование промптов уменьшает количество галлюцинаций, обеспечивает нужный формат вывода и помогает контролировать расходы. В этом уроке рассматриваются методы, важные для рабочей среды.
Проектирование системного промпта
Системный промпт задаёт роль модели, тон общения, ограничения и правила. Формулируйте его конкретно: укажите, чем является ассистент, что он должен и чего не должен делать, а также в каком формате отвечать. Чёткий системный промпт — Ваш самый эффективный инструмент управления моделью.
system = (
"You are a support agent for an e-commerce store. "
"Answer only questions about orders and shipping. "
"If asked anything else, politely decline. "
"Keep replies under 3 sentences."
)Примеры с несколькими образцами
Подход с несколькими примерами означает, что Вы показываете модели пары примеров «ввод/вывод», чтобы она усвоила закономерность. Разместите их в виде чередующихся сообщений пользователя и ассистента перед настоящим запросом.
messages = [
{"role": "system", "content": system},
{"role": "user", "content": "Classify: I love this!"},
{"role": "assistant", "content": "positive"},
{"role": "user", "content": "Classify: This broke instantly."},
{"role": "assistant", "content": "negative"},
{"role": "user", "content": "Classify: It is okay I guess."}
]Почему несколько примеров помогают
Примеры лучше проясняют Ваше намерение, чем одни инструкции. Они закрепляют точный стиль вывода (одно слово, JSON или метку) и значительно повышают стабильность результатов в задачах классификации, извлечения данных и форматирования.
Принудительный вывод JSON
Для ответов, пригодных для обработки программой, запросите режим JSON с помощью response_format. При использовании {"type": "json_object"} модель ограничивается выдачей корректного JSON, который затем можно безопасно разобрать.
response = client.chat.completions.create(
model="gpt-4o",
messages=messages,
response_format={"type": "json_object"}
)
import json
data = json.loads(response.choices[0].message.content)Подсчёт токенов с помощью tiktoken
Стоимость и ограничения контекста измеряются в токенах. Библиотека tiktoken подсчитывает токены локально, поэтому Вы можете составить бюджет до отправки запроса. Установите её с помощью pip install tiktoken.
import tiktoken
enc = tiktoken.encoding_for_model("gpt-4o")
tokens = enc.encode("Hello, how are you?")
print(len(tokens))Почему важно считать токены
У каждой модели есть контекстное окно (максимальное число токенов), а оплата взимается за каждый токен. Предварительный подсчёт позволяет сократить историю, отклонить слишком большие входные данные и спрогнозировать стоимость ещё до того, как запрос покинет Ваш сервер.
def cost_estimate(text, price_per_1k=0.005):
enc = tiktoken.encoding_for_model("gpt-4o")
n = len(enc.encode(text))
return n, n / 1000 * price_per_1kОбработка ограничений скорости
Рабочая нагрузка в реальной среде приводит к ограничениям скорости запросов (HTTP 429) и временным ошибкам. Вместо аварийного завершения повторяйте запрос с экспоненциальной задержкой. Библиотека tenacity позволяет сделать это с помощью декоратора в одну строку.
pip install tenacity
from tenacity import retry, wait_exponential, stop_after_attemptПовторные попытки с tenacity
Оформите вызов API декоратором @retry. Используйте wait_exponential, чтобы увеличивать задержку между попытками, и stop_after_attempt, чтобы ограничить их общее число. Это позволяет корректно переживать временные сбои.
@retry(wait=wait_exponential(min=1, max=30), stop=stop_after_attempt(5))
def ask(prompt):
return client.chat.completions.create(
model="gpt-4o",
messages=[{"role": "user", "content": prompt}]
)Определение схемы JSON для вывода
При принудительном использовании режима JSON всегда описывайте в промпте точную структуру, которую хотите получить, чтобы имена ключей были предсказуемыми. Явное описание схемы обычным текстом в сочетании с режимом JSON каждый раз даёт результаты, которые можно разобрать и проверить.
system = (
"Return ONLY JSON with this shape: "
"{\"sentiment\": \"positive|negative|neutral\", "
"\"confidence\": number between 0 and 1}"
)Объединение всех элементов
Конвейер промпта для рабочей среды: создайте строгий системный промпт, добавьте примеры с несколькими образцами, при необходимости принудительно включите вывод JSON, подсчитывайте токены для управления стоимостью и контекстом, а вызовы оберните в логику retry. Вместе эти приёмы делают функции LLM надёжными.
Быстрая проверка
Проверьте свои знания о создании промптов для рабочей среды.
Повторение: промптинг в рабочей среде
Вы научились составлять строгие системные промпты, направлять поведение с помощью примеров для обучения по нескольким образцам и гарантировать структурированные ответы через JSON-режим response_format. Вы подсчитывали токены с помощью tiktoken, чтобы управлять контекстом и затратами, а также повысили устойчивость с помощью повторных попыток библиотеки tenacity при ограничениях частоты запросов.
Изучай Python с ИИ-репетитором — бесплатно
Пиши и запускай код прямо в браузере, получай мгновенную помощь от ИИ-репетитора 24/7 и продолжи учиться на сайте или в приложении.
- Курсы
- 53
- Уроки
- 225
Часто задаваемые вопросы
Урок «Проектирование промптов для продуктивных приложений с LLM» бесплатный?
Да — полный текст урока «Проектирование промптов для продуктивных приложений с LLM» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Learn AI with Python, подпишись на CoddyKit PRO. Курс Learn AI with Python содержит 4 уроков всего.
Чему я научусь в уроке «Проектирование промптов для продуктивных приложений с LLM»?
Проектирование системного промпта, примеры few-shot, форматирование вывода, логика повторных попыток, оптимизация затрат Ты практикуешь Learn AI with Python с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Learn AI with Python?
Предыдущий опыт не требуется. Learn AI with Python на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.
Сколько времени занимает урок «Проектирование промптов для продуктивных приложений с LLM»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Learn AI with Python?
Да. Каждый урок Learn AI with Python включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- API OpenAI: chat.completions и потоковая передача
- API Anthropic Claude в Python
- Вызов функций и использование инструментов с LLM
- Проектирование промптов для продуктивных приложений с LLM