Chaînes de transformations séquentielles
Découvrez les chaînes Ébauche → Révision → Polissage et d’autres affinements en plusieurs étapes.
Chaînes de transformations séquentielles est une leçon AI Prompt Engineering gratuite sur CoddyKit. Ceci est la leçon 3 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage AI Prompt Engineering, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours AI Prompt Engineering comprend 4 leçons au total.
Chaînes de transformation
Une chaîne de transformation convertit progressivement un contenu d’une forme à une autre au moyen d’une suite d’étapes spécialisées. Chaque étape transforme la sortie de l’étape précédente et affine ou enrichit peu à peu le contenu.
Les trois schémas de chaîne de transformation les plus utiles sont :
- Brouillon → Révision → Peaufinage : création et amélioration de contenu
- Remue-méninges → Filtrage → Développement : génération et développement d’idées
- Extraction → Classification → Routage : traitement des données et prise de décision
Brouillon → Révision → Peaufinage
La chaîne de création de contenu la plus courante. Chaque étape a un rôle distinct :
- Brouillon : générez rapidement du contenu brut — privilégiez la vitesse à la perfection
- Révision : évaluez le brouillon selon des critères précis — exactitude, ton et exhaustivité
- Peaufinage : appliquez les conclusions de la révision pour produire la sortie finale
La séparation en étapes distinctes produit de meilleurs résultats que de demander au modèle de rédiger et de peaufiner en une seule fois.
Brouillon → Révision → Peaufinage : implémentation Python
Implémentation complète de la chaîne Brouillon → Révision → Peaufinage :
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])Remue-méninges → Filtrage → Développement
La chaîne de développement d’idées : générez largement, réduisez intelligemment, puis développez en profondeur.
- Remue-méninges : générez de nombreuses idées sans les juger — privilégiez la quantité à la qualité
- Filtrage : appliquez des critères de sélection pour identifier les meilleures idées
- Développement : développez les idées retenues en propositions détaillées
Cette chaîne évite le biais d’ancrage qui consiste à commencer avec quelques idées, puis à rester fixé sur celles-ci.
Remue-méninges → Filtrage → Développement : implémentation Python
Implémentation complète de la chaîne Remue-méninges → Filtrage → Développement avec transmission de 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()))Extraction → Classification → Routage
La chaîne de traitement des données : extrayez des données structurées, classez-les, puis orientez-les vers le gestionnaire approprié.
- Extraction : extrayez des informations structurées à partir d’un texte non structuré
- Classification : attribuez des catégories, des libellés ou des priorités
- Routage : effectuez différentes actions selon la classification
Ce schéma est au cœur des systèmes de triage intelligent, de la modération de contenu et de l’orientation automatisée des demandes d’assistance client.
Extraction → Classification → Routage : implémentation Python
Implémentation complète de la chaîne Extraction → Classification → Routage :
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'])Choisir le bon schéma de chaîne
Associez votre cas d’utilisation au schéma de chaîne de transformation approprié :
- Brouillon → Révision → Peaufinage : toute création de contenu — courriels, articles, documentation, code
- Remue-méninges → Filtrage → Développement : stratégie, génération d’idées, planification de produits, calendriers éditoriaux
- Extraction → Classification → Routage : tickets d’assistance, courriels, modération de contenu, traitement des données
Ces schémas peuvent également être combinés — par exemple : Extraction → Classification → Remue-méninges de solutions → Filtrage → Rédaction d’une réponse.
Combiner les schémas
Les chaînes de traitement du monde réel combinent souvent plusieurs schémas pour former des chaînes plus longues :
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.')Journaliser les sorties intermédiaires
Dans les chaînes de transformation, journalisez chaque sortie intermédiaire. C’est essentiel pour le débogage : si la sortie finale est incorrecte, vous devez savoir quelle étape a produit une mauvaise sortie.
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.')Mesurer la qualité de la chaîne
Mesurez l’amélioration apportée par chaque étape afin de vérifier que la chaîne crée bien de la valeur :
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.')Vérification rapide
Quel schéma de chaîne de transformation convient le mieux au traitement des tickets d’assistance entrants et à leur orientation vers l’équipe appropriée ?
Chaînes de transformation — Points essentiels
Les chaînes de transformation séquentielles affinent progressivement le contenu au moyen d’étapes spécialisées :
- Brouillon → Révision → Peaufinage : idéal pour la création de contenu — génère, évalue, puis affine
- Remue-méninges → Filtrage → Développement : idéal pour la génération d’idées — génère largement, sélectionne judicieusement et développe en profondeur
- Extraction → Classification → Routage : idéal pour le traitement des données — extrait la structure, attribue des libellés et oriente vers les gestionnaires
- Les schémas peuvent être combinés en chaînes de traitement plus longues pour les cas d’utilisation complexes
- Journalisez les sorties intermédiaires à chaque étape pour faciliter le débogage
- Mesurez l’amélioration apportée par chaque étape afin de vérifier la valeur de la chaîne
Questions Fréquemment Posées
La leçon « Chaînes de transformations séquentielles » est-elle gratuite ?
Oui — le texte complet de « Chaînes de transformations séquentielles » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours AI Prompt Engineering, passe à CoddyKit PRO. Le cours AI Prompt Engineering comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Chaînes de transformations séquentielles » ?
Découvrez les chaînes Ébauche → Révision → Polissage et d’autres affinements en plusieurs étapes. Tu pratiques AI Prompt Engineering avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer AI Prompt Engineering ?
Aucune expérience préalable n'est requise. AI Prompt Engineering sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 3 sur 4.
Combien de temps prend la leçon « Chaînes de transformations séquentielles » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon AI Prompt Engineering ?
Oui. Chaque leçon AI Prompt Engineering inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Qu’est-ce que l’enchaînement d’invites ?
- Modèles sortie-entrée
- Chaînes de transformations séquentielles
- Gestion des erreurs dans les chaînes d’invites