返回提交历史
Modified
etc/unittest/__main__.py
+1
-0
Modified
etc/unittest/main.py
+3
-5
Modified
etc/unittest/mocks.py
+9
-1
Added
etc/unittest/model.py
+27
-0
Modified
g4f/__init__.py
+5
-4
XFEstudio/gpt4free
Fix: Model sometimes not converted #1507
e4f74388
代码差异
5 个文件
+45
-10
@@ -2,5 +2,6 @@ import unittest
2
2
from .asyncio import *
3
3
from .backend import *
4
4
from .main import *
5
from .model import *
5
6
6
7
unittest.main()
@@ -1,4 +1,3 @@
1
from .include import DEFAULT_MESSAGES
2
1
import unittest
3
2
import asyncio
4
3
import g4f
@@ -6,6 +5,8 @@ from g4f import ChatCompletion, get_last_provider
6
5
from g4f.Provider import RetryProvider
7
6
from .mocks import ProviderMock
8
7
8
DEFAULT_MESSAGES = [{'role': 'user', 'content': 'Hello'}]
9
9
10
class NoTestChatCompletion(unittest.TestCase):
10
11
11
12
def no_test_create_default(self):
@@ -31,7 +32,4 @@ class TestGetLastProvider(unittest.TestCase):
31
32
def test_get_last_provider_async(self):
32
33
coroutine = ChatCompletion.create_async(g4f.models.default, DEFAULT_MESSAGES, ProviderMock)
33
34
asyncio.run(coroutine)
34
self.assertEqual(get_last_provider(), ProviderMock)
35
36
if __name__ == '__main__':
37
unittest.main()
35
self.assertEqual(get_last_provider(), ProviderMock)
@@ -22,4 +22,12 @@ class AsyncGeneratorProviderMock(AsyncGeneratorProvider):
22
22
async def create_async_generator(
23
23
model, messages, stream, **kwargs
24
24
):
25
yield "Mock"
25
yield "Mock"
26
27
class ModelProviderMock(AbstractProvider):
28
working = True
29
30
def create_completion(
31
model, messages, stream, **kwargs
32
):
33
yield model
@@ -0,0 +1,27 @@
1
import unittest
2
import g4f
3
from g4f import ChatCompletion
4
from .mocks import ModelProviderMock
5
6
DEFAULT_MESSAGES = [{'role': 'user', 'content': 'Hello'}]
7
8
test_model = g4f.models.Model(
9
name = "test/test_model",
10
base_provider = "",
11
best_provider = ModelProviderMock
12
)
13
g4f.models.ModelUtils.convert["test_model"] = test_model
14
15
class TestPassModel(unittest.TestCase):
16
17
def test_model_instance(self):
18
response = ChatCompletion.create(test_model, DEFAULT_MESSAGES)
19
self.assertEqual(test_model.name, response)
20
21
def test_model_name(self):
22
response = ChatCompletion.create("test_model", DEFAULT_MESSAGES)
23
self.assertEqual(test_model.name, response)
24
25
def test_model_pass(self):
26
response = ChatCompletion.create("test/test_model", DEFAULT_MESSAGES, ModelProviderMock)
27
self.assertEqual(test_model.name, response)
@@ -45,12 +45,13 @@ def get_model_and_provider(model : Union[Model, str],
45
45
else:
46
46
raise ProviderNotFoundError(f'Provider not found: {provider}')
47
47
48
if isinstance(model, str):
49
if model in ModelUtils.convert:
50
model = ModelUtils.convert[model]
51
48
52
if not provider:
49
53
if isinstance(model, str):
50
if model in ModelUtils.convert:
51
model = ModelUtils.convert[model]
52
else:
53
raise ModelNotFoundError(f'Model not found: {model}')
54
raise ModelNotFoundError(f'Model not found: {model}')
54
55
provider = model.best_provider
55
56
56
57
if not provider: