AI Prompt Engineering · บทเรียน

การสร้างรูปแบบเติมคำในช่องว่าง

ใช้ตัวแทน {{variable}} และการแทนที่สตริงใน Python

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

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

รูปแบบการใช้ตัวยึดตำแหน่ง

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

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

รูปแบบอื่นที่คุณอาจพบ ได้แก่ เครื่องหมายวงเล็บปีกกาเดี่ยว {variable} วงเล็บมุม <variable> และตัวแปรที่ใช้ตัวอักษรพิมพ์ใหญ่ทั้งหมด เลือกใช้แบบใดแบบหนึ่งและใช้ให้สม่ำเสมอ

การแทนค่าตัวยึดตำแหน่งพื้นฐาน

รูปแบบเติมคำในช่องว่างที่ง่ายที่สุดคือการแทนค่าสตริงโดยตรง:

แม่แบบ: "เขียนคำอธิบาย {{product}} จำนวน {{word_count}} คำสำหรับ {{audience}}"

เมื่อเติมค่าแล้ว: "เขียนคำอธิบาย TaskFlow Pro จำนวน 150 คำสำหรับเจ้าของธุรกิจขนาดเล็ก"

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

หมวดหมู่ตัวยึดตำแหน่งที่พบบ่อย

สร้างแม่แบบโดยใช้หมวดหมู่ตัวยึดตำแหน่งมาตรฐานที่ครอบคลุมกรณีการใช้งานส่วนใหญ่:

  • {{customer_name}} — ชื่อผู้รับหรือชื่อหัวข้อ
  • {{product}} — ผลิตภัณฑ์ บริการ หรือหัวข้อที่กำลังเขียนถึง
  • {{tone}} — เช่น เป็นทางการ ไม่เป็นทางการ เร่งด่วน หรือกระตือรือร้น
  • {{audience}} — กลุ่มเป้าหมายของเนื้อหา
  • {{word_count}} — ความยาวเป้าหมาย
  • {{format}} — รายการหัวข้อย่อย ย่อหน้า หรือรายการลำดับเลข
  • {{context}} — ข้อมูลพื้นหลังเฉพาะสำหรับกรณีนี้

การตั้งชื่อให้สอดคล้องกันในทุกแม่แบบช่วยให้ค้นหาในคลังได้ง่ายขึ้นและลดข้อผิดพลาด

การแทนค่าด้วยการจัดรูปแบบสตริงของ Python

เมธอดสตริงในตัวของ Python อย่าง .format() เป็นวิธีง่าย ๆ ในการเติมค่าตัวยึดตำแหน่งโดยใช้ไวยากรณ์ {variable}:

import openai

client = openai.OpenAI(api_key='sk-...')

EMAIL_TEMPLATE = '''Write a follow-up email from {sender_name} to {recipient_name}.
Context: {context}
Tone: {tone}
Length: {word_count} words.
Include a clear call to action: {cta}.
Do not mention competitors. Active voice. No bullet points.'''

def generate_email(sender, recipient, context, tone, word_count, cta):
    prompt = EMAIL_TEMPLATE.format(
        sender_name=sender,
        recipient_name=recipient,
        context=context,
        tone=tone,
        word_count=word_count,
        cta=cta
    )

    response = client.chat.completions.create(
        model='gpt-4o-mini',
        messages=[{'role': 'user', 'content': prompt}]
    )
    return response.choices[0].message.content

result = generate_email(
    sender='Sarah Chen',
    recipient='Mr. Patel',
    context='We met at the DevConf conference last week and discussed API integration.',
    tone='warm and professional',
    word_count=120,
    cta='Schedule a 20-minute demo call'
)
print(result)

แนวทางสตริง f ของ Python

สตริง f ของ Python มีไวยากรณ์การแทนค่าแบบแทรกในบรรทัด ซึ่งนักพัฒนาบางคนชอบเพราะอ่านง่าย:

import openai

client = openai.OpenAI(api_key='sk-...')

def generate_product_description(product, audience, tone, word_count, key_benefit):
    prompt = (
        f'Write a product description for {product}, designed for {audience}. '
        f'Tone: {tone}. '
        f'Length: {word_count} words. '
        f'Lead with this key benefit: {key_benefit}. '
        'Active voice. No bullet points. No pricing mentions.'
    )

    response = client.chat.completions.create(
        model='gpt-4o-mini',
        messages=[{'role': 'user', 'content': prompt}]
    )
    return response.choices[0].message.content

print(generate_product_description(
    product='FocusFlow, a time-blocking productivity app',
    audience='freelancers and independent consultants',
    tone='energetic and practical',
    word_count=150,
    key_benefit='Reclaim two hours every day by blocking distractions automatically'
))

การจัดการอักขระพิเศษในตัวยึดตำแหน่ง

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

แนวทางป้องกัน:

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

ทดสอบแม่แบบด้วยข้อมูลนำเข้ากรณีขอบเขตเสมอ ได้แก่ สตริงว่าง สตริงที่มีเครื่องหมายอัญประกาศ สตริงที่มีอักขระขึ้นบรรทัดใหม่ และสตริงที่ยาวมาก

ค่าเริ่มต้นในแม่แบบ

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

def build_prompt(product, audience, tone='professional and friendly', word_count=200, format_style='prose'):
    format_instruction = {
        'prose': 'Write in continuous paragraphs. No bullet points.',
        'bullets': 'Use bullet points. Each point is one sentence.',
        'numbered': 'Use a numbered list. Each item is one sentence.'
    }.get(format_style, 'Write in continuous paragraphs.')

    return (
        f'Write a description of {product} for {audience}. '
        f'Tone: {tone}. '
        f'Length: {word_count} words. '
        f'{format_instruction} '
        'Active voice. No competitor mentions.'
    )

# Minimal call — uses all defaults
print(build_prompt('Notion', 'students'))

# Full call — overrides defaults
print(build_prompt('Notion', 'students', tone='casual', word_count=100, format_style='bullets'))

แม่แบบหลายบล็อก

พรอมต์ที่ซับซ้อนอาจมีบล็อกตัวแปรหลายบล็อก เช่น บล็อกพรอมต์ระบบและบล็อกข้อความผู้ใช้ ซึ่งแต่ละบล็อกมีตัวยึดตำแหน่งของตนเอง:

SYSTEM_TEMPLATE = 'You are a {role} writing for {company}. Your audience is {audience}. Style: {style}.'

USER_TEMPLATE = 'Write a {content_type} about {topic}. Length: {word_count} words. Deadline tone: {urgency}.'

import openai

client = openai.OpenAI(api_key='sk-...')

def generate(role, company, audience, style, content_type, topic, word_count, urgency):
    system_msg = SYSTEM_TEMPLATE.format(
        role=role, company=company, audience=audience, style=style
    )
    user_msg = USER_TEMPLATE.format(
        content_type=content_type, topic=topic,
        word_count=word_count, urgency=urgency
    )

    response = client.chat.completions.create(
        model='gpt-4o-mini',
        messages=[
            {'role': 'system', 'content': system_msg},
            {'role': 'user', 'content': user_msg}
        ]
    )
    return response.choices[0].message.content

การตรวจสอบตัวยึดตำแหน่งก่อนสร้างผลลัพธ์

ตรวจสอบเสมอว่าตัวยึดตำแหน่งที่จำเป็นทั้งหมดได้รับการเติมค่าก่อนส่งพรอมต์ หากขาดตัวยึดตำแหน่ง โมเดลจะได้รับข้อความตามตัวอักษรอย่าง {{product}} และอาจสร้างผลลัพธ์ที่แปลกประหลาด:

import re

def validate_template(template_str, provided_vars):
    required = set(re.findall(r'\{\{(\w+)\}\}', template_str))
    missing = required - set(provided_vars.keys())

    if missing:
        raise ValueError(f'Missing required template variables: {missing}')

    return True

template = 'Write a {{word_count}}-word {{tone}} description of {{product}} for {{audience}}.'
vars_provided = {'word_count': 150, 'tone': 'friendly', 'product': 'TaskFlow'}

try:
    validate_template(template, vars_provided)
except ValueError as e:
    print(f'Template error: {e}')
    # Output: Template error: Missing required template variables: {{'audience'}}

บล็อกแม่แบบแบบมีเงื่อนไข

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

def build_report_prompt(topic, audience, word_count, include_recommendations=False, cta=None):
    prompt = f'Write a report on {topic} for {audience}. Length: {word_count} words. Active voice.'

    if include_recommendations:
        prompt += ' End with a numbered list of 3 specific recommendations.'

    if cta:
        prompt += f' Close with this call to action: {cta}'

    return prompt

# Without optional sections
print(build_report_prompt('cloud cost optimization', 'engineering managers', 400))

# With optional sections
print(build_report_prompt(
    topic='cloud cost optimization',
    audience='engineering managers',
    word_count=600,
    include_recommendations=True,
    cta='Book a cost audit with our team at cloudcost.io'
))

ตัวแปรตัวเลือกแบบแจกแจงค่า

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

VALID_TONES = ['professional', 'casual', 'urgent', 'empathetic', 'enthusiastic']
VALID_FORMATS = ['prose', 'bullets', 'numbered', 'table']

def generate_content(topic, tone, format_style, word_count):
    if tone not in VALID_TONES:
        raise ValueError(f'Invalid tone: {tone}. Choose from: {VALID_TONES}')
    if format_style not in VALID_FORMATS:
        raise ValueError(f'Invalid format: {format_style}. Choose from: {VALID_FORMATS}')

    format_map = {
        'prose': 'continuous paragraphs, no lists',
        'bullets': 'bullet points',
        'numbered': 'numbered list',
        'table': 'a markdown table'
    }

    prompt = (f'Write about {topic} in {tone} tone. '
              f'Format: {format_map[format_style]}. '
              f'Length: {word_count} words. Active voice.')

    return prompt

ตรวจสอบความรู้: รูปแบบเติมคำในช่องว่าง

คุณมีแม่แบบนี้: 'Write a {tone} email to {recipient} about {topic}. Length: {word_count} words.'

คุณเรียกใช้ด้วย: tone='formal', recipient='the team', word_count=100 — แต่ลืมพารามิเตอร์ topic

จะเกิดอะไรขึ้น

สรุป: การสร้างรูปแบบเติมคำในช่องว่าง

รูปแบบพรอมต์แบบเติมคำในช่องว่างใช้ตัวยึดตำแหน่ง ({{variable}}, {variable} หรือรูปแบบที่คล้ายกัน) เพื่อระบุส่วนที่เปลี่ยนแปลงได้ของแม่แบบที่นำกลับมาใช้ใหม่ได้ .format() ของ Python และสตริง f เป็นกลไกการแทนค่าที่ใช้กันมากที่สุด

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

ในบทเรียนถัดไป คุณจะได้สำรวจ Jinja2 และ string.Template ของ Python เพื่อรองรับความต้องการด้านการแทนค่าตัวแปรที่ซับซ้อนยิ่งขึ้น

เริ่มต้นได้ฟรี

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

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

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

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

บทเรียน “การสร้างรูปแบบเติมคำในช่องว่าง” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “การสร้างรูปแบบเติมคำในช่องว่าง”

ใช้ตัวแทน {{variable}} และการแทนที่สตริงใน Python คุณปฏิบัติ 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. พรอมป์ตเทมเพลตคืออะไร
  2. การสร้างรูปแบบเติมคำในช่องว่าง
  3. เทคนิคการแทนที่ตัวแปร
  4. การนำเทมเพลตกลับมาใช้กับงานต่าง ๆ
← กลับไปที่ AI Prompt Engineering