XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet
公开
关注 0 Fork 0 Star 1
返回提交历史

XFEstudio/gpt4free

stonehenge ( I found a good site to reverse #2141 )

0371e095
zukixa <56563509+zukixa@users.noreply.github.com>
提交于

代码差异

2 个文件 +57 -0
Added g4f/Provider/Rocks.py +56 -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}")
Modified g4f/Provider/__init__.py +1 -0
@@ -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