AI Prompt Engineering · บทเรียน

ส่วนประกอบพรอมป์ตแบบโมดูลาร์

แยกบริบท คำสั่ง ข้อจำกัด และรูปแบบผลลัพธ์ออกจากกันอย่างชัดเจน

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

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

ปัญหาของ Prompt แบบรวมเป็นก้อนเดียว

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

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

Prompt แบบแยกส่วนช่วยแก้ปัญหาเหล่านี้ได้ทั้งหมด

ห้าส่วนหลักของ Prompt

Prompt ที่มีโครงสร้างดีประกอบด้วยห้าส่วนที่แยกจากกันอย่างชัดเจน โดยแต่ละส่วนมีจุดประสงค์ชัดเจน:

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

ไม่ใช่ทุก Prompt ที่จำเป็นต้องมีครบทั้งห้าส่วน ใช้เฉพาะส่วนที่จำเป็นเท่านั้น

ส่วนบริบท

ส่วนบริบทให้ข้อมูลพื้นหลังโดยไม่บอกโมเดลว่าต้องทำอะไร บริบทที่ดีประกอบด้วย:

  • ผู้ใช้ปลายทางคือใคร
  • แพลตฟอร์มหรือผลิตภัณฑ์นี้มีไว้สำหรับอะไร
  • ความรู้เฉพาะโดเมนที่เกี่ยวข้อง
  • สถานะก่อนหน้าใด ๆ ที่โมเดลควรรับรู้
context_section = '''
<context>
You are assisting a customer support agent at a B2B SaaS company.
The company sells project management software used by engineering teams.
Customers are typically CTOs, engineering managers, or senior developers.
The support agent is handling a live chat conversation with a customer.
</context>
'''

print(context_section)

ส่วนงาน

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

task_section = '''
<task>
Draft a response to the customer message below.
The response should:
1. Acknowledge the customer's issue
2. Provide a concrete next step
3. Set a realistic expectation for resolution time
</task>

<customer_message>
Our Gantt chart view stopped loading after the last update.
This is blocking our sprint planning session today.
</customer_message>
'''

print(task_section)

ส่วนข้อจำกัด

ข้อจำกัดกำหนดกรอบป้องกัน — สิ่งที่โมเดลต้อง NOT ทำ และขีดจำกัดที่ระบุไว้อย่างชัดเจนซึ่งโมเดลต้องเคารพ

constraints_section = '''
<constraints>
- Do not promise a fix by a specific date unless you are certain.
- Do not mention competitor products by name.
- Keep the response under 100 words.
- Use a professional but empathetic tone.
- Do not ask the customer for information already provided in their message.
</constraints>
'''

print(constraints_section)

ส่วนรูปแบบผลลัพธ์

ส่วนรูปแบบผลลัพธ์บอกโมเดลอย่างชัดเจนว่าต้องจัดโครงสร้างคำตอบอย่างไร — โครงร่าง JSON หัวข้อ Markdown ข้อความธรรมดา รายการลำดับเลข และอื่น ๆ

output_format_section = '''
<output_format>
Respond with a JSON object containing:
{
  "subject": "string (email subject line)",
  "body": "string (email body, plain text, under 150 words)",
  "priority": "high | medium | low",
  "escalate": true | false
}
Do not include any text outside the JSON object.
</output_format>
'''

print(output_format_section)

ส่วนตัวอย่าง

ตัวอย่างแสดงคู่ข้อมูลนำเข้าและผลลัพธ์ที่ถูกต้องให้โมเดลเห็น วางตัวอย่างไว้หลังข้อจำกัด เพื่อให้โมเดลเห็นกฎก่อนการสาธิต

examples_section = '''
<examples>
  <example>
    <input>Customer: My invoices are not downloading.</input>
    <output>{
      "subject": "Invoice Download Issue",
      "body": "Thank you for reaching out. We see the issue with invoice downloads and our team is investigating. We expect a fix within 2 hours. We will email you once resolved.",
      "priority": "high",
      "escalate": true
    }</output>
  </example>
</examples>
'''

print(examples_section)

การประกอบ Prompt แบบแยกส่วน

แนวทางแบบแยกส่วนทำให้การประกอบและแก้ไขทำได้ตรงไปตรงมา แต่ละส่วนสามารถแก้ไขได้อย่างอิสระ

def build_support_prompt(customer_message):
    context = '<context>B2B SaaS customer support for project management software.</context>'
    task = f'<task>Draft a JSON response to this customer message.</task>\n<customer_message>{customer_message}</customer_message>'
    constraints = '<constraints>Under 100 words. Professional tone. No competitor names.</constraints>'
    output_fmt = '<output_format>Return JSON: {"subject": str, "body": str, "priority": str, "escalate": bool}</output_format>'
    return '\n\n'.join([context, task, constraints, output_fmt])

message = 'The Gantt chart stopped loading after your last update.'
print(build_support_prompt(message))

ประโยชน์ต่อการแก้ไขข้อผิดพลาด

เมื่อ Prompt แบบแยกส่วนสร้างผลลัพธ์ที่ไม่ดี คุณสามารถแยกตรวจสอบส่วนที่มีปัญหาได้:

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

คุณสามารถเปลี่ยนทีละส่วนและทดสอบซ้ำได้โดยไม่ต้องเขียน Prompt ทั้งหมดใหม่

ประโยชน์ต่อการดูแลรักษา

Prompt แบบแยกส่วนที่จัดเก็บเป็นออบเจ็กต์หรือฟังก์ชันที่มีโครงสร้างดูแลรักษาได้ง่ายกว่าลิเทอรัลสตริงยาว ๆ มาก:

  • อัปเดตบริบทเมื่อผลิตภัณฑ์เปลี่ยนแปลงโดยไม่ต้องแก้ตรรกะของงาน
  • เปลี่ยนรูปแบบผลลัพธ์จาก JSON เป็น Markdown โดยไม่ต้องเปลี่ยนข้อจำกัด
  • ทดสอบชุดตัวอย่างต่าง ๆ แบบ A/B โดยคงส่วนอื่นทั้งหมดไว้เหมือนเดิม
  • ควบคุมเวอร์ชันของแต่ละส่วนแยกจากกัน
class Prompt:
    def __init__(self):
        self.context = ''
        self.task = ''
        self.constraints = []
        self.output_format = ''
        self.examples = []

    def build(self):
        parts = []
        if self.context:
            parts.append(f'<context>\n{self.context}\n</context>')
        if self.task:
            parts.append(f'<task>\n{self.task}\n</task>')
        if self.constraints:
            c = '\n'.join(f'- {r}' for r in self.constraints)
            parts.append(f'<constraints>\n{c}\n</constraints>')
        if self.output_format:
            parts.append(f'<output_format>\n{self.output_format}\n</output_format>')
        return '\n\n'.join(parts)

เมื่อใดควรละเว้นบางส่วน

ไม่ใช่ทุก Prompt ที่จำเป็นต้องมีครบทั้งห้าส่วน ใช้แนวทางนี้:

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

การระบุรายละเอียดใน Prompt แบบง่ายมากเกินไปเพิ่มความรบกวนโดยไม่ก่อให้เกิดประโยชน์

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

Prompt แบบแยกส่วนสร้างโครงสร้างผลลัพธ์ที่ไม่ถูกต้อง คุณควรตรวจสอบส่วนใดก่อน

ส่วนแบบแยกส่วน — ประเด็นสำคัญ

ส่วนต่าง ๆ ของ Prompt แบบแยกส่วนเป็นรากฐานของวิศวกรรม Prompt ที่ดูแลรักษาและแก้ไขข้อผิดพลาดได้:

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

เรียนรู้ 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 ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน

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

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

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

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

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

  1. การใช้แท็ก XML เป็นตัวแบ่งส่วน
  2. ส่วนประกอบพรอมป์ตแบบโมดูลาร์
  3. รูปแบบพรอมป์ตส่วนหัว-เนื้อหา-ส่วนท้าย
  4. แนวทางปฏิบัติที่ดีในการจัดระเบียบพรอมป์ต
← กลับไปที่ AI Prompt Engineering