返回提交历史
Modified
g4f/locals/provider.py
+5
-2
Modified
g4f/providers/base_provider.py
+7
-2
XFEstudio/gpt4free
Update event loop on windows only for old curl_cffi
0a3fe0b7
代码差异
2 个文件
+12
-4
@@ -66,9 +66,12 @@ class LocalProvider:
66
66
if message["role"] != "system"
67
67
) + "\nASSISTANT: "
68
68
69
def should_not_stop(token_id: int, token: str):
70
return "USER" not in token
71
69
72
with model.chat_session(system_message, prompt_template):
70
73
if stream:
71
for token in model.generate(conversation, streaming=True):
74
for token in model.generate(conversation, streaming=True, callback=should_not_stop):
72
75
yield token
73
76
else:
74
yield model.generate(conversation)
77
yield model.generate(conversation, callback=should_not_stop)
@@ -19,8 +19,13 @@ else:
19
19
20
20
# Set Windows event loop policy for better compatibility with asyncio and curl_cffi
21
21
if sys.platform == 'win32':
22
if isinstance(asyncio.get_event_loop_policy(), asyncio.WindowsProactorEventLoopPolicy):
23
asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy())
22
try:
23
from curl_cffi import aio
24
if not hasattr(aio, "_get_selector"):
25
if isinstance(asyncio.get_event_loop_policy(), asyncio.WindowsProactorEventLoopPolicy):
26
asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy())
27
except ImportError:
28
pass
24
29
25
30
def get_running_loop(check_nested: bool) -> Union[AbstractEventLoop, None]:
26
31
try: