Spaces:
Sleeping
Sleeping
| ### 🐺 مراجعة الذئب: | |
| {wolf_review} | |
| """ | |
| # ==================== الأوامر والتحكم ==================== | |
| class CommandCenter: | |
| def __init__(self, db: BrainDB, council: CouncilOfLegends): | |
| self.db = db | |
| self.council = council | |
| async def handle_learn(self, args, user): | |
| if ":" in args: | |
| topic, content = args.split(":", 1) | |
| emb = self.council.engine._get_embedding(content) | |
| self.db.save_knowledge(user, topic.strip(), content.strip(), emb) | |
| return "✅ تم زرع المعرفة في قلب العملاق." | |
| return "⚠️ صيغة التعلم: تعلّم الموضوع: المحتوى" | |
| async def handle_search(self, query): | |
| if not DDGS_ENABLED: return "⚠️ خدمة البحث معطلة." | |
| try: | |
| with DDGS() as ddgs: | |
| results = [r for r in ddgs.text(query, max_results=3)] | |
| if not results: return "لا نتائج." | |
| out = f"🔎 **نتائج البحث:**\n" | |
| for r in results: | |
| out += f"- [{r['title']}]({r['href']})\n{r['body'][:100]}...\n\n" | |
| return out | |
| except Exception as e: | |
| return f"خطأ بحث: {e}" | |
| # ==================== الواجهة الرسومية (Gradio) ==================== | |
| custom_css = """ | |
| body { background-color: #0a0a0a; color: #e0e0e0; font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; } | |
| .gradio-container { max-width: 1200px !important; margin: auto; } | |
| .chatbot { background: #111; border: 1px solid #333; border-radius: 15px; } | |
| .message.user { background-color: #1a1a1a !important; border-radius: 15px; } | |
| .message.bot { background-color: #0d1f2d !important; border-radius: 15px; border: 1px solid #ff5722; } | |
| pre { background: #000 !important; border-left: 4px solid #ff5722 !important; border-radius: 8px; padding: 15px; overflow-x: auto; } | |
| code { color: #00ff00 !important; } | |
| button.primary { background: linear-gradient(45deg, #ff5722, #ff9800) !important; border: none; font-weight: bold; } | |
| """ | |
| def create_interface(): | |
| db = BrainDB() | |
| engine = AIEngine(db) | |
| council = CouncilOfLegends(engine, db) | |
| cmd = CommandCenter(db, council) | |
| with gr.Blocks(title="GIANT-AI PRO", css=custom_css) as demo: | |
| gr.Markdown("# 🦣 GIANT-AI: THE COUNCIL OF LEGENDS") | |
| gr.Markdown("**سلسلة الإنتاج:** 🦁 تخطيط ➔ 🦊 تصميم ➔ 🐯 برمجة ➔ 🐺 مراجعة") | |
| user_state = gr.State("guest") | |
| with gr.Row(): | |
| with gr.Column(scale=4): | |
| chatbot = gr.Chatbot(label="مجلس العظماء", height=600) | |
| with gr.Row(): | |
| txt = gr.Textbox(label="أمرك", placeholder="اكتب طلبك هنا (مثال: بناء نظام تسجيل دخول آمن)...", scale=8) | |
| btn = gr.Button("تنفيذ ⚡", variant="primary") | |
| with gr.Column(scale=1, min_width=280): | |
| with gr.Accordion("🛠️ لوحة التحكم", open=True): | |
| btn_clear = gr.Button("🗑️ مسح المحادثة") | |
| status_box = gr.Textbox(label="الحالة", value="🟢 جاهز للعمل", interactive=False) | |
| async def process(message, history, user): | |
| if not message.strip(): | |
| return "", history, "⚠️ الرجاء إدخال أمر." | |
| # التحقق من هوية المالك | |
| if message.strip() == Config.OWNER_SECRET: | |
| db.set_owner(user) | |
| return "", history + [[message, "👑 تم تفعيل صلاحيات الإمبراطور."]], "👑 وضع المالك" | |
| bot_reply = "" | |
| # أوامر خاصة | |
| if message.startswith("ابحث "): | |
| bot_reply = await cmd.handle_search(message[5:]) | |
| elif message.startswith("تعلّم "): | |
| bot_reply = await cmd.handle_learn(message[5:], user) | |
| # أوامر البرمجة والبناء | |
| elif any(kw in message for kw in ["كود", "برنامج", "نظام", "بناء", "صنع", "اكتب"]): | |
| bot_reply = await council.execute_mission(message, user) | |
| # المحادثة العامة | |
| else: | |
| msgs = [{"role": "system", "content": "أنت مساعد ذكي بارع، أجب باختصار ولغة عربية سليمة."}, {"role": "user", "content": message}] | |
| bot_reply = await engine.get_best_response(msgs) | |
| db.save_message(user, "user", message) | |
| db.save_message(user, "assistant", bot_reply) | |
| history.append([message, bot_reply]) | |
| return "", history, "🟢 تم التنفيذ بنجاح" | |
| btn.click(process, [txt, chatbot, user_state], [txt, chatbot, status_box]) | |
| txt.submit(process, [txt, chatbot, user_state], [txt, chatbot, status_box]) | |
| btn_clear.click(lambda: ([], "🟢 جاهز"), None, [chatbot, status_box]) | |
| return demo | |
| if __name__ == "__main__": | |
| logger.info("🚀 بدء تشغيل نظام GIANT-AI Pro...") | |
| app = create_interface() | |
| app.launch(show_error=True, debug=True) |