0Pricing
AI Agents · บทเรียน

การจัดรูปแบบผลลัพธ์ (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:" ตัวแยกวิเคราะห์ที่ทนทานจะ:

  1. ค้นหา { หรือ [ ตัวแรก
  2. นับวงเล็บเพื่อหาวงเล็บปิดที่ตรงกัน
  3. แยกวิเคราะห์เฉพาะส่วนนั้น

พรอมป์ต์ซ่อมแซม

หากการแยกวิเคราะห์ล้มเหลว ให้ส่งผลลัพธ์ที่เสียหายกลับไปยังโมเดลและขอให้แก้ไข:

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 รูปแบบใดน่าเชื่อถือที่สุด

ทบทวน

กฎสามข้อ:

  1. เลือกรูปแบบให้ตรงกับผู้รับ
  2. แสดงตัวอย่าง อย่าเพียงอธิบาย
  3. ตรวจสอบการตอบกลับทุกครั้งและเตรียมแนวทางซ่อมแซมไว้

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

บทเรียน “การจัดรูปแบบผลลัพธ์ (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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

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

  1. ซีโรช็อต ฟิวช็อต และการคิดเป็นลำดับ
  2. บทบาทระบบกับผู้ใช้กับผู้ช่วย
  3. การจัดรูปแบบผลลัพธ์ (JSON, XML, Markdown)
  4. การป้องกันการแทรกคำสั่งในข้อมูลนำเข้า
← กลับไปที่ AI Agents