mirror of https://github.com/xtekky/gpt4free.git
Fix: Model sometimes not converted #1507
This commit is contained in:
parent
b6feec9e7d
commit
e4f743881c
|
@ -2,5 +2,6 @@ import unittest
|
||||||
from .asyncio import *
|
from .asyncio import *
|
||||||
from .backend import *
|
from .backend import *
|
||||||
from .main import *
|
from .main import *
|
||||||
|
from .model import *
|
||||||
|
|
||||||
unittest.main()
|
unittest.main()
|
|
@ -1,4 +1,3 @@
|
||||||
from .include import DEFAULT_MESSAGES
|
|
||||||
import unittest
|
import unittest
|
||||||
import asyncio
|
import asyncio
|
||||||
import g4f
|
import g4f
|
||||||
|
@ -6,6 +5,8 @@ from g4f import ChatCompletion, get_last_provider
|
||||||
from g4f.Provider import RetryProvider
|
from g4f.Provider import RetryProvider
|
||||||
from .mocks import ProviderMock
|
from .mocks import ProviderMock
|
||||||
|
|
||||||
|
DEFAULT_MESSAGES = [{'role': 'user', 'content': 'Hello'}]
|
||||||
|
|
||||||
class NoTestChatCompletion(unittest.TestCase):
|
class NoTestChatCompletion(unittest.TestCase):
|
||||||
|
|
||||||
def no_test_create_default(self):
|
def no_test_create_default(self):
|
||||||
|
@ -32,6 +33,3 @@ class TestGetLastProvider(unittest.TestCase):
|
||||||
coroutine = ChatCompletion.create_async(g4f.models.default, DEFAULT_MESSAGES, ProviderMock)
|
coroutine = ChatCompletion.create_async(g4f.models.default, DEFAULT_MESSAGES, ProviderMock)
|
||||||
asyncio.run(coroutine)
|
asyncio.run(coroutine)
|
||||||
self.assertEqual(get_last_provider(), ProviderMock)
|
self.assertEqual(get_last_provider(), ProviderMock)
|
||||||
|
|
||||||
if __name__ == '__main__':
|
|
||||||
unittest.main()
|
|
|
@ -23,3 +23,11 @@ class AsyncGeneratorProviderMock(AsyncGeneratorProvider):
|
||||||
model, messages, stream, **kwargs
|
model, messages, stream, **kwargs
|
||||||
):
|
):
|
||||||
yield "Mock"
|
yield "Mock"
|
||||||
|
|
||||||
|
class ModelProviderMock(AbstractProvider):
|
||||||
|
working = True
|
||||||
|
|
||||||
|
def create_completion(
|
||||||
|
model, messages, stream, **kwargs
|
||||||
|
):
|
||||||
|
yield model
|
|
@ -0,0 +1,27 @@
|
||||||
|
import unittest
|
||||||
|
import g4f
|
||||||
|
from g4f import ChatCompletion
|
||||||
|
from .mocks import ModelProviderMock
|
||||||
|
|
||||||
|
DEFAULT_MESSAGES = [{'role': 'user', 'content': 'Hello'}]
|
||||||
|
|
||||||
|
test_model = g4f.models.Model(
|
||||||
|
name = "test/test_model",
|
||||||
|
base_provider = "",
|
||||||
|
best_provider = ModelProviderMock
|
||||||
|
)
|
||||||
|
g4f.models.ModelUtils.convert["test_model"] = test_model
|
||||||
|
|
||||||
|
class TestPassModel(unittest.TestCase):
|
||||||
|
|
||||||
|
def test_model_instance(self):
|
||||||
|
response = ChatCompletion.create(test_model, DEFAULT_MESSAGES)
|
||||||
|
self.assertEqual(test_model.name, response)
|
||||||
|
|
||||||
|
def test_model_name(self):
|
||||||
|
response = ChatCompletion.create("test_model", DEFAULT_MESSAGES)
|
||||||
|
self.assertEqual(test_model.name, response)
|
||||||
|
|
||||||
|
def test_model_pass(self):
|
||||||
|
response = ChatCompletion.create("test/test_model", DEFAULT_MESSAGES, ModelProviderMock)
|
||||||
|
self.assertEqual(test_model.name, response)
|
|
@ -45,12 +45,13 @@ def get_model_and_provider(model : Union[Model, str],
|
||||||
else:
|
else:
|
||||||
raise ProviderNotFoundError(f'Provider not found: {provider}')
|
raise ProviderNotFoundError(f'Provider not found: {provider}')
|
||||||
|
|
||||||
|
if isinstance(model, str):
|
||||||
|
if model in ModelUtils.convert:
|
||||||
|
model = ModelUtils.convert[model]
|
||||||
|
|
||||||
if not provider:
|
if not provider:
|
||||||
if isinstance(model, str):
|
if isinstance(model, str):
|
||||||
if model in ModelUtils.convert:
|
raise ModelNotFoundError(f'Model not found: {model}')
|
||||||
model = ModelUtils.convert[model]
|
|
||||||
else:
|
|
||||||
raise ModelNotFoundError(f'Model not found: {model}')
|
|
||||||
provider = model.best_provider
|
provider = model.best_provider
|
||||||
|
|
||||||
if not provider:
|
if not provider:
|
||||||
|
|
Loading…
Reference in New Issue