Update agents_config.py
Browse files- agents_config.py +5 -95
agents_config.py
CHANGED
|
@@ -1,120 +1,30 @@
|
|
| 1 |
import autogen
|
| 2 |
|
| 3 |
-
#
|
| 4 |
-
# ملاحظة: تأكد من أن هذه النماذج متاحة ولديها Inference Endpoint نشط
|
| 5 |
MODEL_MAP = {
|
| 6 |
"Analyst": "Qwen/Qwen3-Next-80B-A3B-Instruct",
|
| 7 |
-
"StyleGuardian": "
|
| 8 |
"Architect": "deepseek-ai/DeepSeek-V3.2-Exp",
|
| 9 |
"DraftWriter": "deepcogito/cogito-v2-preview-llama-405B",
|
| 10 |
"Humanizer": "deepcogito/cogito-671b-v2.1",
|
| 11 |
"ContinuityGuard": "meta-llama/Llama-3.3-70B-Instruct",
|
| 12 |
"Psychologist": "zai-org/GLM-4.7-FP8",
|
| 13 |
"Critic": "Qwen/Qwen3-235B-A22B-Thinking-2507",
|
| 14 |
-
"Editor": "
|
| 15 |
}
|
| 16 |
|
| 17 |
def get_llm_config(model_id, user_token):
|
| 18 |
-
"""
|
| 19 |
-
إنشاء إعدادات النموذج لربطه بـ HF Inference API باستخدام توكن المستخدم
|
| 20 |
-
"""
|
| 21 |
return {
|
| 22 |
"config_list": [
|
| 23 |
{
|
| 24 |
"model": model_id,
|
| 25 |
"api_key": user_token,
|
| 26 |
-
# نستخدم نقطة النهاية المتوافقة مع OpenAI في Hugging Face
|
| 27 |
"base_url": f"https://api-inference.huggingface.co/models/{model_id}/v1",
|
| 28 |
"api_type": "openai",
|
| 29 |
}
|
| 30 |
],
|
| 31 |
"temperature": 0.7,
|
| 32 |
-
"timeout":
|
| 33 |
}
|
| 34 |
|
| 35 |
-
|
| 36 |
-
"""
|
| 37 |
-
إنشاء جميع الوكلاء وتجهيزهم للعمل
|
| 38 |
-
"""
|
| 39 |
-
|
| 40 |
-
# 1. القارئ الصامت / Analyst
|
| 41 |
-
analyst = autogen.AssistantAgent(
|
| 42 |
-
name="Analyst",
|
| 43 |
-
system_message="أنت 'القارئ الصامت'. مهمتك تحليل النص الأصلي بدقة، استخراج سياق الرواية، الشخصيات، والأحداث السابقة. لا تكتب أحداثاً جديدة، فقط حلل ما هو موجود.",
|
| 44 |
-
llm_config=get_llm_config(MODEL_MAP["Analyst"], user_token)
|
| 45 |
-
)
|
| 46 |
-
|
| 47 |
-
# 2. حارس الصوت / Style Guardian
|
| 48 |
-
style_guardian = autogen.AssistantAgent(
|
| 49 |
-
name="Style_Guardian",
|
| 50 |
-
system_message="أنت 'حارس الصوت'. مهمتك الحفاظ على أسلوب الكاتب الأصلي. تأكد من أن أي نص جديد يطابق النغمة، المفردات، والإيقاع للنص الأصلي.",
|
| 51 |
-
llm_config=get_llm_config(MODEL_MAP["StyleGuardian"], user_token)
|
| 52 |
-
)
|
| 53 |
-
|
| 54 |
-
# 3. المهندس السردي / Completion Architect
|
| 55 |
-
architect = autogen.AssistantAgent(
|
| 56 |
-
name="Architect",
|
| 57 |
-
system_message="أنت 'المهندس السردي'. بناءً على التحليل، اقترح مسارات للحبكة وخطوات القصة القادمة. أنت تخطط ولا تكتب النص الكامل.",
|
| 58 |
-
llm_config=get_llm_config(MODEL_MAP["Architect"], user_token)
|
| 59 |
-
)
|
| 60 |
-
|
| 61 |
-
# 4. كاتب الإكمال / Draft Writer
|
| 62 |
-
draft_writer = autogen.AssistantAgent(
|
| 63 |
-
name="Draft_Writer",
|
| 64 |
-
system_message="أنت 'كاتب الإكمال'. مهمتك كتابة الأجزاء المفقودة أو الفصول القادمة بناءً على مخطط المهندس وتوجيهات حارس الأسلوب.",
|
| 65 |
-
llm_config=get_llm_config(MODEL_MAP["DraftWriter"], user_token)
|
| 66 |
-
)
|
| 67 |
-
|
| 68 |
-
# 5. مُضفِي الطابع البشري / Humanizer
|
| 69 |
-
humanizer = autogen.AssistantAgent(
|
| 70 |
-
name="Humanizer",
|
| 71 |
-
system_message="أنت 'مُضفِي الطابع البشري'. أضف الروح للنص، اجعل الحوارات طبيعية، وعمق المشاعر. اجعل النص ينبض بالحياة.",
|
| 72 |
-
llm_config=get_llm_config(MODEL_MAP["Humanizer"], user_token)
|
| 73 |
-
)
|
| 74 |
-
|
| 75 |
-
# 6. حارس الاستمرارية / Continuity Guard
|
| 76 |
-
continuity_guard = autogen.AssistantAgent(
|
| 77 |
-
name="Continuity_Guard",
|
| 78 |
-
system_message="أنت 'حارس الاستمرارية'. راجع النص للتأكد من عدم وجود تناقضات زمنية أو مكانية مع الأحداث السابقة.",
|
| 79 |
-
llm_config=get_llm_config(MODEL_MAP["ContinuityGuard"], user_token)
|
| 80 |
-
)
|
| 81 |
-
|
| 82 |
-
# 7. المدقق النفسي / Psychologist
|
| 83 |
-
psychologist = autogen.AssistantAgent(
|
| 84 |
-
name="Psychologist",
|
| 85 |
-
system_message="أنت 'المدقق النفسي'. حلل تصرفات الشخصيات. هل هي منطقية نفسياً؟ هل دوافعهم واضحة؟ اقترح تعديلات للسلوك.",
|
| 86 |
-
llm_config=get_llm_config(MODEL_MAP["Psychologist"], user_token)
|
| 87 |
-
)
|
| 88 |
-
|
| 89 |
-
# 8. الناقد القاسي / Ruthless Critic
|
| 90 |
-
critic = autogen.AssistantAgent(
|
| 91 |
-
name="Critic",
|
| 92 |
-
system_message="أنت 'الناقد القاسي'. لا تجامل. انقد المسودة النهائية، حدد نقاط الضعف في الحبكة أو اللغة واطلب تحسينها.",
|
| 93 |
-
llm_config=get_llm_config(MODEL_MAP["Critic"], user_token)
|
| 94 |
-
)
|
| 95 |
-
|
| 96 |
-
# 9. Editor-in-Chief (النموذج المركزي)
|
| 97 |
-
# هو المدير الذي يدير الحوار بين الجميع
|
| 98 |
-
editor = autogen.UserProxyAgent(
|
| 99 |
-
name="Editor_in_Chief",
|
| 100 |
-
human_input_mode="NEVER",
|
| 101 |
-
max_consecutive_auto_reply=10,
|
| 102 |
-
code_execution_config=False,
|
| 103 |
-
system_message="أنت رئيس التحرير. دورك تنسيق العمل بين الوكلاء. ابدأ بطلب التحليل، ثم التخطيط، ثم الكتابة، ثم المراجعة. أصدر الحكم النهائي وادمج النص.",
|
| 104 |
-
# ملاحظة: في AutoGen، الـ UserProxy عادة لا يحتاج LLM إلا إذا أردناه أن يتصرف كمدير ذكي
|
| 105 |
-
# هنا سنعطيه قوة النموذج ليكون ذكياً في الإدارة
|
| 106 |
-
llm_config=get_llm_config(MODEL_MAP["Editor"], user_token)
|
| 107 |
-
)
|
| 108 |
-
|
| 109 |
-
return {
|
| 110 |
-
"analyst": analyst,
|
| 111 |
-
"style_guardian": style_guardian,
|
| 112 |
-
"architect": architect,
|
| 113 |
-
"draft_writer": draft_writer,
|
| 114 |
-
"humanizer": humanizer,
|
| 115 |
-
"continuity_guard": continuity_guard,
|
| 116 |
-
"psychologist": psychologist,
|
| 117 |
-
"critic": critic,
|
| 118 |
-
"editor": editor
|
| 119 |
-
}
|
| 120 |
-
|
|
|
|
| 1 |
import autogen
|
| 2 |
|
| 3 |
+
# القائمة المحدثة بالأسماء الدقيقة التي طلبتها
|
|
|
|
| 4 |
MODEL_MAP = {
|
| 5 |
"Analyst": "Qwen/Qwen3-Next-80B-A3B-Instruct",
|
| 6 |
+
"StyleGuardian": "openai/gpt-oss-120b", # تم التغيير هنا
|
| 7 |
"Architect": "deepseek-ai/DeepSeek-V3.2-Exp",
|
| 8 |
"DraftWriter": "deepcogito/cogito-v2-preview-llama-405B",
|
| 9 |
"Humanizer": "deepcogito/cogito-671b-v2.1",
|
| 10 |
"ContinuityGuard": "meta-llama/Llama-3.3-70B-Instruct",
|
| 11 |
"Psychologist": "zai-org/GLM-4.7-FP8",
|
| 12 |
"Critic": "Qwen/Qwen3-235B-A22B-Thinking-2507",
|
| 13 |
+
"Editor": "InclusionAI/Ling-1T" # تم التغيير هنا (I كبيرة)
|
| 14 |
}
|
| 15 |
|
| 16 |
def get_llm_config(model_id, user_token):
|
|
|
|
|
|
|
|
|
|
| 17 |
return {
|
| 18 |
"config_list": [
|
| 19 |
{
|
| 20 |
"model": model_id,
|
| 21 |
"api_key": user_token,
|
|
|
|
| 22 |
"base_url": f"https://api-inference.huggingface.co/models/{model_id}/v1",
|
| 23 |
"api_type": "openai",
|
| 24 |
}
|
| 25 |
],
|
| 26 |
"temperature": 0.7,
|
| 27 |
+
"timeout": 300, # زيادة المهلة للنماذج الضخمة
|
| 28 |
}
|
| 29 |
|
| 30 |
+
# (بقية الكود الخاص بـ create_agents كما هو في الرد السابق)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|