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

XFEstudio/gpt4free

Add Aichatos and Blackbox Provider (#1822)

Providers added: - Feedough - Added a new provider with GPT-3 model - Cnote - Added a new provider with GPT-3.5 model

fa739d2e
kqlio67 <166700875+kqlio67@users.noreply.github.com>
提交于

代码差异

6 个文件 +229 -2
Added g4f/Provider/Aichatos.py +57 -0
@@ -0,0 +1,57 @@
1 from __future__ import annotations
2
3 from aiohttp import ClientSession
4
5 from ..typing import AsyncResult, Messages
6 from .base_provider import AsyncGeneratorProvider
7 from .helper import format_prompt
8
9 import random
10
11
12 class Aichatos(AsyncGeneratorProvider):
13 url = "https://chat10.aichatos.xyz"
14 api = "https://api.binjie.fun"
15 working = True
16 supports_gpt_35_turbo = True
17
18 @classmethod
19 async def create_async_generator(
20 cls,
21 model: str,
22 messages: Messages,
23 proxy: str = None,
24 **kwargs
25 ) -> AsyncResult:
26 headers = {
27 "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36",
28 "Accept": "application/json, text/plain, */*",
29 "Accept-Language": "en-US,en;q=0.5",
30 "Accept-Encoding": "gzip, deflate, br",
31 "Content-Type": "application/json",
32 "Origin": "https://chat10.aichatos.xyz",
33 "DNT": "1",
34 "Sec-GPC": "1",
35 "Connection": "keep-alive",
36 "Sec-Fetch-Dest": "empty",
37 "Sec-Fetch-Mode": "cors",
38 "Sec-Fetch-Site": "cross-site",
39 "TE": "trailers",
40 }
41 async with ClientSession(headers=headers) as session:
42 prompt = format_prompt(messages)
43 userId = random.randint(1000000000000, 9999999999999)
44 system_message: str = "",
45 data = {
46 "prompt": prompt,
47 "userId": "#/chat/{userId}",
48 "network": True,
49 "system": system_message,
50 "withoutContext": False,
51 "stream": True,
52 }
53 async with session.post(f"{cls.api}/api/generateStream", json=data, proxy=proxy) as response:
54 response.raise_for_status()
55 async for chunk in response.content:
56 if chunk:
57 yield chunk.decode()
Added g4f/Provider/Blackbox.py +56 -0
@@ -0,0 +1,56 @@
1 from __future__ import annotations
2
3 import uuid
4 import secrets
5 from aiohttp import ClientSession
6
7 from ..typing import AsyncResult, Messages
8 from .base_provider import AsyncGeneratorProvider
9
10 class Blackbox(AsyncGeneratorProvider):
11 url = "https://www.blackbox.ai"
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 headers = {
23 "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36",
24 "Accept": "*/*",
25 "Accept-Language": "en-US,en;q=0.5",
26 "Accept-Encoding": "gzip, deflate, br",
27 "Referer": cls.url,
28 "Content-Type": "application/json",
29 "Origin": cls.url,
30 "DNT": "1",
31 "Sec-GPC": "1",
32 "Alt-Used": "www.blackbox.ai",
33 "Connection": "keep-alive",
34 }
35 async with ClientSession(headers=headers) as session:
36 random_id = secrets.token_hex(16)
37 random_user_id = str(uuid.uuid4())
38 data = {
39 "messages": messages,
40 "id": random_id,
41 "userId": random_user_id,
42 "codeModelMode": True,
43 "agentMode": {},
44 "trendingAgentMode": {},
45 "isMicMode": False,
46 "isChromeExt": False,
47 "playgroundMode": False,
48 "webSearchMode": False,
49 "userSystemPrompt": "",
50 "githubToken": None
51 }
52 async with session.post(f"{cls.url}/api/chat", json=data, proxy=proxy) as response:
53 response.raise_for_status()
54 async for chunk in response.content:
55 if chunk:
56 yield chunk.decode()
Added g4f/Provider/Cnote.py +58 -0
@@ -0,0 +1,58 @@
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 format_prompt
9
10
11 class Cnote(AsyncGeneratorProvider):
12 url = "https://f1.cnote.top"
13 api_url = "https://p1api.xjai.pro/freeapi/chat-process"
14 working = True
15 supports_gpt_35_turbo = True
16
17 @classmethod
18 async def create_async_generator(
19 cls,
20 model: str,
21 messages: Messages,
22 proxy: str = None,
23 **kwargs
24 ) -> AsyncResult:
25 headers = {
26 "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36",
27 "Accept": "application/json, text/plain, */*",
28 "Accept-Language": "en-US,en;q=0.5",
29 "Accept-Encoding": "gzip, deflate, br",
30 "Content-Type": "application/json",
31 "Origin": cls.url,
32 "DNT": "1",
33 "Sec-GPC": "1",
34 "Connection": "keep-alive",
35 "Sec-Fetch-Dest": "empty",
36 "Sec-Fetch-Mode": "cors",
37 "Sec-Fetch-Site": "cross-site",
38 "TE": "trailers",
39 }
40 async with ClientSession(headers=headers) as session:
41 prompt = format_prompt(messages)
42 system_message: str = "",
43 data = {
44 "prompt": prompt,
45 "systemMessage": system_message,
46 "temperature": 0.8,
47 "top_p": 1,
48 }
49 async with session.post(cls.api_url, json=data, proxy=proxy) as response:
50 response.raise_for_status()
51 async for chunk in response.content:
52 if chunk:
53 try:
54 data = json.loads(chunk.decode().split("&KFw6loC9Qvy&")[-1])
55 text = data.get("text", "")
56 yield text
57 except (json.JSONDecodeError, IndexError):
58 pass
Added g4f/Provider/Feedough.py +52 -0
@@ -0,0 +1,52 @@
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 format_prompt
9
10
11 class Feedough(AsyncGeneratorProvider):
12 url = "https://www.feedough.com"
13 working = True
14 supports_gpt_35_turbo = True
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 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36",
26 "Accept": "*/*",
27 "Accept-Language": "en-US,en;q=0.5",
28 "Accept-Encoding": "gzip, deflate, br",
29 "Referer": "https://www.feedough.com/ai-prompt-generator/",
30 "Content-Type": "application/x-www-form-urlencoded;charset=UTF-8",
31 "Origin": "https://www.feedough.com",
32 "DNT": "1",
33 "Sec-GPC": "1",
34 "Connection": "keep-alive",
35 "Sec-Fetch-Dest": "empty",
36 "Sec-Fetch-Mode": "cors",
37 "Sec-Fetch-Site": "same-origin",
38 "TE": "trailers",
39 }
40 async with ClientSession(headers=headers) as session:
41 prompt = format_prompt(messages)
42 data = {
43 "action": "aixg_generate",
44 "prompt": prompt,
45 }
46 async with session.post(f"{cls.url}/wp-admin/admin-ajax.php", data=data, proxy=proxy) as response:
47 response.raise_for_status()
48 response_text = await response.text()
49 response_json = json.loads(response_text)
50 if response_json["success"]:
51 message = response_json["data"]["message"]
52 yield message
Modified g4f/Provider/Liaobots.py +1 -1
@@ -142,7 +142,7 @@ class Liaobots(AsyncGeneratorProvider, ProviderModelMixin):
142 142 "model": models[cls.get_model(model)],
143 143 "messages": messages,
144 144 "key": "",
145 "prompt": kwargs.get("system_message", "You are ChatGPT, a large language model trained by OpenAI. Follow the user's instructions carefully."),
145 "prompt": kwargs.get("system_message", "You are a helpful assistant."),
146 146 }
147 147 async with session.post(
148 148 "https://liaobots.work/api/chat",
Modified g4f/Provider/__init__.py +5 -1
@@ -11,18 +11,22 @@ from .selenium import *
11 11 from .needs_auth import *
12 12 from .unfinished import *
13 13
14 from .Aichatos import Aichatos
14 15 from .Aura import Aura
15 16 from .Bing import Bing
16 17 from .BingCreateImages import BingCreateImages
18 from .Blackbox import Blackbox
17 19 from .ChatForAi import ChatForAi
18 20 from .Chatgpt4Online import Chatgpt4Online
19 21 from .ChatgptAi import ChatgptAi
20 22 from .ChatgptFree import ChatgptFree
21 23 from .ChatgptNext import ChatgptNext
22 24 from .ChatgptX import ChatgptX
25 from .Cnote import Cnote
23 26 from .DeepInfra import DeepInfra
24 27 from .DeepInfraImage import DeepInfraImage
25 28 from .DuckDuckGo import DuckDuckGo
29 from .Feedough import Feedough
26 30 from .FlowGpt import FlowGpt
27 31 from .FreeChatgpt import FreeChatgpt
28 32 from .FreeGpt import FreeGpt
@@ -62,4 +66,4 @@ __map__: dict[str, ProviderType] = dict([
62 66 ])
63 67
64 68 class ProviderUtils:
65 convert: dict[str, ProviderType] = __map__
69 convert: dict[str, ProviderType] = __map__