summaryrefslogtreecommitdiffstats
path: root/openaihosted/__init__.py
diff options
context:
space:
mode:
authort.me/xtekky <98614666+xtekky@users.noreply.github.com>2023-04-29 00:58:49 +0200
committert.me/xtekky <98614666+xtekky@users.noreply.github.com>2023-04-29 00:58:49 +0200
commitb2d5309ce61fa0086845cb8d43564e044985c2d2 (patch)
tree55a440f1fe321175763fe02af593125c70820557 /openaihosted/__init__.py
parentMerge branch 'main' of https://github.com/xtekky/gpt4free (diff)
downloadgpt4free-b2d5309ce61fa0086845cb8d43564e044985c2d2.tar
gpt4free-b2d5309ce61fa0086845cb8d43564e044985c2d2.tar.gz
gpt4free-b2d5309ce61fa0086845cb8d43564e044985c2d2.tar.bz2
gpt4free-b2d5309ce61fa0086845cb8d43564e044985c2d2.tar.lz
gpt4free-b2d5309ce61fa0086845cb8d43564e044985c2d2.tar.xz
gpt4free-b2d5309ce61fa0086845cb8d43564e044985c2d2.tar.zst
gpt4free-b2d5309ce61fa0086845cb8d43564e044985c2d2.zip
Diffstat (limited to 'openaihosted/__init__.py')
-rw-r--r--openaihosted/__init__.py62
1 files changed, 0 insertions, 62 deletions
diff --git a/openaihosted/__init__.py b/openaihosted/__init__.py
deleted file mode 100644
index 4f25a2be..00000000
--- a/openaihosted/__init__.py
+++ /dev/null
@@ -1,62 +0,0 @@
-import json
-import re
-import requests
-
-
-class Completion:
- @staticmethod
- def create(messages):
- headers = {
- "authority": "openai.a2hosted.com",
- "accept": "text/event-stream",
- "accept-language": "en-US,en;q=0.9,id;q=0.8,ja;q=0.7",
- "cache-control": "no-cache",
- "sec-fetch-dest": "empty",
- "sec-fetch-mode": "cors",
- "sec-fetch-site": "cross-site",
- "user-agent": "Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/112.0",
- }
-
- query_param = Completion.__create_query_param(messages)
- url = f"https://openai.a2hosted.com/chat?q={query_param}"
- request = requests.get(url, headers=headers, stream=True)
- if request.status_code != 200:
- return Completion.__get_failure_response()
-
- content = request.content
- response = Completion.__join_response(content)
-
- return {"responses": response}
-
- @classmethod
- def __get_failure_response(cls) -> dict:
- return dict(
- response="Unable to fetch the response, Please try again.",
- links=[],
- extra={},
- )
-
- @classmethod
- def __multiple_replace(cls, string, reps) -> str:
- for original, replacement in reps.items():
- string = string.replace(original, replacement)
- return string
-
- @classmethod
- def __create_query_param(cls, conversation) -> str:
- encoded_conversation = json.dumps(conversation)
- replacement = {" ": "%20", '"': "%22", "'": "%27"}
- return Completion.__multiple_replace(encoded_conversation, replacement)
-
- @classmethod
- def __convert_escape_codes(cls, text) -> str:
- replacement = {'\\\\"': '"', '\\"': '"', "\\n": "\n", "\\'": "'"}
- return Completion.__multiple_replace(text, replacement)
-
- @classmethod
- def __join_response(cls, data) -> str:
- data = data.decode("utf-8")
- find_ans = re.findall(r'(?<={"msg":)[^}]*', str(data))
- ans = [Completion.__convert_escape_codes(x[1:-1]) for x in find_ans]
- response = "".join(ans)
- return response