0Pricing
AI Prompt Engineering · 강의

순차 변환 연결

초안 → 검토 → 다듬기 연결과 기타 여러 단계의 개선 과정을 살펴봅니다.

순차 변환 연결은(는) CoddyKit의 무료 AI Prompt Engineering 강의입니다. 이것은 4개 중 3번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 AI Prompt Engineering 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. AI Prompt Engineering 강의에는 총 4개의 강의가 포함되어 있습니다.

변환 체인

변환 체인은 특화된 단계들을 거치며 콘텐츠를 한 형식에서 다른 형식으로 점진적으로 변환합니다. 각 단계는 이전 단계의 출력을 변환하여 콘텐츠를 점차 개선하거나 풍부하게 만듭니다.

가장 유용한 세 가지 변환 체인 패턴은 다음과 같습니다.

  • 초안 작성 → 검토 → 다듬기: 콘텐츠 작성 및 개선
  • 아이디어 발상 → 필터링 → 확장: 아이디어 생성 및 발전
  • 추출 → 분류 → 전달: 데이터 처리 및 의사 결정

초안 작성 → 검토 → 다듬기

가장 일반적인 콘텐츠 작성 체인입니다. 각 단계에는 고유한 역할이 있습니다.

  • 초안 작성: 완벽함보다 속도를 우선하여 원시 콘텐츠를 빠르게 생성합니다
  • 검토: 정확성, 어조, 완성도와 같은 구체적인 기준에 따라 초안을 비평합니다
  • 다듬기: 검토 결과를 적용하여 최종 출력을 생성합니다

이 작업을 하나의 단계에서 초안 작성과 다듬기를 모두 요청하는 것보다 별도의 단계로 분리하는 편이 더 나은 결과를 냅니다.

초안 작성 → 검토 → 다듬기: 파이썬 구현

초안 작성 → 검토 → 다듬기 체인의 전체 구현은 다음과 같습니다.

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

아이디어 발상 → 필터링 → 확장

아이디어 발전 체인은 폭넓게 생성한 다음 지능적으로 범위를 좁히고 깊이 있게 발전시키는 방식입니다.

  • 아이디어 발상: 판단하지 않고 많은 아이디어를 생성합니다. 품질보다 수량을 우선합니다
  • 필터링: 선정 기준을 적용하여 가장 좋은 아이디어를 식별합니다
  • 확장: 선정된 아이디어를 자세한 제안으로 발전시킵니다

이 체인은 몇 가지 아이디어로 시작한 뒤 그 아이디어에 계속 고정되는 앵커링 편향을 피하게 해 줍니다.

아이디어 발상 → 필터링 → 확장: 파이썬 구현

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

추출 → 분류 → 전달

데이터 처리 체인은 구조화된 데이터를 추출하고, 분류한 다음, 적절한 처리기로 전달합니다.

  • 추출: 구조화되지 않은 텍스트에서 구조화된 정보를 가져옵니다
  • 분류: 범주, 레이블 또는 우선순위를 지정합니다
  • 전달: 분류 결과에 따라 서로 다른 작업을 수행합니다

이 패턴은 지능형 분류 시스템, 콘텐츠 조정, 자동화된 고객 지원 전달 시스템의 기반이 됩니다.

추출 → 분류 → 전달: 파이썬 구현

추출 → 분류 → 전달 체인의 전체 구현은 다음과 같습니다.

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

빠른 확인

들어오는 지원 티켓을 처리하여 올바른 팀으로 전달할 때 가장 적절한 변환 체인 패턴은 무엇입니까?

변환 체인 — 핵심 요점

순차적 변환 체인은 특화된 단계들을 통해 콘텐츠를 점진적으로 개선합니다.

  • 초안 작성 → 검토 → 다듬기: 콘텐츠 작성에 적합합니다. 생성하고, 비평한 다음, 개선합니다
  • 아이디어 발상 → 필터링 → 확장: 아이디어 구상에 적합합니다. 폭넓게 생성하고, 현명하게 선택하며, 깊이 있게 발전시킵니다
  • 추출 → 분류 → 전달: 데이터 처리에 적합합니다. 구조를 추출하고, 레이블을 지정하며, 처리기로 전달합니다
  • 복잡한 사용 사례에서는 패턴을 결합하여 더 긴 파이프라인을 만들 수 있습니다
  • 효과적인 디버깅을 위해 모든 단계에서 중간 출력을 기록하십시오
  • 체인이 가치를 제공하는지 확인하려면 각 단계가 제공하는 개선 정도를 측정하십시오

자주 묻는 질문

“순차 변환 연결” 강의는 무료인가요?

네 — “순차 변환 연결” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 AI Prompt Engineering 강의 전체를 잠금 해제할 수 있습니다. AI Prompt Engineering 강의에는 총 4개의 강의가 포함되어 있습니다.

“순차 변환 연결”에서 뭘 배우나요?

초안 → 검토 → 다듬기 연결과 기타 여러 단계의 개선 과정을 살펴봅니다. 브라우저에서 직접 실행하는 실습 코드로 AI Prompt Engineering을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

AI Prompt Engineering을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 AI Prompt Engineering은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 3번째 강의입니다.

“순차 변환 연결” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 AI Prompt Engineering 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 AI Prompt Engineering 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. 프롬프트 연결이란 무엇인가
  2. 출력을 입력으로 연결하는 패턴
  3. 순차 변환 연결
  4. 프롬프트 연결에서 오류 처리
← AI Prompt Engineering(으)로 돌아가기