การขจัดความกำกวมออกจากพรอมป์ต
เทคนิคขจัดการตีความคำสั่งได้หลายแบบ
การขจัดความกำกวมออกจากพรอมป์ต เป็นบทเรียน AI Prompt Engineering ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน AI Prompt Engineering และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส AI Prompt Engineering มีบทเรียนทั้งหมด 4 บทเรียน
ความกำกวมส่งผลต่อปัญญาประดิษฐ์อย่างไร
พรอมต์ที่กำกวมบังคับให้โมเดลต้องเลือกระหว่างการตีความที่ถูกต้องได้หลายแบบ โมเดลจะเลือกแบบหนึ่ง — โดยปกติคือแบบที่พบบ่อยที่สุด — แล้วดำเนินการต่ออย่างมั่นใจ โดยไม่บอกให้ทราบว่าได้เลือกการตีความนั้น
ผลลัพธ์คือ คุณได้รับคำตอบที่เรียบเรียงมาอย่างดีสำหรับคำถามที่ไม่ใช่คำถามที่คุณต้องการ การระบุและกำจัดความกำกวมก่อนส่งพรอมต์เร็วกว่าการเขียนผลลัพธ์ใหม่ภายหลัง
คำสั่งคลาสสิก: 'ทำให้ดีขึ้น'
'ทำให้ดีขึ้น' อาจเป็นพรอมต์ที่กำกวมที่สุดเท่าที่มีมา ดีขึ้นอย่างไร
- ให้สั้นลงหรือยาวขึ้น
- ให้เป็นทางการมากขึ้นหรือเป็นกันเองมากขึ้น
- เพิ่มตัวอย่างหรือลดตัวอย่าง
- เปลี่ยนน้ำเสียงหรือเปลี่ยนโครงสร้าง
- แก้ไวยากรณ์หรือเปลี่ยนคำศัพท์
โมเดลจะเลือกมิติหนึ่งแล้วเปลี่ยนแปลง หากมิตินั้นไม่ใช่สิ่งที่คุณต้องการ คุณจะติดอยู่ในวงจรการเขียนใหม่
import anthropic
client = anthropic.Anthropic(api_key='sk-ant-your-key-here')
original_text = (
'Our software helps companies manage their data. '
'It has many features. Customers like it a lot.'
)
# Ambiguous improvement request
vague = f'Make this better:\n\n{original_text}'
# Unambiguous improvement request
specific = (
f'Rewrite this product description to be exactly 50% shorter, '
f'more confident in tone, and replace vague phrases like "many features" '
f'and "a lot" with specific claims. Do not add new features I have not mentioned.\n\n'
f'{original_text}'
)
for label, prompt in [('VAGUE', vague), ('SPECIFIC', specific)]:
response = client.messages.create(
model='claude-opus-4-5',
max_tokens=200,
messages=[{'role': 'user', 'content': prompt}]
)
print(f'--- {label} ---')
print(response.content[0].text)
print()การตีความหลายแบบ: ตัวอย่างในทางปฏิบัติ
พรอมต์ใด ๆ ที่มีสรรพนามซึ่งไม่ระบุชัดเจน คำคุณศัพท์เชิงสัมพัทธ์ หรือไม่มีประธาน ล้วนมีโอกาสกำกวมได้ ตัวอย่างเช่น:
- 'ปรับปรุงประสิทธิภาพ' — ของอะไร ความเร็ว ความแม่นยำ หรือการมีส่วนร่วมของผู้ใช้
- 'เขียนเกี่ยวกับผลกระทบ' — ผลกระทบเชิงบวก เชิงลบ ทางเศรษฐกิจ หรือทางสังคม
- 'แก้ไขสิ่งนี้' — แก้ตรรกะ รูปแบบ การจัดรูปแบบ หรือไวยากรณ์
- 'ทำให้ดูเป็นมืออาชีพ' — ใช้คำศัพท์เป็นทางการ จัดย่อหน้าให้เป็นระบบ หรือลบอีโมจิ
import openai
client = openai.OpenAI(api_key='sk-your-key-here')
# Disambiguating 'fix this code'
buggy_code = 'def divide(a, b): return a / b'
ambiguous = f'Fix this:\n{buggy_code}'
unambiguous = (
f'Fix only the division-by-zero bug in this function. '
f'Add a guard that raises a ValueError with message "b cannot be zero" when b=0. '
f'Do not change anything else — keep the function signature and return type identical.\n\n'
f'{buggy_code}'
)
response = client.chat.completions.create(
model='gpt-4o',
messages=[{'role': 'user', 'content': unambiguous}]
)
print(response.choices[0].message.content)เทคนิคขจัดความกำกวม: ระบุการตีความ
หากคุณทราบว่าพรอมต์ของคุณอาจถูกตีความได้หลายแบบ ให้ ระบุอย่างชัดเจนว่าต้องการการตีความแบบใด
แม่แบบ: 'เมื่อฉันพูดว่า [คำที่กำกวม] ฉันหมายถึง [คำนิยามที่เฉพาะเจาะจง]'
ตัวอย่าง:
- 'เมื่อฉันพูดว่าแก้ไข ฉันหมายถึงแก้ไวยากรณ์และการสะกดเท่านั้น — อย่าเปลี่ยนเนื้อหา'
- 'เมื่อฉันพูดว่ากระชับ ฉันหมายถึงไม่เกิน 3 ประโยค'
- 'เมื่อฉันพูดว่าเป็นมืออาชีพ ฉันหมายถึงไม่ใช้สรรพนามบุรุษที่หนึ่งและไม่ใช้คำย่อ'
import anthropic
client = anthropic.Anthropic(api_key='sk-ant-your-key-here')
response = client.messages.create(
model='claude-opus-4-5',
max_tokens=256,
messages=[{
'role': 'user',
'content': (
'Edit the following paragraph. '
'When I say "edit", I mean: fix grammar and punctuation only. '
'Do NOT change vocabulary, sentence structure, or content. '
'When done, list each change you made in a numbered list below the edited text.\n\n'
'The team have went to the meeting early, but the manager '
'werent there so they waited for alot of time before leaving.'
)
}]
)
print(response.content[0].text)เทคนิคขจัดความกำกวม: กำหนดขอบเขต
ความกำกวมด้านขอบเขตมักเกิดขึ้นเมื่อขอให้ปรับปรุงหรือต่อยอดเนื้อหา แก้ไขโดยกำหนดให้ชัดเจนว่าอะไรอยู่ในขอบเขตและอะไรอยู่นอกขอบเขต
อยู่ในขอบเขต: สิ่งที่โมเดลได้รับอนุญาตให้เปลี่ยน
อยู่นอกขอบเขต: สิ่งที่ต้องคงไว้โดยไม่เปลี่ยนแปลง
เรื่องนี้สำคัญเป็นพิเศษสำหรับงานแก้ไขโค้ด การปรับแก้เอกสาร และการประมวลผลชุดข้อมูล ซึ่งการเปลี่ยนแปลงโดยไม่ได้ตั้งใจอาจก่อให้เกิดปัญหาร้ายแรง
import openai
client = openai.OpenAI(api_key='sk-your-key-here')
code_block = '''
def calculate_tax(income, rate):
return income * rate
def calculate_net(income, tax):
return income - tax
'''
response = client.chat.completions.create(
model='gpt-4o',
messages=[{
'role': 'user',
'content': (
'Add Python type hints to the following code.\n'
'IN SCOPE: adding type hints to parameters and return values only.\n'
'OUT OF SCOPE: changing function names, logic, docstrings, or formatting.\n'
'Do not add any comments or docstrings.\n\n'
+ code_block
)
}]
)
print(response.choices[0].message.content)เทคนิคขจัดความกำกวม: ระบุรูปแบบผลลัพธ์
ความกำกวมด้านผลลัพธ์เกิดขึ้นเมื่อคุณต้องการรูปแบบเฉพาะแต่ไม่ได้ระบุไว้ว่าเป็นรูปแบบใด 'ให้ข้อมูลแก่ฉัน' — เป็นย่อหน้า รายการ ตาราง หรือออบเจ็กต์ JSON
ระบุรูปแบบผลลัพธ์ที่แน่นอนที่คุณคาดหวังเสมอ เมื่อได้รับคำสั่งอย่างชัดเจน โมเดลจะจัดรูปแบบให้ตรงตามนั้นอย่างแม่นยำ
import anthropic
client = anthropic.Anthropic(api_key='sk-ant-your-key-here')
candidates_text = (
'Alice: 5 years Python, worked at Stripe, has a CS degree.\n'
'Bob: 3 years JavaScript, worked at a startup, self-taught.\n'
'Carol: 8 years Java, worked at Google, has an MS in CS.'
)
response = client.messages.create(
model='claude-opus-4-5',
max_tokens=300,
messages=[{
'role': 'user',
'content': (
'Extract the candidate data below into a JSON array. '
'Each object must have exactly these keys: name, years_experience, primary_language, '
'previous_employer, education_level. '
'education_level values: DEGREE, MASTERS, SELF_TAUGHT.\n\n'
+ candidates_text
)
}]
)
print(response.content[0].text)เทคนิคขจัดความกำกวม: ขอให้โมเดลชี้แจง
เมื่อเขียนพรอมต์ที่ซับซ้อนและทราบว่าพรอมต์นั้นกำกวม คุณสามารถสั่งให้โมเดลถามคำถามเพื่อขอความชัดเจน ก่อน ที่จะพยายามทำงาน
วิธีนี้มีประโยชน์เป็นพิเศษเมื่อสร้างผู้ช่วยปัญญาประดิษฐ์ — คุณต้องการให้โมเดลรวบรวมข้อมูลแทนการคาดเดา เช่นเดียวกับที่ที่ปรึกษามนุษย์ที่ดีควรทำ
import openai
client = openai.OpenAI(api_key='sk-your-key-here')
response = client.chat.completions.create(
model='gpt-4o',
messages=[
{
'role': 'system',
'content': (
'You are a professional copywriter. '
'Before starting any writing task, ask exactly 3 clarifying questions '
'that would most improve the output quality. '
'Only proceed to write after the user answers those questions.'
)
},
{
'role': 'user',
'content': 'Write a landing page headline for my business.'
}
]
)
print(response.choices[0].message.content)คำเชิงสัมพัทธ์ที่ต้องมีจุดอ้างอิง
คำเชิงสัมพัทธ์ไม่มีความหมายตายตัว — แต่ละคนอาจเข้าใจคำเหล่านี้แตกต่างกัน:
- 'กระชับ' — 1 ประโยค 3 ประโยค หรือ 1 ย่อหน้า
- 'เป็นทางการ' — ไม่ใช้คำย่อ ใช้รูปแบบการอ้างอิงทางวิชาการ หรือใช้ภาษากฎหมาย
- 'เรียบง่าย' — ระดับการอ่านชั้นประถมศึกษาปีที่ 5 ไม่มีศัพท์เทคนิค หรือใช้เฉพาะประโยคสั้น
- 'ครอบคลุม' — ครอบคลุมกรณีสำคัญทั้งหมด รวมกรณีขอบสุด หรือมีตัวอย่าง
แทนที่คำเชิงสัมพัทธ์ทุกคำด้วยสิ่งที่เป็นรูปธรรมและวัดผลได้
import anthropic
client = anthropic.Anthropic(api_key='sk-ant-your-key-here')
# Relative terms mapped to concrete equivalents
mapping = [
('Give me a brief summary', 'Summarize in exactly 2 sentences'),
('Write something formal', 'Write using no contractions, no first person, and Flesch-Kincaid grade 12+'),
('Make it simple', 'Use only words a 10-year-old would know; max 15 words per sentence'),
('Be comprehensive', 'Cover at least 5 distinct subtopics with one example each'),
]
for vague, concrete in mapping:
print(f'Vague: "{vague}"')
print(f'Concrete: "{concrete}"')
print()ความกำกวมของประธาน: ใครเป็นผู้ดำเนินการ
ความกำกวมของประธานเกิดขึ้นเมื่อไม่ชัดเจนว่า ใคร หรือ อะไร คือสิ่งที่คำสั่งนั้นใช้กับ
'เขียนบทนำใหม่' — ของอะไร เอกสารที่คุณวางไว้ เอกสารที่เราพูดถึงเมื่อ 5 รอบก่อน หรือเอกสารใหม่
'แปลสิ่งนี้' — ส่วนใด ทั้งคำตอบ เฉพาะส่วนสรุป หรือความคิดเห็นในโค้ด
ระบุวัตถุหรือส่วนที่ต้องการอย่างเฉพาะเจาะจงเสมอ โดยเฉพาะในการสนทนาที่มีหลายรอบ
import openai
client = openai.OpenAI(api_key='sk-your-key-here')
# Clear subject reference prevents wrong-section edits
contract_text = (
'## Section 1: Payment Terms\nPayment is due within 30 days.\n\n'
'## Section 2: Termination\nEither party may terminate with 30 days notice.'
)
response = client.chat.completions.create(
model='gpt-4o',
messages=[{
'role': 'user',
'content': (
'In the contract below, rewrite ONLY Section 2 (Termination). '
'Change the notice period from 30 days to 90 days. '
'Do not change Section 1 or any other text.\n\n'
+ contract_text
)
}]
)
print(response.choices[0].message.content)ความกำกวมด้านเวลา: เมื่อใด
การอ้างอิงเวลาในพรอมต์อาจกำกวมได้ เช่น 'เมื่อไม่นานมานี้' 'ปัจจุบัน' 'ล่าสุด' และ 'ตอนนี้'
ข้อมูลฝึกของโมเดลมีวันที่สิ้นสุด — โมเดลไม่รู้ว่า 'ตอนนี้' หมายถึงเวลาใด เว้นแต่คุณจะบอก ให้ระบุวันที่อย่างชัดเจนเสมอสำหรับงานที่ขึ้นอยู่กับเวลา
- 'งานวิจัยล่าสุด' → 'งานวิจัยที่เผยแพร่ในปี 2024 หรือ 2025'
- 'แนวปฏิบัติที่ดีที่สุดในปัจจุบัน' → 'แนวปฏิบัติที่ดีที่สุด ณ เดือนมกราคม 2025'
- 'รุ่นล่าสุด' → 'รุ่น 3.12 (เผยแพร่ในเดือนตุลาคม 2024)'
import anthropic
from datetime import date
client = anthropic.Anthropic(api_key='sk-ant-your-key-here')
today = date.today().isoformat()
response = client.messages.create(
model='claude-opus-4-5',
max_tokens=256,
system=f'Today is {today}. Use this as the reference for any time-related words.',
messages=[{
'role': 'user',
'content': (
'Describe the best practices for Python async programming '
'as of January 2025. If your knowledge does not cover this timeframe, '
'say so explicitly and share what you know up to your cutoff.'
)
}]
)
print(response.content[0].text)การสร้างเรดาร์ตรวจจับความกำกวม
ก่อนส่งพรอมต์ใด ๆ ให้ตรวจสอบสัญญาณความกำกวมเหล่านี้:
- สรรพนามที่ไม่มีสิ่งอ้างอิงชัดเจน: มัน, นี้, นั้น, พวกเขา
- คำคุณศัพท์เชิงสัมพัทธ์: ดีกว่า, สั้นกว่า, เป็นทางการ, เรียบง่าย, ครอบคลุม, ล่าสุด
- คำกริยาที่คลุมเครือ: แก้ไข, ปรับปรุง, อัปเดต, ทำ, จัดการบางอย่างกับ
- ไม่มีการระบุขอบเขต: ไม่ได้กล่าวถึงว่าอะไรอยู่ในหรือนอกขอบเขต
- ไม่มีการระบุรูปแบบ: ไม่ได้ระบุรูปแบบผลลัพธ์
- ไม่มีบริบท: ไม่ได้ระบุกลุ่มเป้าหมายหรือจุดประสงค์ของผลลัพธ์
def scan_prompt_for_ambiguity(prompt):
'''Simple heuristic scanner for common ambiguity patterns.'''
warnings = []
vague_verbs = ['fix', 'improve', 'make it', 'update', 'change it', 'redo']
relative_adj = ['better', 'shorter', 'longer', 'formal', 'simple', 'recent', 'comprehensive']
missing_format = ['json', 'table', 'list', 'bullet', 'paragraph', 'word', 'sentence']
lower = prompt.lower()
for v in vague_verbs:
if v in lower:
warnings.append(f'Vague verb detected: "{v}" — specify what change exactly')
for a in relative_adj:
if a in lower:
warnings.append(f'Relative adjective: "{a}" — anchor with a measurable definition')
if not any(f in lower for f in missing_format):
warnings.append('No output format specified — add format, length, or structure')
return warnings
test = 'Make the report better and more formal.'
print('Prompt:', test)
for w in scan_prompt_for_ambiguity(test):
print(' WARNING:', w)ตรวจสอบความเข้าใจ
นักพัฒนาส่งพรอมต์นี้: 'ทำให้โค้ดเรียบง่ายขึ้น' ปัญญาประดิษฐ์ทำให้โค้ดสั้นลง แต่นักพัฒนาต้องการให้ใช้ชื่อตัวแปรที่อ่านง่ายขึ้น ไม่ใช่ทำให้โค้ดสั้นลง ปัญหาหลักคืออะไร
การขจัดความกำกวม — ทบทวน
ความกำกวมบังคับให้โมเดลต้องเดา — และการเดาของโมเดลคือการตีความที่เป็นค่าเฉลี่ยที่สุด ไม่ใช่การตีความของคุณ เทคนิคสำคัญในการขจัดความกำกวมมีดังนี้:
- ระบุการตีความ: 'เมื่อฉันพูดว่า X ฉันหมายถึง Y'
- กำหนดขอบเขต: ระบุรายการสิ่งที่อยู่ในและอยู่นอกขอบเขต
- ระบุรูปแบบผลลัพธ์: JSON / ตาราง / ย่อหน้า / จำนวนประโยค
- กำหนดจุดอ้างอิงให้คำเชิงสัมพัทธ์: 'กระชับ' → '2 ประโยค', 'เป็นทางการ' → 'ไม่ใช้คำย่อ'
- ระบุประธาน: 'ส่วนที่ 2' ไม่ใช่ 'ส่วนนี้'
- ขอให้ชี้แจง: สั่งให้โมเดลถามคำถามก่อนดำเนินการ
คำถามที่พบบ่อย
บทเรียน “การขจัดความกำกวมออกจากพรอมป์ต” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การขจัดความกำกวมออกจากพรอมป์ต” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- เหตุใดความเฉพาะเจาะจงจึงสำคัญ
- การขจัดความกำกวมออกจากพรอมป์ต
- การเพิ่มรายละเอียดที่เป็นรูปธรรม
- เปรียบเทียบพรอมป์ตแบบคลุมเครือกับแบบเฉพาะเจาะจง