Spaces:
Sleeping
Sleeping
File size: 3,778 Bytes
9b3b874 f25bb93 11368e1 f25bb93 11368e1 f25bb93 11368e1 f25bb93 11368e1 f25bb93 11368e1 f25bb93 11368e1 a11de4b 11368e1 f25bb93 11368e1 f25bb93 11368e1 f25bb93 11368e1 f25bb93 2cd4955 f25bb93 11368e1 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 | 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
|