0Pricing
AI Prompt Engineering · Lekcja

Łańcuchy sekwencyjnych transformacji

Łańcuchy „Szkic → Recenzja → Dopracowanie” i inne wieloetapowe procesy udoskonalania.

Łańcuchy sekwencyjnych transformacji to bezpłatna lekcja AI Prompt Engineering na CoddyKit. To lekcja 3 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej AI Prompt Engineering, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs AI Prompt Engineering zawiera 4 lekcji w sumie.

Łańcuchy transformacji

Łańcuch transformacji stopniowo przekształca treść z jednej postaci w inną za pomocą sekwencji wyspecjalizowanych kroków. Każdy krok przekształca wynik poprzedniego, stopniowo udoskonalając lub wzbogacając treść.

Trzy najbardziej użyteczne wzorce łańcuchów transformacji to:

  • Szkic → Recenzja → Dopracowanie: Tworzenie i udoskonalanie treści
  • Burza mózgów → Filtrowanie → Rozwinięcie: Generowanie i rozwijanie pomysłów
  • Ekstrakcja → Klasyfikacja → Przekierowanie: Przetwarzanie danych i podejmowanie decyzji

Szkic → Recenzja → Dopracowanie

Najczęściej używany łańcuch do tworzenia treści. Każdy krok ma odrębną rolę:

  • Szkic: Szybkie generowanie surowej treści — szybkość jest ważniejsza od perfekcji
  • Recenzja: Krytyczna ocena szkicu według określonych kryteriów — dokładności, tonu i kompletności
  • Dopracowanie: Zastosowanie wniosków z recenzji w celu uzyskania ostatecznego wyniku

Rozdzielenie tych czynności na osobne kroki daje lepsze rezultaty niż polecenie modelowi, aby od razu przygotował i dopracował tekst.

Szkic → Recenzja → Dopracowanie: implementacja w Pythonie

Kompletna implementacja łańcucha Szkic → Recenzja → Dopracowanie:

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])

Burza mózgów → Filtrowanie → Rozwinięcie

Łańcuch rozwijania pomysłów: najpierw generowanie na szeroką skalę, następnie inteligentne zawężanie, a na końcu dogłębne rozwijanie.

  • Burza mózgów: Generowanie wielu pomysłów bez oceniania — ilość jest ważniejsza od jakości
  • Filtrowanie: Zastosowanie kryteriów wyboru w celu wyłonienia najlepszych pomysłów
  • Rozwinięcie: Rozwinięcie wybranych pomysłów w szczegółowe propozycje

Ten łańcuch pozwala uniknąć efektu zakotwiczenia, który pojawia się, gdy zaczyna się od kilku pomysłów i pozostaje przy nich.

Burza mózgów → Filtrowanie → Rozwinięcie: implementacja w Pythonie

Kompletna implementacja łańcucha Burza mózgów → Filtrowanie → Rozwinięcie z przekazywaniem danych w formacie 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()))

Ekstrakcja → Klasyfikacja → Przekierowanie

Łańcuch przetwarzania danych: wyodrębnienie danych strukturalnych, ich klasyfikacja, a następnie przekierowanie do odpowiedniego modułu obsługi.

  • Ekstrakcja: Wydobywanie uporządkowanych informacji z nieustrukturyzowanego tekstu
  • Klasyfikacja: Przypisywanie kategorii, etykiet lub priorytetów
  • Przekierowanie: Podejmowanie różnych działań na podstawie klasyfikacji

Ten wzorzec stanowi podstawę inteligentnych systemów wstępnej segregacji, moderacji treści i automatycznego przekierowywania zgłoszeń do właściwego zespołu obsługi klienta.

Ekstrakcja → Klasyfikacja → Przekierowanie: implementacja w Pythonie

Kompletna implementacja łańcucha Ekstrakcja → Klasyfikacja → Przekierowanie:

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'])

Wybór właściwego wzorca łańcucha

Dopasowanie przypadku użycia do właściwego wzorca łańcucha transformacji:

  • Szkic → Recenzja → Dopracowanie: Dowolne tworzenie treści — wiadomości e-mail, artykuły, dokumentacja, kod
  • Burza mózgów → Filtrowanie → Rozwinięcie: Strategia, generowanie pomysłów, planowanie produktu, kalendarze treści
  • Ekstrakcja → Klasyfikacja → Przekierowanie: Zgłoszenia do pomocy technicznej, wiadomości e-mail, moderacja treści, przetwarzanie danych

Te wzorce można również łączyć — na przykład: Ekstrakcja → Klasyfikacja → Generowanie pomysłów na rozwiązania → Filtrowanie → Przygotowanie odpowiedzi.

Łączenie wzorców

Rzeczywiste potoki często łączą wiele wzorców w dłuższe łańcuchy:

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.')

Rejestrowanie wyników pośrednich

W łańcuchach transformacji należy rejestrować każdy wynik pośredni. Jest to niezbędne podczas debugowania — jeśli wynik końcowy jest nieprawidłowy, trzeba wiedzieć, który krok wygenerował błędny wynik.

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.')

Pomiar jakości łańcucha

Należy mierzyć poprawę zapewnianą przez każdy krok, aby sprawdzić, czy łańcuch rzeczywiście dostarcza dodatkową wartość:

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.')

Szybkie sprawdzenie

Jaki wzorzec łańcucha transformacji najlepiej nadaje się do przetwarzania przychodzących zgłoszeń do pomocy technicznej i przekierowywania ich do właściwego zespołu?

Łańcuchy transformacji — najważniejsze informacje

Sekwencyjne łańcuchy transformacji stopniowo udoskonalają treść za pomocą wyspecjalizowanych kroków:

  • Szkic → Recenzja → Dopracowanie: Najlepszy do tworzenia treści — generuje, ocenia, a następnie udoskonala
  • Burza mózgów → Filtrowanie → Rozwinięcie: Najlepszy do generowania pomysłów — generuje szeroki zestaw, dokonuje trafnej selekcji i szczegółowo rozwija wybrane pomysły
  • Ekstrakcja → Klasyfikacja → Przekierowanie: Najlepszy do przetwarzania danych — wydobywa strukturę, przypisuje etykiety i przekierowuje dane do modułów obsługi
  • Wzorce można łączyć w dłuższe potoki na potrzeby złożonych przypadków użycia
  • Rejestruj wyniki pośrednie na każdym kroku, aby skutecznie debugować potok
  • Mierz poprawę zapewnianą przez każdy krok, aby potwierdzić wartość łańcucha

Często zadawane pytania

Czy lekcja „Łańcuchy sekwencyjnych transformacji” jest bezpłatna?

Tak — pełny tekst „Łańcuchy sekwencyjnych transformacji” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu AI Prompt Engineering, przejdź na CoddyKit PRO. Kurs AI Prompt Engineering zawiera 4 lekcji w sumie.

Co nauczysz się w „Łańcuchy sekwencyjnych transformacji”?

Łańcuchy „Szkic → Recenzja → Dopracowanie” i inne wieloetapowe procesy udoskonalania. Ćwiczysz AI Prompt Engineering z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć AI Prompt Engineering?

Nie wymagamy żadnego doświadczenia. AI Prompt Engineering w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 3 z 4.

Ile czasu zajmuje lekcja „Łańcuchy sekwencyjnych transformacji”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji AI Prompt Engineering?

Tak. Każda lekcja AI Prompt Engineering zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Czym jest łańcuch promptów?
  2. Wzorce „wynik jako dane wejściowe”
  3. Łańcuchy sekwencyjnych transformacji
  4. Obsługa błędów w łańcuchach promptów
← Powrót do AI Prompt Engineering