0Pricing
AI Prompt Engineering · 课时

顺序转换链

了解“草拟 → 审阅 → 润色”链以及其他多阶段优化流程

顺序转换链 是 CoddyKit 上的免费 AI Prompt Engineering 课时。 这是第 3 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 AI Prompt Engineering 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 AI Prompt Engineering 课程共包含 4 节课。

转换链

转换链通过一系列专门步骤,逐步将内容从一种形式转换为另一种形式。每个步骤都会转换上一步的输出,逐渐完善或丰富内容。

最有用的三种转换链模式是:

  • 草稿 → 审阅 → 润色:内容创建与完善
  • 头脑风暴 → 筛选 → 扩展:想法生成与发展
  • 提取 → 分类 → 路由:数据处理与决策

草稿 → 审阅 → 润色

最常见的内容创建链。每个步骤都有明确的职责:

  • 草稿:快速生成原始内容——速度优先于完美
  • 审阅:根据特定标准评析草稿——准确性、语气和完整性
  • 润色:应用审阅结果,生成最终输出

将这些任务拆分为独立步骤,比要求模型一次完成起草和润色能产生更好的结果。

草稿 → 审阅 → 润色:Python 实现

草稿 → 审阅 → 润色链的完整实现:

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

头脑风暴 → 筛选 → 扩展

想法开发链:广泛生成,然后智能收窄范围,最后深入展开。

  • 头脑风暴:不加评判地生成大量想法——数量优先于质量
  • 筛选:应用选择标准,找出最佳想法
  • 扩展:将选中的想法发展为详细方案

这条链避免了从少数想法开始并一直受其束缚的锚定偏差。

头脑风暴 → 筛选 → 扩展:Python 实现

带有 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()))

提取 → 分类 → 路由

数据处理链:提取结构化数据,为其分类,然后将其路由到适当的处理程序。

  • 提取:从非结构化文本中提取结构化信息
  • 分类:分配类别、标签或优先级
  • 路由:根据分类结果采取不同操作

这种模式为智能分流系统、内容审核和自动化客户支持路由提供了基础。

提取 → 分类 → 路由:Python 实现

提取 → 分类 → 路由链的完整实现:

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

选择合适的链模式

将您的使用场景与合适的转换链模式相匹配:

  • 草稿 → 审阅 → 润色:适用于任何内容创建场景——电子邮件、文章、文档、代码
  • 头脑风暴 → 筛选 → 扩展:适用于策略、创意构思、产品规划和内容日历
  • 提取 → 分类 → 路由:适用于支持工单、电子邮件、内容审核和数据处理

这些模式也可以组合使用——例如,提取 → 分类 → 头脑风暴解决方案 → 筛选 → 起草回复。

组合模式

现实中的流水线通常会将多个模式组合成更长的链:

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

记录中间输出

在转换链中,记录每个中间输出。这对于调试至关重要——如果最终输出有误,您需要知道是哪一步生成了错误输出。

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

衡量链质量

衡量每个步骤带来的改进,以验证链是否创造了价值:

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

快速检查

处理传入的支持工单并将其路由到正确团队时,哪种转换链模式最合适?

转换链——要点

顺序转换链通过专门步骤逐步完善内容:

  • 草稿 → 审阅 → 润色:最适合内容创建——生成、评析,然后完善
  • 头脑风暴 → 筛选 → 扩展:最适合创意构思——广泛生成、明智选择、深入发展
  • 提取 → 分类 → 路由:最适合数据处理——提取结构、分配标签、路由到处理程序
  • 可以将模式组合成更长的流水线,以应对复杂的使用场景
  • 在每个步骤记录中间输出,以便有效调试
  • 衡量每个步骤带来的改进,以验证链的价值

常见问题解答

「顺序转换链」课时是免费的吗?

是的 — 「顺序转换链」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 AI Prompt Engineering 课程的其余内容,请升级到 CoddyKit PRO。 AI Prompt Engineering 课程共包含 4 节课。

「顺序转换链」这节课中我会学到什么?

了解“草拟 → 审阅 → 润色”链以及其他多阶段优化流程 你通过在浏览器中直接运行的动手代码来练习 AI Prompt Engineering,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 AI Prompt Engineering 需要有经验吗?

无需任何先前经验。CoddyKit 上的 AI Prompt Engineering 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 3 节课,共 4 节。

「顺序转换链」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 AI Prompt Engineering 课中编写并运行代码吗?

能。每节 AI Prompt Engineering 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 什么是提示链
  2. 输出到输入模式
  3. 顺序转换链
  4. 提示链中的错误处理
← 返回 AI Prompt Engineering