Skip to content
This repository was archived by the owner on Mar 14, 2024. It is now read-only.

Commit b06c0b9

Browse files
authored
0.1.9.8
1 parent dce6d6b commit b06c0b9

File tree

13 files changed

+182
-28
lines changed

13 files changed

+182
-28
lines changed

g4f/Provider/deprecated/AiService.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@
33
import requests
44

55
from ...typing import Any, CreateResult, Messages
6-
from ..base_provider import BaseProvider
6+
from ..base_provider import AbstractProvider
77

88

9-
class AiService(BaseProvider):
9+
class AiService(AbstractProvider):
1010
url = "https://aiservice.vercel.app/"
1111
working = False
1212
supports_gpt_35_turbo = True

g4f/Provider/deprecated/Aivvm.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
from __future__ import annotations
2+
23
import requests
4+
import json
35

4-
from ..base_provider import BaseProvider
6+
from ..base_provider import AbstractProvider
57
from ...typing import CreateResult, Messages
6-
from json import dumps
78

89
# to recreate this easily, send a post request to https://chat.aivvm.com/api/models
910
models = {
@@ -17,7 +18,7 @@
1718
'gpt-4-32k-0613': {'id': 'gpt-4-32k-0613', 'name': 'GPT-4-32K-0613'},
1819
}
1920

20-
class Aivvm(BaseProvider):
21+
class Aivvm(AbstractProvider):
2122
url = 'https://chat.aivvm.com'
2223
supports_stream = True
2324
working = False
@@ -44,7 +45,7 @@ def create_completion(cls,
4445
"temperature" : kwargs.get("temperature", 0.7)
4546
}
4647

47-
data = dumps(json_data)
48+
data = json.dumps(json_data)
4849

4950
headers = {
5051
"accept" : "text/event-stream",

g4f/Provider/deprecated/DfeHub.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,10 @@
77
import requests
88

99
from ...typing import Any, CreateResult
10-
from ..base_provider import BaseProvider
10+
from ..base_provider import AbstractProvider
1111

1212

13-
class DfeHub(BaseProvider):
13+
class DfeHub(AbstractProvider):
1414
url = "https://chat.dfehub.com/"
1515
supports_stream = True
1616
supports_gpt_35_turbo = True

g4f/Provider/deprecated/EasyChat.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,13 @@
22

33
import json
44
import random
5-
65
import requests
76

87
from ...typing import Any, CreateResult
9-
from ..base_provider import BaseProvider
8+
from ..base_provider import AbstractProvider
109

1110

12-
class EasyChat(BaseProvider):
11+
class EasyChat(AbstractProvider):
1312
url: str = "https://free.easychat.work"
1413
supports_stream = True
1514
supports_gpt_35_turbo = True

g4f/Provider/deprecated/Equing.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,10 @@
66
import requests
77

88
from ...typing import Any, CreateResult
9-
from ..base_provider import BaseProvider
9+
from ..base_provider import AbstractProvider
1010

1111

12-
class Equing(BaseProvider):
12+
class Equing(AbstractProvider):
1313
url: str = 'https://next.eqing.tech/'
1414
working = False
1515
supports_stream = True

g4f/Provider/deprecated/FastGpt.py

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,13 @@
22

33
import json
44
import random
5-
from abc import ABC, abstractmethod
6-
75
import requests
86

97
from ...typing import Any, CreateResult
10-
from ..base_provider import BaseProvider
8+
from ..base_provider import AbstractProvider
119

1210

13-
class FastGpt(BaseProvider):
11+
class FastGpt(AbstractProvider):
1412
url: str = 'https://chat9.fastgpt.me/'
1513
working = False
1614
needs_auth = False
@@ -19,7 +17,6 @@ class FastGpt(BaseProvider):
1917
supports_gpt_4 = False
2018

2119
@staticmethod
22-
@abstractmethod
2320
def create_completion(
2421
model: str,
2522
messages: list[dict[str, str]],

g4f/Provider/deprecated/Forefront.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@
55
import requests
66

77
from ...typing import Any, CreateResult
8-
from ..base_provider import BaseProvider
8+
from ..base_provider import AbstractProvider
99

1010

11-
class Forefront(BaseProvider):
11+
class Forefront(AbstractProvider):
1212
url = "https://forefront.com"
1313
supports_stream = True
1414
supports_gpt_35_turbo = True

g4f/Provider/deprecated/GetGpt.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,10 @@
1111
from Cryptodome.Cipher import AES
1212

1313
from ...typing import Any, CreateResult
14-
from ..base_provider import BaseProvider
14+
from ..base_provider import AbstractProvider
1515

1616

17-
class GetGpt(BaseProvider):
17+
class GetGpt(AbstractProvider):
1818
url = 'https://chat.getgpt.world/'
1919
supports_stream = True
2020
working = False

g4f/Provider/deprecated/Lockchat.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@
55
import requests
66

77
from ...typing import Any, CreateResult
8-
from ..base_provider import BaseProvider
8+
from ..base_provider import AbstractProvider
99

1010

11-
class Lockchat(BaseProvider):
11+
class Lockchat(AbstractProvider):
1212
url: str = "http://supertest.lockchat.app"
1313
supports_stream = True
1414
supports_gpt_35_turbo = True

g4f/Provider/deprecated/NoowAi.py

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
from __future__ import annotations
2+
3+
import json
4+
from aiohttp import ClientSession
5+
6+
from ..typing import AsyncResult, Messages
7+
from .base_provider import AsyncGeneratorProvider
8+
from .helper import get_random_string
9+
10+
class NoowAi(AsyncGeneratorProvider):
11+
url = "https://noowai.com"
12+
supports_message_history = True
13+
supports_gpt_35_turbo = True
14+
working = False
15+
16+
@classmethod
17+
async def create_async_generator(
18+
cls,
19+
model: str,
20+
messages: Messages,
21+
proxy: str = None,
22+
**kwargs
23+
) -> AsyncResult:
24+
headers = {
25+
"User-Agent": "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/118.0",
26+
"Accept": "*/*",
27+
"Accept-Language": "de,en-US;q=0.7,en;q=0.3",
28+
"Accept-Encoding": "gzip, deflate, br",
29+
"Referer": f"{cls.url}/",
30+
"Content-Type": "application/json",
31+
"Origin": cls.url,
32+
"Alt-Used": "noowai.com",
33+
"Connection": "keep-alive",
34+
"Sec-Fetch-Dest": "empty",
35+
"Sec-Fetch-Mode": "cors",
36+
"Sec-Fetch-Site": "same-origin",
37+
"Pragma": "no-cache",
38+
"Cache-Control": "no-cache",
39+
"TE": "trailers"
40+
}
41+
async with ClientSession(headers=headers) as session:
42+
data = {
43+
"botId": "default",
44+
"customId": "d49bc3670c3d858458576d75c8ea0f5d",
45+
"session": "N/A",
46+
"chatId": get_random_string(),
47+
"contextId": 25,
48+
"messages": messages,
49+
"newMessage": messages[-1]["content"],
50+
"stream": True
51+
}
52+
async with session.post(f"{cls.url}/wp-json/mwai-ui/v1/chats/submit", json=data, proxy=proxy) as response:
53+
response.raise_for_status()
54+
async for line in response.content:
55+
if line.startswith(b"data: "):
56+
try:
57+
line = json.loads(line[6:])
58+
assert "type" in line
59+
except:
60+
raise RuntimeError(f"Broken line: {line.decode()}")
61+
if line["type"] == "live":
62+
yield line["data"]
63+
elif line["type"] == "end":
64+
break
65+
elif line["type"] == "error":
66+
raise RuntimeError(line["data"])

g4f/Provider/deprecated/V50.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@
55
import requests
66

77
from ...typing import Any, CreateResult
8-
from ..base_provider import BaseProvider
8+
from ..base_provider import AbstractProvider
99

1010

11-
class V50(BaseProvider):
11+
class V50(AbstractProvider):
1212
url = 'https://p5.v50.ltd'
1313
supports_gpt_35_turbo = True
1414
supports_stream = False

g4f/Provider/deprecated/VoiGpt.py

Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
from __future__ import annotations
2+
3+
import json
4+
import requests
5+
from ..base_provider import AbstractProvider
6+
from ...typing import Messages, CreateResult
7+
8+
9+
class VoiGpt(AbstractProvider):
10+
"""
11+
VoiGpt - A provider for VoiGpt.com
12+
13+
**Note** : to use this provider you have to get your csrf token/cookie from the voigpt.com website
14+
15+
Args:
16+
model: The model to use
17+
messages: The messages to send
18+
stream: Whether to stream the response
19+
proxy: The proxy to use
20+
access_token: The access token to use
21+
**kwargs: Additional keyword arguments
22+
23+
Returns:
24+
A CreateResult object
25+
"""
26+
url = "https://voigpt.com"
27+
working = False
28+
supports_gpt_35_turbo = True
29+
supports_message_history = True
30+
supports_stream = False
31+
_access_token: str = None
32+
33+
@classmethod
34+
def create_completion(
35+
cls,
36+
model: str,
37+
messages: Messages,
38+
stream: bool,
39+
proxy: str = None,
40+
access_token: str = None,
41+
**kwargs
42+
) -> CreateResult:
43+
44+
if not model:
45+
model = "gpt-3.5-turbo"
46+
if not access_token:
47+
access_token = cls._access_token
48+
if not access_token:
49+
headers = {
50+
"accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7",
51+
"accept-language": "de-DE,de;q=0.9,en-DE;q=0.8,en;q=0.7,en-US;q=0.6",
52+
"sec-ch-ua": "\"Google Chrome\";v=\"119\", \"Chromium\";v=\"119\", \"Not?A_Brand\";v=\"24\"",
53+
"sec-ch-ua-mobile": "?0",
54+
"sec-ch-ua-platform": "\"Linux\"",
55+
"sec-fetch-dest": "document",
56+
"sec-fetch-mode": "navigate",
57+
"sec-fetch-site": "none",
58+
"sec-fetch-user": "?1",
59+
"upgrade-insecure-requests": "1",
60+
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36",
61+
}
62+
req_response = requests.get(cls.url, headers=headers)
63+
access_token = cls._access_token = req_response.cookies.get("csrftoken")
64+
65+
headers = {
66+
"Accept-Encoding": "gzip, deflate, br",
67+
"Accept-Language": "de-DE,de;q=0.9,en-DE;q=0.8,en;q=0.7,en-US;q=0.6",
68+
"Cookie": f"csrftoken={access_token};",
69+
"Origin": "https://voigpt.com",
70+
"Referer": "https://voigpt.com/",
71+
"Sec-Ch-Ua": "'Google Chrome';v='119', 'Chromium';v='119', 'Not?A_Brand';v='24'",
72+
"Sec-Ch-Ua-Mobile": "?0",
73+
"Sec-Ch-Ua-Platform": "'Windows'",
74+
"Sec-Fetch-Dest": "empty",
75+
"Sec-Fetch-Mode": "cors",
76+
"Sec-Fetch-Site": "same-origin",
77+
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36",
78+
"X-Csrftoken": access_token,
79+
}
80+
81+
payload = {
82+
"messages": messages,
83+
}
84+
request_url = f"{cls.url}/generate_response/"
85+
req_response = requests.post(request_url, headers=headers, json=payload)
86+
try:
87+
response = json.loads(req_response.text)
88+
yield response["response"]
89+
except:
90+
raise RuntimeError(f"Response: {req_response.text}")
91+

g4f/Provider/deprecated/Wuguokai.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@
55
import requests
66

77
from ...typing import Any, CreateResult
8-
from ..base_provider import BaseProvider, format_prompt
8+
from ..base_provider import AbstractProvider, format_prompt
99

1010

11-
class Wuguokai(BaseProvider):
11+
class Wuguokai(AbstractProvider):
1212
url = 'https://chat.wuguokai.xyz'
1313
supports_gpt_35_turbo = True
1414
working = False

0 commit comments

Comments
 (0)