หลีกเลี่ยง Rate Limit ด้วย Retry
คุณสร้างฟังก์ชันสำหรับเรียกใช้ Chat Completions พร้อมข้อความที่กำหนดเอง แต่พบว่าบางครั้งเกิดข้อผิดพลาดเนื่องจาก Rate Limit จึงตัดสินใจใช้ decorator @retry จากไลบรารี tenacity เพื่อลดข้อผิดพลาดที่อาจเกิดขึ้น
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การพัฒนาระบบ AI ด้วย OpenAI API
คำแนะนำการฝึกหัด
- นำเข้าไลบรารี
tenacityพร้อมฟังก์ชันที่จำเป็น ได้แก่retry,wait_random_exponentialและstop_after_attempt - สร้าง OpenAI API client
- กำหนดพารามิเตอร์ใน retry decorator ให้เริ่มลองใหม่ที่ช่วงเวลา 5 วินาที สูงสุด 40 วินาที และหยุดหลังจากลองครบ 4 ครั้ง
หากแบบฝึกหัดหมดเวลา ให้ตรวจสอบว่าค่าช่วงเวลาและจำนวนครั้งตรงกับที่ระบุไว้ข้างต้นทุกประการ
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Import the tenacity library
from ____ import ____
client = OpenAI(api_key="")
# Add the appropriate parameters to the decorator
@retry(____, ____)
def get_response(model, message):
response = client.chat.completions.create(
model=model,
messages=[message]
)
return response.choices[0].message.content
print(get_response("gpt-4o-mini", {"role": "user", "content": "List ten holiday destinations."}))