File size: 1,836 Bytes
4ecdaad
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
def get_agents(design_states):
    final_agents = {}
    role = design_states[0]["role"]
    style = design_states[0]["style"]
    agent_name = "_".join(role.split(" "))
    final_agents[agent_name] = {"style":style,"roles":{}}
    final_agents["User"] = {"style":"","roles":{}}
    for design_state in design_states:
        final_agents[agent_name]["roles"][design_state["state_name"]] = agent_name
        final_agents["User"]["roles"][design_state["state_name"]] = "User"
    return final_agents

def get_relations(design_states):
    relations = {}
    n = len(design_states)
    for i in range(n):
        relations[design_states[i]["state_name"]] = {}
        relations[design_states[i]["state_name"]]["0"] = design_states[i]["state_name"]
        relations[design_states[i]["state_name"]]["1"] = design_states[i+1]["state_name"]  if i!=n-1 else "end_state"
    return relations


def gen_states(design_states):
    states = {"end_state":{
            "agent_states":{}
        }}
    for design_state in design_states:
        state_name = design_state["state_name"]
        role = design_state["role"]
        agent_name = "_".join(role.split(" "))
        states[state_name] = {"controller":{"controller_type": "order", "max_chat_nums" : 1000,"judge_system_prompt":design_state["judge"],"judge_last_prompt":"Please contact the above to extract <end> and </end>. Do not perform additional output. Please strictly follow the above format for output! Remember, please strictly follow the above format for output!"}}
        states[state_name]["agent_states"] = {
            agent_name : {
                "role" : {"role" : role},
                "task" : {"task" : design_state["task"]},
                "rule" : {"rule" : design_state["rule"]}
            },
            "User" : {
            }
        }

    return states