diff options
Diffstat (limited to 'openai_rev/openai_rev.py')
-rw-r--r-- | openai_rev/openai_rev.py | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/openai_rev/openai_rev.py b/openai_rev/openai_rev.py new file mode 100644 index 00000000..6b88298b --- /dev/null +++ b/openai_rev/openai_rev.py @@ -0,0 +1,42 @@ +from enum import Enum + +from openai_rev import forefront +from openai_rev import quora +from openai_rev import theb +from openai_rev import you + + +class Provider(Enum): + You = 'you' + Poe = 'poe' + ForeFront = 'fore_front' + Theb = 'theb' + + +class Completion: + @staticmethod + def create(provider: Provider, prompt: str, **kwargs): + 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) + + @classmethod + def __you_service(cls, prompt: str, **kwargs) -> str: + return you.Completion.create(prompt, **kwargs).text + + @classmethod + def __poe_service(cls, prompt: str, **kwargs) -> str: + return quora.Completion.create(prompt=prompt, **kwargs).text + + @classmethod + def __fore_front_service(cls, prompt: str, **kwargs) -> str: + return forefront.Completion.create(prompt=prompt, **kwargs).text + + @classmethod + def __theb_service(cls, prompt: str, **kwargs): + return ''.join(theb.Completion.create(prompt=prompt)) |