返回提交历史
Modified
g4f/Provider/Cloudflare.py
+10
-59
XFEstudio/gpt4free
Update Cloudflare.py
40678de9
代码差异
1 个文件
+10
-59
@@ -23,7 +23,10 @@ def clean_name(name: str) -> str:
23
23
"-awq", "").replace(
24
24
"-qvq", "").replace(
25
25
"-r1", "").replace(
26
"meta-llama-", "llama-")
26
"meta-llama-", "llama-").replace(
27
"-it", "").replace(
28
"qwen-", "qwen").replace(
29
"qwen", "qwen-")
27
30
28
31
# models = []
29
32
# model_aliases = {clean_name(m.get("name")): m.get("name") for m in models}
@@ -49,8 +52,8 @@ class Cloudflare(AsyncGeneratorProvider, ProviderModelMixin, AuthFileMixin):
49
52
'deepseek-distill-qwen-32b': '@cf/deepseek-ai/deepseek-r1-distill-qwen-32b',
50
53
'discolm-german-7b-v1': '@cf/thebloke/discolm-german-7b-v1-awq',
51
54
'falcon-7b': '@cf/tiiuae/falcon-7b-instruct',
52
'gemma-3-12b-it': '@cf/google/gemma-3-12b-it',
53
'gemma-7b-it': '@hf/google/gemma-7b-it',
55
'gemma-3-12b': '@cf/google/gemma-3-12b-it',
56
'gemma-7b': '@hf/google/gemma-7b-it',
54
57
'hermes-2-pro-mistral-7b': '@hf/nousresearch/hermes-2-pro-mistral-7b',
55
58
'llama-2-13b': '@hf/thebloke/llama-2-13b-chat-awq',
56
59
'llama-2-7b-fp16': '@cf/meta/llama-2-7b-chat-fp16',
@@ -72,10 +75,10 @@ class Cloudflare(AsyncGeneratorProvider, ProviderModelMixin, AuthFileMixin):
72
75
'openhermes-2.5-mistral-7b': '@hf/thebloke/openhermes-2.5-mistral-7b-awq',
73
76
'phi-2': '@cf/microsoft/phi-2',
74
77
'qwen1.5-0.5b': '@cf/qwen/qwen1.5-0.5b-chat',
75
'qwen1.5-1.8b': '@cf/qwen/qwen1.5-1.8b-chat',
76
'qwen1.5-14b': '@cf/qwen/qwen1.5-14b-chat-awq',
77
'qwen1.5-7b': '@cf/qwen/qwen1.5-7b-chat-awq',
78
'qwen2.5-coder-32b': '@cf/qwen/qwen2.5-coder-32b-instruct',
78
'qwen-1.5-1.8b': '@cf/qwen/qwen1.5-1.8b-chat',
79
'qwen-1.5-14b': '@cf/qwen/qwen1.5-14b-chat-awq',
80
'qwen-1.5-7b': '@cf/qwen/qwen1.5-7b-chat-awq',
81
'qwen-2.5-coder-32b': '@cf/qwen/qwen2.5-coder-32b-instruct',
79
82
'qwq-32b': '@cf/qwen/qwq-32b',
80
83
'sqlcoder-7b-2': '@cf/defog/sqlcoder-7b-2',
81
84
'starling-lm-7b-beta': '@hf/nexusflow/starling-lm-7b-beta',
@@ -86,58 +89,6 @@ class Cloudflare(AsyncGeneratorProvider, ProviderModelMixin, AuthFileMixin):
86
89
models = list(model_aliases.keys())
87
90
_args: dict = None
88
91
89
@classmethod
90
def get_models(cls) -> str:
91
def read_models():
92
with Session(**cls._args) as session:
93
response = session.get(cls.models_url)
94
cls._args["cookies"] = merge_cookies(cls._args["cookies"], response)
95
raise_for_status(response)
96
json_data = response.json()
97
def clean_name(name: str) -> str:
98
return name.split("/")[-1].replace(
99
"-instruct", "").replace(
100
"-17b-16e", "").replace(
101
"-chat", "").replace(
102
"-fp8", "").replace(
103
"-fast", "").replace(
104
"-int8", "").replace(
105
"-awq", "").replace(
106
"-qvq", "").replace(
107
"-r1", "").replace(
108
"meta-llama-", "llama-")
109
model_map = {clean_name(model.get("name")): model.get("name") for model in json_data.get("models")}
110
cls.models = list(model_map.keys())
111
cls.model_aliases = {**cls.model_aliases, **model_map}
112
if not cls.models:
113
try:
114
cache_file = cls.get_cache_file()
115
if cls._args is None:
116
if cache_file.exists():
117
with cache_file.open("r") as f:
118
cls._args = json.load(f)
119
if cls._args is None:
120
cls._args = {"headers": DEFAULT_HEADERS, "cookies": {}}
121
read_models()
122
except ResponseStatusError as f:
123
if has_nodriver:
124
async def nodriver_read_models():
125
try:
126
cls._args = await get_args_from_nodriver(cls.url)
127
read_models()
128
except Exception as e:
129
debug.error(f"Nodriver is not available:", e)
130
cls.models = cls.fallback_models
131
get_running_loop(check_nested=True)
132
try:
133
asyncio.run(nodriver_read_models())
134
except RuntimeError as e:
135
debug.error("Nodriver is not available:", e)
136
cls.models = cls.fallback_models
137
else:
138
cls.models = cls.fallback_models
139
debug.log(f"Nodriver is not installed: {type(f).__name__}: {f}")
140
return cls.models
141
92
142
93
@classmethod
143
94
async def create_async_generator(