Baher-Hamada commited on
Commit
eb59086
·
verified ·
1 Parent(s): d535016

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +40 -24
app.py CHANGED
@@ -1,30 +1,46 @@
1
- import torch
2
- from transformers import AutoModelForCausalLM, AutoTokenizer
3
  import gradio as gr
 
 
 
 
 
4
 
5
- # تحميل النموذج
6
- model_id = "TheBloke/Mistral-7B-Instruct-v0.2-GGUF" # غيّر هذا لو تستخدم موديل مختلف
7
- tokenizer = AutoTokenizer.from_pretrained("mistralai/Mistral-7B-Instruct-v0.2")
8
- model = AutoModelForCausalLM.from_pretrained("mistralai/Mistral-7B-Instruct-v0.2")
 
 
9
 
10
- # تحديد الجهاز: CUDA إذا متوفر، وإلا CPU
11
- device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
12
- model.to(device)
13
 
14
  # دالة الرد على المستخدم
15
- def chat_fn(message, history):
16
- inputs = tokenizer(message, return_tensors="pt").to(device)
17
- outputs = model.generate(**inputs, max_new_tokens=200, pad_token_id=tokenizer.eos_token_id)
18
- response = tokenizer.decode(outputs[0], skip_special_tokens=True)
19
- return response
20
-
21
- # واجهة Gradio
22
- chatbot = gr.ChatInterface(
23
- fn=chat_fn,
24
- title="مساعد عربي تجريبي",
25
- theme="default",
26
- chatbot=gr.Chatbot(),
27
- examples=["مرحبا", "ما هو الذكاء الاصطناعي؟", "كيف حالك؟"],
28
- )
 
 
 
 
 
29
 
30
- chatbot.launch()
 
 
 
 
 
 
 
 
 
 
1
  import gradio as gr
2
+ from transformers import AutoModelForCausalLM, AutoTokenizer, pipeline
3
+ import torch
4
+
5
+ # تحميل الموديل والتوكنيزر
6
+ model_name = "NousResearch/Hermes-2-Pro-Mistral-7B"
7
 
8
+ tokenizer = AutoTokenizer.from_pretrained(model_name)
9
+ model = AutoModelForCausalLM.from_pretrained(
10
+ model_name,
11
+ torch_dtype=torch.float16,
12
+ device_map="auto"
13
+ )
14
 
15
+ # تجهيز الـ pipeline
16
+ generator = pipeline("text-generation", model=model, tokenizer=tokenizer)
 
17
 
18
  # دالة الرد على المستخدم
19
+ def chatbot(user_input):
20
+ prompt = f"""### النظام:
21
+ أنت مساعد ذكي متخصص في مجال طب الأسنان، تجيب على الأسئلة الطبية بدقة وباللغة العربية إن أمكن.
22
+ ### المستخدم:
23
+ {user_input}
24
+ ### المساعد:"""
25
+
26
+ response = generator(
27
+ prompt,
28
+ max_new_tokens=300,
29
+ do_sample=True,
30
+ temperature=0.7,
31
+ top_p=0.95
32
+ )
33
+
34
+ output_text = response[0]["generated_text"]
35
+ # فصل إجابة المساعد من النص الكامل
36
+ answer = output_text.split("### المساعد:")[-1].strip()
37
+ return answer
38
 
39
+ # تصميم الواجهة بـ Gradio
40
+ gr.Interface(
41
+ fn=chatbot,
42
+ inputs=gr.Textbox(lines=3, label="اسأل سؤالاً في طب الأسنان"),
43
+ outputs=gr.Textbox(lines=8, label="إجابة المساعد"),
44
+ title="طبيب الأسنان الآلي",
45
+ description="مساعد ذكي يجيب على الأسئلة الطبية المتخصصة في مجال طب الأسنان"
46
+ ).launch()