mirror of
https://github.com/xtekky/gpt4free.git
synced 2024-11-29 22:34:08 +03:00
43 lines
1.2 KiB
Python
43 lines
1.2 KiB
Python
from __future__ import annotations
|
|
|
|
from ..locals.models import get_models
|
|
try:
|
|
from ..locals.provider import LocalProvider
|
|
has_requirements = True
|
|
except ImportError:
|
|
has_requirements = False
|
|
|
|
from ..typing import Messages, CreateResult
|
|
from ..providers.base_provider import AbstractProvider, ProviderModelMixin
|
|
from ..errors import MissingRequirementsError
|
|
|
|
class Local(AbstractProvider, ProviderModelMixin):
|
|
label = "GPT4All"
|
|
working = True
|
|
supports_message_history = True
|
|
supports_system_message = True
|
|
supports_stream = True
|
|
|
|
@classmethod
|
|
def get_models(cls):
|
|
if not cls.models:
|
|
cls.models = list(get_models())
|
|
cls.default_model = cls.models[0]
|
|
return cls.models
|
|
|
|
@classmethod
|
|
def create_completion(
|
|
cls,
|
|
model: str,
|
|
messages: Messages,
|
|
stream: bool,
|
|
**kwargs
|
|
) -> CreateResult:
|
|
if not has_requirements:
|
|
raise MissingRequirementsError('Install "gpt4all" package | pip install -U g4f[local]')
|
|
return LocalProvider.create_completion(
|
|
cls.get_model(model),
|
|
messages,
|
|
stream,
|
|
**kwargs
|
|
) |