diff options
Diffstat (limited to 'gpt4free/__init__.py')
-rw-r--r-- | gpt4free/__init__.py | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/gpt4free/__init__.py b/gpt4free/__init__.py new file mode 100644 index 00000000..5336c825 --- /dev/null +++ b/gpt4free/__init__.py @@ -0,0 +1,64 @@ +from enum import Enum + +from gpt4free import cocalc +from gpt4free import forefront +from gpt4free import quora +from gpt4free import theb +from gpt4free import you + + +class Provider(Enum): + """An enum representing different providers.""" + + You = 'you' + Poe = 'poe' + ForeFront = 'fore_front' + Theb = 'theb' + CoCalc = 'cocalc' + + +class Completion: + """This class will be used for invoking the given provider""" + + @staticmethod + def create(provider: Provider, prompt: str, **kwargs) -> str: + """ + Invokes the given provider with given prompt and addition arguments and returns the string response + + :param provider: an enum representing the provider to use while invoking + :param prompt: input provided by the user + :param kwargs: Additional keyword arguments to pass to the provider while invoking + :return: A string representing the response from the provider + """ + if provider == Provider.Poe: + return Completion.__poe_service(prompt, **kwargs) + elif provider == Provider.You: + return Completion.__you_service(prompt, **kwargs) + elif provider == Provider.ForeFront: + return Completion.__fore_front_service(prompt, **kwargs) + elif provider == Provider.Theb: + return Completion.__theb_service(prompt, **kwargs) + elif provider == Provider.CoCalc: + return Completion.__cocalc_service(prompt, **kwargs) + else: + raise Exception('Provider not exist, Please try again') + + @staticmethod + def __you_service(prompt: str, **kwargs) -> str: + return you.Completion.create(prompt, **kwargs).text + + @staticmethod + def __poe_service(prompt: str, **kwargs) -> str: + return quora.Completion.create(prompt=prompt, **kwargs).text + + @staticmethod + def __fore_front_service(prompt: str, **kwargs) -> str: + return forefront.Completion.create(prompt=prompt, **kwargs).text + + @staticmethod + def __theb_service(prompt: str, **kwargs): + return ''.join(theb.Completion.create(prompt=prompt)) + + @staticmethod + def __cocalc_service(prompt: str, **kwargs): + return cocalc.Completion.create(prompt, cookie_input=kwargs.get('cookie_input', '')).text |