วิธีจัดการการปฏิเสธ Fable 5 ใน API

คำขอ Fable 5 สามารถได้รับคำตอบจาก Opus 4.8 เรียนรู้วิธีตรวจจับการเปลี่ยนเส้นทางผ่าน response.model, ใช้พารามิเตอร์ beta fallbacks และทดสอบเส้นทางปฏิเสธ

Ashley Innocent

Ashley Innocent

2 July 2026

วิธีจัดการการปฏิเสธ Fable 5 ใน API

Apidog สำหรับองค์กร

การติดตั้งแบบ On-Premises

SSO & RBAC

รองรับมาตรฐาน SOC 2

สำรวจ Apidog Enterprise

คุณเรียกใช้ claude-fable-5 การตอบกลับดูเป็นปกติ จากนั้นคุณตรวจสอบฟิลด์ model และพบว่าเป็น claude-opus-4-8 นั่นหมายความว่าคำขอของคุณไปกระตุ้นตัวจัดประเภทความปลอดภัย ทำให้ Fable 5 ปฏิเสธการตอบและมีโมเดลอื่นเข้ามาทำหน้าที่แทน นี่ไม่ใช่ข้อผิดพลาด แต่เป็นวิธีการทำงานที่ Fable 5 ได้รับการออกแบบมา และการผสานรวมของคุณควรรองรับสิ่งนี้โดยเจตนา ไม่ใช่โดยบังเอิญ

เราได้อธิบายเหตุผลเบื้องหลังสถาปัตยกรรมนี้ไว้ในบทความของเราเกี่ยวกับ มาตรการป้องกันความปลอดภัยของ Fable 5 บทความนี้คือคู่มือภาคปฏิบัติ คุณจะได้เรียนรู้ว่าอะไรที่ทำให้เกิดการเปลี่ยนเส้นทาง (reroute) วิธีตรวจจับด้วยโค้ด พารามิเตอร์ fallbacks รุ่นเบต้าที่ช่วยให้การลองใหม่เป็นไปโดยอัตโนมัติ และวิธีทดสอบการจัดการการปฏิเสธของคุณก่อนที่ผู้ใช้จริงจะเจอสถานการณ์นั้น

เหตุใด Fable 5 จึงเปลี่ยนเส้นทางคำขอบางส่วน

Claude Fable 5 มาพร้อมกับตัวจัดประเภทความปลอดภัยที่คัดกรองคำขอที่เข้ามา ตัวจัดประเภทเหล่านี้จะตรวจสอบสามโดเมน: ความปลอดภัยทางไซเบอร์ ชีววิทยาและเคมี และการกลั่นโมเดล เมื่อตัวจัดประเภททำงาน Fable 5 จะปฏิเสธคำขอ ในส่วนของบริการสำหรับผู้บริโภคของ Claude คำขอจะถูกจัดการโดย Claude Opus 4.8 และผู้ใช้จะได้รับการแจ้งเตือนถึงเหตุการณ์ดังกล่าว ในส่วนของ API การกู้คืนขึ้นอยู่กับคุณ และนี่คือที่มาของพารามิเตอร์ fallbacks

ตัวจัดประเภทไม่ได้หยุดนิ่ง หลังจากการระงับในเดือนมิถุนายน Anthropic ได้ฝึกอบรมตัวจัดประเภทใหม่เพื่อตอบโต้เทคนิคการ "เจลเบรก" ที่มีการรายงาน ซึ่งเวอร์ชันที่อัปเดตสามารถบล็อกความพยายามได้มากกว่า 99% Fable 5 ได้รับการนำกลับมาใช้งานอีกครั้งในวันที่ 1 กรกฎาคม 2026 พร้อมกับตัวจัดประเภทใหม่ หากคุณหยุดการผสานรวมของคุณชั่วคราวในช่วงที่ระบบล่ม ศูนย์รวมข้อมูล Fable 5 กลับมาแล้ว ของเรามีไทม์ไลน์ฉบับเต็มและสิ่งที่เปลี่ยนแปลงไป

บริบทเพิ่มเติมอีกเล็กน้อยจะช่วยให้เข้าใจได้ดีขึ้น ตัวจัดประเภทจะอยู่ด้านหน้าโมเดล ไม่ได้อยู่ภายในโมเดล Claude Mythos 5 เป็นโมเดลเดียวกันที่ไม่มีตัวจัดประเภท และการเข้าถึงจำกัดเฉพาะผู้เข้าร่วม Project Glasswing เซสชันของ Fable มากกว่า 95% ไม่มีกรณีการทำงานแบบ fallback เลย และสำหรับเซสชันเหล่านั้น ประสิทธิภาพของ Fable 5 จะเหมือนกับ Mythos 5 โดยสิ้นเชิง เราได้อธิบายความแตกต่างอย่างละเอียดใน Fable 5 เทียบกับ Mythos 5

การเปลี่ยนเส้นทางมีความหมายอย่างไรสำหรับแอปของคุณ

Fable 5 และ Opus 4.8 เป็นโมเดลที่แข็งแกร่งทั้งคู่ แต่ไม่สามารถใช้แทนกันได้จากมุมมองทางวิศวกรรม Fable 5 มีหน้าต่างบริบท 1 ล้านโทเค็น โดยมีเอาต์พุตสูงสุด 128K ในราคา $10 ต่อล้านโทเค็นอินพุต และ $50 ต่อล้านโทเค็นเอาต์พุต; Opus 4.8 มีโครงสร้างราคาและโปรไฟล์พฤติกรรมของตัวเอง ภาพรวมโมเดล จะแสดงข้อมูลจำเพาะปัจจุบันของทั้งสองโมเดล พรอมต์ที่คุณปรับแต่งสำหรับ Fable 5 อาจให้ผลลัพธ์ที่มีความยาว การจัดรูปแบบ หรือรูปแบบการเรียกเครื่องมือที่แตกต่างกันเมื่อใช้กับ Opus 4.8

สิ่งนั้นจะสำคัญหรือไม่ขึ้นอยู่กับกรณีการใช้งานของคุณ:

การตรวจจับการ fallback ด้วยโปรแกรม

สัญญาณที่เชื่อถือได้คือฟิลด์ model ของการตอบกลับ การตอบกลับของ Messages API ทุกครั้งจะระบุชื่อโมเดลที่สร้างมันขึ้นมา ดังนั้นคำขอที่ส่งไปยัง claude-fable-5 แล้วได้ผลลัพธ์เป็น claude-opus-4-8 จึงถูกเปลี่ยนเส้นทาง นี่คือพฤติกรรมมาตรฐานของ Messages API คุณไม่จำเป็นต้องใช้ฟีเจอร์เบต้าใดๆ ในการอ่านค่านี้

อีกสองฟิลด์ที่ควรอยู่ในบรรทัดบันทึกเดียวกันคือ stop_reason ซึ่งจะบอกคุณว่าคำขอถูกปฏิเสธโดยสมบูรณ์หรือไม่: คำขอที่ถูกปฏิเสธโดยไม่มีการจัดการ fallback จะคืนค่า HTTP 200 โดยมี stop_reason ตั้งค่าเป็น "refusal" และไม่มีเนื้อหาที่ใช้งานได้ ดังนั้นควรตรวจสอบก่อนที่จะอ่าน response.content และ usage จะให้จำนวนโทเค็นที่คุณต้องการเพื่อปันส่วนค่าใช้จ่ายไปยังโมเดลที่เรียกเก็บเงิน

response = client.messages.create(
    model="claude-fable-5",
    max_tokens=16000,
    messages=[{"role": "user", "content": prompt}],
)

if response.stop_reason == "refusal":
    # Declined with no fallback configured: no usable content came back
    handle_refusal(response)
elif not response.model.startswith("claude-fable-5"):
    logger.info(
        "fallback served_by=%s in=%d out=%d",
        response.model,
        response.usage.input_tokens,
        response.usage.output_tokens,
    )

หากคุณกำลังเชื่อมต่อ API ตั้งแต่เริ่มต้น ให้เริ่มต้นด้วยคู่มือของเราเกี่ยวกับ วิธีใช้ Claude Fable 5 API และเพิ่มการตรวจสอบนี้เมื่อการเรียกใช้ครั้งแรกของคุณทำงานแล้ว

พารามิเตอร์ fallbacks

หากไม่มีการกำหนดค่า fallback คำขอ API ที่ถูกปฏิเสธจะหยุดทำงาน คุณจะได้รับการปฏิเสธ ผู้ใช้ของคุณจะไม่ได้รับอะไรเลย และตรรกะการลองใหม่ก็เป็นหน้าที่ของคุณที่จะต้องเขียนขึ้น พารามิเตอร์ fallbacks จะย้ายการลองใหม่นั้นไปยังเซิร์ฟเวอร์: เมื่อ Fable 5 ปฏิเสธ API จะรันคำขอเดียวกันอีกครั้งบนโมเดลที่คุณระบุ ภายในการเรียกใช้เดียวกัน และส่งคืนคำตอบของโมเดลนั้น

พารามิเตอร์นี้อยู่ในช่วงเบต้าบน Claude API และ Claude Platform บน AWS ซึ่งมีเอกสารประกอบอยู่ใน หน้าเกี่ยวกับการปฏิเสธและการ fallback ของ Anthropic คุณสามารถเลือกใช้ได้ด้วยส่วนหัวเบต้า และเมื่อเปิดตัว เป้าหมาย fallback ที่รองรับเพียงอย่างเดียวคือ claude-opus-4-8:

response = client.beta.messages.create(
    model="claude-fable-5",
    max_tokens=16000,
    betas=["server-side-fallback-2026-06-01"],
    fallbacks=[{"model": "claude-opus-4-8"}],
    messages=[{"role": "user", "content": prompt}],
)

print(response.model)  # claude-opus-4-8 if the request was rerouted
```

การเรียกเก็บเงินเป็นไปในทางที่เป็นประโยชน์ต่อคุณ คำขอที่ถูกปฏิเสธก่อนที่จะสร้างผลลัพธ์ใดๆ จะไม่ถูกเรียกเก็บเงินเลย; ความพยายามในการกู้คืนจะถูกเรียกเก็บเงินตามอัตราของโมเดล fallback การตรวจจับยังคงเหมือนเดิม: response.model จะระบุชื่อโมเดลที่ตอบกลับ

มีข้อจำกัดบางประการที่ควรรู้ พารามิเตอร์นี้จะถูกปฏิเสธบน Batches API และไม่สามารถใช้งานได้บน Amazon Bedrock, Google Vertex AI หรือ Microsoft Foundry; บนแพลตฟอร์มเหล่านั้น คุณจะต้องจัดการการลองใหม่จากฝั่งไคลเอ็นต์ และหากโมเดล fallback ปฏิเสธด้วย การตอบกลับสุดท้ายจะระบุ stop_reason: "refusal" ดังนั้นควรเก็บสาขาการจัดการการปฏิเสธจากส่วนก่อนหน้าไว้แม้จะเปิดใช้งาน fallback ก็ตาม

การออกแบบนโยบายการจัดการของคุณ

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

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

การทดสอบเส้นทางการปฏิเสธก่อนนำขึ้นใช้งานจริง

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

Apidog ทำให้สิ่งนี้เป็นจริงได้ กำหนดปลายทาง Claude Messages เพียงครั้งเดียว เก็บ API key ของคุณไว้ในตัวแปรสภาพแวดล้อม และสร้างสถานการณ์ทดสอบจากชุดพรอมต์กรณีพิเศษขนาดเล็ก: พรอมต์ที่เกี่ยวข้องกับความปลอดภัยและชีวภาพจำนวนหนึ่งซึ่งอยู่ใกล้เป้าหมายของตัวจัดประเภท รวมถึงพรอมต์ควบคุมที่ไม่ควรกระตุ้นการเปลี่ยนเส้นทาง จากนั้นตรวจสอบยืนยันที่ส่วนเนื้อหาของการตอบกลับ การทดสอบแต่ละครั้งจะตรวจสอบฟิลด์ model (พรอมต์ควบคุมยังคงใช้ claude-fable-5 หรือไม่? กรณีพิเศษกลับมาจาก claude-opus-4-8 หรือไม่?) และ stop_reason (มีสิ่งใดปฏิเสธโดยสิ้นเชิงหรือไม่?)

เรียกใช้สถานการณ์นี้ตามกำหนดเวลาหรือใน CI เมื่อ Anthropic ฝึกอบรมตัวจัดประเภทใหม่ เช่นเดียวกับที่ทำก่อนการนำกลับมาใช้งานในวันที่ 1 กรกฎาคม ชุดทดสอบของคุณจะแจ้งให้คุณทราบภายในหนึ่งวันว่ากรณีพิเศษของคุณยังคงทำงานตามที่โค้ดการจัดการของคุณคาดหวังหรือไม่ นั่นคือการตั้งค่าห้านาทีใน Apidog เทียบกับความประหลาดใจในการผลิตที่เงียบงัน

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

พารามิเตอร์ fallbacks มีค่าใช้จ่ายเพิ่มเติมหรือไม่? ไม่มี คำขอที่ถูกปฏิเสธก่อนที่จะสร้างเอาต์พุตจะไม่ถูกเรียกเก็บเงิน หากโมเดล fallback ตอบกลับ คุณจะต้องจ่ายตามอัตราต่อโทเค็นปกติของโมเดลนั้นสำหรับการพยายามกู้คืน คุณจะไม่ถูกเรียกเก็บเงินสองครั้งสำหรับคำตอบเดียวกัน

พรอมต์ที่เกี่ยวข้องกับความปลอดภัยจะกระตุ้นการ fallback เสมอไปหรือไม่? ไม่ใช่ ตัวจัดประเภทมุ่งเป้าไปที่คำขอที่เป็นอันตรายในด้านความปลอดภัยทางไซเบอร์ ชีววิทยาและเคมี และการกลั่นโมเดล ไม่ใช่ตัวหัวข้อเอง งานวิศวกรรมความปลอดภัยส่วนใหญ่จะผ่านไปโดยไม่มีปัญหาใดๆ; มากกว่า 95% ของเซสชันทั้งหมดไม่พบการ fallback การตรวจจับผิดพลาดเกิดขึ้นได้ในโดเมนเหล่านั้น ซึ่งเป็นเหตุผลว่าทำไมคุณจึงควรทดสอบเส้นทางและบันทึกอัตรา

ฉันย้ายออกจาก Fable 5 ในช่วงการระงับเมื่อเดือนมิถุนายน ปลอดภัยหรือไม่ที่จะกลับมาใช้งานอีกครั้ง? ใช่ ด้วยการนำกลับมาใช้งานอีกครั้งในวันที่ 1 กรกฎาคม ตัวจัดประเภทที่ได้รับการฝึกอบรมใหม่พร้อมใช้งานแล้ว และอินเทอร์เฟซ API ไม่มีอะไรเปลี่ยนแปลง คู่มือของเราเกี่ยวกับ การกลับไปใช้ Fable 5 API จะอธิบายขั้นตอนการเปิดใช้งานอีกครั้ง และพารามิเตอร์ fallbacks คือส่วนที่ทีมส่วนใหญ่เพิ่มเข้ามาเมื่อกลับมาใช้งาน

สรุป

การเปลี่ยนเส้นทางของ Fable 5 เป็นการตัดสินใจในการออกแบบ ไม่ใช่เหตุการณ์ผิดปกติ ดังนั้นควรจัดการในโค้ดของคุณในลักษณะเดียวกัน ตรวจสอบ response.model ทุกครั้งที่เรียกใช้ คงสาขาการจัดการการปฏิเสธไว้แม้จะเปิดใช้งาน fallback เลือกใช้พารามิเตอร์ fallbacks เว้นแต่คุณจะมีเหตุผลที่ไม่ควรใช้ และเลือกนโยบายสำหรับสิ่งที่ผลิตภัณฑ์ของคุณจะทำเมื่อ Opus 4.8 ตอบกลับ จากนั้นพิสูจน์ว่าเส้นทางทั้งหมดทำงานได้: สร้างชุดทดสอบกรณีพิเศษใน Apidog ตรวจสอบยืนยันที่ model และ stop_reason และรันตามกำหนดเวลา ดาวน์โหลด Apidog แล้วคุณสามารถมีชุดทดสอบการปฏิเสธที่ทำงานได้ก่อนการนำขึ้นใช้งานครั้งถัดไปของคุณ

ฝึกการออกแบบ API แบบ Design-first ใน Apidog

ค้นพบวิธีที่ง่ายขึ้นในการสร้างและใช้ API