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

XFEstudio/gpt4free

Added new provider (g4f/Provider/Ai4Chat.py)

4cd1ed1a
kqlio67 <kqlio67@users.noreply.github.com>
提交于

代码差异

3 个文件 +76 -1
Added g4f/Provider/Ai4Chat.py +70 -0
@@ -0,0 +1,70 @@
1 from __future__ import annotations
2
3 from aiohttp import ClientSession
4 import re
5
6 from ..typing import AsyncResult, Messages
7 from .base_provider import AsyncGeneratorProvider, ProviderModelMixin
8 from .helper import format_prompt
9
10
11 class Ai4Chat(AsyncGeneratorProvider, ProviderModelMixin):
12 url = "https://www.ai4chat.co"
13 api_endpoint = "https://www.ai4chat.co/generate-response"
14 working = True
15 supports_gpt_4 = False
16 supports_stream = False
17 supports_system_message = True
18 supports_message_history = True
19
20 default_model = 'gpt-4'
21
22 @classmethod
23 def get_model(cls, model: str) -> str:
24 return cls.default_model
25
26 @classmethod
27 async def create_async_generator(
28 cls,
29 model: str,
30 messages: Messages,
31 proxy: str = None,
32 **kwargs
33 ) -> AsyncResult:
34 model = cls.get_model(model)
35
36 headers = {
37 'accept': '*/*',
38 'accept-language': 'en-US,en;q=0.9',
39 'cache-control': 'no-cache',
40 'content-type': 'application/json',
41 'cookie': 'messageCount=2',
42 'origin': 'https://www.ai4chat.co',
43 'pragma': 'no-cache',
44 'priority': 'u=1, i',
45 'referer': 'https://www.ai4chat.co/gpt/talkdirtytome',
46 'sec-ch-ua': '"Chromium";v="129", "Not=A?Brand";v="8"',
47 'sec-ch-ua-mobile': '?0',
48 'sec-ch-ua-platform': '"Linux"',
49 'sec-fetch-dest': 'empty',
50 'sec-fetch-mode': 'cors',
51 'sec-fetch-site': 'same-origin',
52 'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36'
53 }
54
55 async with ClientSession(headers=headers) as session:
56 payload = {
57 "messages": [
58 {
59 "role": "user",
60 "content": format_prompt(messages)
61 }
62 ]
63 }
64
65 async with session.post(cls.api_endpoint, json=payload, proxy=proxy) as response:
66 response.raise_for_status()
67 response_data = await response.json()
68 message = response_data.get('message', '')
69 clean_message = re.sub('<[^<]+?>', '', message).strip()
70 yield clean_message
Modified g4f/Provider/__init__.py +1 -0
@@ -11,6 +11,7 @@ from .needs_auth import *
11 11
12 12 from .nexra import *
13 13
14 from .Ai4Chat import Ai4Chat
14 15 from .AI365VIP import AI365VIP
15 16 from .AIChatFree import AIChatFree
16 17 from .AIUncensored import AIUncensored
Modified g4f/models.py +5 -1
@@ -5,6 +5,7 @@ from dataclasses import dataclass
5 5
6 6 from .Provider import IterListProvider, ProviderType
7 7 from .Provider import (
8 Ai4Chat,
8 9 AIChatFree,
9 10 AiMathGPT,
10 11 Airforce,
@@ -104,6 +105,9 @@ default = Model(
104 105 AmigoChat,
105 106 ChatifyAI,
106 107 Cloudflare,
108 Ai4Chat,
109 Editee,
110 AiMathGPT,
107 111 ])
108 112 )
109 113
@@ -148,7 +152,7 @@ gpt_4_turbo = Model(
148 152 gpt_4 = Model(
149 153 name = 'gpt-4',
150 154 base_provider = 'OpenAI',
151 best_provider = IterListProvider([NexraChatGPT, NexraChatGptV2, NexraChatGptWeb, Airforce, Chatgpt4Online, Bing, OpenaiChat])
155 best_provider = IterListProvider([NexraChatGPT, NexraChatGptV2, NexraChatGptWeb, Ai4Chat, Airforce, Chatgpt4Online, Bing, OpenaiChat])
152 156 )
153 157
154 158 # o1