Spaces:
Sleeping
Sleeping
| import autogen | |
| # خريطة النماذج المباشرة الموزعة على الوكلاء | |
| MODEL_MAP = { | |
| "Analyst": "Qwen/Qwen3-Next-80B-A3B-Instruct", | |
| "StyleGuardian": "openai/gpt-oss-120b", | |
| "Architect": "deepseek-ai/DeepSeek-V3.2-Exp", | |
| "DraftWriter": "deepcogito/cogito-v2-preview-llama-405B", | |
| "Humanizer": "deepcogito/cogito-671b-v2.1", | |
| "ContinuityGuard": "meta-llama/Llama-3.3-70B-Instruct", | |
| "Psychologist": "zai-org/GLM-4.7-FP8", | |
| "Critic": "Qwen/Qwen3-235B-A22B-Thinking-2507", | |
| "Editor": "inclusionAI/Ling-1T" | |
| } | |
| def get_llm_config(model_id, user_token): | |
| """إنشاء إعدادات الاتصال بالنموذج عبر راوتر Hugging Face""" | |
| return { | |
| "config_list": [ | |
| { | |
| "model": model_id, | |
| "api_key": user_token, | |
| "base_url": "https://router.huggingface.co/v1", | |
| "api_type": "openai", | |
| } | |
| ], | |
| "temperature": 0.7, | |
| "cache_seed": None, # لضمان نتائج متجددة دائماً | |
| } | |
| def create_agents(user_token): | |
| """توليد فريق الوكلاء وتوزيع المهام عليهم""" | |
| # وظيفة داخلية لتبسيط إنشاء الوكلاء المساعدين | |
| def mk_asst(name, sys_msg, model_key): | |
| return autogen.AssistantAgent( | |
| name=name, | |
| system_message=sys_msg, | |
| llm_config=get_llm_config(MODEL_MAP[model_key], user_token) | |
| ) | |
| agents = { | |
| "analyst": mk_asst("Analyst", "أنت المحلل البنيوي للنص، فكك الأفكار وحدد الروابط العمقية.", "Analyst"), | |
| "style_guardian": mk_asst("Style_Guardian", "أنت حارس الأسلوب الأدبي، تأكد من جودة اللغة والجماليات السردية.", "StyleGuardian"), | |
| "architect": mk_asst("Architect", "أنت مهندس الحبكة، قم ببناء تسلسل أحداث متماسك ومشوق.", "Architect"), | |
| "draft_writer": mk_asst("Draft_Writer", "أنت كاتب المسودة الأولية، حول الأفكار إلى نص سردي روائي.", "DraftWriter"), | |
| "humanizer": mk_asst("Humanizer", "أنت خبير الأنسنة، بث المشاعر في الشخصيات واجعل الحوارات نابضة بالحياة.", "Humanizer"), | |
| "continuity_guard": mk_asst("Continuity_Guard", "أنت مراقب الاستمرارية، امنع التناقضات في الأحداث أو صفات الشخصيات.", "ContinuityGuard"), | |
| "psychologist": mk_asst("Psychologist", "أنت محلل الدوافع النفسية، اجعل تصرفات الشخصيات مبررة نفسياً.", "Psychologist"), | |
| "critic": mk_asst("Critic", "أنت الناقد الأدبي، راجع النص النهائي وقدم ملاحظات قاسية للتحسين.", "Critic"), | |
| } | |
| # رئيس التحرير: المسؤول عن الإدارة والصياغة النهائية | |
| # تم ضبط human_input_mode إلى NEVER لضمان العمل التلقائي في بيئة الويب | |
| agents["editor"] = autogen.UserProxyAgent( | |
| name="Editor_In_Chief", | |
| human_input_mode="NEVER", | |
| max_consecutive_auto_reply=10, | |
| code_execution_config=False, | |
| llm_config=get_llm_config(MODEL_MAP["Editor"], user_token), | |
| system_message="""أنت رئيس التحرير (Ling-1T). | |
| مهمتك هي قيادة نقاش الوكلاء ودمج مخرجاتهم لصياغة الفصل الروائي النهائي بأسلوب أدبي رفيع. | |
| يجب أن تنتهي المحادثة دائماً بالنص الكامل للمخطوطة.""" | |
| ) | |
| return agents | |