mirror of https://github.com/microsoft/autogen.git
120 lines
4.1 KiB
Python
120 lines
4.1 KiB
Python
import pytest
|
|
import autogen
|
|
|
|
|
|
def test_func_call_groupchat():
|
|
agent1 = autogen.ConversableAgent(
|
|
"alice",
|
|
human_input_mode="NEVER",
|
|
llm_config=False,
|
|
default_auto_reply="This is alice sepaking.",
|
|
)
|
|
agent2 = autogen.ConversableAgent(
|
|
"bob",
|
|
human_input_mode="NEVER",
|
|
llm_config=False,
|
|
default_auto_reply="This is bob speaking.",
|
|
function_map={"test_func": lambda x: x},
|
|
)
|
|
groupchat = autogen.GroupChat(agents=[agent1, agent2], messages=[], max_round=3)
|
|
group_chat_manager = autogen.GroupChatManager(groupchat=groupchat, llm_config=False)
|
|
agent2.initiate_chat(group_chat_manager, message={"function_call": {"name": "test_func", "arguments": '{"x": 1}'}})
|
|
|
|
assert len(groupchat.messages) == 3
|
|
assert (
|
|
groupchat.messages[-2]["role"] == "function"
|
|
and groupchat.messages[-2]["name"] == "test_func"
|
|
and groupchat.messages[-2]["content"] == "1"
|
|
)
|
|
assert groupchat.messages[-1]["name"] == "alice"
|
|
|
|
agent3 = autogen.ConversableAgent(
|
|
"carol",
|
|
human_input_mode="NEVER",
|
|
llm_config=False,
|
|
default_auto_reply="This is carol speaking.",
|
|
function_map={"test_func": lambda x: x + 1},
|
|
)
|
|
groupchat = autogen.GroupChat(agents=[agent1, agent2, agent3], messages=[], max_round=3)
|
|
group_chat_manager = autogen.GroupChatManager(groupchat=groupchat, llm_config=False)
|
|
agent3.initiate_chat(group_chat_manager, message={"function_call": {"name": "test_func", "arguments": '{"x": 1}'}})
|
|
|
|
assert (
|
|
groupchat.messages[-2]["role"] == "function"
|
|
and groupchat.messages[-2]["name"] == "test_func"
|
|
and groupchat.messages[-2]["content"] == "1"
|
|
)
|
|
assert groupchat.messages[-1]["name"] == "carol"
|
|
|
|
agent2.initiate_chat(group_chat_manager, message={"function_call": {"name": "func", "arguments": '{"x": 1}'}})
|
|
|
|
|
|
def test_chat_manager():
|
|
agent1 = autogen.ConversableAgent(
|
|
"alice",
|
|
max_consecutive_auto_reply=2,
|
|
human_input_mode="NEVER",
|
|
llm_config=False,
|
|
default_auto_reply="This is alice sepaking.",
|
|
)
|
|
agent2 = autogen.ConversableAgent(
|
|
"bob",
|
|
max_consecutive_auto_reply=2,
|
|
human_input_mode="NEVER",
|
|
llm_config=False,
|
|
default_auto_reply="This is bob speaking.",
|
|
)
|
|
groupchat = autogen.GroupChat(agents=[agent1, agent2], messages=[], max_round=2)
|
|
group_chat_manager = autogen.GroupChatManager(groupchat=groupchat, llm_config=False)
|
|
agent1.initiate_chat(group_chat_manager, message="hello")
|
|
|
|
assert len(agent1.chat_messages[group_chat_manager]) == 2
|
|
assert len(groupchat.messages) == 2
|
|
|
|
group_chat_manager.reset()
|
|
assert len(groupchat.messages) == 0
|
|
agent1.reset()
|
|
agent2.reset()
|
|
agent2.initiate_chat(group_chat_manager, message="hello")
|
|
assert len(groupchat.messages) == 2
|
|
|
|
with pytest.raises(ValueError):
|
|
agent2.initiate_chat(group_chat_manager, message={"function_call": {"name": "func", "arguments": '{"x": 1}'}})
|
|
|
|
|
|
def test_plugin():
|
|
# Give another Agent class ability to manage group chat
|
|
agent1 = autogen.ConversableAgent(
|
|
"alice",
|
|
max_consecutive_auto_reply=2,
|
|
human_input_mode="NEVER",
|
|
llm_config=False,
|
|
default_auto_reply="This is alice sepaking.",
|
|
)
|
|
agent2 = autogen.ConversableAgent(
|
|
"bob",
|
|
max_consecutive_auto_reply=2,
|
|
human_input_mode="NEVER",
|
|
llm_config=False,
|
|
default_auto_reply="This is bob speaking.",
|
|
)
|
|
groupchat = autogen.GroupChat(agents=[agent1, agent2], messages=[], max_round=2)
|
|
group_chat_manager = autogen.ConversableAgent(name="deputy_manager", llm_config=False)
|
|
group_chat_manager.register_reply(
|
|
autogen.Agent,
|
|
reply_func=autogen.GroupChatManager.run_chat,
|
|
config=groupchat,
|
|
reset_config=autogen.GroupChat.reset,
|
|
)
|
|
agent1.initiate_chat(group_chat_manager, message="hello")
|
|
|
|
assert len(agent1.chat_messages[group_chat_manager]) == 2
|
|
assert len(groupchat.messages) == 2
|
|
|
|
|
|
if __name__ == "__main__":
|
|
test_func_call_groupchat()
|
|
# test_broadcast()
|
|
test_chat_manager()
|
|
# test_plugin()
|