diff options
author | Heiner Lohaus <hlohaus@users.noreply.github.com> | 2024-02-22 00:16:58 +0100 |
---|---|---|
committer | Heiner Lohaus <hlohaus@users.noreply.github.com> | 2024-02-22 00:16:58 +0100 |
commit | e5b7f72b719814ffa2748e8e8ed1c6713a24e1a6 (patch) | |
tree | 70e9f87cb18f165428492d53a1c6e28c0828490a /g4f/base_provider.py | |
parent | Update docs / readme, Improve Gemini auth (diff) | |
download | gpt4free-e5b7f72b719814ffa2748e8e8ed1c6713a24e1a6.tar gpt4free-e5b7f72b719814ffa2748e8e8ed1c6713a24e1a6.tar.gz gpt4free-e5b7f72b719814ffa2748e8e8ed1c6713a24e1a6.tar.bz2 gpt4free-e5b7f72b719814ffa2748e8e8ed1c6713a24e1a6.tar.lz gpt4free-e5b7f72b719814ffa2748e8e8ed1c6713a24e1a6.tar.xz gpt4free-e5b7f72b719814ffa2748e8e8ed1c6713a24e1a6.tar.zst gpt4free-e5b7f72b719814ffa2748e8e8ed1c6713a24e1a6.zip |
Diffstat (limited to 'g4f/base_provider.py')
-rw-r--r-- | g4f/base_provider.py | 117 |
1 files changed, 0 insertions, 117 deletions
diff --git a/g4f/base_provider.py b/g4f/base_provider.py deleted file mode 100644 index cc3451a2..00000000 --- a/g4f/base_provider.py +++ /dev/null @@ -1,117 +0,0 @@ -from __future__ import annotations - -from abc import ABC, abstractmethod -from typing import Union, List, Dict, Type -from .typing import Messages, CreateResult - -class BaseProvider(ABC): - """ - Abstract base class for a provider. - - Attributes: - url (str): URL of the provider. - working (bool): Indicates if the provider is currently working. - needs_auth (bool): Indicates if the provider needs authentication. - supports_stream (bool): Indicates if the provider supports streaming. - supports_gpt_35_turbo (bool): Indicates if the provider supports GPT-3.5 Turbo. - supports_gpt_4 (bool): Indicates if the provider supports GPT-4. - supports_message_history (bool): Indicates if the provider supports message history. - params (str): List parameters for the provider. - """ - - url: str = None - working: bool = False - needs_auth: bool = False - supports_stream: bool = False - supports_gpt_35_turbo: bool = False - supports_gpt_4: bool = False - supports_message_history: bool = False - params: str - - @classmethod - @abstractmethod - def create_completion( - cls, - model: str, - messages: Messages, - stream: bool, - **kwargs - ) -> CreateResult: - """ - Create a completion with the given parameters. - - Args: - model (str): The model to use. - messages (Messages): The messages to process. - stream (bool): Whether to use streaming. - **kwargs: Additional keyword arguments. - - Returns: - CreateResult: The result of the creation process. - """ - raise NotImplementedError() - - @classmethod - @abstractmethod - async def create_async( - cls, - model: str, - messages: Messages, - **kwargs - ) -> str: - """ - Asynchronously create a completion with the given parameters. - - Args: - model (str): The model to use. - messages (Messages): The messages to process. - **kwargs: Additional keyword arguments. - - Returns: - str: The result of the creation process. - """ - raise NotImplementedError() - - @classmethod - def get_dict(cls) -> Dict[str, str]: - """ - Get a dictionary representation of the provider. - - Returns: - Dict[str, str]: A dictionary with provider's details. - """ - return {'name': cls.__name__, 'url': cls.url} - -class BaseRetryProvider(BaseProvider): - """ - Base class for a provider that implements retry logic. - - Attributes: - providers (List[Type[BaseProvider]]): List of providers to use for retries. - shuffle (bool): Whether to shuffle the providers list. - exceptions (Dict[str, Exception]): Dictionary of exceptions encountered. - last_provider (Type[BaseProvider]): The last provider used. - """ - - __name__: str = "RetryProvider" - supports_stream: bool = True - - def __init__( - self, - providers: List[Type[BaseProvider]], - shuffle: bool = True - ) -> None: - """ - Initialize the BaseRetryProvider. - - Args: - providers (List[Type[BaseProvider]]): List of providers to use. - shuffle (bool): Whether to shuffle the providers list. - """ - self.providers = providers - self.shuffle = shuffle - self.working = True - self.exceptions: Dict[str, Exception] = {} - self.last_provider: Type[BaseProvider] = None - -ProviderType = Union[Type[BaseProvider], BaseRetryProvider]
\ No newline at end of file |