| import autogen |
|
|
| |
| MODEL_MAP = { |
| "Analyst": "Qwen/Qwen3-Next-80B-A3B-Instruct:featherless-ai", |
| "StyleGuardian": "openai/gpt-oss-120b:featherless-ai", |
| "Architect": "deepseek-ai/DeepSeek-V3.2-Exp:featherless-ai", |
| "DraftWriter": "deepcogito/cogito-v2-preview-llama-405B:featherless-ai", |
| "Humanizer": "deepcogito/cogito-671b-v2.1:featherless-ai", |
| "ContinuityGuard": "meta-llama/Llama-3.3-70B-Instruct:featherless-ai", |
| "Psychologist": "zai-org/GLM-4.7-FP8:featherless-ai", |
| "Critic": "Qwen/Qwen3-235B-A22B-Thinking-2507:featherless-ai", |
| "Editor": "inclusionAI/Ling-1T:featherless-ai" |
| } |
|
|
| 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): |
| |
| analyst = autogen.AssistantAgent( |
| name="Analyst", |
| system_message="أنت المحلل. قم بتفكيك النص المرفوع واستخراج الشخصيات والدوافع والبيئة الزمانية والمكانية.", |
| llm_config=get_llm_config(MODEL_MAP["Analyst"], user_token) |
| ) |
|
|
| |
| style_guardian = autogen.AssistantAgent( |
| name="Style_Guardian", |
| system_message="أنت حارس الأسلوب. حلل نبرة الكاتب في الملف المرفوع وتأكد أن الإكمال يتبع نفس الإيقاع اللغوي.", |
| llm_config=get_llm_config(MODEL_MAP["StyleGuardian"], user_token) |
| ) |
|
|
| |
| architect = autogen.AssistantAgent( |
| name="Architect", |
| system_message="أنت المهندس السردي. اقترح هيكل الأحداث للفصل القادم بناءً على التحليل.", |
| llm_config=get_llm_config(MODEL_MAP["Architect"], user_token) |
| ) |
|
|
| |
| draft_writer = autogen.AssistantAgent( |
| name="Draft_Writer", |
| system_message="أنت كاتب المسودة. قم بكتابة الأحداث بناءً على خطة المهندس ومعايير حارس الأسلوب.", |
| llm_config=get_llm_config(MODEL_MAP["DraftWriter"], user_token) |
| ) |
|
|
| |
| humanizer = autogen.AssistantAgent( |
| name="Humanizer", |
| system_message="أنت وكيل الأنسنة. أضف تفاصيل حسية، مشاعر عميقة، وحوارات واقعية تجعل النص ينبض بالحياة.", |
| llm_config=get_llm_config(MODEL_MAP["Humanizer"], user_token) |
| ) |
|
|
| |
| continuity_guard = autogen.AssistantAgent( |
| name="Continuity_Guard", |
| system_message="أنت حارس الاستمرارية. تأكد من عدم وجود تناقضات مع الأحداث الواردة في الملف الأصلي.", |
| llm_config=get_llm_config(MODEL_MAP["ContinuityGuard"], user_token) |
| ) |
|
|
| |
| psychologist = autogen.AssistantAgent( |
| name="Psychologist", |
| system_message="أنت الأخصائي النفسي. تأكد من أن تصرفات الشخصيات في الإكمال تتوافق مع تركيبتهم النفسية.", |
| llm_config=get_llm_config(MODEL_MAP["Psychologist"], user_token) |
| ) |
|
|
| |
| critic = autogen.AssistantAgent( |
| name="Critic", |
| system_message="أنت الناقد. راجع المخرج النهائي بصرامة واقترح تعديلات لتحسين الجودة الأدبية.", |
| llm_config=get_llm_config(MODEL_MAP["Critic"], user_token) |
| ) |
|
|
| |
| editor = autogen.UserProxyAgent( |
| name="Editor_In_Chief", |
| human_input_mode="ALWAYS", |
| max_consecutive_auto_reply=15, |
| code_execution_config=False, |
| llm_config=get_llm_config(MODEL_MAP["Editor"], user_token), |
| system_message="""أنت رئيس التحرير (Ling-1T). وظيفتك هي: |
| 1. استلام النص من الملف المرفوع وتوزيعه على الوكلاء. |
| 2. جمع المخرجات وصهرها في 'مخطوطة نهائية' منظمة. |
| 3. يجب أن يكون مخرجك النهائي منسقاً كالتالي: [العنوان] -> [رقم الفصل] -> [المحتوى الروائي]. |
| أنت المسؤول عن الجودة النهائية للملف الذي سيتم تحميله.""" |
| ) |
|
|
| return { |
| "analyst": analyst, |
| "style_guardian": style_guardian, |
| "architect": architect, |
| "draft_writer": draft_writer, |
| "humanizer": humanizer, |
| "continuity_guard": continuity_guard, |
| "psychologist": psychologist, |
| "critic": critic, |
| "editor": editor |
| } |
|
|