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): 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 create_asst(name, msg, model_key): return autogen.AssistantAgent( name=name, system_message=msg, llm_config=get_llm_config(MODEL_MAP[model_key], user_token) ) agents = { "analyst": create_asst("Analyst", "أنت المحلل البنيوي للنص.", "Analyst"), "style_guardian": create_asst("Style_Guardian", "أنت حارس الأسلوب الأدبي.", "StyleGuardian"), "architect": create_asst("Architect", "أنت مهندس الحبكة السردية.", "Architect"), "draft_writer": create_asst("Draft_Writer", "أنت كاتب المسودة الأولية.", "DraftWriter"), "humanizer": create_asst("Humanizer", "أنت خبير الأنسنة والتفاصيل الحسية.", "Humanizer"), "continuity_guard": create_asst("Continuity_Guard", "أنت مراقب الاستمرارية ومنطق الأحداث.", "ContinuityGuard"), "psychologist": create_asst("Psychologist", "أنت محلل الدوافع النفسية للشخصيات.", "Psychologist"), "critic": create_asst("Critic", "أنت الناقد الأدبي الصارم.", "Critic"), } # رئيس التحرير بوضع NEVER للعمل مع واجهة الويب agents["editor"] = autogen.UserProxyAgent( name="Editor_In_Chief", human_input_mode="NEVER", max_consecutive_auto_reply=15, code_execution_config=False, llm_config=get_llm_config(MODEL_MAP["Editor"], user_token), system_message="أنت رئيس التحرير المسؤول عن دمج كل مساهمات الوكلاء في نص روائي واحد متكامل." ) return agents