mirror of
https://github.com/microsoft/autogen.git
synced 2026-04-20 03:02:16 -04:00
function call filter in group chat (#294)
* function call filter in group chat * find agents with function_map
This commit is contained in:
@@ -1,6 +1,54 @@
|
||||
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",
|
||||
@@ -30,6 +78,9 @@ def test_chat_manager():
|
||||
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
|
||||
@@ -62,6 +113,7 @@ def test_plugin():
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
test_func_call_groupchat()
|
||||
# test_broadcast()
|
||||
# test_chat_manager()
|
||||
test_plugin()
|
||||
test_chat_manager()
|
||||
# test_plugin()
|
||||
|
||||
Reference in New Issue
Block a user