# app.py import gradio as gr from transformers import AutoTokenizer, AutoModelForSequenceClassification from transformers import AutoModelForSeq2SeqLM, AutoTokenizer import torch # تحميل النموذج والمحول model_name = "aubmindlab/bert-base-arabertv2" tokenizer = AutoTokenizer.from_pretrained(model_name) model = AutoModelForSequenceClassification.from_pretrained(model_name) device = torch.device("cuda" if torch.cuda.is_available() else "cpu") model = model.to(device) def generate_answer(question, context): input_text = f"سؤال: {question} سياق: {context}" inputs = tokenizer(input_text, return_tensors="pt", padding=True).to(device) output = model.generate(**inputs, max_length=256) answer = tokenizer.decode(output[0], skip_special_tokens=True) return answer def ask_question(question, context): if not question.strip(): return "❌ الرجاء كتابة سؤال." answer = generate_answer(question, context) return f"✅ الإجابة: {answer}" with gr.Blocks(title="سؤال وجواب من الكتب") as demo: gr.Markdown(""" # 📚 اسأل كتبك! اطرح أي سؤال وسنبحث لك عن الجواب من محتوى الكتب بدقة وفهم! """) with gr.Row(): question = gr.Textbox(label="✍️ اكتب سؤالك هنا:", placeholder="مثال: ما معنى الذكاء الاصطناعي؟") with gr.Row(): context = gr.Textbox(label="📖 اكتب أو الصق نص من كتابك هنا:", placeholder="انسخ فقرة أو أكثر من الكتاب...") with gr.Row(): ask_btn = gr.Button("🔍 احصل على الإجابة") output = gr.Textbox(label="💬 الإجابة:") ask_btn.click(fn=ask_question, inputs=[question, context], outputs=output) demo.launch()