mirror of
https://github.com/xtekky/gpt4free.git
synced 2024-12-23 11:02:40 +03:00
Update event loop on windows only for old curl_cffi
This commit is contained in:
parent
a053c29020
commit
0a3fe0b7df
@ -66,9 +66,12 @@ class LocalProvider:
|
||||
if message["role"] != "system"
|
||||
) + "\nASSISTANT: "
|
||||
|
||||
def should_not_stop(token_id: int, token: str):
|
||||
return "USER" not in token
|
||||
|
||||
with model.chat_session(system_message, prompt_template):
|
||||
if stream:
|
||||
for token in model.generate(conversation, streaming=True):
|
||||
for token in model.generate(conversation, streaming=True, callback=should_not_stop):
|
||||
yield token
|
||||
else:
|
||||
yield model.generate(conversation)
|
||||
yield model.generate(conversation, callback=should_not_stop)
|
@ -19,8 +19,13 @@ else:
|
||||
|
||||
# Set Windows event loop policy for better compatibility with asyncio and curl_cffi
|
||||
if sys.platform == 'win32':
|
||||
if isinstance(asyncio.get_event_loop_policy(), asyncio.WindowsProactorEventLoopPolicy):
|
||||
asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy())
|
||||
try:
|
||||
from curl_cffi import aio
|
||||
if not hasattr(aio, "_get_selector"):
|
||||
if isinstance(asyncio.get_event_loop_policy(), asyncio.WindowsProactorEventLoopPolicy):
|
||||
asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy())
|
||||
except ImportError:
|
||||
pass
|
||||
|
||||
def get_running_loop(check_nested: bool) -> Union[AbstractEventLoop, None]:
|
||||
try:
|
||||
|
Loading…
Reference in New Issue
Block a user