Autogen-multy-agent / agents_config.py
FECUOY's picture
Update agents_config.py
c1e79ed verified
raw
history blame
5.37 kB
import autogen
# القائمة المحدثة بالنماذج مع لاحقة featherless-ai
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):
# 1. وكيل التحليل
analyst = autogen.AssistantAgent(
name="Analyst",
system_message="أنت المحلل. قم بتفكيك النص المرفوع واستخراج الشخصيات والدوافع والبيئة الزمانية والمكانية.",
llm_config=get_llm_config(MODEL_MAP["Analyst"], user_token)
)
# 2. وكيل الأسلوب
style_guardian = autogen.AssistantAgent(
name="Style_Guardian",
system_message="أنت حارس الأسلوب. حلل نبرة الكاتب في الملف المرفوع وتأكد أن الإكمال يتبع نفس الإيقاع اللغوي.",
llm_config=get_llm_config(MODEL_MAP["StyleGuardian"], user_token)
)
# 3. المهندس السردي
architect = autogen.AssistantAgent(
name="Architect",
system_message="أنت المهندس السردي. اقترح هيكل الأحداث للفصل القادم بناءً على التحليل.",
llm_config=get_llm_config(MODEL_MAP["Architect"], user_token)
)
# 4. كاتب المسودة
draft_writer = autogen.AssistantAgent(
name="Draft_Writer",
system_message="أنت كاتب المسودة. قم بكتابة الأحداث بناءً على خطة المهندس ومعايير حارس الأسلوب.",
llm_config=get_llm_config(MODEL_MAP["DraftWriter"], user_token)
)
# 5. وكيل الأنسنة
humanizer = autogen.AssistantAgent(
name="Humanizer",
system_message="أنت وكيل الأنسنة. أضف تفاصيل حسية، مشاعر عميقة، وحوارات واقعية تجعل النص ينبض بالحياة.",
llm_config=get_llm_config(MODEL_MAP["Humanizer"], user_token)
)
# 6. حارس الاستمرارية
continuity_guard = autogen.AssistantAgent(
name="Continuity_Guard",
system_message="أنت حارس الاستمرارية. تأكد من عدم وجود تناقضات مع الأحداث الواردة في الملف الأصلي.",
llm_config=get_llm_config(MODEL_MAP["ContinuityGuard"], user_token)
)
# 7. الأخصائي النفسي
psychologist = autogen.AssistantAgent(
name="Psychologist",
system_message="أنت الأخصائي النفسي. تأكد من أن تصرفات الشخصيات في الإكمال تتوافق مع تركيبتهم النفسية.",
llm_config=get_llm_config(MODEL_MAP["Psychologist"], user_token)
)
# 8. الناقد
critic = autogen.AssistantAgent(
name="Critic",
system_message="أنت الناقد. راجع المخرج النهائي بصرامة واقترح تعديلات لتحسين الجودة الأدبية.",
llm_config=get_llm_config(MODEL_MAP["Critic"], user_token)
)
# 9. رئيس التحرير (InclusionAI/Ling-1T) - المسؤول عن التنظيم والمخرجات
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
}