การจัดรูปแบบผลลัพธ์ (JSON, XML, Markdown)
บังคับให้โมเดลส่งคืนโครงสร้างที่แยกวิเคราะห์ได้โดยใช้โหมด JSON แท็ก XML หรือ Markdown ที่เคร่งครัด เพื่อให้เครื่องอ่านผลลัพธ์ได้
การจัดรูปแบบผลลัพธ์ (JSON, XML, Markdown) เป็นบทเรียน AI Agents ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน AI Agents และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส AI Agents มีบทเรียนทั้งหมด 4 บทเรียน
เหตุใดรูปแบบจึงสำคัญ
เอเจนต์ส่งผลลัพธ์ของโมเดลต่อเข้าไปในโค้ด ร้อยแก้วแบบอิสระทำให้ตัวแยกวิเคราะห์ทำงานผิดพลาด ผลลัพธ์แบบมีโครงสร้าง (JSON, XML และอื่น ๆ) เป็นสิ่งจำเป็นสำหรับเอเจนต์ที่ใช้งานจริงทุกตัว
โหมด JSON
OpenAI และผู้ให้บริการส่วนใหญ่มีโหมด JSON ที่รับประกันผลลัพธ์ซึ่งแยกวิเคราะห์ได้:
response = client.chat.completions.create(
model='gpt-4o-mini',
messages=messages,
response_format={'type': 'json_object'},
)
import json
data = json.loads(response.choices[0].message.content)ผลลัพธ์แบบมีโครงสร้าง (โครงสร้างแบบเข้มงวด)
ผลลัพธ์แบบมีโครงสร้างของ OpenAI รับ JSON Schema และรับประกันว่าผลลัพธ์จะตรงตามโครงสร้าง:
schema = {
'name': 'extract_person',
'schema': {
'type': 'object',
'properties': {
'name': {'type': 'string'},
'age': {'type': 'integer'}
},
'required': ['name', 'age'],
'additionalProperties': False
},
'strict': True
}
response = client.chat.completions.create(
model='gpt-4o-2024-08-06',
messages=messages,
response_format={'type': 'json_schema', 'json_schema': schema}
)แท็ก XML (รูปแบบ Anthropic)
Anthropic แนะนำแท็ก XML ให้เป็นรูปแบบที่เชื่อถือได้มากที่สุดสำหรับ Claude:
system = '''
Return your answer wrapped in XML tags:
<reasoning>Your step-by-step thinking</reasoning>
<answer>The final answer</answer>
'''
# Parse with a simple regex or BeautifulSoup
import re
ans = re.search(r'<answer>(.*?)</answer>', text, re.S).group(1)Markdown สำหรับมนุษย์
ใช้ Markdown เมื่อผลลัพธ์ถูกส่งตรงไปยังมนุษย์ (ส่วนติดต่อการสนทนา เอกสาร)
หลีกเลี่ยง Markdown เมื่อต่อผลลัพธ์เข้าไปในโค้ด — Markdown แยกวิเคราะห์อย่างมีประสิทธิภาพได้ยาก
เลือกรูปแบบที่เหมาะกับผู้รับแต่ละประเภท
- JSON — ส่งเข้าโค้ดของคุณ
- XML — ส่งเข้าโค้ดของคุณ โดยเฉพาะเมื่อใช้ Claude
- Markdown — ส่งไปยังส่วนติดต่อสำหรับมนุษย์
- ข้อความธรรมดา — ส่งไปยัง LLM อีกตัว
แสดงให้ดู อย่าบอกเพียงอย่างเดียว
ใส่ตัวอย่างผลลัพธ์ที่ต้องการแบบตรงตัวไว้ในพรอมป์ต์เสมอ:
system = '''
Return a JSON object like:
{
"action": "reply",
"content": "Hi there!",
"confidence": 0.95
}
'''
print(system.strip())
บังคับโทเคนแรก
สำหรับ Anthropic ให้เติมข้อความรอบของผู้ช่วยล่วงหน้าด้วย { หรือ [ เพื่อบังคับให้ผลลัพธ์เป็น JSON:
messages = [
{'role': 'user', 'content': 'Return JSON with name and age.'},
{'role': 'assistant', 'content': '{'}
]
# Output will start at '{ "name": ...' guaranteed.
for m in messages:
print(f"{m['role']}: {m['content']}")
print('Output will start at \'{ "name": ...\' guaranteed.')
จัดการส่วนเกินท้ายผลลัพธ์
แม้จะใช้โหมด JSON แล้ว บางครั้งโมเดลก็เพิ่มคำนำหน้าอย่าง "ได้เลย! นี่คือ JSON:" ตัวแยกวิเคราะห์ที่ทนทานจะ:
- ค้นหา
{หรือ[ตัวแรก - นับวงเล็บเพื่อหาวงเล็บปิดที่ตรงกัน
- แยกวิเคราะห์เฉพาะส่วนนั้น
พรอมป์ต์ซ่อมแซม
หากการแยกวิเคราะห์ล้มเหลว ให้ส่งผลลัพธ์ที่เสียหายกลับไปยังโมเดลและขอให้แก้ไข:
repair_prompt = f'''
The previous output failed to parse with error: {error}.
Return ONLY a valid JSON object matching the schema. No prose.
Previous output:
{bad_output}
'''Pydantic สำหรับการตรวจสอบ
ตรวจสอบพจนานุกรมที่แยกวิเคราะห์แล้วด้วยโมเดล Pydantic — ตรวจสอบชนิดข้อมูลของฟิลด์ และแจ้งข้อผิดพลาดเมื่อมีฟิลด์ที่ขาดหาย
from pydantic import BaseModel
class Person(BaseModel):
name: str
age: int
person = Person.model_validate_json(response_text)
print(person.name, person.age)รูปแบบที่ดีที่สุดสำหรับโค้ด
คุณกำลังส่งผลลัพธ์ต่อเข้าไปใน Python รูปแบบใดน่าเชื่อถือที่สุด
ทบทวน
กฎสามข้อ:
- เลือกรูปแบบให้ตรงกับผู้รับ
- แสดงตัวอย่าง อย่าเพียงอธิบาย
- ตรวจสอบการตอบกลับทุกครั้งและเตรียมแนวทางซ่อมแซมไว้
คำถามที่พบบ่อย
บทเรียน “การจัดรูปแบบผลลัพธ์ (JSON, XML, Markdown)” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การจัดรูปแบบผลลัพธ์ (JSON, XML, Markdown)” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส AI Agents ให้อัปเกรดเป็น CoddyKit PRO คอร์ส AI Agents มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การจัดรูปแบบผลลัพธ์ (JSON, XML, Markdown)”
บังคับให้โมเดลส่งคืนโครงสร้างที่แยกวิเคราะห์ได้โดยใช้โหมด JSON แท็ก XML หรือ Markdown ที่เคร่งครัด เพื่อให้เครื่องอ่านผลลัพธ์ได้ คุณปฏิบัติ AI Agents ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน AI Agents หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน AI Agents บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน
บทเรียน “การจัดรูปแบบผลลัพธ์ (JSON, XML, Markdown)” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน AI Agents นี้ได้ไหม
ได้ บทเรียน AI Agents ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- ซีโรช็อต ฟิวช็อต และการคิดเป็นลำดับ
- บทบาทระบบกับผู้ใช้กับผู้ช่วย
- การจัดรูปแบบผลลัพธ์ (JSON, XML, Markdown)
- การป้องกันการแทรกคำสั่งในข้อมูลนำเข้า