Ł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
- Czym jest łańcuch promptów?
- Wzorce „wynik jako dane wejściowe”
- Łańcuchy sekwencyjnych transformacji
- Obsługa błędów w łańcuchach promptów