feat add plugins, typing, refactored revgpt

pull/65/head
Zack 1 year ago
parent f3a238294c
commit b95c918e4e

File diff suppressed because one or more lines are too long

@ -2,7 +2,6 @@ import os
import sys
from dotenv import load_dotenv
from swarms.models.revgpt import RevChatGPTModel
from swarms.workers.worker import Worker
root_dir = os.path.dirname(os.path.dirname(os.path.realpath(__file__)))
sys.path.append(root_dir)

@ -0,0 +1,198 @@
"""
A module that contains all the types used in this project
"""
import os
import platform
from enum import Enum
from typing import Union
python_version = list(platform.python_version_tuple())
SUPPORT_ADD_NOTES = int(python_version[0]) >= 3 and int(python_version[1]) >= 11
class ChatbotError(Exception):
"""
Base class for all Chatbot errors in this Project
"""
def __init__(self, *args: object) -> None:
if SUPPORT_ADD_NOTES:
super().add_note(
"Please check that the input is correct, or you can resolve this issue by filing an issue",
)
super().add_note("Project URL: https://github.com/acheong08/ChatGPT")
super().__init__(*args)
class ActionError(ChatbotError):
"""
Subclass of ChatbotError
An object that throws an error because the execution of an operation is blocked
"""
def __init__(self, *args: object) -> None:
if SUPPORT_ADD_NOTES:
super().add_note(
"The current operation is not allowed, which may be intentional",
)
super().__init__(*args)
class ActionNotAllowedError(ActionError):
"""
Subclass of ActionError
An object that throws an error because the execution of an unalloyed operation is blocked
"""
class ActionRefuseError(ActionError):
"""
Subclass of ActionError
An object that throws an error because the execution of a refused operation is blocked.
"""
class CLIError(ChatbotError):
"""
Subclass of ChatbotError
The error caused by a CLI program error
"""
class ErrorType(Enum):
"""
Enumeration class for different types of errors.
"""
USER_ERROR = -1
UNKNOWN_ERROR = 0
SERVER_ERROR = 1
RATE_LIMIT_ERROR = 2
INVALID_REQUEST_ERROR = 3
EXPIRED_ACCESS_TOKEN_ERROR = 4
INVALID_ACCESS_TOKEN_ERROR = 5
PROHIBITED_CONCURRENT_QUERY_ERROR = 6
AUTHENTICATION_ERROR = 7
CLOUDFLARE_ERROR = 8
class Error(ChatbotError):
"""
Base class for exceptions in V1 module.
"""
def __init__(
self,
source: str,
message: str,
*args: object,
code: Union[ErrorType, int] = ErrorType.UNKNOWN_ERROR,
) -> None:
self.source: str = source
self.message: str = message
self.code: ErrorType | int = code
super().__init__(*args)
def __str__(self) -> str:
return f"{self.source}: {self.message} (code: {self.code})"
def __repr__(self) -> str:
return f"{self.source}: {self.message} (code: {self.code})"
class AuthenticationError(ChatbotError):
"""
Subclass of ChatbotError
The object of the error thrown by a validation failure or exception
"""
def __init__(self, *args: object) -> None:
if SUPPORT_ADD_NOTES:
super().add_note(
"Please check if your key is correct, maybe it may not be valid",
)
super().__init__(*args)
class APIConnectionError(ChatbotError):
"""
Subclass of ChatbotError
An exception object thrown when an API connection fails or fails to connect due to network or
other miscellaneous reasons
"""
def __init__(self, *args: object) -> None:
if SUPPORT_ADD_NOTES:
super().add_note(
"Please check if there is a problem with your network connection",
)
super().__init__(*args)
class NotAllowRunning(ActionNotAllowedError):
"""
Subclass of ActionNotAllowedError
Direct startup is not allowed for some reason
"""
class ResponseError(APIConnectionError):
"""
Subclass of APIConnectionError
Error objects caused by API request errors due to network or other miscellaneous reasons
"""
class OpenAIError(APIConnectionError):
"""
Subclass of APIConnectionError
Error objects caused by OpenAI's own server errors
"""
class RequestError(APIConnectionError):
"""
Subclass of APIConnectionError
There is a problem with the API response due to network or other miscellaneous reasons, or there
is no reply to the object that caused the error at all
"""
class Colors:
"""
Colors for printing
"""
HEADER = "\033[95m"
OKBLUE = "\033[94m"
OKCYAN = "\033[96m"
OKGREEN = "\033[92m"
WARNING = "\033[93m"
FAIL = "\033[91m"
ENDC = "\033[0m"
BOLD = "\033[1m"
UNDERLINE = "\033[4m"
def __init__(self) -> None:
if os.getenv("NO_COLOR"):
Colors.HEADER = ""
Colors.OKBLUE = ""
Colors.OKCYAN = ""
Colors.OKGREEN = ""
Colors.WARNING = ""
Colors.FAIL = ""
Colors.ENDC = ""
Colors.BOLD = ""
Colors.UNDERLINE = ""

File diff suppressed because it is too large Load Diff
Loading…
Cancel
Save