ข้อผิดพลาดลิมิตการใช้งาน (“Too Many Requests”, “Rate limit reached”) เกิดจากการที่องค์กรของคุณใช้งานถึงลิมิตการใช้งาน ซึ่งคือจำนวนคำขอและ Token สูงสุดที่ส่งได้ต่อนาที หากถึงลิมิตแล้ว องค์กรจะไม่สามารถส่งคำขอได้สำเร็จจนกว่าลิมิตการใช้งานจะถูกรีเซ็ต ข้อความข้อผิดพลาดมีลักษณะดังนี้:
ถึงขีดจำกัดอัตราสำหรับ gpt-3.5-turbo ในองค์กร org-exampleorgid123 สำหรับจำนวน Token ต่อนาที
ขีดจำกัด: 10000.000000 / นาที ปัจจุบัน: 10020.000000 / นาที เราแนะนำให้จัดการข้อผิดพลาดเหล่านี้โดยใช้ exponential backoff Exponential backoff หมายถึงการพักช่วงสั้นๆ เมื่อพบข้อผิดพลาดลิมิตการใช้งาน แล้วจึงลองส่งคำขอที่ไม่สำเร็จอีกครั้ง หากคำขอยังคงไม่สำเร็จ ระยะเวลาพักจะเพิ่มขึ้นและทำกระบวนการซ้ำ กระบวนการนี้จะดำเนินต่อไปจนกว่าคำขอจะสำเร็จ หรือจนกว่าจะถึงจำนวนครั้งสูงสุดที่กำหนดไว้สำหรับการลองใหม่
เนื่องจากคำขอที่ไม่สำเร็จจะถูกนับรวมในลิมิตต่อนาทีของคุณ การส่งคำขอเดิมซ้ำอย่างต่อเนื่องจึงใช้ไม่ได้ผล ลิมิตการใช้งานอาจถูกใช้กับช่วงเวลาที่สั้นกว่าได้ เช่น 1 คำขอต่อวินาทีสำหรับลิมิต 60 RPM ซึ่งหมายความว่าการส่งคำขอจำนวนมากในช่วงสั้นๆ ก็อาจทำให้เกิดข้อผิดพลาดลิมิตการใช้งานได้เช่นกัน Exponential backoff ทำงานได้ดีโดยเว้นระยะห่างระหว่างคำขอ เพื่อลดความถี่ของข้อผิดพลาดเหล่านี้
ใน Python วิธีแก้ปัญหาแบบ exponential backoff อาจมีลักษณะดังนี้:
from openai import OpenAI, RateLimitError
import backoff
client = OpenAI()
@backoff.on_exception(backoff.expo, RateLimitError)
def completions_with_backoff(**kwargs):
response = client.completions.create(**kwargs)
return response(โปรดทราบ: ไลบรารี backoff เป็นเครื่องมือของบุคคลที่สาม เราขอแนะนำให้ลูกค้าทุกคนตรวจสอบอย่างรอบคอบเมื่อต้องตรวจสอบความถูกต้องของโค้ดภายนอกใดๆ สำหรับโปรเจ็กต์ของตน)
หากการใช้ exponential backoff แล้วยังคงเกิดข้อผิดพลาดนี้ คุณอาจต้องเพิ่มระดับการใช้งานของคุณ คุณสามารถดูลิมิตการใช้งานปัจจุบันของคุณ และวิธีเพิ่มระดับความน่าเชื่อถือเพื่อเพิ่มลิมิตการใช้งานได้ในส่วนลิมิตของการตั้งค่าบัญชีของคุณ
