import gradio as gr from sentence_transformers.cross_encoder import CrossEncoder import numpy as np # تحميل النموذج # استبدل "ALJIACHI/Mizan-Rerank-v1" باسم النموذج الفعلي الخاص بك model = CrossEncoder("ALJIACHI/Mizan-Rerank-v1") def rerank_texts(query, texts): """ إعادة ترتيب قائمة من النصوص بناءً على مدى صلتها بالاستعلام. المعاملات: query (str): استعلام البحث texts (str): نصوص مفصولة بسطر جديد للترتيب العوائد: str: النتائج المنسقة مع الدرجات """ # تقسيم النصوص المدخلة حسب السطر الجديد text_list = [t.strip() for t in texts.split('\n') if t.strip()] # إنشاء أزواج الجمل sentence_pairs = [[query, text] for text in text_list] # الحصول على الدرجات من النموذج scores = model.predict(sentence_pairs) # إنشاء النتائج مع الترتيب والدرجات والنصوص results = [(score, text) for score, text in zip(scores, text_list)] # الترتيب حسب الدرجة بترتيب تنازلي results.sort(reverse=True) # تنسيق المخرجات output = "" for i, (score, text) in enumerate(results, 1): output += f"#{i} (الدرجة: {score:.4f}): {text}\n\n" return output # إنشاء واجهة Gradio demo = gr.Interface( fn=rerank_texts, inputs=[ gr.Textbox(label="الاستعلام", placeholder="أدخل استعلام البحث هنا..."), gr.Textbox( label="النصوص المراد ترتيبها", placeholder="أدخل النصوص المراد ترتيبها، نص واحد في كل سطر...", lines=10 ) ], outputs=gr.Textbox(label="النتائج المرتبة"), title="تطبيق إعادة ترتيب النصوص العربية", description=( "يستخدم هذا التطبيق نموذج Mizan-Rerank-v1 لترتيب النصوص بناءً على مدى صلتها بالاستعلام. " "أدخل استعلامك وقائمة من النصوص (نص واحد في كل سطر)، وسيقوم النموذج بترتيبها حسب الصلة." ), examples=[ [ "ما هو القانون الجديد بشأن الضرائب في 2024؟", "نشرت الجريدة الرسمية قانوناً جديداً في 2024 ينص على زيادة الضرائب على الشركات الكبرى بنسبة 5%\nالضرائب تعد مصدراً مهماً للدخل القومي وتختلف نسبتها من دولة إلى أخرى.\nافتتحت الحكومة مشروعاً جديداً للطاقة المتجددة في 2024." ], [ "ما هو تفسير الآية وجعلنا من الماء كل شيء حي", "تعني الآية أن الماء هو عنصر أساسي في حياة جميع الكائنات الحية، وهو ضروري لاستمرار الحياة.\nتم اكتشاف كواكب خارج المجموعة الشمسية تحتوي على مياه متجمدة.\nتحدث القرآن الكريم عن البرق والرعد في عدة مواضع مختلفة." ], [ "ما هي فوائد فيتامين د؟", "يساعد فيتامين د في تعزيز صحة العظام وتقوية الجهاز المناعي، كما يلعب دوراً مهماً في امتصاص الكالسيوم.\nيستخدم فيتامين د في بعض الصناعات الغذائية كمادة حافظة.\nيمكن الحصول على فيتامين د من خلال التعرض لأشعة الشمس أو تناول مكملات غذائية." ] ], allow_flagging="never" ) # تشغيل التطبيق if __name__ == "__main__": demo.launch()