返回提交历史
Modified
g4f/Provider/__init__.py
+14
-10
Modified
g4f/Provider/needs_auth/DeepSeek.py
+0
-3
XFEstudio/gpt4free
Fix duplicate DeepSeek provider
7e967a22
代码差异
2 个文件
+14
-13
@@ -51,7 +51,7 @@ def _resolve_provider(name: str) -> ProviderType:
51
51
elif name == "DeepSeek":
52
52
from g4f.Provider.needs_auth.DeepSeek import DeepSeek; return DeepSeek
53
53
elif name == "DeepSeekAPI":
54
from g4f.Provider.needs_auth.DeepSeek import DeepSeekAPI; return DeepSeekAPI
54
from g4f.Provider.needs_auth.DeepSeek import DeepSeek; return DeepSeek
55
55
elif name == "EasyChat":
56
56
from g4f.Provider.EasyChat import EasyChat; return EasyChat
57
57
elif name == "EdgeTTS":
@@ -187,7 +187,7 @@ def _resolve_provider(name: str) -> ProviderType:
187
187
elif name == "xAI":
188
188
from g4f.Provider.needs_auth.xAI import xAI; return xAI
189
189
else:
190
raise ValueError(f"Provider '{name}' not found")
190
raise ImportError(f"Provider '{name}' not found")
191
191
192
192
_provider_names = [
193
193
"AnyProvider",
@@ -212,7 +212,6 @@ _provider_names = [
212
212
"Custom",
213
213
"DeepInfra",
214
214
"DeepSeek",
215
"DeepSeekAPI",
216
215
"EasyChat",
217
216
"EdgeTTS",
218
217
"Felo",
@@ -300,9 +299,10 @@ _loaded_providers = {}
300
299
def __getattr__(name: str):
301
300
if name in _loaded_providers:
302
301
return _loaded_providers[name]
303
if name in _provider_names:
304
_loaded_providers[name] = _resolve_provider(name)
305
return _loaded_providers[name]
302
try:
303
return _resolve_provider(name)
304
except ImportError:
305
pass
306
306
if name == "__providers__":
307
307
# Load all providers if specifically requested
308
308
providers_list = []
@@ -347,8 +347,10 @@ class ProviderUtils:
347
347
raise ValueError("Label must be provided")
348
348
349
349
# Check explicit map
350
if label in __map__:
351
return __map__[label]
350
try:
351
return __getattr__(label)
352
except AttributeError:
353
pass
352
354
353
355
# Fallback to search
354
356
for provider_name in _provider_names:
@@ -367,9 +369,11 @@ class LazyProviderModule(types.ModuleType):
367
369
if name.startswith('__'):
368
370
return super().__getattribute__(name)
369
371
370
if name in _provider_names:
372
try:
371
373
return __getattr__(name)
372
374
except AttributeError:
375
pass
376
373
377
return super().__getattribute__(name)
374
378
375
379
sys.modules[__name__].__class__ = LazyProviderModule
@@ -605,6 +605,3 @@ class DeepSeek(AsyncGeneratorProvider, ProviderModelMixin):
605
605
conversation.chat_session_id,
606
606
headers
607
607
)
608
609
class DeepSeekAPI(DeepSeek):
610
pass