Spaces:
Running
Running
import gradio as gr | |
from transformers import AutoModelForCausalLM, AutoTokenizer, pipeline | |
import torch | |
# تحميل الموديل والتوكنيزر | |
model_name = "NousResearch/Hermes-2-Pro-Mistral-7B" | |
tokenizer = AutoTokenizer.from_pretrained(model_name) | |
model = AutoModelForCausalLM.from_pretrained( | |
model_name, | |
torch_dtype=torch.float16, | |
device_map="auto" | |
) | |
# تجهيز الـ pipeline | |
generator = pipeline("text-generation", model=model, tokenizer=tokenizer) | |
# دالة الرد على المستخدم | |
def chatbot(user_input): | |
prompt = f"""### النظام: | |
أنت مساعد ذكي متخصص في مجال طب الأسنان، تجيب على الأسئلة الطبية بدقة وباللغة العربية إن أمكن. | |
### المستخدم: | |
{user_input} | |
### المساعد:""" | |
response = generator( | |
prompt, | |
max_new_tokens=300, | |
do_sample=True, | |
temperature=0.7, | |
top_p=0.95 | |
) | |
output_text = response[0]["generated_text"] | |
# فصل إجابة المساعد من النص الكامل | |
answer = output_text.split("### المساعد:")[-1].strip() | |
return answer | |
# تصميم الواجهة بـ Gradio | |
gr.Interface( | |
fn=chatbot, | |
inputs=gr.Textbox(lines=3, label="اسأل سؤالاً في طب الأسنان"), | |
outputs=gr.Textbox(lines=8, label="إجابة المساعد"), | |
title="طبيب الأسنان الآلي", | |
description="مساعد ذكي يجيب على الأسئلة الطبية المتخصصة في مجال طب الأسنان" | |
).launch() | |