返回提交历史
Modified
etc/tool/commit.py
+1
-1
Modified
etc/unittest/models.py
+1
-0
Modified
g4f/Provider/Liaobots.py
+1
-1
Modified
g4f/Provider/hf_space/Qwen_Qwen_3.py
+18
-9
Modified
g4f/Provider/hf_space/__init__.py
+2
-0
Modified
g4f/models.py
+8
-8
XFEstudio/gpt4free
Fix unittests
082c1522
代码差异
6 个文件
+31
-19
@@ -31,7 +31,7 @@ from g4f import debug
31
31
debug.logging = True
32
32
33
33
# Constants
34
DEFAULT_MODEL = "claude-3.7-sonnet"
34
DEFAULT_MODEL = "gpt-4o"
35
35
FALLBACK_MODELS = []
36
36
MAX_DIFF_SIZE = None # Set to None to disable truncation, or a number for character limit
37
37
MAX_RETRIES = 3
@@ -13,6 +13,7 @@ class TestProviderHasModel(unittest.TestCase):
13
13
for model, providers in __models__.values():
14
14
for provider in providers:
15
15
if issubclass(provider, ProviderModelMixin):
16
provider.get_models() # Update models
16
17
if model.name in provider.model_aliases:
17
18
model_name = provider.model_aliases[model.name]
18
19
else:
@@ -303,7 +303,7 @@ class Liaobots(AsyncGeneratorProvider, ProviderModelMixin):
303
303
# xAI
304
304
"grok-3-reason": "grok-3-reason",
305
305
"o3-mini": "o3-mini-2025-01-31",
306
"qwen-3-235b": "qwen3-235b-a22b",
306
"qwen3-235b": "qwen3-235b-a22b",
307
307
}
308
308
309
309
_auth_code = None
@@ -7,6 +7,7 @@ import uuid
7
7
from ...typing import AsyncResult, Messages
8
8
from ...providers.response import Reasoning, JsonConversation
9
9
from ...requests.raise_for_status import raise_for_status
10
from ...errors import ModelNotSupportedError
10
11
from ..base_provider import AsyncGeneratorProvider, ProviderModelMixin
11
12
from ..helper import get_last_user_message
12
13
from ... import debug
@@ -32,17 +33,25 @@ class Qwen_Qwen_3(AsyncGeneratorProvider, ProviderModelMixin):
32
33
"qwen3-1.7b",
33
34
"qwen3-0.6b",
34
35
}
36
model_aliases = {
37
"qwen3-235b": default_model,
38
"qwen3-30b": "qwen3-30b-a3b"
39
}
35
40
36
41
@classmethod
37
42
async def create_async_generator(
38
cls,
39
model: str,
40
messages: Messages,
41
proxy: str = None,
42
conversation: JsonConversation = None,
43
thinking_budget: int = 38,
44
**kwargs
43
cls,
44
model: str,
45
messages: Messages,
46
proxy: str = None,
47
conversation: JsonConversation = None,
48
thinking_budget: int = 38,
49
**kwargs
45
50
) -> AsyncResult:
51
try:
52
model = cls.get_model(model)
53
except ModelNotSupportedError:
54
pass
46
55
if conversation is None:
47
56
conversation = JsonConversation(session_hash=str(uuid.uuid4()).replace('-', ''))
48
57
@@ -73,7 +82,7 @@ class Qwen_Qwen_3(AsyncGeneratorProvider, ProviderModelMixin):
73
82
74
83
async with aiohttp.ClientSession() as session:
75
84
# Send join request
76
async with session.post(cls.api_endpoint, headers=headers_join, json=payload_join) as response:
85
async with session.post(cls.api_endpoint, headers=headers_join, json=payload_join, proxy=proxy) as response:
77
86
await raise_for_status(response)
78
87
(await response.json())['event_id']
79
88
@@ -92,7 +101,7 @@ class Qwen_Qwen_3(AsyncGeneratorProvider, ProviderModelMixin):
92
101
}
93
102
94
103
# Send data stream request
95
async with session.get(url_data, headers=headers_data, params=params_data) as response:
104
async with session.get(url_data, headers=headers_data, params=params_data, proxy=proxy) as response:
96
105
is_thinking = False
97
106
async for line in response.content:
98
107
decoded_line = line.decode('utf-8')
@@ -55,11 +55,13 @@ class HuggingSpace(AsyncGeneratorProvider, ProviderModelMixin):
55
55
models = []
56
56
image_models = []
57
57
vision_models = []
58
cls.model_aliases = {}
58
59
for provider in cls.providers:
59
60
models.extend(provider.get_models(**kwargs))
60
61
models.extend(provider.model_aliases.keys())
61
62
image_models.extend(provider.image_models)
62
63
vision_models.extend(provider.vision_models)
64
cls.model_aliases.update(provider.model_aliases)
63
65
models = list(set(models))
64
66
models.sort()
65
67
cls.models = models
@@ -631,45 +631,45 @@ qwen_2_5_vl_72b = Model(
631
631
best_provider = Blackbox
632
632
)
633
633
634
# qwen-3
634
# qwen3
635
635
qwen_3_235b = Model(
636
name = 'qwen-3-235b',
636
name = 'qwen3-235b',
637
637
base_provider = 'Qwen',
638
638
best_provider = IterListProvider([DeepInfraChat, HuggingSpace, Liaobots])
639
639
)
640
640
641
641
qwen_3_32b = Model(
642
name = 'qwen-3-32b',
642
name = 'qwen3-32b',
643
643
base_provider = 'Qwen',
644
644
best_provider = IterListProvider([DeepInfraChat, HuggingSpace])
645
645
)
646
646
647
647
qwen_3_30b = Model(
648
name = 'qwen-3-30b',
648
name = 'qwen3-30b',
649
649
base_provider = 'Qwen',
650
650
best_provider = IterListProvider([DeepInfraChat, HuggingSpace])
651
651
)
652
652
653
653
qwen_3_14b = Model(
654
name = 'qwen-3-14b',
654
name = 'qwen3-14b',
655
655
base_provider = 'Qwen',
656
656
best_provider = IterListProvider([DeepInfraChat, HuggingSpace])
657
657
)
658
658
659
659
qwen_3_4b = Model(
660
name = 'qwen-3-4b',
660
name = 'qwen3-4b',
661
661
base_provider = 'Qwen',
662
662
best_provider = HuggingSpace
663
663
)
664
664
665
665
qwen_3_1_7b = Model(
666
name = 'qwen-3-1.7b',
666
name = 'qwen3-1.7b',
667
667
base_provider = 'Qwen',
668
668
best_provider = HuggingSpace
669
669
)
670
670
671
671
qwen_3_0_6b = Model(
672
name = 'qwen-3-0.6b',
672
name = 'qwen3-0.6b',
673
673
base_provider = 'Qwen',
674
674
best_provider = HuggingSpace
675
675
)