การจำกัดอัตรา
การจำกัดอัตราคือข้อจำกัดที่ API ของเรากำหนดไว้เกี่ยวกับจำนวนครั้งที่ผู้ใช้หรือไคลเอนต์สามารถเข้าถึงบริการของเราได้ภายในช่วงเวลาที่กำหนด
เหตุผลของการจำกัด
เราได้กำหนดการจำกัดอัตราไว้ใน API ของเราเพื่อช่วยสร้างประสบการณ์ที่ดีที่สุดสำหรับทุกคน นี่คือเหตุผลว่าทำไมสิ่งเหล่านี้จึงสำคัญ:
-
เพื่อให้บริการของเราปลอดภัยและมั่นคง! คิดว่าการจำกัดอัตราเป็นเหมือนยามที่เป็นมิตร - พวกเขาช่วยให้แน่ใจว่าไม่มีใครสามารถทำให้ API ของเราล้นหลามด้วยคำขอมากเกินไปในคราวเดียว สิ่งนี้ช่วยปกป้องบริการของเราจากการใช้งานในทางที่ผิดที่อาจเกิดขึ้น และช่วยให้ทุกอย่างดำเนินไปอย่างราบรื่น
-
เพื่อให้แน่ใจว่าทุกคนได้รับส่วนแบ่งที่เป็นธรรม เช่นเดียวกับการแบ่งปันของเล่นในสนามเด็กเล่น เราต้องการให้แน่ใจว่าผู้ใช้ทุกคนของเรามีสิทธิ์เข้าถึง API อย่างเท่าเทียมกัน โดยการจำกัดจำนวนคำขอที่ผู้ใช้แต่ละคนสามารถทำได้อย่างนุ่มนวล เราจึงมั่นใจได้ว่าไม่มีใครต้องรอนานเกินไปเพื่อถึงคิวของตัวเอง
-
เพื่อรักษาประสิทธิภาพให้รวดเร็วและเชื่อถือได้ ด้วยการจัดการการไหลของคำขอโดยรวม เราสามารถรักษาเวลาตอบสนองที่รวดเร็วและบริการที่มั่นคงสำหรับผู้ใช้ที่ยอดเยี่ยมของเราทุกคน มันเหมือนกับการทำให้แน่ใจว่าทางหลวงไม่แออัดเกินไป - การจราจรจะไหลลื่นขึ้นเมื่อเราป้องกันความแออัด!
วิธีการทำงานของการจำกัด
การจำกัดอัตราถูกวัดผลใน 2 รูปแบบ:
- คำขอต่อวินาที: นี่คือจำนวนคำขอเครือข่ายที่คุณสามารถทำได้ต่อวินาที
- งานในคิว: นี่คือจำนวนงานสร้างที่เกิดขึ้นพร้อมกันที่คุณสามารถรันในคิวได้ในเวลาใดเวลาหนึ่ง
งานในคิวรวมถึง endpoint ของข้อความเป็น 3D, รูปภาพเป็น 3D, ข้อความเป็นเท็กซ์เจอร์ และรีเมช endpoint อื่นๆ เช่น การอัปโหลดและยอดคงเหลือไม่รวมอยู่ในขีดจำกัดนี้
ขีดจำกัดจะถูกนำไปใช้ในระดับบัญชี ซึ่งหมายความว่าขีดจำกัดจะถูกแชร์ร่วมกันในทุก API key ของคุณ
นอกเหนือจากการจำกัดอัตราแล้ว ลำดับความสำคัญในการประมวลผลงานยังส่งผลต่อความเร็วของงานของคุณด้วย
ระดับผู้ใช้แต่ละระดับมีการจำกัดอัตราและระดับลำดับความสำคัญเฉพาะที่ออกแบบมาให้ตรงกับความต้องการของตน นี่คือขีดจำกัดปัจจุบันตามระดับ:
| ระดับผู้ใช้ | คำขอต่อวินาที | งานในคิว | ระดับลำดับความสำคัญ |
|---|---|---|---|
| Pro | 20 | 10 | ค่าเริ่มต้น |
| Premium | 20 | 30 | สูงกว่า Pro |
| Ultra | 20 | 100 | สูงสุด |
| Studio | 20 | 20 | สูงกว่า Pro |
| Enterprise | 100 | ค่าเริ่มต้น 100 ปรับแต่งได้ | สูงสุด |
หากคุณเกินขีดจำกัดเหล่านี้ คุณจะได้รับการตอบกลับ 429 Too Many Requests จาก API ของเรา มีการกระทบสองประเภทที่สามารถกระตุ้นสิ่งนี้ได้ แต่ละประเภทมีการตอบกลับที่แตกต่างกัน:
- Request Hit: สิ่งนี้เกิดขึ้นเมื่อคุณส่งคำขอมากเกินไปต่อวินาที คุณจะได้รับการตอบกลับ
429 Too Many Requestsพร้อมข้อความRate limit exceeded - Queue Hit: สิ่งนี้เกิดขึ้นเมื่อคุณมีงานสร้างที่เกิดขึ้นพร้อมกันทำงานอยู่มากเกินไป คุณจะได้รับการตอบกลับ
429 Too Many Requestsพร้อมข้อความNoMorePendingTasks(หรือเมื่อเครดิตของคุณหมดลง จะได้รับNoMoreConcurrentTasks)429นี้ไม่มีRetry-After: ให้รอจนกว่างานใดงานหนึ่งของคุณจะเสร็จสิ้นก่อนที่จะสร้างงานใหม่
ส่วนหัวการจำกัดอัตรา
การตอบกลับจาก API จะมีส่วนหัวเหล่านี้เพื่อให้คุณสามารถกำหนดจังหวะการส่งคำขอของคุณได้:
| ส่วนหัว | คำอธิบาย |
|---|---|
X-RateLimit-Limit | จำนวนคำขอที่อนุญาตต่อวินาทีตามระดับของคุณ |
X-RateLimit-Remaining | จำนวนคำขอที่เหลืออยู่ในวินาทีปัจจุบัน |
X-RateLimit-Reset | จำนวนวินาทีก่อนที่โควตาของคุณจะเต็มอีกครั้ง |
Retry-After | จำนวนวินาทีที่ต้องรอก่อนส่งคำขอครั้งถัดไป จะถูกส่งมาพร้อมกับ Request Hit 429 และเมื่อคุณดึงข้อมูลงานที่ยังคงอยู่ในสถานะ PENDING หรือ IN_PROGRESS |
เมื่อมี Retry-After ปรากฏอยู่ ให้รอตามจำนวนวินาทีนั้นก่อนส่งคำขอถัดไป