Уникнення лімітів швидкості за допомогою повторних спроб (retry)
Ви створили функцію для запуску Chat Completions із власним повідомленням, але помітили, що інколи вона падає через ліміти швидкості. Ви вирішили використати декоратор @retry з бібліотеки tenacity, щоб за можливості уникати помилок.
Ця вправа є частиною курсу
Розроблення AI‑систем з OpenAI API
Інструкції до вправи
- Імпортуйте бібліотеку
tenacityз потрібними функціями:retry,wait_random_exponentialіstop_after_attempt. - Створіть клієнт OpenAI API.
- Заповніть декоратори повторних спроб параметрами так, щоб почати повторювати з інтервалом 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."}))