Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| import requests | |
| import os | |
| import time | |
| # السيرفرات الأربعة الأقوى والأكثر استقراراً | |
| MODELS = [ | |
| "meta-llama/Meta-Llama-3-8B-Instruct", | |
| "mistralai/Mistral-7B-Instruct-v0.3", | |
| "HuggingFaceH4/zephyr-7b-beta", | |
| "microsoft/Phi-3-mini-4k-instruct" | |
| ] | |
| IMAGE_API = "https://api-inference.huggingface.co/models/stabilityai/stable-diffusion-xl-base-1.0" | |
| def chat_engine(message, history): | |
| token = os.getenv('HF_TOKEN') | |
| headers = {"Authorization": f"Bearer {token}"} | |
| # التوجيه الخاص بالطبخ والتطبيقات | |
| system_instruction = "أنت مالاكمو، مساعد خبير. قدم وصفات طبخ بدقة، واقترح تطبيقات آمنة مع ذكر أنها متوفرة على Google Play." | |
| prompt = f"<|system|>\n{system_instruction}\n" | |
| for user_msg, bot_msg in history: | |
| prompt += f"<|user|>\n{user_msg}\n<|assistant|>\n{bot_msg}\n" | |
| prompt += f"<|user|>\n{message}\n<|assistant|>\n" | |
| for model in MODELS: | |
| api_url = f"https://api-inference.huggingface.co/models/{model}" | |
| try: | |
| # تقليل الـ timeout لسرعة التنقل بين السيرفرات | |
| response = requests.post(api_url, headers=headers, json={"inputs": prompt, "parameters": {"max_new_tokens": 500, "wait_for_model": True}}, timeout=25) | |
| if response.status_code == 200: | |
| res = response.json() | |
| return res[0]['generated_text'].split("<|assistant|>\n")[-1] | |
| except: | |
| continue | |
| return "السيرفرات العالمية مزدحمة حالياً، يرجى الضغط على 'إرسال' مرة أخرى." | |
| def make_image(prompt): | |
| headers = {"Authorization": f"Bearer {os.getenv('HF_TOKEN')}"} | |
| response = requests.post(IMAGE_API, headers=headers, json={"inputs": prompt}) | |
| return response.content if response.status_code == 200 else None | |
| # واجهة ChatGPT الاحترافية | |
| with gr.Blocks(theme=gr.themes.Soft(primary_hue="blue", neutral_hue="slate")) as demo: | |
| gr.HTML("<h1 style='text-align: center;'>🇸🇾 MALAKMO AI - المنصة الشاملة</h1>") | |
| with gr.Tabs(): | |
| with gr.TabItem("💬 الدردشة والطبخ والتطبيقات"): | |
| gr.ChatInterface(fn=chat_engine, chatbot=gr.Chatbot(height=400), submit_btn="إرسال") | |
| with gr.TabItem("🎨 مصمم الصور"): | |
| with gr.Row(): | |
| img_in = gr.Textbox(label="صف الصورة بالإنجليزية") | |
| img_btn = gr.Button("تصميم") | |
| img_out = gr.Image() | |
| img_btn.click(make_image, img_in, img_out) | |
| with gr.TabItem("🔍 بحث الصور"): | |
| search_in = gr.Textbox(label="ابحث عن صور ذات صلة") | |
| search_out = gr.HTML() | |
| search_btn = gr.Button("بحث") | |
| search_btn.click(lambda q: f"<a href='https://www.bing.com/images/search?q={q}' target='_blank'>إضغط هنا لرؤية نتائج {q}</a>", search_in, search_out) | |
| demo.launch() | |