From e5b7f72b719814ffa2748e8e8ed1c6713a24e1a6 Mon Sep 17 00:00:00 2001 From: Heiner Lohaus Date: Thu, 22 Feb 2024 00:16:58 +0100 Subject: Move some modules, create providers dir Set min version for duckduckgo Make duckduckgo search async Remove get_lastet_version --- g4f/base_provider.py | 117 --------------------------------------------------- 1 file changed, 117 deletions(-) delete mode 100644 g4f/base_provider.py (limited to 'g4f/base_provider.py') 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 -- cgit v1.2.3