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

XFEstudio/gpt4free

Update (docs/providers-and-models.md g4f/models.py g4f/gui/client/index.html g4f/Provider/Cloudflare.py)

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

代码差异

4 个文件 +50 -108
Modified docs/providers-and-models.md +1 -1
@@ -38,7 +38,7 @@ This document provides an overview of various AI providers and models, including
38 38 |[chatgpt4o.one](https://chatgpt4o.one)|`g4f.Provider.Chatgpt4o`|✔|❌|❌|❌|![Disabled](https://img.shields.io/badge/Disabled-red)![Cloudflare](https://img.shields.io/badge/Cloudflare-f48d37)|❌|
39 39 |[chatgptfree.ai](https://chatgptfree.ai)|`g4f.Provider.ChatgptFree`|`gpt-4o-mini`|❌|❌|?|![Disabled](https://img.shields.io/badge/Disabled-red)![Cloudflare](https://img.shields.io/badge/Cloudflare-f48d37)|❌|
40 40 |[chatify-ai.vercel.app](https://chatify-ai.vercel.app)|`g4f.Provider.ChatifyAI`|`llama-3.1-8b`|❌|❌|✔|![Active](https://img.shields.io/badge/Active-brightgreen)|❌|
41 |[playground.ai.cloudflare.com](https://playground.ai.cloudflare.com)|`g4f.Provider.Cloudflare`|`german-7b, gemma-7b, llama-2-7b, llama-3-8b, llama-3.1-8b, llama-3.2-11b, llama-3.2-1b, llama-3.2-3b, mistral-7b, openchat-3.5, phi-2, qwen-1.5-0.5b, qwen-1.5-1.8b, qwen-1.5-14b, qwen-1.5-7b, tinyllama-1.1b, cybertron-7b`|❌|❌|✔|![Active](https://img.shields.io/badge/Active-brightgreen)|❌|
41 |[playground.ai.cloudflare.com](https://playground.ai.cloudflare.com)|`g4f.Provider.Cloudflare`|`gemma-7b, llama-2-7b, llama-3-8b, llama-3.1-8b, llama-3.2-1b, phi-2, qwen-1.5-0-5b, qwen-1.5-8b, qwen-1.5-14b, qwen-1.5-7b`|❌|❌|✔|![Active](https://img.shields.io/badge/Active-brightgreen)|❌|
42 42 |[aiuncensored.info](https://www.aiuncensored.info)|`g4f.Provider.DarkAI`|`gpt-4o, gpt-3.5-turbo, llama-3-70b, llama-3-405b`|❌|❌|✔|![Active](https://img.shields.io/badge/Active-brightgreen)|❌|
43 43 |[duckduckgo.com](https://duckduckgo.com/duckchat/v1/chat)|`g4f.Provider.DDG`|`gpt-4o-mini, claude-3-haiku, llama-3.1-70b, mixtral-8x7b`|❌|❌|✔|![Active](https://img.shields.io/badge/Active-brightgreen)|❌|
44 44 |[deepinfra.com](https://deepinfra.com)|`g4f.Provider.DeepInfra`|✔|❌|❌|✔|![Unknown](https://img.shields.io/badge/Unknown-grey)|✔|
Modified g4f/Provider/Cloudflare.py +27 -70
@@ -5,11 +5,14 @@ import json
5 5 import uuid
6 6 import cloudscraper
7 7 from typing import AsyncGenerator
8
8 9 from ..typing import AsyncResult, Messages
9 10 from .base_provider import AsyncGeneratorProvider, ProviderModelMixin
10 11 from .helper import format_prompt
11 12
13
12 14 class Cloudflare(AsyncGeneratorProvider, ProviderModelMixin):
15 label = "Cloudflare AI"
13 16 url = "https://playground.ai.cloudflare.com"
14 17 api_endpoint = "https://playground.ai.cloudflare.com/api/inference"
15 18 working = True
@@ -17,97 +20,62 @@ class Cloudflare(AsyncGeneratorProvider, ProviderModelMixin):
17 20 supports_system_message = True
18 21 supports_message_history = True
19 22
20 default_model = '@cf/meta/llama-3.1-8b-instruct'
23 default_model = '@cf/meta/llama-3.1-8b-instruct-awq'
21 24 models = [
22 '@cf/deepseek-ai/deepseek-math-7b-instruct', # Specific answer
23
24
25 '@cf/thebloke/discolm-german-7b-v1-awq',
26
27
28 25 '@cf/tiiuae/falcon-7b-instruct', # Specific answer
29 26
30 27
31 28 '@hf/google/gemma-7b-it',
32 29
33
34 30 '@cf/meta/llama-2-7b-chat-fp16',
35 31 '@cf/meta/llama-2-7b-chat-int8',
36 32
37 33 '@cf/meta/llama-3-8b-instruct',
38 34 '@cf/meta/llama-3-8b-instruct-awq',
39 default_model,
40 35 '@hf/meta-llama/meta-llama-3-8b-instruct',
41 36
42 '@cf/meta/llama-3.1-8b-instruct-awq',
37 default_model,
43 38 '@cf/meta/llama-3.1-8b-instruct-fp8',
44 '@cf/meta/llama-3.2-11b-vision-instruct',
39
45 40 '@cf/meta/llama-3.2-1b-instruct',
46 '@cf/meta/llama-3.2-3b-instruct',
47 41
48 '@cf/mistral/mistral-7b-instruct-v0.1',
49 42 '@hf/mistral/mistral-7b-instruct-v0.2',
50 43
51 '@cf/openchat/openchat-3.5-0106',
52
53 44 '@cf/microsoft/phi-2',
54 45
55 46 '@cf/qwen/qwen1.5-0.5b-chat',
56 47 '@cf/qwen/qwen1.5-1.8b-chat',
57 48 '@cf/qwen/qwen1.5-14b-chat-awq',
58 '@cf/qwen/qwen1.5-7b-chat-awq',
59
60 '@cf/defog/sqlcoder-7b-2', # Specific answer
49 '@cf/qwen/qwen1.5-7b-chat-awq',
61 50
62 '@cf/tinyllama/tinyllama-1.1b-chat-v1.0',
63
64 '@cf/fblgit/una-cybertron-7b-v2-bf16',
51 '@cf/defog/sqlcoder-7b-2',
65 52 ]
66 53
67 54 model_aliases = {
68 "german-7b-v1": "@cf/thebloke/discolm-german-7b-v1-awq",
69
55 #"falcon-7b": "@cf/tiiuae/falcon-7b-instruct",
70 56
71 57 "gemma-7b": "@hf/google/gemma-7b-it",
72
73
58
74 59 "llama-2-7b": "@cf/meta/llama-2-7b-chat-fp16",
75 60 "llama-2-7b": "@cf/meta/llama-2-7b-chat-int8",
76 61
77 62 "llama-3-8b": "@cf/meta/llama-3-8b-instruct",
78 63 "llama-3-8b": "@cf/meta/llama-3-8b-instruct-awq",
79 "llama-3-8b": "@cf/meta/llama-3.1-8b-instruct",
80 64 "llama-3-8b": "@hf/meta-llama/meta-llama-3-8b-instruct",
81 65
82 66 "llama-3.1-8b": "@cf/meta/llama-3.1-8b-instruct-awq",
83 67 "llama-3.1-8b": "@cf/meta/llama-3.1-8b-instruct-fp8",
84 "llama-3.1-8b": "@cf/meta/llama-3.1-8b-instruct-fp8",
85 68
86 "llama-3.2-11b": "@cf/meta/llama-3.2-11b-vision-instruct",
87 69 "llama-3.2-1b": "@cf/meta/llama-3.2-1b-instruct",
88 "llama-3.2-3b": "@cf/meta/llama-3.2-3b-instruct",
89
90
91 "mistral-7b": "@cf/mistral/mistral-7b-instruct-v0.1",
92 "mistral-7b": "@hf/mistral/mistral-7b-instruct-v0.2",
93
94
95 "openchat-3.5": "@cf/openchat/openchat-3.5-0106",
96
97 70
98 71 "phi-2": "@cf/microsoft/phi-2",
99 72
100
101 "qwen-1.5-0.5b": "@cf/qwen/qwen1.5-0.5b-chat",
102 "qwen-1.5-1.8b": "@cf/qwen/qwen1.5-1.8b-chat",
73 "qwen-1.5-0-5b": "@cf/qwen/qwen1.5-0.5b-chat",
74 "qwen-1.5-1-8b": "@cf/qwen/qwen1.5-1.8b-chat",
103 75 "qwen-1.5-14b": "@cf/qwen/qwen1.5-14b-chat-awq",
104 76 "qwen-1.5-7b": "@cf/qwen/qwen1.5-7b-chat-awq",
105 77
106
107 "tinyllama-1.1b": "@cf/tinyllama/tinyllama-1.1b-chat-v1.0",
108
109
110 "cybertron-7b": "@cf/fblgit/una-cybertron-7b-v2-bf16",
78 #"sqlcoder-7b": "@cf/defog/sqlcoder-7b-2",
111 79 }
112 80
113 81 @classmethod
@@ -125,8 +93,6 @@ class Cloudflare(AsyncGeneratorProvider, ProviderModelMixin):
125 93 model: str,
126 94 messages: Messages,
127 95 proxy: str = None,
128 max_tokens: str = 2048,
129 stream: bool = True,
130 96 **kwargs
131 97 ) -> AsyncResult:
132 98 model = cls.get_model(model)
@@ -154,19 +120,17 @@ class Cloudflare(AsyncGeneratorProvider, ProviderModelMixin):
154 120
155 121 scraper = cloudscraper.create_scraper()
156 122
157 prompt = format_prompt(messages)
158 123 data = {
159 124 "messages": [
160 {"role": "system", "content": "You are a helpful assistant"},
161 {"role": "user", "content": prompt}
125 {"role": "user", "content": format_prompt(messages)}
162 126 ],
163 127 "lora": None,
164 128 "model": model,
165 "max_tokens": max_tokens,
166 "stream": stream
129 "max_tokens": 2048,
130 "stream": True
167 131 }
168 132
169 max_retries = 3
133 max_retries = 5
170 134 for attempt in range(max_retries):
171 135 try:
172 136 response = scraper.post(
@@ -174,8 +138,7 @@ class Cloudflare(AsyncGeneratorProvider, ProviderModelMixin):
174 138 headers=headers,
175 139 cookies=cookies,
176 140 json=data,
177 stream=True,
178 proxies={'http': proxy, 'https': proxy} if proxy else None
141 stream=True
179 142 )
180 143
181 144 if response.status_code == 403:
@@ -184,29 +147,23 @@ class Cloudflare(AsyncGeneratorProvider, ProviderModelMixin):
184 147
185 148 response.raise_for_status()
186 149
150 skip_tokens = ["</s>", "<s>", "[DONE]", "<|endoftext|>", "<|end|>"]
151 filtered_response = ""
152
187 153 for line in response.iter_lines():
188 154 if line.startswith(b'data: '):
189 155 if line == b'data: [DONE]':
190 156 break
191 157 try:
192 content = json.loads(line[6:].decode('utf-8'))['response']
193 yield content
158 content = json.loads(line[6:].decode('utf-8'))
159 response_text = content['response']
160 if not any(token in response_text for token in skip_tokens):
161 filtered_response += response_text
194 162 except Exception:
195 163 continue
164
165 yield filtered_response.strip()
196 166 break
197 167 except Exception as e:
198 168 if attempt == max_retries - 1:
199 169 raise
200
201 @classmethod
202 async def create_async(
203 cls,
204 model: str,
205 messages: Messages,
206 proxy: str = None,
207 **kwargs
208 ) -> str:
209 full_response = ""
210 async for response in cls.create_async_generator(model, messages, proxy, **kwargs):
211 full_response += response
212 return full_response
Modified g4f/gui/client/index.html +0 -1
@@ -249,7 +249,6 @@
249 249 <option value="MetaAI">Meta AI</option>
250 250 <option value="DeepInfraChat">DeepInfraChat</option>
251 251 <option value="Blackbox">Blackbox</option>
252 <option value="HuggingChat">HuggingChat</option>
253 252 <option value="DDG">DDG</option>
254 253 <option value="Pizzagpt">Pizzagpt</option>
255 254 <option value="">----</option>
Modified g4f/models.py +22 -36
@@ -238,13 +238,13 @@ llama_3_2_1b = Model(
238 238 llama_3_2_3b = Model(
239 239 name = "llama-3.2-3b",
240 240 base_provider = "Meta Llama",
241 best_provider = IterListProvider([Cloudflare, Airforce])
241 best_provider = IterListProvider([Airforce])
242 242 )
243 243
244 244 llama_3_2_11b = Model(
245 245 name = "llama-3.2-11b",
246 246 base_provider = "Meta Llama",
247 best_provider = IterListProvider([Cloudflare, HuggingChat, Airforce, HuggingFace])
247 best_provider = IterListProvider([HuggingChat, Airforce, HuggingFace])
248 248 )
249 249
250 250 llama_3_2_90b = Model(
@@ -284,7 +284,7 @@ llamaguard_3_11b = Model(
284 284 mistral_7b = Model(
285 285 name = "mistral-7b",
286 286 base_provider = "Mistral",
287 best_provider = IterListProvider([DeepInfraChat, Cloudflare, Airforce, DeepInfra])
287 best_provider = IterListProvider([DeepInfraChat, Airforce, DeepInfra])
288 288 )
289 289
290 290 mixtral_8x7b = Model(
@@ -479,9 +479,9 @@ sparkdesk_v1_1 = Model(
479 479
480 480
481 481 ### Qwen ###
482 # qwen 1
483 qwen_1_5_0_5b = Model(
484 name = 'qwen-1.5-0.5b',
482 # qwen 1_5
483 qwen_1_5_5b = Model(
484 name = 'qwen-1.5-5b',
485 485 base_provider = 'Qwen',
486 486 best_provider = Cloudflare
487 487 )
@@ -489,13 +489,19 @@ qwen_1_5_0_5b = Model(
489 489 qwen_1_5_7b = Model(
490 490 name = 'qwen-1.5-7b',
491 491 base_provider = 'Qwen',
492 best_provider = IterListProvider([Cloudflare])
492 best_provider = Cloudflare
493 )
494
495 qwen_1_5_8b = Model(
496 name = 'qwen-1.5-8b',
497 base_provider = 'Qwen',
498 best_provider = Cloudflare
493 499 )
494 500
495 501 qwen_1_5_14b = Model(
496 502 name = 'qwen-1.5-14b',
497 503 base_provider = 'Qwen',
498 best_provider = IterListProvider([FreeChatgpt, Cloudflare])
504 best_provider = IterListProvider([Cloudflare, FreeChatgpt])
499 505 )
500 506
501 507 # qwen 2
@@ -617,12 +623,6 @@ lzlv_70b = Model(
617 623
618 624
619 625 ### OpenChat ###
620 openchat_3_5 = Model(
621 name = 'openchat-3.5',
622 base_provider = 'OpenChat',
623 best_provider = IterListProvider([Cloudflare])
624 )
625
626 626 openchat_3_6_8b = Model(
627 627 name = 'openchat-3.6-8b',
628 628 base_provider = 'OpenChat',
@@ -673,22 +673,6 @@ sonar_chat = Model(
673 673 best_provider = PerplexityLabs
674 674 )
675 675
676 ### TheBloke ###
677 german_7b = Model(
678 name = 'german-7b',
679 base_provider = 'TheBloke',
680 best_provider = Cloudflare
681 )
682
683
684 ### Fblgit ###
685 cybertron_7b = Model(
686 name = 'cybertron-7b',
687 base_provider = 'Fblgit',
688 best_provider = Cloudflare
689 )
690
691
692 676 ### Nvidia ###
693 677 nemotron_70b = Model(
694 678 name = 'nemotron-70b',
@@ -1024,10 +1008,17 @@ class ModelUtils:
1024 1008
1025 1009 ### Qwen ###
1026 1010 'qwen': qwen,
1027 'qwen-1.5-0.5b': qwen_1_5_0_5b,
1011
1012 # qwen-1.5
1013 'qwen-1.5-5b': qwen_1_5_5b,
1028 1014 'qwen-1.5-7b': qwen_1_5_7b,
1015 'qwen-1.5-8b': qwen_1_5_8b,
1029 1016 'qwen-1.5-14b': qwen_1_5_14b,
1017
1018 # qwen-2
1030 1019 'qwen-2-72b': qwen_2_72b,
1020
1021 # qwen-2-5
1031 1022 'qwen-2-5-7b': qwen_2_5_7b,
1032 1023 'qwen-2-5-72b': qwen_2_5_72b,
1033 1024
@@ -1073,7 +1064,6 @@ class ModelUtils:
1073 1064
1074 1065
1075 1066 ### OpenChat ###
1076 'openchat-3.5': openchat_3_5,
1077 1067 'openchat-3.6-8b': openchat_3_6_8b,
1078 1068
1079 1069
@@ -1097,10 +1087,6 @@ class ModelUtils:
1097 1087
1098 1088 ### TheBloke ###
1099 1089 'german-7b': german_7b,
1100
1101
1102 ### Fblgit ###
1103 'cybertron-7b': cybertron_7b,
1104 1090
1105 1091
1106 1092 ### Nvidia ###