diff options
Diffstat (limited to 'gpt4free/__init__.py')
-rw-r--r-- | gpt4free/__init__.py | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/gpt4free/__init__.py b/gpt4free/__init__.py index 1e652897..2dc6f5f3 100644 --- a/gpt4free/__init__.py +++ b/gpt4free/__init__.py @@ -5,6 +5,7 @@ from gpt4free import quora from gpt4free import theb from gpt4free import usesless from gpt4free import you +from gpt4free import deepai class Provider(Enum): @@ -15,6 +16,7 @@ class Provider(Enum): ForeFront = 'fore_front' Theb = 'theb' UseLess = 'useless' + DeepAI = 'deepai' class Completion: @@ -40,6 +42,8 @@ class Completion: return Completion.__theb_service(prompt, **kwargs) elif provider == Provider.UseLess: return Completion.__useless_service(prompt, **kwargs) + elif provider == Provider.DeepAI: + return Completion.__deepai_service(prompt, **kwargs) else: raise Exception('Provider not exist, Please try again') @@ -62,4 +66,29 @@ class Completion: @staticmethod def __theb_service(prompt: str, **kwargs): return ''.join(theb.Completion.create(prompt=prompt)) + + @staticmethod + def __deepai_service(prompt: str, **kwargs): + return ''.join(deepai.Completion.create(prompt=prompt)) + +class ChatCompletion: + """This class is used to execute a chat completion for a specified provider""" + + @staticmethod + def create(provider: Provider, messages: list, **kwargs) -> str: + """ + Invokes the given provider with given chat messages and addition arguments and returns the string response + :param provider: an enum representing the provider to use while invoking + :param messages: a list of chat messages, see the OpenAI docs for how to format this (https://platform.openai.com/docs/guides/chat/introduction) + :param kwargs: Additional keyword arguments to pass to the provider while invoking + :return: A string representing the response from the provider + """ + if provider == Provider.DeepAI: + return ChatCompletion.__deepai_service(messages, **kwargs) + else: + raise Exception('Provider not exist, Please try again') + + @staticmethod + def __deepai_service(messages: list, **kwargs): + return ''.join(deepai.ChatCompletion.create(messages=messages))
\ No newline at end of file |