返回提交历史
Added
g4f/Provider/Rocks.py
+56
-0
Modified
g4f/Provider/__init__.py
+1
-0
XFEstudio/gpt4free
stonehenge ( I found a good site to reverse #2141 )
0371e095
代码差异
2 个文件
+57
-0
@@ -0,0 +1,56 @@
1
import json
2
from aiohttp import ClientSession
3
4
from ..typing import Messages, AsyncResult
5
from .base_provider import AsyncGeneratorProvider
6
7
class Rocks(AsyncGeneratorProvider):
8
url = "https://api.discord.rocks"
9
api_endpoint = "/chat/completions"
10
supports_message_history = False
11
supports_gpt_35_turbo = True
12
working = True
13
14
@classmethod
15
async def create_async_generator(
16
cls,
17
model: str,
18
messages: Messages,
19
proxy: str = None,
20
**kwargs
21
) -> AsyncResult:
22
payload = {"messages":messages,"model":model,"max_tokens":4096,"temperature":1,"top_p":1,"stream":True}
23
24
headers = {
25
"Accept": "application/json",
26
"Accept-Encoding": "gzip, deflate, br, zstd",
27
"Accept-Language": "en-US,en;q=0.9",
28
"Origin": cls.url,
29
"Referer": f"{cls.url}/en",
30
"Sec-Fetch-Dest": "empty",
31
"Sec-Fetch-Mode": "cors",
32
"Sec-Fetch-Site": "same-origin",
33
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36",
34
}
35
36
async with ClientSession() as session:
37
async with session.post(
38
f"{cls.url}{cls.api_endpoint}",
39
json=payload,
40
proxy=proxy,
41
headers=headers
42
) as response:
43
response.raise_for_status()
44
async for line in response.content:
45
if line.startswith(b"data: "):
46
try:
47
line = json.loads(line[6:])
48
except:
49
continue
50
chunk = line["choices"][0]["delta"].get("content")
51
if chunk:
52
yield chunk
53
elif line.startswith(b"\n"):
54
pass
55
else:
56
raise Exception(f"Unexpected line: {line}")
@@ -52,6 +52,7 @@ from .Pizzagpt import Pizzagpt
52
52
from .Reka import Reka
53
53
from .Replicate import Replicate
54
54
from .ReplicateHome import ReplicateHome
55
from .Rocks import Rocks
55
56
from .TeachAnything import TeachAnything
56
57
from .Vercel import Vercel
57
58
from .WhiteRabbitNeo import WhiteRabbitNeo