bahi-bh commited on
Commit
024f4e3
·
verified ·
1 Parent(s): 33253ea

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +186 -27
app.py CHANGED
@@ -112,33 +112,192 @@ REAL_PROVIDERS = {
112
  REAL_PROVIDERS = {k: v for k, v in REAL_PROVIDERS.items() if v}
113
 
114
  # =====================================================
115
- # MODELS - جميع نماذج Qwen
116
  # =====================================================
117
  PROVIDER_MODELS_FALLBACK = {
118
  "Qwen": [
119
- "qwen-max",
120
- "qwen-plus",
121
- "qwen-turbo",
122
- "qwen-2.5-72b-instruct",
123
- "qwen-2.5-32b-instruct",
124
- "qwen-2.5-coder-32b-instruct",
125
- "qwen-2.5-7b-instruct",
126
- "qvq-72b-preview",
127
- "qwen2.5-72b",
128
- "qwen2.5-32b",
129
- "qwen2.5-coder-7b",
130
- "qwen2.5-1.5b",
131
- "qwen2.5-0.5b",
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
132
  "qwen",
133
  "qwen2.5",
134
  "qwen-coder",
135
- "qwen2.5-coder",
136
  "qwen-vl",
137
- "qwen-vl-max",
138
- "qwen-vl-plus",
139
- "qvq-72b",
140
- "qwen-max-latest",
141
- "qwen-plus-latest",
142
  ],
143
  }
144
 
@@ -350,7 +509,7 @@ async def v1_models(request: Request):
350
  for pname, pobj in REAL_PROVIDERS.items():
351
  if pname not in _PROVIDER_MODEL_CACHE:
352
  _PROVIDER_MODEL_CACHE[pname] = discover_provider_models(pobj, pname)
353
- for model in _PROVIDER_MODEL_CACHE[pname][:10]:
354
  models.append({
355
  "id": model,
356
  "type": "model",
@@ -359,12 +518,11 @@ async def v1_models(request: Request):
359
 
360
  if not models:
361
  models = [
362
- {"id": "qwen-max", "type": "model", "display_name": "Qwen - Max"},
 
363
  {"id": "qwen-plus", "type": "model", "display_name": "Qwen - Plus"},
364
- {"id": "qwen-turbo", "type": "model", "display_name": "Qwen - Turbo"},
365
- {"id": "qwen-coder", "type": "model", "display_name": "Qwen - Coder"},
366
- {"id": "qwen2.5-72b", "type": "model", "display_name": "Qwen 2.5 - 72B"},
367
- {"id": "qwen2.5-32b", "type": "model", "display_name": "Qwen 2.5 - 32B"},
368
  ]
369
 
370
  return {"data": models}
@@ -462,7 +620,7 @@ async def v1_messages_stream(request: Request):
462
  @app.get("/")
463
  async def root():
464
  return {
465
- "message": "G4F Smart Router is running (Qwen Only)",
466
  "provider": "Qwen",
467
  "endpoints": {
468
  "GET /": "Home page",
@@ -476,6 +634,7 @@ async def root():
476
  },
477
  "authentication": "Bearer YOUR_API_KEY or X-API-Key: YOUR_API_KEY",
478
  "cookies": COOKIE_STATUS,
 
479
  "status": "✅ Server is working"
480
  }
481
 
 
112
  REAL_PROVIDERS = {k: v for k, v in REAL_PROVIDERS.items() if v}
113
 
114
  # =====================================================
115
+ # MODELS - جميع نماذج Qwen (بعد البحث)
116
  # =====================================================
117
  PROVIDER_MODELS_FALLBACK = {
118
  "Qwen": [
119
+ # =====================================
120
+ # Qwen 3.6 SERIES (أحدث الإصدارات حسب Alibaba Cloud 2026-04-02)
121
+ # المصدر: https://www.alibabacloud.com/help/en/model-studio/newly-released-models
122
+ # =====================================
123
+ "qwen3.6-plus", # Qwen3.6-Plus الرئيسي
124
+ "qwen3.6-plus-2026-04-02", # إصدار مؤرخ
125
+ "qwen3.6-35b-a3b", # النموذج المفتوح المصدر 35B MoE
126
+
127
+ # =====================================
128
+ # Qwen 3.5 SERIES
129
+ # المصدر: Alibaba Cloud Model Catalog
130
+ # =====================================
131
+ "qwen3.5-plus", # Qwen3.5-Plus الرئيسي
132
+ "qwen3.5-plus-2026-02-15", # إصدار مؤرخ
133
+ "qwen3.5-flash", # للاستجابة السريعة
134
+ "qwen3.5-flash-2026-02-23", # إصدار مؤرخ
135
+ "qwen3.5-122b-a10b", # 122B مع 10B نشط
136
+ "qwen3.5-27b", # 27B كثيف
137
+ "qwen3.5-35b-a3b", # 35B MoE كثيف
138
+
139
+ # =====================================
140
+ # Qwen 3 MAX & FLAGSHIP
141
+ # المصدر: Promptfoo Documentation
142
+ # =====================================
143
+ "qwen3-max", # الجيل التالي الرائد
144
+ "qwen3-max-preview", # نسخة تجريبية
145
+ "qwen3-max-2025-09-23", # إصدار مؤرخ
146
+ "qwen-max", # الرائد الأصلي
147
+ "qwen-max-latest", # دائماً محدث
148
+ "qwen-max-2025-01-25", # إصدار مؤرخ
149
+
150
+ # =====================================
151
+ # Qwen PLUS & TURBO (متعددة الاستخدامات)
152
+ # =====================================
153
+ "qwen-plus", # متوازن للغاية
154
+ "qwen-plus-latest", # دائماً محدث
155
+ "qwen-plus-2025-09-11", # إصدار مؤرخ
156
+ "qwen-plus-2025-07-28", # إصدار مؤرخ
157
+ "qwen-plus-2025-07-14", # إصدار مؤرخ
158
+ "qwen-plus-2025-04-28", # إصدار مؤرخ
159
+ "qwen-plus-2025-01-25", # إصدار مؤرخ
160
+ "qwen-turbo", # سريع وفعال من حيث التكلفة
161
+ "qwen-turbo-latest", # دائماً محدث
162
+ "qwen-turbo-2025-04-28", # إصدار مؤرخ
163
+ "qwen-turbo-2024-11-01", # إصدار مؤرخ
164
+ "qwen-flash", # محسّن للوقت (يستبدل النفاث)
165
+ "qwen-flash-2025-07-28", # إصدار مؤرخ
166
+
167
+ # =====================================
168
+ # Qwen LONG (سياق فائق الطول)
169
+ # =====================================
170
+ "qwen-long-latest", # مليون سياق
171
+ "qwen-long-2025-01-25", # إصدار مؤرخ
172
+
173
+ # =====================================
174
+ # Qwen 3 CODER (نماذج البرمجة المتخصصة)
175
+ # المصدر: Alibaba Cloud + Promptfoo
176
+ # =====================================
177
+ "qwen3-coder-plus", # كود احترافي مع أداة الاتصال
178
+ "qwen3-coder-plus-2025-09-23", # إصدار مؤرخ
179
+ "qwen3-coder-plus-2025-07-22", # إصدار مؤرخ
180
+ "qwen3-coder-flash", # توليد كود سريع
181
+ "qwen3-coder-flash-2025-07-28", # إصدار مؤرخ
182
+ "qwen3-coder-next", # الجيل التالي من الكود
183
+ "qwen3-coder-480b-a35b-instruct", # 480B نموذج كود مفتوح
184
+ "qwen3-coder-30b-a3b-instruct", # 30B نموذج كود مفتوح
185
+
186
+ # =====================================
187
+ # Qwen 3 VL (الرؤية والفيديو)
188
+ # المصدر: Promptfoo + DashScope
189
+ # =====================================
190
+ "qwen3-vl-plus", # رؤية رائدة
191
+ "qwen3-vl-plus-2025-09-23", # إصدار مؤرخ
192
+ "qwen3-vl-flash", # نموذج رؤية سريع
193
+ "qwen3-vl-flash-2025-10-15", # إصدار مؤرخ
194
+ "qwen3-vl-235b-a22b-thinking", # 235B مع التفكير
195
+ "qwen3-vl-235b-a22b-instruct", # 235B تعليمات
196
+ "qwen3-vl-32b-thinking", # 32B مع التفكير
197
+ "qwen3-vl-32b-instruct", # 32B تعليمات
198
+ "qwen3-vl-30b-a3b-thinking", # 30B مع التفكير
199
+ "qwen3-vl-30b-a3b-instruct", # 30B تعليمات
200
+ "qwen3-vl-8b-thinking", # 8B مع التفكير
201
+ "qwen3-vl-8b-instruct", # 8B تعليمات
202
+ "qwen-vl-max", # VL ماكس
203
+ "qwen-vl-plus", # VL بلص
204
+ "qwen-vl-ocr", # محسّن للتعرف الضوئي على الحروف
205
+
206
+ # =====================================
207
+ # Qwen 3 OMN (رؤية + كلام)
208
+ # =====================================
209
+ "qwen3-omni-flash", # متعدد الوسائط
210
+ "qwen3-omni-flash-2025-09-15", # إصدار مؤرخ
211
+ "qwen3-omni-flash-realtime", # بث مباشر في الوقت الفعلي
212
+ "qwen3-omni-flash-realtime-2025-09-15", # إصدار مؤرخ
213
+ "qwen3-omni-30b-a3b-captioner", # تذييل الصوت
214
+
215
+ # =====================================
216
+ # QwQ REASONING (الاستدلال والبحث)
217
+ # المصدر: Promptfoo
218
+ # =====================================
219
+ "qwq-plus", # نموذج استدلال تجاري
220
+ "qwq-32b", # QwQ 32B مفتوح
221
+ "qwen-deep-research", # مساعد بحث مع استعلام ويب
222
+ "qvq-max", # استدلال بصري
223
+ "qvq-max-latest", # دائماً محدث
224
+ "qvq-max-2025-03-25", # إصدار مؤرخ
225
+ "qvq-72b-preview", # استدلال بصري 72B
226
+
227
+ # =====================================
228
+ # Qwen 3 OPEN-SOURCE (مفتوحة المصدر)
229
+ # المصدر: Alibaba Cloud
230
+ # =====================================
231
+ "qwen3-next-80b-a3b-thinking", # الجيل التالي 80B مع التفكير
232
+ "qwen3-next-80b-a3b-instruct", # الجيل التالي 80B تعليمات
233
+ "qwen3-235b-a22b-thinking-2507", # 235B يوليو 2025 مع التفكير
234
+ "qwen3-235b-a22b-instruct-2507", # 235B يوليو 2025 تعليمات
235
+ "qwen3-30b-a3b-thinking-2507", # 30B يوليو 2025 مع التفكير
236
+ "qwen3-30b-a3b-instruct-2507", # 30B يوليو 2025 تعليمات
237
+ "qwen3-235b-a22b", # 235B وضع مزدوج
238
+ "qwen3-32b", # 32B وضع مزدوج
239
+ "qwen3-30b-a3b", # 30B وضع مزدوج
240
+ "qwen3-14b", # 14B وضع مزدوج
241
+ "qwen3-8b", # 8B وضع مزدوج
242
+ "qwen3-4b", # 4B وضع مزدوج
243
+ "qwen3-1.7b", # 1.7B للأجهزة الطرفية
244
+ "qwen3-0.6b", # 0.6B للأجهزة الطرفية
245
+
246
+ # =====================================
247
+ # Qwen 2.5 SERIES (مستقرة ومجربة)
248
+ # =====================================
249
+ "qwen2.5-72b-instruct", # 72B نموذج كثيف
250
+ "qwen2.5-32b-instruct", # 32B نموذج كثيف
251
+ "qwen2.5-14b-instruct", # 14B نموذج كثيف
252
+ "qwen2.5-7b-instruct", # 7B نموذج كثيف
253
+ "qwen2.5-1.5b-instruct", # 1.5B نموذج صغير
254
+ "qwen2.5-0.5b-instruct", # 0.5B نموذج صغير جداً
255
+ "qwen2.5-7b-instruct-1m", # 7B مع سياق مليوني
256
+ "qwen2.5-14b-instruct-1m", # 14B مع سياق مليوني
257
+ "qwen2.5-coder-32b-instruct", # 32B كود
258
+ "qwen2.5-coder-14b-instruct", # 14B كود
259
+ "qwen2.5-coder-7b-instruct", # 7B كود
260
+ "qwen2.5-coder-1.5b-instruct", # 1.5B كود
261
+ "qwen2.5-coder-0.5b-instruct", # 0.5B كود
262
+
263
+ # =====================================
264
+ # QWEN MATH (النماذج الرياضية)
265
+ # =====================================
266
+ "qwen-math-plus", # عددي بلص
267
+ "qwen-math-plus-latest", # دائماً محدث
268
+ "qwen-math-plus-2024-09-19", # إصدار مؤرخ
269
+ "qwen-math-plus-2024-08-16", # إصدار مؤرخ
270
+ "qwen-math-turbo", # عددي توربو
271
+ "qwen-math-turbo-latest", # دائماً محدث
272
+ "qwen-math-turbo-2024-09-19", # إصدار مؤرخ
273
+ "qwen2.5-math-72b-instruct", # 72B للنماذج الرياضية
274
+ "qwen2.5-math-7b-instruct", # 7B للنماذج الرياضية
275
+
276
+ # =====================================
277
+ # QWEN TRANSLATION (الترجمة)
278
+ # =====================================
279
+ "qwen-mt-plus", # مترجمة بلص
280
+ "qwen-mt-turbo", # مترجمة توربو
281
+
282
+ # =====================================
283
+ # QWEN DOCUMENT (استخراج المستندات)
284
+ # =====================================
285
+ "qwen-doc-turbo", # استخراج المستندات المهيكلة
286
+
287
+ # =====================================
288
+ # QWEN IMAGE GENERATION (توليد الصور)
289
+ # =====================================
290
+ "qwen-image-plus", # نص إلى صورة مع عرض نصي معقد
291
+
292
+ # =====================================
293
+ # ALIASES (استعلامات مختصرة)
294
+ # =====================================
295
  "qwen",
296
  "qwen2.5",
297
  "qwen-coder",
 
298
  "qwen-vl",
299
+ "qwq",
300
+ "qvq",
 
 
 
301
  ],
302
  }
303
 
 
509
  for pname, pobj in REAL_PROVIDERS.items():
510
  if pname not in _PROVIDER_MODEL_CACHE:
511
  _PROVIDER_MODEL_CACHE[pname] = discover_provider_models(pobj, pname)
512
+ for model in _PROVIDER_MODEL_CACHE[pname][:30]:
513
  models.append({
514
  "id": model,
515
  "type": "model",
 
518
 
519
  if not models:
520
  models = [
521
+ {"id": "qwen3.6-plus", "type": "model", "display_name": "Qwen 3.6 - Plus"},
522
+ {"id": "qwen3-max", "type": "model", "display_name": "Qwen 3 - Max"},
523
  {"id": "qwen-plus", "type": "model", "display_name": "Qwen - Plus"},
524
+ {"id": "qwen3-coder-plus", "type": "model", "display_name": "Qwen 3 - Coder Plus"},
525
+ {"id": "qwen3-vl-plus", "type": "model", "display_name": "Qwen 3 - Vision Plus"},
 
 
526
  ]
527
 
528
  return {"data": models}
 
620
  @app.get("/")
621
  async def root():
622
  return {
623
+ "message": "G4F Smart Router is running (Qwen Only - Full Models)",
624
  "provider": "Qwen",
625
  "endpoints": {
626
  "GET /": "Home page",
 
634
  },
635
  "authentication": "Bearer YOUR_API_KEY or X-API-Key: YOUR_API_KEY",
636
  "cookies": COOKIE_STATUS,
637
+ "models_count": len(PROVIDER_MODELS_FALLBACK.get("Qwen", [])),
638
  "status": "✅ Server is working"
639
  }
640