返回提交历史
Modified
g4f/Provider/retry_provider.py
+5
-6
Modified
g4f/__init__.py
+1
-0
XFEstudio/gpt4free
Fix: debug.logging not work in retry provider
042ee763
代码差异
2 个文件
+6
-6
@@ -5,13 +5,13 @@ import random
5
5
from typing import List, Type, Dict
6
6
from ..typing import CreateResult, Messages
7
7
from .base_provider import BaseProvider, AsyncProvider
8
from ..debug import logging
9
8
10
9
11
10
class RetryProvider(AsyncProvider):
12
11
__name__: str = "RetryProvider"
13
12
working: bool = True
14
13
supports_stream: bool = True
14
logging: bool = False
15
15
16
16
def __init__(
17
17
self,
@@ -21,7 +21,6 @@ class RetryProvider(AsyncProvider):
21
21
self.providers: List[Type[BaseProvider]] = providers
22
22
self.shuffle: bool = shuffle
23
23
24
25
24
def create_completion(
26
25
self,
27
26
model: str,
@@ -40,7 +39,7 @@ class RetryProvider(AsyncProvider):
40
39
started: bool = False
41
40
for provider in providers:
42
41
try:
43
if logging:
42
if self.logging:
44
43
print(f"Using {provider.__name__} provider")
45
44
for token in provider.create_completion(model, messages, stream, **kwargs):
46
45
yield token
@@ -49,7 +48,7 @@ class RetryProvider(AsyncProvider):
49
48
return
50
49
except Exception as e:
51
50
self.exceptions[provider.__name__] = e
52
if logging:
51
if self.logging:
53
52
print(f"{provider.__name__}: {e.__class__.__name__}: {e}")
54
53
if started:
55
54
raise e
@@ -72,11 +71,11 @@ class RetryProvider(AsyncProvider):
72
71
return await asyncio.wait_for(provider.create_async(model, messages, **kwargs), timeout=60)
73
72
except asyncio.TimeoutError as e:
74
73
self.exceptions[provider.__name__] = e
75
if logging:
74
if self.logging:
76
75
print(f"{provider.__name__}: TimeoutError: {e}")
77
76
except Exception as e:
78
77
self.exceptions[provider.__name__] = e
79
if logging:
78
if self.logging:
80
79
print(f"{provider.__name__}: {e.__class__.__name__}: {e}")
81
80
82
81
self.raise_exceptions()
@@ -48,6 +48,7 @@ def get_model_and_provider(model : Union[Model, str],
48
48
raise ValueError(f'{provider.__name__} does not support "stream" argument')
49
49
50
50
if logging:
51
RetryProvider.logging = True
51
52
print(f'Using {provider.__name__} provider')
52
53
53
54
return model, provider