0Pricing
AI Prompt Engineering · Урок

Цепочки последовательных преобразований

Цепочки «Черновик → проверка → доработка» и другие варианты поэтапного улучшения

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

Цепочки преобразований

Цепочка преобразований постепенно переводит содержимое из одной формы в другую через последовательность специализированных шагов. Каждый шаг преобразует результат предыдущего, постепенно уточняя или обогащая содержимое.

Наиболее полезны следующие три схемы цепочек преобразований:

  • Черновик → Проверка → Доработка: создание и улучшение содержимого
  • Генерация идей → Фильтрация → Развитие: создание и развитие идей
  • Извлечение → Классификация → Направление: обработка данных и принятие решений

Черновик → Проверка → Доработка

Самая распространённая цепочка создания содержимого. У каждого шага своя роль:

  • Черновик: быстро создаёт исходное содержимое — скорость важнее совершенства
  • Проверка: оценивает черновик по конкретным критериям — точности, тону и полноте
  • Доработка: применяет результаты проверки и формирует итоговый результат

Разделение этих действий на отдельные шаги даёт лучшие результаты, чем просьба сразу создать и доработать текст.

Черновик → Проверка → Доработка: реализация на Python

Полная реализация цепочки «Черновик → Проверка → Доработка»:

import anthropic

client = anthropic.Anthropic(api_key='YOUR_API_KEY')

def call(prompt):
    r = client.messages.create(
        model='claude-opus-4-5', max_tokens=800,
        messages=[{'role': 'user', 'content': prompt}]
    )
    return r.content[0].text

def draft_review_polish(topic, audience, tone):
    # Step 1: Draft
    draft = call(f'Write a 200-word article about: {topic}. Audience: {audience}.')

    # Step 2: Review — produces critique, not final text
    review = call(f'Review this article for tone ({tone}), accuracy, and clarity.\nList specific improvements needed.\n\nArticle:\n{draft}')

    # Step 3: Polish — applies review findings
    final = call(f'Rewrite this article applying all the review feedback.\n\nOriginal:\n{draft}\n\nReview feedback:\n{review}')

    return {'draft': draft, 'review': review, 'final': final}

result = draft_review_polish('prompt engineering', 'software engineers', 'technical but approachable')
print(result['final'][:300])

Генерация идей → Фильтрация → Развитие

Цепочка развития идей: сначала генерируйте широко, затем разумно сужайте выбор и после этого подробно развивайте отобранное.

  • Генерация идей: создавайте множество идей без оценки — количество важнее качества
  • Фильтрация: применяйте критерии отбора, чтобы определить лучшие идеи
  • Развитие: превращайте отобранные идеи в подробные предложения

Эта цепочка помогает избежать эффекта привязки: если начать с нескольких идей, легко остановиться только на них.

Генерация идей → Фильтрация → Развитие: реализация на Python

Полная реализация цепочки «Генерация идей → Фильтрация → Развитие» с передачей данных в формате JSON:

import json

def brainstorm_filter_expand(challenge, criteria, n_final=3):
    # Step 1: Brainstorm — generate many ideas
    raw_ideas = call(
        f'Generate 10 creative ideas for this challenge: {challenge}\n'
        'Return JSON: {"ideas": ["string"]}'
    )
    ideas = json.loads(raw_ideas)['ideas']

    # Step 2: Filter — apply criteria
    ideas_formatted = '\n'.join(f'{i+1}. {idea}' for i, idea in enumerate(ideas))
    filtered_raw = call(
        f'Select the {n_final} best ideas based on these criteria: {criteria}\n'
        f'Ideas:\n{ideas_formatted}\n'
        f'Return JSON: {{"selected": ["string"]}}'
    )
    selected = json.loads(filtered_raw)['selected']

    # Step 3: Expand — develop each selected idea
    expansions = {}
    for idea in selected:
        expansions[idea] = call(f'Write a 100-word expansion of this idea, including implementation steps: {idea}')

    return expansions

result = brainstorm_filter_expand('reduce app churn', 'feasible in 30 days, measurable impact', n_final=2)
print(list(result.keys()))

Извлечение → Классификация → Направление

Цепочка обработки данных: извлечь структурированные данные, классифицировать их, а затем направить соответствующему обработчику.

  • Извлечение: извлекайте структурированную информацию из неструктурированного текста
  • Классификация: присваивайте категории, метки или приоритеты
  • Направление: выполняйте разные действия в зависимости от классификации

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

Извлечение → Классификация → Направление: реализация на Python

Полная реализация цепочки «Извлечение → Классификация → Направление»:

import json

def extract_classify_route(ticket_text):
    # Step 1: Extract structured data
    extracted = json.loads(call(
        f'Extract from this support ticket: {{"issue_summary": str, "product_area": str, "user_emotion": str}}\n\n{ticket_text}'
    ))

    # Step 2: Classify priority and department
    classified = json.loads(call(
        f'Classify this ticket.\nIssue: {extracted["issue_summary"]}\nEmotion: {extracted["user_emotion"]}\n'
        'Return JSON: {"priority": "urgent|high|medium|low", "department": "billing|technical|general"}'
    ))

    # Step 3: Route — generate department-specific response
    dept = classified['department']
    priority = classified['priority']

    route_prompts = {
        'billing': f'You are a billing specialist. Priority: {priority}. Respond to: {extracted["issue_summary"]}',
        'technical': f'You are a senior engineer. Priority: {priority}. Resolve: {extracted["issue_summary"]}',
        'general': f'You are customer support. Priority: {priority}. Help with: {extracted["issue_summary"]}'
    }

    response = call(route_prompts[dept])
    return {'extracted': extracted, 'classified': classified, 'response': response}

result = extract_classify_route('My payment was charged twice and I am furious!')
print(result['classified'])

Выбор подходящей схемы цепочки

Подберите схему цепочки преобразований под свою задачу:

  • Черновик → Проверка → Доработка: любое создание содержимого — электронные письма, статьи, документация, код
  • Генерация идей → Фильтрация → Развитие: стратегия, разработка идей, планирование продукта, календари содержимого
  • Извлечение → Классификация → Направление: обращения в службу поддержки, электронные письма, модерация содержимого, обработка данных

Эти схемы также можно комбинировать, например: извлечение → классификация → генерация решений → фильтрация → создание ответа.

Комбинирование схем

В реальных конвейерах часто объединяют несколько схем в более длинные цепочки:

def full_content_pipeline(raw_research):
    # Pattern 1: Extract → Classify key insights
    insights = json.loads(call(
        f'Extract top 5 insights. Return JSON: {{"insights": [str]}}\n\n{raw_research}'
    ))

    # Pattern 2: Brainstorm → Filter article angles
    angles_raw = json.loads(call(
        f'Brainstorm 8 article angles based on: {insights["insights"]}\nReturn JSON: {{"angles": [str]}}'
    ))
    best_angle = json.loads(call(
        f'Select the most compelling angle for a developer audience.\nReturn JSON: {{"angle": str}}\n\nAngles: {angles_raw["angles"]}'
    ))

    # Pattern 3: Draft → Review → Polish
    draft = call(f'Write a 300-word technical article on: {best_angle["angle"]}')
    review = call(f'Review for technical accuracy and developer relevance:\n{draft}')
    final = call(f'Polish the article applying this feedback:\n\nDraft:\n{draft}\n\nFeedback:\n{review}')

    return final

print('Combined pipeline defined.')

Журналирование промежуточных результатов

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

import logging

logging.basicConfig(level=logging.INFO)
logger = logging.getLogger('chain')

def logged_call(step_name, prompt, **kwargs):
    logger.info(f'[{step_name}] INPUT: {prompt[:100]}...')
    result = call(prompt)
    logger.info(f'[{step_name}] OUTPUT: {result[:100]}...')
    return result

def draft_review_polish_logged(topic):
    draft = logged_call('DRAFT', f'Write 200 words about: {topic}')
    review = logged_call('REVIEW', f'Review for clarity:\n{draft}')
    final = logged_call('POLISH', f'Rewrite applying feedback.\nDraft:\n{draft}\nFeedback:\n{review}')
    return final

print('Logging integrated into chain.')

Измерение качества цепочки

Измеряйте улучшение, которое даёт каждый шаг, чтобы убедиться, что цепочка приносит пользу:

def measure_chain_improvement(topic):
    # Baseline: single prompt
    baseline = call(f'Write and polish a 200-word article about {topic} in one step.')

    # Chain: Draft -> Review -> Polish
    draft = call(f'Write a 200-word draft about {topic}.')
    review = call(f'List 3 specific improvements needed:\n{draft}')
    chained = call(f'Rewrite applying these improvements:\nDraft:\n{draft}\nImprovements:\n{review}')

    # Have the model compare quality
    comparison = call(
        f'Which version is higher quality? Rate each 1-10 for clarity and depth.\n'
        f'Version A (single prompt):\n{baseline}\n\nVersion B (chain):\n{chained}\n'
        'Return JSON: {"version_a_score": int, "version_b_score": int, "winner": "A|B", "reason": str}'
    )
    return comparison

print('Quality measurement pipeline defined.')

Быстрая проверка

Какая схема цепочки преобразований лучше всего подходит для обработки поступающих обращений в службу поддержки и их направления нужной команде?

Цепочки преобразований — основные выводы

Последовательные цепочки преобразований постепенно улучшают содержимое с помощью специализированных шагов:

  • Черновик → Проверка → Доработка: лучше всего подходит для создания содержимого — создаёт, оценивает, а затем улучшает результат
  • Генерация идей → Фильтрация → Развитие: лучше всего подходит для разработки идей — генерирует широко, разумно отбирает и подробно развивает
  • Извлечение → Классификация → Направление: лучше всего подходит для обработки данных — извлекает структуру, присваивает метки и направляет данные обработчикам
  • Схемы можно объединять в более длинные конвейеры для сложных задач
  • Записывайте промежуточные результаты на каждом шаге для эффективной отладки
  • Измеряйте улучшение, которое даёт каждый шаг, чтобы подтвердить пользу цепочки

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

Урок «Цепочки последовательных преобразований» бесплатный?

Да — полный текст урока «Цепочки последовательных преобразований» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 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 — локальная установка не требуется.

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

  1. Что такое цепочка запросов
  2. Шаблоны «вывод — ввод»
  3. Цепочки последовательных преобразований
  4. Обработка ошибок в цепочках запросов
← Назад к AI Prompt Engineering