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

XFEstudio/gpt4free

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

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

代码差异

3 个文件 +90 -3
Added g4f/Provider/Editee.py +78 -0
@@ -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']
Modified g4f/Provider/__init__.py +1 -0
@@ -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
Modified g4f/models.py +11 -3
@@ -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 ###