|
import gradio as gr |
|
import torch |
|
from transformers import pipeline, AutoTokenizer |
|
|
|
|
|
|
|
|
|
|
|
MODEL_ID = "FaizTech/my-tinyllama-test" |
|
|
|
|
|
|
|
|
|
|
|
|
|
print(f"بدء تحميل النموذج: {MODEL_ID}") |
|
|
|
|
|
try: |
|
tokenizer = AutoTokenizer.from_pretrained(MODEL_ID) |
|
except Exception as e: |
|
print(f"خطأ في تحميل الـ Tokenizer: {e}") |
|
raise |
|
|
|
|
|
try: |
|
pipe = pipeline( |
|
"text-generation", |
|
model=MODEL_ID, |
|
tokenizer=tokenizer, |
|
torch_dtype=torch.bfloat16, |
|
device_map="auto" |
|
) |
|
print("تم تحميل النموذج بنجاح!") |
|
except Exception as e: |
|
print(f"خطأ في تحميل النموذج: {e}") |
|
raise |
|
|
|
|
|
|
|
def get_response(prompt_text): |
|
""" |
|
هذه الدالة تأخذ نصًا وتولد ردًا من النموذج. |
|
""" |
|
|
|
messages = [{"role": "user", "content": prompt_text}] |
|
prompt = pipe.tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True) |
|
|
|
|
|
outputs = pipe( |
|
prompt, |
|
max_new_tokens=256, |
|
do_sample=True, |
|
temperature=0.7, |
|
top_p=0.95 |
|
) |
|
|
|
|
|
response = outputs[0]["generated_text"] |
|
|
|
|
|
|
|
cleaned_response = response.replace(prompt, "").strip() |
|
|
|
return cleaned_response |
|
|
|
|
|
demo = gr.Interface( |
|
fn=get_response, |
|
inputs=gr.Textbox(label="أدخل سؤالك أو أمرك هنا", lines=4), |
|
outputs=gr.Textbox(label="إجابة النموذج", lines=4), |
|
title=f"واجهة لنموذج {MODEL_ID.split('/')[-1]}", |
|
description="هذا تطبيق ويب بسيط لواجهة API لنموذجي الخاص." |
|
) |
|
|
|
|
|
demo.queue().launch() |