diff options
author | t.me/xtekky <98614666+xtekky@users.noreply.github.com> | 2023-04-30 13:42:21 +0200 |
---|---|---|
committer | t.me/xtekky <98614666+xtekky@users.noreply.github.com> | 2023-04-30 13:42:21 +0200 |
commit | e02094de5baac85613855c8a6c9ae1298324ad0e (patch) | |
tree | f3a8930ffc312c31916b7beeffac3ccc090f929c /gpt4free | |
parent | Update README.md (diff) | |
download | gpt4free-e02094de5baac85613855c8a6c9ae1298324ad0e.tar gpt4free-e02094de5baac85613855c8a6c9ae1298324ad0e.tar.gz gpt4free-e02094de5baac85613855c8a6c9ae1298324ad0e.tar.bz2 gpt4free-e02094de5baac85613855c8a6c9ae1298324ad0e.tar.lz gpt4free-e02094de5baac85613855c8a6c9ae1298324ad0e.tar.xz gpt4free-e02094de5baac85613855c8a6c9ae1298324ad0e.tar.zst gpt4free-e02094de5baac85613855c8a6c9ae1298324ad0e.zip |
Diffstat (limited to 'gpt4free')
-rw-r--r-- | gpt4free/__init__.py | 9 | ||||
-rw-r--r-- | gpt4free/usesless/README.md | 23 | ||||
-rw-r--r-- | gpt4free/usesless/__init__.py | 55 |
3 files changed, 87 insertions, 0 deletions
diff --git a/gpt4free/__init__.py b/gpt4free/__init__.py index 5336c825..b4742b64 100644 --- a/gpt4free/__init__.py +++ b/gpt4free/__init__.py @@ -5,6 +5,7 @@ from gpt4free import forefront from gpt4free import quora from gpt4free import theb from gpt4free import you +from gpt4free import usesless class Provider(Enum): @@ -15,6 +16,7 @@ class Provider(Enum): ForeFront = 'fore_front' Theb = 'theb' CoCalc = 'cocalc' + UseLess = 'useless' class Completion: @@ -22,6 +24,7 @@ class Completion: @staticmethod def create(provider: Provider, prompt: str, **kwargs) -> str: + """ Invokes the given provider with given prompt and addition arguments and returns the string response @@ -40,8 +43,14 @@ class Completion: return Completion.__theb_service(prompt, **kwargs) elif provider == Provider.CoCalc: return Completion.__cocalc_service(prompt, **kwargs) + elif provider == Provider.UseLess: + return Completion.__useless_service(prompt, **kwargs) else: raise Exception('Provider not exist, Please try again') + + @staticmethod + def __useless_service(prompt: str, **kwargs) -> str: + return usesless.Completion.create(prompt = prompt, **kwargs) @staticmethod def __you_service(prompt: str, **kwargs) -> str: diff --git a/gpt4free/usesless/README.md b/gpt4free/usesless/README.md new file mode 100644 index 00000000..13e9df8c --- /dev/null +++ b/gpt4free/usesless/README.md @@ -0,0 +1,23 @@ +ai.usesless.com + +to do: + +- use random user agent in header +- make the code better I guess (?) + +### Example: `usesless` <a name="example-usesless"></a> + +```python +import usesless + +message_id = "" +while True: + prompt = input("Question: ") + if prompt == "!stop": + break + + req = usesless.Completion.create(prompt=prompt, parentMessageId=message_id) + + print(f"Answer: {req['text']}") + message_id = req["id"] +``` diff --git a/gpt4free/usesless/__init__.py b/gpt4free/usesless/__init__.py new file mode 100644 index 00000000..6029009d --- /dev/null +++ b/gpt4free/usesless/__init__.py @@ -0,0 +1,55 @@ +import requests +import json + + +class Completion: + headers = { + "authority": "ai.usesless.com", + "accept": "application/json, text/plain, */*", + "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": "Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/112.0", + } + + @staticmethod + def create( + systemMessage: str = "You are a helpful assistant", + prompt: str = "", + parentMessageId: str = "", + presence_penalty: float = 1, + temperature: float = 1, + model: str = "gpt-3.5-turbo", + ): + print(parentMessageId, prompt) + + json_data = { + "openaiKey": "", + "prompt": prompt, + "options": { + "parentMessageId": parentMessageId, + "systemMessage": systemMessage, + "completionParams": { + "presence_penalty": presence_penalty, + "temperature": temperature, + "model": model, + }, + }, + } + + url = "https://ai.usesless.com/api/chat-process" + request = requests.post(url, headers=Completion.headers, json=json_data) + content = request.content + + response = Completion.__response_to_json(content) + return response + + @classmethod + def __response_to_json(cls, text) -> dict: + text = str(text.decode("utf-8")) + + split_text = text.rsplit("\n", 1)[1] + to_json = json.loads(split_text) + return to_json |