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

XFEstudio/gpt4free

Add GptGod Provider Remove timeout from aiohttp providers Disable Opchatgpts and ChatgptLogin provider

4fa6e9c0
Heiner Lohaus <heiner@lohaus.eu>
提交于

代码差异

15 个文件 +74 -29
Modified etc/testing/test_async.py +1 -0
@@ -3,6 +3,7 @@ from pathlib import Path
3 3 import asyncio
4 4
5 5 sys.path.append(str(Path(__file__).parent.parent))
6 sys.path.append(str(Path(__file__).parent.parent.parent))
6 7
7 8 import g4f
8 9 from testing.test_providers import get_providers
Modified g4f/Provider/AiAsk.py +2 -3
@@ -1,6 +1,6 @@
1 1 from __future__ import annotations
2 2
3 from aiohttp import ClientSession, ClientTimeout
3 from aiohttp import ClientSession
4 4 from ..typing import AsyncGenerator
5 5 from .base_provider import AsyncGeneratorProvider
6 6
@@ -14,7 +14,6 @@ class AiAsk(AsyncGeneratorProvider):
14 14 cls,
15 15 model: str,
16 16 messages: list[dict[str, str]],
17 timeout: int = 30,
18 17 **kwargs
19 18 ) -> AsyncGenerator:
20 19 headers = {
@@ -22,7 +21,7 @@ class AiAsk(AsyncGeneratorProvider):
22 21 "origin": cls.url,
23 22 "referer": f"{cls.url}/chat",
24 23 }
25 async with ClientSession(headers=headers, timeout=ClientTimeout(timeout)) as session:
24 async with ClientSession(headers=headers) as session:
26 25 data = {
27 26 "continuous": True,
28 27 "id": "fRMSQtuHl91A4De9cCvKD",
Modified g4f/Provider/Aichat.py +2 -3
@@ -1,6 +1,6 @@
1 1 from __future__ import annotations
2 2
3 from aiohttp import ClientSession, ClientTimeout
3 from aiohttp import ClientSession
4 4
5 5 from .base_provider import AsyncProvider, format_prompt
6 6
@@ -15,7 +15,6 @@ class Aichat(AsyncProvider):
15 15 model: str,
16 16 messages: list[dict[str, str]],
17 17 proxy: str = None,
18 timeout: int = 30,
19 18 **kwargs
20 19 ) -> str:
21 20 headers = {
@@ -34,7 +33,7 @@ class Aichat(AsyncProvider):
34 33 "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36",
35 34 }
36 35 async with ClientSession(
37 headers=headers, timeout=ClientTimeout(timeout)
36 headers=headers
38 37 ) as session:
39 38 json_data = {
40 39 "message": format_prompt(messages),
Modified g4f/Provider/ChatgptAi.py +2 -3
@@ -1,7 +1,7 @@
1 1 from __future__ import annotations
2 2
3 3 import re
4 from aiohttp import ClientSession, ClientTimeout
4 from aiohttp import ClientSession
5 5
6 6 from .base_provider import AsyncProvider, format_prompt
7 7
@@ -20,7 +20,6 @@ class ChatgptAi(AsyncProvider):
20 20 model: str,
21 21 messages: list[dict[str, str]],
22 22 proxy: str = None,
23 timeout: int = 30,
24 23 **kwargs
25 24 ) -> str:
26 25 headers = {
@@ -40,7 +39,7 @@ class ChatgptAi(AsyncProvider):
40 39 "user-agent" : "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36",
41 40 }
42 41 async with ClientSession(
43 headers=headers, timeout=ClientTimeout(timeout)
42 headers=headers
44 43 ) as session:
45 44 if not cls._nonce:
46 45 async with session.get(cls.url, proxy=proxy) as response:
Modified g4f/Provider/ChatgptDemo.py +2 -3
@@ -1,7 +1,7 @@
1 1 from __future__ import annotations
2 2
3 3 import time, json, re
4 from aiohttp import ClientSession, ClientTimeout
4 from aiohttp import ClientSession
5 5 from typing import AsyncGenerator
6 6
7 7 from .base_provider import AsyncGeneratorProvider
@@ -18,7 +18,6 @@ class ChatgptDemo(AsyncGeneratorProvider):
18 18 model: str,
19 19 messages: list[dict[str, str]],
20 20 proxy: str = None,
21 timeout: int = 30,
22 21 **kwargs
23 22 ) -> AsyncGenerator:
24 23 headers = {
@@ -34,7 +33,7 @@ class ChatgptDemo(AsyncGeneratorProvider):
34 33 "sec-fetch-site": "same-origin",
35 34 "user-agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36"
36 35 }
37 async with ClientSession(headers=headers, timeout=ClientTimeout(timeout)) as session:
36 async with ClientSession(headers=headers) as session:
38 37 async with session.get(f"{cls.url}/", proxy=proxy) as response:
39 38 response.raise_for_status()
40 39 response = await response.text()
Modified g4f/Provider/GptGo.py +2 -2
@@ -1,6 +1,6 @@
1 1 from __future__ import annotations
2 2
3 from aiohttp import ClientSession, ClientTimeout
3 from aiohttp import ClientSession
4 4 import json
5 5
6 6 from ..typing import AsyncGenerator
@@ -32,7 +32,7 @@ class GptGo(AsyncGeneratorProvider):
32 32 "Sec-Fetch-Site" : "same-origin",
33 33 }
34 34 async with ClientSession(
35 headers=headers, timeout=ClientTimeout(timeout)
35 headers=headers
36 36 ) as session:
37 37 async with session.get(
38 38 "https://gptgo.ai/action_get_token.php",
Added g4f/Provider/GptGod.py +51 -0
@@ -0,0 +1,51 @@
1 from __future__ import annotations
2 import secrets, json
3 from aiohttp import ClientSession
4 from typing import AsyncGenerator
5 from .base_provider import AsyncGeneratorProvider
6 from .helper import format_prompt
7
8 class GptGod(AsyncGeneratorProvider):
9 url = "https://gptgod.site"
10 supports_gpt_35_turbo = True
11 working = True
12
13 @classmethod
14 async def create_async_generator(
15 cls,
16 model: str,
17 messages: list[dict[str, str]],
18 **kwargs
19 ) -> AsyncGenerator:
20 headers = {
21 "User-Agent": "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/118.0",
22 "Accept": "text/event-stream",
23 "Accept-Language": "de,en-US;q=0.7,en;q=0.3",
24 "Accept-Encoding": "gzip, deflate, br",
25 "Alt-Used": "gptgod.site",
26 "Connection": "keep-alive",
27 "Referer": "https://gptgod.site/",
28 "Sec-Fetch-Dest": "empty",
29 "Sec-Fetch-Mode": "cors",
30 "Sec-Fetch-Site": "same-origin",
31 "Pragma": "no-cache",
32 "Cache-Control": "no-cache",
33 }
34 async with ClientSession(headers=headers) as session:
35 prompt = format_prompt(messages)
36 data = {
37 "content": prompt,
38 "id": secrets.token_hex(16).zfill(32)
39 }
40 async with session.get(f"{cls.url}/api/session/free/gpt3p5", params=data) as response:
41 response.raise_for_status()
42 event = None
43 async for line in response.content:
44 if line.startswith(b'event: '):
45 event = line[7:-1]
46 elif event == b"data" and line.startswith(b"data: "):
47 data = json.loads(line[6:-1])
48 if data:
49 yield data
50 elif event == b"done":
51 break
Modified g4f/Provider/Liaobots.py +2 -3
@@ -2,7 +2,7 @@ from __future__ import annotations
2 2
3 3 import uuid
4 4
5 from aiohttp import ClientSession, ClientTimeout
5 from aiohttp import ClientSession
6 6
7 7 from ..typing import AsyncGenerator
8 8 from .base_provider import AsyncGeneratorProvider
@@ -42,7 +42,6 @@ class Liaobots(AsyncGeneratorProvider):
42 42 messages: list[dict[str, str]],
43 43 auth: str = None,
44 44 proxy: str = None,
45 timeout: int = 30,
46 45 **kwargs
47 46 ) -> AsyncGenerator:
48 47 model = model if model in models else "gpt-3.5-turbo"
@@ -54,7 +53,7 @@ class Liaobots(AsyncGeneratorProvider):
54 53 "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36",
55 54 }
56 55 async with ClientSession(
57 headers=headers, timeout=ClientTimeout(timeout)
56 headers=headers
58 57 ) as session:
59 58 cls._auth_code = auth if isinstance(auth, str) else cls._auth_code
60 59 if not cls._auth_code:
Modified g4f/Provider/Vitalentum.py +2 -3
@@ -1,7 +1,7 @@
1 1 from __future__ import annotations
2 2
3 3 import json
4 from aiohttp import ClientSession, ClientTimeout
4 from aiohttp import ClientSession
5 5
6 6 from .base_provider import AsyncGeneratorProvider
7 7 from ..typing import AsyncGenerator
@@ -18,7 +18,6 @@ class Vitalentum(AsyncGeneratorProvider):
18 18 model: str,
19 19 messages: list[dict[str, str]],
20 20 proxy: str = None,
21 timeout: int = 30,
22 21 **kwargs
23 22 ) -> AsyncGenerator:
24 23 headers = {
@@ -41,7 +40,7 @@ class Vitalentum(AsyncGeneratorProvider):
41 40 **kwargs
42 41 }
43 42 async with ClientSession(
44 headers=headers, timeout=ClientTimeout(timeout)
43 headers=headers
45 44 ) as session:
46 45 async with session.post(cls.url + "/api/converse-edge", json=data, proxy=proxy) as response:
47 46 response.raise_for_status()
Modified g4f/Provider/Yqcloud.py +1 -2
@@ -16,11 +16,10 @@ class Yqcloud(AsyncGeneratorProvider):
16 16 model: str,
17 17 messages: list[dict[str, str]],
18 18 proxy: str = None,
19 timeout: int = 30,
20 19 **kwargs,
21 20 ) -> AsyncGenerator:
22 21 async with ClientSession(
23 headers=_create_header(), timeout=timeout
22 headers=_create_header()
24 23 ) as session:
25 24 payload = _create_payload(messages)
26 25 async with session.post("https://api.aichatos.cloud/api/generateStream", proxy=proxy, json=payload) as response:
Modified g4f/Provider/__init__.py +2 -1
@@ -14,13 +14,13 @@ from .Chatgpt4Online import Chatgpt4Online
14 14 from .ChatgptAi import ChatgptAi
15 15 from .ChatgptDemo import ChatgptDemo
16 16 from .ChatgptDuo import ChatgptDuo
17 from .ChatgptLogin import ChatgptLogin
18 17 from .ChatgptX import ChatgptX
19 18 from .DeepAi import DeepAi
20 19 from .FreeGpt import FreeGpt
21 20 from .GPTalk import GPTalk
22 21 from .GptForLove import GptForLove
23 22 from .GptGo import GptGo
23 from .GptGod import GptGod
24 24 from .H2o import H2o
25 25 from .Liaobots import Liaobots
26 26 from .Myshell import Myshell
@@ -71,6 +71,7 @@ __all__ = [
71 71 'GptForLove',
72 72 'GetGpt',
73 73 'GptGo',
74 'GptGod',
74 75 'H2o',
75 76 'HuggingChat',
76 77 'Liaobots',
Renamed g4f/Provider/deprecated/ChatgptLogin.py +1 -1
@@ -3,7 +3,7 @@ from __future__ import annotations
3 3 import os, re
4 4 from aiohttp import ClientSession
5 5
6 from .base_provider import AsyncProvider, format_prompt
6 from ..base_provider import AsyncProvider, format_prompt
7 7
8 8
9 9 class ChatgptLogin(AsyncProvider):
Modified g4f/Provider/deprecated/Opchatgpts.py +2 -3
Modified g4f/Provider/deprecated/__init__.py +2 -1
Modified g4f/__init__.py +0 -1