__init__.py 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. from enum import Enum
  2. from gpt4free import cocalc
  3. from gpt4free import forefront
  4. from gpt4free import quora
  5. from gpt4free import theb
  6. from gpt4free import you
  7. from gpt4free import usesless
  8. class Provider(Enum):
  9. """An enum representing different providers."""
  10. You = 'you'
  11. Poe = 'poe'
  12. ForeFront = 'fore_front'
  13. Theb = 'theb'
  14. CoCalc = 'cocalc'
  15. UseLess = 'useless'
  16. class Completion:
  17. """This class will be used for invoking the given provider"""
  18. @staticmethod
  19. def create(provider: Provider, prompt: str, **kwargs) -> str:
  20. """
  21. Invokes the given provider with given prompt and addition arguments and returns the string response
  22. :param provider: an enum representing the provider to use while invoking
  23. :param prompt: input provided by the user
  24. :param kwargs: Additional keyword arguments to pass to the provider while invoking
  25. :return: A string representing the response from the provider
  26. """
  27. if provider == Provider.Poe:
  28. return Completion.__poe_service(prompt, **kwargs)
  29. elif provider == Provider.You:
  30. return Completion.__you_service(prompt, **kwargs)
  31. elif provider == Provider.ForeFront:
  32. return Completion.__fore_front_service(prompt, **kwargs)
  33. elif provider == Provider.Theb:
  34. return Completion.__theb_service(prompt, **kwargs)
  35. elif provider == Provider.CoCalc:
  36. return Completion.__cocalc_service(prompt, **kwargs)
  37. elif provider == Provider.UseLess:
  38. return Completion.__useless_service(prompt, **kwargs)
  39. else:
  40. raise Exception('Provider not exist, Please try again')
  41. @staticmethod
  42. def __useless_service(prompt: str, **kwargs) -> str:
  43. return usesless.Completion.create(prompt = prompt, **kwargs)
  44. @staticmethod
  45. def __you_service(prompt: str, **kwargs) -> str:
  46. return you.Completion.create(prompt, **kwargs).text
  47. @staticmethod
  48. def __poe_service(prompt: str, **kwargs) -> str:
  49. return quora.Completion.create(prompt=prompt, **kwargs).text
  50. @staticmethod
  51. def __fore_front_service(prompt: str, **kwargs) -> str:
  52. return forefront.Completion.create(prompt=prompt, **kwargs).text
  53. @staticmethod
  54. def __theb_service(prompt: str, **kwargs):
  55. return ''.join(theb.Completion.create(prompt=prompt))
  56. @staticmethod
  57. def __cocalc_service(prompt: str, **kwargs):
  58. return cocalc.Completion.create(prompt, cookie_input=kwargs.get('cookie_input', '')).text