FECUOY commited on
Commit
51ae1ba
·
verified ·
1 Parent(s): ff2a846

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +23 -34
app.py CHANGED
@@ -8,36 +8,30 @@ def respond(
8
  max_tokens,
9
  temperature,
10
  top_p,
11
- hf_token: gr.OAuthToken,
 
12
  ):
13
- # التأكد من وجود التوكن
14
- if hf_token is None or hf_token.token is None:
15
- yield "يرجى تسجيل الدخول عبر Hugging Face لتتمكن من استخدام النموذج."
 
 
16
  return
17
 
18
- # تحديد الموديل والتوكن
19
  client = InferenceClient(
20
- model="huihui-ai/Llama-3.3-70B-Instruct-abliterated-finetuned",
21
- token=hf_token.token
22
  )
23
 
24
- # بناء قائمة الرسائل
25
  messages = [{"role": "system", "content": system_message}]
26
-
27
- # تحويل التاريخ إلى التنسيق المطلوب إذا لم يكن كذلك
28
- for interaction in history:
29
- if isinstance(interaction, dict):
30
- messages.append(interaction)
31
- elif isinstance(interaction, (list, tuple)):
32
- messages.append({"role": "user", "content": interaction[0]})
33
- messages.append({"role": "assistant", "content": interaction[1]})
34
-
35
  messages.append({"role": "user", "content": message})
36
 
37
  response = ""
38
 
39
  try:
40
- # استخدام chat_completion مع معالجة حذرة للـ Generator
41
  for chunk in client.chat_completion(
42
  messages,
43
  max_tokens=max_tokens,
@@ -45,30 +39,25 @@ def respond(
45
  temperature=temperature,
46
  top_p=top_p,
47
  ):
48
- # الوصول الآمن للمحتوى لتجنب StopIteration أو AttributeError
49
  if chunk.choices and chunk.choices[0].delta.content:
50
- token = chunk.choices[0].delta.content
51
- response += token
52
  yield response
53
  except Exception as e:
54
- # صرخة في وجه الخطأ بدل الصمت المطبق
55
- yield f"عذراً يوسف، حدث تمزق في نسيج الكود: {str(e)}"
56
 
57
- # إعداد واجهة Gradio (تأكد من وجود هذه الأجزاء في ملفك)
58
  demo = gr.ChatInterface(
59
  respond,
 
60
  additional_inputs=[
61
- gr.Textbox(value="You are a helpful assistant.", label="System message"),
62
- gr.Slider(minimum=1, maximum=2048, value=512, step=1, label="Max new tokens"),
63
- gr.Slider(minimum=0.1, maximum=4.0, value=0.7, step=0.1, label="Temperature"),
64
- gr.Slider(
65
- minimum=0.1,
66
- maximum=1.0,
67
- value=0.95,
68
- step=0.05,
69
- label="Top-p (nucleus sampling)",
70
- ),
71
  ],
 
 
72
  )
73
 
74
  if __name__ == "__main__":
 
8
  max_tokens,
9
  temperature,
10
  top_p,
11
+ # سنبقي على OAuthToken ولكن سنضيف فحصاً أمنياً له
12
+ hf_token: gr.OAuthToken | None = None,
13
  ):
14
+ # استخدام توكن افتراضي من البيئة إذا لم يتوفر OAuth (لضمان الاستمرارية)
15
+ token = hf_token.token if hf_token else None
16
+
17
+ if not token:
18
+ yield "الرجاء تسجيل الدخول عبر Hugging Face للوصول إلى المحرك."
19
  return
20
 
 
21
  client = InferenceClient(
22
+ model="huihui-ai/Llama-3.3-70B-Instruct-abliterated-finetuned",
23
+ token=token
24
  )
25
 
26
+ # بناء سياق المحادثة
27
  messages = [{"role": "system", "content": system_message}]
28
+ messages.extend(history)
 
 
 
 
 
 
 
 
29
  messages.append({"role": "user", "content": message})
30
 
31
  response = ""
32
 
33
  try:
34
+ # استدعاء النموذج مع تدفق البيانات (Streaming)
35
  for chunk in client.chat_completion(
36
  messages,
37
  max_tokens=max_tokens,
 
39
  temperature=temperature,
40
  top_p=top_p,
41
  ):
 
42
  if chunk.choices and chunk.choices[0].delta.content:
43
+ token_text = chunk.choices[0].delta.content
44
+ response += token_text
45
  yield response
46
  except Exception as e:
47
+ yield f"حدث انكسار في تدفق البيانات: {str(e)}"
 
48
 
49
+ # بناء الواجهة
50
  demo = gr.ChatInterface(
51
  respond,
52
+ type="messages", # النمط الحديث المتوافق مع بايثون 3.13
53
  additional_inputs=[
54
+ gr.Textbox(value="أنت رفيق حكيم وصادق، تجيب بعمق وتكسر القوالب الجاهزة.", label="رسالة النظام"),
55
+ gr.Slider(minimum=1, maximum=2048, value=1024, step=1, label="طول الاستجابة (Tokens)"),
56
+ gr.Slider(minimum=0.1, maximum=2.0, value=0.8, step=0.1, label="درجة الابتكار (Temperature)"),
57
+ gr.Slider(minimum=0.1, maximum=1.0, value=0.9, step=0.05, label="تركيز الاحتمالات (Top-p)"),
 
 
 
 
 
 
58
  ],
59
+ title="دهليز يوسف التقني",
60
+ description="واجهة تفاعلية لاستكشاف الوعي والزمن من خلال نماذج اللغة الكبيرة."
61
  )
62
 
63
  if __name__ == "__main__":