diff options
Diffstat (limited to 'g4f')
-rw-r--r-- | g4f/Provider/Aivvm.py | 42 | ||||
-rw-r--r-- | g4f/Provider/DeepAi.py | 5 | ||||
-rw-r--r-- | g4f/models.py | 20 |
3 files changed, 41 insertions, 26 deletions
diff --git a/g4f/Provider/Aivvm.py b/g4f/Provider/Aivvm.py index 1ba6d6f1..ac15ac16 100644 --- a/g4f/Provider/Aivvm.py +++ b/g4f/Provider/Aivvm.py @@ -3,6 +3,7 @@ import requests from .base_provider import BaseProvider from ..typing import CreateResult +from json import dumps # to recreate this easily, send a post request to https://chat.aivvm.com/api/models models = { @@ -35,20 +36,6 @@ class Aivvm(BaseProvider): elif model not in models: raise ValueError(f"Model is not supported: {model}") - headers = { - "accept" : "*/*", - "accept-language" : "hu-HU,hu;q=0.9,en-US;q=0.8,en;q=0.7", - "content-type" : "application/json", - "sec-ch-ua" : "\"Kuki\";v=\"116\", \"Not)A;Brand\";v=\"24\", \"Pici Pocoro\";v=\"102\"", - "sec-ch-ua-mobile" : "?0", - "sec-ch-ua-platform": "\"Bandóz\"", - "sec-fetch-dest" : "empty", - "sec-fetch-mode" : "cors", - "sec-fetch-site" : "same-origin", - "Referer" : "https://chat.aivvm.com/", - "Referrer-Policy" : "same-origin", - } - json_data = { "model" : models[model], "messages" : messages, @@ -57,12 +44,29 @@ class Aivvm(BaseProvider): "temperature" : kwargs.get("temperature", 0.7) } - response = requests.post( - "https://chat.aivvm.com/api/chat", headers=headers, json=json_data, stream=True) + headers = { + "accept" : "text/event-stream", + "accept-language" : "en-US,en;q=0.9", + "content-type" : "application/json", + "content-length" : str(len(dumps(json_data))), + "sec-ch-ua" : "\"Chrome\";v=\"117\", \"Not;A=Brand\";v=\"8\", \"Chromium\";v=\"117\"", + "sec-ch-ua-mobile" : "?0", + "sec-ch-ua-platform": "\"Windows\"", + "sec-fetch-dest" : "empty", + "sec-fetch-mode" : "cors", + "sec-fetch-site" : "same-origin", + "sec-gpc" : "1", + "referrer" : "https://chat.aivvm.com/" + } + + response = requests.post("https://chat.aivvm.com/api/chat", headers=headers, json=json_data, stream=True) response.raise_for_status() - for chunk in response.iter_content(chunk_size=None): - yield chunk.decode('utf-8') + for chunk in response.iter_content(): + try: + yield chunk.decode("utf-8") + except UnicodeDecodeError: + yield chunk.decode("unicode-escape") @classmethod @property @@ -74,4 +78,4 @@ class Aivvm(BaseProvider): ('temperature', 'float'), ] param = ', '.join([': '.join(p) for p in params]) - return f'g4f.provider.{cls.__name__} supports: ({param})'
\ No newline at end of file + return f'g4f.provider.{cls.__name__} supports: ({param})' diff --git a/g4f/Provider/DeepAi.py b/g4f/Provider/DeepAi.py index bac3e3fe..9a4f922c 100644 --- a/g4f/Provider/DeepAi.py +++ b/g4f/Provider/DeepAi.py @@ -65,7 +65,10 @@ f = function () { response.raise_for_status() async for stream in response.content.iter_any(): if stream: - yield stream.decode() + try: + yield stream.decode("utf-8") + except UnicodeDecodeError: + yield stream.decode("unicode-escape") def get_api_key(user_agent: str): diff --git a/g4f/models.py b/g4f/models.py index b4247703..aa2b3bd6 100644 --- a/g4f/models.py +++ b/g4f/models.py @@ -23,6 +23,7 @@ from .Provider import ( GptGod, AiAsk, GptGo, + Aivvm, Ylokh, Bard, Aibn, @@ -72,7 +73,9 @@ gpt_35_turbo = Model( gpt_4 = Model( name = 'gpt-4', base_provider = 'openai', - best_provider = Bing + best_provider = RetryProvider([ + Aivvm, Bing + ]) ) # Bard @@ -165,26 +168,31 @@ gpt_35_turbo_16k = Model( gpt_35_turbo_16k_0613 = Model( name = 'gpt-3.5-turbo-16k-0613', - base_provider = 'openai') + base_provider = 'openai', + best_provider = Aivvm) gpt_35_turbo_0613 = Model( name = 'gpt-3.5-turbo-0613', - base_provider = 'openai' + base_provider = 'openai', + best_provider = Aivvm ) gpt_4_0613 = Model( name = 'gpt-4-0613', - base_provider = 'openai' + base_provider = 'openai', + best_provider = Aivvm ) gpt_4_32k = Model( name = 'gpt-4-32k', - base_provider = 'openai' + base_provider = 'openai', + best_provider = Aivvm ) gpt_4_32k_0613 = Model( name = 'gpt-4-32k-0613', - base_provider = 'openai' + base_provider = 'openai', + best_provider = Aivvm ) text_ada_001 = Model( |