import gradio as gr from transformers import AutoModelForCausalLM, AutoTokenizer, pipeline # ------------------------------- # نموذج عام مجاني Public على Hugging Face # ------------------------------- MODEL_NAME = "databricks/dolly-v2-3b" tokenizer = AutoTokenizer.from_pretrained(MODEL_NAME) model = AutoModelForCausalLM.from_pretrained(MODEL_NAME) generator = pipeline( "text-generation", model=model, tokenizer=tokenizer, do_sample=True, top_p=0.95, top_k=50, temperature=0.7, repetition_penalty=1.1 ) # ------------------------------- # حماية Paid-before-use # ------------------------------- VALID_KEYS = ["ABC123", "XYZ789"] # تولد بعد الدفع لكل مستخدم def check_key(user_key): return user_key in VALID_KEYS # ------------------------------- # أنماط الردود الخارقة # ------------------------------- answer_styles = { "مختصر ومباشر": "أجب على السؤال باختصار ووضوح، بدون كلام زائد.", "تفصيلي ومنظم": "أجب على السؤال بشكل مفصل ومنظم، مع خطوات واضحة.", "نصيحة/خطوات عملية": "أجب على شكل نصائح أو خطوات عملية مرتبة.", "ملخص + شرح + خطوات": "أجب بثلاث مستويات: ملخص، شرح مفصل، وخطوات عملية.", } # ------------------------------- # دالة توليد الردود مع التحقق # ------------------------------- def protected_response(user_input, style, user_key): if not check_key(user_key): return "🚫 يرجى إدخال كود التفعيل الصحيح بعد الدفع." prompt = ( f"أنت مساعد ذكي خارق شبيه ChatGPT. " f"اتبع أسلوب الرد التالي: {answer_styles.get(style, '')}\n" f"استعمل العربية، صحح الأخطاء اللغوية في السؤال، وتذكر السياق إذا تكرر.\n" f"قدم أمثلة واقعية، خطوات عملية، وتقييم درجة ثقة في الإجابة.\n" f"السؤال: {user_input}\n" f"الجواب:" ) outputs = generator(prompt, max_new_tokens=1200) return outputs[0]['generated_text'].split("الجواب:")[-1].strip() # ------------------------------- # واجهة Gradio # ------------------------------- iface = gr.Interface( fn=protected_response, inputs=[ gr.Textbox(lines=2, placeholder="اكتب سؤالك هنا..."), gr.Dropdown(list(answer_styles.keys()), label="اختر أسلوب الرد"), gr.Textbox(lines=1, placeholder="أدخل كود التفعيل هنا") ], outputs="text", title="HENNASSI Super Public - النسخة الخارقة بالعربية", description=( "HENNASSI يجاوب على أي سؤال بطريقة ذكية ومنظمة، ويقدم أمثلة، خطوات عملية، " "ملخص، شرح مفصل، وتقييم ثقة الإجابة. " "لا يمكن استخدامه إلا بعد إدخال كود التفعيل." ) ) iface.launch()