0Pricing
AI Prompt Engineering · Lección

Cadenas de transformación secuencial

Cadenas Borrador → Revisión → Perfeccionamiento y otros procesos de mejora por etapas.

Cadenas de transformación secuencial es una lección gratuita de AI Prompt Engineering en CoddyKit. Esta es la lección 3 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de AI Prompt Engineering, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de AI Prompt Engineering incluye 4 lecciones en total.

Cadenas de transformación

Una cadena de transformación convierte progresivamente el contenido de una forma a otra mediante una secuencia de pasos especializados. Cada paso transforma la salida del paso anterior y refina o enriquece gradualmente el contenido.

Los tres patrones de cadenas de transformación más útiles son:

  • Redactar → Revisar → Pulir: creación y perfeccionamiento de contenido
  • Lluvia de ideas → Filtrar → Desarrollar: generación y desarrollo de ideas
  • Extraer → Clasificar → Enrutar: procesamiento de datos y toma de decisiones

Redactar → Revisar → Pulir

La cadena de creación de contenido más común. Cada paso tiene un papel distinto:

  • Redactar: Genere contenido sin procesar rápidamente; priorice la velocidad sobre la perfección
  • Revisar: Critique el borrador según criterios específicos: precisión, tono y exhaustividad
  • Pulir: Aplique las conclusiones de la revisión para producir la salida final

Separar estas tareas en pasos distintos produce mejores resultados que pedir al modelo que redacte y pula el contenido de una sola vez.

Redactar → Revisar → Pulir: implementación en Python

Implementación completa de la cadena Redactar → Revisar → Pulir:

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

Lluvia de ideas → Filtrar → Desarrollar

La cadena de desarrollo de ideas: genere muchas ideas, redúzcalas de forma inteligente y desarróllelas en profundidad.

  • Lluvia de ideas: Genere muchas ideas sin juzgarlas; priorice la cantidad sobre la calidad
  • Filtrar: Aplique criterios de selección para identificar las mejores ideas
  • Desarrollar: Convierta las ideas seleccionadas en propuestas detalladas

Esta cadena evita el sesgo de anclaje que se produce al comenzar con unas pocas ideas y quedarse limitado a ellas.

Lluvia de ideas → Filtrar → Desarrollar: implementación en Python

Implementación completa de la cadena Lluvia de ideas → Filtrar → Desarrollar con transferencia 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()))

Extraer → Clasificar → Enrutar

La cadena de procesamiento de datos: extraiga datos estructurados, clasifíquelos y, después, diríjalos al controlador correspondiente.

  • Extraer: Extraiga información estructurada de texto no estructurado
  • Clasificar: Asigne categorías, etiquetas o prioridades
  • Enrutar: Realice distintas acciones según la clasificación

Este patrón impulsa sistemas inteligentes de triaje, moderación de contenido y enrutamiento automatizado de la atención al cliente.

Extraer → Clasificar → Enrutar: implementación en Python

Implementación completa de la cadena Extraer → Clasificar → Enrutar:

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

Elegir el patrón de cadena adecuado

Adapte su caso de uso al patrón de cadena de transformación adecuado:

  • Redactar → Revisar → Pulir: cualquier creación de contenido: correos electrónicos, artículos, documentación y código
  • Lluvia de ideas → Filtrar → Desarrollar: estrategia, ideación, planificación de productos y calendarios de contenido
  • Extraer → Clasificar → Enrutar: tickets de soporte, correos electrónicos, moderación de contenido y procesamiento de datos

Estos patrones también se pueden combinar; por ejemplo, Extraer → Clasificar → Generar soluciones → Filtrar → Redactar respuesta.

Combinar patrones

Los pipelines del mundo real suelen combinar varios patrones en cadenas más largas:

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

Registro de salidas intermedias

En las cadenas de transformación, registre cada salida intermedia. Esto es esencial para la depuración: si la salida final es incorrecta, debe saber qué paso produjo una salida defectuosa.

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

Medición de la calidad de la cadena

Mida la mejora que aporta cada paso para comprobar que la cadena está generando valor:

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

Comprobación rápida

¿Qué patrón de cadena de transformación es más adecuado para procesar los tickets de soporte entrantes y enrutarlos al equipo correcto?

Cadenas de transformación: ideas clave

Las cadenas de transformación secuenciales refinan progresivamente el contenido mediante pasos especializados:

  • Redactar → Revisar → Pulir: ideal para la creación de contenido; genera, critica y después refina
  • Lluvia de ideas → Filtrar → Desarrollar: ideal para la ideación; genera ampliamente, selecciona con criterio y desarrolla en profundidad
  • Extraer → Clasificar → Enrutar: ideal para el procesamiento de datos; extrae la estructura, asigna etiquetas y dirige los datos a los controladores
  • Los patrones se pueden combinar en pipelines más largos para casos de uso complejos
  • Registre las salidas intermedias en cada paso para facilitar la depuración
  • Mida la mejora que aporta cada paso para comprobar el valor de la cadena

Preguntas frecuentes

¿La lección «Cadenas de transformación secuencial» es gratis?

Sí — el texto completo de «Cadenas de transformación secuencial» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de AI Prompt Engineering, actualiza a CoddyKit PRO. El curso de AI Prompt Engineering incluye 4 lecciones en total.

¿Qué aprenderé en «Cadenas de transformación secuencial»?

Cadenas Borrador → Revisión → Perfeccionamiento y otros procesos de mejora por etapas. Practicas AI Prompt Engineering con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar AI Prompt Engineering?

No se requiere experiencia previa. AI Prompt Engineering en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 4.

¿Cuánto tiempo toma la lección «Cadenas de transformación secuencial»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de AI Prompt Engineering?

Sí. Cada lección de AI Prompt Engineering incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. ¿Qué es el encadenamiento de prompts?
  2. Patrones de salida a entrada
  3. Cadenas de transformación secuencial
  4. Gestión de errores en cadenas de prompts
← Volver a AI Prompt Engineering