返回提交历史
Modified
etc/unittest/models.py
+9
-2
Modified
g4f/Provider/needs_auth/Gemini.py
+1
-0
Modified
g4f/providers/any_provider.py
+8
-1
XFEstudio/gpt4free
Fix unittests
f8b87ff5
代码差异
3 个文件
+18
-3
@@ -1,3 +1,5 @@
1
import asyncio
2
import inspect
1
3
import unittest
2
4
from typing import Type
3
5
from requests.exceptions import RequestException
@@ -24,7 +26,9 @@ class TestProviderHasModel(unittest.TestCase):
24
26
continue
25
27
if issubclass(provider, ProviderModelMixin):
26
28
try:
27
provider.get_models(timeout=5) # Update models
29
result = provider.get_models(timeout=5) # Update models
30
if inspect.isawaitable(result):
31
result = asyncio.run(result)
28
32
if (
29
33
provider.model_aliases
30
34
and model.name in provider.model_aliases
@@ -39,7 +43,10 @@ class TestProviderHasModel(unittest.TestCase):
39
43
def provider_has_model(self, provider: Type[BaseProvider], model: str):
40
44
if provider.__name__ not in self.cache:
41
45
try:
42
self.cache[provider.__name__] = list(provider.get_models())
46
provider_models = provider.get_models()
47
if inspect.isawaitable(provider_models):
48
provider_models = asyncio.run(provider_models)
49
self.cache[provider.__name__] = list(provider_models)
43
50
except (MissingRequirementsError, PaymentRequiredError, MissingAuthError):
44
51
return
45
52
if self.cache[provider.__name__]:
@@ -149,6 +149,7 @@ MODEL_ALIASES = {
149
149
"gemini-3.5-flash-thinking-lite": "gemini-3.5-flash-lite",
150
150
"gemini-3.5-flash-lite-thinking": "gemini-3.5-flash-lite",
151
151
"gemini-flash-lite": "gemini-3.5-flash-lite",
152
**{key: key for key in models.keys()},
152
153
}
153
154
EXPANDED_MODEL_ALIASES = {
154
155
"gemini-2.0-flash-thinking",
@@ -1,5 +1,7 @@
1
1
from __future__ import annotations
2
2
3
import asyncio
4
import inspect
3
5
import os
4
6
import re
5
7
import json
@@ -180,6 +182,8 @@ class AnyModelProviderMixin(ProviderModelMixin):
180
182
continue
181
183
try:
182
184
new_models = provider.get_models()
185
if inspect.isawaitable(new_models):
186
new_models = asyncio.run(new_models)
183
187
except Exception as e:
184
188
debug.error(
185
189
f"Error getting models for provider {provider.__name__}:", e
@@ -493,7 +497,10 @@ class AnyProvider(AsyncGeneratorProvider, AnyModelProviderMixin):
493
497
if provider is None or not provider.working:
494
498
continue
495
499
try:
496
if model in provider.get_models():
500
provider_models = provider.get_models()
501
if inspect.isawaitable(provider_models):
502
provider_models = asyncio.run(provider_models)
503
if model in provider_models:
497
504
providers.append(provider)
498
505
elif (
499
506
provider.model_aliases is not None