File size: 2,752 Bytes
9b3b874
 
a11de4b
9b3b874
a11de4b
 
 
 
 
 
 
 
 
9b3b874
 
 
 
 
 
 
 
c1e79ed
 
9b3b874
 
 
2cd4955
9b3b874
 
2cd4955
a11de4b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2cd4955
a11de4b
 
2cd4955
a11de4b
c1e79ed
2cd4955
 
a11de4b
2cd4955
 
a11de4b
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
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):
    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 create_asst(name, msg, model_key):
        return autogen.AssistantAgent(
            name=name,
            system_message=msg,
            llm_config=get_llm_config(MODEL_MAP[model_key], user_token)
        )

    agents = {
        "analyst": create_asst("Analyst", "أنت المحلل البنيوي للنص.", "Analyst"),
        "style_guardian": create_asst("Style_Guardian", "أنت حارس الأسلوب الأدبي.", "StyleGuardian"),
        "architect": create_asst("Architect", "أنت مهندس الحبكة السردية.", "Architect"),
        "draft_writer": create_asst("Draft_Writer", "أنت كاتب المسودة الأولية.", "DraftWriter"),
        "humanizer": create_asst("Humanizer", "أنت خبير الأنسنة والتفاصيل الحسية.", "Humanizer"),
        "continuity_guard": create_asst("Continuity_Guard", "أنت مراقب الاستمرارية ومنطق الأحداث.", "ContinuityGuard"),
        "psychologist": create_asst("Psychologist", "أنت محلل الدوافع النفسية للشخصيات.", "Psychologist"),
        "critic": create_asst("Critic", "أنت الناقد الأدبي الصارم.", "Critic"),
    }

    # رئيس التحرير بوضع NEVER للعمل مع واجهة الويب
    agents["editor"] = autogen.UserProxyAgent(
        name="Editor_In_Chief",
        human_input_mode="NEVER",
        max_consecutive_auto_reply=15,
        code_execution_config=False,
        llm_config=get_llm_config(MODEL_MAP["Editor"], user_token),
        system_message="أنت رئيس التحرير المسؤول عن دمج كل مساهمات الوكلاء في نص روائي واحد متكامل."
    )

    return agents