Asyncio.TimeoutError из-за того, что asyncio.wait_for в async_generator истощает или использует async_generator ⇐ Python
Asyncio.TimeoutError из-за того, что asyncio.wait_for в async_generator истощает или использует async_generator
У меня есть асинхронный генератор, я хочу дождаться следующего элемента 1 секунду, если следующий элемент не готов за это время, я хочу напечатать ожидающее сообщение и подождать еще секунду. Я использую asyncio.wait_for, чтобы дождаться следующего элемента, но проблема в том, что при первом тайм-ауте происходит сбой, и он снова возвращается к asyncio.wait_for Я получаю ошибку asyncio.StopAsyncIteration, поэтому первое исключение истощает или потребляет генератор, и я не могу ждать снова.
Вот пример кода:
импортировать openai импортировать асинхронный код os.environ['OPENAI_API_KEY'] = "XXXXXXXXXXXXXXXX" openai.api_key = os.getenv('OPENAI_API_KEY') защита Streaming_chat (история): ответ = openai.ChatCompletion.acreate( модель="gpt-3.5-турбо", сообщения=история, поток = Истина ) обратный ответ история =\ [ {'role': 'user', 'content': "Можете ли вы дать мне три совета по приготовлению еды"} ] response_async_generator = ожидайте потокового_чата (история = история) печать(тип(ответ)) Final_message = Ложь пока правда: пытаться: next_element = await asyncio.wait_for(response_async_generator.__anext__(), timeout=0,01) печать (следующий_элемент) кроме asyncio.TimeoutError как to_err: print("Ожидание...") кроме asyncio.StopAsyncIteration как ошибки: печать("Ошибка") перерыв Я ожидаю, что смогу дождаться следующего элемента, не используя генератор. Как мне этого добиться?
У меня есть асинхронный генератор, я хочу дождаться следующего элемента 1 секунду, если следующий элемент не готов за это время, я хочу напечатать ожидающее сообщение и подождать еще секунду. Я использую asyncio.wait_for, чтобы дождаться следующего элемента, но проблема в том, что при первом тайм-ауте происходит сбой, и он снова возвращается к asyncio.wait_for Я получаю ошибку asyncio.StopAsyncIteration, поэтому первое исключение истощает или потребляет генератор, и я не могу ждать снова.
Вот пример кода:
импортировать openai импортировать асинхронный код os.environ['OPENAI_API_KEY'] = "XXXXXXXXXXXXXXXX" openai.api_key = os.getenv('OPENAI_API_KEY') защита Streaming_chat (история): ответ = openai.ChatCompletion.acreate( модель="gpt-3.5-турбо", сообщения=история, поток = Истина ) обратный ответ история =\ [ {'role': 'user', 'content': "Можете ли вы дать мне три совета по приготовлению еды"} ] response_async_generator = ожидайте потокового_чата (история = история) печать(тип(ответ)) Final_message = Ложь пока правда: пытаться: next_element = await asyncio.wait_for(response_async_generator.__anext__(), timeout=0,01) печать (следующий_элемент) кроме asyncio.TimeoutError как to_err: print("Ожидание...") кроме asyncio.StopAsyncIteration как ошибки: печать("Ошибка") перерыв Я ожидаю, что смогу дождаться следующего элемента, не используя генератор. Как мне этого добиться?
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Asyncio Async Funcitons вешает с Asyncio.gather. (Код работает без Asyncio.gather)
Anonymous » » в форуме Python - 0 Ответы
- 26 Просмотры
-
Последнее сообщение Anonymous
-