การ routing และความทนทาน
คำขอ chat, messages และ embeddings ทุกรายการจะถูกส่งไปยัง provider ตาม catalog ของ model เมื่อ provider นั้นล้มเหลว Prism สามารถ retry และย้ายไป provider ถัดไปที่ตั้งค่าไว้ ก่อนจะส่ง error กลับ หน้านี้อธิบายว่าเกิดอะไรขึ้น คุณควบคุมอะไรได้ และอ่านผลอย่างไรTimeout
แต่ละครั้งที่เรียก upstream จะมี timeout ถึง byte แรก ค่าเริ่มต้นคือ 60 วินาที ส่ง headerx-prism-timeout-ms เพื่อเปลี่ยนค่าสำหรับคำขอนั้น:
Retry และ fallback
เมื่อผู้ดูแลเปิดใช้ Prism จะ retry provider เดิมเมื่อเจอความล้มเหลวชั่วคราว (rate limit,5xx,
connection error, timeout หนึ่งครั้ง) ด้วย exponential backoff และเคารพ Retry-After ของ
provider ถ้ายังล้มเหลวและ model มี provider สำรองตั้งค่าไว้ คำขอจะย้ายไป provider ถัดไป
ลำดับทั้งหมดใช้งบเวลาเดียวกัน คำขอจึงไม่รอ retry อย่างไม่มีที่สิ้นสุด
Prism จะไม่ retry หรือ fallback กับ error ที่เกิดจากตัวคำขอเอง เช่น prompt เกิน context
window ของ model, parameter ไม่ถูกต้อง หรือ provider ปฏิเสธว่าคำขอผิดรูปแบบ กรณีเหล่านี้จะส่ง
กลับตามเดิม
คุณถูกคิดเงินครั้งเดียว เฉพาะครั้งที่ให้ผลลัพธ์ ครั้งที่ล้มเหลวไม่ถูกคิดเงิน
Conditional routing
ผู้ดูแลระบบสามารถผูก rule กับ model เพื่อส่ง request ไปยัง provider, upstream model หรือ credential อื่นเมื่อ context ตรงเงื่อนไข context ประกอบด้วย tag ของ organization (ผู้ดูแลกำหนด), scope ของ key, model id และ request metadata คือ objectmetadata ใน body รวมทับ header x-prism-metadata (JSON object ไม่เกิน
4 KB ไม่เกิน 32 ค่าแบบ primitive) metadata ใช้เปรียบเทียบเท่านั้น ไม่ได้ระบุ
provider เอง
x-prism-provider ยังรายงาน provider ที่ให้บริการ request นั้นเช่นเดิม
metadata มาจากผู้เรียก ดังนั้น key ไหนก็ส่งค่าอะไรก็ได้ ผู้ดูแลจึงใช้มันกับ
preference (region, experiment) และใช้ tag ขององค์กรหรือ scope ของ key กับ
สิ่งที่มีผลด้านต้นทุนหรือ compliance key ที่ไม่มีใน metadata ไม่เท่ากับ null
แต่ผ่านเงื่อนไข $ne
การอ่าน response header
header เหล่านี้ถูกตั้งใน error response ด้วย จึงเห็นได้ว่า Prism ลองอะไรไปก่อนยอมแพ้
รหัส error
เมื่อทุกความพยายามล้มเหลว รหัส error จะบอกว่าเกิดอะไรขึ้นครั้งสุดท้าย:
Embeddings ใช้รหัสเดียวกันโดยขึ้นต้นด้วย
runtime_embeddings_failed: ดูแนวทาง retry ได้ที่
Errors
Read in English