返回提交历史
Added
g4f/Provider/Editee.py
+78
-0
Modified
g4f/Provider/__init__.py
+1
-0
Modified
g4f/models.py
+11
-3
XFEstudio/gpt4free
Added new provider (g4f/Provider/Editee.py)
bbf41daf
代码差异
3 个文件
+90
-3
@@ -0,0 +1,78 @@
1
from __future__ import annotations
2
3
from aiohttp import ClientSession
4
from ..typing import AsyncResult, Messages
5
from .base_provider import AsyncGeneratorProvider, ProviderModelMixin
6
from .helper import format_prompt
7
8
9
class Editee(AsyncGeneratorProvider, ProviderModelMixin):
10
label = "Editee"
11
url = "https://editee.com"
12
api_endpoint = "https://editee.com/submit/chatgptfree"
13
working = True
14
supports_gpt_4 = True
15
supports_stream = True
16
supports_system_message = True
17
supports_message_history = True
18
19
default_model = 'claude'
20
models = ['claude', 'gpt4', 'gemini' 'mistrallarge']
21
22
model_aliases = {
23
"claude-3.5-sonnet": "claude",
24
"gpt-4o": "gpt4",
25
"gemini-pro": "gemini",
26
"mistral-large": "mistrallarge",
27
}
28
29
@classmethod
30
def get_model(cls, model: str) -> str:
31
if model in cls.models:
32
return model
33
elif model in cls.model_aliases:
34
return cls.model_aliases[model]
35
else:
36
return cls.default_model
37
38
@classmethod
39
async def create_async_generator(
40
cls,
41
model: str,
42
messages: Messages,
43
proxy: str = None,
44
**kwargs
45
) -> AsyncResult:
46
model = cls.get_model(model)
47
48
headers = {
49
"Accept": "application/json, text/plain, */*",
50
"Accept-Language": "en-US,en;q=0.9",
51
"Cache-Control": "no-cache",
52
"Content-Type": "application/json",
53
"Origin": cls.url,
54
"Pragma": "no-cache",
55
"Priority": "u=1, i",
56
"Referer": f"{cls.url}/chat-gpt",
57
"Sec-CH-UA": '"Chromium";v="129", "Not=A?Brand";v="8"',
58
"Sec-CH-UA-Mobile": '?0',
59
"Sec-CH-UA-Platform": '"Linux"',
60
"Sec-Fetch-Dest": 'empty',
61
"Sec-Fetch-Mode": 'cors',
62
"Sec-Fetch-Site": 'same-origin',
63
"User-Agent": 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36',
64
"X-Requested-With": 'XMLHttpRequest',
65
}
66
67
async with ClientSession(headers=headers) as session:
68
prompt = format_prompt(messages)
69
data = {
70
"user_input": prompt,
71
"context": " ",
72
"template_id": "",
73
"selected_model": model
74
}
75
async with session.post(cls.api_endpoint, json=data, proxy=proxy) as response:
76
response.raise_for_status()
77
response_data = await response.json()
78
yield response_data['text']
@@ -38,6 +38,7 @@ from .DDG import DDG
38
38
from .DeepInfra import DeepInfra
39
39
from .DeepInfraChat import DeepInfraChat
40
40
from .DeepInfraImage import DeepInfraImage
41
from .Editee import Editee
41
42
from .FlowGpt import FlowGpt
42
43
from .Free2GPT import Free2GPT
43
44
from .FreeChatgpt import FreeChatgpt
@@ -24,6 +24,7 @@ from .Provider import (
24
24
DeepInfra,
25
25
DeepInfraChat,
26
26
DeepInfraImage,
27
Editee,
27
28
Free2GPT,
28
29
FreeChatgpt,
29
30
FreeGpt,
@@ -128,7 +129,7 @@ gpt_35_turbo = Model(
128
129
gpt_4o = Model(
129
130
name = 'gpt-4o',
130
131
base_provider = 'OpenAI',
131
best_provider = IterListProvider([NexraChatGPT4o, Blackbox, ChatGptEs, AmigoChat, DarkAI, Liaobots, Airforce, OpenaiChat])
132
best_provider = IterListProvider([NexraChatGPT4o, Blackbox, ChatGptEs, AmigoChat, DarkAI, Editee, Liaobots, Airforce, OpenaiChat])
132
133
)
133
134
134
135
gpt_4o_mini = Model(
@@ -288,6 +289,12 @@ mistral_nemo = Model(
288
289
best_provider = IterListProvider([HuggingChat, HuggingFace])
289
290
)
290
291
292
mistral_large = Model(
293
name = "mistral-large",
294
base_provider = "Mistral",
295
best_provider = Editee
296
)
297
291
298
292
299
### NousResearch ###
293
300
mixtral_8x7b_dpo = Model(
@@ -333,7 +340,7 @@ phi_3_5_mini = Model(
333
340
gemini_pro = Model(
334
341
name = 'gemini-pro',
335
342
base_provider = 'Google DeepMind',
336
best_provider = IterListProvider([GeminiPro, Blackbox, AIChatFree, GPROChat, AmigoChat, Liaobots, Airforce])
343
best_provider = IterListProvider([GeminiPro, Blackbox, AIChatFree, GPROChat, AmigoChat, Editee, Liaobots, Airforce])
337
344
)
338
345
339
346
gemini_flash = Model(
@@ -417,7 +424,7 @@ claude_3_haiku = Model(
417
424
claude_3_5_sonnet = Model(
418
425
name = 'claude-3.5-sonnet',
419
426
base_provider = 'Anthropic',
420
best_provider = IterListProvider([Blackbox, Airforce, AmigoChat, Liaobots])
427
best_provider = IterListProvider([Blackbox, Editee, AmigoChat, Airforce, Liaobots])
421
428
)
422
429
423
430
@@ -917,6 +924,7 @@ class ModelUtils:
917
924
'mixtral-8x7b': mixtral_8x7b,
918
925
'mixtral-8x22b': mixtral_8x22b,
919
926
'mistral-nemo': mistral_nemo,
927
'mistral-large': mistral_large,
920
928
921
929
922
930
### NousResearch ###