mirror of
https://github.com/microsoft/autogen.git
synced 2026-04-20 03:02:16 -04:00
add autogen.initiate_chats (#1638)
* add initiate_chats * update notebook * different user * add notebook * add link to website * update notebook title * remove redundancy * notebook * return list * tag * update notebook * update notebook * return finished tasks --------- Co-authored-by: Chi Wang <wang.chi@microsoft.com>
This commit is contained in:
@@ -6,6 +6,7 @@ from conftest import skip_openai
|
||||
import autogen
|
||||
from typing import Literal
|
||||
from typing_extensions import Annotated
|
||||
from autogen import initiate_chats
|
||||
|
||||
|
||||
def test_chat_messages_for_summary():
|
||||
@@ -129,14 +130,14 @@ def test_chats_group():
|
||||
]
|
||||
)
|
||||
|
||||
chat_w_manager = chat_res[manager_2]
|
||||
chat_w_manager = chat_res[-1]
|
||||
print(chat_w_manager.chat_history, chat_w_manager.summary, chat_w_manager.cost)
|
||||
|
||||
manager_2_res = user.get_chat_results(manager_2)
|
||||
manager_2_res = user.get_chat_results(-1)
|
||||
all_res = user.get_chat_results()
|
||||
print(manager_2_res.summary, manager_2_res.cost)
|
||||
print(all_res[financial_assistant].human_input)
|
||||
print(all_res[manager_1].summary)
|
||||
print(all_res[0].human_input)
|
||||
print(all_res[1].summary)
|
||||
|
||||
|
||||
@pytest.mark.skipif(skip_openai, reason="requested to skip openai tests")
|
||||
@@ -217,16 +218,120 @@ def test_chats():
|
||||
]
|
||||
)
|
||||
|
||||
chat_w_writer = chat_res[writer]
|
||||
chat_w_writer = chat_res[-1]
|
||||
print(chat_w_writer.chat_history, chat_w_writer.summary, chat_w_writer.cost)
|
||||
|
||||
writer_res = user.get_chat_results(writer)
|
||||
writer_res = user.get_chat_results(-1)
|
||||
all_res = user.get_chat_results()
|
||||
print(writer_res.summary, writer_res.cost)
|
||||
print(all_res[financial_assistant_1].human_input)
|
||||
print(all_res[financial_assistant_1].summary)
|
||||
print(all_res[financial_assistant_1].chat_history)
|
||||
print(all_res[financial_assistant_2].summary)
|
||||
print(all_res[0].human_input)
|
||||
print(all_res[0].summary)
|
||||
print(all_res[0].chat_history)
|
||||
print(all_res[1].summary)
|
||||
# print(blogpost.summary, insights_and_blogpost)
|
||||
|
||||
|
||||
@pytest.mark.skipif(skip_openai, reason="requested to skip openai tests")
|
||||
def test_chats_general():
|
||||
config_list = autogen.config_list_from_json(
|
||||
OAI_CONFIG_LIST,
|
||||
file_location=KEY_LOC,
|
||||
)
|
||||
|
||||
financial_tasks = [
|
||||
"""What are the full names of NVDA and TESLA.""",
|
||||
"""Get their stock price.""",
|
||||
"""Analyze pros and cons. Keep it short.""",
|
||||
]
|
||||
|
||||
writing_tasks = ["""Develop a short but engaging blog post using any information provided."""]
|
||||
|
||||
financial_assistant_1 = AssistantAgent(
|
||||
name="Financial_assistant_1",
|
||||
llm_config={"config_list": config_list},
|
||||
)
|
||||
financial_assistant_2 = AssistantAgent(
|
||||
name="Financial_assistant_2",
|
||||
llm_config={"config_list": config_list},
|
||||
)
|
||||
writer = AssistantAgent(
|
||||
name="Writer",
|
||||
llm_config={"config_list": config_list},
|
||||
is_termination_msg=lambda x: x.get("content", "").find("TERMINATE") >= 0,
|
||||
system_message="""
|
||||
You are a professional writer, known for
|
||||
your insightful and engaging articles.
|
||||
You transform complex concepts into compelling narratives.
|
||||
Reply "TERMINATE" in the end when everything is done.
|
||||
""",
|
||||
)
|
||||
|
||||
user = UserProxyAgent(
|
||||
name="User",
|
||||
human_input_mode="NEVER",
|
||||
is_termination_msg=lambda x: x.get("content", "").find("TERMINATE") >= 0,
|
||||
code_execution_config={
|
||||
"last_n_messages": 1,
|
||||
"work_dir": "tasks",
|
||||
"use_docker": False,
|
||||
}, # Please set use_docker=True if docker is available to run the generated code. Using docker is safer than running the generated code directly.
|
||||
)
|
||||
|
||||
user_2 = UserProxyAgent(
|
||||
name="User",
|
||||
human_input_mode="NEVER",
|
||||
is_termination_msg=lambda x: x.get("content", "").find("TERMINATE") >= 0,
|
||||
max_consecutive_auto_reply=3,
|
||||
code_execution_config={
|
||||
"last_n_messages": 1,
|
||||
"work_dir": "tasks",
|
||||
"use_docker": False,
|
||||
}, # Please set use_docker=True if docker is available to run the generated code. Using docker is safer than running the generated code directly.
|
||||
)
|
||||
|
||||
def my_summary_method(recipient, sender):
|
||||
return recipient.chat_messages[sender][0].get("content", "")
|
||||
|
||||
chat_res = initiate_chats(
|
||||
[
|
||||
{
|
||||
"sender": user,
|
||||
"recipient": financial_assistant_1,
|
||||
"message": financial_tasks[0],
|
||||
"silent": False,
|
||||
"summary_method": my_summary_method,
|
||||
},
|
||||
{
|
||||
"sender": user_2,
|
||||
"recipient": financial_assistant_2,
|
||||
"message": financial_tasks[1],
|
||||
"silent": True,
|
||||
"summary_method": "reflection_with_llm",
|
||||
},
|
||||
{
|
||||
"sender": user,
|
||||
"recipient": financial_assistant_1,
|
||||
"message": financial_tasks[2],
|
||||
"summary_method": "last_msg",
|
||||
"clear_history": False,
|
||||
},
|
||||
{
|
||||
"sender": user,
|
||||
"recipient": writer,
|
||||
"message": writing_tasks[0],
|
||||
"carryover": "I want to include a figure or a table of data in the blogpost.",
|
||||
"summary_method": "last_msg",
|
||||
},
|
||||
]
|
||||
)
|
||||
|
||||
chat_w_writer = chat_res[-1]
|
||||
print(chat_w_writer.chat_history, chat_w_writer.summary, chat_w_writer.cost)
|
||||
|
||||
print(chat_res[0].human_input)
|
||||
print(chat_res[0].summary)
|
||||
print(chat_res[0].chat_history)
|
||||
print(chat_res[1].summary)
|
||||
# print(blogpost.summary, insights_and_blogpost)
|
||||
|
||||
|
||||
@@ -379,7 +484,8 @@ def test_chats_w_func():
|
||||
|
||||
if __name__ == "__main__":
|
||||
test_chats()
|
||||
# test_chats_exceptions()
|
||||
# test_chats_group()
|
||||
# test_chats_w_func()
|
||||
test_chats_general()
|
||||
test_chats_exceptions()
|
||||
test_chats_group()
|
||||
test_chats_w_func()
|
||||
# test_chat_messages_for_summary()
|
||||
|
||||
Reference in New Issue
Block a user