1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- 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
- )
|