Генерация развёрнутого контента
Цели урока
После прохождения этого урока вы сможете:
- 1Научиться генерировать развёрнутый контент из кратких вводных
- 2Освоить технику персонализации
- 3Понять параметр температуры и его влияние на результат
Expanding: из точки в развёрнутый текст
Expanding — это генерация развёрнутого контента из краткой информации. Ответы на email, статьи из тезисов, документация из спецификаций. Это противоположность суммированию.
Автоматические ответы на email
Классический кейс из оригинального курса — генерация персонализированных ответов на отзывы клиентов.
review = """
Очень разочарован покупкой. Заказал кофемашину за 45000 рублей,
а она перестала работать через неделю. Техподдержка не отвечает уже 3 дня.
Если не решите проблему, буду требовать возврат через банк.
"""
# Извлекаем sentiment (из предыдущего урока)
sentiment = "негативный"
prompt = f"""
Ты — менеджер службы поддержки премиального бренда бытовой техники.
Напиши ответ на отзыв клиента.
КОНТЕКСТ:
- Тональность отзыва: {sentiment}
- Клиент ждёт ответа 3 дня (это критично!)
- Товар на гарантии
ПРАВИЛА ОТВЕТА:
1. Начни с извинения и эмпатии
2. Признай проблему конкретно (не общими словами)
3. Предложи решение с чётким дедлайном
4. Дай прямой контакт для связи
5. Заверши позитивно
СТИЛЬ:
- Профессиональный, но человечный
- Без шаблонных фраз типа "Ваше мнение важно для нас"
- Конкретика вместо обещаний
ОТЗЫВ: """{review}"""
"""Температура: контроль креативности
Температура (temperature) — ключевой параметр, влияющий на "креативность" модели. Это важнейший инсайт из оригинального курса.
| Температура | Поведение | Когда использовать |
|---|---|---|
| 0 | Детерминированный, предсказуемый | Анализ, извлечение данных, код |
| 0.3-0.5 | Немного вариативности | Деловые письма, документация |
| 0.7-0.9 | Креативный, разнообразный | Маркетинговые тексты, идеи |
| 1.0+ | Очень креативный, рискованный | Брейншторм, художественные тексты |
# API вызов с температурой (пример для OpenAI)
from openai import OpenAI
client = OpenAI()
# Для аналитического ответа — низкая температура
response_analytical = client.chat.completions.create(
model="gpt-4",
messages=[{"role": "user", "content": prompt}],
temperature=0 # Максимально предсказуемый
)
# Для креативного контента — высокая температура
response_creative = client.chat.completions.create(
model="gpt-4",
messages=[{"role": "user", "content": prompt}],
temperature=0.9 # Креативный
)Правило большого пальца: если есть "правильный ответ" — температура 0. Если нужна вариативность — 0.7-0.9.
Генерация из тезисов
Частая задача: у вас есть буллеты или тезисы, нужно развернуть в полноценный текст.
bullets = """
- AI-стартап из Москвы
- Привлекли $5M
- Продукт: автоматизация найма
- Клиенты: Сбербанк, Яндекс, МТС
- Планы: выход на рынок СНГ
"""
prompt = f"""
Напиши пресс-релиз на основе тезисов.
СТРУКТУРА:
1. Заголовок (до 80 символов, attention-grabbing)
2. Лид (1 абзац, кто-что-когда-где)
3. Детали раунда (1-2 абзаца)
4. О продукте (1 абзац)
5. Цитата основателя (выдумай правдоподобную)
6. О компании (бойлерплейт, 2-3 предложения)
СТИЛЬ:
- Профессиональный, но живой
- Цифры и факты вместо прилагательных
- Без воды и очевидных утверждений
ТЕЗИСЫ:
{bullets}
"""Практический кейс: персонализированные рассылки
Представьте: у вас база из 1000 клиентов с разными характеристиками. Нужны персонализированные письма.
def generate_personalized_email(customer: dict) -> str:
prompt = f"""
Напиши персонализированное email-письмо для клиента.
ДАННЫЕ КЛИЕНТА:
- Имя: {customer['name']}
- Сегмент: {customer['segment']} # premium/standard/new
- Последняя покупка: {customer['last_purchase']}
- Дней с последнего визита: {customer['days_inactive']}
- Любимая категория: {customer['favorite_category']}
- LTV: {customer['ltv']} ₽
ЦЕЛЬ ПИСЬМА:
Вернуть клиента с персональным предложением
ПРАВИЛА:
- Для premium: эксклюзивное предложение, VIP-тон
- Для standard: скидка 15%, акцент на выгоде
- Для new: приветственный бонус, помощь с выбором
- Если неактивен > 90 дней: добавь "мы соскучились"
- Если неактивен < 30 дней: акцент на новинках
- Упомяни любимую категорию в предложении
- Длина: 100-150 слов
- Тема письма: до 50 символов, интригующая
ФОРМАТ:
Subject: [тема]
[тело письма]
"""
return call_llm(prompt, temperature=0.7)
# Пример использования
customer = {
"name": "Анна",
"segment": "premium",
"last_purchase": "кофемашина DeLonghi",
"days_inactive": 45,
"favorite_category": "техника для кухни",
"ltv": 250000
}
email = generate_personalized_email(customer)При массовой генерации контента всегда добавляйте случайный seed или варьируйте промпт, чтобы письма не были идентичными.
Вопросы для размышления
- •Какой контент вы чаще всего генерируете с нуля?
- •Как персонализация могла бы улучшить ваши коммуникации с клиентами?
