AI Prompt Engineering · บทเรียน

พรอมป์ตเชนคืออะไร

แนวคิดการเรียกใช้พรอมป์ตตามลำดับและส่งต่อข้อมูล

บทเรียน 1 จาก 413 ขั้นตอน

พรอมป์ตเชนคืออะไร เป็นบทเรียน AI Prompt Engineering ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน AI Prompt Engineering และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส AI Prompt Engineering มีบทเรียนทั้งหมด 4 บทเรียน

ขีดจำกัดของพรอมต์เดียว

พรอมต์เดียวสามารถทำงานได้มากมาย แต่ก็มีข้อจำกัด งานที่ซับซ้อนซึ่งต้องแบ่งเป็นงานย่อยเฉพาะด้านหลายงาน ต้องใช้บริบทที่ยาวมาก หรือต้องปรับปรุงซ้ำหลายรอบ มักเกินขีดความสามารถที่พรอมต์เดียวจะทำได้อย่างน่าเชื่อถือ

สัญญาณว่าคุณมาถึงขีดจำกัดของพรอมต์เดียวแล้ว:

  • โมเดลข้ามขั้นตอนในงานหลายขั้นตอน
  • คุณภาพลดลงในช่วงท้ายของงานที่ยาว
  • ผลลัพธ์ยาวเกินกว่าจะอยู่ในหน้าต่างบริบทเดียว
  • งานแต่ละส่วนต้องใช้ความเชี่ยวชาญหรือโทนภาษาที่แตกต่างกัน

การเชื่อมพรอมต์คืออะไร

การเชื่อมพรอมต์คือการทำงานตามลำดับ โดยผลลัพธ์ของพรอมต์หนึ่งจะกลายเป็นข้อมูลป้อนเข้าสำหรับพรอมต์ถัดไป แทนที่จะใช้พรอมต์ขนาดใหญ่เพียงอันเดียวทำทุกอย่าง คุณจะแบ่งงานออกเป็นขั้นตอนเฉพาะด้าน

ขั้นตอนที่ 1 → ผลลัพธ์ → ขั้นตอนที่ 2 → ผลลัพธ์ → ขั้นตอนที่ 3 → ผลลัพธ์สุดท้าย

คุณสามารถปรับปรุงแต่ละขั้นตอนแยกจากกัน ใช้โมเดลต่างกัน หรือใช้ข้อจำกัดต่างกันได้

ตัวอย่างง่าย ๆ ของการเชื่อมพรอมต์

ลองพิจารณาการเขียนบทความบล็อก แทนที่จะใช้พรอมต์เดียว ให้เชื่อมพรอมต์สามชุดเข้าด้วยกัน:

import anthropic

client = anthropic.Anthropic(api_key='YOUR_API_KEY')

def call(prompt):
    r = client.messages.create(
        model='claude-opus-4-5',
        max_tokens=1000,
        messages=[{'role': 'user', 'content': prompt}]
    )
    return r.content[0].text

# Step 1: Generate outline
outline = call('Create a 5-point outline for a blog post about prompt engineering for beginners.')

# Step 2: Expand outline into draft
draft = call(f'Write a full blog post based on this outline:\n\n{outline}')

# Step 3: Edit for clarity
final = call(f'Edit this blog post for clarity and conciseness. Remove jargon:\n\n{draft}')

print(final[:500])

การเชื่อมพรอมต์มีประโยชน์เมื่อใด: ความซับซ้อนของงาน

การเชื่อมพรอมต์เหมาะอย่างยิ่งเมื่องานซับซ้อนเกินกว่าที่พรอมต์เดียวจะจัดการได้อย่างมีคุณภาพสูง การแบ่งความซับซ้อนออกเป็นขั้นตอนเฉพาะด้านช่วยให้แต่ละขั้นตอนทำหน้าที่แคบ ๆ ของตนได้อย่างเต็มประสิทธิภาพ

ตัวอย่าง: การวิเคราะห์ความคิดเห็นของลูกค้าในวงกว้าง

  • ขั้นตอนที่ 1: แยกประเด็นทั้งหมดที่มีการกล่าวถึง (การสกัดข้อมูล)
  • ขั้นตอนที่ 2: จัดหมวดหมู่แต่ละประเด็น (การจำแนกประเภท)
  • ขั้นตอนที่ 3: จัดลำดับความสำคัญตามความถี่และความรุนแรง (การจัดอันดับ)
  • ขั้นตอนที่ 4: เขียนบทสรุปสำหรับผู้บริหาร (การสังเคราะห์)

แต่ละขั้นตอนใช้พรอมต์ที่มุ่งเน้นและปรับให้เหมาะกับงานย่อยของตน

การเชื่อมพรอมต์มีประโยชน์เมื่อใด: คุณภาพจากความเชี่ยวชาญเฉพาะด้าน

พรอมต์เฉพาะด้านทำงานได้ดีกว่าพรอมต์แบบครอบคลุมทั่วไปสำหรับงานย่อยเฉพาะของตน การเชื่อมพรอมต์ช่วยให้คุณใช้รูปแบบพรอมต์ที่เหมาะสมกับแต่ละช่วง:

# Each step uses a prompt optimized for its role

step1_prompt_template = '''
<task>Extract all named entities from the text below. Return JSON:
{"people": [], "companies": [], "locations": []}</task>
<text>{text}</text>
'''

step2_prompt_template = '''
<task>For each company in the list below, classify it as:
startup, enterprise, government, or nonprofit.
Return JSON: [{"company": str, "type": str}]</task>
<companies>{companies}</companies>
'''

# Each prompt is simpler, more focused, and easier to debug
# than a single prompt trying to do both tasks at once.
print('Specialized prompts per step.')

การเชื่อมพรอมต์มีประโยชน์เมื่อใด: ข้อจำกัดของหน้าต่างบริบท

แม้หน้าต่างบริบทจะมีขนาดใหญ่ (มากกว่า 100,000 โทเค็น) การประมวลผลเอกสารที่ยาวมากในครั้งเดียวก็ทำให้คุณภาพลดลงเนื่องจากผลกระทบจากข้อมูลหล่นหายตรงกลาง การเชื่อมพรอมต์ช่วยแก้ปัญหานี้ได้:

  • ขั้นตอนที่ 1: ประมวลผลแต่ละส่วนย่อยแยกจากกัน → สร้างบทสรุปหรือข้อมูลสกัดสำหรับแต่ละส่วน
  • ขั้นตอนที่ 2: รวมผลลัพธ์ของส่วนย่อย → สังเคราะห์เป็นคำตอบสุดท้าย

รูปแบบการแบ่งส่วนและรวมผลนี้เป็นกลยุทธ์พื้นฐานของการเชื่อมพรอมต์สำหรับเอกสารยาว

def map_reduce_summarize(document, chunk_size=3000):
    chunks = [document[i:i+chunk_size] for i in range(0, len(document), chunk_size)]

    # Map: summarize each chunk
    summaries = []
    for i, chunk in enumerate(chunks):
        summary = call(f'Summarize this section of a document in 3 bullet points:\n\n{chunk}')
        summaries.append(summary)

    # Reduce: synthesize all summaries
    combined = '\n\n'.join(f'Section {i+1}:\n{s}' for i, s in enumerate(summaries))
    final = call(f'Combine these section summaries into a single executive summary:\n\n{combined}')
    return final

สายงานแบบทำพร้อมกันและแบบขนาน

สายการเชื่อมพรอมต์ไม่ได้เป็นเส้นตรงเสมอไป บางขั้นตอนสามารถทำงานแบบขนานได้เมื่อขั้นตอนเหล่านั้นไม่ขึ้นต่อกัน:

import concurrent.futures

def parallel_step(topics):
    # Each topic can be researched in parallel — they do not depend on each other
    def research_topic(topic):
        return call(f'List 5 key facts about: {topic}')

    with concurrent.futures.ThreadPoolExecutor() as executor:
        results = list(executor.map(research_topic, topics))

    # Then synthesize in a sequential step
    combined = '\n\n'.join(f'{t}:\n{r}' for t, r in zip(topics, results))
    synthesis = call(f'Write a comparative analysis of these topics:\n\n{combined}')
    return synthesis

print('Parallel steps can reduce total latency.')

สายการเชื่อมพรอมต์กับเอเจนต์

สายการเชื่อมพรอมต์และเอเจนต์ AI มีความเกี่ยวข้องกัน แต่แตกต่างกัน:

  • สายการเชื่อมพรอมต์: ลำดับการทำงานที่กำหนดไว้ล่วงหน้าและมีผลลัพธ์แน่นอน ลำดับขั้นตอนตายตัว ทดสอบ แก้จุดบกพร่อง และคาดการณ์ได้ง่ายกว่า
  • เอเจนต์: ลำดับการทำงานแบบไดนามิก โมเดลตัดสินใจเลือกขั้นตอนถัดไปจากผลลัพธ์ มีความยืดหยุ่นมากกว่า แต่ควบคุมและแก้จุดบกพร่องได้ยากกว่า

สำหรับกรณีใช้งานจริงส่วนใหญ่ ให้เริ่มด้วยสายการเชื่อมพรอมต์ ใช้เอเจนต์เฉพาะเมื่องานเปิดกว้างอย่างแท้จริงและไม่สามารถกำหนดโครงสร้างสายการเชื่อมไว้ล่วงหน้าได้

ข้อควรพิจารณาด้านต้นทุนในสายการเชื่อมพรอมต์

แต่ละขั้นตอนในสายการเชื่อมพรอมต์คือการเรียก API แยกกันและมีต้นทุนของตนเอง ออกแบบสายการเชื่อมโดยคำนึงถึงต้นทุน:

  • ใช้โมเดลที่ถูกกว่าหรือมีขนาดเล็กกว่าสำหรับขั้นตอนง่าย ๆ (การสกัดข้อมูล การจำแนกประเภท)
  • เก็บโมเดลราคาแพง (GPT-4o, Claude Opus) ไว้สำหรับขั้นตอนที่ต้องใช้การให้เหตุผลระดับสูง
  • แคชผลลัพธ์ระหว่างทางเพื่อหลีกเลี่ยงการเรียกใช้ขั้นตอนราคาแพงซ้ำกับข้อมูลป้อนเข้าเดิม
  • ตรวจพบความล้มเหลวตั้งแต่เนิ่น ๆ — ตรวจสอบผลลัพธ์ของแต่ละขั้นตอนก่อนส่งต่อไปยังขั้นตอนถัดไป
import anthropic
import functools

client = anthropic.Anthropic(api_key='YOUR_API_KEY')

@functools.lru_cache(maxsize=128)
def cached_call(prompt, model='claude-haiku-4-5'):
    r = client.messages.create(
        model=model,
        max_tokens=500,
        messages=[{'role': 'user', 'content': prompt}]
    )
    return r.content[0].text

# Cheap model for extraction, expensive for synthesis
def smart_chain(text):
    entities = cached_call(f'Extract entities from: {text}', model='claude-haiku-4-5')
    synthesis = cached_call(f'Analyze these entities: {entities}', model='claude-opus-4-5')
    return synthesis

การจัดทำเอกสารสายการเชื่อมของคุณ

สายการเชื่อมที่มีเอกสารประกอบอย่างดีจะบำรุงรักษาได้ง่าย ใช้โครงสร้างง่าย ๆ เพื่ออธิบายแต่ละขั้นตอน:

chain_spec = {
    'name': 'Blog Post Generator',
    'steps': [
        {
            'id': 'step_1',
            'name': 'Outline Generation',
            'model': 'claude-haiku-4-5',
            'input': 'topic (string)',
            'output': 'outline (string, 5 bullet points)',
            'prompt_template': 'outline_prompt.txt'
        },
        {
            'id': 'step_2',
            'name': 'Draft Writing',
            'model': 'claude-opus-4-5',
            'input': 'outline from step_1',
            'output': 'draft (string, ~800 words)',
            'prompt_template': 'draft_prompt.txt'
        },
        {
            'id': 'step_3',
            'name': 'Editorial Polish',
            'model': 'claude-haiku-4-5',
            'input': 'draft from step_2',
            'output': 'final post (string)',
            'prompt_template': 'polish_prompt.txt'
        }
    ]
}

print('Chain documented with step specs.')

สายการเชื่อมในโลกจริง: การวิเคราะห์คู่แข่ง

สายการเชื่อมสามขั้นตอนที่ใช้งานได้จริงสำหรับการวิเคราะห์คู่แข่ง:

def competitive_analysis_chain(competitor_list, product_description):
    # Step 1: Research each competitor (parallel)
    def research(competitor):
        return call(f'List key features, pricing model, and target market for: {competitor}')

    with concurrent.futures.ThreadPoolExecutor() as ex:
        research_results = dict(zip(competitor_list, ex.map(research, competitor_list)))

    # Step 2: Compare against our product
    comparison_input = '\n\n'.join(f'{k}:\n{v}' for k, v in research_results.items())
    comparison = call(f'Compare these competitors against our product:\nOur product: {product_description}\n\nCompetitors:\n{comparison_input}')

    # Step 3: Strategic recommendations
    recommendations = call(f'Based on this competitive analysis, provide 3 strategic recommendations:\n\n{comparison}')
    return recommendations

ตรวจสอบอย่างรวดเร็ว

สถานการณ์ใดเหมาะกับการเชื่อมพรอมต์มากกว่าการใช้พรอมต์เดียว

การเชื่อมพรอมต์ — ประเด็นสำคัญ

การเชื่อมพรอมต์เป็นรากฐานของระบบ AI ที่ใช้งานจริง:

  • การทำงานตามลำดับ โดยผลลัพธ์แต่ละรายการจะถูกส่งเป็นข้อมูลป้อนเข้าให้พรอมต์ถัดไป
  • ช่วยให้เกิดความเชี่ยวชาญเฉพาะด้าน — แต่ละขั้นตอนใช้พรอมต์ที่ปรับให้เหมาะกับงานย่อยเฉพาะของตน
  • แก้ข้อจำกัดของหน้าต่างบริบทด้วยรูปแบบการแบ่งส่วนและรวมผล
  • ขั้นตอนที่ไม่ขึ้นต่อกันสามารถทำงานแบบขนานเพื่อลดเวลาแฝง
  • คาดการณ์และแก้จุดบกพร่องได้ง่ายกว่าระบบที่ขับเคลื่อนด้วยเอเจนต์ทั้งหมด
  • ปรับต้นทุนให้เหมาะสมโดยใช้โมเดลที่ถูกกว่าสำหรับขั้นตอนง่าย ๆ และโมเดลราคาแพงสำหรับการให้เหตุผลที่ซับซ้อน
  • จัดทำเอกสารสายการเชื่อมเสมอ โดยระบุรหัสขั้นตอน ข้อมูลจำเพาะของข้อมูลป้อนเข้าและผลลัพธ์ และการกำหนดโมเดล
เริ่มต้นได้ฟรี

เรียนรู้ AI Prompt Engineering ด้วย AI tutor — ฟรี

เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป

คอร์ส
53
บทเรียน
199

คำถามที่พบบ่อย

บทเรียน “พรอมป์ตเชนคืออะไร” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “พรอมป์ตเชนคืออะไร” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส AI Prompt Engineering ให้อัปเกรดเป็น CoddyKit PRO คอร์ส AI Prompt Engineering มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “พรอมป์ตเชนคืออะไร”

แนวคิดการเรียกใช้พรอมป์ตตามลำดับและส่งต่อข้อมูล คุณปฏิบัติ AI Prompt Engineering ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน AI Prompt Engineering หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน AI Prompt Engineering บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน

บทเรียน “พรอมป์ตเชนคืออะไร” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน AI Prompt Engineering นี้ได้ไหม

ได้ บทเรียน AI Prompt Engineering ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. พรอมป์ตเชนคืออะไร
  2. รูปแบบผลลัพธ์สู่อินพุต
  3. เชนการแปลงแบบลำดับ
  4. การจัดการข้อผิดพลาดในพรอมป์ตเชน
← กลับไปที่ AI Prompt Engineering