summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--gpt4free/__init__.py35
-rw-r--r--gpt4free/aicolors/__init__.py30
-rw-r--r--gpt4free/aicolors/typings/__init__.py9
-rw-r--r--requirements.txt2
-rw-r--r--testing/aicolors_test.py6
5 files changed, 68 insertions, 14 deletions
diff --git a/gpt4free/__init__.py b/gpt4free/__init__.py
index 2dc6f5f3..bcc03a3b 100644
--- a/gpt4free/__init__.py
+++ b/gpt4free/__init__.py
@@ -5,18 +5,20 @@ from gpt4free import quora
from gpt4free import theb
from gpt4free import usesless
from gpt4free import you
+from gpt4free import aicolors
from gpt4free import deepai
class Provider(Enum):
"""An enum representing different providers."""
- You = 'you'
- Poe = 'poe'
- ForeFront = 'fore_front'
- Theb = 'theb'
- UseLess = 'useless'
- DeepAI = 'deepai'
+ You = "you"
+ Poe = "poe"
+ ForeFront = "fore_front"
+ Theb = "theb"
+ UseLess = "useless"
+ AiColors = "ai_colors"
+ DeepAI = "deepai"
class Completion:
@@ -42,10 +44,16 @@ class Completion:
return Completion.__theb_service(prompt, **kwargs)
elif provider == Provider.UseLess:
return Completion.__useless_service(prompt, **kwargs)
+ elif provider == Provider.AiColors:
+ return Completion.__ai_colors_service(prompt, **kwargs)
elif provider == Provider.DeepAI:
return Completion.__deepai_service(prompt, **kwargs)
else:
- raise Exception('Provider not exist, Please try again')
+ raise Exception("Provider not exist, Please try again")
+
+ @staticmethod
+ def __ai_colors_service(prompt: str):
+ return aicolors.Completion.create(prompt=prompt)
@staticmethod
def __useless_service(prompt: str, **kwargs) -> str:
@@ -65,11 +73,12 @@ class Completion:
@staticmethod
def __theb_service(prompt: str, **kwargs):
- return ''.join(theb.Completion.create(prompt=prompt))
-
+ return "".join(theb.Completion.create(prompt=prompt))
+
@staticmethod
def __deepai_service(prompt: str, **kwargs):
- return ''.join(deepai.Completion.create(prompt=prompt))
+ return "".join(deepai.Completion.create(prompt=prompt))
+
class ChatCompletion:
"""This class is used to execute a chat completion for a specified provider"""
@@ -87,8 +96,8 @@ class ChatCompletion:
if provider == Provider.DeepAI:
return ChatCompletion.__deepai_service(messages, **kwargs)
else:
- raise Exception('Provider not exist, Please try again')
-
+ 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
+ return "".join(deepai.ChatCompletion.create(messages=messages))
diff --git a/gpt4free/aicolors/__init__.py b/gpt4free/aicolors/__init__.py
new file mode 100644
index 00000000..f3afa265
--- /dev/null
+++ b/gpt4free/aicolors/__init__.py
@@ -0,0 +1,30 @@
+import fake_useragent
+import requests
+import json
+from typings import AiColorsResponse
+
+
+class Completion:
+ @staticmethod
+ def create(
+ query: str = "",
+ ) -> AiColorsResponse:
+ headers = {
+ "authority": "jsuifmbqefnxytqwmaoy.functions.supabase.co",
+ "accept": "*/*",
+ "accept-language": "en-US,en;q=0.5",
+ "cache-control": "no-cache",
+ "sec-fetch-dest": "empty",
+ "sec-fetch-mode": "cors",
+ "sec-fetch-site": "same-origin",
+ "user-agent": fake_useragent.UserAgent().random,
+ }
+
+ json_data = {"query": query}
+
+ url = "https://jsuifmbqefnxytqwmaoy.functions.supabase.co/chatgpt"
+ request = requests.post(url, headers=headers, json=json_data, timeout=30)
+ data = request.json().get("text").get("content")
+ json_data = json.loads(data.replace("\n ", ""))
+
+ return AiColorsResponse(**json_data)
diff --git a/gpt4free/aicolors/typings/__init__.py b/gpt4free/aicolors/typings/__init__.py
new file mode 100644
index 00000000..8c4f29d1
--- /dev/null
+++ b/gpt4free/aicolors/typings/__init__.py
@@ -0,0 +1,9 @@
+from dataclasses import dataclass
+
+
+@dataclass
+class AiColorsResponse:
+ background: str
+ primary: str
+ accent: str
+ text: str
diff --git a/requirements.txt b/requirements.txt
index 0bcc4425..9f12b362 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -16,4 +16,4 @@ Levenshtein
retrying
mailgw_temporary_email
pycryptodome
-random-password-generator
+random-password-generator \ No newline at end of file
diff --git a/testing/aicolors_test.py b/testing/aicolors_test.py
new file mode 100644
index 00000000..853f7e45
--- /dev/null
+++ b/testing/aicolors_test.py
@@ -0,0 +1,6 @@
+from gpt4free import aicolors
+
+prompt = "Light green color"
+req = aicolors.Completion.create(prompt=prompt)
+
+print(req)