Spaces:
Sleeping
Sleeping
File size: 2,340 Bytes
aae4949 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 |
from enum import Enum
from freeGPT import gpt3, gpt4, alpaca
__author__ = "Ruu3f"
__version__ = "1.1.5"
__all__ = ["Provider", "Completion"]
class Provider(Enum):
"""Enum class representing the available GPT providers."""
ALPACA = "alpaca"
GPT3 = "gpt3"
GPT4 = "gpt4"
class Completion:
"""Class for generating completions using different GPT providers."""
@staticmethod
def create(provider: Provider, prompt: str, **kwargs) -> str:
"""
Generates a completion using the specified provider.
Args:
provider (Provider): The GPT provider to use.
prompt (str): The prompt text for completion.
**kwargs: Additional keyword arguments specific to the provider.
Returns:
str: The generated completion text.
Raises:
Exception: If the provider doesn't exist.
"""
if provider == Provider.ALPACA:
return Completion._alpaca_service(prompt, **kwargs)
elif provider == Provider.GPT3:
return Completion._gpt3_service(prompt, **kwargs)
elif provider == Provider.GPT4:
return Completion._gpt4_service(prompt, **kwargs)
else:
raise Exception("Provider doesn't exist. Please check it again.")
@staticmethod
def _alpaca_service(prompt: str) -> str:
"""
Generates a completion using the Alpaca provider.
Args:
prompt (str): The prompt text for completion.
Returns:
str: The generated completion text.
"""
return alpaca.Completion.create(prompt=prompt)
@staticmethod
def _gpt3_service(prompt: str) -> str:
"""
Generates a completion using the GPT-3 provider.
Args:
prompt (str): The prompt text for completion.
Returns:
str: The generated completion text.
"""
resp = gpt3.Completion.create(prompt=prompt)
return resp["text"]
@staticmethod
def _gpt4_service(prompt: str) -> str:
"""
Generates a completion using the GPT-4 provider.
Args:
prompt (str): The prompt text for completion.
Returns:
str: The generated completion text.
"""
return gpt4.Completion.create(prompt=prompt).text
|