|
- import os
- import sys
-
- import pytest
-
- import autogen
- from autogen import AssistantAgent, UserProxyAgent
- from autogen.agentchat.contrib.agent_optimizer import AgentOptimizer
-
- sys.path.append(os.path.join(os.path.dirname(__file__), ".."))
- sys.path.append(os.path.join(os.path.dirname(__file__), "../.."))
- from conftest import reason, skip_openai
- from test_assistant_agent import KEY_LOC, OAI_CONFIG_LIST
-
- here = os.path.abspath(os.path.dirname(__file__))
-
-
- @pytest.mark.skipif(
- skip_openai,
- reason=reason,
- )
- def test_record_conversation():
- problem = "Simplify $\\sqrt[3]{1+8} \\cdot \\sqrt[3]{1+\\sqrt[3]{8}}"
-
- config_list = autogen.config_list_from_json(
- OAI_CONFIG_LIST,
- file_location=KEY_LOC,
- )
- llm_config = {
- "config_list": config_list,
- "timeout": 60,
- "cache_seed": 42,
- }
-
- assistant = AssistantAgent("assistant", system_message="You are a helpful assistant.", llm_config=llm_config)
- user_proxy = UserProxyAgent(
- name="user_proxy",
- human_input_mode="NEVER",
- code_execution_config={
- "work_dir": f"{here}/test_agent_scripts",
- "use_docker": "python:3",
- "timeout": 60,
- },
- max_consecutive_auto_reply=3,
- )
-
- user_proxy.initiate_chat(assistant, message=problem)
- optimizer = AgentOptimizer(max_actions_per_step=3, llm_config=llm_config)
- optimizer.record_one_conversation(assistant.chat_messages_for_summary(user_proxy), is_satisfied=True)
-
- assert len(optimizer._trial_conversations_history) == 1
- assert len(optimizer._trial_conversations_performance) == 1
- assert optimizer._trial_conversations_performance[0]["Conversation 0"] == 1
-
- optimizer.reset_optimizer()
- assert len(optimizer._trial_conversations_history) == 0
- assert len(optimizer._trial_conversations_performance) == 0
-
-
- @pytest.mark.skipif(
- skip_openai,
- reason=reason,
- )
- def test_step():
- problem = "Simplify $\\sqrt[3]{1+8} \\cdot \\sqrt[3]{1+\\sqrt[3]{8}}"
-
- config_list = autogen.config_list_from_json(
- OAI_CONFIG_LIST,
- file_location=KEY_LOC,
- )
- llm_config = {
- "config_list": config_list,
- "timeout": 60,
- "cache_seed": 42,
- }
- assistant = AssistantAgent(
- "assistant",
- system_message="You are a helpful assistant.",
- llm_config=llm_config,
- )
- user_proxy = UserProxyAgent(
- name="user_proxy",
- human_input_mode="NEVER",
- code_execution_config={
- "work_dir": f"{here}/test_agent_scripts",
- "use_docker": "python:3",
- "timeout": 60,
- },
- max_consecutive_auto_reply=3,
- )
-
- optimizer = AgentOptimizer(max_actions_per_step=3, llm_config=llm_config)
- user_proxy.initiate_chat(assistant, message=problem)
- optimizer.record_one_conversation(assistant.chat_messages_for_summary(user_proxy), is_satisfied=True)
-
- register_for_llm, register_for_exector = optimizer.step()
-
- print("-------------------------------------")
- print("register_for_llm:")
- print(register_for_llm)
- print("register_for_exector")
- print(register_for_exector)
-
- for item in register_for_llm:
- assistant.update_function_signature(**item)
- if len(register_for_exector.keys()) > 0:
- user_proxy.register_function(function_map=register_for_exector)
-
- print("-------------------------------------")
- print("Updated assistant.llm_config:")
- print(assistant.llm_config)
- print("Updated user_proxy._function_map:")
- print(user_proxy._function_map)
|