Catene di trasformazione sequenziali
Catene Bozza → Revisione → Rifinitura e altri perfezionamenti in più fasi
Catene di trasformazione sequenziali è una lezione AI Prompt Engineering gratuita su CoddyKit. Questa è la lezione 3 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento AI Prompt Engineering, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso AI Prompt Engineering include 4 lezioni in totale.
Catene di trasformazione
Una catena di trasformazione converte progressivamente il contenuto da una forma a un'altra attraverso una sequenza di passaggi specializzati. Ogni passaggio trasforma l'output del passaggio precedente, perfezionando o arricchendo gradualmente il contenuto.
I tre modelli di catena di trasformazione più utili sono:
- Bozza → Revisione → Perfezionamento: creazione e perfezionamento dei contenuti
- Brainstorming → Filtro → Sviluppo: generazione e sviluppo delle idee
- Estrazione → Classificazione → Instradamento: elaborazione dei dati e processo decisionale
Bozza → Revisione → Perfezionamento
La catena più comune per la creazione di contenuti. Ogni passaggio ha un ruolo distinto:
- Bozza: generi rapidamente contenuti grezzi, privilegiando la velocità rispetto alla perfezione
- Revisione: valuti criticamente la bozza in base a criteri specifici, come accuratezza, tono e completezza
- Perfezionamento: applichi i risultati della revisione per produrre l'output finale
Separare queste attività in passaggi distinti produce risultati migliori rispetto a chiedere al modello di creare e perfezionare una bozza in un'unica operazione.
Bozza → Revisione → Perfezionamento: implementazione in Python
Implementazione completa della catena Bozza → Revisione → Perfezionamento:
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])Brainstorming → Filtro → Sviluppo
La catena per lo sviluppo delle idee: generare ampiamente, restringere in modo ragionato e infine sviluppare in profondità.
- Brainstorming: generi molte idee senza giudicarle, privilegiando la quantità rispetto alla qualità
- Filtro: applichi criteri di selezione per individuare le idee migliori
- Sviluppo: sviluppi le idee selezionate trasformandole in proposte dettagliate
Questa catena evita il bias di ancoraggio che si verifica quando si parte da poche idee e si rimane vincolati a esse.
Brainstorming → Filtro → Sviluppo: implementazione in Python
Implementazione completa della catena Brainstorming → Filtro → Sviluppo con passaggio di dati 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()))Estrazione → Classificazione → Instradamento
La catena per l'elaborazione dei dati: estrarre dati strutturati, classificarli e infine instradarli al gestore appropriato.
- Estrazione: estragga informazioni strutturate da testo non strutturato
- Classificazione: assegni categorie, etichette o priorità
- Instradamento: intraprenda azioni diverse in base alla classificazione
Questo modello è alla base dei sistemi intelligenti di triage, della moderazione dei contenuti e dell'instradamento automatizzato delle richieste all'assistenza clienti.
Estrazione → Classificazione → Instradamento: implementazione in Python
Implementazione completa della catena Estrazione → Classificazione → Instradamento:
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'])Scegliere il modello di catena più adatto
Abbini il caso d'uso al modello di catena di trasformazione più adatto:
- Bozza → Revisione → Perfezionamento: qualsiasi attività di creazione di contenuti, come e-mail, articoli, documentazione e codice
- Brainstorming → Filtro → Sviluppo: strategia, ideazione, pianificazione dei prodotti e calendari editoriali
- Estrazione → Classificazione → Instradamento: ticket di assistenza, e-mail, moderazione dei contenuti ed elaborazione dei dati
Questi modelli possono anche essere combinati, ad esempio: Estrazione → Classificazione → Brainstorming di soluzioni → Filtro → Bozza della risposta.
Combinare i modelli
Le pipeline reali combinano spesso più modelli in catene più lunghe:
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.')Registrare gli output intermedi
Nelle catene di trasformazione, registri ogni output intermedio. Questo è essenziale per il debugging: se l'output finale è errato, deve sapere quale passaggio ha prodotto un output errato.
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.')Misurare la qualità della catena
Misuri il miglioramento apportato da ogni passaggio per verificare che la catena aggiunga valore:
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.')Verifica rapida
Quale modello di catena di trasformazione è più adatto per elaborare i ticket di assistenza in arrivo e instradarli al team corretto?
Catene di trasformazione — Punti chiave
Le catene di trasformazione sequenziali perfezionano progressivamente il contenuto attraverso passaggi specializzati:
- Bozza → Revisione → Perfezionamento: ideale per la creazione di contenuti, genera, valuta criticamente e poi perfeziona
- Brainstorming → Filtro → Sviluppo: ideale per l'ideazione, genera ampiamente, seleziona con criterio e sviluppa in profondità
- Estrazione → Classificazione → Instradamento: ideale per l'elaborazione dei dati, estrae la struttura, assegna etichette e instrada ai gestori
- I modelli possono essere combinati in pipeline più lunghe per casi d'uso complessi
- Registri gli output intermedi a ogni passaggio per un debugging efficace
- Misuri il miglioramento apportato da ogni passaggio per verificare il valore della catena
Domande Frequenti
La lezione «Catene di trasformazione sequenziali» è gratuita?
Sì — il testo completo di «Catene di trasformazione sequenziali» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso AI Prompt Engineering, passa a CoddyKit PRO. Il corso AI Prompt Engineering include 4 lezioni in totale.
Cosa imparerò in «Catene di trasformazione sequenziali»?
Catene Bozza → Revisione → Rifinitura e altri perfezionamenti in più fasi Eserciti AI Prompt Engineering con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare AI Prompt Engineering?
Non è richiesta alcuna esperienza precedente. AI Prompt Engineering su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 4.
Quanto tempo richiede la lezione «Catene di trasformazione sequenziali»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione AI Prompt Engineering?
Sì. Ogni lezione AI Prompt Engineering include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Che cos'è il prompt chaining?
- Schemi da output a input
- Catene di trasformazione sequenziali
- Gestione degli errori nelle catene di prompt