Autogen-multy-agent / agents_config.py
FECUOY's picture
Update agents_config.py
f25bb93 verified
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