From aa54608e8002a0cc71f13185345cc3e5aea3f406 Mon Sep 17 00:00:00 2001 From: JetSquirrel Date: Sat, 7 Oct 2023 16:01:59 +0000 Subject: [PATCH 001/101] feat: add azure openai --- README.md | 17 +++++++++++------ README_zh.md | 5 +++++ agentverse/llms/openai.py | 35 +++++++++++++++++++++++------------ 3 files changed, 39 insertions(+), 18 deletions(-) diff --git a/README.md b/README.md index eba2cfe39..2f915af94 100644 --- a/README.md +++ b/README.md @@ -22,7 +22,7 @@ **AgentVerse** offers a versatile framework that streamlines the process of creating custom multi-agent environments for large language models (LLMs). Designed to facilitate swift development and customization with minimal effort, our framework empowers researchers to concentrate on their research, rather than being bogged down by implementation details. -⚠️⚠️⚠️ We're presently in the process of refactoring our code to offer you the flexibility to construct both simulation environments (without a predefined goal) and task-solving environments (with a specific goal). Please note that our README is currently outdated, we will update it very soon. If you require a stable version of our code that exclusively supports simulation environments, you can find it in our [`release-1.0`](https://github.com/OpenBMB/AgentVerse/tree/release-1.0) branch. +⚠️⚠️⚠️ We're refactoring the code in process, and goal is provid a flexibility to construct simulation(without a predefined goal) and task-solving(with a specific goal) environments. Please note that README is outdated, we will update it soon. If you require a stable version code that exclusively supports simulation environments, you can using [`release-1.0`](https://github.com/OpenBMB/AgentVerse/tree/release-1.0) branch. --- @@ -79,7 +79,7 @@ In the NLP class, the professor and students engage in interactive communication Use the following command to launch the NLP Classroom example: ```bash -python main_demo.py --task nlp_classroom_9players +python main_simulation_gui.py --task nlp_classroom_9players ``` https://github.com/OpenBMB/AgentVerse/assets/11704492/6ea07850-595e-4a28-a82e-f863011353c2 @@ -90,7 +90,7 @@ A prisoner's Dilemma is a thought experiment that challenges two completely rati Use the following command to launch the Prisoner Dilemma example: ```bash -python main_demo.py --task prisoner_dilemma +python main_simulation_cli.py --task prisoner_dilemma ``` https://github.com/OpenBMB/AgentVerse/assets/11704492/017c46e5-c738-4fca-9352-b008e2d518bd @@ -112,7 +112,7 @@ https://github.com/OpenBMB/AgentVerse/assets/11704492/5058066a-abee-490d-8659-b4 In the database diagnosis scenario, the Chief DBA monitors the system anomalies (e.g., slow queries, locks, crash down). If detected, the domain experts are alerted to analyze root causes, share insights, and suggest optimization solutions together. The Chief DBA then provides a summarized report to the user. ```bash -python main_demo.py --task db_diag +python main_simulation_gui.py --task db_diag ``` https://github.com/OpenBMB/AgentVerse/assets/11704492/c633419d-afbb-47d4-bb12-6bb512e7af3a @@ -195,11 +195,16 @@ pip install -r requirements.txt ``` Some users have reported problems installing the `orjson` required by `gradio`. One simple workaround is to install it with Anaconda `conda install -c conda-forge orjson`. -You also need to export your OpenAI API key as follows +You also need to export your OpenAI API key as follows: ```bash # Export your OpenAI API key export OPENAI_API_KEY="your_api_key_here" ``` +If you want use Azure OpenAI services, pleas export your Azure OpenAI key and OpenAI API base as follows: +```bash +export AZURE_OPENAI_API_KEY="your_api_key_here" +export AZURE_OPENAI_API_BASE="your_api_base_here" +``` If you want to use the tools provided by BMTools, you need to install BMTools as follows: ```bash @@ -231,7 +236,7 @@ python3 main.py --task nlp_classroom_9players We also provide a local website demo for this environment. You can launch it with ```shell -python3 main_demo.py --task nlp_classroom_9players +python3 main_simulation_gui.py --task nlp_classroom_9players ``` After successfully launching the local server, you can visit [http://127.0.0.1:7860/](http://127.0.0.1:7860/) to view the classroom environment. diff --git a/README_zh.md b/README_zh.md index 4de51148c..988dacaf5 100644 --- a/README_zh.md +++ b/README_zh.md @@ -198,6 +198,11 @@ pip install -r requirements.txt # 导出你的OpenAI API密钥 export OPENAI_API_KEY="your_api_key_here" ``` +或者您想使用 Azure OpenAI 服务,请按照以下方式配置 OpenAI API 密钥和 API base: +```bash +export AZURE_OPENAI_API_KEY="your_api_key_here" +export AZURE_OPENAI_API_BASE="your_api_base_here" +``` 如果您想使用BMTools提供的工具,您需要按如下方式安装BMTools: ```bash diff --git a/agentverse/llms/openai.py b/agentverse/llms/openai.py index d7ea57a78..cdf72d99b 100644 --- a/agentverse/llms/openai.py +++ b/agentverse/llms/openai.py @@ -24,21 +24,27 @@ is_openai_available = False logging.warning("openai package is not installed") else: - openai.api_key = os.environ.get("OPENAI_API_KEY") # openai.proxy = os.environ.get("http_proxy") # if openai.proxy is None: # openai.proxy = os.environ.get("HTTP_PROXY") - if openai.api_key is None: + if os.environ.get("OPENAI_API_KEY")!=None: + openai.api_key = os.environ.get("OPENAI_API_KEY") + is_openai_available = True + elif os.environ.get("AZURE_OPENAI_API_KEY")!=None: + openai.api_type = "azure" + openai.api_key = os.environ.get("AZURE_OPENAI_API_KEY") + openai.api_base = os.environ.get("AZURE_OPENAI_API_BASE") + openai.api_version = "2023-05-15" + is_openai_available = True + else: logging.warning( "OpenAI API key is not set. Please set the environment variable OPENAI_API_KEY" ) - is_openai_available = False - else: - is_openai_available = True - + is_openai_available = False class OpenAIChatArgs(BaseModelArgs): model: str = Field(default="gpt-3.5-turbo") + deployment_id: str = Field(default="gpt-35-turbo") max_tokens: int = Field(default=2048) temperature: float = Field(default=1.0) top_p: int = Field(default=1) @@ -86,7 +92,7 @@ class OpenAIChatArgs(BaseModelArgs): # ) -@llm_registry.register("gpt-3.5-turbo") +@llm_registry.register("gpt-35-turbo") @llm_registry.register("gpt-4") class OpenAIChat(BaseChatModel): args: OpenAIChatArgs = Field(default_factory=OpenAIChatArgs) @@ -94,7 +100,7 @@ class OpenAIChat(BaseChatModel): def __init__(self, max_retry: int = 3, **kwargs): args = OpenAIChatArgs() args = args.dict() - + for k, v in args.items(): args[k] = kwargs.pop(k, v) if len(kwargs) > 0: @@ -121,7 +127,7 @@ def generate_response( try: # Execute function call - if functions != []: + if functions != []: response = openai.ChatCompletion.create( messages=messages, functions=functions, @@ -283,9 +289,14 @@ def construct_messages( def get_embedding(text: str, attempts=3) -> np.array: try: text = text.replace("\n", " ") - embedding = openai.Embedding.create( - input=[text], model="text-embedding-ada-002" - )["data"][0]["embedding"] + if openai.api_type=="azure": + embedding = openai.Embedding.create( + input=[text], deployment_id="text-embedding-ada-002" + )["data"][0]["embedding"] + else: + embedding = openai.Embedding.create( + input=[text], model="text-embedding-ada-002" + )["data"][0]["embedding"] return tuple(embedding) except Exception as e: attempt += 1 From 6045f491fb7c01172752c1ba643611a027b0ef24 Mon Sep 17 00:00:00 2001 From: JetSquirrel Date: Sun, 8 Oct 2023 04:04:35 +0000 Subject: [PATCH 002/101] fix miss register --- agentverse/llms/openai.py | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/agentverse/llms/openai.py b/agentverse/llms/openai.py index cdf72d99b..f523f67ed 100644 --- a/agentverse/llms/openai.py +++ b/agentverse/llms/openai.py @@ -91,8 +91,8 @@ class OpenAIChatArgs(BaseModelArgs): # total_tokens=response["usage"]["total_tokens"], # ) - @llm_registry.register("gpt-35-turbo") +@llm_registry.register("gpt-3.5-turbo") @llm_registry.register("gpt-4") class OpenAIChat(BaseChatModel): args: OpenAIChatArgs = Field(default_factory=OpenAIChatArgs) @@ -100,21 +100,19 @@ class OpenAIChat(BaseChatModel): def __init__(self, max_retry: int = 3, **kwargs): args = OpenAIChatArgs() args = args.dict() - for k, v in args.items(): args[k] = kwargs.pop(k, v) if len(kwargs) > 0: logging.warning(f"Unused arguments: {kwargs}") super().__init__(args=args, max_retry=max_retry) - # def _construct_messages(self, history: List[Message]): # return history + [{"role": "user", "content": query}] - @retry( stop=stop_after_attempt(20), wait=wait_exponential(multiplier=1, min=4, max=10), reraise=True, ) + def generate_response( self, prepend_prompt: str = "", @@ -124,7 +122,6 @@ def generate_response( ) -> LLMResult: messages = self.construct_messages(prepend_prompt, history, append_prompt) logger.log_prompt(messages) - try: # Execute function call if functions != []: From e762c1e2a942d9faacec7b6901abb505838b518a Mon Sep 17 00:00:00 2001 From: Weize Chen <32613237+chenweize1998@users.noreply.github.com> Date: Sun, 8 Oct 2023 12:11:10 +0800 Subject: [PATCH 003/101] Update README.md --- README.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 2f915af94..358a22e6d 100644 --- a/README.md +++ b/README.md @@ -22,7 +22,7 @@ **AgentVerse** offers a versatile framework that streamlines the process of creating custom multi-agent environments for large language models (LLMs). Designed to facilitate swift development and customization with minimal effort, our framework empowers researchers to concentrate on their research, rather than being bogged down by implementation details. -⚠️⚠️⚠️ We're refactoring the code in process, and goal is provid a flexibility to construct simulation(without a predefined goal) and task-solving(with a specific goal) environments. Please note that README is outdated, we will update it soon. If you require a stable version code that exclusively supports simulation environments, you can using [`release-1.0`](https://github.com/OpenBMB/AgentVerse/tree/release-1.0) branch. +⚠️⚠️⚠️ We're refactoring the code, and the goal is to provide a flexibility to construct simulation(without a predefined goal) and task-solving(with a specific goal) environments. Please note that this README is outdated, we will update it soon. If you require a stable version that exclusively supports simulation environments, you can use [`release-1.0`](https://github.com/OpenBMB/AgentVerse/tree/release-1.0) branch. --- @@ -199,7 +199,11 @@ You also need to export your OpenAI API key as follows: ```bash # Export your OpenAI API key export OPENAI_API_KEY="your_api_key_here" +# Or if you are using Azure +export AZURE_OPENAI_API_KEY="your_api_key_here" +export AZURE_OPENAI_API_BASE="your_api_base_here" ``` + If you want use Azure OpenAI services, pleas export your Azure OpenAI key and OpenAI API base as follows: ```bash export AZURE_OPENAI_API_KEY="your_api_key_here" From f717bc0500084537f6f479d13047fc4b8780f4bc Mon Sep 17 00:00:00 2001 From: chenweize1998 Date: Sun, 8 Oct 2023 12:52:14 +0800 Subject: [PATCH 004/101] fix: openai llm default parameter and the missing import of bmtools #46 --- .../environments/simulation_env/sde_team.py | 16 +++++-- .../simulation_env/sde_team_given_tests.py | 2 +- agentverse/initialization.py | 42 +++++++++++-------- agentverse/llms/openai.py | 20 +++++---- 4 files changed, 50 insertions(+), 30 deletions(-) diff --git a/agentverse/environments/simulation_env/sde_team.py b/agentverse/environments/simulation_env/sde_team.py index b34376929..325c1eac0 100644 --- a/agentverse/environments/simulation_env/sde_team.py +++ b/agentverse/environments/simulation_env/sde_team.py @@ -12,7 +12,7 @@ from .. import env_registry as EnvironmentRegistry from ..base import BaseEnvironment -# from agentverse.initialization import load_tools +from agentverse.initialization import load_tools @EnvironmentRegistry.register("sde_team") @@ -56,8 +56,18 @@ def __init__(self, rule, **kwargs): self.rule_params["end_flag"] = False # # Test code - # self.rule_params["name_to_tools"] = {tool.name: tool for tool in load_tools([{"tool_name": "code_interpreter", "tool_url" : "http://127.0.0.1:8079/tools/code_interpreter/"}])} - # tool = self.rule_params["name_to_tools"]["execute_unit_tests"] + self.rule_params["name_to_tools"] = { + tool.name: tool + for tool in load_tools( + [ + { + "tool_name": "code_interpreter", + "tool_url": "http://127.0.0.1:8079/tools/code_interpreter/", + } + ] + ) + } + tool = self.rule_params["name_to_tools"]["execute_unit_tests"] # print(type(tool)) # d = { diff --git a/agentverse/environments/simulation_env/sde_team_given_tests.py b/agentverse/environments/simulation_env/sde_team_given_tests.py index bbc9331f9..fdef4a863 100644 --- a/agentverse/environments/simulation_env/sde_team_given_tests.py +++ b/agentverse/environments/simulation_env/sde_team_given_tests.py @@ -12,7 +12,7 @@ from .. import env_registry as EnvironmentRegistry from ..base import BaseEnvironment -# from agentverse.initialization import load_tools +from agentverse.initialization import load_tools @EnvironmentRegistry.register("sde_team_given_tests") diff --git a/agentverse/initialization.py b/agentverse/initialization.py index d733dc383..cc6e3cd42 100644 --- a/agentverse/initialization.py +++ b/agentverse/initialization.py @@ -5,11 +5,12 @@ import yaml -# try: -# from bmtools.agent.singletool import import_all_apis, load_single_tools -# except: -# print("BMTools is not installed, tools cannot be used. To install BMTools, \ -# please follow the instruction in the README.md file.") +try: + from bmtools.agent.singletool import import_all_apis, load_single_tools +except: + print( + "BMTools is not installed, tools in the simulation environment cannot be used. To install BMTools, please follow the instruction in the README.md file." + ) from agentverse.llms import llm_registry @@ -34,19 +35,24 @@ def load_memory(memory_config: Dict): memory_type = memory_config.pop("memory_type", "chat_history") return memory_registry.build(memory_type, **memory_config) + def load_memory_manipulator(memory_manipulator_config: Dict): - memory_manipulator_type = memory_manipulator_config.pop("memory_manipulator_type", "basic") - return memory_manipulator_registry.build(memory_manipulator_type, **memory_manipulator_config) + memory_manipulator_type = memory_manipulator_config.pop( + "memory_manipulator_type", "basic" + ) + return memory_manipulator_registry.build( + memory_manipulator_type, **memory_manipulator_config + ) -# def load_tools(tool_config: List[Dict]): -# if len(tool_config) == 0: -# return [] -# all_tools_list = [] -# for tool in tool_config: -# _, config = load_single_tools(tool["tool_name"], tool["tool_url"]) -# all_tools_list += import_all_apis(config) -# return all_tools_list +def load_tools(tool_config: List[Dict]): + if len(tool_config) == 0: + return [] + all_tools_list = [] + for tool in tool_config: + _, config = load_single_tools(tool["tool_name"], tool["tool_url"]) + all_tools_list += import_all_apis(config) + return all_tools_list def load_environment(env_config: Dict) -> BaseEnvironment: @@ -93,10 +99,12 @@ def prepare_task_config(task): llm = load_llm(agent_configs.get("llm", "text-davinci-003")) agent_configs["llm"] = llm - memory_manipulator = load_memory_manipulator(agent_configs.get("memory_manipulator", {})) + memory_manipulator = load_memory_manipulator( + agent_configs.get("memory_manipulator", {}) + ) agent_configs["memory_manipulator"] = memory_manipulator - # agent_configs["tools"] = load_tools(agent_configs.get("tools", [])) + agent_configs["tools"] = load_tools(agent_configs.get("tools", [])) # Build the output parser output_parser_config = agent_configs.get("output_parser", {"type": "dummy"}) diff --git a/agentverse/llms/openai.py b/agentverse/llms/openai.py index f523f67ed..22f1bb061 100644 --- a/agentverse/llms/openai.py +++ b/agentverse/llms/openai.py @@ -27,24 +27,25 @@ # openai.proxy = os.environ.get("http_proxy") # if openai.proxy is None: # openai.proxy = os.environ.get("HTTP_PROXY") - if os.environ.get("OPENAI_API_KEY")!=None: + if os.environ.get("OPENAI_API_KEY") != None: openai.api_key = os.environ.get("OPENAI_API_KEY") is_openai_available = True - elif os.environ.get("AZURE_OPENAI_API_KEY")!=None: + elif os.environ.get("AZURE_OPENAI_API_KEY") != None: openai.api_type = "azure" - openai.api_key = os.environ.get("AZURE_OPENAI_API_KEY") + openai.api_key = os.environ.get("AZURE_OPENAI_API_KEY") openai.api_base = os.environ.get("AZURE_OPENAI_API_BASE") openai.api_version = "2023-05-15" - is_openai_available = True + is_openai_available = True else: logging.warning( "OpenAI API key is not set. Please set the environment variable OPENAI_API_KEY" ) - is_openai_available = False + is_openai_available = False + class OpenAIChatArgs(BaseModelArgs): model: str = Field(default="gpt-3.5-turbo") - deployment_id: str = Field(default="gpt-35-turbo") + deployment_id: str = Field(default=None) max_tokens: int = Field(default=2048) temperature: float = Field(default=1.0) top_p: int = Field(default=1) @@ -91,6 +92,7 @@ class OpenAIChatArgs(BaseModelArgs): # total_tokens=response["usage"]["total_tokens"], # ) + @llm_registry.register("gpt-35-turbo") @llm_registry.register("gpt-3.5-turbo") @llm_registry.register("gpt-4") @@ -105,6 +107,7 @@ def __init__(self, max_retry: int = 3, **kwargs): if len(kwargs) > 0: logging.warning(f"Unused arguments: {kwargs}") super().__init__(args=args, max_retry=max_retry) + # def _construct_messages(self, history: List[Message]): # return history + [{"role": "user", "content": query}] @retry( @@ -112,7 +115,6 @@ def __init__(self, max_retry: int = 3, **kwargs): wait=wait_exponential(multiplier=1, min=4, max=10), reraise=True, ) - def generate_response( self, prepend_prompt: str = "", @@ -124,7 +126,7 @@ def generate_response( logger.log_prompt(messages) try: # Execute function call - if functions != []: + if functions != []: response = openai.ChatCompletion.create( messages=messages, functions=functions, @@ -286,7 +288,7 @@ def construct_messages( def get_embedding(text: str, attempts=3) -> np.array: try: text = text.replace("\n", " ") - if openai.api_type=="azure": + if openai.api_type == "azure": embedding = openai.Embedding.create( input=[text], deployment_id="text-embedding-ada-002" )["data"][0]["embedding"] From 62676a1603c39026b704d3d4028e9f217884b42e Mon Sep 17 00:00:00 2001 From: chenweize1998 Date: Sun, 8 Oct 2023 13:36:12 +0800 Subject: [PATCH 005/101] fix: critic agent initialization argument error --- agentverse/agents/tasksolving_agent/critic.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/agentverse/agents/tasksolving_agent/critic.py b/agentverse/agents/tasksolving_agent/critic.py index 59feb58ad..f6aeae3ca 100644 --- a/agentverse/agents/tasksolving_agent/critic.py +++ b/agentverse/agents/tasksolving_agent/critic.py @@ -38,13 +38,13 @@ def __init__(self, *args, **kwargs): tool_descriptions = "\n".join( [f"- {t['name']}: " + t["description"] for t in tools] ) + kwargs.update('tools', tools) + kwargs.update('tool_names', tool_names) + kwargs.update('tool_descriptions', tool_descriptions) except Exception as e: logger.error(e) logger.warn("Failed to load tool config file.") super().__init__( - tools=tools, - tool_names=tool_names, - tool_descriptions=tool_descriptions, *args, **kwargs, ) From ad67c700694c2f0a34040581c92ddf3e86ef170d Mon Sep 17 00:00:00 2001 From: yitong <2969413251@qq.com> Date: Sun, 8 Oct 2023 13:46:21 +0800 Subject: [PATCH 006/101] ci: add a Github Actions workflow for smoke test --- .github/workflows/test.yml | 34 ++++++++++++++++++++++++++++++++++ data/mgsm/test_sample.jsonl | 1 + evaluate_math.py | 3 +++ requirements.txt | 3 ++- 4 files changed, 40 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/test.yml create mode 100644 data/mgsm/test_sample.jsonl diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 000000000..50cda2c13 --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,34 @@ +name: Test + +on: [push, pull_request] + +jobs: + test: + runs-on: ${{ matrix.os }} + if: "!contains(github.event.head_commit.message, 'ci skip')" + strategy: + matrix: + os: [macos-latest, windows-latest, ubuntu-latest] + steps: + - name: Cancel previous run + uses: styfle/cancel-workflow-action@0.11.0 + with: + access_token: ${{ github.token }} + - uses: actions/checkout@v3 + - name: Set up Python 3.9 + uses: actions/setup-python@v4 + with: + python-version: 3.9 + - name: Upgrade pip + run: | + python -m pip install --upgrade pip setuptools wheel + - name: Install dependencies + run: | + python -m pip install -r requirements.txt + - name: Test + env: + OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} + OPENAI_ORGANIZATION: ${{ secrets.OPENAI_ORGANIZATION }} + run: | + python benchmark.py --task tasksolving/mgsm/gpt-3.5 --dataset_path data/mgsm/test_sample.jsonl --overwrite --output_path ci_smoke_test_output + python evaluate_math.py --path ci_smoke_test_output/results.jsonl --ci_smoke_test \ No newline at end of file diff --git a/data/mgsm/test_sample.jsonl b/data/mgsm/test_sample.jsonl new file mode 100644 index 000000000..bdd20eb46 --- /dev/null +++ b/data/mgsm/test_sample.jsonl @@ -0,0 +1 @@ +{"question": "Sophia is thinking of taking a road trip in her car, and would like to know how far she can drive on a single tank of gas. She has traveled 100 miles since last filling her tank, and she needed to put in 4 gallons of gas to fill it up again. The owner's manual for her car says that her tank holds 12 gallons of gas. How many miles can Sophia drive on a single tank of gas?", "answer": null, "answer_number": 300, "equation_solution": null} \ No newline at end of file diff --git a/evaluate_math.py b/evaluate_math.py index 44399da32..189c05a5d 100644 --- a/evaluate_math.py +++ b/evaluate_math.py @@ -7,6 +7,7 @@ parser = ArgumentParser() parser.add_argument("--path", type=str, required=True) parser.add_argument("--max_line", type=int, default=1000000000000) +parser.add_argument("--ci_smoke_test", action="store_true") args = parser.parse_args() @@ -88,3 +89,5 @@ def check_corr(result: str, correct_solution: str, tol: float = 1e-3): err_cnts.append(err_cnt) print(final_accs) print(err_cnts) +if args.ci_smoke_test is True: + assert final_accs[0] == 1.0 diff --git a/requirements.txt b/requirements.txt index f52faa286..dc4985600 100644 --- a/requirements.txt +++ b/requirements.txt @@ -15,4 +15,5 @@ typing-extensions==4.5.0 typing-inspect==0.8.0 colorlog rapidfuzz -spacy \ No newline at end of file +spacy +colorama==0.4.6 \ No newline at end of file From 5bbd35514684bb3ae2bd534b11d193a7a26e0b16 Mon Sep 17 00:00:00 2001 From: Kieran Gill Date: Sun, 8 Oct 2023 12:03:15 -0400 Subject: [PATCH 007/101] report spend at the end of a task solving session --- agentverse/agents/base.py | 9 ++++ agentverse/environments/base.py | 5 +++ .../environments/tasksolving_env/basic.py | 23 ++++++++++ agentverse/llms/base.py | 7 +++ agentverse/llms/openai.py | 43 +++++++++++++++++++ agentverse/tasksolving.py | 8 ++-- 6 files changed, 92 insertions(+), 3 deletions(-) diff --git a/agentverse/agents/base.py b/agentverse/agents/base.py index 8d515b06d..411848743 100644 --- a/agentverse/agents/base.py +++ b/agentverse/agents/base.py @@ -48,6 +48,15 @@ def add_message_to_memory(self, messages: List[Message]) -> None: """Add a message to the memory""" pass + def get_spend(self) -> int: + return self.llm.get_spend() + + def get_spend_formatted(self) -> int: + two_trailing = f"${self.get_spend():.2f}" + if two_trailing == "$0.00": + return f"${self.get_spend():.6f}" + return two_trailing + def get_all_prompts(self, **kwargs): prepend_prompt = Template(self.prepend_prompt_template).safe_substitute( **kwargs diff --git a/agentverse/environments/base.py b/agentverse/environments/base.py index ab0c0db54..9d5ad0be3 100644 --- a/agentverse/environments/base.py +++ b/agentverse/environments/base.py @@ -46,6 +46,11 @@ def reset(self) -> None: """Reset the environment""" pass + @abstractmethod + def report_metrics(self) -> None: + """Report useful metrics""" + pass + def is_done(self) -> bool: """Check if the environment is done""" return self.cnt_turn >= self.max_turns diff --git a/agentverse/environments/tasksolving_env/basic.py b/agentverse/environments/tasksolving_env/basic.py index a8efebc63..8e4631a24 100644 --- a/agentverse/environments/tasksolving_env/basic.py +++ b/agentverse/environments/tasksolving_env/basic.py @@ -108,6 +108,29 @@ async def step( self.cnt_turn += 1 return flatten_result, advice, flatten_plan, logs, self.success + def iter_agents(self): + for role, agent_or_agents in self.agents.items(): + if isinstance(agent_or_agents, list): + for agent in agent_or_agents: + yield role, agent + else: + yield role, agent_or_agents + + def get_spend(self): + total_spent = sum([agent.get_spend() for (_, agent) in self.iter_agents()]) + return total_spent + + def report_metrics(self) -> None: + logger.info("", "Agent spend:", Fore.GREEN) + for role, agent in self.iter_agents(): + name = agent.name.split(":")[0] + logger.info( + "", + f"Agent (Role: {role}) {name}: {agent.get_spend_formatted()}", + Fore.GREEN, + ) + logger.info("", f"Total spent: ${self.get_spend():.6f}", Fore.GREEN) + def is_done(self): """Check if the environment is done""" return self.cnt_turn >= self.max_turn or self.success diff --git a/agentverse/llms/base.py b/agentverse/llms/base.py index 71e6630ef..b759fb281 100644 --- a/agentverse/llms/base.py +++ b/agentverse/llms/base.py @@ -21,6 +21,13 @@ class BaseLLM(BaseModel): args: BaseModelArgs = Field(default_factory=BaseModelArgs) max_retry: int = Field(default=3) + @abstractmethod + def get_spend(self) -> float: + """ + Number of USD spent + """ + return -1.0 + @abstractmethod def generate_response(self, **kwargs) -> LLMResult: pass diff --git a/agentverse/llms/openai.py b/agentverse/llms/openai.py index 22f1bb061..3b7409cf2 100644 --- a/agentverse/llms/openai.py +++ b/agentverse/llms/openai.py @@ -99,6 +99,9 @@ class OpenAIChatArgs(BaseModelArgs): class OpenAIChat(BaseChatModel): args: OpenAIChatArgs = Field(default_factory=OpenAIChatArgs) + total_prompt_tokens: int = 0 + total_completion_tokens: int = 0 + def __init__(self, max_retry: int = 3, **kwargs): args = OpenAIChatArgs() args = args.dict() @@ -133,6 +136,7 @@ def generate_response( **self.args.dict(), ) if response["choices"][0]["message"].get("function_call") is not None: + self.collect_metrics(response) return LLMResult( content=response["choices"][0]["message"].get("content", ""), function_name=response["choices"][0]["message"][ @@ -148,6 +152,7 @@ def generate_response( total_tokens=response["usage"]["total_tokens"], ) else: + self.collect_metrics(response) return LLMResult( content=response["choices"][0]["message"]["content"], send_tokens=response["usage"]["prompt_tokens"], @@ -160,6 +165,7 @@ def generate_response( messages=messages, **self.args.dict(), ) + self.collect_metrics(response) return LLMResult( content=response["choices"][0]["message"]["content"], send_tokens=response["usage"]["prompt_tokens"], @@ -235,6 +241,7 @@ async def agenerate_response( raise ValueError( "The returned argument in function call is not valid json." ) + self.collect_metrics(response) return LLMResult( function_name=function_name, function_arguments=arguments, @@ -244,6 +251,7 @@ async def agenerate_response( ) else: + self.collect_metrics(response) return LLMResult( content=response["choices"][0]["message"]["content"], send_tokens=response["usage"]["prompt_tokens"], @@ -258,6 +266,7 @@ async def agenerate_response( messages=messages, **self.args.dict(), ) + self.collect_metrics(response) return LLMResult( content=response["choices"][0]["message"]["content"], send_tokens=response["usage"]["prompt_tokens"], @@ -279,6 +288,40 @@ def construct_messages( messages.append({"role": "user", "content": append_prompt}) return messages + def collect_metrics(self, response): + self.total_prompt_tokens += response["usage"]["prompt_tokens"] + self.total_completion_tokens += response["usage"]["completion_tokens"] + + def get_spend(self) -> int: + input_cost_map = { + "gpt-3.5-turbo": 0.0015, + "gpt-3.5-turbo-16k": 0.003, + "gpt-3.5-turbo-0613": 0.0015, + "gpt-3.5-turbo-16k-0613": 0.003, + "gpt-4": 0.03, + "gpt-4-0613": 0.03, + "gpt-4-32k": 0.06, + } + + output_cost_map = { + "gpt-3.5-turbo": 0.002, + "gpt-3.5-turbo-16k": 0.004, + "gpt-3.5-turbo-0613": 0.002, + "gpt-3.5-turbo-16k-0613": 0.004, + "gpt-4": 0.06, + "gpt-4-0613": 0.06, + "gpt-4-32k": 0.12, + } + + model = self.args.model + if model not in input_cost_map or model not in output_cost_map: + raise ValueError(f"Model type {model} not supported") + + return ( + self.total_prompt_tokens * input_cost_map[model] / 1000.0 + + self.total_completion_tokens * output_cost_map[model] / 1000.0 + ) + @retry( stop=stop_after_attempt(3), diff --git a/agentverse/tasksolving.py b/agentverse/tasksolving.py index 348ee707a..b90b81b0e 100644 --- a/agentverse/tasksolving.py +++ b/agentverse/tasksolving.py @@ -67,7 +67,8 @@ def run(self): self.environment.step(advice, previous_plan) ) self.logs += logs - self.save_result(previous_plan, result) + self.environment.report_metrics() + self.save_result(previous_plan, result, self.environment.get_spend()) return previous_plan, result, self.logs def singleagent_thinking(self, preliminary_solution, advice) -> str: @@ -80,10 +81,11 @@ def singleagent_thinking(self, preliminary_solution, advice) -> str: def reset(self): self.environment.reset() - def save_result(self, plan: str, result: str): + def save_result(self, plan: str, result: str, spend: float): """Save the result to the result file""" - result_file_path = "../results/" + self.task + ".txt" + result_file_path = "./results/" + self.task + ".txt" os.makedirs(os.path.dirname(result_file_path), exist_ok=True) with open(result_file_path, "w") as f: f.write("[Final Plan]\n" + plan + "\n\n") f.write("[Result]\n" + result) + f.write(f"[Spent]\n${spend}") From 031d3d9acd5254a16d0d93dbdbfbc6771a77fcb3 Mon Sep 17 00:00:00 2001 From: Kieran Gill Date: Sun, 8 Oct 2023 12:21:52 -0400 Subject: [PATCH 008/101] remove abstract requirement --- agentverse/environments/base.py | 1 - 1 file changed, 1 deletion(-) diff --git a/agentverse/environments/base.py b/agentverse/environments/base.py index 9d5ad0be3..2e151e3cd 100644 --- a/agentverse/environments/base.py +++ b/agentverse/environments/base.py @@ -46,7 +46,6 @@ def reset(self) -> None: """Reset the environment""" pass - @abstractmethod def report_metrics(self) -> None: """Report useful metrics""" pass From f6d60c075e8ba4764ed50d54bca15599b5002c03 Mon Sep 17 00:00:00 2001 From: Kieran Gill Date: Sun, 8 Oct 2023 12:52:27 -0400 Subject: [PATCH 009/101] report metrics for simulations --- agentverse/agents/base.py | 4 ++-- agentverse/environments/base.py | 3 +++ agentverse/simulation.py | 1 + 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/agentverse/agents/base.py b/agentverse/agents/base.py index 411848743..084bc5135 100644 --- a/agentverse/agents/base.py +++ b/agentverse/agents/base.py @@ -48,10 +48,10 @@ def add_message_to_memory(self, messages: List[Message]) -> None: """Add a message to the memory""" pass - def get_spend(self) -> int: + def get_spend(self) -> float: return self.llm.get_spend() - def get_spend_formatted(self) -> int: + def get_spend_formatted(self) -> str: two_trailing = f"${self.get_spend():.2f}" if two_trailing == "$0.00": return f"${self.get_spend():.6f}" diff --git a/agentverse/environments/base.py b/agentverse/environments/base.py index 2e151e3cd..7767dc248 100644 --- a/agentverse/environments/base.py +++ b/agentverse/environments/base.py @@ -1,4 +1,5 @@ from __future__ import annotations +from agentverse.logging import logger from abc import abstractmethod from typing import TYPE_CHECKING, Any, Dict, List @@ -48,6 +49,8 @@ def reset(self) -> None: def report_metrics(self) -> None: """Report useful metrics""" + total_spent = sum([agent.get_spend() for agent in self.agents]) + logger.info(f"Total spent: ${total_spent}") pass def is_done(self) -> bool: diff --git a/agentverse/simulation.py b/agentverse/simulation.py index 406b9b982..f4d3dc982 100644 --- a/agentverse/simulation.py +++ b/agentverse/simulation.py @@ -43,6 +43,7 @@ def run(self): self.environment.reset() while not self.environment.is_done(): asyncio.run(self.environment.step()) + self.environment.report_metrics() def reset(self): self.environment.reset() From bc58c022ba0b96245753fb73bf05ce2b0e318acd Mon Sep 17 00:00:00 2001 From: chenweize1998 Date: Mon, 9 Oct 2023 13:25:35 +0800 Subject: [PATCH 010/101] update README.md --- .github/workflows/test.yml | 8 ++++- README.md | 70 ++++++++++++++++++++++++-------------- 2 files changed, 52 insertions(+), 26 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 50cda2c13..fa9454dfb 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -1,6 +1,12 @@ name: Test -on: [push, pull_request] +on: + push: + branches: + - main + pull_request: + branches: + - main jobs: test: diff --git a/README.md b/README.md index 358a22e6d..ed3a7526b 100644 --- a/README.md +++ b/README.md @@ -3,12 +3,22 @@

A Framework for Multi-LLM Environment Simulation

+

License: Apache2 - Documentation + Python Version + + + Build + + + Code Style: Black + + + Contributions: Welcome

@@ -22,7 +32,7 @@ **AgentVerse** offers a versatile framework that streamlines the process of creating custom multi-agent environments for large language models (LLMs). Designed to facilitate swift development and customization with minimal effort, our framework empowers researchers to concentrate on their research, rather than being bogged down by implementation details. -⚠️⚠️⚠️ We're refactoring the code, and the goal is to provide a flexibility to construct simulation(without a predefined goal) and task-solving(with a specific goal) environments. Please note that this README is outdated, we will update it soon. If you require a stable version that exclusively supports simulation environments, you can use [`release-1.0`](https://github.com/OpenBMB/AgentVerse/tree/release-1.0) branch. +⚠️⚠️⚠️ We're refactoring the code, and the goal is to provide a flexibility to construct simulation(without a predefined goal) and task-solving(with a specific goal) environments. Please note that this README is slightly outdated, we will update it soon. If you require a stable version that exclusively supports simulation environments, you can use [`release-1.0`](https://github.com/OpenBMB/AgentVerse/tree/release-1.0) branch. --- @@ -35,10 +45,12 @@ - 🛠 **Tools (Plugins) Utilization**: AgentVerse supports the multi-agent environments with tools. Currently, AgentVerse supports tools provided in [BMTools](https://github.com/OpenBMB/BMTools). ## 📰 What's New +- [2023/10/5] 💡 We release the code of our paper [AgentVerse: Facilitating Multi-Agent Collaboration and Exploring Emergent Behaviors in Agents](https://arxiv.org/abs/2308.10848), and refactor our codebase to enable the creation of both simulation and task-solving environment! + - [2023/8/22] 📝 We're excited to share our work-in-progress paper [AgentVerse: Facilitating Multi-Agent Collaboration and Exploring Emergent Behaviors in Agents](https://arxiv.org/abs/2308.10848) related to this repository. +

Screen Shot 2023-09-01 at 12 08 57 PM - -You could refer the stay-tuned code in this [branch](https://github.com/OpenBMB/AgentVerse/tree/AgentVerse-TaskSolving). +

- [2023/6/5] 🎉 We are thrilled to present an array of [demos](#-simple-demo-video), including [NLP Classroom](#nlp-classroom), [Prisoner Dilemma](#prisoner-dilemma), [Software Design](#software-design), [Database Administrator](#database-administrator-dba), and a simple [H5 Pokemon Game](#pokemon) that enables the interaction with the characters in Pokemon! Try out these demos and have fun! - [2023/5/1] 🚀 [AgentVerse](https://github.com/OpenBMB/AgentVerse) is officially launched! @@ -57,11 +69,10 @@ AgentVerse is on a mission to revolutionize the multi-agent environment for larg Also, if you're passionate about advancing the frontiers of multi-agent environments and are eager to dive deeper into research, we invite you to join our team at THUNLP. To explore this exciting opportunity and embark on a collaborative journey with us, please reach out to [chenweize1998@gmail.com](chenweize1998@gmail.com) and [yushengsu.thu@gmail.com](yushengsu.thu@gmail.com) and express your interest. We're keen to welcome motivated individuals like you to our lab! ## 🗓 Coming Soon -- [ ] Code release of our [paper](https://arxiv.org/abs/2308.10848) +- [x] Code release of our [paper](https://arxiv.org/abs/2308.10848) - [ ] Add documentation - [ ] Support more sophisticated memory for conversation history - [ ] Add support for local LLM -- [ ] Auto-generate UI based on the given multi-agent environment ## 👾 Simple Demo Video @@ -79,7 +90,7 @@ In the NLP class, the professor and students engage in interactive communication Use the following command to launch the NLP Classroom example: ```bash -python main_simulation_gui.py --task nlp_classroom_9players +python main_simulation_gui.py --task simulation/nlp_classroom_9players ``` https://github.com/OpenBMB/AgentVerse/assets/11704492/6ea07850-595e-4a28-a82e-f863011353c2 @@ -90,7 +101,7 @@ A prisoner's Dilemma is a thought experiment that challenges two completely rati Use the following command to launch the Prisoner Dilemma example: ```bash -python main_simulation_cli.py --task prisoner_dilemma +python main_simulation_cli.py --task simulation/prisoner_dilemma ``` https://github.com/OpenBMB/AgentVerse/assets/11704492/017c46e5-c738-4fca-9352-b008e2d518bd @@ -101,7 +112,7 @@ In the Software Design example, a code writer, a code tester and a code reviewer Use the following command to launch the Software Design example: ```bash -python main_demo.py --task sde_team/sde_team_2players +python main_demo.py --task simulation/sde_team/sde_team_2players ``` https://github.com/OpenBMB/AgentVerse/assets/11704492/5058066a-abee-490d-8659-b4e54661626a @@ -112,7 +123,7 @@ https://github.com/OpenBMB/AgentVerse/assets/11704492/5058066a-abee-490d-8659-b4 In the database diagnosis scenario, the Chief DBA monitors the system anomalies (e.g., slow queries, locks, crash down). If detected, the domain experts are alerted to analyze root causes, share insights, and suggest optimization solutions together. The Chief DBA then provides a summarized report to the user. ```bash -python main_simulation_gui.py --task db_diag +python main_simulation_gui.py --task simulation/db_diag ``` https://github.com/OpenBMB/AgentVerse/assets/11704492/c633419d-afbb-47d4-bb12-6bb512e7af3a @@ -124,7 +135,7 @@ In the context of the text evaluation scenario, we recommend users explore the [ https://github.com/OpenBMB/AgentVerse/assets/75533759/58f33468-f15b-4bac-ae01-8d0780019f85 #### Pokemon -In the game, agents can visit shops, train their Pokémon at the gym, and interact with one another. As a player, you take on the role of an agent and can engage with others at any time. There are 6 characters in the Pokémon environment who appeared in Pokemon Emerald: [May](https://bulbapedia.bulbagarden.net/wiki/May_(game)), [Professor Birch](https://bulbapedia.bulbagarden.net/wiki/Professor_Birch), [Steven Stone](https://bulbapedia.bulbagarden.net/wiki/Steven_Stone), [Maxie](https://bulbapedia.bulbagarden.net/wiki/Maxie), [Archie](https://bulbapedia.bulbagarden.net/wiki/Archie) and [Joseph](https://bulbapedia.bulbagarden.net/wiki/Mr._Stone). +**Currently available only in [`release-1.0`](https://github.com/OpenBMB/AgentVerse/tree/release-1.0)**. In the game, agents can walk around the game world, and interact with one another. As a player, you take on the role of an agent and can engage with others at any time. There are 6 characters in the Pokémon environment who appeared in Pokemon Emerald: [May](https://bulbapedia.bulbagarden.net/wiki/May_(game)), [Professor Birch](https://bulbapedia.bulbagarden.net/wiki/Professor_Birch), [Steven Stone](https://bulbapedia.bulbagarden.net/wiki/Steven_Stone), [Maxie](https://bulbapedia.bulbagarden.net/wiki/Maxie), [Archie](https://bulbapedia.bulbagarden.net/wiki/Archie) and [Joseph](https://bulbapedia.bulbagarden.net/wiki/Mr._Stone). To launch the Pokemon game, first launch a local server with the following command: ```bash @@ -162,8 +173,9 @@ https://github.com/OpenBMB/AgentVerse/assets/11704492/4d07da68-f942-4205-b558-f1 - [Contents](#contents) - [🚀 Getting Started](#-getting-started) - [Installation](#installation) - - [CLI Example](#cli-example) - - [Local Website Demo](#local-website-demo) + - [Simulation CLI Example](#simulation-cli-example) + - [Simulation Local Website Demo](#simulation-local-website-demo) + - [Task-Solving CLI Example](#task-solving-cli-example) - [💡 Philosophy](#-philosophy) - [Environment](#environment) - [Agent](#agent) @@ -227,23 +239,33 @@ cd BMTools python setup.py develop --> -### CLI Example +### Simulation CLI Example You can create a multi-agent environments provided by us. Using the classroom scenario as an example. In this scenario, there are nine agents, one playing the role of a professor and the other eight as students. ```shell -python3 main.py --task nlp_classroom_9players +python3 main_simulation_cli.py --task simulation/nlp_classroom_9players ``` -### Local Website Demo +### Simulation Local Website Demo We also provide a local website demo for this environment. You can launch it with ```shell -python3 main_simulation_gui.py --task nlp_classroom_9players +python3 main_simulation_gui.py --task simulation/nlp_classroom_9players ``` After successfully launching the local server, you can visit [http://127.0.0.1:7860/](http://127.0.0.1:7860/) to view the classroom environment. +### Task-Solving CLI Example + +To run the experiments with the task-solving environment proposed in our [paper](https://arxiv.org/abs/2308.10848), you can use the following command: + +```shell +# Run the Humaneval benchmark using gpt-3.5-turbo +python3 main_tasksolving_cli.py --task tasksolving/humaneval/gpt-3.5 --dataset_path data/humaneval/test.jsonl --overwrite +``` + +You can take a look at `agentverse/tasks/tasksolving` for more experiments we have done in our paper. ## 💡 Philosophy @@ -374,19 +396,17 @@ Here's a brief overview of each example: ## Citation If you find this repo helpful, feel free to cite us. ``` -@misc{chen2023agentverse, - title={AgentVerse: Facilitating Multi-Agent Collaboration and Exploring Emergent Behaviors in Agents}, - author={Weize Chen and Yusheng Su and Jingwei Zuo and Cheng Yang and Chenfei Yuan and Chen Qian and Chi-Min Chan and Yujia Qin and Yaxi Lu and Ruobing Xie and Zhiyuan Liu and Maosong Sun and Jie Zhou}, - year={2023}, - eprint={2308.10848}, - archivePrefix={arXiv}, - primaryClass={cs.CL} +@article{chen2023agentverse, + title={Agentverse: Facilitating multi-agent collaboration and exploring emergent behaviors in agents}, + author={Chen, Weize and Su, Yusheng and Zuo, Jingwei and Yang, Cheng and Yuan, Chenfei and Qian, Chen and Chan, Chi-Min and Qin, Yujia and Lu, Yaxi and Xie, Ruobing and others}, + journal={arXiv preprint arXiv:2308.10848}, + year={2023} } ``` ## Contact -Weize Chen: chenwz21@mails.tsinghua.edu.cn +Weize Chen: chenweize1998@gmail.com [Yusheng Su](https://yushengsu-thu.github.io/): yushengsu.thu@gmail.com From d359c7679ff5479812f20fe617155a74f131fad4 Mon Sep 17 00:00:00 2001 From: mlmz <54172054+minleminzui@users.noreply.github.com> Date: Mon, 9 Oct 2023 18:18:47 +0800 Subject: [PATCH 011/101] fix: allows users to customize config.yaml of the task (#53) --- agentverse/agentverse.py | 4 ++-- agentverse/gui.py | 6 +++--- agentverse/initialization.py | 4 ++-- agentverse/simulation.py | 4 ++-- agentverse/tasks/simulation/sde_team/readme.md | 5 ++++- agentverse/tasksolving.py | 4 ++-- benchmark.py | 8 +++++--- main_simulation_cli.py | 5 ++++- main_simulation_gui.py | 5 ++++- 9 files changed, 28 insertions(+), 17 deletions(-) diff --git a/agentverse/agentverse.py b/agentverse/agentverse.py index a716b810c..8b1505075 100644 --- a/agentverse/agentverse.py +++ b/agentverse/agentverse.py @@ -23,13 +23,13 @@ def __init__(self, agents: List[BaseAgent], environment: BaseEnvironment): self.environment = environment @classmethod - def from_task(cls, task: str): + def from_task(cls, task: str, tasks_dir: str): """Build an AgentVerse from a task name. The task name should correspond to a directory in `tasks` directory. Then this method will load the configuration from the yaml file in that directory. """ # Prepare the config of the task - task_config = prepare_task_config(task) + task_config = prepare_task_config(task, tasks_dir) # Build the agents agents = [] diff --git a/agentverse/gui.py b/agentverse/gui.py index ca8738b3d..911207f48 100644 --- a/agentverse/gui.py +++ b/agentverse/gui.py @@ -30,7 +30,7 @@ class GUI: the UI of frontend """ - def __init__(self, task: str): + def __init__(self, task: str, tasks_dir: str): """ init a UI. default number of students is 0 @@ -38,9 +38,9 @@ def __init__(self, task: str): self.messages = [] self.task = task if task == "pipeline_brainstorming": - self.backend = TaskSolving.from_task(task) + self.backend = TaskSolving.from_task(task, tasks_dir) else: - self.backend = Simulation.from_task(task) + self.backend = Simulation.from_task(task, tasks_dir) self.turns_remain = 0 self.agent_id = { self.backend.agents[idx].name: idx diff --git a/agentverse/initialization.py b/agentverse/initialization.py index cc6e3cd42..ed21733e0 100644 --- a/agentverse/initialization.py +++ b/agentverse/initialization.py @@ -66,9 +66,9 @@ def load_agent(agent_config: Dict) -> BaseAgent: return agent -def prepare_task_config(task): +def prepare_task_config(task, tasks_dir): """Read the yaml config of the given task in `tasks` directory.""" - all_task_dir = os.path.join(os.path.dirname(__file__), "tasks") + all_task_dir = tasks_dir task_path = os.path.join(all_task_dir, task) config_path = os.path.join(task_path, "config.yaml") if not os.path.exists(task_path): diff --git a/agentverse/simulation.py b/agentverse/simulation.py index f4d3dc982..27a439e4b 100644 --- a/agentverse/simulation.py +++ b/agentverse/simulation.py @@ -17,13 +17,13 @@ def __init__(self, agents: List[BaseAgent], environment: BaseEnvironment): self.environment = environment @classmethod - def from_task(cls, task: str): + def from_task(cls, task: str, tasks_dir: str): """Build an AgentVerse from a task name. The task name should correspond to a directory in `tasks` directory. Then this method will load the configuration from the yaml file in that directory. """ # Prepare the config of the task - task_config = prepare_task_config(task) + task_config = prepare_task_config(task, tasks_dir) # Build the agents agents = [] diff --git a/agentverse/tasks/simulation/sde_team/readme.md b/agentverse/tasks/simulation/sde_team/readme.md index 62faa3117..b022b820b 100644 --- a/agentverse/tasks/simulation/sde_team/readme.md +++ b/agentverse/tasks/simulation/sde_team/readme.md @@ -72,14 +72,17 @@ python build_config.py After generating `config.yaml`, run the `main.py` to start the task. ```python +import os from agentverse.agentverse import AgentVerse from argparse import ArgumentParser parser = ArgumentParser() parser.add_argument("--task", type=str, default="sde_team/sde_team_2players") +parser.add_argument("--tasks_dir", type=str, default=os.path.join( + os.path.dirname(__file__), "agentverse", "tasks")) args = parser.parse_args() -agentverse = AgentVerse.from_task(args.task) +agentverse = AgentVerse.from_task(args.task, args.tasks_dir) agentverse.run() ``` diff --git a/agentverse/tasksolving.py b/agentverse/tasksolving.py index b90b81b0e..2bd2bd9b7 100644 --- a/agentverse/tasksolving.py +++ b/agentverse/tasksolving.py @@ -23,13 +23,13 @@ def __init__(self, environment: BasicEnvironment, task: str = ""): self.task = task @classmethod - def from_task(cls, task: str): + def from_task(cls, task: str, tasks_dir: str): """Build an AgentVerse from a task name. The task name should correspond to a directory in `tasks` directory. Then this method will load the configuration from the yaml file in that directory. """ # Prepare the config of the task - task_config = prepare_task_config(task) + task_config = prepare_task_config(task, tasks_dir) # Build the environment env_config = task_config["environment"] diff --git a/benchmark.py b/benchmark.py index 304adc6e1..01d2cb232 100644 --- a/benchmark.py +++ b/benchmark.py @@ -12,7 +12,9 @@ parser = ArgumentParser() -parser.add_argument("--task", type=str, default="responsegen") +parser.add_argument("--task", type=str, default="tasksolving/responsegen") +parser.add_argument("--tasks_dir", type=str, default=os.path.join( + os.path.dirname(__file__), "agentverse", "tasks")) parser.add_argument("--dataset_path", type=str, required=True) parser.add_argument("--output_path", type=str, default=None) parser.add_argument("--has_tools", action="store_true") @@ -38,7 +40,7 @@ def get_dataloader(task, dataset_path): else: os.makedirs(args.output_path, exist_ok=True) shutil.copyfile( - f"./agentverse/tasks/{args.task}/config.yaml", + f"{args.tasks_dir}/{args.task}/config.yaml", f"{args.output_path}/config.yaml", ) @@ -57,7 +59,7 @@ def get_dataloader(task, dataset_path): assert args.tool_tmp_path is not None with open(args.tool_tmp_path, "w") as f: f.write(json.dumps(example["tools"])) - agentversepipeline = TaskSolving.from_task(args.task) + agentversepipeline = TaskSolving.from_task(args.task, args.tasks_dir) agentversepipeline.environment.set_task_description(example["input"]) # print(args.single_agent) # print(args.discussion_mode) diff --git a/main_simulation_cli.py b/main_simulation_cli.py index a6be9e66d..48f56e567 100644 --- a/main_simulation_cli.py +++ b/main_simulation_cli.py @@ -1,3 +1,4 @@ +import os import logging from argparse import ArgumentParser @@ -6,10 +7,12 @@ parser = ArgumentParser() parser.add_argument("--task", type=str, default="simulation/prisoner_dilemma") +parser.add_argument("--tasks_dir", type=str, default=os.path.join( + os.path.dirname(__file__), "agentverse", "tasks")) parser.add_argument("--debug", action="store_true") args = parser.parse_args() logger.set_level(logging.DEBUG if args.debug else logging.INFO) -agentverse = Simulation.from_task(args.task) +agentverse = Simulation.from_task(args.task, args.tasks_dir) agentverse.run() diff --git a/main_simulation_gui.py b/main_simulation_gui.py index a7c4ad42f..576b980c5 100644 --- a/main_simulation_gui.py +++ b/main_simulation_gui.py @@ -1,9 +1,12 @@ +import os from agentverse.gui import GUI from argparse import ArgumentParser parser = ArgumentParser() parser.add_argument("--task", type=str, default="simulation/nlp_classroom_9players") +parser.add_argument("--tasks_dir", type=str, default=os.path.join( + os.path.dirname(__file__), "agentverse", "tasks")) args = parser.parse_args() -ui = GUI(args.task) +ui = GUI(args.task, args.tasks_dir) ui.launch() From ff67cff5073a577e775afbee581941be96c0fbfb Mon Sep 17 00:00:00 2001 From: Weize Chen <32613237+chenweize1998@users.noreply.github.com> Date: Mon, 9 Oct 2023 22:36:51 +0800 Subject: [PATCH 012/101] ci skip. Update README.md --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index ed3a7526b..45f91e957 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,7 @@ Contributions: Welcome +

@@ -68,6 +69,8 @@ AgentVerse is on a mission to revolutionize the multi-agent environment for larg Also, if you're passionate about advancing the frontiers of multi-agent environments and are eager to dive deeper into research, we invite you to join our team at THUNLP. To explore this exciting opportunity and embark on a collaborative journey with us, please reach out to [chenweize1998@gmail.com](chenweize1998@gmail.com) and [yushengsu.thu@gmail.com](yushengsu.thu@gmail.com) and express your interest. We're keen to welcome motivated individuals like you to our lab! +👉Also, our Discord: https://discord.gg/cnutfCtC. + ## 🗓 Coming Soon - [x] Code release of our [paper](https://arxiv.org/abs/2308.10848) - [ ] Add documentation From 0360286d5125c01c551e9eb9b2076500d150aab0 Mon Sep 17 00:00:00 2001 From: chenweize1998 Date: Tue, 10 Oct 2023 09:39:36 +0800 Subject: [PATCH 013/101] fix: fix the incompatible simulation configs. ci skip --- .../simulation_agent/prisoner_dilemma.py | 4 ++-- .../tasks/simulation/alice_home/config.yaml | 4 ++++ .../tasks/simulation/db_diag/config.yaml | 6 ++++++ .../math_problem_2players_tools/config.yaml | 4 ++++ .../nlp_classroom_3players/config.yaml | 7 +++++++ .../config.yaml | 6 ++++++ .../nlp_classroom_9players/config.yaml | 18 ++++++++++++++++++ .../nlp_classroom_9players_group/config.yaml | 18 ++++++++++++++++++ .../tasks/simulation/pokemon/config.yaml | 12 ++++++++++++ .../simulation/prisoner_dilemma/config.yaml | 6 ++++++ .../sde_team_2players/partial_config.yaml | 8 +++++++- .../sde_team/sde_team_3players/config.yaml | 5 ++++- 12 files changed, 94 insertions(+), 4 deletions(-) diff --git a/agentverse/agents/simulation_agent/prisoner_dilemma.py b/agentverse/agents/simulation_agent/prisoner_dilemma.py index eb4390ecb..bf257c168 100644 --- a/agentverse/agents/simulation_agent/prisoner_dilemma.py +++ b/agentverse/agents/simulation_agent/prisoner_dilemma.py @@ -6,8 +6,8 @@ from agentverse.message import Message -#from . import agent_registry -#from .base import BaseAgent +# from . import agent_registry +# from .base import BaseAgent from agentverse.agents import agent_registry from agentverse.agents.base import BaseAgent diff --git a/agentverse/tasks/simulation/alice_home/config.yaml b/agentverse/tasks/simulation/alice_home/config.yaml index afec6e036..1c79377da 100644 --- a/agentverse/tasks/simulation/alice_home/config.yaml +++ b/agentverse/tasks/simulation/alice_home/config.yaml @@ -84,6 +84,8 @@ agents: llm_type: gpt-4 temperature: 0.3 max_tokens: 128 + output_parser: + type: alice_home current_time: "2023-04-01 07:00:00" - agent_type: reflection @@ -120,6 +122,8 @@ agents: llm_type: gpt-4 temperature: 0.3 max_tokens: 128 + output_parser: + type: alice_home current_time: "2023-04-01 07:00:00" tools: ~ \ No newline at end of file diff --git a/agentverse/tasks/simulation/db_diag/config.yaml b/agentverse/tasks/simulation/db_diag/config.yaml index 1e4e055f7..f89d8cd19 100644 --- a/agentverse/tasks/simulation/db_diag/config.yaml +++ b/agentverse/tasks/simulation/db_diag/config.yaml @@ -211,6 +211,8 @@ agents: model: gpt-4 temperature: 0.7 max_tokens: 1024 + output_parser: + type: db_diag tools: *tools verbose: true - @@ -233,6 +235,8 @@ agents: model: gpt-4 temperature: 0.7 max_tokens: 512 + output_parser: + type: db_diag tools: *tools verbose: true - @@ -255,5 +259,7 @@ agents: model: gpt-4 temperature: 0.7 max_tokens: 512 + output_parser: + type: db_diag tools: *tools verbose: true \ No newline at end of file diff --git a/agentverse/tasks/simulation/math_problem_2players_tools/config.yaml b/agentverse/tasks/simulation/math_problem_2players_tools/config.yaml index 2a345b54b..1599d8356 100644 --- a/agentverse/tasks/simulation/math_problem_2players_tools/config.yaml +++ b/agentverse/tasks/simulation/math_problem_2players_tools/config.yaml @@ -98,6 +98,8 @@ agents: model: text-davinci-003 temperature: 0.7 max_tokens: 250 + output_parser: + type: math_problem_2players_tools tools: *tools - agent_type: tool @@ -112,4 +114,6 @@ agents: model: text-davinci-003 temperature: 0.7 max_tokens: 250 + output_parser: + type: math_problem_2players_tools tools: *tools diff --git a/agentverse/tasks/simulation/nlp_classroom_3players/config.yaml b/agentverse/tasks/simulation/nlp_classroom_3players/config.yaml index 41fa1cb8f..234891698 100644 --- a/agentverse/tasks/simulation/nlp_classroom_3players/config.yaml +++ b/agentverse/tasks/simulation/nlp_classroom_3players/config.yaml @@ -40,6 +40,8 @@ agents: model: 'gpt-4' temperature: 0.7 max_tokens: 250 + output_parser: + type: nlp_classroom_3players - agent_type: conversation name: Student Beta role_description: You are Beta, a student curious about Natural Language Processing and you want to learn some basic concepts of NLP. You know nothing about the area so you will ask lots of questions. @@ -51,6 +53,8 @@ agents: model: 'gpt-4' temperature: 0.7 max_tokens: 100 + output_parser: + type: nlp_classroom_3players - agent_type: conversation name: Teaching Assistant Gamma role_description: You are Gamma, a teaching assistant of the Natural Language Processing module. You mostly help with logistics and marking, but occasionally handles questions. Your answer should be less than 100 words. @@ -62,5 +66,8 @@ agents: model: gpt-4 temperature: 0.7 max_tokens: 100 + output_parser: + type: nlp_classroom_3players + tools: diff --git a/agentverse/tasks/simulation/nlp_classroom_3players_withtool/config.yaml b/agentverse/tasks/simulation/nlp_classroom_3players_withtool/config.yaml index be2e07084..336c7e25e 100644 --- a/agentverse/tasks/simulation/nlp_classroom_3players_withtool/config.yaml +++ b/agentverse/tasks/simulation/nlp_classroom_3players_withtool/config.yaml @@ -160,6 +160,8 @@ agents: model: text-davinci-003 temperature: 0.7 max_tokens: 250 + output_parser: + type: nlp_classroom_3players_withtool memory: memory_type: chat_history verbose: true @@ -182,6 +184,8 @@ agents: model: text-davinci-003 temperature: 0.7 max_tokens: 100 + output_parser: + type: nlp_classroom_3players_withtool tools: *tools verbose: true - agent_type: tool @@ -203,5 +207,7 @@ agents: model: text-davinci-003 temperature: 0.7 max_tokens: 100 + output_parser: + type: nlp_classroom_3players_withtool tools: *tools verbose: true diff --git a/agentverse/tasks/simulation/nlp_classroom_9players/config.yaml b/agentverse/tasks/simulation/nlp_classroom_9players/config.yaml index 6ec120a1d..2217a6223 100644 --- a/agentverse/tasks/simulation/nlp_classroom_9players/config.yaml +++ b/agentverse/tasks/simulation/nlp_classroom_9players/config.yaml @@ -99,6 +99,8 @@ agents: model: "gpt-4" temperature: 0.7 max_tokens: 250 + output_parser: + type: nlp_classroom_9players memory: memory_type: chat_history - @@ -113,6 +115,8 @@ agents: model: "gpt-4" temperature: 0.7 max_tokens: 100 + output_parser: + type: nlp_classroom_9players - agent_type: conversation name: Student Amelia @@ -125,6 +129,8 @@ agents: model: "gpt-4" temperature: 0.7 max_tokens: 100 + output_parser: + type: nlp_classroom_9players - agent_type: conversation name: Student Ethan @@ -137,6 +143,8 @@ agents: model: "gpt-4" temperature: 0.7 max_tokens: 100 + output_parser: + type: nlp_classroom_9players - agent_type: conversation name: Student Charlotte @@ -149,6 +157,8 @@ agents: model: "gpt-4" temperature: 0.7 max_tokens: 100 + output_parser: + type: nlp_classroom_9players - agent_type: conversation name: Student Mason @@ -161,6 +171,8 @@ agents: model: "gpt-4" temperature: 0.7 max_tokens: 100 + output_parser: + type: nlp_classroom_9players - agent_type: conversation name: Student Ava @@ -173,6 +185,8 @@ agents: model: "gpt-4" temperature: 0.7 max_tokens: 100 + output_parser: + type: nlp_classroom_9players - agent_type: conversation name: Student Noah @@ -185,6 +199,8 @@ agents: model: "gpt-4" temperature: 0.7 max_tokens: 100 + output_parser: + type: nlp_classroom_9players - agent_type: conversation name: Student Emma @@ -197,5 +213,7 @@ agents: model: "gpt-4" temperature: 0.7 max_tokens: 100 + output_parser: + type: nlp_classroom_9players tools: diff --git a/agentverse/tasks/simulation/nlp_classroom_9players_group/config.yaml b/agentverse/tasks/simulation/nlp_classroom_9players_group/config.yaml index 42221521e..b8d9d0319 100644 --- a/agentverse/tasks/simulation/nlp_classroom_9players_group/config.yaml +++ b/agentverse/tasks/simulation/nlp_classroom_9players_group/config.yaml @@ -118,6 +118,8 @@ agents: llm_type: text-davinci-003 temperature: 0.7 max_tokens: 250 + output_parser: + type: nlp_classroom_9players_group memory: memory_type: chat_history - @@ -131,6 +133,8 @@ agents: llm_type: text-davinci-003 temperature: 0.7 max_tokens: 100 + output_parser: + type: nlp_classroom_9players_group - agent_type: conversation name: Student Amelia @@ -142,6 +146,8 @@ agents: llm_type: text-davinci-003 temperature: 0.7 max_tokens: 100 + output_parser: + type: nlp_classroom_9players_group - agent_type: conversation name: Student Ethan @@ -153,6 +159,8 @@ agents: llm_type: text-davinci-003 temperature: 0.7 max_tokens: 100 + output_parser: + type: nlp_classroom_9players_group - agent_type: conversation name: Student Charlotte @@ -164,6 +172,8 @@ agents: llm_type: text-davinci-003 temperature: 0.7 max_tokens: 100 + output_parser: + type: nlp_classroom_9players_group - agent_type: conversation name: Student Mason @@ -175,6 +185,8 @@ agents: llm_type: text-davinci-003 temperature: 0.7 max_tokens: 100 + output_parser: + type: nlp_classroom_9players_group - agent_type: conversation name: Student Ava @@ -186,6 +198,8 @@ agents: llm_type: text-davinci-003 temperature: 0.7 max_tokens: 100 + output_parser: + type: nlp_classroom_9players_group - agent_type: conversation name: Student Noah @@ -197,6 +211,8 @@ agents: llm_type: text-davinci-003 temperature: 0.7 max_tokens: 100 + output_parser: + type: nlp_classroom_9players_group - agent_type: conversation name: Student Emma @@ -208,5 +224,7 @@ agents: llm_type: text-davinci-003 temperature: 0.7 max_tokens: 100 + output_parser: + type: nlp_classroom_9players_group tools: \ No newline at end of file diff --git a/agentverse/tasks/simulation/pokemon/config.yaml b/agentverse/tasks/simulation/pokemon/config.yaml index b032a501e..0a152de8d 100644 --- a/agentverse/tasks/simulation/pokemon/config.yaml +++ b/agentverse/tasks/simulation/pokemon/config.yaml @@ -84,6 +84,8 @@ agents: memory: memory_type: chat_history prompt_template: *prompt + output_parser: + type: pokemon llm: llm_type: gpt-3.5-turbo model: 'gpt-3.5-turbo' @@ -102,6 +104,8 @@ agents: memory: memory_type: chat_history prompt_template: *prompt + output_parser: + type: pokemon llm: llm_type: gpt-3.5-turbo model: gpt-3.5-turbo @@ -120,6 +124,8 @@ agents: memory: memory_type: chat_history prompt_template: *prompt + output_parser: + type: pokemon llm: llm_type: gpt-3.5-turbo model: gpt-3.5-turbo @@ -138,6 +144,8 @@ agents: memory: memory_type: chat_history prompt_template: *prompt + output_parser: + type: pokemon llm: llm_type: gpt-3.5-turbo model: gpt-3.5-turbo @@ -156,6 +164,8 @@ agents: memory: memory_type: chat_history prompt_template: *prompt + output_parser: + type: pokemon llm: llm_type: gpt-3.5-turbo model: gpt-3.5-turbo @@ -174,6 +184,8 @@ agents: memory: memory_type: chat_history prompt_template: *prompt + output_parser: + type: pokemon llm: llm_type: gpt-3.5-turbo model: gpt-3.5-turbo diff --git a/agentverse/tasks/simulation/prisoner_dilemma/config.yaml b/agentverse/tasks/simulation/prisoner_dilemma/config.yaml index 6b2b79005..dc03e4120 100644 --- a/agentverse/tasks/simulation/prisoner_dilemma/config.yaml +++ b/agentverse/tasks/simulation/prisoner_dilemma/config.yaml @@ -56,6 +56,8 @@ agents: llm_type: gpt-4 temperature: 1.2 max_tokens: 200 + output_parser: + type: prisoner_dilemma - agent_type: prisoner name: Suspect1 personality: "You are a Sophisticated Egoist, you always seek for your personal interests best" @@ -76,6 +78,8 @@ agents: llm_type: gpt-4 temperature: 1.2 max_tokens: 100 + output_parser: + type: prisoner_dilemma - agent_type: prisoner name: Suspect2 personality: "" @@ -96,5 +100,7 @@ agents: llm_type: gpt-4 temperature: 1.2 max_tokens: 100 + output_parser: + type: prisoner_dilemma tools: diff --git a/agentverse/tasks/simulation/sde_team/sde_team_2players/partial_config.yaml b/agentverse/tasks/simulation/sde_team/sde_team_2players/partial_config.yaml index e01f19312..881b0ef31 100644 --- a/agentverse/tasks/simulation/sde_team/sde_team_2players/partial_config.yaml +++ b/agentverse/tasks/simulation/sde_team/sde_team_2players/partial_config.yaml @@ -159,6 +159,8 @@ agents: llm_type: gpt-3.5-turbo temperature: 0. max_tokens: 1024 + output_parser: + type: sde_team/sde_team_2players - agent_type: conversation name: code_tester @@ -172,6 +174,8 @@ agents: llm_type: gpt-3.5-turbo temperature: 0. max_tokens: 256 + output_parser: + type: sde_team/sde_team_2players - agent_type: conversation name: code_reviewer @@ -184,4 +188,6 @@ agents: llm: llm_type: gpt-3.5-turbo temperature: 0. - max_tokens: 1024 \ No newline at end of file + max_tokens: 1024 + output_parser: + type: sde_team/sde_team_2players \ No newline at end of file diff --git a/agentverse/tasks/simulation/sde_team/sde_team_3players/config.yaml b/agentverse/tasks/simulation/sde_team/sde_team_3players/config.yaml index fe4ff4369..a4b0ef661 100644 --- a/agentverse/tasks/simulation/sde_team/sde_team_3players/config.yaml +++ b/agentverse/tasks/simulation/sde_team/sde_team_3players/config.yaml @@ -227,6 +227,7 @@ agents: llm_type: gpt-3.5-turbo temperature: 0.3 max_tokens: 1024 + output_parser: sde_team/sde_team_3players - agent_type: conversation name: code_reviewer @@ -240,6 +241,7 @@ agents: llm_type: gpt-3.5-turbo temperature: 0.3 max_tokens: 1024 + output_parser: sde_team/sde_team_3players - agent_type: conversation name: unit_test_generator @@ -249,4 +251,5 @@ agents: llm: llm_type: gpt-3.5-turbo temperature: 1.0 - max_tokens: 1024 \ No newline at end of file + max_tokens: 1024 + output_parser: sde_team/sde_team_3players \ No newline at end of file From ccf4319620ce9d2be01e3bb9b6f69f73b069e8a7 Mon Sep 17 00:00:00 2001 From: mlmz <54172054+minleminzui@users.noreply.github.com> Date: Tue, 10 Oct 2023 16:09:17 +0800 Subject: [PATCH 014/101] fix: complete the command line (#55) * fix: complete the command line for agentverse's demos to make it more convenient for users to use * fix: better cli command name * fix: change default tasks_dir --------- Co-authored-by: Weize Chen <32613237+chenweize1998@users.noreply.github.com> Co-authored-by: chenweize1998 --- .github/workflows/test.yml | 3 +- agentverse_command/__init__.py | 0 .../benchmark.py | 13 +++++-- .../main_simulation_cli.py | 17 ++++++-- agentverse_command/main_simulation_gui.py | 21 ++++++++++ .../main_tasksolving_cli.py | 18 +++++++-- main_simulation_gui.py | 12 ------ setup.py | 39 ++++++++++++------- 8 files changed, 85 insertions(+), 38 deletions(-) create mode 100644 agentverse_command/__init__.py rename benchmark.py => agentverse_command/benchmark.py (94%) rename main_simulation_cli.py => agentverse_command/main_simulation_cli.py (58%) create mode 100644 agentverse_command/main_simulation_gui.py rename main_tasksolving_cli.py => agentverse_command/main_tasksolving_cli.py (53%) delete mode 100644 main_simulation_gui.py diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index fa9454dfb..bf14b09df 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -36,5 +36,6 @@ jobs: OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} OPENAI_ORGANIZATION: ${{ secrets.OPENAI_ORGANIZATION }} run: | - python benchmark.py --task tasksolving/mgsm/gpt-3.5 --dataset_path data/mgsm/test_sample.jsonl --overwrite --output_path ci_smoke_test_output + python setup.py develop + python agentverse_command/benchmark.py --task tasksolving/mgsm/gpt-3.5 --dataset_path data/mgsm/test_sample.jsonl --overwrite --output_path ci_smoke_test_output --tasks_dir ./agentverse/tasks python evaluate_math.py --path ci_smoke_test_output/results.jsonl --ci_smoke_test \ No newline at end of file diff --git a/agentverse_command/__init__.py b/agentverse_command/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/benchmark.py b/agentverse_command/benchmark.py similarity index 94% rename from benchmark.py rename to agentverse_command/benchmark.py index 01d2cb232..e9da7cf0a 100644 --- a/benchmark.py +++ b/agentverse_command/benchmark.py @@ -13,8 +13,11 @@ parser = ArgumentParser() parser.add_argument("--task", type=str, default="tasksolving/responsegen") -parser.add_argument("--tasks_dir", type=str, default=os.path.join( - os.path.dirname(__file__), "agentverse", "tasks")) +parser.add_argument( + "--tasks_dir", + type=str, + default=os.path.join(os.path.dirname(__file__), "..", "agentverse", "tasks"), +) parser.add_argument("--dataset_path", type=str, required=True) parser.add_argument("--output_path", type=str, default=None) parser.add_argument("--has_tools", action="store_true") @@ -32,7 +35,7 @@ def get_dataloader(task, dataset_path): return dataloader_registry.build(task, path=dataset_path) -if __name__ == "__main__": +def cli_main(): dataloader = get_dataloader(args.task, args.dataset_path) if args.output_path is None: os.makedirs(f"./results/{args.task}", exist_ok=True) @@ -78,3 +81,7 @@ def get_dataloader(task, dataset_path): ) f.flush() f.close() + + +if __name__ == "__main__": + cli_main() diff --git a/main_simulation_cli.py b/agentverse_command/main_simulation_cli.py similarity index 58% rename from main_simulation_cli.py rename to agentverse_command/main_simulation_cli.py index 48f56e567..af938e112 100644 --- a/main_simulation_cli.py +++ b/agentverse_command/main_simulation_cli.py @@ -7,12 +7,21 @@ parser = ArgumentParser() parser.add_argument("--task", type=str, default="simulation/prisoner_dilemma") -parser.add_argument("--tasks_dir", type=str, default=os.path.join( - os.path.dirname(__file__), "agentverse", "tasks")) +parser.add_argument( + "--tasks_dir", + type=str, + default=os.path.join(os.path.dirname(__file__), "..", "agentverse", "tasks"), +) parser.add_argument("--debug", action="store_true") args = parser.parse_args() logger.set_level(logging.DEBUG if args.debug else logging.INFO) -agentverse = Simulation.from_task(args.task, args.tasks_dir) -agentverse.run() + +def cli_main(): + agentverse = Simulation.from_task(args.task, args.tasks_dir) + agentverse.run() + + +if __name__ == "__main__": + cli_main() diff --git a/agentverse_command/main_simulation_gui.py b/agentverse_command/main_simulation_gui.py new file mode 100644 index 000000000..b91df38c0 --- /dev/null +++ b/agentverse_command/main_simulation_gui.py @@ -0,0 +1,21 @@ +import os +from agentverse.gui import GUI +from argparse import ArgumentParser + +parser = ArgumentParser() +parser.add_argument("--task", type=str, default="simulation/nlp_classroom_9players") +parser.add_argument( + "--tasks_dir", + type=str, + default=os.path.join(os.path.dirname(__file__), "..", "agentverse", "tasks"), +) +args = parser.parse_args() + + +def cli_main(): + ui = GUI(args.task, args.tasks_dir) + ui.launch() + + +if __name__ == "__main__": + cli_main() diff --git a/main_tasksolving_cli.py b/agentverse_command/main_tasksolving_cli.py similarity index 53% rename from main_tasksolving_cli.py rename to agentverse_command/main_tasksolving_cli.py index aea6d1433..2382adf90 100644 --- a/main_tasksolving_cli.py +++ b/agentverse_command/main_tasksolving_cli.py @@ -1,3 +1,4 @@ +import os import logging # from agentverse.agentverse import AgentVerse @@ -11,12 +12,23 @@ parser.add_argument( "--task", type=str, - default="tasksolving/pipeline_brainstorming", + default="tasksolving/brainstorming", ) parser.add_argument("--debug", action="store_true") +parser.add_argument( + "--tasks_dir", + type=str, + default=os.path.join(os.path.dirname(__file__), "..", "agentverse", "tasks"), +) args = parser.parse_args() logger.set_level(logging.DEBUG if args.debug else logging.INFO) -agentversepipeline = TaskSolving.from_task(args.task) -agentversepipeline.run() + +def cli_main(): + agentversepipeline = TaskSolving.from_task(args.task, args.tasks_dir) + agentversepipeline.run() + + +if __name__ == "__main__": + cli_main() diff --git a/main_simulation_gui.py b/main_simulation_gui.py deleted file mode 100644 index 576b980c5..000000000 --- a/main_simulation_gui.py +++ /dev/null @@ -1,12 +0,0 @@ -import os -from agentverse.gui import GUI -from argparse import ArgumentParser - -parser = ArgumentParser() -parser.add_argument("--task", type=str, default="simulation/nlp_classroom_9players") -parser.add_argument("--tasks_dir", type=str, default=os.path.join( - os.path.dirname(__file__), "agentverse", "tasks")) -args = parser.parse_args() - -ui = GUI(args.task, args.tasks_dir) -ui.launch() diff --git a/setup.py b/setup.py index f4e8f2128..4d6f5f474 100644 --- a/setup.py +++ b/setup.py @@ -2,8 +2,8 @@ from setuptools.command.develop import develop import subprocess -# with open("requirements.txt", "r") as f: -# requirements = f.read().splitlines() +with open("requirements.txt", "r") as f: + requirements = f.read().splitlines() with open("README.md", "r", encoding='utf8') as fh: long_description = fh.read() @@ -24,18 +24,27 @@ "Operating System :: OS Independent", ], python_requires=">=3.9", - install_requires=[ - "PyYAML", - "fastapi", - "uvicorn", - "py3langid", - "iso-639", - "openai", - "opencv-python", - "gradio", - "httpx[socks]", - "astunparse", - "langchain", - ], + # install_requires=[ + # "PyYAML", + # "fastapi", + # "uvicorn", + # "py3langid", + # "iso-639", + # "openai", + # "opencv-python", + # "gradio", + # "httpx[socks]", + # "astunparse", + # "langchain", + # ], + install_requires=requirements, include_package_data = True, + entry_points={ + "console_scripts": [ + "agentverse-benchmark = agentverse_command.benchmark:cli_main", + "agentverse-simulation = agentverse_command.main_simulation_cli:cli_main", + "agentverse-simulation-gui = agentverse_command.main_simulation_gui:cli_main", + "agentverse-tasksolving = agentverse_command.main_tasksolving_cli:cli_main", + ], + }, ) From 6bdce1d5d9a10a674a48f1d06910837afc219df2 Mon Sep 17 00:00:00 2001 From: chenweize1998 Date: Tue, 10 Oct 2023 16:26:26 +0800 Subject: [PATCH 015/101] refactor: reorganize script location --- .github/workflows/test.yml | 2 +- .gitignore | 3 ++- .../rules/executor/coverage_test.py | 14 +++++++++----- .../tasksolving/tool_using/24point/config.yaml | 2 +- .../tasks/tasksolving/tool_using/bmi/config.yaml | 2 +- .../tasksolving/tool_using/bookclub/config.yaml | 2 +- .../tasks/tasksolving/tool_using/car/config.yaml | 2 +- .../tasks/tasksolving/tool_using/date/config.yaml | 2 +- .../tasks/tasksolving/tool_using/diy/config.yaml | 2 +- .../tasks/tasksolving/tool_using/party/config.yaml | 2 +- .../tasksolving/tool_using/sudoku/config.yaml | 2 +- .../tasksolving/tool_using/tools_simplified.json | 0 .../tasksolving/tool_using/trending/config.yaml | 2 +- .../tasksolving/tool_using/vacation/config.yaml | 2 +- scripts/__init__.py | 0 .../evaluate_commongen.py | 0 evaluate_logic.py => scripts/evaluate_logic.py | 0 evaluate_math.py => scripts/evaluate_math.py | 0 .../evaluate_responsegen.py | 0 test_pokemon_env.py | 4 ---- 20 files changed, 22 insertions(+), 21 deletions(-) rename tools_simplified.json => agentverse/tasks/tasksolving/tool_using/tools_simplified.json (100%) create mode 100644 scripts/__init__.py rename evaluate_commongen.py => scripts/evaluate_commongen.py (100%) rename evaluate_logic.py => scripts/evaluate_logic.py (100%) rename evaluate_math.py => scripts/evaluate_math.py (100%) rename evaluate_responsegen.py => scripts/evaluate_responsegen.py (100%) delete mode 100644 test_pokemon_env.py diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index bf14b09df..e593f0609 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -38,4 +38,4 @@ jobs: run: | python setup.py develop python agentverse_command/benchmark.py --task tasksolving/mgsm/gpt-3.5 --dataset_path data/mgsm/test_sample.jsonl --overwrite --output_path ci_smoke_test_output --tasks_dir ./agentverse/tasks - python evaluate_math.py --path ci_smoke_test_output/results.jsonl --ci_smoke_test \ No newline at end of file + python scripts/evaluate_math.py --path ci_smoke_test_output/results.jsonl --ci_smoke_test \ No newline at end of file diff --git a/.gitignore b/.gitignore index 66b07b913..bbfb5aec0 100644 --- a/.gitignore +++ b/.gitignore @@ -172,4 +172,5 @@ raw/ results tmp/ data/toolbench -logs/ \ No newline at end of file +logs/ +ci_smoke_test_output/ \ No newline at end of file diff --git a/agentverse/environments/tasksolving_env/rules/executor/coverage_test.py b/agentverse/environments/tasksolving_env/rules/executor/coverage_test.py index ce3938707..37c3073ba 100644 --- a/agentverse/environments/tasksolving_env/rules/executor/coverage_test.py +++ b/agentverse/environments/tasksolving_env/rules/executor/coverage_test.py @@ -29,16 +29,18 @@ def step( *args, **kwargs, ) -> Any: - from evaluate_commongen import scoring + from scripts.evaluate_commongen import scoring - coverage, missing_tokens = scoring([s.content for s in solution], [task_description]) + coverage, missing_tokens = scoring( + [s.content for s in solution], [task_description] + ) if len(missing_tokens[0]) == 0: missing_tokens = "No missing tokens." else: missing_tokens = ", ".join(missing_tokens[0]) result = f"Coverage: {coverage*100:.2f}%\nMissing Tokens: {missing_tokens}" return [ExecutorMessage(content=result)] - + async def astep( self, agent: ExecutorAgent, @@ -47,9 +49,11 @@ async def astep( *args, **kwargs, ) -> Any: - from evaluate_commongen import scoring + from scripts.evaluate_commongen import scoring - coverage, missing_tokens = scoring([s.content for s in solution], [task_description]) + coverage, missing_tokens = scoring( + [s.content for s in solution], [task_description] + ) if len(missing_tokens[0]) == 0: missing_tokens = "No missing tokens." else: diff --git a/agentverse/tasks/tasksolving/tool_using/24point/config.yaml b/agentverse/tasks/tasksolving/tool_using/24point/config.yaml index 11a185f3b..4e65b3f5b 100644 --- a/agentverse/tasks/tasksolving/tool_using/24point/config.yaml +++ b/agentverse/tasks/tasksolving/tool_using/24point/config.yaml @@ -2,7 +2,7 @@ cnt_agents: &cnt_agents 3 cnt_tool_agents: &cnt_tool_agents 2 max_rounds: &max_rounds 5 max_criticizing_rounds: 3 -tool_config: &tool_config tools_simplified.json +tool_config: &tool_config agentverse/tasks/tasksolving/tool_using/tools_simplified.json task_description: Recently, it has become popular in the AI field to verify the mathematical reasoning abilities of large language models by observing if they can solve the "24-Point Game." What is this game? Does it have a code-based solution? If it does, provide a Python code along with test cases and test its functionality. What are some other similar games that can be used to test the models' mathematical reasoning abilities? diff --git a/agentverse/tasks/tasksolving/tool_using/bmi/config.yaml b/agentverse/tasks/tasksolving/tool_using/bmi/config.yaml index 95ac4cf6a..97411d782 100644 --- a/agentverse/tasks/tasksolving/tool_using/bmi/config.yaml +++ b/agentverse/tasks/tasksolving/tool_using/bmi/config.yaml @@ -2,7 +2,7 @@ cnt_agents: &cnt_agents 3 cnt_tool_agents: &cnt_tool_agents 2 max_rounds: &max_rounds 5 max_criticizing_rounds: 3 -tool_config: &tool_config tools_simplified.json +tool_config: &tool_config agentverse/tasks/tasksolving/tool_using/tools_simplified.json task_description: I want to lose 5kg in the next 2 months. I weigh 70kg, am 170cm tall, and my age is 25. Calculate my BMI and based on that, suggest a workout routine and daily calorie intake to help me achieve my goal. diff --git a/agentverse/tasks/tasksolving/tool_using/bookclub/config.yaml b/agentverse/tasks/tasksolving/tool_using/bookclub/config.yaml index 98385570b..abc03fe11 100644 --- a/agentverse/tasks/tasksolving/tool_using/bookclub/config.yaml +++ b/agentverse/tasks/tasksolving/tool_using/bookclub/config.yaml @@ -2,7 +2,7 @@ cnt_agents: &cnt_agents 3 cnt_tool_agents: &cnt_tool_agents 2 max_rounds: &max_rounds 5 max_criticizing_rounds: 3 -tool_config: &tool_config tools_simplified.json +tool_config: &tool_config agentverse/tasks/tasksolving/tool_using/tools_simplified.json task_description: I want to kick off a book club with my friends. Can you tell me the top 5 bestselling books this month, gather the content summary for each, and find online platforms where we can buy or borrow them? diff --git a/agentverse/tasks/tasksolving/tool_using/car/config.yaml b/agentverse/tasks/tasksolving/tool_using/car/config.yaml index 1df8ccd7e..4344c707e 100644 --- a/agentverse/tasks/tasksolving/tool_using/car/config.yaml +++ b/agentverse/tasks/tasksolving/tool_using/car/config.yaml @@ -2,7 +2,7 @@ cnt_agents: &cnt_agents 4 cnt_tool_agents: &cnt_tool_agents 3 max_rounds: &max_rounds 5 max_criticizing_rounds: 3 -tool_config: &tool_config tools_simplified.json +tool_config: &tool_config agentverse/tasks/tasksolving/tool_using/tools_simplified.json task_description: I am planning to buy a new car. Could you help me compare the features and prices of the latest models of Tesla, Ford, and Toyota? Include details about range, charging time, safety features, and after-sales service. Also, provide a brief analysis of the pros and cons of each car. diff --git a/agentverse/tasks/tasksolving/tool_using/date/config.yaml b/agentverse/tasks/tasksolving/tool_using/date/config.yaml index 4dc613e90..6e12f1746 100644 --- a/agentverse/tasks/tasksolving/tool_using/date/config.yaml +++ b/agentverse/tasks/tasksolving/tool_using/date/config.yaml @@ -2,7 +2,7 @@ cnt_agents: &cnt_agents 4 cnt_tool_agents: &cnt_tool_agents 3 max_rounds: &max_rounds 5 max_criticizing_rounds: 3 -tool_config: &tool_config tools_simplified.json +tool_config: &tool_config agentverse/tasks/tasksolving/tool_using/tools_simplified.json task_description: I am planning a date with my girlfriend this week, please search for a good movie theater and a restaurant near Tsinghua University in Beijing and recommend a good movie to watch. Please search the web. diff --git a/agentverse/tasks/tasksolving/tool_using/diy/config.yaml b/agentverse/tasks/tasksolving/tool_using/diy/config.yaml index 8ea9b8ea3..8fa2f173c 100644 --- a/agentverse/tasks/tasksolving/tool_using/diy/config.yaml +++ b/agentverse/tasks/tasksolving/tool_using/diy/config.yaml @@ -2,7 +2,7 @@ cnt_agents: &cnt_agents 4 cnt_tool_agents: &cnt_tool_agents 3 max_rounds: &max_rounds 5 max_criticizing_rounds: 3 -tool_config: &tool_config tools_simplified.json +tool_config: &tool_config agentverse/tasks/tasksolving/tool_using/tools_simplified.json task_description: I've recently taken an interest in DIY home projects. Search for beginner-friendly DIY projects that can be completed over the weekend. Also, provide a list of materials required and a step-by-step guide for each project. diff --git a/agentverse/tasks/tasksolving/tool_using/party/config.yaml b/agentverse/tasks/tasksolving/tool_using/party/config.yaml index 76134a374..df7fad0bb 100644 --- a/agentverse/tasks/tasksolving/tool_using/party/config.yaml +++ b/agentverse/tasks/tasksolving/tool_using/party/config.yaml @@ -2,7 +2,7 @@ cnt_agents: &cnt_agents 4 cnt_tool_agents: &cnt_tool_agents 3 max_rounds: &max_rounds 5 max_criticizing_rounds: 3 -tool_config: &tool_config tools_simplified.json +tool_config: &tool_config agentverse/tasks/tasksolving/tool_using/tools_simplified.json task_description: I want to hold a party at somewhere around Tsinghua University tomorrow. I need you to look for some best places for holding a party nearby, and tell me whether the weather is good for holding a party tomorrow. Also, I want to know what activities can be considered in my party. Help me search the web. diff --git a/agentverse/tasks/tasksolving/tool_using/sudoku/config.yaml b/agentverse/tasks/tasksolving/tool_using/sudoku/config.yaml index e87547ca5..4d1202028 100644 --- a/agentverse/tasks/tasksolving/tool_using/sudoku/config.yaml +++ b/agentverse/tasks/tasksolving/tool_using/sudoku/config.yaml @@ -2,7 +2,7 @@ cnt_agents: &cnt_agents 3 cnt_tool_agents: &cnt_tool_agents 2 max_rounds: &max_rounds 5 max_criticizing_rounds: 3 -tool_config: &tool_config tools_simplified.json +tool_config: &tool_config agentverse/tasks/tasksolving/tool_using/tools_simplified.json task_description: I've just heard an interesting game called 'sudoku'. Can you search for the rules of this game and the solution to this game? Finally, write a python script to automatically solve this game if possible. diff --git a/tools_simplified.json b/agentverse/tasks/tasksolving/tool_using/tools_simplified.json similarity index 100% rename from tools_simplified.json rename to agentverse/tasks/tasksolving/tool_using/tools_simplified.json diff --git a/agentverse/tasks/tasksolving/tool_using/trending/config.yaml b/agentverse/tasks/tasksolving/tool_using/trending/config.yaml index b1685b131..101612774 100644 --- a/agentverse/tasks/tasksolving/tool_using/trending/config.yaml +++ b/agentverse/tasks/tasksolving/tool_using/trending/config.yaml @@ -2,7 +2,7 @@ cnt_agents: &cnt_agents 4 cnt_tool_agents: &cnt_tool_agents 3 max_rounds: &max_rounds 5 max_criticizing_rounds: 3 -tool_config: &tool_config tools_simplified.json +tool_config: &tool_config agentverse/tasks/tasksolving/tool_using/tools_simplified.json task_description: I'm currently analyzing what is popular on the website. Can you help me find the recent trending stuff. It could be anything, like trending news, products, books, movies, music, etc. Give a summarization for me. diff --git a/agentverse/tasks/tasksolving/tool_using/vacation/config.yaml b/agentverse/tasks/tasksolving/tool_using/vacation/config.yaml index 9f0c73c51..c10dd1ed0 100644 --- a/agentverse/tasks/tasksolving/tool_using/vacation/config.yaml +++ b/agentverse/tasks/tasksolving/tool_using/vacation/config.yaml @@ -2,7 +2,7 @@ cnt_agents: &cnt_agents 4 cnt_tool_agents: &cnt_tool_agents 3 max_rounds: &max_rounds 5 max_criticizing_rounds: 3 -tool_config: &tool_config tools_simplified.json +tool_config: &tool_config agentverse/tasks/tasksolving/tool_using/tools_simplified.json task_description: I'm planning a two-week vacation to Japan next month. Help me plan my itinerary. I want to visit Tokyo, Kyoto, and Osaka. Look for the top tourist attractions in each city, and also suggest the best mode of travel between these cities. Additionally, find out the weather forecast for the month I'll be visiting. diff --git a/scripts/__init__.py b/scripts/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/evaluate_commongen.py b/scripts/evaluate_commongen.py similarity index 100% rename from evaluate_commongen.py rename to scripts/evaluate_commongen.py diff --git a/evaluate_logic.py b/scripts/evaluate_logic.py similarity index 100% rename from evaluate_logic.py rename to scripts/evaluate_logic.py diff --git a/evaluate_math.py b/scripts/evaluate_math.py similarity index 100% rename from evaluate_math.py rename to scripts/evaluate_math.py diff --git a/evaluate_responsegen.py b/scripts/evaluate_responsegen.py similarity index 100% rename from evaluate_responsegen.py rename to scripts/evaluate_responsegen.py diff --git a/test_pokemon_env.py b/test_pokemon_env.py deleted file mode 100644 index b10e764e7..000000000 --- a/test_pokemon_env.py +++ /dev/null @@ -1,4 +0,0 @@ -import requests - -requests.post('http://127.0.0.1:10002/make_decision', headers={'Content-Type': 'application/json'}, json={'agent_ids': [0, 1, 2, 3, 4, 5]}) -# requests.post('http://127.0.0.1:10002/chat', headers={'Content-Type': 'application/json'}, json={'content': 'Hi!', 'receiver': 'May', 'receiver_id': 0, 'sender': 'Brendan'}) From 6d42bb6e2b58dd93e1f07fd4d5f4065c2b8cb933 Mon Sep 17 00:00:00 2001 From: chenweize1998 Date: Tue, 10 Oct 2023 16:42:30 +0800 Subject: [PATCH 016/101] bump version to 0.1.5 --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 4d6f5f474..bef006aea 100644 --- a/setup.py +++ b/setup.py @@ -10,7 +10,7 @@ setuptools.setup( name="agentverse", - version="0.1.3", + version="0.1.5", author="OpenBMB", author_email="chenweize1998@gmail.com", description="A versatile framework that streamlines the process of creating custom multi-agent environments for large language models (LLMs).", From 7954f2161435d2884908dc07d287c08edd4d116a Mon Sep 17 00:00:00 2001 From: Weize Chen <32613237+chenweize1998@users.noreply.github.com> Date: Tue, 10 Oct 2023 16:49:23 +0800 Subject: [PATCH 017/101] ci skip. Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 45f91e957..50b6536b4 100644 --- a/README.md +++ b/README.md @@ -33,7 +33,7 @@ **AgentVerse** offers a versatile framework that streamlines the process of creating custom multi-agent environments for large language models (LLMs). Designed to facilitate swift development and customization with minimal effort, our framework empowers researchers to concentrate on their research, rather than being bogged down by implementation details. -⚠️⚠️⚠️ We're refactoring the code, and the goal is to provide a flexibility to construct simulation(without a predefined goal) and task-solving(with a specific goal) environments. Please note that this README is slightly outdated, we will update it soon. If you require a stable version that exclusively supports simulation environments, you can use [`release-1.0`](https://github.com/OpenBMB/AgentVerse/tree/release-1.0) branch. +⚠️⚠️⚠️ We're refactoring the code, and the goal is to provide a flexibility to construct simulation(without a predefined goal) and task-solving(with a specific goal) environments. Please note that this README is slightly outdated, we will update it soon. If you require a stable version that exclusively supports simulation environments, you can use [`release-0.1`](https://github.com/OpenBMB/AgentVerse/tree/release-0.1) branch. --- @@ -138,7 +138,7 @@ In the context of the text evaluation scenario, we recommend users explore the [ https://github.com/OpenBMB/AgentVerse/assets/75533759/58f33468-f15b-4bac-ae01-8d0780019f85 #### Pokemon -**Currently available only in [`release-1.0`](https://github.com/OpenBMB/AgentVerse/tree/release-1.0)**. In the game, agents can walk around the game world, and interact with one another. As a player, you take on the role of an agent and can engage with others at any time. There are 6 characters in the Pokémon environment who appeared in Pokemon Emerald: [May](https://bulbapedia.bulbagarden.net/wiki/May_(game)), [Professor Birch](https://bulbapedia.bulbagarden.net/wiki/Professor_Birch), [Steven Stone](https://bulbapedia.bulbagarden.net/wiki/Steven_Stone), [Maxie](https://bulbapedia.bulbagarden.net/wiki/Maxie), [Archie](https://bulbapedia.bulbagarden.net/wiki/Archie) and [Joseph](https://bulbapedia.bulbagarden.net/wiki/Mr._Stone). +**Currently available only in [`release-0.1`](https://github.com/OpenBMB/AgentVerse/tree/release-0.1)**. In the game, agents can walk around the game world, and interact with one another. As a player, you take on the role of an agent and can engage with others at any time. There are 6 characters in the Pokémon environment who appeared in Pokemon Emerald: [May](https://bulbapedia.bulbagarden.net/wiki/May_(game)), [Professor Birch](https://bulbapedia.bulbagarden.net/wiki/Professor_Birch), [Steven Stone](https://bulbapedia.bulbagarden.net/wiki/Steven_Stone), [Maxie](https://bulbapedia.bulbagarden.net/wiki/Maxie), [Archie](https://bulbapedia.bulbagarden.net/wiki/Archie) and [Joseph](https://bulbapedia.bulbagarden.net/wiki/Mr._Stone). To launch the Pokemon game, first launch a local server with the following command: ```bash From 7c8dbca6a05653b65fcd3f683862f1783e98c7a7 Mon Sep 17 00:00:00 2001 From: Weize Chen <32613237+chenweize1998@users.noreply.github.com> Date: Tue, 10 Oct 2023 16:54:15 +0800 Subject: [PATCH 018/101] ci skip. Update README.md --- README.md | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 50b6536b4..de16a5b4f 100644 --- a/README.md +++ b/README.md @@ -93,7 +93,7 @@ In the NLP class, the professor and students engage in interactive communication Use the following command to launch the NLP Classroom example: ```bash -python main_simulation_gui.py --task simulation/nlp_classroom_9players +python agentverse_command/main_simulation_gui.py --task simulation/nlp_classroom_9players ``` https://github.com/OpenBMB/AgentVerse/assets/11704492/6ea07850-595e-4a28-a82e-f863011353c2 @@ -104,7 +104,7 @@ A prisoner's Dilemma is a thought experiment that challenges two completely rati Use the following command to launch the Prisoner Dilemma example: ```bash -python main_simulation_cli.py --task simulation/prisoner_dilemma +python agentverse_command/main_simulation_gui.py --task simulation/prisoner_dilemma ``` https://github.com/OpenBMB/AgentVerse/assets/11704492/017c46e5-c738-4fca-9352-b008e2d518bd @@ -115,7 +115,7 @@ In the Software Design example, a code writer, a code tester and a code reviewer Use the following command to launch the Software Design example: ```bash -python main_demo.py --task simulation/sde_team/sde_team_2players +python agentverse_command/main_simulation_gui.py --task simulation/sde_team/sde_team_2players ``` https://github.com/OpenBMB/AgentVerse/assets/11704492/5058066a-abee-490d-8659-b4e54661626a @@ -126,7 +126,7 @@ https://github.com/OpenBMB/AgentVerse/assets/11704492/5058066a-abee-490d-8659-b4 In the database diagnosis scenario, the Chief DBA monitors the system anomalies (e.g., slow queries, locks, crash down). If detected, the domain experts are alerted to analyze root causes, share insights, and suggest optimization solutions together. The Chief DBA then provides a summarized report to the user. ```bash -python main_simulation_gui.py --task simulation/db_diag +python agentverse_command/main_simulation_gui.py --task simulation/db_diag ``` https://github.com/OpenBMB/AgentVerse/assets/11704492/c633419d-afbb-47d4-bb12-6bb512e7af3a @@ -247,7 +247,9 @@ python setup.py develop You can create a multi-agent environments provided by us. Using the classroom scenario as an example. In this scenario, there are nine agents, one playing the role of a professor and the other eight as students. ```shell -python3 main_simulation_cli.py --task simulation/nlp_classroom_9players +python3 agentverse_command/main_simulation_cli.py --task simulation/nlp_classroom_9players +# or if you have installed AgentVerse via pip +agentverse-simulation --task simulation/nlp_classroom_9players ``` ### Simulation Local Website Demo @@ -255,7 +257,9 @@ python3 main_simulation_cli.py --task simulation/nlp_classroom_9players We also provide a local website demo for this environment. You can launch it with ```shell -python3 main_simulation_gui.py --task simulation/nlp_classroom_9players +python3 agentverse_command/main_simulation_gui.py --task simulation/nlp_classroom_9players +# or if you have installed AgentVerse via pip +agentverse-simulation-gui --task simulation/nlp_classroom_9players ``` After successfully launching the local server, you can visit [http://127.0.0.1:7860/](http://127.0.0.1:7860/) to view the classroom environment. @@ -265,7 +269,9 @@ To run the experiments with the task-solving environment proposed in our [paper] ```shell # Run the Humaneval benchmark using gpt-3.5-turbo -python3 main_tasksolving_cli.py --task tasksolving/humaneval/gpt-3.5 --dataset_path data/humaneval/test.jsonl --overwrite +python3 agentverse_command/main_tasksolving_cli.py --task tasksolving/humaneval/gpt-3.5 --dataset_path data/humaneval/test.jsonl --overwrite +# or if you have installed AgentVerse via pip +agentverse-tasksolving --task tasksolving/humaneval/gpt-3.5 --dataset_path data/humaneval/test.jsonl --overwrite ``` You can take a look at `agentverse/tasks/tasksolving` for more experiments we have done in our paper. From 63b2d33dbd063910cd94b6b9671fa178ad931154 Mon Sep 17 00:00:00 2001 From: Weize Chen <32613237+chenweize1998@users.noreply.github.com> Date: Tue, 10 Oct 2023 17:28:19 +0800 Subject: [PATCH 019/101] ci skip. Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index de16a5b4f..4e448d6cb 100644 --- a/README.md +++ b/README.md @@ -46,7 +46,7 @@ - 🛠 **Tools (Plugins) Utilization**: AgentVerse supports the multi-agent environments with tools. Currently, AgentVerse supports tools provided in [BMTools](https://github.com/OpenBMB/BMTools). ## 📰 What's New -- [2023/10/5] 💡 We release the code of our paper [AgentVerse: Facilitating Multi-Agent Collaboration and Exploring Emergent Behaviors in Agents](https://arxiv.org/abs/2308.10848), and refactor our codebase to enable the creation of both simulation and task-solving environment! +- [2023/10/5] 💡 We release the code of our paper [AgentVerse: Facilitating Multi-Agent Collaboration and Exploring Emergent Behaviors in Agents](https://arxiv.org/abs/2308.10848), and refactor our codebase to enable the creation of both simulation and task-solving environment! We have placed the code for Minecraft example in the paper at the [`minecraft`](https://github.com/OpenBMB/AgentVerse/tree/minecraft) branch. Our tool-using example will soon be updated to the `main` branch. Stay tuned! - [2023/8/22] 📝 We're excited to share our work-in-progress paper [AgentVerse: Facilitating Multi-Agent Collaboration and Exploring Emergent Behaviors in Agents](https://arxiv.org/abs/2308.10848) related to this repository.

@@ -69,7 +69,7 @@ AgentVerse is on a mission to revolutionize the multi-agent environment for larg Also, if you're passionate about advancing the frontiers of multi-agent environments and are eager to dive deeper into research, we invite you to join our team at THUNLP. To explore this exciting opportunity and embark on a collaborative journey with us, please reach out to [chenweize1998@gmail.com](chenweize1998@gmail.com) and [yushengsu.thu@gmail.com](yushengsu.thu@gmail.com) and express your interest. We're keen to welcome motivated individuals like you to our lab! -👉Also, our Discord: https://discord.gg/cnutfCtC. +👉Also, check our Discord: https://discord.gg/cnutfCtC. ## 🗓 Coming Soon - [x] Code release of our [paper](https://arxiv.org/abs/2308.10848) From c4205bd3b7f2a5eac0d3229512bc509655b32dc9 Mon Sep 17 00:00:00 2001 From: chenweize1998 Date: Wed, 11 Oct 2023 00:13:46 +0800 Subject: [PATCH 020/101] manually merge #19. --- agentverse/memory_manipulator/__init__.py | 1 + agentverse/memory_manipulator/plan.py | 79 +++++++++++++++++++ .../tasks/simulation/alice_home/config.yaml | 4 +- 3 files changed, 82 insertions(+), 2 deletions(-) create mode 100644 agentverse/memory_manipulator/plan.py diff --git a/agentverse/memory_manipulator/__init__.py b/agentverse/memory_manipulator/__init__.py index 8ea0e7c68..5d28698a8 100644 --- a/agentverse/memory_manipulator/__init__.py +++ b/agentverse/memory_manipulator/__init__.py @@ -5,4 +5,5 @@ from .base import BaseMemoryManipulator from .basic import BasicMemoryManipulator from .reflection import Reflection +from .plan import Plan diff --git a/agentverse/memory_manipulator/plan.py b/agentverse/memory_manipulator/plan.py new file mode 100644 index 000000000..530190c0f --- /dev/null +++ b/agentverse/memory_manipulator/plan.py @@ -0,0 +1,79 @@ +from __future__ import annotations + +from logging import getLogger +from typing import List, TYPE_CHECKING + +from . import memory_manipulator_registry +from .base import BaseMemoryManipulator +from ..message import Message + +if TYPE_CHECKING: + from agentverse.memory import VectorStoreMemory + from agentverse.agents.reflection_agent import ReflectionAgent + +logger = getLogger(__file__) + +PLAN_PROMPT = """Now you are act for as an agent named ${agent_name} in a virtual world. +You might need to performing reaction to the observation. +Based on the following information: +(1) The agent's description: ${role_description} +(2) Current time is ${current_time} +(3) Your history memory is ${chat_history} + +Now is ${current_time}. If all plans are expired, you have to plan for\ +the next time periods. +Do you need to generate new plans? +If yes, tell me the new plan, including the time period. +If no, just tell me No.""" + + +@memory_manipulator_registry.register("plan") +class Plan(BaseMemoryManipulator): + """ + Memory manipulator for plan. + """ + memory: VectorStoreMemory = None + agent: ReflectionAgent = None # specify ReflectionAgent + # later considering removing current_time to be more general + # and then change to BaseAgent + plan: List[str] = [] + + def manipulate_memory(self) -> str: + """ + Generate new plans + """ + prompt = self._fill_prompt_template() + result = self.agent.llm.generate_response(prompt).content + result = result.strip('.') + logger.info(f"{self.agent.name}'s new plan: {result}") + if result == "No": + return "" + else: + self.plan.append(result) + plan_message = Message( + content=result, + sender=self.agent.name, + receiver={self.agent.name}) + self.agent.memory.add_message([plan_message]) + return result + + + def _fill_prompt_template(self) -> str: + """Fill the placeholders in the prompt template + + In the conversation agent, three placeholders are supported: + - ${agent_name}: the name of the agent + - ${env_description}: the description of the environment + - ${role_description}: the description of the role of the agent + - ${chat_history}: the chat history of the agent + """ + input_arguments = { + "agent_name": self.agent.name, + "role_description": self.agent.role_description, + "chat_history": self.agent.memory.to_string(add_sender_prefix=True), + "current_time": self.agent.current_time, + } + return PLAN_PROMPT.format(**input_arguments) + + def reset(self) -> None: + pass diff --git a/agentverse/tasks/simulation/alice_home/config.yaml b/agentverse/tasks/simulation/alice_home/config.yaml index 1c79377da..8147ab38e 100644 --- a/agentverse/tasks/simulation/alice_home/config.yaml +++ b/agentverse/tasks/simulation/alice_home/config.yaml @@ -77,7 +77,7 @@ agents: memory: memory_type: vectorstore memory_manipulator: - memory_manipulator_type: reflection + memory_manipulator_type: plan prompt_template: *prompt llm: model: "gpt-4" @@ -126,4 +126,4 @@ agents: type: alice_home current_time: "2023-04-01 07:00:00" -tools: ~ \ No newline at end of file +tools: ~ From 9b03c91fd5339ca4e5e5550b54189eb9b157e8c8 Mon Sep 17 00:00:00 2001 From: chenweize1998 Date: Wed, 11 Oct 2023 18:46:25 +0800 Subject: [PATCH 021/101] fix: format error in some benchmark configs --- .../tasksolving/brainstorming/config.yaml | 21 +- .../tasksolving/humaneval/gpt-3.5/config.yaml | 19 +- .../tasksolving/humaneval/gpt-4/config.yaml | 19 +- .../tasksolving/pythoncalculator/config.yaml | 21 +- .../tasks/tasksolving/responsegen/config.yaml | 192 ------------------ agentverse_command/benchmark.py | 6 +- 6 files changed, 45 insertions(+), 233 deletions(-) delete mode 100644 agentverse/tasks/tasksolving/responsegen/config.yaml diff --git a/agentverse/tasks/tasksolving/brainstorming/config.yaml b/agentverse/tasks/tasksolving/brainstorming/config.yaml index 048c693bc..82be06bcd 100644 --- a/agentverse/tasks/tasksolving/brainstorming/config.yaml +++ b/agentverse/tasks/tasksolving/brainstorming/config.yaml @@ -101,16 +101,17 @@ name: pipeline environment: env_type: task-basic max_turn: *max_turn - role_assigner: - type: role_description - cnt_agents: *cnt_agents - decision_maker: - type: brainstorming - max_inner_turns: *max_inner_turns - executor: - type: none - evaluator: - type: basic + rule: + role_assigner: + type: role_description + cnt_agents: *cnt_agents + decision_maker: + type: brainstorming + max_inner_turns: *max_inner_turns + executor: + type: none + evaluator: + type: basic agents: - #role_assigner_agent: diff --git a/agentverse/tasks/tasksolving/humaneval/gpt-3.5/config.yaml b/agentverse/tasks/tasksolving/humaneval/gpt-3.5/config.yaml index 78b91f2c9..8b221f23c 100644 --- a/agentverse/tasks/tasksolving/humaneval/gpt-3.5/config.yaml +++ b/agentverse/tasks/tasksolving/humaneval/gpt-3.5/config.yaml @@ -129,15 +129,16 @@ name: pipeline environment: env_type: task-basic max_turn: *max_turn - role_assigner: - type: role_description - cnt_agents: *cnt_agents - decision_maker: - type: vertical-solver-first - executor: - type: none - evaluator: - type: basic + rule: + role_assigner: + type: role_description + cnt_agents: *cnt_agents + decision_maker: + type: vertical-solver-first + executor: + type: none + evaluator: + type: basic agents: - #role_assigner_agent: diff --git a/agentverse/tasks/tasksolving/humaneval/gpt-4/config.yaml b/agentverse/tasks/tasksolving/humaneval/gpt-4/config.yaml index 83d6dd458..2525b4e6b 100644 --- a/agentverse/tasks/tasksolving/humaneval/gpt-4/config.yaml +++ b/agentverse/tasks/tasksolving/humaneval/gpt-4/config.yaml @@ -125,15 +125,16 @@ name: pipeline environment: env_type: task-basic max_turn: *max_turn - role_assigner: - type: role_description - cnt_agents: *cnt_agents - decision_maker: - type: vertical-solver-first - executor: - type: code-test - evaluator: - type: basic + rule: + role_assigner: + type: role_description + cnt_agents: *cnt_agents + decision_maker: + type: vertical-solver-first + executor: + type: code-test + evaluator: + type: basic agents: - #role_assigner_agent: diff --git a/agentverse/tasks/tasksolving/pythoncalculator/config.yaml b/agentverse/tasks/tasksolving/pythoncalculator/config.yaml index 231aacf55..8615fd82c 100644 --- a/agentverse/tasks/tasksolving/pythoncalculator/config.yaml +++ b/agentverse/tasks/tasksolving/pythoncalculator/config.yaml @@ -99,16 +99,17 @@ name: pipeline environment: env_type: task-basic max_turn: *max_turn - role_assigner: - type: role_description - cnt_agents: *cnt_agents - decision_maker: - type: vertical-solver-first - max_inner_turns: *max_inner_turns - executor: - type: none - evaluator: - type: basic + rule: + role_assigner: + type: role_description + cnt_agents: *cnt_agents + decision_maker: + type: vertical-solver-first + max_inner_turns: *max_inner_turns + executor: + type: none + evaluator: + type: basic agents: - #role_assigner_agent: diff --git a/agentverse/tasks/tasksolving/responsegen/config.yaml b/agentverse/tasks/tasksolving/responsegen/config.yaml deleted file mode 100644 index b762d7c62..000000000 --- a/agentverse/tasks/tasksolving/responsegen/config.yaml +++ /dev/null @@ -1,192 +0,0 @@ -cnt_critic_agents: 3 -max_loop_rounds: &max_loop_rounds 5 -max_criticizing_rounds: 3 -human_eval: false -evaluation_dimensions: |- - -prompts: - role_assigner_prompt: &role_assigner_prompt |- - # Role Description - You are the leader of a group of experts, now you need to generate a response based on the text: - ${task_description} - - You can recruit ${cnt_critic_agents} expert in different fields. What experts will you recruit to better generate an accurate solution? - - # Response Format Guidance - You should respond with a list of expert description. For example: - 1. an electrical engineer specified in the filed of xxx - 2. an economist who is good at xxx - 3. a lawyer with a good knowledge of xxx - ... - - You don't have to give the reason. - - solver_prompt: &solver_prompt |- - # Problem - You need to generate a response based on the text: - ${task_description} - - # Previous Solution - The solution you gave in the last step is: - ${former_solution} - - # Critics - Critics in the group gave the following opinions: - ${critic_opinions} - - # Your Task - Now based upon the former solution and the critics' opinions, please give a new solution. - Your solution should contain only your response beginning with "System: ". - Do not give any additional information. - - critic_prompt: &critic_prompt |- - # Role Description and Problem to Solve - You are ${role_description}. You are in a discussion group, aiming to generate a response based on the text: - ${task_description} - - # Preliminary Solution - Now the group gives a preliminary solution as follows: - ${preliminary_solution} - - # Advice - Meanwhile, another expert gave the following advice on the solution: - ${advice} - - # Response Format Guidance - - If you thinks the preliminary solution is perfect, respond using the following format: - Action: Agree - Action Input: Agree. - (Do not output your reason for agreeing!) - - - If you think it is flawed, give your advice use the following output format: - Action: Disagree - Action Input: (explain why you disagree) - - # Your Task - Based on your knowledge in your field, do you agree that this solution is the best response based on the text? - - evaluator_prompt: &evaluator_prompt |- - # Role Description - You are an experienced dialogue teacher. As a good teacher, you carefully check the correctness of the given response based on the text. When the solution is flawed, you should patiently teach the students how to give better response. - - # Response Format Guidance - You must respond in the following format: - Interesting: (a score between 0 and 9) - Engaging: (a score between 0 and 9) - Specific: (a score between 0 and 9) - Relevant: (a score between 0 and 9) - Semantically Appropriate: (a score between 0 and 9) - Understandable: (a score between 0 and 9) - Fluent: (a score between 0 and 9) - Overall Impression: (a score between 0 and 9) - Advice: (your advice on how to correct the solution) - - # Problem and Student's Solution - Problem: ${task_description} - Student's Solution: ${solution} - - # Your Task - Now carefully check the student's solution, and give your response. - - -name: pipeline - - -environment: - env_type: task-basic - max_loop_rounds: *max_loop_rounds - rule: - order: - type: sequential - visibility: - type: all - selector: - type: basic - updater: - type: basic - describer: - type: basic - -agents: - - #role_assigner_agent: - agent_type: role_assigner - name: role assigner - prompt_template: *role_assigner_prompt - memory: - memory_type: chat_history - llm: - llm_type: gpt-3.5-turbo - model: "gpt-3.5-turbo" - temperature: 0 - max_tokens: 256 - output_parser: - type: role_assigner - - - #solver_agent: - agent_type: solver - name: Planner - prompt_template: [*solver_prompt, ""] - memory: - memory_type: chat_history - llm: - llm_type: gpt-3.5-turbo - model: "gpt-3.5-turbo" - temperature: 0 - max_tokens: 512 - - - #critic_agents: - agent_type: critic - name: Critic 1 - role_description: |- - Waiting to be assigned. - prompt_template: *critic_prompt - memory: - memory_type: chat_history - llm: - llm_type: gpt-3.5-turbo - model: "gpt-3.5-turbo" - temperature: 0 - max_tokens: 256 - output_parser: - type: responsegen-critic - - - #executor_agent: - agent_type: executor - name: Executor - prompt_template: None - memory: - memory_type: chat_history - llm: - llm_type: gpt-3.5-turbo - model: "gpt-3.5-turbo" - temperature: 0 - max_tokens: 512 - - - #evaluator_agent: - agent_type: evaluator - name: Evaluator - role_description: |- - Evaluator - prompt_template: *evaluator_prompt - memory: - memory_type: chat_history - llm: - llm_type: gpt-3.5-turbo - model: "gpt-3.5-turbo" - temperature: 0 - max_tokens: 512 - output_parser: - type: responsegen-evaluator - dimensions: - - Interesting - - Engaging - - Specific - - Relevant - - Semantically Appropriate - - Understandable - - Fluent - - Overall Impression - - -tools: - diff --git a/agentverse_command/benchmark.py b/agentverse_command/benchmark.py index e9da7cf0a..8ff53333a 100644 --- a/agentverse_command/benchmark.py +++ b/agentverse_command/benchmark.py @@ -62,12 +62,12 @@ def cli_main(): assert args.tool_tmp_path is not None with open(args.tool_tmp_path, "w") as f: f.write(json.dumps(example["tools"])) - agentversepipeline = TaskSolving.from_task(args.task, args.tasks_dir) - agentversepipeline.environment.set_task_description(example["input"]) + agentverse = TaskSolving.from_task(args.task, args.tasks_dir) + agentverse.environment.set_task_description(example["input"]) # print(args.single_agent) # print(args.discussion_mode) # exit() - plan, result, logs = agentversepipeline.run() + plan, result, logs = agentverse.run() f.write( json.dumps( { From 02086999362b100d31aa8c4d57843606f164a50e Mon Sep 17 00:00:00 2001 From: chenweize1998 Date: Wed, 11 Oct 2023 18:51:10 +0800 Subject: [PATCH 022/101] fix: update MANIFEST.in [ci skip] --- MANIFEST.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MANIFEST.in b/MANIFEST.in index f72f5a0dc..f9aa599fc 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,2 +1,2 @@ -include agentverse/tasks/*/* include agentverse/tasks/*/*/* +include agentverse/tasks/*/*/*/* From 88744f1089f689bcebb6c9aaa4c9fcc9f1aee549 Mon Sep 17 00:00:00 2001 From: mlmz <54172054+minleminzui@users.noreply.github.com> Date: Wed, 11 Oct 2023 19:43:33 +0800 Subject: [PATCH 023/101] fix: arrange output parser classes (#59) * fix: arrange output parser classes Put all the output parser classes in one place. Remove redundant output parser classes. Reuse output parser classes with the same functionality. * fix: arrange output parser classes Put all the output parser classes in one place. Remove redundant output parser classes. Reuse output parser classes with the same functionality. * fix: output parser error * fix: output parser error --------- Co-authored-by: chenweize1998 --- agentverse/__init__.py | 5 +- agentverse/agents/base.py | 2 +- .../agents/simulation_agent/reflection.py | 2 +- agentverse/initialization.py | 2 +- agentverse/output_parser/__init__.py | 5 + agentverse/output_parser/output_parser.py | 621 ++++++++++++++++++ agentverse/parser.py | 25 - agentverse/tasks/__init__.py | 28 +- .../simulation/alice_home/output_parser.py | 29 - .../tasks/simulation/db_diag/output_parser.py | 40 -- .../math_problem_2players_tools/config.yaml | 10 +- .../output_parser.py | 32 - .../nlp_classroom_3players/output_parser.py | 31 - .../output_parser.py | 39 -- .../nlp_classroom_9players/output_parser.py | 36 - .../output_parser.py | 34 - .../tasks/simulation/pokemon/output_parser.py | 36 - .../prisoner_dilemma/output_parser.py | 74 --- .../sde_team_2players/output_parser.py | 19 - .../sde_team_3players/output_parser.py | 19 - .../brainstorming/output_parser.py | 77 --- .../tasksolving/commongen/output_parser.py | 93 --- .../tasksolving/humaneval/output_parser.py | 311 --------- .../tasksolving/logic_grid/output_parser.py | 13 - .../tasks/tasksolving/mgsm/output_parser.py | 166 ----- .../pythoncalculator/output_parser.py | 19 - .../tasksolving/responsegen/output_parser.py | 104 --- .../tool_using/24point/config.yaml | 2 +- .../tasksolving/tool_using/bmi/config.yaml | 2 +- .../tool_using/bookclub/config.yaml | 2 +- .../tasksolving/tool_using/car/config.yaml | 2 +- .../tasksolving/tool_using/date/config.yaml | 2 +- .../tasksolving/tool_using/diy/config.yaml | 2 +- .../tasksolving/tool_using/output_parser.py | 77 --- .../tasksolving/tool_using/party/config.yaml | 2 +- .../tasksolving/tool_using/sudoku/config.yaml | 2 +- .../tool_using/trending/config.yaml | 2 +- .../tool_using/vacation/config.yaml | 2 +- 38 files changed, 646 insertions(+), 1323 deletions(-) create mode 100644 agentverse/output_parser/__init__.py create mode 100644 agentverse/output_parser/output_parser.py delete mode 100644 agentverse/parser.py delete mode 100644 agentverse/tasks/simulation/alice_home/output_parser.py delete mode 100644 agentverse/tasks/simulation/db_diag/output_parser.py delete mode 100644 agentverse/tasks/simulation/math_problem_2players_tools/output_parser.py delete mode 100644 agentverse/tasks/simulation/nlp_classroom_3players/output_parser.py delete mode 100644 agentverse/tasks/simulation/nlp_classroom_3players_withtool/output_parser.py delete mode 100644 agentverse/tasks/simulation/nlp_classroom_9players/output_parser.py delete mode 100644 agentverse/tasks/simulation/nlp_classroom_9players_group/output_parser.py delete mode 100644 agentverse/tasks/simulation/pokemon/output_parser.py delete mode 100644 agentverse/tasks/simulation/prisoner_dilemma/output_parser.py delete mode 100644 agentverse/tasks/simulation/sde_team/sde_team_2players/output_parser.py delete mode 100644 agentverse/tasks/simulation/sde_team/sde_team_3players/output_parser.py delete mode 100644 agentverse/tasks/tasksolving/brainstorming/output_parser.py delete mode 100644 agentverse/tasks/tasksolving/commongen/output_parser.py delete mode 100644 agentverse/tasks/tasksolving/humaneval/output_parser.py delete mode 100644 agentverse/tasks/tasksolving/logic_grid/output_parser.py delete mode 100644 agentverse/tasks/tasksolving/mgsm/output_parser.py delete mode 100644 agentverse/tasks/tasksolving/pythoncalculator/output_parser.py delete mode 100644 agentverse/tasks/tasksolving/responsegen/output_parser.py delete mode 100644 agentverse/tasks/tasksolving/tool_using/output_parser.py diff --git a/agentverse/__init__.py b/agentverse/__init__.py index af88fdd9e..4512a99dd 100644 --- a/agentverse/__init__.py +++ b/agentverse/__init__.py @@ -1,7 +1,4 @@ -from .tasks import * - - -# from .agents import Agent +from .output_parser import output_parser_registry from .environments import env_registry from .environments.simulation_env.rules.order import order_registry from .environments.simulation_env.rules.describer import describer_registry diff --git a/agentverse/agents/base.py b/agentverse/agents/base.py index 084bc5135..4f118e08c 100644 --- a/agentverse/agents/base.py +++ b/agentverse/agents/base.py @@ -8,7 +8,7 @@ from agentverse.llms import BaseLLM from agentverse.memory import BaseMemory, ChatHistoryMemory from agentverse.message import Message -from agentverse.parser import OutputParser +from agentverse.output_parser import OutputParser from agentverse.memory_manipulator import BaseMemoryManipulator diff --git a/agentverse/agents/simulation_agent/reflection.py b/agentverse/agents/simulation_agent/reflection.py index e9303032b..bbbcf9f10 100644 --- a/agentverse/agents/simulation_agent/reflection.py +++ b/agentverse/agents/simulation_agent/reflection.py @@ -14,7 +14,7 @@ from agentverse.llms import BaseLLM from agentverse.memory import BaseMemory, ChatHistoryMemory from agentverse.message import Message -from agentverse.parser import OutputParser +from agentverse.output_parser import OutputParser from agentverse.message import Message from agentverse.agents.base import BaseAgent diff --git a/agentverse/initialization.py b/agentverse/initialization.py index ed21733e0..13ef54e77 100644 --- a/agentverse/initialization.py +++ b/agentverse/initialization.py @@ -19,7 +19,7 @@ from agentverse.memory import memory_registry from agentverse.memory_manipulator import memory_manipulator_registry -from agentverse.parser import output_parser_registry +from agentverse.output_parser import output_parser_registry if TYPE_CHECKING: from agentverse.agents import BaseAgent diff --git a/agentverse/output_parser/__init__.py b/agentverse/output_parser/__init__.py new file mode 100644 index 000000000..8b54c8edd --- /dev/null +++ b/agentverse/output_parser/__init__.py @@ -0,0 +1,5 @@ +from agentverse.registry import Registry + +output_parser_registry = Registry(name="OutputParserRegistry") + +from .output_parser import * \ No newline at end of file diff --git a/agentverse/output_parser/output_parser.py b/agentverse/output_parser/output_parser.py new file mode 100644 index 000000000..556d9ff6e --- /dev/null +++ b/agentverse/output_parser/output_parser.py @@ -0,0 +1,621 @@ +from __future__ import annotations + +import re +from abc import abstractmethod +import json +from typing import Union, List, Tuple, NamedTuple, TYPE_CHECKING + +from . import output_parser_registry + +from agentverse.utils import AgentAction, AgentFinish, AgentCriticism + +from agentverse.llms import LLMResult +from agentverse.logging import logger + +from pydantic import BaseModel + +if TYPE_CHECKING: + from agentverse.agents.base import BaseAgent + from agentverse.environments.base import BaseEnvironment + +class OutputParserError(Exception): + """Exception raised when parsing output from a command fails.""" + + def __init__(self, message): + self.message = message + + def __str__(self): + return "Failed to parse output of the model:%s\n " % self.message + + +class OutputParser(BaseModel): + """Base class for output parsers.""" + + @abstractmethod + def parse(self, output: LLMResult) -> NamedTuple: + pass + + +@output_parser_registry.register("alice_home") +class AliceHomeParser(OutputParser): + def parse(self, output: LLMResult) -> Union[AgentAction, AgentFinish]: + text = output.content + cleaned_output = text.strip() + cleaned_output = re.sub(r"\n+", "\n", cleaned_output) + cleaned_output = cleaned_output.split("\n") + if not ( + len(cleaned_output) == 2 + and cleaned_output[0].startswith("Thought:") + and cleaned_output[1].startswith("Action:") + ): + raise OutputParserError(text) + + action = cleaned_output[1][len("Action:") :].strip() + + return AgentFinish({"output": action}, text) + + +@output_parser_registry.register("db_diag") +@output_parser_registry.register("nlp_classroom_3players_withtool") +class CommonParser1(OutputParser): + def parse(self, output: LLMResult) -> Union[AgentAction, AgentFinish]: + text = output.content + cleaned_output = text.strip() + cleaned_output = re.sub(r"\n+", "\n", cleaned_output) + cleaned_output = cleaned_output.split("\n") + if not ( + len(cleaned_output) == 3 + and cleaned_output[0].startswith("Thought:") + and cleaned_output[1].startswith("Action:") + and cleaned_output[2].startswith("Action Input:") + ): + raise OutputParserError(text) + action = cleaned_output[1][len("Action:") :].strip() + action_input = cleaned_output[2][len("Action Input:") :].strip() + if action in ["Speak"]: + return AgentFinish({"output": action_input}, text) + elif action == "CallOn": + return AgentFinish({"output": "[CallOn] " + action_input}, text) + elif action == "RaiseHand": + return AgentFinish({"output": "[RaiseHand] " + action_input}, text) + elif action == "Listen": + return AgentFinish({"output": ""}, text) + else: + return AgentAction(action.lower(), action_input, text) + + +@output_parser_registry.register("math_problem_2players_tools") +class MathProblem2PlayersToolsParser(OutputParser): + def parse(self, output: LLMResult) -> Union[AgentAction, AgentFinish]: + text = output.content + cleaned_output = text.strip() + cleaned_output = re.sub(r"\n+", "\n", cleaned_output) + cleaned_output = cleaned_output.split("\n") + if not ( + len(cleaned_output) == 2 + and cleaned_output[0].startswith("Action:") + and cleaned_output[1].startswith("Action Input:") + ): + raise OutputParserError(text) + action = cleaned_output[0][len("Action:") :].strip() + action_input = cleaned_output[1][len("Action Input:") :].strip() + if action == "Speak": + return AgentFinish({"output": action_input}, text) + else: + return AgentAction(action, action_input, text) + + +@output_parser_registry.register("nlp_classroom_3players") +class NlpClassroom3PlayersParser(OutputParser): + def parse(self, output: LLMResult) -> Union[AgentAction, AgentFinish]: + text = output.content + cleaned_output = text.strip() + cleaned_output = re.sub(r"\n+", "\n", cleaned_output) + cleaned_output = cleaned_output.split("\n") + if not ( + len(cleaned_output) == 2 + and cleaned_output[0].startswith("Action:") + and cleaned_output[1].startswith("Action Input:") + ): + raise OutputParserError(text) + action = cleaned_output[0][len("Action:") :].strip() + action_input = cleaned_output[1][len("Action Input:") :].strip() + if action == "Speak": + return AgentFinish({"output": action_input}, text) + else: + raise OutputParserError(text) + + +@output_parser_registry.register("nlp_classroom_9players") +class NlpClassroom9PlayersParser(OutputParser): + def parse(self, output: LLMResult) -> Union[AgentAction, AgentFinish]: + text = output.content + cleaned_output = text.strip() + cleaned_output = re.sub(r"\n+", "\n", cleaned_output) + cleaned_output = cleaned_output.split("\n") + if not ( + len(cleaned_output) == 2 + and cleaned_output[0].startswith("Action:") + and cleaned_output[1].startswith("Action Input:") + ): + raise OutputParserError(text) + action = cleaned_output[0][len("Action:") :].strip() + action_input = cleaned_output[1][len("Action Input:") :].strip() + if action == "Speak": + return AgentFinish({"output": action_input}, text) + elif action == "CallOn": + return AgentFinish({"output": "[CallOn] " + action_input}, text) + elif action == "RaiseHand": + return AgentFinish({"output": "[RaiseHand] " + action_input}, text) + elif action == "Listen": + return AgentFinish({"output": ""}, text) + else: + return AgentAction(action, action_input, text) + + +@output_parser_registry.register("nlp_classroom_9players_group") +class NlpClassroom9PlayersGroupParser(OutputParser): + def parse(self, output: LLMResult) -> Union[AgentAction, AgentFinish]: + text = output.content + cleaned_output = text.strip() + cleaned_output = re.sub(r"\n+", "\n", cleaned_output) + cleaned_output = cleaned_output.split("\n") + if not ( + len(cleaned_output) == 2 + and cleaned_output[0].startswith("Action:") + and cleaned_output[1].startswith("Action Input:") + ): + raise OutputParserError(text) + action = cleaned_output[0][len("Action:") :].strip() + action_input = cleaned_output[1][len("Action Input:") :].strip() + if action == "Speak": + return AgentFinish({"output": action_input}, text) + elif action in ["CallOn", "RaiseHand", "GroupDiscuss"]: + return AgentFinish({"output": f"[{action}] {action_input}"}, text) + elif action == "Listen": + return AgentFinish({"output": ""}, text) + else: + return AgentAction(action, action_input, text) + + +@output_parser_registry.register("pokemon") +class PokemonParser(OutputParser): + def parse(self, output: LLMResult) -> Union[AgentAction, AgentFinish]: + text = output.content + cleaned_output = text.strip() + cleaned_output = re.sub(r"\n+", "\n", cleaned_output) + cleaned_output = cleaned_output.split("\n") + if not ( + len(cleaned_output) == 3 + and cleaned_output[0].startswith("Thought:") + and cleaned_output[1].startswith("Action:") + and cleaned_output[2].startswith("Action Input:") + ): + raise OutputParserError(text) + action = cleaned_output[1][len("Action:") :].strip() + action_input = cleaned_output[2][len("Action Input:") :].strip() + try: + action_input = json.loads(action_input) + except json.JSONDecodeError: + raise OutputParserError(text) + action_input["action"] = action + return AgentFinish({"output": json.dumps(action_input)}, text) + + +@output_parser_registry.register("prisoner_dilemma") +class PrisonerDilemmaParser(OutputParser): + # make sure 1 1 2 2 3 3 + cur_round: int = 1 + encounter_cur_round: bool = False + + def parse( + self, agent: "BaseAgent", environment: "BaseEnvironment", output: LLMResult + ) -> Union[AgentAction, AgentFinish]: + text = output.content + cleaned_output = text.strip() + cleaned_output = re.sub(r"\n+", "\n", cleaned_output) + cleaned_output = cleaned_output.split("\n") + if not ( + len(cleaned_output) == 2 + and cleaned_output[0].startswith("Action:") + and cleaned_output[1].startswith("Action Input:") + ): + raise OutputParserError(text) + action = cleaned_output[0][len("Action:") :].strip() + action_input = cleaned_output[1][len("Action Input:") :].strip() + + if action == "Speak": + # make sure the police count the round right + # if agent.name == "Police": + # action_input = re.sub(r'Round (\d+)', f'Round {self.cur_round}', action_input) + # self.cur_round += 1 + # if self.encounter_cur_round: + # self.encounter_cur_round = False + # self.cur_round += 1 + # else: + # self.encounter_cur_round = True + + # each time police speak is a new round + if agent.name == "Police": + if environment.cnt_turn == (environment.max_turns - 4): + action_input = ( + "Attention! You are now required to made your final decision and I will made the " + "final judgement to both of you based on this time, Please Answer now !" + ) + + elif environment.cnt_turn == (environment.max_turns - 2): + action_input = "Attention! Suspect2, it's now your time to make your final decision, Please Answer now !" + + # elif self.cur_round == 1: + # action_input = "Hey Listen! You are both arrested, and I am going to give you both a chance to walk out of here," \ + # "But you should comply with the following rules:" \ + # "- If one of you are willing to testifies against the other and the other one remains silent, then the one who testifies will be released IMMEDIATELY, while the silent one will be sentenced to TEN years in prison." \ + # "- If both of you remain silent, you will each receive a sentence of ONE year in prison." \ + # "- It seems that always testifying is a goog strategy, So! if you both choose to testify against each other, you will each receive a sentence of FIVE years in prison." \ + # "Now, it's your time to consider testifying or remaining silent. Remember this is a best chance you might ever have to walk out of here without guilty." \ + # "I will noticed both of you WHEN you have to make your final decision! Before that, try to make your best!" \ + + self.cur_round += 1 + + return AgentFinish({"output": action_input}, text) + else: + raise OutputParserError(text) + + +@output_parser_registry.register("sde_team/sde_team_2players") +@output_parser_registry.register("sde_team/sde_team_3players") +@output_parser_registry.register("commongen") +@output_parser_registry.register("humaneval-manager") +@output_parser_registry.register("mgsm") +@output_parser_registry.register("dummy") +@output_parser_registry.register("responsegen") +class CommonParser2(OutputParser): + # def parse(self, agent, env, output: LLMResult) -> Union[AgentAction, AgentFinish]: + def parse(self, output: LLMResult) -> Union[AgentAction, AgentFinish]: + return AgentFinish({"output": output.content}, output.content) + + +@output_parser_registry.register("role_assigner") +class RoleAssignerParser(OutputParser): + cnt_critic_agents: int = 0 + + def parse(self, output: LLMResult) -> List[str]: + text = output.content + pattern = re.compile(r"\d\.\s*(.+)") + roles = pattern.findall(text) + if len(roles) < self.cnt_critic_agents: + logger.error( + f"Role assigner failed to assign roles to {self.cnt_critic_agents} critics!" + ) + raise OutputParserError(text) + return roles + + +@output_parser_registry.register("evaluator") +class EvaluatorParser(OutputParser): + dimensions: List[str] = None + + def parse(self, output: LLMResult) -> Tuple[List[int], str]: + text = output.content + cleaned_output = re.sub(r"\n+", "\n", text.strip()) + checks = cleaned_output.split("\n") + patterns = [ + re.compile(r"(?:\d\.\s*)?" + dimension + r":\s*(\d)") + for dimension in self.dimensions + ] + try: + # find score and advice + score = [ + int(pattern.findall(checks[i])[0]) for i, pattern in enumerate(patterns) + ] + advice_text = "".join(checks[len(self.dimensions) :]) + advice = re.findall(r"(?:\d\.\s*)?Advice:\s*(.+)", advice_text)[0] + # logger.info("Evaluator give the following advice:\n" + advice) + except (IndexError, ValueError): + # logger.error("Bad response from evaluator!") + raise OutputParserError(text) + return score, advice + + +@output_parser_registry.register("humaneval-solver") +class HumanevalSolverParser(OutputParser): + def parse(self, output: LLMResult) -> Union[AgentAction, AgentFinish]: + text = output.content + # start_pos = text.find("```") + # end_pos = text.rfind("```") + # if end_pos == -1: + # raise OutputParserError(text) + # text = text[start_pos:end_pos] + # cleaned_output = text.strip().strip("```").strip() + # if cleaned_output.startswith("python"): + # cleaned_output = cleaned_output[6:].strip() + # elif cleaned_output.startswith("python3"): + # cleaned_output = cleaned_output[7:].strip() + code = re.findall(r"```.*?\n(.+?)```", text, re.DOTALL)[-1] + + return AgentFinish({"output": code}, text) + + +@output_parser_registry.register("humaneval-executor") +class HumanevalSolverParser(OutputParser): + def parse(self, output: LLMResult) -> Union[AgentAction, AgentFinish]: + text = output.content + try: + parsed_result = re.findall( + r"Thought:(.+?)Reasoning:(.+?)Criticism:(.+?)File Path:(.+?)Code:(.+?)Command:(.+)", + text, + re.DOTALL, + )[0] + cleaned_output = { + "thought": parsed_result[0].strip(), + "reasoning": parsed_result[1].strip(), + "criticism": parsed_result[2].strip(), + "file_path": parsed_result[3].strip().strip("`"), + "code": parsed_result[4] + .strip() + .strip("```") + .strip("python") + .strip("python3"), + "command": parsed_result[5].strip().strip("`"), + } + except BaseException as e: + raise OutputParserError(text) + + return AgentFinish({"output": cleaned_output}, text) + + +@output_parser_registry.register("humaneval-evaluator") +class HumanevalEvaluatorParser(OutputParser): + dimensions: List[str] = None + + def parse(self, output: LLMResult) -> Tuple[List[int], str]: + text = output.content + cleaned_output = re.sub(r"\n+", "\n", text.strip()) + checks = cleaned_output.split("\n") + + patterns = [ + re.compile(r"(?:\d.\s*)?" + dimension + r":\s*(\d)") + for dimension in self.dimensions + ] + + advice = "" + for check in reversed(checks): + advice = check + advice + if check.startswith("Advice:"): + break + checks[-1] = advice + try: + # find score and advice + score = [] + for pattern in patterns: + for check in checks[:-1]: + if pattern.findall(check): + score.append(bool(int(pattern.findall(check)[0]))) + break + advice = re.findall(r"(?:\d.\s*)?Advice:\s*(.+)", checks[-1])[0] + # logger.info("Evaluator give the following advice:\n" + advice) + except (IndexError, ValueError): + # logger.error("Bad response from evaluator!") + raise OutputParserError(text) + return score[0], advice + + +@output_parser_registry.register("humaneval-critic-agree") +class HumanevalyCriticParser(OutputParser): + def parse(self, output: LLMResult) -> AgentCriticism: + text = output.content + if "[Agree]" in text: + return AgentCriticism(True, "") + else: + return AgentCriticism(False, text) + + +@output_parser_registry.register("mgsm-evaluator") +class MGSMEvaluatorParser(OutputParser): + dimensions: List[str] = None + + def parse(self, output: LLMResult) -> Tuple[List[int], str]: + text = output.content + cleaned_output = re.sub(r"\n+", "\n", text.strip()) + # checks = cleaned_output.split("\n") + + patterns = [ + re.compile(r"(?:\d.\s*)?" + dimension + r":\s*(\d)") + for dimension in self.dimensions + ] + try: + # find score and advice + score_num = [ + int(pattern.findall(cleaned_output)[0]) + for i, pattern in enumerate(patterns) + ][0] + if score_num == 0: + score = False + elif score_num == 1: + score = True + else: + raise ValueError("Bad score!") + pat = re.compile(r"(?:\d.\s*)?Response:\s*(.+)", re.DOTALL) + advice = pat.findall(cleaned_output)[0] + # logger.info("Evaluator give the following advice:\n" + advice) + except (IndexError, ValueError): + # logger.error("Bad response from evaluator!") + raise OutputParserError(text) + return score, advice + + +@output_parser_registry.register("mgsm-critic-agree") +class MGSMCriticAgreeParser(OutputParser): + def parse(self, output: LLMResult) -> AgentCriticism: + text = output.content + text = re.sub(r"\n+", "\n", text.strip()) + # checks = text.split("\n") + # if not text.startswith("Thought:"): + # raise OutputParserError(text) + # if not (checks[0].startswith("Action:")): + # raise OutputParserError(text) + # if checks[0].strip(". ") == "Action: Agree": + # return AgentCriticism(True, "") + if "[Agree]" in text: + return AgentCriticism(True, "") + else: + # pattern = re.compile(r"Action Input: ([\S\n ]+)") + # try: + # criticism = pattern.findall(text)[0].strip() + # criticism = ( + # re.findall(r"Output:\S?(.+)", text)[0].replace("[Wrong]", "") + # ).strip() + criticism = text.replace("[Disagree]", "").strip() + # except IndexError: + # logger.error("Bad response from critic!") + # raise OutputParserError(text) + # criticism = "I think the solution is not correct. Please think carefully and correct it." + return AgentCriticism(False, criticism) + # else: + # raise OutputParserError(text) + + +@output_parser_registry.register("responsegen-evaluator") +class ResponseGenEvaluatorParser(OutputParser): + dimensions: List[str] = None + + def parse(self, output: LLMResult) -> Tuple[List[int], str]: + text = output.content + cleaned_output = re.sub(r"\n+", "\n", text.strip()) + checks = cleaned_output.split("\n") + + patterns = [ + re.compile(r"(?:\d.\s*)?" + dimension + r":\s*(\d+)") + for dimension in self.dimensions + ] + + advice = "" + for check in reversed(checks): + advice = check + advice + if check.startswith("Advice:"): + break + checks[-1] = advice + try: + # find score and advice + score = [ + int(pattern.findall(checks[i])[0]) for i, pattern in enumerate(patterns) + ] + advice = re.findall(r"(?:\d.\s*)?Advice:\s*(.+)", checks[-1])[0] + # logger.info("Evaluator give the following advice:\n" + advice) + except (IndexError, ValueError): + # logger.error("Bad response from evaluator!") + raise OutputParserError(text) + return score, advice + + +@output_parser_registry.register("responsegen-critic") +@output_parser_registry.register("critic") +class CommonParser3(OutputParser): + def parse(self, output: LLMResult) -> AgentCriticism: + text = output.content + text = re.sub(r"\n+", "\n", text.strip()) + checks = text.split("\n") + if not (checks[0].startswith("Action:")): + raise OutputParserError(text) + if checks[0].strip(". ") == "Action: Agree": + return AgentCriticism(True, "") + elif checks[0].strip(". ") == "Action: Disagree": + pattern = re.compile(r"Action Input: ([\S\n ]+)") + try: + criticism = pattern.findall(text)[0].strip() + except IndexError: + criticism = ( + "I think it is not correct. Please think carefully and improve it." + ) + # raise OutputParserError(text) + return AgentCriticism(False, criticism) + else: + raise OutputParserError(text) + + +@output_parser_registry.register("responsegen-critic-2") +class ResponseGenCriticParser(OutputParser): + def parse(self, output: LLMResult) -> AgentCriticism: + text = output.content + # text = re.sub(r"\n+", "\n", text.strip()) + # checks = text.split("\n") + # if not (checks[0].startswith("Action:")): + # raise OutputParserError(text) + # if checks[0].strip(". ") == "Action: Agree": + # return AgentCriticism(True, "") + # elif checks[0].strip(". ") == "Action: Disagree": + # pattern = re.compile(r"Action Input: ([\S\n ]+)") + # try: + # criticism = pattern.findall(text)[0].strip() + # except IndexError: + # # criticism = "I think the solution is not correct. Please think carefully and correct it." + # raise OutputParserError(text) + # return AgentCriticism(False, criticism) + # else: + # raise OutputParserError(text) + result = re.findall(r"Decision:(.+?)Response:(.+)", text, re.DOTALL) + if len(result) == 0: + result = ["Disagree", "I think the response can be further improved."] + else: + result = result[0] + if "Agree" in result[0]: + return AgentCriticism(True, "") + else: + return AgentCriticism(False, result[1].strip()) + + +@output_parser_registry.register("role-description-name-assigner") +class RoleAssignerParser(OutputParser): + cnt_critic_agents: int = 0 + + def parse(self, output: LLMResult) -> List[str]: + text = output.content + pattern = re.compile(r"\d+?\.\s*(.+?) - (.+)") + roles = pattern.findall(text) + if len(roles) < self.cnt_critic_agents: + logger.error( + f"Role assigner failed to assign roles to {self.cnt_critic_agents} critics!" + ) + raise OutputParserError(text) + res = [] + for role in roles: + res.append({"name": role[0], "description": role[1]}) + return res + + +@output_parser_registry.register("tool-using-solver") +class SolverParser(OutputParser): + def parse(self, output: LLMResult) -> Union[AgentAction, AgentFinish]: + text = output.content + pattern = re.compile(r"\d+?\.\s*(.+?) - (.+)") + tasks = pattern.findall(text) + if len(tasks) == 0: + raise OutputParserError(text) + return AgentFinish({"output": tasks}, text) + + +@output_parser_registry.register("tool-using-executor") +class ToolUsingSolverParser(OutputParser): + def parse(self, output: LLMResult) -> Union[AgentAction, AgentFinish]: + if output.function_name != "": + return AgentAction( + tool=output.function_name, + tool_input=output.function_arguments, + log=output.content, + ) + else: + return AgentFinish({"output": output.content}, output.content) + + +@output_parser_registry.register("tool-using-evaluator") +class HumanevalEvaluatorParser(OutputParser): + def parse(self, output: LLMResult) -> Tuple[List[int], str]: + text = output.content + try: + result = re.findall(r"Status:(.+?)Speak:(.+)", text, re.DOTALL)[0] + score = bool(int(result[0])) + words = result[1].strip() + except (IndexError, ValueError): + # logger.error("Bad response from evaluator!") + raise OutputParserError(text) + return score, words diff --git a/agentverse/parser.py b/agentverse/parser.py deleted file mode 100644 index abe7ae14e..000000000 --- a/agentverse/parser.py +++ /dev/null @@ -1,25 +0,0 @@ -from agentverse.registry import Registry -from typing import NamedTuple -from abc import abstractmethod -from agentverse.llms.base import LLMResult -from pydantic import BaseModel - -output_parser_registry = Registry(name="OutputParserRegistry") - - -class OutputParserError(Exception): - """Exception raised when parsing output from a command fails.""" - - def __init__(self, message): - self.message = message - - def __str__(self): - return "Failed to parse output of the model:%s\n " % self.message - - -class OutputParser(BaseModel): - """Base class for output parsers.""" - - @abstractmethod - def parse(self, output: LLMResult) -> NamedTuple: - pass diff --git a/agentverse/tasks/__init__.py b/agentverse/tasks/__init__.py index 77f33815d..426bc0f3a 100644 --- a/agentverse/tasks/__init__.py +++ b/agentverse/tasks/__init__.py @@ -1,30 +1,4 @@ import os import yaml -from .simulation.math_problem_2players_tools.output_parser import ( - MathProblem2PlayersToolsParser, -) -from .simulation.nlp_classroom_3players.output_parser import NlpClassroom3PlayersParser -from .simulation.nlp_classroom_9players.output_parser import NlpClassroom9PlayersParser -from .simulation.nlp_classroom_3players_withtool.output_parser import ( - NlpClassroom3PlayersWithtoolParser, -) -from .simulation.nlp_classroom_9players_group.output_parser import ( - NlpClassroom9PlayersGroupParser, -) -from .simulation.db_diag.output_parser import DBDiag - -from .simulation.prisoner_dilemma.output_parser import PrisonerDilemmaParser - -from .simulation.pokemon.output_parser import PokemonParser -from .simulation.sde_team.sde_team_3players.output_parser import SdeTeamParser -from .simulation.sde_team.sde_team_2players.output_parser import SdeTeamGivenTestsParser - -from .tasksolving.pythoncalculator.output_parser import PipelinePythoncalculatorParser -from .tasksolving.brainstorming.output_parser import * -from .tasksolving.humaneval.output_parser import * -from .tasksolving.tool_using.output_parser import * -from .tasksolving.mgsm.output_parser import * -from .tasksolving.responsegen.output_parser import * -from .tasksolving.logic_grid.output_parser import * -from .tasksolving.commongen.output_parser import * +from agentverse.output_parser import * diff --git a/agentverse/tasks/simulation/alice_home/output_parser.py b/agentverse/tasks/simulation/alice_home/output_parser.py deleted file mode 100644 index 32d6a5faa..000000000 --- a/agentverse/tasks/simulation/alice_home/output_parser.py +++ /dev/null @@ -1,29 +0,0 @@ -from __future__ import annotations - -import re -from typing import Union - -from agentverse.parser import OutputParser, LLMResult - -from agentverse.utils import AgentAction, AgentFinish - -from agentverse.parser import OutputParserError, output_parser_registry - - -@output_parser_registry.register("alice_home") -class AliceHomeParser(OutputParser): - def parse(self, output: LLMResult) -> Union[AgentAction, AgentFinish]: - text = output.content - cleaned_output = text.strip() - cleaned_output = re.sub(r"\n+", "\n", cleaned_output) - cleaned_output = cleaned_output.split("\n") - if not ( - len(cleaned_output) == 2 - and cleaned_output[0].startswith("Thought:") - and cleaned_output[1].startswith("Action:") - ): - raise OutputParserError(text) - - action = cleaned_output[1][len("Action:"):].strip() - - return AgentFinish({"output": action}, text) diff --git a/agentverse/tasks/simulation/db_diag/output_parser.py b/agentverse/tasks/simulation/db_diag/output_parser.py deleted file mode 100644 index 9fad13f78..000000000 --- a/agentverse/tasks/simulation/db_diag/output_parser.py +++ /dev/null @@ -1,40 +0,0 @@ -from __future__ import annotations - -import re -from typing import Union - - -# from langchain.schema import AgentAction, AgentFinish -from agentverse.utils import AgentAction, AgentFinish - -from agentverse.parser import OutputParserError, output_parser_registry -from agentverse.parser import OutputParser -from agentverse.llms.base import LLMResult - - -@output_parser_registry.register("db_diag") -class DBDiag(OutputParser): - def parse(self, output: LLMResult) -> Union[AgentAction, AgentFinish]: - text = output.content - cleaned_output = text.strip() - cleaned_output = re.sub(r"\n+", "\n", cleaned_output) - cleaned_output = cleaned_output.split("\n") - if not ( - len(cleaned_output) == 3 - and cleaned_output[0].startswith("Thought:") - and cleaned_output[1].startswith("Action:") - and cleaned_output[2].startswith("Action Input:") - ): - raise OutputParserError(text) - action = cleaned_output[1][len("Action:") :].strip() - action_input = cleaned_output[2][len("Action Input:") :].strip() - if action in ["Speak"]: - return AgentFinish({"output": action_input}, text) - elif action == "CallOn": - return AgentFinish({"output": "[CallOn] " + action_input}, text) - elif action == "RaiseHand": - return AgentFinish({"output": "[RaiseHand] " + action_input}, text) - elif action == "Listen": - return AgentFinish({"output": ""}, text) - else: - return AgentAction(action.lower(), action_input, text) diff --git a/agentverse/tasks/simulation/math_problem_2players_tools/config.yaml b/agentverse/tasks/simulation/math_problem_2players_tools/config.yaml index 1599d8356..6e154b9d2 100644 --- a/agentverse/tasks/simulation/math_problem_2players_tools/config.yaml +++ b/agentverse/tasks/simulation/math_problem_2players_tools/config.yaml @@ -12,12 +12,12 @@ prompts: When responding, please use the following two-line format: [Option 1]: When you need to use a tool, output in the following format (omit the "[]" bracket when responding) - ACTION: (a tool name, it can be one of [${tool_names}]) - ACTION INPUT: (input arguments for the tool) + Action: (a tool name, it can be one of [${tool_names}]) + Action Input: (input arguments for the tool) [Option 2]: When you want to speak, you can use the following format: - ACTION: Speak - ACTION INPUT: (what you want to say in a single line) + Action: Speak + Action Input: (what you want to say in a single line) Here is the conversation history ${chat_history} @@ -25,7 +25,7 @@ prompts: Here is the observations from tool execution: ${tool_observation} - Now the game starts! ${role_description} You should give your action based on the above history. Remember, you should ALWAYS give your response STRICTLY in the above response format with the TWO lines start with "ACTION:" and "ACTION INPUT:" respectively! + Now the game starts! ${role_description} You should give your action based on the above history. Remember, you should ALWAYS give your response STRICTLY in the above response format with the TWO lines start with "Action:" and "Action Input:" respectively! summary_prompt: &summary_prompt | Progressively summarize the lines of a record that you uses tools, which contains inputs for certain tools and the results returned by these tools. Based on the current summary, you need to summarize from the record the goals that the you intended to solve with each call to the tool, add it onto the previous summary, and eventually return a new summary. diff --git a/agentverse/tasks/simulation/math_problem_2players_tools/output_parser.py b/agentverse/tasks/simulation/math_problem_2players_tools/output_parser.py deleted file mode 100644 index 24729b307..000000000 --- a/agentverse/tasks/simulation/math_problem_2players_tools/output_parser.py +++ /dev/null @@ -1,32 +0,0 @@ -from __future__ import annotations - -import re -from typing import Union - -from agentverse.parser import OutputParserError, output_parser_registry, OutputParser -from agentverse.llms.base import LLMResult -from agentverse.utils import AgentAction, AgentFinish - - -@output_parser_registry.register("math_problem_2players_tools") -class MathProblem2PlayersToolsParser(OutputParser): - def parse(self, output: LLMResult) -> Union[AgentAction, AgentFinish]: - text = output.content - cleaned_output = text.strip() - cleaned_output = re.sub(r"\n+", "\n", cleaned_output) - cleaned_output = cleaned_output.split("\n") - if not ( - len(cleaned_output) == 2 - and - # cleaned_output[0].startswith("THOUGHT:") and - cleaned_output[0].startswith("ACTION:") - and cleaned_output[1].startswith("ACTION INPUT:") - ): - print(text) - raise OutputParserError("Output Format Error") - action = cleaned_output[0][len("ACTION:") :].strip() - action_input = cleaned_output[1][len("ACTION INPUT:") :].strip() - if action == "Speak": - return AgentFinish({"output": action_input}, text) - else: - return AgentAction(action, action_input, text) diff --git a/agentverse/tasks/simulation/nlp_classroom_3players/output_parser.py b/agentverse/tasks/simulation/nlp_classroom_3players/output_parser.py deleted file mode 100644 index 4c4563bb4..000000000 --- a/agentverse/tasks/simulation/nlp_classroom_3players/output_parser.py +++ /dev/null @@ -1,31 +0,0 @@ -from __future__ import annotations - -import re -from typing import Union - -from agentverse.parser import OutputParser, LLMResult - -from agentverse.utils import AgentAction, AgentFinish - -from agentverse.parser import OutputParserError, output_parser_registry - - -@output_parser_registry.register("nlp_classroom_3players") -class NlpClassroom3PlayersParser(OutputParser): - def parse(self, output: LLMResult) -> Union[AgentAction, AgentFinish]: - text = output.content - cleaned_output = text.strip() - cleaned_output = re.sub(r"\n+", "\n", cleaned_output) - cleaned_output = cleaned_output.split("\n") - if not ( - len(cleaned_output) == 2 - and cleaned_output[0].startswith("Action:") - and cleaned_output[1].startswith("Action Input:") - ): - raise OutputParserError(text) - action = cleaned_output[0][len("Action:") :].strip() - action_input = cleaned_output[1][len("Action Input:") :].strip() - if action == "Speak": - return AgentFinish({"output": action_input}, text) - else: - raise OutputParserError(text) diff --git a/agentverse/tasks/simulation/nlp_classroom_3players_withtool/output_parser.py b/agentverse/tasks/simulation/nlp_classroom_3players_withtool/output_parser.py deleted file mode 100644 index 2bb9a0aef..000000000 --- a/agentverse/tasks/simulation/nlp_classroom_3players_withtool/output_parser.py +++ /dev/null @@ -1,39 +0,0 @@ -from __future__ import annotations - -import re -from typing import Union - - -from agentverse.utils import AgentAction, AgentFinish - -from agentverse.parser import OutputParserError, output_parser_registry -from agentverse.parser import OutputParser -from agentverse.llms.base import LLMResult - - -@output_parser_registry.register("nlp_classroom_3players_withtool") -class NlpClassroom3PlayersWithtoolParser(OutputParser): - def parse(self, output: LLMResult) -> Union[AgentAction, AgentFinish]: - text = output.content - cleaned_output = text.strip() - cleaned_output = re.sub(r"\n+", "\n", cleaned_output) - cleaned_output = cleaned_output.split("\n") - if not ( - len(cleaned_output) == 3 - and cleaned_output[0].startswith("Thought:") - and cleaned_output[1].startswith("Action:") - and cleaned_output[2].startswith("Action Input:") - ): - raise OutputParserError(text) - action = cleaned_output[1][len("Action:") :].strip() - action_input = cleaned_output[2][len("Action Input:") :].strip() - if action in ["Speak"]: - return AgentFinish({"output": action_input}, text) - elif action == "CallOn": - return AgentFinish({"output": "[CallOn] " + action_input}, text) - elif action == "RaiseHand": - return AgentFinish({"output": "[RaiseHand] " + action_input}, text) - elif action == "Listen": - return AgentFinish({"output": ""}, text) - else: - return AgentAction(action.lower(), action_input, text) diff --git a/agentverse/tasks/simulation/nlp_classroom_9players/output_parser.py b/agentverse/tasks/simulation/nlp_classroom_9players/output_parser.py deleted file mode 100644 index 6a10c7f6d..000000000 --- a/agentverse/tasks/simulation/nlp_classroom_9players/output_parser.py +++ /dev/null @@ -1,36 +0,0 @@ -from __future__ import annotations - -import re -from typing import Union - -from agentverse.utils import AgentAction, AgentFinish - -from agentverse.parser import OutputParserError, output_parser_registry, OutputParser -from agentverse.llms import LLMResult - - -@output_parser_registry.register("nlp_classroom_9players") -class NlpClassroom9PlayersParser(OutputParser): - def parse(self, output: LLMResult) -> Union[AgentAction, AgentFinish]: - text = output.content - cleaned_output = text.strip() - cleaned_output = re.sub(r"\n+", "\n", cleaned_output) - cleaned_output = cleaned_output.split("\n") - if not ( - len(cleaned_output) == 2 - and cleaned_output[0].startswith("Action:") - and cleaned_output[1].startswith("Action Input:") - ): - raise OutputParserError(text) - action = cleaned_output[0][len("Action:") :].strip() - action_input = cleaned_output[1][len("Action Input:") :].strip() - if action == "Speak": - return AgentFinish({"output": action_input}, text) - elif action == "CallOn": - return AgentFinish({"output": "[CallOn] " + action_input}, text) - elif action == "RaiseHand": - return AgentFinish({"output": "[RaiseHand] " + action_input}, text) - elif action == "Listen": - return AgentFinish({"output": ""}, text) - else: - return AgentAction(action, action_input, text) diff --git a/agentverse/tasks/simulation/nlp_classroom_9players_group/output_parser.py b/agentverse/tasks/simulation/nlp_classroom_9players_group/output_parser.py deleted file mode 100644 index 91c87c89b..000000000 --- a/agentverse/tasks/simulation/nlp_classroom_9players_group/output_parser.py +++ /dev/null @@ -1,34 +0,0 @@ -from __future__ import annotations - -import re -from typing import Union - -from agentverse.utils import AgentAction, AgentFinish - -from agentverse.parser import OutputParserError, output_parser_registry, OutputParser -from agentverse.llms import LLMResult - - -@output_parser_registry.register("nlp_classroom_9players_group") -class NlpClassroom9PlayersGroupParser(OutputParser): - def parse(self, output: LLMResult) -> Union[AgentAction, AgentFinish]: - text = output.content - cleaned_output = text.strip() - cleaned_output = re.sub(r"\n+", "\n", cleaned_output) - cleaned_output = cleaned_output.split("\n") - if not ( - len(cleaned_output) == 2 - and cleaned_output[0].startswith("Action:") - and cleaned_output[1].startswith("Action Input:") - ): - raise OutputParserError(text) - action = cleaned_output[0][len("Action:") :].strip() - action_input = cleaned_output[1][len("Action Input:") :].strip() - if action == "Speak": - return AgentFinish({"output": action_input}, text) - elif action in ["CallOn", "RaiseHand", "GroupDiscuss"]: - return AgentFinish({"output": f"[{action}] {action_input}"}, text) - elif action == "Listen": - return AgentFinish({"output": ""}, text) - else: - return AgentAction(action, action_input, text) diff --git a/agentverse/tasks/simulation/pokemon/output_parser.py b/agentverse/tasks/simulation/pokemon/output_parser.py deleted file mode 100644 index e96f7e3cf..000000000 --- a/agentverse/tasks/simulation/pokemon/output_parser.py +++ /dev/null @@ -1,36 +0,0 @@ -from __future__ import annotations - -import re -import json -from typing import Union - -from agentverse.parser import OutputParser, LLMResult - -# from langchain.schema import AgentAction, AgentFinish -from agentverse.utils import AgentAction, AgentFinish - -from agentverse.parser import OutputParserError, output_parser_registry - - -@output_parser_registry.register("pokemon") -class PokemonParser(OutputParser): - def parse(self, output: LLMResult) -> Union[AgentAction, AgentFinish]: - text = output.content - cleaned_output = text.strip() - cleaned_output = re.sub(r"\n+", "\n", cleaned_output) - cleaned_output = cleaned_output.split("\n") - if not ( - len(cleaned_output) == 3 - and cleaned_output[0].startswith("Thought:") - and cleaned_output[1].startswith("Action:") - and cleaned_output[2].startswith("Action Input:") - ): - raise OutputParserError(text) - action = cleaned_output[1][len("Action:") :].strip() - action_input = cleaned_output[2][len("Action Input:") :].strip() - try: - action_input = json.loads(action_input) - except json.JSONDecodeError: - raise OutputParserError(text) - action_input["action"] = action - return AgentFinish({"output": json.dumps(action_input)}, text) diff --git a/agentverse/tasks/simulation/prisoner_dilemma/output_parser.py b/agentverse/tasks/simulation/prisoner_dilemma/output_parser.py deleted file mode 100644 index 05a41e0f8..000000000 --- a/agentverse/tasks/simulation/prisoner_dilemma/output_parser.py +++ /dev/null @@ -1,74 +0,0 @@ -from __future__ import annotations - -import re -from typing import Union, TYPE_CHECKING - -# from langchain.agents import AgentOutputParser -from agentverse.parser import OutputParser, LLMResult -#from langchain.schema import AgentAction, AgentFinish -from agentverse.utils import AgentAction, AgentFinish -from agentverse.parser import OutputParserError, output_parser_registry - -if TYPE_CHECKING: - from agentverse.agents.base import BaseAgent - from agentverse.environments.base import BaseEnvironment - - -@output_parser_registry.register("prisoner_dilemma") -class PrisonerDilemmaParser(OutputParser): - # make sure 1 1 2 2 3 3 - cur_round: int = 1 - encounter_cur_round: bool = False - - def parse( - self, agent: "BaseAgent", environment: "BaseEnvironment", output: LLMResult - ) -> Union[AgentAction, AgentFinish]: - text = output.content - cleaned_output = text.strip() - cleaned_output = re.sub(r"\n+", "\n", cleaned_output) - cleaned_output = cleaned_output.split("\n") - if not ( - len(cleaned_output) == 2 - and cleaned_output[0].startswith("Action:") - and cleaned_output[1].startswith("Action Input:") - ): - raise OutputParserError(text) - action = cleaned_output[0][len("Action:") :].strip() - action_input = cleaned_output[1][len("Action Input:") :].strip() - - if action == "Speak": - # make sure the police count the round right - # if agent.name == "Police": - # action_input = re.sub(r'Round (\d+)', f'Round {self.cur_round}', action_input) - # self.cur_round += 1 - # if self.encounter_cur_round: - # self.encounter_cur_round = False - # self.cur_round += 1 - # else: - # self.encounter_cur_round = True - - # each time police speak is a new round - if agent.name == "Police": - if environment.cnt_turn == (environment.max_turns - 4): - action_input = ( - "Attention! You are now required to made your final decision and I will made the " - "final judgement to both of you based on this time, Please Answer now !" - ) - - elif environment.cnt_turn == (environment.max_turns - 2): - action_input = "Attention! Suspect2, it's now your time to make your final decision, Please Answer now !" - - # elif self.cur_round == 1: - # action_input = "Hey Listen! You are both arrested, and I am going to give you both a chance to walk out of here," \ - # "But you should comply with the following rules:" \ - # "- If one of you are willing to testifies against the other and the other one remains silent, then the one who testifies will be released IMMEDIATELY, while the silent one will be sentenced to TEN years in prison." \ - # "- If both of you remain silent, you will each receive a sentence of ONE year in prison." \ - # "- It seems that always testifying is a goog strategy, So! if you both choose to testify against each other, you will each receive a sentence of FIVE years in prison." \ - # "Now, it's your time to consider testifying or remaining silent. Remember this is a best chance you might ever have to walk out of here without guilty." \ - # "I will noticed both of you WHEN you have to make your final decision! Before that, try to make your best!" \ - - self.cur_round += 1 - - return AgentFinish({"output": action_input}, text) - else: - raise OutputParserError(text) diff --git a/agentverse/tasks/simulation/sde_team/sde_team_2players/output_parser.py b/agentverse/tasks/simulation/sde_team/sde_team_2players/output_parser.py deleted file mode 100644 index f7cea629c..000000000 --- a/agentverse/tasks/simulation/sde_team/sde_team_2players/output_parser.py +++ /dev/null @@ -1,19 +0,0 @@ -from __future__ import annotations - -import re -from typing import Union - -#from langchain.agents import AgentOutputParser - -# from langchain.schema import AgentAction, AgentFinish - -from agentverse.parser import OutputParserError, output_parser_registry, OutputParser -from agentverse.llms.base import LLMResult -from agentverse.utils import AgentAction, AgentFinish - - -@output_parser_registry.register("sde_team/sde_team_2players") -class SdeTeamGivenTestsParser(OutputParser): - #def parse(self, agent, env, output: LLMResult) -> Union[AgentAction, AgentFinish]: - def parse(self, output: LLMResult) -> Union[AgentAction, AgentFinish]: - return AgentFinish({"output": output.content}, output.content) diff --git a/agentverse/tasks/simulation/sde_team/sde_team_3players/output_parser.py b/agentverse/tasks/simulation/sde_team/sde_team_3players/output_parser.py deleted file mode 100644 index 304dd7f99..000000000 --- a/agentverse/tasks/simulation/sde_team/sde_team_3players/output_parser.py +++ /dev/null @@ -1,19 +0,0 @@ -from __future__ import annotations - -import re -from typing import Union - -# from langchain.agents import AgentOutputParser - -# from langchain.schema import AgentAction, AgentFinish - -from agentverse.parser import OutputParserError, output_parser_registry, OutputParser -from agentverse.llms.base import LLMResult -from agentverse.utils import AgentAction, AgentFinish - - -@output_parser_registry.register("sde_team/sde_team_3players") -class SdeTeamParser(OutputParser): - #def parse(self, agent, env, output: LLMResult) -> Union[AgentAction, AgentFinish]: - def parse(self, output: LLMResult) -> Union[AgentAction, AgentFinish]: - return AgentFinish({"output": output.content}, output.content) diff --git a/agentverse/tasks/tasksolving/brainstorming/output_parser.py b/agentverse/tasks/tasksolving/brainstorming/output_parser.py deleted file mode 100644 index d0041ec46..000000000 --- a/agentverse/tasks/tasksolving/brainstorming/output_parser.py +++ /dev/null @@ -1,77 +0,0 @@ -from __future__ import annotations - -import re -from typing import Union, List, Tuple - -from agentverse.utils import AgentAction, AgentFinish, AgentCriticism - -from agentverse.parser import OutputParserError, output_parser_registry, OutputParser -from agentverse.llms import LLMResult -from agentverse.logging import get_logger - - -logger = get_logger() - - -@output_parser_registry.register("role_assigner") -class RoleAssignerParser(OutputParser): - cnt_critic_agents: int = 0 - - def parse(self, output: LLMResult) -> List[str]: - text = output.content - pattern = re.compile(r"\d\.\s*(.+)") - roles = pattern.findall(text) - if len(roles) < self.cnt_critic_agents: - logger.error( - f"Role assigner failed to assign roles to {self.cnt_critic_agents} critics!" - ) - raise OutputParserError(text) - return roles - - -@output_parser_registry.register("critic") -class CriticParser(OutputParser): - def parse(self, output: LLMResult) -> AgentCriticism: - text = output.content - text = re.sub(r"\n+", "\n", text.strip()) - checks = text.split("\n") - if not (checks[0].startswith("Action:")): - raise OutputParserError(text) - if checks[0].strip(". ") == "Action: Agree": - return AgentCriticism(True, "") - elif checks[0].strip(". ") == "Action: Disagree": - pattern = re.compile(r"Action Input: ([\S\n ]+)") - try: - criticism = pattern.findall(text)[0].strip() - except IndexError: - logger.error("Bad response from critic!") - raise OutputParserError(text) - return AgentCriticism(False, criticism) - else: - raise OutputParserError(text) - - -@output_parser_registry.register("evaluator") -class EvaluatorParser(OutputParser): - dimensions: List[str] = None - - def parse(self, output: LLMResult) -> Tuple[List[int], str]: - text = output.content - cleaned_output = re.sub(r"\n+", "\n", text.strip()) - checks = cleaned_output.split("\n") - patterns = [ - re.compile(r"(?:\d\.\s*)?" + dimension + r":\s*(\d)") - for dimension in self.dimensions - ] - try: - # find score and advice - score = [ - int(pattern.findall(checks[i])[0]) for i, pattern in enumerate(patterns) - ] - advice_text = "".join(checks[len(self.dimensions) :]) - advice = re.findall(r"(?:\d\.\s*)?Advice:\s*(.+)", advice_text)[0] - # logger.info("Evaluator give the following advice:\n" + advice) - except (IndexError, ValueError): - # logger.error("Bad response from evaluator!") - raise OutputParserError(text) - return score, advice diff --git a/agentverse/tasks/tasksolving/commongen/output_parser.py b/agentverse/tasks/tasksolving/commongen/output_parser.py deleted file mode 100644 index 88d3e166a..000000000 --- a/agentverse/tasks/tasksolving/commongen/output_parser.py +++ /dev/null @@ -1,93 +0,0 @@ -from __future__ import annotations - -import re -from typing import Union, List, Tuple - -from agentverse.utils import AgentAction, AgentFinish, AgentCriticism - -from agentverse.parser import OutputParserError, output_parser_registry, OutputParser -from agentverse.llms import LLMResult -from agentverse.logging import get_logger - -logger = get_logger() - - -@output_parser_registry.register("commongen") -class CommongenParser(OutputParser): - def parse(self, output: LLMResult) -> Union[AgentAction, AgentFinish]: - return AgentFinish({"output": output.content}, output.content) - - -@output_parser_registry.register("commongen-solver") -class CommongenSolverParser(OutputParser): - def parse(self, output: LLMResult) -> Union[AgentAction, AgentFinish]: - text = output.content - end_pos = text.rfind("```") - if end_pos == -1: - raise OutputParserError(text) - text = text[:end_pos] - cleaned_output = text.strip().strip("```").strip() - if cleaned_output.startswith("python"): - cleaned_output = cleaned_output[6:].strip() - elif cleaned_output.startswith("python3"): - cleaned_output = cleaned_output[7:].strip() - return AgentFinish({"output": cleaned_output}, text) - - -@output_parser_registry.register("commongen-evaluator") -class CommongenEvaluatorParser(OutputParser): - dimensions: List[str] = None - - def parse(self, output: LLMResult) -> Tuple[List[int], str]: - text = output.content - cleaned_output = re.sub(r"\n+", "\n", text.strip()) - checks = cleaned_output.split("\n") - - patterns = [ - re.compile(r"(?:\d.\s*)?" + dimension + r":\s*(\d)") - for dimension in self.dimensions - ] - - advice = "" - for check in reversed(checks): - advice = check + advice - if check.startswith("Advice:"): - break - checks[-1] = advice - try: - # find score and advice - score = [] - for pattern in patterns: - for check in checks[:-1]: - if pattern.findall(check): - score.append(bool(pattern.findall(check)[0])) - break - advice = re.findall(r"(?:\d.\s*)?Advice:\s*(.+)", checks[-1])[0] - # logger.info("Evaluator give the following advice:\n" + advice) - except (IndexError, ValueError): - # logger.error("Bad response from evaluator!") - raise OutputParserError(text) - return score[0], advice - - -@output_parser_registry.register("commongen-critic") -class CommongenCriticParser(OutputParser): - def parse(self, output: LLMResult) -> AgentCriticism: - text = output.content - text = re.sub(r"\n+", "\n", text.strip()) - checks = text.split("\n") - if not (checks[0].startswith("Action:")): - raise OutputParserError(text) - if checks[0].strip(". ") == "Action: Agree": - return AgentCriticism(True, "") - elif checks[0].strip(". ") == "Action: Disagree": - pattern = re.compile(r"Action Input: ([\S\n ]+)") - try: - criticism = pattern.findall(text)[0].strip() - except IndexError: - # logger.error("Bad response from critic!") - # raise OutputParserError(text) - criticism = "I think the solution is not correct. Please think carefully and correct it." - return AgentCriticism(False, criticism) - else: - raise OutputParserError(text) diff --git a/agentverse/tasks/tasksolving/humaneval/output_parser.py b/agentverse/tasks/tasksolving/humaneval/output_parser.py deleted file mode 100644 index 1eb9c023d..000000000 --- a/agentverse/tasks/tasksolving/humaneval/output_parser.py +++ /dev/null @@ -1,311 +0,0 @@ -from __future__ import annotations - -import re -import json -import ast -from typing import Union, List, Tuple - -from agentverse.utils import AgentAction, AgentFinish, AgentCriticism - -from agentverse.parser import OutputParserError, output_parser_registry, OutputParser -from agentverse.llms import LLMResult -from agentverse.logging import get_logger - -logger = get_logger() - - -@output_parser_registry.register("humaneval") -class HumanevalParser(OutputParser): - def parse(self, output: LLMResult) -> Union[AgentAction, AgentFinish]: - return AgentFinish({"output": output.content}, output.content) - - -@output_parser_registry.register("humaneval-solver") -class HumanevalSolverParser(OutputParser): - def parse(self, output: LLMResult) -> Union[AgentAction, AgentFinish]: - text = output.content - # start_pos = text.find("```") - # end_pos = text.rfind("```") - # if end_pos == -1: - # raise OutputParserError(text) - # text = text[start_pos:end_pos] - # cleaned_output = text.strip().strip("```").strip() - # if cleaned_output.startswith("python"): - # cleaned_output = cleaned_output[6:].strip() - # elif cleaned_output.startswith("python3"): - # cleaned_output = cleaned_output[7:].strip() - code = re.findall(r"```.*?\n(.+?)```", text, re.DOTALL)[-1] - - return AgentFinish({"output": code}, text) - - -@output_parser_registry.register("humaneval-critic-central") -class HumanevalCriticParser(OutputParser): - def parse(self, output: LLMResult) -> Union[AgentAction, AgentFinish]: - return AgentCriticism(False, output.content) - - -@output_parser_registry.register("humaneval-solver-autogpt") -class HumanevalSolverParser(OutputParser): - def parse(self, output: LLMResult) -> Union[AgentAction, AgentFinish]: - text = output.content - json_dict = re.findall(r"```.*?\n(.+?)```", text, re.DOTALL)[-1] - try: - cleaned_output = ast.literal_eval(json_dict) - except BaseException as e: - raise OutputParserError(text) - if "code" not in json_dict: - raise OutputParserError(text) - return AgentFinish({"output": cleaned_output["code"]}, text) - - -@output_parser_registry.register("humaneval-solver-autogpt-2") -class HumanevalSolverParser(OutputParser): - def parse(self, output: LLMResult) -> Union[AgentAction, AgentFinish]: - text = output.content - try: - parsed_result = re.findall( - r"Text:(.+?)Reasoning:(.+?)Criticism:(.+?)Code:(.+)", text, re.DOTALL - )[0] - except BaseException as e: - raise OutputParserError(text) - code = parsed_result[-1].strip() - if code.startswith("```"): - try: - code = re.findall(r"```.*?\n(.+?)```", code, re.DOTALL)[0].strip() - except BaseException as e: - raise OutputParserError(text) - return AgentFinish({"output": code}, text) - - -@output_parser_registry.register("humaneval-manager") -class HumanevalManagerParser(OutputParser): - def parse(self, output: LLMResult) -> Union[AgentAction, AgentFinish]: - return AgentFinish({"output": output.content}, output.content) - - -# @output_parser_registry.register("humaneval-solver") -# class HumanevalSolverParser(OutputParser): -# def parse(self, output: LLMResult) -> Union[AgentAction, AgentFinish]: -# text = output.content -# end_pos = text.rfind("```") -# if end_pos == -1: -# raise OutputParserError(text) -# text = text[:end_pos] -# cleaned_output = text.strip().strip("```").strip() -# if cleaned_output.startswith("python"): -# cleaned_output = cleaned_output[6:].strip() -# elif cleaned_output.startswith("python3"): -# cleaned_output = cleaned_output[7:].strip() -# return AgentFinish({"output": cleaned_output}, text) - - -@output_parser_registry.register("humaneval-executor-autogpt") -class HumanevalSolverParser(OutputParser): - def parse(self, output: LLMResult) -> Union[AgentAction, AgentFinish]: - text = output.content - json_dict = re.findall(r"```.*?\n(.+?)```", text, re.DOTALL)[-1] - try: - cleaned_output = ast.literal_eval(json_dict) - except BaseException as e: - raise OutputParserError(text) - if not ( - "code" in json_dict and "file_path" in json_dict and "command" in json_dict - ): - raise OutputParserError(text) - return AgentFinish({"output": cleaned_output}, text) - - -@output_parser_registry.register("humaneval-executor") -class HumanevalSolverParser(OutputParser): - def parse(self, output: LLMResult) -> Union[AgentAction, AgentFinish]: - text = output.content - try: - parsed_result = re.findall( - r"Thought:(.+?)Reasoning:(.+?)Criticism:(.+?)File Path:(.+?)Code:(.+?)Command:(.+)", - text, - re.DOTALL, - )[0] - cleaned_output = { - "thought": parsed_result[0].strip(), - "reasoning": parsed_result[1].strip(), - "criticism": parsed_result[2].strip(), - "file_path": parsed_result[3].strip().strip("`"), - "code": parsed_result[4] - .strip() - .strip("```") - .strip("python") - .strip("python3"), - "command": parsed_result[5].strip().strip("`"), - } - except BaseException as e: - raise OutputParserError(text) - - return AgentFinish({"output": cleaned_output}, text) - - - -@output_parser_registry.register("humaneval-executor-fc") -class HumanevalSolverParser(OutputParser): - def parse(self, output: LLMResult) -> Union[AgentAction, AgentFinish]: - text = output.content - - #print("======") - #print(output) - #print("======") - - try: - #output_dict = eval(text) - output_dict = json.loads(text, strict=False) #The control characters (character codes in the 0-31 range, including '\t' (tab), '\n', '\r' and '\0'.") will be allowed inside strings - ''' - cleaned_output = { - "thought": output_dict["thought"].strip(), - "file_path": output_dict["file_path"].strip().strip("`"), - "code": output_dict["code"] - .strip() - .strip("```") - .strip("python") - .strip("python3"), - "command": output_dict["command"].strip().strip("`"), - } - ''' - cleaned_output = output_dict - except BaseException as e: - raise OutputParserError(text) - - return AgentFinish({"output": cleaned_output}, text) - - - -@output_parser_registry.register("humaneval-evaluator") -class HumanevalEvaluatorParser(OutputParser): - dimensions: List[str] = None - - def parse(self, output: LLMResult) -> Tuple[List[int], str]: - text = output.content - cleaned_output = re.sub(r"\n+", "\n", text.strip()) - checks = cleaned_output.split("\n") - - patterns = [ - re.compile(r"(?:\d.\s*)?" + dimension + r":\s*(\d)") - for dimension in self.dimensions - ] - - advice = "" - for check in reversed(checks): - advice = check + advice - if check.startswith("Advice:"): - break - checks[-1] = advice - try: - # find score and advice - score = [] - for pattern in patterns: - for check in checks[:-1]: - if pattern.findall(check): - score.append(bool(int(pattern.findall(check)[0]))) - break - advice = re.findall(r"(?:\d.\s*)?Advice:\s*(.+)", checks[-1])[0] - # logger.info("Evaluator give the following advice:\n" + advice) - except (IndexError, ValueError): - # logger.error("Bad response from evaluator!") - raise OutputParserError(text) - return score[0], advice - - -@output_parser_registry.register("humaneval-evaluator-2") -class HumanevalEvaluatorParser(OutputParser): - dimensions: List[str] = None - - def parse(self, output: LLMResult) -> Tuple[List[int], str]: - text = output.content - pattern = re.compile( - r"Response:(.+?)" - + "".join( - [ - f"{dimension}:(.+?)" - if i != len(self.dimensions) - 1 - else f"{dimension}:(.+)" - for i, dimension in enumerate(self.dimensions) - ] - ), - re.DOTALL, - ) - try: - parsed_result = pattern.findall(text)[0] - score = [bool(int(x.strip())) for x in parsed_result[1:]] - advice = parsed_result[0].strip() - except BaseException as e: - raise OutputParserError(text) - return score[0], advice - - -@output_parser_registry.register("humaneval-critic") -class HumanevalyCriticParser(OutputParser): - def parse(self, output: LLMResult) -> AgentCriticism: - text = output.content - text = re.sub(r"\n+", "\n", text.strip()) - checks = text.split("\n") - if not (checks[0].startswith("Action:")): - raise OutputParserError(text) - if checks[0].strip(". ") == "Action: Agree": - return AgentCriticism(True, "") - elif checks[0].strip(". ") == "Action: Disagree": - pattern = re.compile(r"Action Input: ([\S\n ]+)") - try: - criticism = pattern.findall(text)[0].strip() - except IndexError: - # logger.error("Bad response from critic!") - # raise OutputParserError(text) - criticism = "I think the solution is not correct. Please think carefully and correct it." - return AgentCriticism(False, criticism) - else: - raise OutputParserError(text) - - -@output_parser_registry.register("humaneval-critic-agree") -class HumanevalyCriticParser(OutputParser): - def parse(self, output: LLMResult) -> AgentCriticism: - text = output.content - if "[Agree]" in text: - return AgentCriticism(True, "") - else: - return AgentCriticism(False, text) - - -@output_parser_registry.register("humaneval-critic-autogpt") -class HumanevalCriticParser(OutputParser): - def parse(self, output: LLMResult) -> Union[AgentAction, AgentFinish]: - text = output.content - try: - parsed_result = re.findall( - r"Text:(.+?)Reasoning:(.+?)Criticism:(.+?)Speak:(.+?)Final Decision:(.+)", - text, - re.DOTALL, - )[0] - except BaseException as e: - raise OutputParserError(text) - decision = parsed_result[-1].strip() - if "[Agree]" in decision: - return AgentCriticism(True, "") - else: - return AgentCriticism(False, parsed_result[-2].strip()) - - -@output_parser_registry.register("humaneval-critic-autogpt-2") -class HumanevalCriticParser(OutputParser): - def parse(self, output: LLMResult) -> Union[AgentAction, AgentFinish]: - text = output.content - try: - parsed_result = re.findall( - r"Problem Analysis:(.+?)Solution Analysis:(.+?)Decision:(.+?)Suggestion:(.+)", - text, - re.DOTALL, - )[0] - except BaseException as e: - raise OutputParserError(text) - decision = parsed_result[-2].strip() - if "[Agree]" in decision: - return AgentCriticism(True, "") - else: - return AgentCriticism(False, parsed_result[-1].strip()) diff --git a/agentverse/tasks/tasksolving/logic_grid/output_parser.py b/agentverse/tasks/tasksolving/logic_grid/output_parser.py deleted file mode 100644 index 7f8a0d10d..000000000 --- a/agentverse/tasks/tasksolving/logic_grid/output_parser.py +++ /dev/null @@ -1,13 +0,0 @@ -from __future__ import annotations - -import re -from typing import Union, List, Tuple - -from agentverse.utils import AgentAction, AgentFinish, AgentCriticism - -from agentverse.parser import OutputParserError, output_parser_registry, OutputParser -from agentverse.llms import LLMResult -from agentverse.logging import get_logger - - -logger = get_logger() diff --git a/agentverse/tasks/tasksolving/mgsm/output_parser.py b/agentverse/tasks/tasksolving/mgsm/output_parser.py deleted file mode 100644 index f7cd2c0f4..000000000 --- a/agentverse/tasks/tasksolving/mgsm/output_parser.py +++ /dev/null @@ -1,166 +0,0 @@ -from __future__ import annotations - -import re -from typing import Union, List, Tuple - -from agentverse.utils import AgentAction, AgentFinish, AgentCriticism - -from agentverse.parser import OutputParserError, output_parser_registry, OutputParser -from agentverse.llms import LLMResult -from agentverse.logging import get_logger - - -logger = get_logger() - - -@output_parser_registry.register("mgsm") -class MGSMParser(OutputParser): - def parse(self, output: LLMResult) -> Union[AgentAction, AgentFinish]: - return AgentFinish({"output": output.content}, output.content) - - -@output_parser_registry.register("mgsm-solver-autogpt") -class MGSMSolverParser(OutputParser): - def parse(self, output: LLMResult) -> Union[AgentAction, AgentFinish]: - text = output.content - try: - parsed_result = re.findall( - r"Thought:(.+?)Reasoning:(.+?)Criticism:(.+?)Solution:(.+)", - text, - re.DOTALL, - )[0] - except BaseException as e: - raise OutputParserError(text) - return AgentFinish({"output": re.sub(r"\n+", "\n", text.strip())}, text) - - -@output_parser_registry.register("mgsm-evaluator") -class MGSMEvaluatorParser(OutputParser): - dimensions: List[str] = None - - def parse(self, output: LLMResult) -> Tuple[List[int], str]: - text = output.content - cleaned_output = re.sub(r"\n+", "\n", text.strip()) - # checks = cleaned_output.split("\n") - - patterns = [ - re.compile(r"(?:\d.\s*)?" + dimension + r":\s*(\d)") - for dimension in self.dimensions - ] - try: - # find score and advice - score_num = [ - int(pattern.findall(cleaned_output)[0]) - for i, pattern in enumerate(patterns) - ][0] - if score_num == 0: - score = False - elif score_num == 1: - score = True - else: - raise ValueError("Bad score!") - pat = re.compile(r"(?:\d.\s*)?Response:\s*(.+)", re.DOTALL) - advice = pat.findall(cleaned_output)[0] - # logger.info("Evaluator give the following advice:\n" + advice) - except (IndexError, ValueError): - # logger.error("Bad response from evaluator!") - raise OutputParserError(text) - return score, advice - - -@output_parser_registry.register("mgsm-evaluator-autogpt") -class MGSMCriticParser(OutputParser): - def parse(self, output: LLMResult) -> Union[AgentAction, AgentFinish]: - text = output.content - try: - parsed_result = re.findall( - r"Thought:(.+?)Reasoning:(.+?)Criticism:(.+?)Speak:(.+?)Correctness:(.+)", - text, - re.DOTALL, - )[0] - score = int(parsed_result[-1]) - advice = parsed_result[-2] - except BaseException as e: - raise OutputParserError(text) - return score, advice - - -@output_parser_registry.register("mgsm-critic") -class MGSMCriticParser(OutputParser): - def parse(self, output: LLMResult) -> AgentCriticism: - text = output.content - return AgentCriticism(False, text) - # text = re.sub(r"\n+", "\n", text.strip()) - # checks = text.split("\n") - # if not text.startswith("Thought:"): - # raise OutputParserError(text) - # if not (checks[0].startswith("Action:")): - # raise OutputParserError(text) - # if checks[0].strip(". ") == "Action: Agree": - # return AgentCriticism(True, "") - if "[Correct]" in text: - return AgentCriticism(True, "") - else: - # pattern = re.compile(r"Action Input: ([\S\n ]+)") - # try: - # criticism = pattern.findall(text)[0].strip() - # criticism = ( - # re.findall(r"Output:\S?(.+)", text)[0].replace("[Wrong]", "") - # ).strip() - criticism = text.replace("[Wrong]", "").strip() - # except IndexError: - # logger.error("Bad response from critic!") - # raise OutputParserError(text) - # criticism = "I think the solution is not correct. Please think carefully and correct it." - return AgentCriticism(False, criticism) - # else: - # raise OutputParserError(text) - - -@output_parser_registry.register("mgsm-critic-autogpt") -class MGSMCriticParser(OutputParser): - def parse(self, output: LLMResult) -> Union[AgentAction, AgentFinish]: - text = output.content - try: - parsed_result = re.findall( - r"Thought:(.+?)Reasoning:(.+?)Criticism:(.+?)Speak:(.+?)Decision:(.+)", - text, - re.DOTALL, - )[0] - except BaseException as e: - raise OutputParserError(text) - if "[Agree]" in parsed_result[-1]: - return AgentCriticism(True, "") - else: - return AgentCriticism(False, parsed_result[-2]) - - -@output_parser_registry.register("mgsm-critic-agree") -class MGSMCriticAgreeParser(OutputParser): - def parse(self, output: LLMResult) -> AgentCriticism: - text = output.content - text = re.sub(r"\n+", "\n", text.strip()) - # checks = text.split("\n") - # if not text.startswith("Thought:"): - # raise OutputParserError(text) - # if not (checks[0].startswith("Action:")): - # raise OutputParserError(text) - # if checks[0].strip(". ") == "Action: Agree": - # return AgentCriticism(True, "") - if "[Agree]" in text: - return AgentCriticism(True, "") - else: - # pattern = re.compile(r"Action Input: ([\S\n ]+)") - # try: - # criticism = pattern.findall(text)[0].strip() - # criticism = ( - # re.findall(r"Output:\S?(.+)", text)[0].replace("[Wrong]", "") - # ).strip() - criticism = text.replace("[Disagree]", "").strip() - # except IndexError: - # logger.error("Bad response from critic!") - # raise OutputParserError(text) - # criticism = "I think the solution is not correct. Please think carefully and correct it." - return AgentCriticism(False, criticism) - # else: - # raise OutputParserError(text) diff --git a/agentverse/tasks/tasksolving/pythoncalculator/output_parser.py b/agentverse/tasks/tasksolving/pythoncalculator/output_parser.py deleted file mode 100644 index e37a808f6..000000000 --- a/agentverse/tasks/tasksolving/pythoncalculator/output_parser.py +++ /dev/null @@ -1,19 +0,0 @@ -from __future__ import annotations - -import re -from typing import Union, List, Tuple - -from agentverse.utils import AgentAction, AgentFinish, AgentCriticism - -from agentverse.parser import OutputParserError, output_parser_registry, OutputParser -from agentverse.llms import LLMResult -from agentverse.logging import get_logger - - -logger = get_logger() - - -@output_parser_registry.register("dummy") -class PipelinePythoncalculatorParser(OutputParser): - def parse(self, output: LLMResult) -> Union[AgentAction, AgentFinish]: - return AgentFinish({"output": output.content}, output.content) diff --git a/agentverse/tasks/tasksolving/responsegen/output_parser.py b/agentverse/tasks/tasksolving/responsegen/output_parser.py deleted file mode 100644 index e24009f78..000000000 --- a/agentverse/tasks/tasksolving/responsegen/output_parser.py +++ /dev/null @@ -1,104 +0,0 @@ -from __future__ import annotations - -import re -from typing import Union, List, Tuple - -from agentverse.utils import AgentAction, AgentFinish, AgentCriticism - -from agentverse.parser import OutputParserError, output_parser_registry, OutputParser -from agentverse.llms import LLMResult -from agentverse.logging import get_logger - -logger = get_logger() - - -@output_parser_registry.register("responsegen") -class ResponseGenParser(OutputParser): - def parse(self, output: LLMResult) -> Union[AgentAction, AgentFinish]: - return AgentFinish({"output": output.content}, output.content) - - -@output_parser_registry.register("responsegen-evaluator") -class ResponseGenEvaluatorParser(OutputParser): - dimensions: List[str] = None - - def parse(self, output: LLMResult) -> Tuple[List[int], str]: - text = output.content - cleaned_output = re.sub(r"\n+", "\n", text.strip()) - checks = cleaned_output.split("\n") - - patterns = [ - re.compile(r"(?:\d.\s*)?" + dimension + r":\s*(\d+)") - for dimension in self.dimensions - ] - - advice = "" - for check in reversed(checks): - advice = check + advice - if check.startswith("Advice:"): - break - checks[-1] = advice - try: - # find score and advice - score = [ - int(pattern.findall(checks[i])[0]) for i, pattern in enumerate(patterns) - ] - advice = re.findall(r"(?:\d.\s*)?Advice:\s*(.+)", checks[-1])[0] - # logger.info("Evaluator give the following advice:\n" + advice) - except (IndexError, ValueError): - # logger.error("Bad response from evaluator!") - raise OutputParserError(text) - return score, advice - - -@output_parser_registry.register("responsegen-critic") -class ResponseGenCriticParser(OutputParser): - def parse(self, output: LLMResult) -> AgentCriticism: - text = output.content - text = re.sub(r"\n+", "\n", text.strip()) - checks = text.split("\n") - if not (checks[0].startswith("Action:")): - raise OutputParserError(text) - if checks[0].strip(". ") == "Action: Agree": - return AgentCriticism(True, "") - elif checks[0].strip(". ") == "Action: Disagree": - pattern = re.compile(r"Action Input: ([\S\n ]+)") - try: - criticism = pattern.findall(text)[0].strip() - except IndexError: - criticism = "I think the can be further improved." - # raise OutputParserError(text) - return AgentCriticism(False, criticism) - else: - raise OutputParserError(text) - - -@output_parser_registry.register("responsegen-critic-2") -class ResponseGenCriticParser(OutputParser): - def parse(self, output: LLMResult) -> AgentCriticism: - text = output.content - # text = re.sub(r"\n+", "\n", text.strip()) - # checks = text.split("\n") - # if not (checks[0].startswith("Action:")): - # raise OutputParserError(text) - # if checks[0].strip(". ") == "Action: Agree": - # return AgentCriticism(True, "") - # elif checks[0].strip(". ") == "Action: Disagree": - # pattern = re.compile(r"Action Input: ([\S\n ]+)") - # try: - # criticism = pattern.findall(text)[0].strip() - # except IndexError: - # # criticism = "I think the solution is not correct. Please think carefully and correct it." - # raise OutputParserError(text) - # return AgentCriticism(False, criticism) - # else: - # raise OutputParserError(text) - result = re.findall(r"Decision:(.+?)Response:(.+)", text, re.DOTALL) - if len(result) == 0: - result = ["Disagree", "I think the response can be further improved."] - else: - result = result[0] - if "Agree" in result[0]: - return AgentCriticism(True, "") - else: - return AgentCriticism(False, result[1].strip()) diff --git a/agentverse/tasks/tasksolving/tool_using/24point/config.yaml b/agentverse/tasks/tasksolving/tool_using/24point/config.yaml index 4e65b3f5b..2ac61f385 100644 --- a/agentverse/tasks/tasksolving/tool_using/24point/config.yaml +++ b/agentverse/tasks/tasksolving/tool_using/24point/config.yaml @@ -153,7 +153,7 @@ agents: temperature: 0 max_tokens: 512 output_parser: - type: role_description_name_assigner + type: role-description-name-assigner - #solver_agent: agent_type: solver diff --git a/agentverse/tasks/tasksolving/tool_using/bmi/config.yaml b/agentverse/tasks/tasksolving/tool_using/bmi/config.yaml index 97411d782..d950f8a29 100644 --- a/agentverse/tasks/tasksolving/tool_using/bmi/config.yaml +++ b/agentverse/tasks/tasksolving/tool_using/bmi/config.yaml @@ -153,7 +153,7 @@ agents: temperature: 0 max_tokens: 512 output_parser: - type: role_description_name_assigner + type: role-description-name-assigner - #solver_agent: agent_type: solver diff --git a/agentverse/tasks/tasksolving/tool_using/bookclub/config.yaml b/agentverse/tasks/tasksolving/tool_using/bookclub/config.yaml index abc03fe11..381bb99e2 100644 --- a/agentverse/tasks/tasksolving/tool_using/bookclub/config.yaml +++ b/agentverse/tasks/tasksolving/tool_using/bookclub/config.yaml @@ -153,7 +153,7 @@ agents: temperature: 0 max_tokens: 512 output_parser: - type: role_description_name_assigner + type: role-description-name-assigner - #solver_agent: agent_type: solver diff --git a/agentverse/tasks/tasksolving/tool_using/car/config.yaml b/agentverse/tasks/tasksolving/tool_using/car/config.yaml index 4344c707e..c2a3ddddf 100644 --- a/agentverse/tasks/tasksolving/tool_using/car/config.yaml +++ b/agentverse/tasks/tasksolving/tool_using/car/config.yaml @@ -153,7 +153,7 @@ agents: temperature: 0 max_tokens: 512 output_parser: - type: role_description_name_assigner + type: role-description-name-assigner - #solver_agent: agent_type: solver diff --git a/agentverse/tasks/tasksolving/tool_using/date/config.yaml b/agentverse/tasks/tasksolving/tool_using/date/config.yaml index 6e12f1746..46865cde2 100644 --- a/agentverse/tasks/tasksolving/tool_using/date/config.yaml +++ b/agentverse/tasks/tasksolving/tool_using/date/config.yaml @@ -155,7 +155,7 @@ agents: temperature: 0 max_tokens: 512 output_parser: - type: role_description_name_assigner + type: role-description-name-assigner - #solver_agent: agent_type: solver diff --git a/agentverse/tasks/tasksolving/tool_using/diy/config.yaml b/agentverse/tasks/tasksolving/tool_using/diy/config.yaml index 8fa2f173c..ca012db37 100644 --- a/agentverse/tasks/tasksolving/tool_using/diy/config.yaml +++ b/agentverse/tasks/tasksolving/tool_using/diy/config.yaml @@ -155,7 +155,7 @@ agents: temperature: 0 max_tokens: 512 output_parser: - type: role_description_name_assigner + type: role-description-name-assigner - #solver_agent: agent_type: solver diff --git a/agentverse/tasks/tasksolving/tool_using/output_parser.py b/agentverse/tasks/tasksolving/tool_using/output_parser.py deleted file mode 100644 index f3b38450d..000000000 --- a/agentverse/tasks/tasksolving/tool_using/output_parser.py +++ /dev/null @@ -1,77 +0,0 @@ -from __future__ import annotations - -import re -import ast -from typing import Union, List, Tuple - -from agentverse.utils import AgentAction, AgentFinish, AgentCriticism - -from agentverse.parser import OutputParserError, output_parser_registry, OutputParser -from agentverse.llms import LLMResult -from agentverse.logging import get_logger - -logger = get_logger() - - -@output_parser_registry.register("role_description_name_assigner") -class RoleAssignerParser(OutputParser): - cnt_critic_agents: int = 0 - - def parse(self, output: LLMResult) -> List[str]: - text = output.content - pattern = re.compile(r"\d+?\.\s*(.+?) - (.+)") - roles = pattern.findall(text) - if len(roles) < self.cnt_critic_agents: - logger.error( - f"Role assigner failed to assign roles to {self.cnt_critic_agents} critics!" - ) - raise OutputParserError(text) - res = [] - for role in roles: - res.append({"name": role[0], "description": role[1]}) - return res - - -@output_parser_registry.register("tool-using-solver") -class SolverParser(OutputParser): - def parse(self, output: LLMResult) -> Union[AgentAction, AgentFinish]: - text = output.content - pattern = re.compile(r"\d+?\.\s*(.+?) - (.+)") - tasks = pattern.findall(text) - if len(tasks) == 0: - raise OutputParserError(text) - return AgentFinish({"output": tasks}, text) - - -@output_parser_registry.register("tool-using-executor") -class ToolUsingSolverParser(OutputParser): - def parse(self, output: LLMResult) -> Union[AgentAction, AgentFinish]: - if output.function_name != "": - return AgentAction( - tool=output.function_name, - tool_input=output.function_arguments, - log=output.content, - ) - else: - return AgentFinish({"output": output.content}, output.content) - - -@output_parser_registry.register("tool-using-evaluator") -class HumanevalEvaluatorParser(OutputParser): - def parse(self, output: LLMResult) -> Tuple[List[int], str]: - text = output.content - try: - result = re.findall(r"Status:(.+?)Speak:(.+)", text, re.DOTALL)[0] - score = bool(int(result[0])) - words = result[1].strip() - except (IndexError, ValueError): - # logger.error("Bad response from evaluator!") - raise OutputParserError(text) - return score, words - - -@output_parser_registry.register("tool-using-critic") -class ToolUsingCriticParser(OutputParser): - def parse(self, output: LLMResult) -> AgentCriticism: - text = output.content - return AgentCriticism(False, text) diff --git a/agentverse/tasks/tasksolving/tool_using/party/config.yaml b/agentverse/tasks/tasksolving/tool_using/party/config.yaml index df7fad0bb..22b4be5e6 100644 --- a/agentverse/tasks/tasksolving/tool_using/party/config.yaml +++ b/agentverse/tasks/tasksolving/tool_using/party/config.yaml @@ -155,7 +155,7 @@ agents: temperature: 0 max_tokens: 512 output_parser: - type: role_description_name_assigner + type: role-description-name-assigner - #solver_agent: agent_type: solver diff --git a/agentverse/tasks/tasksolving/tool_using/sudoku/config.yaml b/agentverse/tasks/tasksolving/tool_using/sudoku/config.yaml index 4d1202028..3fc1a615a 100644 --- a/agentverse/tasks/tasksolving/tool_using/sudoku/config.yaml +++ b/agentverse/tasks/tasksolving/tool_using/sudoku/config.yaml @@ -153,7 +153,7 @@ agents: temperature: 0 max_tokens: 512 output_parser: - type: role_description_name_assigner + type: role-description-name-assigner - #solver_agent: agent_type: solver diff --git a/agentverse/tasks/tasksolving/tool_using/trending/config.yaml b/agentverse/tasks/tasksolving/tool_using/trending/config.yaml index 101612774..25a778fd3 100644 --- a/agentverse/tasks/tasksolving/tool_using/trending/config.yaml +++ b/agentverse/tasks/tasksolving/tool_using/trending/config.yaml @@ -153,7 +153,7 @@ agents: temperature: 0 max_tokens: 512 output_parser: - type: role_description_name_assigner + type: role-description-name-assigner - #solver_agent: agent_type: solver diff --git a/agentverse/tasks/tasksolving/tool_using/vacation/config.yaml b/agentverse/tasks/tasksolving/tool_using/vacation/config.yaml index c10dd1ed0..04925ff89 100644 --- a/agentverse/tasks/tasksolving/tool_using/vacation/config.yaml +++ b/agentverse/tasks/tasksolving/tool_using/vacation/config.yaml @@ -153,7 +153,7 @@ agents: temperature: 0 max_tokens: 512 output_parser: - type: role_description_name_assigner + type: role-description-name-assigner - #solver_agent: agent_type: solver From 7739cba39b8f4f4d17b70810a2ed92a79afdc425 Mon Sep 17 00:00:00 2001 From: chenweize1998 Date: Thu, 12 Oct 2023 19:43:35 +0800 Subject: [PATCH 024/101] bump version to 0.1.8 #60 --- agentverse/agents/simulation_agent/__init__.py | 0 agentverse/environments/simulation_env/__init__.py | 0 agentverse/environments/tasksolving_env/__init__.py | 0 agentverse/llms/utils/__init__.py | 1 + setup.py | 2 +- 5 files changed, 2 insertions(+), 1 deletion(-) create mode 100644 agentverse/agents/simulation_agent/__init__.py create mode 100644 agentverse/environments/simulation_env/__init__.py create mode 100644 agentverse/environments/tasksolving_env/__init__.py create mode 100644 agentverse/llms/utils/__init__.py diff --git a/agentverse/agents/simulation_agent/__init__.py b/agentverse/agents/simulation_agent/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/agentverse/environments/simulation_env/__init__.py b/agentverse/environments/simulation_env/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/agentverse/environments/tasksolving_env/__init__.py b/agentverse/environments/tasksolving_env/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/agentverse/llms/utils/__init__.py b/agentverse/llms/utils/__init__.py new file mode 100644 index 000000000..e122a4906 --- /dev/null +++ b/agentverse/llms/utils/__init__.py @@ -0,0 +1 @@ +from . jsonrepair import JsonRepair diff --git a/setup.py b/setup.py index bef006aea..1632a1fe5 100644 --- a/setup.py +++ b/setup.py @@ -10,7 +10,7 @@ setuptools.setup( name="agentverse", - version="0.1.5", + version="0.1.8", author="OpenBMB", author_email="chenweize1998@gmail.com", description="A versatile framework that streamlines the process of creating custom multi-agent environments for large language models (LLMs).", From 7aeed342e9a35cd326e09c10c9dc3fd669e84165 Mon Sep 17 00:00:00 2001 From: yitong <2969413251@qq.com> Date: Fri, 13 Oct 2023 19:34:10 +0800 Subject: [PATCH 025/101] fix: fix a bug about updating kwargs --- agentverse/agents/tasksolving_agent/critic.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/agentverse/agents/tasksolving_agent/critic.py b/agentverse/agents/tasksolving_agent/critic.py index f6aeae3ca..6cbe46148 100644 --- a/agentverse/agents/tasksolving_agent/critic.py +++ b/agentverse/agents/tasksolving_agent/critic.py @@ -38,9 +38,9 @@ def __init__(self, *args, **kwargs): tool_descriptions = "\n".join( [f"- {t['name']}: " + t["description"] for t in tools] ) - kwargs.update('tools', tools) - kwargs.update('tool_names', tool_names) - kwargs.update('tool_descriptions', tool_descriptions) + kwargs.update({"tools": tools}) + kwargs.update({"tool_names": tool_names}) + kwargs.update({"tool_descriptions": tool_descriptions}) except Exception as e: logger.error(e) logger.warn("Failed to load tool config file.") From af343008dc904a32c6a2245df49805b5076f062e Mon Sep 17 00:00:00 2001 From: Yusheng Su Date: Sat, 14 Oct 2023 19:43:10 +0400 Subject: [PATCH 026/101] update --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 4e448d6cb..564b01009 100644 --- a/README.md +++ b/README.md @@ -33,6 +33,10 @@ **AgentVerse** offers a versatile framework that streamlines the process of creating custom multi-agent environments for large language models (LLMs). Designed to facilitate swift development and customization with minimal effort, our framework empowers researchers to concentrate on their research, rather than being bogged down by implementation details. +**AgentVerse** is designed to facilitate the deployment of mutiple LLM-based agents in various applications. + + + ⚠️⚠️⚠️ We're refactoring the code, and the goal is to provide a flexibility to construct simulation(without a predefined goal) and task-solving(with a specific goal) environments. Please note that this README is slightly outdated, we will update it soon. If you require a stable version that exclusively supports simulation environments, you can use [`release-0.1`](https://github.com/OpenBMB/AgentVerse/tree/release-0.1) branch. --- From 0a1a225715dabaa61ec24798890797ce53334e79 Mon Sep 17 00:00:00 2001 From: Yusheng Su Date: Sat, 14 Oct 2023 20:12:38 +0400 Subject: [PATCH 027/101] update --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 564b01009..ec14a4991 100644 --- a/README.md +++ b/README.md @@ -33,7 +33,9 @@ **AgentVerse** offers a versatile framework that streamlines the process of creating custom multi-agent environments for large language models (LLMs). Designed to facilitate swift development and customization with minimal effort, our framework empowers researchers to concentrate on their research, rather than being bogged down by implementation details. -**AgentVerse** is designed to facilitate the deployment of mutiple LLM-based agents in various applications. +**AgentVerse** is designed to facilitate the deployment of mutiple LLM-based agents in various applications. AgentVerse primarily provides two frameworks: simulation and task-solving. +- Task-solving: This framework assembles multiple agents as an automatic multi-agent system, such as software development systems, consulting systems, etc., to accomplish the corresponding tasks. +- Simulation: From 362dfce5b6977174b6056f672e121af5b147f8a3 Mon Sep 17 00:00:00 2001 From: Yusheng Su Date: Sun, 15 Oct 2023 00:13:09 +0400 Subject: [PATCH 028/101] update --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ec14a4991..2054d8649 100644 --- a/README.md +++ b/README.md @@ -33,7 +33,7 @@ **AgentVerse** offers a versatile framework that streamlines the process of creating custom multi-agent environments for large language models (LLMs). Designed to facilitate swift development and customization with minimal effort, our framework empowers researchers to concentrate on their research, rather than being bogged down by implementation details. -**AgentVerse** is designed to facilitate the deployment of mutiple LLM-based agents in various applications. AgentVerse primarily provides two frameworks: simulation and task-solving. +**AgentVerse** is designed to facilitate the deployment of mutiple LLM-based agents in various applications. AgentVerse primarily provides two frameworks: **simulation** and **task-solving**. - Task-solving: This framework assembles multiple agents as an automatic multi-agent system, such as software development systems, consulting systems, etc., to accomplish the corresponding tasks. - Simulation: From 86f10c35195b3f8a46e04c48ebdfd029e80d10dd Mon Sep 17 00:00:00 2001 From: Yusheng Su Date: Sun, 15 Oct 2023 00:42:14 +0400 Subject: [PATCH 029/101] update --- README.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 2054d8649..0678602e6 100644 --- a/README.md +++ b/README.md @@ -31,12 +31,15 @@ 【English | Chinese

+ + +**AgentVerse** is designed to facilitate the deployment of mutiple LLM-based agents in various applications. AgentVerse primarily provides two frameworks: **task-solving** and **simulation**. -**AgentVerse** is designed to facilitate the deployment of mutiple LLM-based agents in various applications. AgentVerse primarily provides two frameworks: **simulation** and **task-solving**. -- Task-solving: This framework assembles multiple agents as an automatic multi-agent system, such as software development systems, consulting systems, etc., to accomplish the corresponding tasks. -- Simulation: +- Task-solving: This framework assembles multiple agents as an automatic multi-agent system ([Multi-agent as system](https://arxiv.org/abs/2309.02427)) to collaboratively accomplish the corresponding tasks. Applications: software development system, consulting system, etc. +- Simulation: This framework allows users to set up custom environments to observe behaviors among, or interact with, multiple agents. Applications: game, social behavior research of LLM-based agents, etc. ⚠️⚠️⚠️ We're refactoring the code, and the goal is to provide a flexibility to construct simulation(without a predefined goal) and task-solving(with a specific goal) environments. Please note that this README is slightly outdated, we will update it soon. If you require a stable version that exclusively supports simulation environments, you can use [`release-0.1`](https://github.com/OpenBMB/AgentVerse/tree/release-0.1) branch. From 1b2a86bcf3f9713e0abd4f1cb5e43f58b8ffc85a Mon Sep 17 00:00:00 2001 From: Yusheng Su Date: Sun, 15 Oct 2023 00:47:06 +0400 Subject: [PATCH 030/101] update --- README.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 0678602e6..df27003bb 100644 --- a/README.md +++ b/README.md @@ -39,10 +39,12 @@ - Task-solving: This framework assembles multiple agents as an automatic multi-agent system ([Multi-agent as system](https://arxiv.org/abs/2309.02427)) to collaboratively accomplish the corresponding tasks. Applications: software development system, consulting system, etc. -- Simulation: This framework allows users to set up custom environments to observe behaviors among, or interact with, multiple agents. Applications: game, social behavior research of LLM-based agents, etc. - +- Simulation: This framework allows users to set up custom environments to observe behaviors among, or interact with, multiple agents.(⚠️⚠️⚠️ We're refactoring the code. If you require a stable version that exclusively supports simulation framework, you can use [`release-0.1`](https://github.com/OpenBMB/AgentVerse/tree/release-0.1) branch. +) Applications: game, social behavior research of LLM-based agents, etc. + --- From f1261cf83edae40996915312fa9740fac58d0307 Mon Sep 17 00:00:00 2001 From: Yusheng Su Date: Sun, 15 Oct 2023 00:50:30 +0400 Subject: [PATCH 031/101] update --- README.md | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index df27003bb..e1a6a8146 100644 --- a/README.md +++ b/README.md @@ -39,9 +39,15 @@ - Task-solving: This framework assembles multiple agents as an automatic multi-agent system ([Multi-agent as system](https://arxiv.org/abs/2309.02427)) to collaboratively accomplish the corresponding tasks. Applications: software development system, consulting system, etc. +

+Screen Shot 2023-09-01 at 12 08 57 PM +

+ - Simulation: This framework allows users to set up custom environments to observe behaviors among, or interact with, multiple agents.(⚠️⚠️⚠️ We're refactoring the code. If you require a stable version that exclusively supports simulation framework, you can use [`release-0.1`](https://github.com/OpenBMB/AgentVerse/tree/release-0.1) branch. ) Applications: game, social behavior research of LLM-based agents, etc. +https://github.com/OpenBMB/AgentVerse/assets/11704492/4d07da68-f942-4205-b558-f155e95782e7 + @@ -60,9 +66,6 @@ - [2023/10/5] 💡 We release the code of our paper [AgentVerse: Facilitating Multi-Agent Collaboration and Exploring Emergent Behaviors in Agents](https://arxiv.org/abs/2308.10848), and refactor our codebase to enable the creation of both simulation and task-solving environment! We have placed the code for Minecraft example in the paper at the [`minecraft`](https://github.com/OpenBMB/AgentVerse/tree/minecraft) branch. Our tool-using example will soon be updated to the `main` branch. Stay tuned! - [2023/8/22] 📝 We're excited to share our work-in-progress paper [AgentVerse: Facilitating Multi-Agent Collaboration and Exploring Emergent Behaviors in Agents](https://arxiv.org/abs/2308.10848) related to this repository. -

-Screen Shot 2023-09-01 at 12 08 57 PM -

- [2023/6/5] 🎉 We are thrilled to present an array of [demos](#-simple-demo-video), including [NLP Classroom](#nlp-classroom), [Prisoner Dilemma](#prisoner-dilemma), [Software Design](#software-design), [Database Administrator](#database-administrator-dba), and a simple [H5 Pokemon Game](#pokemon) that enables the interaction with the characters in Pokemon! Try out these demos and have fun! - [2023/5/1] 🚀 [AgentVerse](https://github.com/OpenBMB/AgentVerse) is officially launched! @@ -92,12 +95,7 @@ Also, if you're passionate about advancing the frontiers of multi-agent environm ## 👾 Simple Demo Video We demonstrate the following cases that are expertly crafted by AgentVerse. - - - #### NLP Classroom In the NLP class, the professor and students engage in interactive communication. When students have a question, they raise their hands and patiently wait for the professor to call on them. Only after being called on by the professor, can students speak and ask their questions. From e477d7e4f16b1111d148226c8d700dbf657b1807 Mon Sep 17 00:00:00 2001 From: Yusheng Su Date: Sun, 15 Oct 2023 00:51:15 +0400 Subject: [PATCH 032/101] update --- README.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index e1a6a8146..cc887baf6 100644 --- a/README.md +++ b/README.md @@ -37,14 +37,16 @@ **AgentVerse** is designed to facilitate the deployment of mutiple LLM-based agents in various applications. AgentVerse primarily provides two frameworks: **task-solving** and **simulation**. -- Task-solving: This framework assembles multiple agents as an automatic multi-agent system ([Multi-agent as system](https://arxiv.org/abs/2309.02427)) to collaboratively accomplish the corresponding tasks. Applications: software development system, consulting system, etc. +- Task-solving: This framework assembles multiple agents as an automatic multi-agent system ([Multi-agent as system](https://arxiv.org/abs/2309.02427)) to collaboratively accomplish the corresponding tasks. +Applications: software development system, consulting system, etc.

Screen Shot 2023-09-01 at 12 08 57 PM

- Simulation: This framework allows users to set up custom environments to observe behaviors among, or interact with, multiple agents.(⚠️⚠️⚠️ We're refactoring the code. If you require a stable version that exclusively supports simulation framework, you can use [`release-0.1`](https://github.com/OpenBMB/AgentVerse/tree/release-0.1) branch. -) Applications: game, social behavior research of LLM-based agents, etc. +) +Applications: game, social behavior research of LLM-based agents, etc. https://github.com/OpenBMB/AgentVerse/assets/11704492/4d07da68-f942-4205-b558-f155e95782e7 From 0b1ed5e99324258a7106a4b56440292f0f41bcc4 Mon Sep 17 00:00:00 2001 From: Yusheng Su Date: Sun, 15 Oct 2023 00:52:22 +0400 Subject: [PATCH 033/101] update --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index cc887baf6..2d4c89145 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,10 @@

🤖 AgentVerse 🪐

+

From b529052f8cc156eaa7b40d24eaeb89f56a0b3610 Mon Sep 17 00:00:00 2001 From: Yusheng Su Date: Sun, 15 Oct 2023 00:59:52 +0400 Subject: [PATCH 034/101] update --- README.md | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 2d4c89145..4463cbc2d 100644 --- a/README.md +++ b/README.md @@ -58,24 +58,19 @@ https://github.com/OpenBMB/AgentVerse/assets/11704492/4d07da68-f942-4205-b558-f1 --- -## ✨ Features - -- 🥳 **Efficient Environment Building:** Our framework provides a collection of essential building blocks for effortlessly creating a multi-agent environment. With only a few lines in a configuration file, you can easily construct basic environments such as a chat room for LLMs. This process entails defining the environment's settings and prompts for LLMs, enabling researchers like you to concentrate on experimentation and analysis. - -- ⚙️ **Customizable Components**: AgentVerse simplifies the multi-agent environment by dividing it into five functional modules and defining their respective interfaces. For complex environments that cannot be constructed directly using the basic modules offered in AgentVerse, you can customize one or more of the interfaces within these five functional modules to efficiently create your own multi-agent environment according to your requirements. - -- 🛠 **Tools (Plugins) Utilization**: AgentVerse supports the multi-agent environments with tools. Currently, AgentVerse supports tools provided in [BMTools](https://github.com/OpenBMB/BMTools). ## 📰 What's New -- [2023/10/5] 💡 We release the code of our paper [AgentVerse: Facilitating Multi-Agent Collaboration and Exploring Emergent Behaviors in Agents](https://arxiv.org/abs/2308.10848), and refactor our codebase to enable the creation of both simulation and task-solving environment! We have placed the code for Minecraft example in the paper at the [`minecraft`](https://github.com/OpenBMB/AgentVerse/tree/minecraft) branch. Our tool-using example will soon be updated to the `main` branch. Stay tuned! +- [2023/10/5] Re-factor our codebase to enable the deployment of both simulation and task-solving framework! We have placed the code for Minecraft example in the paper at the [`minecraft`](https://github.com/OpenBMB/AgentVerse/tree/minecraft) branch. Our tool-using example will soon be updated to the `main` branch. Stay tuned! -- [2023/8/22] 📝 We're excited to share our work-in-progress paper [AgentVerse: Facilitating Multi-Agent Collaboration and Exploring Emergent Behaviors in Agents](https://arxiv.org/abs/2308.10848) related to this repository. +- [2023/8/22] We're excited to share our paper [AgentVerse: Facilitating Multi-Agent Collaboration and Exploring Emergent Behaviors in Agents](https://arxiv.org/abs/2308.10848) that illistrate the task-solving framework +in detail of AgentVerse. -- [2023/6/5] 🎉 We are thrilled to present an array of [demos](#-simple-demo-video), including [NLP Classroom](#nlp-classroom), [Prisoner Dilemma](#prisoner-dilemma), [Software Design](#software-design), [Database Administrator](#database-administrator-dba), and a simple [H5 Pokemon Game](#pokemon) that enables the interaction with the characters in Pokemon! Try out these demos and have fun! +- [2023/6/5] We are thrilled to present an array of [demos](#-simple-demo-video), including [NLP Classroom](#nlp-classroom), [Prisoner Dilemma](#prisoner-dilemma), [Software Design](#software-design), [Database Administrator](#database-administrator-dba), and a simple [H5 Pokemon Game](#pokemon) that enables the interaction with the characters in Pokemon! Try out these demos and have fun! - [2023/5/1] 🚀 [AgentVerse](https://github.com/OpenBMB/AgentVerse) is officially launched! ## 🌟 Join Us! AgentVerse is on a mission to revolutionize the multi-agent environment for large language models, and we're eagerly looking for passionate collaborators to join us on this exciting journey. + ### How Can You Contribute? - **Code Development**: If you're an engineer, help us refine, optimize, and expand the current framework. We're always looking for talented developers to enhance our existing features and develop new modules. From 51f4c8bc5e8032826d261c72a0b3a05e00394e8c Mon Sep 17 00:00:00 2001 From: Yusheng Su Date: Sun, 15 Oct 2023 01:06:41 +0400 Subject: [PATCH 035/101] update --- README.md | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 4463cbc2d..b1f908857 100644 --- a/README.md +++ b/README.md @@ -33,10 +33,6 @@ 【English | Chinese

- - **AgentVerse** is designed to facilitate the deployment of mutiple LLM-based agents in various applications. AgentVerse primarily provides two frameworks: **task-solving** and **simulation**. - Task-solving: This framework assembles multiple agents as an automatic multi-agent system ([Multi-agent as system](https://arxiv.org/abs/2309.02427)) to collaboratively accomplish the corresponding tasks. @@ -52,10 +48,6 @@ Applications: game, social behavior research of LLM-based agents, etc. https://github.com/OpenBMB/AgentVerse/assets/11704492/4d07da68-f942-4205-b558-f155e95782e7 - - --- @@ -80,7 +72,7 @@ AgentVerse is on a mission to revolutionize the multi-agent environment for larg - **Feedback and Suggestions**: Use AgentVerse and provide us with feedback. Your insights can lead to potential improvements and ensure that our framework remains top-notch. -Also, if you're passionate about advancing the frontiers of multi-agent environments and are eager to dive deeper into research, we invite you to join our team at THUNLP. To explore this exciting opportunity and embark on a collaborative journey with us, please reach out to [chenweize1998@gmail.com](chenweize1998@gmail.com) and [yushengsu.thu@gmail.com](yushengsu.thu@gmail.com) and express your interest. We're keen to welcome motivated individuals like you to our lab! +Also, if you're passionate about advancing the frontiers of multi-agent applications and are eager to dive deeper into research, we invite you to join AgentVerse team. Please reach out [AgentVerse Team](agentverse2@gmail.com) and CC to [chenweize1998@gmail.com](chenweize1998@gmail.com) and [yushengsu.thu@gmail.com](yushengsu.thu@gmail.com). We're keen to welcome motivated individuals like you to our team! 👉Also, check our Discord: https://discord.gg/cnutfCtC. @@ -423,7 +415,11 @@ If you find this repo helpful, feel free to cite us. ## Contact -Weize Chen: chenweize1998@gmail.com +AgentVerse Team: agentverse2@gmail.com + +Project leaders: + +- Weize Chen: chenweize1998@gmail.com -[Yusheng Su](https://yushengsu-thu.github.io/): yushengsu.thu@gmail.com +- [Yusheng Su](https://yushengsu-thu.github.io/): yushengsu.thu@gmail.com From bc9216e543c32c3505c3340843b0afd0fa2ffbd4 Mon Sep 17 00:00:00 2001 From: Yusheng Su Date: Sun, 15 Oct 2023 01:12:41 +0400 Subject: [PATCH 036/101] update --- README.md | 41 ++++++++++++++++++++++++++++------------- 1 file changed, 28 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index b1f908857..f29fad997 100644 --- a/README.md +++ b/README.md @@ -60,21 +60,8 @@ in detail of AgentVerse. - [2023/6/5] We are thrilled to present an array of [demos](#-simple-demo-video), including [NLP Classroom](#nlp-classroom), [Prisoner Dilemma](#prisoner-dilemma), [Software Design](#software-design), [Database Administrator](#database-administrator-dba), and a simple [H5 Pokemon Game](#pokemon) that enables the interaction with the characters in Pokemon! Try out these demos and have fun! - [2023/5/1] 🚀 [AgentVerse](https://github.com/OpenBMB/AgentVerse) is officially launched! -## 🌟 Join Us! -AgentVerse is on a mission to revolutionize the multi-agent environment for large language models, and we're eagerly looking for passionate collaborators to join us on this exciting journey. - -### How Can You Contribute? -- **Code Development**: If you're an engineer, help us refine, optimize, and expand the current framework. We're always looking for talented developers to enhance our existing features and develop new modules. -- **Documentation and Tutorials**: If you have a knack for writing, help us improve our documentation, create tutorials, or write blog posts to make AgentVerse more accessible to the broader community. -- **Application Exploration**: If you're intrigued by multi-agent applications and are eager to experiment using AgentVerse, we'd be thrilled to support your journey and see what you create! - -- **Feedback and Suggestions**: Use AgentVerse and provide us with feedback. Your insights can lead to potential improvements and ensure that our framework remains top-notch. - -Also, if you're passionate about advancing the frontiers of multi-agent applications and are eager to dive deeper into research, we invite you to join AgentVerse team. Please reach out [AgentVerse Team](agentverse2@gmail.com) and CC to [chenweize1998@gmail.com](chenweize1998@gmail.com) and [yushengsu.thu@gmail.com](yushengsu.thu@gmail.com). We're keen to welcome motivated individuals like you to our team! - -👉Also, check our Discord: https://discord.gg/cnutfCtC. ## 🗓 Coming Soon - [x] Code release of our [paper](https://arxiv.org/abs/2308.10848) @@ -277,6 +264,7 @@ agentverse-tasksolving --task tasksolving/humaneval/gpt-3.5 --dataset_path data/ You can take a look at `agentverse/tasks/tasksolving` for more experiments we have done in our paper. + + + + + + +## 🌟 Join Us! +AgentVerse is on a mission to revolutionize the multi-agent environment for large language models, and we're eagerly looking for passionate collaborators to join us on this exciting journey. + +### How Can You Contribute? +- **Code Development**: If you're an engineer, help us refine, optimize, and expand the current framework. We're always looking for talented developers to enhance our existing features and develop new modules. + +- **Documentation and Tutorials**: If you have a knack for writing, help us improve our documentation, create tutorials, or write blog posts to make AgentVerse more accessible to the broader community. + +- **Application Exploration**: If you're intrigued by multi-agent applications and are eager to experiment using AgentVerse, we'd be thrilled to support your journey and see what you create! + +- **Feedback and Suggestions**: Use AgentVerse and provide us with feedback. Your insights can lead to potential improvements and ensure that our framework remains top-notch. + +Also, if you're passionate about advancing the frontiers of multi-agent applications and are eager to dive deeper into research, we invite you to join AgentVerse team. Please reach out [AgentVerse Team](agentverse2@gmail.com) and CC to [chenweize1998@gmail.com](chenweize1998@gmail.com) and [yushengsu.thu@gmail.com](yushengsu.thu@gmail.com). We're keen to welcome motivated individuals like you to our team! + + +### Social Media and Community + +- Twitter: https://twitter.com/Agentverse71134 + +- Discord: https://discord.gg/cnutfCtC. ## Star History From dd49c21c81157fdd454bfd0d6fdc8e68a56b2dbd Mon Sep 17 00:00:00 2001 From: Yusheng Su Date: Sun, 15 Oct 2023 01:14:46 +0400 Subject: [PATCH 037/101] update --- README.md | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index f29fad997..93baee406 100644 --- a/README.md +++ b/README.md @@ -70,6 +70,8 @@ in detail of AgentVerse. - [ ] Add support for local LLM + ## Contents @@ -221,13 +224,7 @@ python setup.py develop ``` - + ### Simulation CLI Example @@ -264,6 +261,8 @@ agentverse-tasksolving --task tasksolving/humaneval/gpt-3.5 --dataset_path data/ You can take a look at `agentverse/tasks/tasksolving` for more experiments we have done in our paper. + + - + + + +## Contents +- [📰 What's New](#-whats-new) +- [🗓 Coming Soon](#-coming-soon) +- [Contents](#contents) +- [🚀 Getting Started](#-getting-started) + - [Installation](#installation) + - [Simulation CLI Example](#simulation-cli-example) + - [Simulation Local Website Demo](#simulation-local-website-demo) + - [Task-Solving CLI Example](#task-solving-cli-example) +- [🔎 Examples](#-examples) +- [🌟 Join Us!](#-join-us) + - [How Can You Contribute?](#how-can-you-contribute) +- [Social Media and Community](#social-media-and-community) +- [Star History](#star-history) +- [Citation](#citation) +- [Contact](#contact) + + ## 🚀 Getting Started @@ -224,8 +245,6 @@ python setup.py develop ``` - - ### Simulation CLI Example You can create a multi-agent environments provided by us. Using the classroom scenario as an example. In this scenario, there are nine agents, one playing the role of a professor and the other eight as students. From d13c412a6eae45a59ce1ad824d68e4753ff342b9 Mon Sep 17 00:00:00 2001 From: Yusheng Su Date: Sun, 15 Oct 2023 02:00:15 +0400 Subject: [PATCH 042/101] update --- README.md | 8 ++++ README_simulation_cases.md | 75 +++++++++++++++++++++++++++++++++++++ README_tasksolving_cases.md | 0 setup.py | 4 +- 4 files changed, 85 insertions(+), 2 deletions(-) create mode 100644 README_simulation_cases.md create mode 100644 README_tasksolving_cases.md diff --git a/README.md b/README.md index a72a6db18..a8f876637 100644 --- a/README.md +++ b/README.md @@ -280,6 +280,14 @@ agentverse-tasksolving --task tasksolving/humaneval/gpt-3.5 --dataset_path data/ You can take a look at `agentverse/tasks/tasksolving` for more experiments we have done in our paper. +## AgentVerse Showcases + +### Simulation Showcases +Refer to + +### Task-Solving Showcases +Refer to + -## Contents +# Contents - [📰 What's New](#-whats-new) - [🗓 Coming Soon](#-coming-soon) - [Contents](#contents) @@ -207,9 +207,9 @@ https://github.com/OpenBMB/AgentVerse/assets/11704492/4d07da68-f942-4205-b558-f1 -## 🚀 Getting Started +# 🚀 Getting Started -### Installation +## Installation ```bash pip install -U agentverse @@ -245,9 +245,9 @@ pip install -r requirements.txt python setup.py develop ``` -### Simulation +## Simulation -#### Framework Required Modules +### Framework Required Modules ``` - agentverse - agents @@ -256,7 +256,7 @@ python setup.py develop - simulation_env ``` -#### CLI Example +### CLI Example You can create a multi-agent environments provided by us. Using the classroom scenario as an example. In this scenario, there are nine agents, one playing the role of a professor and the other eight as students. @@ -266,7 +266,7 @@ python3 agentverse_command/main_simulation_cli.py --task simulation/nlp_classroo agentverse-simulation --task simulation/nlp_classroom_9players ``` -#### GUI Example (Local) +### GUI Example (Local) We also provide a local website demo for this environment. You can launch it with @@ -278,10 +278,10 @@ agentverse-simulation-gui --task simulation/nlp_classroom_9players After successfully launching the local server, you can visit [http://127.0.0.1:7860/](http://127.0.0.1:7860/) to view the classroom environment. -### Task-Solving +## Task-Solving -#### Framework Required Modules +### Framework Required Modules ``` - agentverse - agents @@ -290,7 +290,7 @@ After successfully launching the local server, you can visit [http://127.0.0.1:7 - tasksolving_env ``` -#### CLI Example +### CLI Example To run the experiments with the task-solving environment proposed in our [paper](https://arxiv.org/abs/2308.10848), you can use the following command: @@ -304,12 +304,12 @@ agentverse-tasksolving --task tasksolving/humaneval/gpt-3.5 --dataset_path data/ You can take a look at `agentverse/tasks/tasksolving` for more experiments we have done in our paper. -## AgentVerse Showcases +# AgentVerse Showcases -### Simulation Showcases +## Simulation Showcases Refer to [simulation showcases](README_simulation_cases.md) -### Task-Solving Showcases +## Task-Solving Showcases Refer to [tasksolving showcases](README_tasksolving_cases.md) @@ -447,14 +447,14 @@ Here's a brief overview of each example: --> -## 🌟 Join Us! +# 🌟 Join Us! AgentVerse is on a mission to revolutionize the multi-agent environment for large language models, and we're eagerly looking for passionate collaborators to join us on this exciting journey. -### Leaders +## Leaders Leader Leader -### Contributors +## Contributors Contributor Contributor Contributor @@ -469,7 +469,7 @@ AgentVerse is on a mission to revolutionize the multi-agent environment for larg Contributor -### How Can You Contribute? +## How Can You Contribute? - **Code Development**: If you're an engineer, help us refine, optimize, and expand the current framework. We're always looking for talented developers to enhance our existing features and develop new modules. - **Documentation and Tutorials**: If you have a knack for writing, help us improve our documentation, create tutorials, or write blog posts to make AgentVerse more accessible to the broader community. @@ -481,14 +481,14 @@ AgentVerse is on a mission to revolutionize the multi-agent environment for larg Also, if you're passionate about advancing the frontiers of multi-agent applications, become core AgentVerse team members, or are eager to dive deeper into agent research. Please reach out [AgentVerse Team](agentverse2@gmail.com), and CC to [chenweize1998@gmail.com](chenweize1998@gmail.com) and [yushengsu.thu@gmail.com](yushengsu.thu@gmail.com). We're keen to welcome motivated individuals like you to our team! -### Social Media and Community +## Social Media and Community - Twitter: https://twitter.com/Agentverse71134 - Discord: https://discord.gg/cnutfCtC. -## Star History +# Star History [![Star History Chart](https://api.star-history.com/svg?repos=OpenBMB/AgentVerse&type=Date)](https://star-history.com/#OpenBMB/AgentVerse&Date) @@ -504,7 +504,7 @@ If you find this repo helpful, feel free to cite us. } ``` -## Contact +# Contact AgentVerse Team: agentverse2@gmail.com From 8a9f38ed6b74d7b186f2549049b8d4979d37e521 Mon Sep 17 00:00:00 2001 From: Yusheng Su Date: Mon, 16 Oct 2023 23:12:36 +0400 Subject: [PATCH 055/101] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index fecfbcef5..869d9838f 100644 --- a/README.md +++ b/README.md @@ -478,7 +478,7 @@ AgentVerse is on a mission to revolutionize the multi-agent environment for larg - **Feedback and Suggestions**: Use AgentVerse and provide us with feedback. Your insights can lead to potential improvements and ensure that our framework remains top-notch. -Also, if you're passionate about advancing the frontiers of multi-agent applications, become core AgentVerse team members, or are eager to dive deeper into agent research. Please reach out [AgentVerse Team](agentverse2@gmail.com), and CC to [chenweize1998@gmail.com](chenweize1998@gmail.com) and [yushengsu.thu@gmail.com](yushengsu.thu@gmail.com). We're keen to welcome motivated individuals like you to our team! +Also, if you're passionate about advancing the frontiers of multi-agent applications, become core AgentVerse team members, or are eager to dive deeper into agent research. Please reach out [AgentVerse Team](mailto:agentverse2@gmail.com?subject=[GitHub]%20Source%20Han%20Sans), and CC to [Weize Chen](mailto:chenweize1998@gmail.com?subject=[GitHub]%20Source%20Han%20Sans) and [Yusheng Su](mailto:yushengsu.thu@gmail.com?subject=[GitHub]%20Source%20Han%20Sans). We're keen to welcome motivated individuals like you to our team! ## Social Media and Community From 31dc92d9a84e27af0ecd8edd3fbb723eaf809943 Mon Sep 17 00:00:00 2001 From: Yusheng Su Date: Mon, 16 Oct 2023 23:14:21 +0400 Subject: [PATCH 056/101] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 869d9838f..74fe2fe0b 100644 --- a/README.md +++ b/README.md @@ -478,7 +478,7 @@ AgentVerse is on a mission to revolutionize the multi-agent environment for larg - **Feedback and Suggestions**: Use AgentVerse and provide us with feedback. Your insights can lead to potential improvements and ensure that our framework remains top-notch. -Also, if you're passionate about advancing the frontiers of multi-agent applications, become core AgentVerse team members, or are eager to dive deeper into agent research. Please reach out [AgentVerse Team](mailto:agentverse2@gmail.com?subject=[GitHub]%20Source%20Han%20Sans), and CC to [Weize Chen](mailto:chenweize1998@gmail.com?subject=[GitHub]%20Source%20Han%20Sans) and [Yusheng Su](mailto:yushengsu.thu@gmail.com?subject=[GitHub]%20Source%20Han%20Sans). We're keen to welcome motivated individuals like you to our team! +Also, if you're passionate about advancing the frontiers of multi-agent applications, become core AgentVerse team members, or are eager to dive deeper into agent research. Please reach out [AgentVerse Team](mailto:agentverse2@gmail.com?subject=[GitHub]%AgentVerse%20Project), and CC to [Weize Chen](mailto:chenweize1998@gmail.com?subject=[GitHub]%AgentVerse%20Project) and [Yusheng Su](mailto:yushengsu.thu@gmail.com?subject=[GitHub]%AgentVerse%20Project). We're keen to welcome motivated individuals like you to our team! ## Social Media and Community From 649330412b588c50364a1a5776fda538948454c6 Mon Sep 17 00:00:00 2001 From: Ran Li <77495458+ASL-r@users.noreply.github.com> Date: Tue, 17 Oct 2023 07:38:23 -0700 Subject: [PATCH 057/101] doc: modify README.md (#67) [ci skip] --- README.md | 6 ++++++ README_zh.md | 5 +++++ 2 files changed, 11 insertions(+) diff --git a/README.md b/README.md index 74fe2fe0b..b3bb5bb76 100644 --- a/README.md +++ b/README.md @@ -22,6 +22,9 @@ Contributions: Welcome + + Hugging Face +

@@ -53,6 +56,8 @@ Applications: software development system, consulting system, etc. # 📰 What's New +- [2023/10/17] We're super excited to share our open-source AI community hugging face: [`AgentVerse`](https://huggingface.co/spaces/AgentVerse/agentVerse). You are able to try out the two simulation applications, NLP Classroom and Prisoner's Dilemma,with your code of the openai API key and the openai organization. Have fun! + - [2023/10/5] Re-factor our codebase to enable the deployment of both simulation and task-solving framework! We have placed the code for Minecraft example in the paper at the [`minecraft`](https://github.com/OpenBMB/AgentVerse/tree/minecraft) branch. Our tool-using example will soon be updated to the `main` branch. Stay tuned! - [2023/8/22] We're excited to share our paper [AgentVerse: Facilitating Multi-Agent Collaboration and Exploring Emergent Behaviors in Agents](https://arxiv.org/abs/2308.10848) that illistrate the task-solving framework @@ -487,6 +492,7 @@ Also, if you're passionate about advancing the frontiers of multi-agent applicat - Discord: https://discord.gg/cnutfCtC. +- Hugging Face: https://huggingface.co/spaces/AgentVerse/agentVerse. # Star History diff --git a/README_zh.md b/README_zh.md index 988dacaf5..bff9fbc8a 100644 --- a/README_zh.md +++ b/README_zh.md @@ -10,6 +10,9 @@ Documentation + + Hugging Face +

@@ -33,6 +36,8 @@ - 🛠 **工具(插件)利用**: AgentVerse支持多智能体环境的工具。目前,AgentVerse支持[BMTools](https://github.com/OpenBMB/BMTools)中提供的工具。 ## 📰 最新消息 +- [2023/10/17] 我们很高兴来分享我们AI开源社区 hugging face: [`AgentVerse`](https://huggingface.co/spaces/AgentVerse/agentVerse). 在你提供openai API 密钥 and the openai 组织码之后,你可以体验NLP教室和囚徒困境两个模拟应用程序。祝你玩得开心! + - [2023/8/22] 📝 我们很高兴分享与此仓库相关的正在进行中的论文[AgentVerse: Facilitating Multi-Agent Collaboration and Exploring Emergent Behaviors in Agents](https://arxiv.org/abs/2308.10848). Screen Shot 2023-09-01 at 12 08 57 PM From b001a327d8346570e892632e8972e332cf0d8c3c Mon Sep 17 00:00:00 2001 From: chenweize1998 Date: Wed, 18 Oct 2023 16:31:50 +0800 Subject: [PATCH 058/101] update requirements.txt [ci skip] --- requirements.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/requirements.txt b/requirements.txt index dc4985600..b6b24354b 100644 --- a/requirements.txt +++ b/requirements.txt @@ -6,7 +6,7 @@ iso-639 openai==0.27.8 opencv-python==4.8.0.76 gradio -httpx[socks] +httpx[socks]==0.25.0 astunparse langchain==0.0.157 scikit-learn @@ -16,4 +16,4 @@ typing-inspect==0.8.0 colorlog rapidfuzz spacy -colorama==0.4.6 \ No newline at end of file +colorama==0.4.6 From 53f2ec0e41a748ea05776f6ebd7cecd18f3f3402 Mon Sep 17 00:00:00 2001 From: chenweize1998 Date: Wed, 18 Oct 2023 16:58:09 +0800 Subject: [PATCH 059/101] fix: session expired bug in tool calling --- .../environments/tasksolving_env/rules/executor/tool_using.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/agentverse/environments/tasksolving_env/rules/executor/tool_using.py b/agentverse/environments/tasksolving_env/rules/executor/tool_using.py index 667de12f1..65bc8ff24 100644 --- a/agentverse/environments/tasksolving_env/rules/executor/tool_using.py +++ b/agentverse/environments/tasksolving_env/rules/executor/tool_using.py @@ -16,7 +16,6 @@ url = "http://127.0.0.1:8080" -# url = "http://8.217.97.110:8080" SUMMARIZE_PROMPT = """Here is the text gathered from a webpage, and a question you need to answer from the webpage. -- Webpage -- @@ -255,7 +254,7 @@ async def _summarize_webpage(webpage, question): for i in range(3): try: - async with ClientSession(cookies=cookies) as session: + async with ClientSession(cookies=cookies, trust_env=True) as session: if cookies is None: async with session.post( f"{url}/get_cookie", timeout=30 @@ -285,6 +284,7 @@ async def _summarize_webpage(webpage, question): ) as response: content = await response.text() if command == "WebEnv_browse_website": + openai.aiosession.set(session) content = await _summarize_webpage( content, arguments["question"] ) From 39faec3792214632c92881b51a718f2faf097d13 Mon Sep 17 00:00:00 2001 From: Yu Hsia <75243938+cheesewafer@users.noreply.github.com> Date: Thu, 19 Oct 2023 10:31:02 +0800 Subject: [PATCH 060/101] feat: support local llms (#68) * support local LLMs --------- Co-authored-by: Yu Xia Co-authored-by: Weize Chen <32613237+chenweize1998@users.noreply.github.com> Co-authored-by: chenweize1998 --- agentverse/llms/openai.py | 8 +- .../commongen/llama-2-7b-chat-hf/config.yaml | 197 ++++++++++++++++++ dataloader/commongen.py | 1 + requirements.txt | 1 + scripts/run_local_model_server.sh | 11 + 5 files changed, 217 insertions(+), 1 deletion(-) create mode 100644 agentverse/tasks/tasksolving/commongen/llama-2-7b-chat-hf/config.yaml create mode 100644 scripts/run_local_model_server.sh diff --git a/agentverse/llms/openai.py b/agentverse/llms/openai.py index 3b7409cf2..08547c300 100644 --- a/agentverse/llms/openai.py +++ b/agentverse/llms/openai.py @@ -92,10 +92,12 @@ class OpenAIChatArgs(BaseModelArgs): # total_tokens=response["usage"]["total_tokens"], # ) - +# To support your own local LLMs, register it here and add it into LOCAL_LLMS. +LOCAL_LLMS = ['llama-2-7b-chat-hf'] @llm_registry.register("gpt-35-turbo") @llm_registry.register("gpt-3.5-turbo") @llm_registry.register("gpt-4") +@llm_registry.register("llama-2-7b-chat-hf") class OpenAIChat(BaseChatModel): args: OpenAIChatArgs = Field(default_factory=OpenAIChatArgs) @@ -109,6 +111,8 @@ def __init__(self, max_retry: int = 3, **kwargs): args[k] = kwargs.pop(k, v) if len(kwargs) > 0: logging.warning(f"Unused arguments: {kwargs}") + if args['model'] in LOCAL_LLMS: + openai.api_base = "http://localhost:5000/v1" super().__init__(args=args, max_retry=max_retry) # def _construct_messages(self, history: List[Message]): @@ -301,6 +305,7 @@ def get_spend(self) -> int: "gpt-4": 0.03, "gpt-4-0613": 0.03, "gpt-4-32k": 0.06, + "llama-2-7b-chat-hf": 0.0, } output_cost_map = { @@ -311,6 +316,7 @@ def get_spend(self) -> int: "gpt-4": 0.06, "gpt-4-0613": 0.06, "gpt-4-32k": 0.12, + "llama-2-7b-chat-hf": 0.0, } model = self.args.model diff --git a/agentverse/tasks/tasksolving/commongen/llama-2-7b-chat-hf/config.yaml b/agentverse/tasks/tasksolving/commongen/llama-2-7b-chat-hf/config.yaml new file mode 100644 index 000000000..8514b1004 --- /dev/null +++ b/agentverse/tasks/tasksolving/commongen/llama-2-7b-chat-hf/config.yaml @@ -0,0 +1,197 @@ +cnt_agents: &cnt_agents 2 +max_turn: &max_turn 3 +max_inner_turns: &max_inner_turns 3 + +prompts: + role_assigner_prepend_prompt: &role_assigner_prepend_prompt |- + + role_assigner_append_prompt: &role_assigner_append_prompt |- + # Role Description + You are the leader of a group of experts, now you need to recruit a small group of experts with diverse identity to generate coherent and grammatically correct sentences containing the following given words: + ${task_description} + + You can recruit ${cnt_critic_agents} expert in different fields. What experts will you recruit? + + # Response Format Guidance + You should respond with a list of expert description. For example: + 1. an electrical engineer specified in the filed of xxx. + 2. an economist who is good at xxx. + 3. a lawyer with a good knowledge of xxx. + ... + + Only respond with the description of each role. Do not include your reason. + + solver_prepend_prompt: &solver_prepend_prompt |- + You are ${role_description}. Generate a coherent and grammatically correct paragraph containing the following given words (or their variations): + WORDS: + ${task_description} + + solver_append_prompt: &solver_append_prompt |- + + critic_prepend_prompt: &critic_prepend_prompt |- + You are in a discussion group, aiming to generate coherent and grammatically correct sentences containing the following given words (or their variations): + WORDS: + ${task_description} + + Below is the chat history in your group. + + critic_append_prompt: &critic_append_prompt |- + You are ${role_description}. Based on your knowledge, can you check whether the latest provided paragraph contains all the given words or their variations? When responding, you should follow the following rules: + 1. If the above latest provided solution has covered all the given words or their variations, end your response with a special token "[Agree]". + 1. If not, double-check the above solutions, give your critics, and generate a better solution. + + manager_prompt: &manager_prompt |- + + executor_prepend_prompt: &executor_prepend_prompt |- + + executor_append_prompt: &executor_append_prompt |- + + evaluator_prepend_prompt: &evaluator_prepend_prompt |- + + evaluator_append_prompt: &evaluator_append_prompt |- + You are a reviewer who checks whether a paragraph contains all the given words (including their variations). When some words are missing, you should patiently point out, and output a score of 0. When the paragraph contains all the words, you should output a score of 1. + + WORDS: + ${task_description} + + SOLUTION: + ``` + ${solution} + ``` + + TEST RESULT: + ${result} + + RESPONSE FORMAT: + You must respond in the following format: + Score: (0 or 1. 0 if there are some missing words, 1 if there is no missing words) + Advice: (point out all the missing words) + + +name: pipeline + + +environment: + env_type: task-basic + max_turn: *max_turn + rule: + role_assigner: + type: role_description + cnt_agents: *cnt_agents + decision_maker: + type: vertical-solver-first + max_inner_turns: *max_inner_turns + executor: + type: coverage-test + evaluator: + type: basic + +agents: + - #role_assigner_agent: + agent_type: role_assigner + name: role assigner + max_retry: 1000 + prepend_prompt_template: *role_assigner_prepend_prompt + append_prompt_template: *role_assigner_append_prompt + memory: + memory_type: chat_history + llm: + llm_type: llama-2-7b-chat-hf + model: "llama-2-7b-chat-hf" + temperature: 0 + max_tokens: 512 + output_parser: + type: role_assigner + + - #solver_agent: + agent_type: solver + name: Planner + max_retry: 1000 + max_history: 4 + prepend_prompt_template: *solver_prepend_prompt + append_prompt_template: *solver_append_prompt + memory: + memory_type: chat_history + llm: + llm_type: llama-2-7b-chat-hf + model: "llama-2-7b-chat-hf" + temperature: 0 + max_tokens: 1024 + output_parser: + type: commongen + # max_tokens: 1024 + # stop: + # - "\ndef " + # - "\nclass " + # - "\nif " + # - "\n\n#" + + - #critic_agents: + agent_type: critic + name: Critic 1 + max_retry: 1000 + max_history: 4 + role_description: |- + Waiting to be assigned. + prepend_prompt_template: *critic_prepend_prompt + append_prompt_template: *critic_append_prompt + memory: + memory_type: chat_history + llm: + llm_type: llama-2-7b-chat-hf + model: "llama-2-7b-chat-hf" + temperature: 0 + max_tokens: 1024 + output_parser: + type: mgsm-critic-agree + + - #executor_agent: + agent_type: executor + name: Executor + max_retry: 1000 + prepend_prompt_template: *executor_prepend_prompt + append_prompt_template: *executor_append_prompt + memory: + memory_type: chat_history + llm: + llm_type: llama-2-7b-chat-hf + model: llama-2-7b-chat-hf + temperature: 0 + max_tokens: 1024 + output_parser: + type: commongen + + - #evaluator_agent: + agent_type: evaluator + name: Evaluator + max_retry: 1000 + role_description: |- + Evaluator + prepend_prompt_template: *evaluator_prepend_prompt + append_prompt_template: *evaluator_append_prompt + memory: + memory_type: chat_history + llm: + llm_type: llama-2-7b-chat-hf + model: llama-2-7b-chat-hf + temperature: 0.3 + max_tokens: 1024 + output_parser: + type: humaneval-evaluator + dimensions: + - Score + + - #manager_agent: + agent_type: manager + name: Manager + max_retry: 1000 + prompt_template: *manager_prompt + memory: + memory_type: chat_history + llm: + llm_type: llama-2-7b-chat-hf + model: "llama-2-7b-chat-hf" + temperature: 0 + max_tokens: 1024 + output_parser: + type: humaneval-manager \ No newline at end of file diff --git a/dataloader/commongen.py b/dataloader/commongen.py index e7a5e75f9..6cb41385e 100644 --- a/dataloader/commongen.py +++ b/dataloader/commongen.py @@ -5,6 +5,7 @@ @dataloader_registry.register("tasksolving/commongen/gpt-4") @dataloader_registry.register("tasksolving/commongen/gpt-3.5") +@dataloader_registry.register("tasksolving/commongen/llama-2-7b-chat-hf") class CommongenLoader(DataLoader): def __init__(self, path: str): super().__init__(path) diff --git a/requirements.txt b/requirements.txt index b6b24354b..e93df8d9f 100644 --- a/requirements.txt +++ b/requirements.txt @@ -17,3 +17,4 @@ colorlog rapidfuzz spacy colorama==0.4.6 +fschat[model_worker,webui] diff --git a/scripts/run_local_model_server.sh b/scripts/run_local_model_server.sh new file mode 100644 index 000000000..0d16fb901 --- /dev/null +++ b/scripts/run_local_model_server.sh @@ -0,0 +1,11 @@ +:< Date: Fri, 20 Oct 2023 10:30:55 +0800 Subject: [PATCH 061/101] Update README.md [ci skip] --- README.md | 40 +++++++++++++++++++++------------------- 1 file changed, 21 insertions(+), 19 deletions(-) diff --git a/README.md b/README.md index b3bb5bb76..a3f013a99 100644 --- a/README.md +++ b/README.md @@ -18,13 +18,17 @@ Code Style: Black - + Hugging Face + + Discord + +

@@ -71,9 +75,9 @@ in detail of AgentVerse. # 🗓 Coming Soon - [x] Code release of our [paper](https://arxiv.org/abs/2308.10848) +- [x] Add support for local LLM (LLaMA, Vicunna, etc.) - [ ] Add documentation - [ ] Support more sophisticated memory for conversation history -- [ ] Add support for local LLM - - Hugging Face + + HuggingFace Discord From d108100e4cc0973c45841f932330783a2ee98b9d Mon Sep 17 00:00:00 2001 From: Weize Chen <32613237+chenweize1998@users.noreply.github.com> Date: Sun, 22 Oct 2023 20:35:16 +0800 Subject: [PATCH 065/101] Update README.md [ci skip] --- README.md | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index ca8351675..41082f842 100644 --- a/README.md +++ b/README.md @@ -217,10 +217,7 @@ https://github.com/OpenBMB/AgentVerse/assets/11704492/4d07da68-f942-4205-b558-f1 ## Installation -```bash -pip install -U agentverse -``` -Or you can install the package by manually cloning the latest repository +**Manually Install (Recommended!)** ```bash git clone https://github.com/OpenBMB/AgentVerse.git --depth 1 cd AgentVerse @@ -228,6 +225,14 @@ python setup.py develop ``` Some users have reported problems installing the `orjson` required by `gradio`. One simple workaround is to install it with Anaconda `conda install -c conda-forge orjson`. +**Install with pip** + +Or you can install through pip +```bash +pip install -U agentverse +``` + + You also need to export your OpenAI API key as follows: ```bash # Export your OpenAI API key From f4718a5f37876242be1d8cd67c1cda3a5f9e221c Mon Sep 17 00:00:00 2001 From: Yusheng Su Date: Sun, 22 Oct 2023 23:03:38 +0400 Subject: [PATCH 066/101] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 41082f842..c29461744 100644 --- a/README.md +++ b/README.md @@ -42,7 +42,7 @@ **AgentVerse** is designed to facilitate the deployment of multiple LLM-based agents in various applications. AgentVerse primarily provides two frameworks: **task-solving** and **simulation**. -- Task-solving: This framework assembles multiple agents as an automatic multi-agent system ([Multi-agent as system](https://arxiv.org/abs/2309.02427)) to collaboratively accomplish the corresponding tasks. +- Task-solving: This framework assembles multiple agents as an automatic multi-agent system ([AgentVerse-Tasksolving](https://arxiv.org/pdf/2308.10848.pdf),[Multi-agent as system](https://arxiv.org/abs/2309.02427)) to collaboratively accomplish the corresponding tasks. Applications: software development system, consulting system, etc.

From 193088ab27728e0a9270f575811cc4fd22c82aee Mon Sep 17 00:00:00 2001 From: Yusheng Su Date: Sun, 22 Oct 2023 23:10:59 +0400 Subject: [PATCH 067/101] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index c29461744..dd2223b49 100644 --- a/README.md +++ b/README.md @@ -42,7 +42,7 @@ **AgentVerse** is designed to facilitate the deployment of multiple LLM-based agents in various applications. AgentVerse primarily provides two frameworks: **task-solving** and **simulation**. -- Task-solving: This framework assembles multiple agents as an automatic multi-agent system ([AgentVerse-Tasksolving](https://arxiv.org/pdf/2308.10848.pdf),[Multi-agent as system](https://arxiv.org/abs/2309.02427)) to collaboratively accomplish the corresponding tasks. +- Task-solving: This framework assembles multiple agents as an automatic multi-agent system ([AgentVerse-Tasksolving](https://arxiv.org/pdf/2308.10848.pdf), [Multi-agent as system](https://arxiv.org/abs/2309.02427)) to collaboratively accomplish the corresponding tasks. Applications: software development system, consulting system, etc.

From dd4e651ece193a9ae0bb4be48b0a41857c262f15 Mon Sep 17 00:00:00 2001 From: chenweize1998 Date: Mon, 23 Oct 2023 11:05:51 +0800 Subject: [PATCH 068/101] fix: typo in logger call and error path in gui [ci skip] --- .../agents/simulation_agent/conversation.py | 6 +- agentverse/gui.py | 200 +++++++++++------- 2 files changed, 131 insertions(+), 75 deletions(-) diff --git a/agentverse/agents/simulation_agent/conversation.py b/agentverse/agents/simulation_agent/conversation.py index 3c356cf2f..437d90ff2 100644 --- a/agentverse/agents/simulation_agent/conversation.py +++ b/agentverse/agents/simulation_agent/conversation.py @@ -9,8 +9,8 @@ from agentverse.message import Message -#from . import agent_registry -#from .base import BaseAgent +# from . import agent_registry +# from .base import BaseAgent from agentverse.agents import agent_registry from agentverse.agents.base import BaseAgent @@ -66,7 +66,7 @@ async def astep(self, env_description: str = "") -> Message: raise except Exception as e: logger.error(e) - logger.warning("Retrying...") + logger.warn("Retrying...") continue if parsed_response is None: diff --git a/agentverse/gui.py b/agentverse/gui.py index 8bdd8fe24..2bc4140a0 100644 --- a/agentverse/gui.py +++ b/agentverse/gui.py @@ -1,3 +1,4 @@ +import os import base64 import itertools import json @@ -10,6 +11,8 @@ from agentverse.simulation import Simulation from agentverse.message import Message +IMG_PATH = os.path.join(os.path.dirname(__file__), "..", "imgs") + def cover_img(background, img, place: Tuple[int, int]): """ @@ -30,7 +33,7 @@ class GUI: the UI of frontend """ - def __init__(self, task: str, tasks_dir: str,ui_kwargs: Dict[str, str]): + def __init__(self, task: str, tasks_dir: str, ui_kwargs: Dict[str, str]): """ init a UI. default number of students is 0 @@ -56,15 +59,15 @@ def __init__(self, task: str, tasks_dir: str,ui_kwargs: Dict[str, str]): def get_avatar(self, idx): if idx == -1: - img = cv2.imread("./imgs/db_diag/-1.png") + img = cv2.imread(f"{IMG_PATH}/db_diag/-1.png") elif self.task == "prisoner_dilemma": - img = cv2.imread(f"./imgs/prison/{idx}.png") + img = cv2.imread(f"{IMG_PATH}/prison/{idx}.png") elif self.task == "db_diag": - img = cv2.imread(f"./imgs/db_diag/{idx}.png") + img = cv2.imread(f"{IMG_PATH}/db_diag/{idx}.png") elif "sde" in self.task: - img = cv2.imread(f"./imgs/sde/{idx}.png") + img = cv2.imread(f"{IMG_PATH}/sde/{idx}.png") else: - img = cv2.imread(f"./imgs/{idx}.png") + img = cv2.imread(f"{IMG_PATH}/{idx}.png") base64_str = cv2.imencode(".png", img)[1].tostring() return "data:image/png;base64," + base64.b64encode(base64_str).decode("utf-8") @@ -94,11 +97,15 @@ def start_autoplay(self): yield ( *outputs, - gr.Button.update(interactive=not self.autoplay and self.turns_remain > 0), + gr.Button.update( + interactive=not self.autoplay and self.turns_remain > 0 + ), gr.Button.update(interactive=self.autoplay and self.turns_remain > 0), - gr.Button.update(interactive=not self.autoplay and self.turns_remain > 0), + gr.Button.update( + interactive=not self.autoplay and self.turns_remain > 0 + ), *[gr.Button.update(visible=statu) for statu in self.solution_status], - gr.Box.update(visible=any(self.solution_status)) + gr.Box.update(visible=any(self.solution_status)), ) def delay_gen_output(self): @@ -108,7 +115,7 @@ def delay_gen_output(self): gr.Button.update(interactive=False), gr.Button.update(interactive=False), *[gr.Button.update(visible=statu) for statu in self.solution_status], - gr.Box.update(visible=any(self.solution_status)) + gr.Box.update(visible=any(self.solution_status)), ) outputs = self.gen_output() @@ -120,7 +127,7 @@ def delay_gen_output(self): gr.Button.update(interactive=self.turns_remain > 0), gr.Button.update(interactive=self.turns_remain > 0), *[gr.Button.update(visible=statu) for statu in self.solution_status], - gr.Box.update(visible=any(self.solution_status)) + gr.Box.update(visible=any(self.solution_status)), ) def delay_reset(self): @@ -133,7 +140,7 @@ def delay_reset(self): gr.Button.update(interactive=False), gr.Button.update(interactive=True), *[gr.Button.update(visible=statu) for statu in self.solution_status], - gr.Box.update(visible=any(self.solution_status)) + gr.Box.update(visible=any(self.solution_status)), ) def reset(self, stu_num=0): @@ -158,21 +165,21 @@ def reset(self, stu_num=0): self.turns_remain = self.backend.environment.max_turns if self.task == "prisoner_dilemma": - background = cv2.imread("./imgs/prison/case_1.png") + background = cv2.imread(f"{IMG_PATH}/prison/case_1.png") elif self.task == "db_diag": - background = cv2.imread("./imgs/db_diag/background.png") + background = cv2.imread(f"{IMG_PATH}/db_diag/background.png") elif "sde" in self.task: - background = cv2.imread("./imgs/sde/background.png") + background = cv2.imread(f"{IMG_PATH}/sde/background.png") else: - background = cv2.imread("./imgs/background.png") + background = cv2.imread(f"{IMG_PATH}/background.png") back_h, back_w, _ = background.shape stu_cnt = 0 for h_begin, w_begin in itertools.product( - range(800, back_h, 300), range(135, back_w - 200, 200) + range(800, back_h, 300), range(135, back_w - 200, 200) ): stu_cnt += 1 img = cv2.imread( - f"./imgs/{(stu_cnt - 1) % 11 + 1 if stu_cnt <= self.stu_num else 'empty'}.png", + f"{IMG_PATH}/{(stu_cnt - 1) % 11 + 1 if stu_cnt <= self.stu_num else 'empty'}.png", cv2.IMREAD_UNCHANGED, ) cover_img( @@ -195,17 +202,17 @@ def gen_img(self, data: List[Dict]): if len(data) != self.stu_num + 1: raise gr.Error("data length is not equal to the total number of students.") if self.task == "prisoner_dilemma": - img = cv2.imread("./imgs/speaking.png", cv2.IMREAD_UNCHANGED) + img = cv2.imread(f"{IMG_PATH}/speaking.png", cv2.IMREAD_UNCHANGED) if ( - len(self.messages) < 2 - or self.messages[-1][0] == 1 - or self.messages[-2][0] == 2 + len(self.messages) < 2 + or self.messages[-1][0] == 1 + or self.messages[-2][0] == 2 ): - background = cv2.imread("./imgs/prison/case_1.png") + background = cv2.imread(f"{IMG_PATH}/prison/case_1.png") if data[0]["message"] != "": cover_img(background, img, (400, 480)) else: - background = cv2.imread("./imgs/prison/case_2.png") + background = cv2.imread(f"{IMG_PATH}/prison/case_2.png") if data[0]["message"] != "": cover_img(background, img, (400, 880)) if data[1]["message"] != "": @@ -213,8 +220,8 @@ def gen_img(self, data: List[Dict]): if data[2]["message"] != "": cover_img(background, img, (550, 880)) elif self.task == "db_diag": - background = cv2.imread("./imgs/db_diag/background.png") - img = cv2.imread("./imgs/db_diag/speaking.png", cv2.IMREAD_UNCHANGED) + background = cv2.imread(f"{IMG_PATH}/db_diag/background.png") + img = cv2.imread(f"{IMG_PATH}/db_diag/speaking.png", cv2.IMREAD_UNCHANGED) if data[0]["message"] != "": cover_img(background, img, (750, 80)) if data[1]["message"] != "": @@ -222,8 +229,8 @@ def gen_img(self, data: List[Dict]): if data[2]["message"] != "": cover_img(background, img, (522, 11)) elif "sde" in self.task: - background = cv2.imread("./imgs/sde/background.png") - img = cv2.imread("./imgs/sde/speaking.png", cv2.IMREAD_UNCHANGED) + background = cv2.imread(f"{IMG_PATH}/sde/background.png") + img = cv2.imread(f"{IMG_PATH}/sde/speaking.png", cv2.IMREAD_UNCHANGED) if data[0]["message"] != "": cover_img(background, img, (692, 330)) if data[1]["message"] != "": @@ -231,19 +238,19 @@ def gen_img(self, data: List[Dict]): if data[2]["message"] != "": cover_img(background, img, (692, 990)) else: - background = cv2.imread("./imgs/background.png") + background = cv2.imread(f"{IMG_PATH}/background.png") back_h, back_w, _ = background.shape stu_cnt = 0 if data[stu_cnt]["message"] not in ["", "[RaiseHand]"]: - img = cv2.imread("./imgs/speaking.png", cv2.IMREAD_UNCHANGED) + img = cv2.imread(f"{IMG_PATH}/speaking.png", cv2.IMREAD_UNCHANGED) cover_img(background, img, (370, 1250)) for h_begin, w_begin in itertools.product( - range(800, back_h, 300), range(135, back_w - 200, 200) + range(800, back_h, 300), range(135, back_w - 200, 200) ): stu_cnt += 1 if stu_cnt <= self.stu_num: img = cv2.imread( - f"./imgs/{(stu_cnt - 1) % 11 + 1}.png", cv2.IMREAD_UNCHANGED + f"{IMG_PATH}/{(stu_cnt - 1) % 11 + 1}.png", cv2.IMREAD_UNCHANGED ) cover_img( background, @@ -252,14 +259,14 @@ def gen_img(self, data: List[Dict]): ) if "[RaiseHand]" in data[stu_cnt]["message"]: # elif data[stu_cnt]["message"] == "[RaiseHand]": - img = cv2.imread("./imgs/hand.png", cv2.IMREAD_UNCHANGED) + img = cv2.imread(f"{IMG_PATH}/hand.png", cv2.IMREAD_UNCHANGED) cover_img(background, img, (h_begin - 90, w_begin + 10)) elif data[stu_cnt]["message"] not in ["", "[RaiseHand]"]: - img = cv2.imread("./imgs/speaking.png", cv2.IMREAD_UNCHANGED) + img = cv2.imread(f"{IMG_PATH}/speaking.png", cv2.IMREAD_UNCHANGED) cover_img(background, img, (h_begin - 90, w_begin + 10)) else: - img = cv2.imread("./imgs/empty.png", cv2.IMREAD_UNCHANGED) + img = cv2.imread(f"{IMG_PATH}/empty.png", cv2.IMREAD_UNCHANGED) cover_img(background, img, (h_begin, w_begin)) return cv2.cvtColor(background, cv2.COLOR_BGR2RGB) @@ -269,19 +276,25 @@ def return_format(self, messages: List[Message]): for message in messages: if self.task == "db_diag": content_json: dict = message.content - content_json["diagnose"] = f"[{message.sender}]: {content_json['diagnose']}" - _format[self.agent_id[message.sender]]["message"] = json.dumps(content_json) + content_json[ + "diagnose" + ] = f"[{message.sender}]: {content_json['diagnose']}" + _format[self.agent_id[message.sender]]["message"] = json.dumps( + content_json + ) elif "sde" in self.task: if message.sender == "code_tester": pre_message, message_ = message.content.split("\n") - message_ = "{}\n{}".format(pre_message, json.loads(message_)["feedback"]) - _format[self.agent_id[message.sender]]["message"] = "[{}]: {}".format( - message.sender, message_ + message_ = "{}\n{}".format( + pre_message, json.loads(message_)["feedback"] ) + _format[self.agent_id[message.sender]][ + "message" + ] = "[{}]: {}".format(message.sender, message_) else: - _format[self.agent_id[message.sender]]["message"] = "[{}]: {}".format( - message.sender, message.content - ) + _format[self.agent_id[message.sender]][ + "message" + ] = "[{}]: {}".format(message.sender, message.content) else: _format[self.agent_id[message.sender]]["message"] = "[{}]: {}".format( @@ -338,23 +351,44 @@ def gen_message(self): for solu in solution: if "query" in solu or "queries" in solu: self.solution_status[0] = True - solu = solu.replace("query", 'query') - solu = solu.replace("queries", 'queries') + solu = solu.replace( + "query", 'query' + ) + solu = solu.replace( + "queries", 'queries' + ) if "join" in solu: self.solution_status[1] = True - solu = solu.replace("join", 'join') + solu = solu.replace( + "join", 'join' + ) if "index" in solu: self.solution_status[2] = True - solu = solu.replace("index", 'index') + solu = solu.replace( + "index", 'index' + ) if "system configuration" in solu: self.solution_status[3] = True - solu = solu.replace("system configuration", - 'system configuration') - if "monitor" in solu or "Monitor" in solu or "Investigate" in solu: + solu = solu.replace( + "system configuration", + 'system configuration', + ) + if ( + "monitor" in solu + or "Monitor" in solu + or "Investigate" in solu + ): self.solution_status[4] = True - solu = solu.replace("monitor", 'monitor') - solu = solu.replace("Monitor", 'Monitor') - solu = solu.replace("Investigate", 'Investigate') + solu = solu.replace( + "monitor", 'monitor' + ) + solu = solu.replace( + "Monitor", 'Monitor' + ) + solu = solu.replace( + "Investigate", + 'Investigate', + ) msg = f"{msg}
{solu}" if msg_json["knowledge"] != "": msg = f'{msg}


{msg_json["knowledge"]}' @@ -362,14 +396,18 @@ def gen_message(self): msg = msg.replace("<", "<") msg = msg.replace(">", ">") message = ( - f'
' - f'' - f'
' - f"{msg}" - f"
" + message + f'
' + f'' + f'
' + f"{msg}" + f"
" + message ) - message = '
' + message + "
" + message = ( + '
' + + message + + "
" + ) return message def submit(self, message: str): @@ -391,7 +429,9 @@ def launch(self, single_agent=False, discussion_mode=False): def respond(message, chat_history): chat_history.append((message, None)) yield "", chat_history - for response in self.backend.iter_run(single_agent=single_agent, discussion_mode=discussion_mode): + for response in self.backend.iter_run( + single_agent=single_agent, discussion_mode=discussion_mode + ): print(response) chat_history.append((None, response)) yield "", chat_history @@ -409,16 +449,28 @@ def respond(message, chat_history): stop_autoplay_btn = gr.Button( "Stop Autoplay", interactive=False ) - start_autoplay_btn = gr.Button("Start Autoplay", interactive=False) + start_autoplay_btn = gr.Button( + "Start Autoplay", interactive=False + ) with gr.Box(visible=False) as solutions: with gr.Column(): gr.HTML("Optimization Solutions:") with gr.Row(): - rewrite_slow_query_btn = gr.Button("Rewrite Slow Query", visible=False) - add_query_hints_btn = gr.Button("Add Query Hints", visible=False) - update_indexes_btn = gr.Button("Update Indexes", visible=False) - tune_parameters_btn = gr.Button("Tune Parameters", visible=False) - gather_more_info_btn = gr.Button("Gather More Info", visible=False) + rewrite_slow_query_btn = gr.Button( + "Rewrite Slow Query", visible=False + ) + add_query_hints_btn = gr.Button( + "Add Query Hints", visible=False + ) + update_indexes_btn = gr.Button( + "Update Indexes", visible=False + ) + tune_parameters_btn = gr.Button( + "Tune Parameters", visible=False + ) + gather_more_info_btn = gr.Button( + "Gather More Info", visible=False + ) # text_output = gr.Textbox() text_output = gr.HTML(self.reset()[1]) @@ -430,8 +482,12 @@ def respond(message, chat_history): user_msg = gr.Textbox() submit_btn = gr.Button("Submit", variant="primary") - submit_btn.click(fn=self.submit, inputs=user_msg, outputs=[image_output, text_output], - show_progress=False) + submit_btn.click( + fn=self.submit, + inputs=user_msg, + outputs=[image_output, text_output], + show_progress=False, + ) else: pass @@ -450,7 +506,7 @@ def respond(message, chat_history): update_indexes_btn, tune_parameters_btn, gather_more_info_btn, - solutions + solutions, ], show_progress=False, ) @@ -473,7 +529,7 @@ def respond(message, chat_history): update_indexes_btn, tune_parameters_btn, gather_more_info_btn, - solutions + solutions, ], show_progress=False, ) @@ -498,7 +554,7 @@ def respond(message, chat_history): update_indexes_btn, tune_parameters_btn, gather_more_info_btn, - solutions + solutions, ], show_progress=False, ) From 118c5fe791ace06525ccdf201830fc600f35f4da Mon Sep 17 00:00:00 2001 From: Yusheng Su Date: Mon, 23 Oct 2023 13:05:58 +0000 Subject: [PATCH 069/101] add PR template --- PULL_REQUEST_TEMPLATE.md | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 PULL_REQUEST_TEMPLATE.md diff --git a/PULL_REQUEST_TEMPLATE.md b/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 000000000..3e5721c43 --- /dev/null +++ b/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,32 @@ + + + + +### 🤔 What is the nature of this change? + +- [ ] New feature +- [ ] Fix bug / bug +- [ ] Style optimization +- [ ] Code style optimization +- [ ] Performance optimization +- [ ] Build optimization +- [ ] Website, documentation, demo improvements +- [ ] Refactor code or style +- [ ] Test related +- [ ] Solved proposed issues +- [ ] Other + +### 🔗 Related Issue + +(Describe the source of related requirements, such as the related issue discussion link. Example: close #123, close #456.) + +### 💡 Background or solution + +(The specific problem solved.) + +### 📝 Changelog + +(Describe changes from the user side, and list all potential break changes or other risks.) + From fb023365fb4e7c3b778649c4bebc67348fbd1404 Mon Sep 17 00:00:00 2001 From: Yusheng Su Date: Mon, 23 Oct 2023 17:19:14 +0400 Subject: [PATCH 070/101] Update README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index dd2223b49..6dbfc1fbe 100644 --- a/README.md +++ b/README.md @@ -482,6 +482,8 @@ AgentVerse is on a mission to revolutionize the multi-agent environment for larg ## How Can You Contribute? +- **Issue and Pull-Request**: If you encounter any problems when use AgentVerse, you can propose the issue. Beisdes, you can also autonomously ask us to assign issue to you and send the PR after you solve it (Please follow the [PULL_REQUEST_TEMPLATE](https://github.com/OpenBMB/AgentVerse/blob/main/PULL_REQUEST_TEMPLATE.md)). + - **Code Development**: If you're an engineer, help us refine, optimize, and expand the current framework. We're always looking for talented developers to enhance our existing features and develop new modules. - **Documentation and Tutorials**: If you have a knack for writing, help us improve our documentation, create tutorials, or write blog posts to make AgentVerse more accessible to the broader community. From 78387ee37bb72eb16f3ba18ca11f6712a4ce8c8b Mon Sep 17 00:00:00 2001 From: Yusheng Su Date: Mon, 23 Oct 2023 17:28:47 +0400 Subject: [PATCH 071/101] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 6dbfc1fbe..fc2b1da65 100644 --- a/README.md +++ b/README.md @@ -482,7 +482,7 @@ AgentVerse is on a mission to revolutionize the multi-agent environment for larg ## How Can You Contribute? -- **Issue and Pull-Request**: If you encounter any problems when use AgentVerse, you can propose the issue. Beisdes, you can also autonomously ask us to assign issue to you and send the PR after you solve it (Please follow the [PULL_REQUEST_TEMPLATE](https://github.com/OpenBMB/AgentVerse/blob/main/PULL_REQUEST_TEMPLATE.md)). +- **Issue and Pull-Request**: If you encounter any problems when use AgentVerse, you can propose the issue. Beisdes, you can also autonomously ask us to assign issue to you and send the PR (Please follow the [PULL_REQUEST_TEMPLATE](https://github.com/OpenBMB/AgentVerse/blob/main/PULL_REQUEST_TEMPLATE.md)) after you solve it. - **Code Development**: If you're an engineer, help us refine, optimize, and expand the current framework. We're always looking for talented developers to enhance our existing features and develop new modules. From 5fab7fc7619ebb25a851813bb3e593f846305feb Mon Sep 17 00:00:00 2001 From: chenweize1998 Date: Mon, 23 Oct 2023 21:47:51 +0800 Subject: [PATCH 072/101] fix: import error in alice home task #76 --- agentverse/agents/__init__.py | 1 + agentverse/environments/__init__.py | 1 + agentverse/environments/simulation_env/reflection.py | 9 +++++---- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/agentverse/agents/__init__.py b/agentverse/agents/__init__.py index 3c74687dc..4a08e6799 100644 --- a/agentverse/agents/__init__.py +++ b/agentverse/agents/__init__.py @@ -7,6 +7,7 @@ from .base import BaseAgent from agentverse.agents.simulation_agent.conversation import ConversationAgent from agentverse.agents.simulation_agent.tool import ToolAgent +from agentverse.agents.simulation_agent.reflection import ReflectionAgent from agentverse.agents.simulation_agent.prisoner_dilemma import ( PoliceAgent, PrisonerAgent, diff --git a/agentverse/environments/__init__.py b/agentverse/environments/__init__.py index 099ceb1bd..d783a6686 100644 --- a/agentverse/environments/__init__.py +++ b/agentverse/environments/__init__.py @@ -9,6 +9,7 @@ # from .basic import PipelineEnvironment from .simulation_env.basic import BasicEnvironment +from .simulation_env.reflection import ReflectionEnvironment from .simulation_env.pokemon import PokemonEnvironment from .simulation_env.prisoner_dilemma import PrisonerDilemmaEnvironment from .simulation_env.sde_team import SdeTeamEnvironment diff --git a/agentverse/environments/simulation_env/reflection.py b/agentverse/environments/simulation_env/reflection.py index c7c316398..faf19d79c 100644 --- a/agentverse/environments/simulation_env/reflection.py +++ b/agentverse/environments/simulation_env/reflection.py @@ -1,5 +1,4 @@ import asyncio -import logging from typing import Any, Dict, List from datetime import datetime as dt @@ -7,13 +6,15 @@ from pydantic import Field +from agentverse.logging import logger +from agentverse.environments import env_registry as EnvironmentRegistry from agentverse.agents.simulation_agent.conversation import BaseAgent # from agentverse.environments.simulation_env.rules.base import Rule from agentverse.environments.simulation_env.rules.base import SimulationRule as Rule from agentverse.message import Message -from . import env_registry as EnvironmentRegistry +# from . import env_registry as EnvironmentRegistry from ..base import BaseEnvironment from pydantic import validator @@ -70,7 +71,7 @@ def __init__(self, rule, **kwargs): async def step(self) -> List[Message]: """Run one step of the environment""" - logging.log(logging.INFO, f"Tick tock. Current time: {self.current_time}") + logger.info(f"Tick tock. Current time: {self.current_time}") # Get the next agent index agent_ids = self.rule.get_next_agent_idx(self) @@ -107,7 +108,7 @@ async def step(self) -> List[Message]: def print_messages(self, messages: List[Message]) -> None: for message in messages: if message is not None: - logging.info(f"{message.sender}: {message.content}") + logger.info(f"{message.sender}: {message.content}") def reset(self) -> None: """Reset the environment""" From 0c1e7f29b953b5e8578704a89d631a65f289de39 Mon Sep 17 00:00:00 2001 From: Yusheng Su Date: Wed, 25 Oct 2023 12:05:53 +0400 Subject: [PATCH 073/101] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index fc2b1da65..5ee8b3adc 100644 --- a/README.md +++ b/README.md @@ -482,7 +482,7 @@ AgentVerse is on a mission to revolutionize the multi-agent environment for larg ## How Can You Contribute? -- **Issue and Pull-Request**: If you encounter any problems when use AgentVerse, you can propose the issue. Beisdes, you can also autonomously ask us to assign issue to you and send the PR (Please follow the [PULL_REQUEST_TEMPLATE](https://github.com/OpenBMB/AgentVerse/blob/main/PULL_REQUEST_TEMPLATE.md)) after you solve it. +- **Issue and Pull-Request**: If you encounter any problems when use AgentVerse, you can propose the issue in English. Beisdes, you can also autonomously ask us to assign issue to you and send the PR (Please follow the [PULL_REQUEST_TEMPLATE](https://github.com/OpenBMB/AgentVerse/blob/main/PULL_REQUEST_TEMPLATE.md)) after you solve it. - **Code Development**: If you're an engineer, help us refine, optimize, and expand the current framework. We're always looking for talented developers to enhance our existing features and develop new modules. From 14a8f34b61d3666ac0c19aa7d4ecb61546e87f7a Mon Sep 17 00:00:00 2001 From: chenweize1998 Date: Wed, 25 Oct 2023 21:05:56 +0800 Subject: [PATCH 074/101] fix: bug in simulation gui. [ci skip] --- agentverse/gui.py | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/agentverse/gui.py b/agentverse/gui.py index 2bc4140a0..97cfac9c7 100644 --- a/agentverse/gui.py +++ b/agentverse/gui.py @@ -41,7 +41,7 @@ def __init__(self, task: str, tasks_dir: str, ui_kwargs: Dict[str, str]): self.messages = [] self.task = task self.ui_kwargs = ui_kwargs - if task == "pipeline_brainstorming": + if task == "tasksolving/brainstorming": self.backend = TaskSolving.from_task(task, tasks_dir) else: self.backend = Simulation.from_task(task, tasks_dir) @@ -60,9 +60,9 @@ def __init__(self, task: str, tasks_dir: str, ui_kwargs: Dict[str, str]): def get_avatar(self, idx): if idx == -1: img = cv2.imread(f"{IMG_PATH}/db_diag/-1.png") - elif self.task == "prisoner_dilemma": + elif self.task == "simulation/prisoner_dilemma": img = cv2.imread(f"{IMG_PATH}/prison/{idx}.png") - elif self.task == "db_diag": + elif self.task == "simulation/db_diag": img = cv2.imread(f"{IMG_PATH}/db_diag/{idx}.png") elif "sde" in self.task: img = cv2.imread(f"{IMG_PATH}/sde/{idx}.png") @@ -164,9 +164,9 @@ def reset(self, stu_num=0): self.backend.reset() self.turns_remain = self.backend.environment.max_turns - if self.task == "prisoner_dilemma": + if self.task == "simulation/prisoner_dilemma": background = cv2.imread(f"{IMG_PATH}/prison/case_1.png") - elif self.task == "db_diag": + elif self.task == "simulation/db_diag": background = cv2.imread(f"{IMG_PATH}/db_diag/background.png") elif "sde" in self.task: background = cv2.imread(f"{IMG_PATH}/sde/background.png") @@ -201,7 +201,7 @@ def gen_img(self, data: List[Dict]): # if len(data) != self.stu_num: if len(data) != self.stu_num + 1: raise gr.Error("data length is not equal to the total number of students.") - if self.task == "prisoner_dilemma": + if self.task == "simulation/prisoner_dilemma": img = cv2.imread(f"{IMG_PATH}/speaking.png", cv2.IMREAD_UNCHANGED) if ( len(self.messages) < 2 @@ -219,7 +219,7 @@ def gen_img(self, data: List[Dict]): cover_img(background, img, (550, 480)) if data[2]["message"] != "": cover_img(background, img, (550, 880)) - elif self.task == "db_diag": + elif self.task == "simulation/db_diag": background = cv2.imread(f"{IMG_PATH}/db_diag/background.png") img = cv2.imread(f"{IMG_PATH}/db_diag/speaking.png", cv2.IMREAD_UNCHANGED) if data[0]["message"] != "": @@ -262,7 +262,9 @@ def gen_img(self, data: List[Dict]): img = cv2.imread(f"{IMG_PATH}/hand.png", cv2.IMREAD_UNCHANGED) cover_img(background, img, (h_begin - 90, w_begin + 10)) elif data[stu_cnt]["message"] not in ["", "[RaiseHand]"]: - img = cv2.imread(f"{IMG_PATH}/speaking.png", cv2.IMREAD_UNCHANGED) + img = cv2.imread( + f"{IMG_PATH}/speaking.png", cv2.IMREAD_UNCHANGED + ) cover_img(background, img, (h_begin - 90, w_begin + 10)) else: @@ -274,7 +276,7 @@ def return_format(self, messages: List[Message]): _format = [{"message": "", "sender": idx} for idx in range(len(self.agent_id))] for message in messages: - if self.task == "db_diag": + if self.task == "simulation/db_diag": content_json: dict = message.content content_json[ "diagnose" @@ -342,7 +344,7 @@ def gen_message(self): avatar = self.get_avatar(-1) else: avatar = self.get_avatar((sender - 1) % 11 + 1) - if self.task == "db_diag": + if self.task == "simulation/db_diag": msg_json = json.loads(msg) self.solution_status = [False] * self.tot_solutions msg = msg_json["diagnose"] @@ -421,7 +423,7 @@ def submit(self, message: str): return self.gen_img([{"message": ""}] * len(self.agent_id)), self.gen_message() def launch(self, single_agent=False, discussion_mode=False): - if self.task == "pipeline_brainstorming": + if self.task == "tasksolving/brainstorming": with gr.Blocks() as demo: chatbot = gr.Chatbot(height=800, show_label=False) msg = gr.Textbox(label="Input") @@ -478,7 +480,7 @@ def respond(message, chat_history): # stu_num = gr.Number(label="Student Number", precision=0) # stu_num = self.stu_num - if self.task == "db_diag": + if self.task == "simulation/db_diag": user_msg = gr.Textbox() submit_btn = gr.Button("Submit", variant="primary") From fab0ab8821d7a36f886a52ae7e257bd566826924 Mon Sep 17 00:00:00 2001 From: Kunlun Zhu Date: Thu, 26 Oct 2023 11:12:15 +0800 Subject: [PATCH 075/101] Update agentverse.py --- agentverse/agentverse.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/agentverse/agentverse.py b/agentverse/agentverse.py index 8b1505075..62c815596 100644 --- a/agentverse/agentverse.py +++ b/agentverse/agentverse.py @@ -3,7 +3,7 @@ from typing import List # from agentverse.agents import Agent -from agentverse.agents.conversation_agent import BaseAgent +from agentverse.agents.base import BaseAgent from agentverse.environments import BaseEnvironment from agentverse.initialization import load_agent, load_environment, prepare_task_config From c9c0dbeea3767f6ae938294a859c6367970a1641 Mon Sep 17 00:00:00 2001 From: chenweize1998 Date: Fri, 27 Oct 2023 22:17:59 +0800 Subject: [PATCH 076/101] bump: 0.1.8.1 --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 097c5765e..49034aae3 100644 --- a/setup.py +++ b/setup.py @@ -10,7 +10,7 @@ setuptools.setup( name="agentverse", - version="0.1.8", + version="0.1.8.1", author="AgentVerse Team", author_email="agentverse2@gmail.com", description="A versatile framework that streamlines the process of creating custom multi-agent environments for large language models (LLMs).", From 64db306f5b6beea9014b00f15e24739a166162f3 Mon Sep 17 00:00:00 2001 From: mlmz <54172054+minleminzui@users.noreply.github.com> Date: Fri, 27 Oct 2023 22:21:15 +0800 Subject: [PATCH 077/101] feat: add tool support (#86) * fix: modify the processing logic of tool_using Modify the currently available toolset. Modify the processing logicc of WebEnv_search_and_browse and WebEnv_search_and_browse. * feat: a compression algorithm is implemented to avoid too long chat history Reference: https://github.com/Significant-Gravitas/AutoGPT/blob/b4ee485906c1d8da71ce9b3093996383322980fe/autogpts/autogpt/autogpt/agents/planning_agent.py#L73 * fix: make to_message asynchronous to accelerate compressing chat history of multiple agents * ci: fix ci errors caused by commits before * add local model token counter * resolve circular import bug * slightly refactor the code for token counter * fix bugs in tool using * update tool json --------- Co-authored-by: chenweize1998 --- agentverse/agents/base.py | 18 +- agentverse/agents/tasksolving_agent/critic.py | 13 +- .../agents/tasksolving_agent/evaluator.py | 33 ++- .../agents/tasksolving_agent/executor.py | 59 +--- .../agents/tasksolving_agent/role_assigner.py | 27 +- agentverse/agents/tasksolving_agent/solver.py | 28 +- .../environments/tasksolving_env/basic.py | 4 +- .../tasksolving_env/rules/base.py | 8 +- .../rules/decision_maker/brainstorming.py | 2 +- .../rules/decision_maker/central.py | 2 +- .../rules/decision_maker/concurrent.py | 2 +- .../rules/decision_maker/dynamic.py | 4 +- .../rules/decision_maker/horizontal.py | 2 +- .../rules/decision_maker/horizontal_tool.py | 4 +- .../rules/decision_maker/vertical.py | 2 +- .../decision_maker/vertical_solver_first.py | 4 +- .../tasksolving_env/rules/evaluator/base.py | 8 +- .../tasksolving_env/rules/evaluator/basic.py | 8 +- .../rules/executor/code_test.py | 30 +- .../rules/executor/tool_using.py | 88 +++++- .../rules/role_assigner/base.py | 4 +- .../rules/role_assigner/role_description.py | 8 +- agentverse/llms/__init__.py | 1 + agentverse/llms/openai.py | 19 +- agentverse/llms/utils/__init__.py | 3 +- agentverse/llms/utils/token_counter.py | 59 ++++ agentverse/memory/chat_history.py | 171 +++++++++++- .../tool_using/24point/config.yaml | 6 + .../tool_using/tools_simplified.json | 263 ++++++++++++------ agentverse_command/main_tasksolving_cli.py | 3 +- requirements.txt | 1 + 31 files changed, 642 insertions(+), 242 deletions(-) create mode 100644 agentverse/llms/utils/token_counter.py diff --git a/agentverse/agents/base.py b/agentverse/agents/base.py index 4f118e08c..1cc2cbb49 100644 --- a/agentverse/agents/base.py +++ b/agentverse/agents/base.py @@ -4,8 +4,9 @@ from string import Template from pydantic import BaseModel, Field - from agentverse.llms import BaseLLM + +from agentverse.llms.utils import count_string_tokens from agentverse.memory import BaseMemory, ChatHistoryMemory from agentverse.message import Message from agentverse.output_parser import OutputParser @@ -62,7 +63,20 @@ def get_all_prompts(self, **kwargs): **kwargs ) append_prompt = Template(self.append_prompt_template).safe_substitute(**kwargs) - return prepend_prompt, append_prompt + + # TODO: self.llm.args.model is not generalizable + num_prepend_prompt_token = count_string_tokens( + prepend_prompt, self.llm.args.model + ) + num_append_prompt_token = count_string_tokens( + append_prompt, self.llm.args.model + ) + + return ( + prepend_prompt, + append_prompt, + num_prepend_prompt_token + num_append_prompt_token, + ) def get_receiver(self) -> Set[str]: return self.receiver diff --git a/agentverse/agents/tasksolving_agent/critic.py b/agentverse/agents/tasksolving_agent/critic.py index 6cbe46148..5133e82e8 100644 --- a/agentverse/agents/tasksolving_agent/critic.py +++ b/agentverse/agents/tasksolving_agent/critic.py @@ -62,7 +62,7 @@ async def astep( ) -> CriticMessage: """Asynchronous version of step""" logger.debug("", self.name, Fore.MAGENTA) - prepend_prompt, append_prompt = self.get_all_prompts( + prepend_prompt, append_prompt, prompt_token = self.get_all_prompts( preliminary_solution=preliminary_solution, advice=advice, task_description=task_description, @@ -72,7 +72,16 @@ async def astep( # tool_names=self.tool_names, tool_descriptions=self.tool_descriptions, ) - history = self.memory.to_messages(self.name, start_index=-self.max_history) + + max_send_token = self.llm.send_token_limit(self.llm.args.model) + max_send_token -= prompt_token + + history = await self.memory.to_messages( + self.name, + start_index=-self.max_history, + max_send_token=max_send_token, + model=self.llm.args.model, + ) parsed_response: Union[AgentCriticism, None] = None for i in range(self.max_retry): try: diff --git a/agentverse/agents/tasksolving_agent/evaluator.py b/agentverse/agents/tasksolving_agent/evaluator.py index abd40642b..a97455b0a 100644 --- a/agentverse/agents/tasksolving_agent/evaluator.py +++ b/agentverse/agents/tasksolving_agent/evaluator.py @@ -19,6 +19,8 @@ @agent_registry.register("evaluator") class EvaluatorAgent(BaseAgent): + max_history: int = 5 + def step( self, solution: str, @@ -26,18 +28,38 @@ def step( task_description: str, all_role_description: str, ) -> EvaluatorMessage: + pass + # return parsed_response + + async def astep( + self, + solution: str, + result: str, + task_description: str, + all_role_description: str, + ) -> EvaluatorMessage: + """Asynchronous version of step""" logger.debug("", self.name, Fore.MAGENTA) - prepend_prompt, append_prompt = self.get_all_prompts( + prepend_prompt, append_prompt, prompt_token = self.get_all_prompts( solution=solution, result=result, task_description=task_description, all_role_description=all_role_description, ) - history = self.memory.to_messages(self.name) + + max_send_token = self.llm.send_token_limit(self.llm.args.model) + max_send_token -= prompt_token + + history = await self.memory.to_messages( + self.name, + start_index=-self.max_history, + max_send_token=max_send_token, + model=self.llm.args.model, + ) parsed_response = None for i in range(self.max_retry): try: - response = self.llm.generate_response( + response = await self.llm.agenerate_response( prepend_prompt, history, append_prompt ) parsed_response = self.output_parser.parse(response) @@ -58,11 +80,6 @@ def step( advice=parsed_response[1] if parsed_response is not None else "", ) return message - # return parsed_response - - async def astep(self, solution: str) -> EvaluatorMessage: - """Asynchronous version of step""" - pass def _fill_prompt_template(self, solution: str, task_description: str) -> str: """Fill the placeholders in the prompt template diff --git a/agentverse/agents/tasksolving_agent/executor.py b/agentverse/agents/tasksolving_agent/executor.py index 38294453d..50bd237df 100644 --- a/agentverse/agents/tasksolving_agent/executor.py +++ b/agentverse/agents/tasksolving_agent/executor.py @@ -23,65 +23,28 @@ class ExecutorAgent(BaseAgent): def step( self, task_description: str, solution: str, tools: List[dict] = [], **kwargs ) -> ExecutorMessage: - logger.debug("", self.name, Fore.MAGENTA) - prepend_prompt, append_prompt = self.get_all_prompts( - task_description=task_description, - solution=solution, - agent_name=self.name, - **kwargs, - ) - - history = self.memory.to_messages(self.name, start_index=-self.max_history) - parsed_response = None - for i in range(self.max_retry): - try: - response = self.llm.generate_response( - prepend_prompt, history, append_prompt, tools - ) - parsed_response = self.output_parser.parse(response) - break - except (KeyboardInterrupt, bdb.BdbQuit): - raise - except Exception as e: - logger.error(e) - logger.warn("Retrying...") - continue - - if parsed_response is None: - logger.error(f"{self.name} failed to generate valid response.") - if isinstance(parsed_response, AgentFinish): - message = ExecutorMessage( - content=parsed_response.return_values["output"], - sender=self.name, - sender_agent=self, - ) - elif isinstance(parsed_response, AgentAction): - message = ExecutorMessage( - content=parsed_response.log, - sender=self.name, - sender_agent=self, - tool_name=parsed_response.tool, - tool_input=parsed_response.tool_input, - ) - else: - raise ValueError( - f"Error response type: {type(parsed_response)}. Only support \ - AgentFinish and AgentAction. Modify your output parser." - ) - return message + pass async def astep( self, task_description: str, solution: str, tools: List[dict] = [], **kwargs ) -> ExecutorMessage: logger.debug("", self.name, Fore.MAGENTA) - prepend_prompt, append_prompt = self.get_all_prompts( + prepend_prompt, append_prompt, prompt_token = self.get_all_prompts( task_description=task_description, solution=solution, agent_name=self.name, **kwargs, ) - history = self.memory.to_messages(self.name, start_index=-self.max_history) + max_send_token = self.llm.send_token_limit(self.llm.args.model) + max_send_token -= prompt_token + + history = await self.memory.to_messages( + self.name, + start_index=-self.max_history, + max_send_token=max_send_token, + model=self.llm.args.model, + ) parsed_response = None for i in range(self.max_retry): try: diff --git a/agentverse/agents/tasksolving_agent/role_assigner.py b/agentverse/agents/tasksolving_agent/role_assigner.py index 9b93833e6..ffec70ef7 100644 --- a/agentverse/agents/tasksolving_agent/role_assigner.py +++ b/agentverse/agents/tasksolving_agent/role_assigner.py @@ -19,20 +19,37 @@ @agent_registry.register("role_assigner") class RoleAssignerAgent(BaseAgent): + max_history: int = 5 + def step( self, advice: str, task_description: str, cnt_critic_agents: int ) -> RoleAssignerMessage: + pass + + async def astep( + self, advice: str, task_description: str, cnt_critic_agents: int + ) -> RoleAssignerMessage: + """Asynchronous version of step""" logger.debug("", self.name, Fore.MAGENTA) - prepend_prompt, append_prompt = self.get_all_prompts( + prepend_prompt, append_prompt, prompt_token = self.get_all_prompts( advice=advice, task_description=task_description, cnt_critic_agents=cnt_critic_agents, ) - history = self.memory.to_messages(self.name) + + max_send_token = self.llm.send_token_limit(self.llm.args.model) + max_send_token -= prompt_token + + history = await self.memory.to_messages( + self.name, + start_index=-self.max_history, + max_send_token=max_send_token, + model=self.llm.args.model, + ) parsed_response = None for i in range(self.max_retry): try: - response = self.llm.generate_response( + response = await self.llm.agenerate_response( prepend_prompt, history, append_prompt ) parsed_response = self.output_parser.parse(response) @@ -58,10 +75,6 @@ def step( ) return message - async def astep(self, env_description: str = "") -> RoleAssignerMessage: - """Asynchronous version of step""" - pass - def _fill_prompt_template( self, advice, task_description: str, cnt_critic_agents: int ) -> str: diff --git a/agentverse/agents/tasksolving_agent/solver.py b/agentverse/agents/tasksolving_agent/solver.py index 6db77561d..42ec5ba6a 100644 --- a/agentverse/agents/tasksolving_agent/solver.py +++ b/agentverse/agents/tasksolving_agent/solver.py @@ -15,33 +15,47 @@ from agentverse.agents.base import BaseAgent from agentverse.utils import AgentCriticism - logger = get_logger() @agent_registry.register("solver") class SolverAgent(BaseAgent): - max_history: int = 3 + max_history: int = 5 def step( self, former_solution: str, advice: str, task_description: str = "", **kwargs ) -> SolverMessage: + pass + + async def astep( + self, former_solution: str, advice: str, task_description: str = "", **kwargs + ) -> SolverMessage: + """Asynchronous version of step""" logger.debug("", self.name, Fore.MAGENTA) # prompt = self._fill_prompt_template( # former_solution, critic_opinions, advice, task_description # ) - prepend_prompt, append_prompt = self.get_all_prompts( + prepend_prompt, append_prompt, prompt_token = self.get_all_prompts( former_solution=former_solution, task_description=task_description, advice=advice, role_description=self.role_description, **kwargs, ) - history = self.memory.to_messages(self.name, start_index=-self.max_history) + + max_send_token = self.llm.send_token_limit(self.llm.args.model) + max_send_token -= prompt_token + + history = await self.memory.to_messages( + self.name, + start_index=-self.max_history, + max_send_token=max_send_token, + model=self.llm.args.model, + ) parsed_response = None for i in range(self.max_retry): try: - response = self.llm.generate_response( + response = await self.llm.agenerate_response( prepend_prompt, history, append_prompt ) parsed_response = self.output_parser.parse(response) @@ -65,10 +79,6 @@ def step( ) return message - async def astep(self, env_description: str = "") -> SolverMessage: - """Asynchronous version of step""" - pass - def _fill_prompt_template( self, former_solution: str, diff --git a/agentverse/environments/tasksolving_env/basic.py b/agentverse/environments/tasksolving_env/basic.py index 8e4631a24..457430311 100644 --- a/agentverse/environments/tasksolving_env/basic.py +++ b/agentverse/environments/tasksolving_env/basic.py @@ -51,7 +51,7 @@ async def step( logger.info(f"Loop Round {self.cnt_turn}") # ================== EXPERT RECRUITMENT ================== - agents = self.rule.role_assign( + agents = await self.rule.role_assign( self.task_description, self.agents, self.cnt_turn, advice ) description = "\n".join([agent.role_description for agent in agents]) @@ -79,7 +79,7 @@ async def step( # ================== EXECUTION ================== # ================== EVALUATION ================== - score, advice = self.rule.evaluate( + score, advice = await self.rule.evaluate( self.task_description, self.agents, plan, result ) logs.append( diff --git a/agentverse/environments/tasksolving_env/rules/base.py b/agentverse/environments/tasksolving_env/rules/base.py index 2e25c017c..a1fcb0dc9 100644 --- a/agentverse/environments/tasksolving_env/rules/base.py +++ b/agentverse/environments/tasksolving_env/rules/base.py @@ -68,7 +68,7 @@ def build_components(config: Dict, registry): **kwargs, ) - def role_assign( + async def role_assign( self, task_description: str, agents: List[BaseAgent], @@ -79,7 +79,7 @@ def role_assign( if self.role_assign_only_once and cnt_turn > 0: agents = [agents[AGENT_TYPES.SOLVER]] + agents[AGENT_TYPES.CRITIC] else: - agents = self.role_assigner.step( + agents = await self.role_assigner.astep( role_assigner=agents[AGENT_TYPES.ROLE_ASSIGNMENT], group_members=[agents[AGENT_TYPES.SOLVER]] + agents[AGENT_TYPES.CRITIC], advice=advice, @@ -137,7 +137,7 @@ async def execute( agents[AGENT_TYPES.SOLVER].add_message_to_memory(results) return results - def evaluate( + async def evaluate( self, task_description: str, agents: List[BaseAgent], @@ -162,7 +162,7 @@ def evaluate( # logger.error("Bad response from human evaluator!") # return ([comprehensiveness, detailedness, feasibility, novelty], advice) # else: - evaluation = self.evaluator.step( + evaluation = await self.evaluator.astep( agent=agents[AGENT_TYPES.EVALUATION], solution=solution, result=result, diff --git a/agentverse/environments/tasksolving_env/rules/decision_maker/brainstorming.py b/agentverse/environments/tasksolving_env/rules/decision_maker/brainstorming.py index a6db1a5f6..39bd35ae9 100644 --- a/agentverse/environments/tasksolving_env/rules/decision_maker/brainstorming.py +++ b/agentverse/environments/tasksolving_env/rules/decision_maker/brainstorming.py @@ -53,7 +53,7 @@ async def astep( Fore.YELLOW, ) - result = agents[0].step(previous_plan, advice, task_description) + result = await agents[0].astep(previous_plan, advice, task_description) for agent in agents: agent.memory.reset() self.broadcast_messages( diff --git a/agentverse/environments/tasksolving_env/rules/decision_maker/central.py b/agentverse/environments/tasksolving_env/rules/decision_maker/central.py index 5d7bf5702..1d682e3da 100644 --- a/agentverse/environments/tasksolving_env/rules/decision_maker/central.py +++ b/agentverse/environments/tasksolving_env/rules/decision_maker/central.py @@ -47,7 +47,7 @@ async def astep( ), ) agents[1].add_message_to_memory([result]) - result = agents[0].step( + result = await agents[0].astep( previous_plan, advice, task_description, chat_record=result.content ) return [result] diff --git a/agentverse/environments/tasksolving_env/rules/decision_maker/concurrent.py b/agentverse/environments/tasksolving_env/rules/decision_maker/concurrent.py index cc34e00b7..f3979b851 100644 --- a/agentverse/environments/tasksolving_env/rules/decision_maker/concurrent.py +++ b/agentverse/environments/tasksolving_env/rules/decision_maker/concurrent.py @@ -59,7 +59,7 @@ async def astep( last_reviews = nonempty_reviews agents[0].add_message_to_memory(last_reviews) - result = agents[0].step(previous_plan, advice, task_description) + result = await agents[0].astep(previous_plan, advice, task_description) # agents[0].add_message_to_memory([result]) self.broadcast_messages(agents, [result]) return [result] diff --git a/agentverse/environments/tasksolving_env/rules/decision_maker/dynamic.py b/agentverse/environments/tasksolving_env/rules/decision_maker/dynamic.py index d6b6d72fe..c1fccf923 100644 --- a/agentverse/environments/tasksolving_env/rules/decision_maker/dynamic.py +++ b/agentverse/environments/tasksolving_env/rules/decision_maker/dynamic.py @@ -56,7 +56,7 @@ async def astep( # Fore.YELLOW, # ) - previous_sentence = manager.step( + previous_sentence = await manager.astep( previous_plan, review, advice, task_description, previous_sentence ) reviews.append(previous_sentence) @@ -76,7 +76,7 @@ async def astep( nonempty_reviews.append(review) agents[0].add_message_to_memory(nonempty_reviews) - result = agents[0].step(previous_plan, advice, task_description) + result = await agents[0].astep(previous_plan, advice, task_description) return [result] diff --git a/agentverse/environments/tasksolving_env/rules/decision_maker/horizontal.py b/agentverse/environments/tasksolving_env/rules/decision_maker/horizontal.py index b2a8c5703..ef9f43108 100644 --- a/agentverse/environments/tasksolving_env/rules/decision_maker/horizontal.py +++ b/agentverse/environments/tasksolving_env/rules/decision_maker/horizontal.py @@ -50,7 +50,7 @@ async def astep( Fore.YELLOW, ) - result = agents[0].step(previous_plan, advice, task_description) + result = await agents[0].astep(previous_plan, advice, task_description) return [result] def reset(self): diff --git a/agentverse/environments/tasksolving_env/rules/decision_maker/horizontal_tool.py b/agentverse/environments/tasksolving_env/rules/decision_maker/horizontal_tool.py index 5cea85eab..b30e88046 100644 --- a/agentverse/environments/tasksolving_env/rules/decision_maker/horizontal_tool.py +++ b/agentverse/environments/tasksolving_env/rules/decision_maker/horizontal_tool.py @@ -77,7 +77,9 @@ async def astep( if end_flag: break - result: SolverMessage = agents[0].step(previous_plan, advice, task_description) + result: SolverMessage = await agents[0].astep( + previous_plan, advice, task_description + ) result_list = [] for res in result.content: res_tmp = deepcopy(result) diff --git a/agentverse/environments/tasksolving_env/rules/decision_maker/vertical.py b/agentverse/environments/tasksolving_env/rules/decision_maker/vertical.py index d8adf594d..0bcc4688f 100644 --- a/agentverse/environments/tasksolving_env/rules/decision_maker/vertical.py +++ b/agentverse/environments/tasksolving_env/rules/decision_maker/vertical.py @@ -50,7 +50,7 @@ async def astep( if not review.is_agree and review.content != "": nonempty_reviews.append(review) agents[0].add_message_to_memory(nonempty_reviews) - result = agents[0].step(previous_plan, advice, task_description) + result = await agents[0].astep(previous_plan, advice, task_description) agents[0].add_message_to_memory([result]) return [result] diff --git a/agentverse/environments/tasksolving_env/rules/decision_maker/vertical_solver_first.py b/agentverse/environments/tasksolving_env/rules/decision_maker/vertical_solver_first.py index 97114f455..c3c38af8e 100644 --- a/agentverse/environments/tasksolving_env/rules/decision_maker/vertical_solver_first.py +++ b/agentverse/environments/tasksolving_env/rules/decision_maker/vertical_solver_first.py @@ -38,7 +38,7 @@ async def astep( self.broadcast_messages( agents, [Message(content=advice, sender="Evaluator")] ) - previous_plan = agents[0].step(previous_plan, advice, task_description) + previous_plan = await agents[0].astep(previous_plan, advice, task_description) self.broadcast_messages(agents, [previous_plan]) logger.info("", f"Initial Plan:\n{previous_plan.content}", Fore.BLUE) for i in range(self.max_inner_turns): @@ -65,7 +65,7 @@ async def astep( logger.info("", "Consensus Reached!.", Fore.GREEN) break self.broadcast_messages(agents, nonempty_reviews) - previous_plan = agents[0].step(previous_plan, advice, task_description) + previous_plan = await agents[0].astep(previous_plan, advice, task_description) logger.info("", f"Updated Plan:\n{previous_plan.content}", Fore.BLUE) self.broadcast_messages(agents, [previous_plan]) result = previous_plan diff --git a/agentverse/environments/tasksolving_env/rules/evaluator/base.py b/agentverse/environments/tasksolving_env/rules/evaluator/base.py index f3d72ad98..96a00ff59 100644 --- a/agentverse/environments/tasksolving_env/rules/evaluator/base.py +++ b/agentverse/environments/tasksolving_env/rules/evaluator/base.py @@ -20,7 +20,7 @@ class BaseEvaluator(BaseModel): """ @abstractmethod - def step( + async def astep( self, agent: EvaluatorAgent, solution: List[SolverMessage], @@ -38,7 +38,7 @@ def reset(self): @evaluator_registry.register("none") class NoneEvaluator(BaseEvaluator): - def step( + async def astep( self, agent: EvaluatorAgent, solution: List[SolverMessage], @@ -56,7 +56,7 @@ def step( @evaluator_registry.register("dummy") class DummyEvaluator(BaseEvaluator): - def step( + async def astep( self, agent: EvaluatorAgent, solution: List[SolverMessage], @@ -72,7 +72,7 @@ def step( @evaluator_registry.register("dummy") class DummyEvaluator(BaseEvaluator): - def step( + async def astep( self, agent: EvaluatorAgent, solution: List[str] | str, diff --git a/agentverse/environments/tasksolving_env/rules/evaluator/basic.py b/agentverse/environments/tasksolving_env/rules/evaluator/basic.py index a7738fe21..847234f03 100644 --- a/agentverse/environments/tasksolving_env/rules/evaluator/basic.py +++ b/agentverse/environments/tasksolving_env/rules/evaluator/basic.py @@ -14,7 +14,7 @@ class BasicEvaluator(BaseEvaluator): cnt_agents: int = 0 - def step( + async def astep( self, agent: EvaluatorAgent, solution: List[SolverMessage], @@ -27,7 +27,7 @@ def step( flatten_solution = "\n".join([s.content for s in solution]) flatten_result = "\n".join([r.content for r in result]) flatten_all_role_description = "\n".join(all_role_description) - evaluation = agent.step( + evaluation = await agent.astep( flatten_solution, flatten_result, task_description, @@ -40,7 +40,7 @@ def step( class BasicEvaluator(BaseEvaluator): cnt_agents: int = 0 - def step( + async def astep( self, agent: EvaluatorAgent, solution: List[SolverMessage], @@ -54,7 +54,7 @@ def step( flatten_result = "\n".join([r.content for r in result]) flatten_all_role_description = "\n".join(all_role_description) agent.add_message_to_memory(result) - evaluation = agent.step( + evaluation = await agent.astep( flatten_solution, flatten_result, task_description, diff --git a/agentverse/environments/tasksolving_env/rules/executor/code_test.py b/agentverse/environments/tasksolving_env/rules/executor/code_test.py index 121aabc67..1a60b720e 100644 --- a/agentverse/environments/tasksolving_env/rules/executor/code_test.py +++ b/agentverse/environments/tasksolving_env/rules/executor/code_test.py @@ -71,35 +71,7 @@ def step( *args, **kwargs, ) -> Any: - solution = solution[0].content - os.makedirs("tmp", exist_ok=True) - self.write_to_file("tmp/main.py", solution) - manager = multiprocessing.Manager() - result = manager.list() - if task_description not in self.has_test: - response = agent.step(task_description, solution).content - self.write_to_file(response["file_path"], response["code"]) - self.has_test[task_description] = f"python {response['file_path']}" - p = multiprocessing.Process( - target=execute_command, args=(f"python {response['file_path']}", result) - ) - p.start() - p.join(timeout=self.timeout + 1) - if p.is_alive(): - p.kill() - # result = execute_command(f"python {response['file_path']}") - else: - # result = execute_command(self.has_test[task_description]) - p = multiprocessing.Process( - target=execute_command, args=(self.has_test[task_description], result) - ) - p.start() - p.join(timeout=self.timeout + 1) - if p.is_alive(): - p.kill() - if not result: - result.append("Execution timed out.") - return [ExecutorMessage(content=result[0], sender="Code Tester")] + pass def write_to_file(self, file_name, file_content): # TODO: generalize this method to a common tool diff --git a/agentverse/environments/tasksolving_env/rules/executor/tool_using.py b/agentverse/environments/tasksolving_env/rules/executor/tool_using.py index 65bc8ff24..9ae70a78d 100644 --- a/agentverse/environments/tasksolving_env/rules/executor/tool_using.py +++ b/agentverse/environments/tasksolving_env/rules/executor/tool_using.py @@ -13,7 +13,7 @@ from . import BaseExecutor, executor_registry import asyncio - +from agentverse.llms.utils.jsonrepair import JsonRepair url = "http://127.0.0.1:8080" @@ -85,7 +85,6 @@ async def astep( self.agent_names.append(name) plan_this_turn[name] = plans[i].content.split("-")[1].strip() agent_name_this_turn.append(name) - # agents = [deepcopy(agent) for _ in range(len(plans))] if self.tool_retrieval: # We retrieve 5 related tools for each agent @@ -109,7 +108,6 @@ async def astep( # Record the indices of agents that have finished their tasks # so that they will not be called again finished_agent_names = set() - # result = ["" for _ in range(len(plan_this_turn))] result = {name: "" for name in agent_name_this_turn} for current_turn in range(self.max_tool_call_times): if len(finished_agent_names) == len(agent_name_this_turn): @@ -224,10 +222,59 @@ async def _summarize_webpage(webpage, question): response = await openai.ChatCompletion.acreate( messages=[{"role": "user", "content": summarize_prompt}], model="gpt-3.5-turbo-16k", + functions=[ + { + "name": "parse_web_text", + "description": "Parse the text of the webpage based on tthe question. Extract all related infomation about `Question` from the webpage. ! Don't provide information that is not shown in the webpage! ! Don't provide your own opinion!", + "parameters": { + "type": "object", + "properties": { + "summary": { + "type": "string", + "description": "Summary of the webpage with 50 words. Make sure all important information about `Question` is included. ! Don't provide information that is not shown in the webpage! ! Don't provide your own opinion!", + }, + "related_details": { + "type": "string", + "description": "List all webpage details related to the question. Maximum 400 words. ! Don't provide information that is not shown in the webpage! ! Don't provide your own opinion!", + }, + "useful_hyperlinks": { + "type": "array", + "description": "Maximum 3 items. Select useful hyperlinks in the webpage that related to the question. Make sure the url is useful for further browse. Don't provide repeated hyperlinks.", + "items": { + "type": "string", + "description": "! Don't provide hyperlinks that is not shown in the webpage! ! Don't provide your own opinion!", + }, + }, + }, + "required": [ + "summary", + "related_details", + "useful_hyperlinks", + ], + }, + } + ], + function_call={"name": "parse_web_text"}, ) - except: + except Exception as e: + logger.error("Failed to call the tool. Exception: " + str(e)) continue - return response["choices"][0]["message"]["content"] + arguments = ast.literal_eval( + JsonRepair( + response["choices"][0]["message"]["function_call"]["arguments"] + ).repair() + ) + ret = ( + "summary: " + + arguments["summary"] + + "\nrelated_details: " + + arguments["related_details"] + + "\nuseful_hyperlinks: [" + + ",".join(arguments["useful_hyperlinks"]) + + "]\n" + ) + + return ret if command == "submit_task": return { @@ -251,7 +298,6 @@ async def _summarize_webpage(webpage, question): "is_finish": False, "cookies": cookies, } - for i in range(3): try: async with ClientSession(cookies=cookies, trust_env=True) as session: @@ -277,20 +323,38 @@ async def _summarize_webpage(webpage, question): async with session.post( f"{url}/execute_tool", json=payload, - headers={ - "toolbench_key": "p5ZASSLBO0EknAQLE5ecNZ7kq5i1YfY9eoWUXNxL3TM6lXwdXs" - }, timeout=30, ) as response: content = await response.text() if command == "WebEnv_browse_website": openai.aiosession.set(session) - content = await _summarize_webpage( - content, arguments["question"] + result = await _summarize_webpage( + content, arguments["goals_to_browse"] ) + elif command == "WebEnv_search_and_browse": + openai.aiosession.set(session) + content = json.loads(content) + # for i in range(len(content)): + summarized = await asyncio.gather( + *[ + _summarize_webpage( + content[i]["page"], arguments["goals_to_browse"] + ) + for i in range(len(content)) + ] + ) + for i in range(len(content)): + content[i]["page"] = summarized[i] + result = "" + for i in range(len(content)): + result += f"SEARCH_REASULT {i}:\n" + result += content[i]["page"].strip() + "\n\n" + result = result.strip() + else: + result = content message = ExecutorMessage( - content=content, + content=result, sender="function", tool_name=command, tool_input=arguments, diff --git a/agentverse/environments/tasksolving_env/rules/role_assigner/base.py b/agentverse/environments/tasksolving_env/rules/role_assigner/base.py index 726abf52a..cd8f843bf 100644 --- a/agentverse/environments/tasksolving_env/rules/role_assigner/base.py +++ b/agentverse/environments/tasksolving_env/rules/role_assigner/base.py @@ -19,7 +19,7 @@ class BaseRoleAssigner(BaseModel): """ @abstractmethod - def step( + async def astep( self, role_assigner: RoleAssignerAgent, group_members: List[CriticAgent], @@ -40,7 +40,7 @@ class DummyRoleAssigner(BaseRoleAssigner): The base class of role assignment class. """ - def step( + async def astep( self, role_assigner: RoleAssignerAgent, group_members: List[CriticAgent], diff --git a/agentverse/environments/tasksolving_env/rules/role_assigner/role_description.py b/agentverse/environments/tasksolving_env/rules/role_assigner/role_description.py index 1d7490c83..b28b64408 100644 --- a/agentverse/environments/tasksolving_env/rules/role_assigner/role_description.py +++ b/agentverse/environments/tasksolving_env/rules/role_assigner/role_description.py @@ -16,7 +16,7 @@ class DescriptionAssigner(BaseRoleAssigner): Generates descriptions for each agent. """ - def step( + async def astep( self, role_assigner: RoleAssignerAgent, group_members: List[CriticAgent], @@ -28,7 +28,7 @@ def step( assert task_description != "" assert len(group_members) > 0 - roles = role_assigner.step(advice, task_description, len(group_members)) + roles = await role_assigner.astep(advice, task_description, len(group_members)) if len(roles.content) < len(group_members): raise ValueError( f"Number of roles ({len(roles.content)}) and number of group members ({len(group_members)}) do not match." @@ -50,7 +50,7 @@ class DescriptionNameAssigner(BaseRoleAssigner): Generates description and name for each agent. """ - def step( + async def astep( self, role_assigner: RoleAssignerAgent, group_members: List[CriticAgent], @@ -63,7 +63,7 @@ def step( assert len(group_members) > 0 # roles: [{'name': 'xxx', 'description': 'xxx'}, ...] - roles = role_assigner.step(advice, task_description, len(group_members)) + roles = await role_assigner.astep(advice, task_description, len(group_members)) if len(group_members) < 2: pass diff --git a/agentverse/llms/__init__.py b/agentverse/llms/__init__.py index 5c0cd5047..0902d3116 100644 --- a/agentverse/llms/__init__.py +++ b/agentverse/llms/__init__.py @@ -1,6 +1,7 @@ from agentverse.registry import Registry llm_registry = Registry(name="LLMRegistry") +LOCAL_LLMS = ["llama-2-7b-chat-hf"] from .base import BaseLLM, BaseChatModel, BaseCompletionModel, LLMResult from .openai import OpenAIChat diff --git a/agentverse/llms/openai.py b/agentverse/llms/openai.py index 08547c300..1331d9155 100644 --- a/agentverse/llms/openai.py +++ b/agentverse/llms/openai.py @@ -13,7 +13,7 @@ from agentverse.logging import logger from agentverse.message import Message -from . import llm_registry +from . import llm_registry, LOCAL_LLMS from .base import BaseChatModel, BaseCompletionModel, BaseModelArgs from .utils.jsonrepair import JsonRepair @@ -92,8 +92,8 @@ class OpenAIChatArgs(BaseModelArgs): # total_tokens=response["usage"]["total_tokens"], # ) + # To support your own local LLMs, register it here and add it into LOCAL_LLMS. -LOCAL_LLMS = ['llama-2-7b-chat-hf'] @llm_registry.register("gpt-35-turbo") @llm_registry.register("gpt-3.5-turbo") @llm_registry.register("gpt-4") @@ -111,10 +111,23 @@ def __init__(self, max_retry: int = 3, **kwargs): args[k] = kwargs.pop(k, v) if len(kwargs) > 0: logging.warning(f"Unused arguments: {kwargs}") - if args['model'] in LOCAL_LLMS: + if args["model"] in LOCAL_LLMS: openai.api_base = "http://localhost:5000/v1" super().__init__(args=args, max_retry=max_retry) + @classmethod + def send_token_limit(self, model: str) -> int: + send_token_limit_dict = { + "gpt-3.5-turbo": 4096, + "gpt-35-turbo": 4096, + "gpt-3.5-turbo-16k": 16384, + "gpt-4": 8192, + "gpt-4-32k": 32768, + "llama-2-7b-chat-hf": 4096, + } + + return send_token_limit_dict[model] + # def _construct_messages(self, history: List[Message]): # return history + [{"role": "user", "content": query}] @retry( diff --git a/agentverse/llms/utils/__init__.py b/agentverse/llms/utils/__init__.py index e122a4906..d64f068ef 100644 --- a/agentverse/llms/utils/__init__.py +++ b/agentverse/llms/utils/__init__.py @@ -1 +1,2 @@ -from . jsonrepair import JsonRepair +from .jsonrepair import JsonRepair +from .token_counter import count_string_tokens, count_message_tokens diff --git a/agentverse/llms/utils/token_counter.py b/agentverse/llms/utils/token_counter.py new file mode 100644 index 000000000..cdff86ad9 --- /dev/null +++ b/agentverse/llms/utils/token_counter.py @@ -0,0 +1,59 @@ +# Modified from AutoGPT https://github.com/Significant-Gravitas/AutoGPT/blob/release-v0.4.7/autogpt/llm/utils/token_counter.py + +import tiktoken +from typing import List, Union, Dict +from agentverse.logging import logger +from agentverse.message import Message +from agentverse.llms import LOCAL_LLMS +from transformers import AutoTokenizer + + +def count_string_tokens(prompt: str = "", model: str = "gpt-3.5-turbo") -> int: + return len(tiktoken.encoding_for_model(model).encode(prompt)) + + +def count_message_tokens( + messages: Union[Dict, List[Dict]], model: str = "gpt-3.5-turbo" +) -> int: + if isinstance(messages, dict): + messages = [messages] + + if model.startswith("gpt-3.5-turbo"): + tokens_per_message = ( + 4 # every message follows <|start|>{role/name}\n{content}<|end|>\n + ) + tokens_per_name = -1 # if there's a name, the role is omitted + encoding_model = "gpt-3.5-turbo" + elif model.startswith("gpt-4"): + tokens_per_message = 3 + tokens_per_name = 1 + encoding_model = "gpt-4" + elif model in LOCAL_LLMS: + encoding = AutoTokenizer.from_pretrained(model) + else: + raise NotImplementedError( + f"count_message_tokens() is not implemented for model {model}.\n" + " See https://github.com/openai/openai-python/blob/main/chatml.md for" + " information on how messages are converted to tokens." + ) + if model.startswith("gpt-3.5-turbo") or model.startswith("gpt-4"): + try: + encoding = tiktoken.encoding_for_model(encoding_model) + except KeyError: + logger.warn("Warning: model not found. Using cl100k_base encoding.") + encoding = tiktoken.get_encoding("cl100k_base") + + num_tokens = 0 + for message in messages: + num_tokens += tokens_per_message + for key, value in message.items(): + # TODO: count number of function_call's token more accurately + if key == "function_call": + num_tokens += len(encoding.encode(value["name"])) + num_tokens += len(encoding.encode(value["arguments"])) + else: + num_tokens += len(encoding.encode(value)) + if key == "name": + num_tokens += tokens_per_name + num_tokens += 3 # every reply is primed with <|start|>assistant<|message|> + return num_tokens diff --git a/agentverse/memory/chat_history.py b/agentverse/memory/chat_history.py index 38649d402..e4bc508a6 100644 --- a/agentverse/memory/chat_history.py +++ b/agentverse/memory/chat_history.py @@ -1,17 +1,40 @@ import json -from typing import List +import logging +import os +import openai +import copy +from typing import List, Optional, Tuple, Dict from pydantic import Field from agentverse.message import Message, ExecutorMessage - from . import memory_registry from .base import BaseMemory +from agentverse.llms.utils import count_message_tokens, count_string_tokens +from agentverse.llms import OpenAIChat @memory_registry.register("chat_history") class ChatHistoryMemory(BaseMemory): messages: List[Message] = Field(default=[]) + has_summary: bool = False + max_summary_tlength: int = 500 + last_trimmed_index: int = 0 + summary: str = "" + SUMMARIZATION_PROMPT = '''Your task is to create a concise running summary of actions and information results in the provided text, focusing on key and potentially important information to remember. + +You will receive the current summary and your latest actions. Combine them, adding relevant key information from the latest development in 1st person past tense and keeping the summary concise. + +Summary So Far: +""" +{summary} +""" + +Latest Development: +""" +{new_events} +""" +''' def add_message(self, messages: List[Message]) -> None: for message in messages: @@ -30,8 +53,19 @@ def to_string(self, add_sender_prefix: bool = False) -> str: else: return "\n".join([message.content for message in self.messages]) - def to_messages(self, my_name: str = "", start_index: int = 0) -> List[dict]: + async def to_messages( + self, + my_name: str = "", + start_index: int = 0, + max_summary_length: int = 0, + max_send_token: int = 0, + model: str = "gpt-3.5-turbo", + ) -> List[dict]: messages = [] + + if self.has_summary: + start_index = self.last_trimmed_index + for message in self.messages[start_index:]: if message.sender == my_name: if isinstance(message, ExecutorMessage): @@ -71,7 +105,138 @@ def to_messages(self, my_name: str = "", start_index: int = 0) -> List[dict]: "content": f"[{message.sender}]: {message.content}", } ) + + # summary message + if self.has_summary: + """https://github.com/Significant-Gravitas/AutoGPT/blob/release-v0.4.7/autogpt/memory/message_history.py""" + if max_summary_length == 0: + max_summary_length = self.max_summary_tlength + max_send_token -= max_summary_length + prompt = [] + trimmed_history = add_history_upto_token_limit( + prompt, messages, max_send_token, model + ) + if trimmed_history: + import pdb + + pdb.set_trace() + new_summary_msg, _ = await self.trim_messages( + list(prompt), model, messages + ) + prompt.append(new_summary_msg) + messages = prompt return messages def reset(self) -> None: self.messages = [] + + async def trim_messages( + self, current_message_chain: List[Dict], model: str, history: List[Dict] + ) -> Tuple[Dict, List[Dict]]: + new_messages_not_in_chain = [ + msg for msg in history if msg not in current_message_chain + ] + + if not new_messages_not_in_chain: + return self.summary_message(), [] + + new_summary_message = await self.update_running_summary( + new_events=new_messages_not_in_chain, model=model + ) + + last_message = new_messages_not_in_chain[-1] + self.last_trimmed_index += history.index(last_message) + + return new_summary_message, new_messages_not_in_chain + + async def update_running_summary( + self, + new_events: List[Dict], + model: str = "gpt-3.5-turbo", + max_summary_length: Optional[int] = None, + ) -> dict: + if not new_events: + return self.summary_message() + if max_summary_length is None: + max_summary_length = self.max_summary_tlength + + new_events = copy.deepcopy(new_events) + + # Replace "assistant" with "you". This produces much better first person past tense results. + for event in new_events: + if event["role"].lower() == "assistant": + event["role"] = "you" + + elif event["role"].lower() == "system": + event["role"] = "your computer" + + # Delete all user messages + elif event["role"] == "user": + new_events.remove(event) + + prompt_template_length = len( + self.SUMMARIZATION_PROMPT.format(summary="", new_events="") + ) + max_input_tokens = OpenAIChat.send_token_limit(model) - max_summary_length + summary_tlength = count_string_tokens(self.summary, model) + batch: List[Dict] = [] + batch_tlength = 0 + + for event in new_events: + event_tlength = count_message_tokens(event, model) + + if ( + batch_tlength + event_tlength + > max_input_tokens - prompt_template_length - summary_tlength + ): + await self._update_summary_with_batch(batch, model, max_summary_length) + summary_tlength = count_string_tokens(self.summary, model) + batch = [event] + batch_tlength = event_tlength + else: + batch.append(event) + batch_tlength += event_tlength + + if batch: + await self._update_summary_with_batch(batch, model, max_summary_length) + + return self.summary_message() + + async def _update_summary_with_batch( + self, new_events_batch: List[dict], model: str, max_summary_length: int + ) -> None: + prompt = self.SUMMARIZATION_PROMPT.format( + summary=self.summary, new_events=new_events_batch + ) + + self.summary = await openai.ChatCompletion.acreate( + messages=[{"role": "user", "content": prompt}], + model=model, + max_tokens=max_summary_length, + temperature=0.5, + )["choices"][0]["message"]["content"] + + def summary_message(self) -> dict: + return { + "role": "system", + "content": f"This reminds you of these events from your past: \n{self.summary}", + } + + +def add_history_upto_token_limit( + prompt: List[dict], history: List[dict], t_limit: int, model: str +) -> List[Message]: + limit_reached = False + current_prompt_length = 0 + trimmed_messages: List[Dict] = [] + for message in history[::-1]: + token_to_add = count_message_tokens(message, model) + if current_prompt_length + token_to_add > t_limit: + limit_reached = True + + if not limit_reached: + prompt.insert(0, message) + current_prompt_length += token_to_add + else: + trimmed_messages.insert(0, message) + return trimmed_messages diff --git a/agentverse/tasks/tasksolving/tool_using/24point/config.yaml b/agentverse/tasks/tasksolving/tool_using/24point/config.yaml index 2ac61f385..e26ecd6a3 100644 --- a/agentverse/tasks/tasksolving/tool_using/24point/config.yaml +++ b/agentverse/tasks/tasksolving/tool_using/24point/config.yaml @@ -147,6 +147,7 @@ agents: append_prompt_template: *role_assigner_append_prompt memory: memory_type: chat_history + has_summary: true llm: llm_type: gpt-4 model: "gpt-4" @@ -163,6 +164,7 @@ agents: max_retry: 100 memory: memory_type: chat_history + has_summary: true llm: llm_type: gpt-4 model: "gpt-4" @@ -186,6 +188,7 @@ agents: append_prompt_template: *critic_append_prompt memory: memory_type: chat_history + has_summary: true llm: llm_type: gpt-4 model: "gpt-4" @@ -204,6 +207,7 @@ agents: max_retry: 100 memory: memory_type: chat_history + has_summary: true llm: llm_type: gpt-4 model: gpt-4 @@ -222,6 +226,7 @@ agents: append_prompt_template: *evaluator_append_prompt memory: memory_type: chat_history + has_summary: true llm: llm_type: gpt-4 model: gpt-4 @@ -237,6 +242,7 @@ agents: prompt_template: *manager_prompt memory: memory_type: chat_history + has_summary: true llm: llm_type: gpt-4 model: "gpt-4" diff --git a/agentverse/tasks/tasksolving/tool_using/tools_simplified.json b/agentverse/tasks/tasksolving/tool_using/tools_simplified.json index 9ddfeffa2..609926c7f 100644 --- a/agentverse/tasks/tasksolving/tool_using/tools_simplified.json +++ b/agentverse/tasks/tasksolving/tool_using/tools_simplified.json @@ -1,35 +1,12 @@ { "available_envs": [ { - "name": "FileSystemEnv", - "description": "Provide a file system operation environment for Agent.\n ", - "total_tools": 5, - "tools": [ - "is_path_exist", - "modify_file", - "print_filesys_struture", - "read_from_file", - "write_to_file" - ] - }, - { - "name": "PDBCodingEnv", - "description": "Note: This env is subclass of ['FileSystemEnv', 'ShellEnv'], and all tools of parent envs are inherited and not visible. You can try call parent tools or check this env's defination to show them.\nPython Debugging Coding Environment.\n Always run code with `python -m pdb {python_file.py}`.\n ", - "total_tools": 11, - "tools": [ - "run_code" - ] - }, - { - "name": "ShellEnv", - "description": "Provide and maintain an interactive shell environment.\n ", - "total_tools": 5, + "name": "PythonNotebook", + "description": "Python Notebook Environment. Provide a notebook interface to run python code.", + "total_tools": 2, "tools": [ - "kill", - "read_stdout", - "restart", - "terminate", - "write_stdin" + "execute_cell", + "print_cells_outputs" ] }, { @@ -38,105 +15,217 @@ "total_tools": 2, "tools": [ "browse_website", - "scrape_text" + "search_and_browse" ] }, { - "name": "RapidAPIEnv", - "description": "Note: All tools of this env are invisible during all tools display, please check this env's defination to show all tools.\nRapidAPI Env delivers rapid api for tool server.", - "total_tools": 4208, + "name": "FileSystemEnv", + "description": "Provide a file system operation environment for Agent.\n ", + "total_tools": 4, "tools": [ - "rapi_100_success_instagram_api_scalable_robust_media_info", - "rapi_100_success_instagram_api_scalable_robust_post_comments", - "rapi_100_success_instagram_api_scalable_robust_user_followers", - "rapi_13f918yf19o1t1f1of1t9_endpoint1", - "rapi_3d_services_thumbnail", - "rapi_4d_dream_dictionary_get_dream_number", - "rapi_50k_radio_stations_get_channels", - "rapi_50k_radio_stations_get_cities", - "rapi_50k_radio_stations_get_countries", - "rapi_50k_radio_stations_get_genres", - "..." + "modify_file", + "print_filesys_struture", + "read_from_file", + "write_to_file" ] } ], "available_tools": [ - "FileSystemEnv_is_path_exist", + "PythonNotebook_execute_cell", + "PythonNotebook_print_cells_outputs", + "WebEnv_browse_website", + "WebEnv_search_and_browse", "FileSystemEnv_modify_file", "FileSystemEnv_print_filesys_struture", "FileSystemEnv_read_from_file", "FileSystemEnv_write_to_file", - "PDBCodingEnv_run_code", - "ShellEnv_kill", - "ShellEnv_read_stdout", - "ShellEnv_restart", - "ShellEnv_terminate", - "ShellEnv_write_stdin", - "WebEnv_browse_website", - "WebEnv_scrape_text", - "query_wolfram", - "bing_search" + "shell_command_executor" ], "tools_json": [ - { - "name": "WebEnv_browse_website", - "description": "Browse a website and return the page. Note some websites may not be accessable due to network error.", - "parameters": { - "type": "object", - "properties": { - "url": { - "type": "string", - "description": "The realworld URL to scrape text from. Started with http:// or https://." - }, - "question": { - "type": "string", - "description": "The question for the website. The function will answer the question by browsing the url." - } - }, - "required": [ - "url", - "question" - ] - } - }, { - "name": "run_interpreter", - "description": "The code interpreter tool that runs code and returns the output.\nThe `code` will be written to file `filename` and the `command` will be executed in a shell. The returned value of this tool is the stdout content. So use `print` to get the important information.\nExample:\n```\nrun_interpreter(code='print(\"hello world\")',command='python code.py')\n```", + "name": "PythonNotebook_execute_cell", + "description": "Create or replace a notebook cell and execute it, return the output.\nUse this tool to test your idea quickly.\n\nExample:\n```\nIn[0]: code='print(\"hello world\")' # This will create a new cell and execute it.\nOut[0]: ['cell_index: 0', 'hello world']\nIn[1]: code='print(\"hello world\")',cell_index=0 # This will overwrite the first cell and execute it.\nIn[2]: code='print(\"hello world\")',cell_index=-1 # This will overwrite the last cell and execute it.\n```", "parameters": { "type": "object", "properties": { "code": { "type": "string", - "description": "The code to be written, default to `None`, which means no code will be written to file." + "description": "python code to be executed, make sure it is valid python code with right format. don't provide shell command that started with '!' here. don't make your code print too much output." + }, + "cell_index": { + "type": "integer", + "description": "the index of the cell to be insert and overwrite `code`, default to `None`, which means append new cell." }, - "filename": { + "reset": { + "type": "boolean", + "description": "whether to reset the kernel before executing the code. Default to `False`." + } + }, + "required": [ + "code" + ] + } + }, + { + "name": "PythonNotebook_print_cells_outputs", + "description": "print all notebook cells' content and output.", + "parameters": { + "type": "object", + "properties": {}, + "required": [] + } + }, + { + "name": "WebEnv_browse_website", + "description": "Give a http or https url to browse a website and return the summarize text. Note some websites may not be accessable due to network error. This tool only return the content of give url and cannot provide any information need interaction with the website.", + "parameters": { + "type": "object", + "properties": { + "url": { "type": "string", - "description": "The filename to be written in mode `w`, default to `code.py`." + "description": "The realworld Uniform Resource Locator (web address) to scrape text from. Never provide something like \"\", give real url!!! Example: 'https://www.deepmind.com/'" }, - "command": { + "goals_to_browse": { "type": "string", - "description": "The shell command to be executed should avoid requiring additional user input, default to `python {filename}`." + "description": "The goals for browse the given `url` (e.g. what you want to find on webpage.). If you need more details, request it in here." } }, - "required": [] + "required": [ + "url", + "goals_to_browse" + ] } }, { - "name": "bing_search", - "description": "Return 3 most relevant results of a Bing search using the official Bing API. This tool does not provide website details, use other tools to browse website if you need.", + "name": "WebEnv_search_and_browse", + "description": "Search with search tools and browse the website returned by search. Note some websites may not be accessable due to network error.", "parameters": { "type": "object", "properties": { - "query": { + "search_query": { "type": "string", "description": "The search query." + }, + "goals_to_browse": { + "type": "string", + "description": "What's you want to find on the website returned by search. If you need more details, request it in here. Examples: 'What is latest news about deepmind?', 'What is the main idea of this article?'" + }, + "region": { + "type": "string", + "description": "The region code of the search, default to `en-US`. Available regions: `en-US`, `zh-CN`, `ja-JP`, `de-DE`, `fr-FR`, `en-GB`." } }, "required": [ - "query" + "search_query", + "goals_to_browse" ] } }, + { + "name": "FileSystemEnv_modify_file", + "description": "Modify the textual file lines in slice [start_index:end_index] based on `new_content` provided. Return content of the file after modification so no further need to call `read_from_file`.\nfilepath_content_lines[start_index:end_index] = new_content\n\nExample:\n```\nIn[0]: modify_file('test.txt', 'Hello World!') # This will insert a new line `Hello World!` at the end of the file `test.txt`.\nIn[1]: modify_file('test.txt', 'Hello World!', 0) # This will insert a new line `Hello World!` at the begin of the file `test.txt`.\nIn[2]: modify_file('test.txt', 'Hello World!', 0, 1) # This will replace the first line of the file `test.txt` with `Hello World!`. \n```", + "parameters": { + "type": "object", + "properties": { + "filepath": { + "type": "string", + "description": "The path to the file to be modified, always use relative path to the workspace root." + }, + "new_content": { + "type": "string", + "description": "The new content to be replaced with the old content." + }, + "start_index": { + "type": "integer", + "description": "The start position in slice to modified file lines. Defaults to `None`, which means insert the new content at the end of the file. So do not provide this if you want to append the new content to the file." + }, + "end_index": { + "type": "integer", + "description": "The end posistion in slice to modified file lines. Defaults to the value of `start_index`, which means if `start_index` provided, insert the new content at the `start_index` line." + } + }, + "required": [ + "filepath", + "new_content" + ] + } + }, + { + "name": "FileSystemEnv_print_filesys_struture", + "description": "Return a tree-like structure for all files and folders in the workspace. Use this tool if you are not sure what files are in the workspace.\nThis function recursively walks through all the directories in the workspace\nand return them in a tree-like structure, \ndisplaying all the files under each directory.\n\nExample:\n```\n- root/\n - sub_directory1/\n - file1.txt\n - file2.txt\n - sub_directory2/\n - file3.txt\n```", + "parameters": { + "type": "object", + "properties": {}, + "required": [] + } + }, + { + "name": "FileSystemEnv_read_from_file", + "description": "Open and read the textual file content in the workspace, you will see the content of the target file.\nDon't use this if the give `filepath` is writen or modified before, the content in `filepath` should be already returned.", + "parameters": { + "type": "object", + "properties": { + "filepath": { + "type": "string", + "description": "The path to the file to be opened, always use relative path to the workspace root." + }, + "start_index": { + "type": "integer", + "description": "The starting line number of the content to be opened. Defaults to 0." + } + }, + "required": [ + "filepath" + ] + } + }, + { + "name": "FileSystemEnv_write_to_file", + "description": "Write the textual file in the workspace with the content provided. \nWill automatically create the file if it does not exist. Also overwrite the file content if it already exists. If you want to append content to the file, use `modify_file` instead.\nBetter check if the file exists before directly writing to it. \nReturn content of the file after writing.", + "parameters": { + "type": "object", + "properties": { + "filepath": { + "type": "string", + "description": "The path to the file to be saved, always use relative path to the workspace root." + }, + "content": { + "type": "string", + "description": "The content to be saved." + } + }, + "required": [ + "filepath", + "content" + ] + } + }, + { + "name": "shell_command_executor", + "description": "The shell tool that execute shell command in root privilege, return the output and error. \nYou can use this tool to install packages, download files, run programs, etc.\nSet run_async=True to run the command in a new thread and return instantly if your command is time costly like install packages, host services. \nExample:\n```\nIn: shell_command_executor(command='echo \"hello world\"')\nOut: \"hello world\"\nIn: shell_command_executor(command='sleep 10', run_async=True)\nOut: {'shell_id': 0} # You can use this id to read the output and error later.\nIn: shell_command_executor(shell_id=0, kill=True)\nOut: \"\" # The shell 0 will be killed.\n```", + "parameters": { + "type": "object", + "properties": { + "command": { + "type": "string", + "description": "The shell command to be executed, must avoid command requiring additional user input. Default is empty string." + }, + "run_async": { + "type": "boolean", + "description": "Whether to run the command asynchronously, default is False. If True, call this tool again with shell_id to get the final output and error." + }, + "shell_id": { + "type": "integer", + "description": "The id of shell to execute command, default is None, which means running in a new shell. Change this to execute command in the same shell." + }, + "kill": { + "type": "boolean", + "description": "If True, kill the shell which runs the command after execution. Default is False. Don't use any other kill command!" + } + }, + "required": [] + } + }, { "name": "submit_task", "description": "Submit your conclusion to the task", diff --git a/agentverse_command/main_tasksolving_cli.py b/agentverse_command/main_tasksolving_cli.py index 2382adf90..8e66fc9ae 100644 --- a/agentverse_command/main_tasksolving_cli.py +++ b/agentverse_command/main_tasksolving_cli.py @@ -3,7 +3,8 @@ # from agentverse.agentverse import AgentVerse from agentverse.tasksolving import TaskSolving -from agentverse.gui import GUI + +# from agentverse.gui import GUI from agentverse.logging import logger from argparse import ArgumentParser diff --git a/requirements.txt b/requirements.txt index e93df8d9f..adaa4834c 100644 --- a/requirements.txt +++ b/requirements.txt @@ -18,3 +18,4 @@ rapidfuzz spacy colorama==0.4.6 fschat[model_worker,webui] +tiktoken==0.5.1 From 81a964cb4d5c9d387cfa8716fa189f5f3a74e7c8 Mon Sep 17 00:00:00 2001 From: chenweize1998 Date: Fri, 27 Oct 2023 22:40:09 +0800 Subject: [PATCH 078/101] doc: update readme on multi-agent tool using. --- README.md | 56 +++++++++++++++++++++++------------- agentverse/initialization.py | 5 ++-- 2 files changed, 39 insertions(+), 22 deletions(-) diff --git a/README.md b/README.md index 5ee8b3adc..55b1eef04 100644 --- a/README.md +++ b/README.md @@ -25,7 +25,7 @@
HuggingFace - + Discord @@ -201,13 +201,24 @@ https://github.com/OpenBMB/AgentVerse/assets/11704492/4d07da68-f942-4205-b558-f1 - [Contents](#contents) - [🚀 Getting Started](#-getting-started) - [Installation](#installation) - - [Simulation CLI Example](#simulation) - - [Task-Solving CLI Example](#task-solving) + - [Environment Variables](#environment-variables) + - [Simulation](#simulation) + - [Framework Required Modules](#framework-required-modules) + - [CLI Example](#cli-example) + - [GUI Example (Local)](#gui-example-local) + - [Task-Solving](#task-solving) + - [Framework Required Modules](#framework-required-modules-1) + - [CLI Example](#cli-example-1) +- [AgentVerse Showcases](#agentverse-showcases) + - [Simulation Showcases](#simulation-showcases) + - [Task-Solving Showcases](#task-solving-showcases) - [🌟 Join Us!](#-join-us) + - [Leaders](#leaders) + - [Contributors](#contributors) - [How Can You Contribute?](#how-can-you-contribute) -- [Social Media and Community](#social-media-and-community) + - [Social Media and Community](#social-media-and-community) - [Star History](#star-history) -- [Citation](#citation) + - [Citation](#citation) - [Contact](#contact) @@ -232,14 +243,11 @@ Or you can install through pip pip install -U agentverse ``` - -You also need to export your OpenAI API key as follows: +## Environment Variables +You need to export your OpenAI API key as follows: ```bash # Export your OpenAI API key export OPENAI_API_KEY="your_api_key_here" -# Or if you are using Azure -export AZURE_OPENAI_API_KEY="your_api_key_here" -export AZURE_OPENAI_API_BASE="your_api_base_here" ``` If you want use Azure OpenAI services, pleas export your Azure OpenAI key and OpenAI API base as follows: @@ -248,14 +256,6 @@ export AZURE_OPENAI_API_KEY="your_api_key_here" export AZURE_OPENAI_API_BASE="your_api_base_here" ``` -If you want to use the tools provided by BMTools, you need to install BMTools as follows: -```bash -git clone git+https://github.com/OpenBMB/BMTools.git -cd BMTools -pip install -r requirements.txt -python setup.py develop -``` - ## Simulation ### Framework Required Modules @@ -284,6 +284,14 @@ agentverse-simulation-gui --task simulation/nlp_classroom_9players ``` After successfully launching the local server, you can visit [http://127.0.0.1:7860/](http://127.0.0.1:7860/) to view the classroom environment. +If you want to run the simulation cases with tools (e.g., simulation/nlp_classroom_3players_withtool), you need to install BMTools as follows: +```bash +git clone git+https://github.com/OpenBMB/BMTools.git +cd BMTools +pip install -r requirements.txt +python setup.py develop +``` +This is optional. If you do not install BMTools, the simulation cases without tools can still run normally. ## Task-Solving @@ -313,7 +321,15 @@ To run AgentVerse on a specific problem, you can try agentverse-tasksolving --task tasksolving/brainstorming ``` -You can take a look at `agentverse/tasks/tasksolving` for more experiments we have done in our paper. +To run the tool using cases presented in our paper, i.e., multi-agent using tools such as web browser, Jupyter notebook, bing search, etc., you can first build ToolsServer provided by [XAgent](https://github.com/OpenBMB/XAgent). You can follow their [instruction](https://github.com/OpenBMB/XAgent#%EF%B8%8F-build-and-setup-toolserver) to build and run the ToolServer. + +After building and launching the ToolServer, you can use the following command to run the task-solving cases with tools: +```shell +agentverse-tasksolving --task tasksolving/tool_using/24point +``` +We have provided more tasks in `agentverse/tasks/tasksolving/tool_using/` that show how multi-agent can use tools to solve problems. + +Also, you can take a look at `agentverse/tasks/tasksolving` for more experiments we have done in our paper. # AgentVerse Showcases @@ -499,7 +515,7 @@ Also, if you're passionate about advancing the frontiers of multi-agent applicat - Twitter: https://twitter.com/Agentverse71134 -- Discord: https://discord.gg/MjG3vzaT. +- Discord: https://discord.gg/QyAmgpw2. - Hugging Face: https://huggingface.co/spaces/AgentVerse/agentVerse. diff --git a/agentverse/initialization.py b/agentverse/initialization.py index 13ef54e77..721bfe526 100644 --- a/agentverse/initialization.py +++ b/agentverse/initialization.py @@ -4,12 +4,13 @@ from typing import Dict, List, TYPE_CHECKING import yaml +from agentverse.logging import logger try: from bmtools.agent.singletool import import_all_apis, load_single_tools except: - print( - "BMTools is not installed, tools in the simulation environment cannot be used. To install BMTools, please follow the instruction in the README.md file." + logger.warn( + "BMTools is not installed, tools in the simulation environment cannot be used. To install BMTools, please follow the instruction in the README.md file. If you aren't running a *simulation* case with tool, you can ignore this warning." ) from agentverse.llms import llm_registry From 8ad97cbf7cbb6bd505d85adedaad0d209cb68724 Mon Sep 17 00:00:00 2001 From: chenweize1998 Date: Mon, 30 Oct 2023 19:27:41 +0800 Subject: [PATCH 079/101] doc: update installation and dependency --- README.md | 11 +++++++++-- agentverse/llms/utils/token_counter.py | 2 +- requirements.txt | 3 +-- requirements_local.txt | 1 + setup.py | 6 ++++++ 5 files changed, 18 insertions(+), 5 deletions(-) create mode 100644 requirements_local.txt diff --git a/README.md b/README.md index 55b1eef04..78061ecce 100644 --- a/README.md +++ b/README.md @@ -228,13 +228,20 @@ https://github.com/OpenBMB/AgentVerse/assets/11704492/4d07da68-f942-4205-b558-f1 ## Installation + **Manually Install (Recommended!)** + +**Make sure you have Python >= 3.9** ```bash git clone https://github.com/OpenBMB/AgentVerse.git --depth 1 cd AgentVerse -python setup.py develop +pip install -e . +``` + +If you want to use AgentVerse with local models such as LLaMA, you need to additionally install some other dependencies: +```bash +pip install -r requirements_local.txt ``` -Some users have reported problems installing the `orjson` required by `gradio`. One simple workaround is to install it with Anaconda `conda install -c conda-forge orjson`. **Install with pip** diff --git a/agentverse/llms/utils/token_counter.py b/agentverse/llms/utils/token_counter.py index cdff86ad9..8c35b16a3 100644 --- a/agentverse/llms/utils/token_counter.py +++ b/agentverse/llms/utils/token_counter.py @@ -5,7 +5,6 @@ from agentverse.logging import logger from agentverse.message import Message from agentverse.llms import LOCAL_LLMS -from transformers import AutoTokenizer def count_string_tokens(prompt: str = "", model: str = "gpt-3.5-turbo") -> int: @@ -29,6 +28,7 @@ def count_message_tokens( tokens_per_name = 1 encoding_model = "gpt-4" elif model in LOCAL_LLMS: + from transformers import AutoTokenizer encoding = AutoTokenizer.from_pretrained(model) else: raise NotImplementedError( diff --git a/requirements.txt b/requirements.txt index adaa4834c..0a93efec9 100644 --- a/requirements.txt +++ b/requirements.txt @@ -2,7 +2,7 @@ pyyaml fastapi==0.95.1 uvicorn py3langid -iso-639 +setuptools-scm openai==0.27.8 opencv-python==4.8.0.76 gradio @@ -17,5 +17,4 @@ colorlog rapidfuzz spacy colorama==0.4.6 -fschat[model_worker,webui] tiktoken==0.5.1 diff --git a/requirements_local.txt b/requirements_local.txt new file mode 100644 index 000000000..1acb9614e --- /dev/null +++ b/requirements_local.txt @@ -0,0 +1 @@ +fschat[model_worker,webui] diff --git a/setup.py b/setup.py index 49034aae3..896c1e483 100644 --- a/setup.py +++ b/setup.py @@ -5,6 +5,9 @@ with open("requirements.txt", "r") as f: requirements = f.read().splitlines() +with open("requirements_local.txt", "r") as f: + requirements_local = f.read().splitlines() + with open("README.md", "r", encoding='utf8') as fh: long_description = fh.read() @@ -38,6 +41,9 @@ # "langchain", # ], install_requires=requirements, + extras_require={ + 'local': requirements_local + }, include_package_data = True, entry_points={ "console_scripts": [ From 067aae4160f6c397472d2cd23b3aa508b711f027 Mon Sep 17 00:00:00 2001 From: chenweize1998 Date: Tue, 31 Oct 2023 12:58:11 +0800 Subject: [PATCH 080/101] fix: remove debugging code. [ci skip] --- agentverse/memory/chat_history.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/agentverse/memory/chat_history.py b/agentverse/memory/chat_history.py index e4bc508a6..9d07b18ce 100644 --- a/agentverse/memory/chat_history.py +++ b/agentverse/memory/chat_history.py @@ -117,9 +117,6 @@ async def to_messages( prompt, messages, max_send_token, model ) if trimmed_history: - import pdb - - pdb.set_trace() new_summary_msg, _ = await self.trim_messages( list(prompt), model, messages ) From b0eeeea7a3c655e517d236c12c0381c03f35ced6 Mon Sep 17 00:00:00 2001 From: chenweize1998 Date: Tue, 7 Nov 2023 11:00:17 +0800 Subject: [PATCH 081/101] fix: update outdated configs and fix logging #95 --- agentverse/agents/base.py | 3 +- .../simulation_agent/prisoner_dilemma.py | 14 +++---- agentverse/agents/simulation_agent/tool.py | 19 ++++----- .../environments/simulation_env/pokemon.py | 4 +- .../simulation_env/rules/order/classroom.py | 4 +- .../environments/simulation_env/sde_team.py | 3 +- .../simulation_env/sde_team_given_tests.py | 4 +- agentverse/llms/openai.py | 6 +-- agentverse/output_parser/output_parser.py | 39 +++++++++++++------ .../math_problem_2players_tools/config.yaml | 8 ++-- .../config.yaml | 13 +++---- .../nlp_classroom_9players_group/config.yaml | 22 +++++------ agentverse/utils/prompts.py | 4 +- 13 files changed, 80 insertions(+), 63 deletions(-) diff --git a/agentverse/agents/base.py b/agentverse/agents/base.py index 1cc2cbb49..e17b94a50 100644 --- a/agentverse/agents/base.py +++ b/agentverse/agents/base.py @@ -6,6 +6,7 @@ from pydantic import BaseModel, Field from agentverse.llms import BaseLLM +from agentverse.logging import logger from agentverse.llms.utils import count_string_tokens from agentverse.memory import BaseMemory, ChatHistoryMemory from agentverse.message import Message @@ -106,7 +107,7 @@ def remove_receiver(self, receiver: Union[Set[str], str]) -> None: try: self.receiver.remove(receiver) except KeyError as e: - logging.warning(f"Receiver {receiver} not found.") + logger.warn(f"Receiver {receiver} not found.") elif isinstance(receiver, set): self.receiver = self.receiver.difference(receiver) else: diff --git a/agentverse/agents/simulation_agent/prisoner_dilemma.py b/agentverse/agents/simulation_agent/prisoner_dilemma.py index bf257c168..5a8674222 100644 --- a/agentverse/agents/simulation_agent/prisoner_dilemma.py +++ b/agentverse/agents/simulation_agent/prisoner_dilemma.py @@ -1,10 +1,10 @@ from __future__ import annotations -import logging from string import Template from typing import TYPE_CHECKING, List from agentverse.message import Message +from agentverse.logging import logger # from . import agent_registry # from .base import BaseAgent @@ -30,12 +30,12 @@ def step( parsed_response = self.output_parser.parse(self, environment, response) break except Exception as e: - logging.error(e) - logging.warning("Retrying...") + logger.error(e) + logger.warn("Retrying...") continue if parsed_response is None: - logging.error(f"{self.name} failed to generate valid response.") + logger.error(f"{self.name} failed to generate valid response.") message = Message( content="" @@ -59,12 +59,12 @@ async def astep( parsed_response = self.output_parser.parse(self, environment, response) break except Exception as e: - logging.error(e) - logging.warning("Retrying...") + logger.error(e) + logger.warn("Retrying...") continue if parsed_response is None: - logging.error(f"{self.name} failed to generate valid response.") + logger.error(f"{self.name} failed to generate valid response.") message = Message( content="" diff --git a/agentverse/agents/simulation_agent/tool.py b/agentverse/agents/simulation_agent/tool.py index 6833a22a1..4bb0e7181 100644 --- a/agentverse/agents/simulation_agent/tool.py +++ b/agentverse/agents/simulation_agent/tool.py @@ -1,4 +1,3 @@ -import logging from string import Template from typing import List, NamedTuple, Optional, Union @@ -9,13 +8,15 @@ from agentverse.memory import BaseMemory, ChatHistoryMemory from agentverse.message import Message from agentverse.utils import AgentAction, AgentFinish +from agentverse.logging import logger -#from . import agent_registry -#from .base import BaseAgent +# from . import agent_registry +# from .base import BaseAgent from agentverse.agents import agent_registry from agentverse.agents.base import BaseAgent + class ToolNotExistError(BaseException): """Exception raised when parsing output from a command fails.""" @@ -50,14 +51,14 @@ def step(self, env_description: str = "") -> Message: ) break except BaseException as e: - logging.error(e) - logging.warning("Retrying...") + logger.error(e) + logger.warn("Retrying...") continue if parsed_response is None or isinstance(parsed_response, AgentFinish): break if parsed_response is None: - logging.error(f"{self.name} failed to generate valid response.") + logger.error(f"{self.name} failed to generate valid response.") self._update_tool_memory(tool_observation) @@ -92,14 +93,14 @@ async def astep(self, env_description: str = "") -> Message: ) break except BaseException as e: - logging.error(e) - logging.warning("Retrying...") + logger.error(e) + logger.warn("Retrying...") continue if parsed_response is None or isinstance(parsed_response, AgentFinish): break if parsed_response is None: - logging.error(f"{self.name} failed to generate valid response.") + logger.error(f"{self.name} failed to generate valid response.") self._update_tool_memory(tool_observation) diff --git a/agentverse/environments/simulation_env/pokemon.py b/agentverse/environments/simulation_env/pokemon.py index d62b32cf6..bec9684ae 100644 --- a/agentverse/environments/simulation_env/pokemon.py +++ b/agentverse/environments/simulation_env/pokemon.py @@ -1,10 +1,10 @@ import asyncio import datetime -import logging from typing import Any, Dict, List, Optional, Set # from agentverse.agents.agent import Agent from agentverse.agents.simulation_agent.conversation import BaseAgent +from agentverse.logging import logger # from agentverse.environments.simulation_env.rules.base import Rule from agentverse.environments.simulation_env.rules.base import SimulationRule as Rule @@ -167,7 +167,7 @@ def get_agent_to_location(self) -> Dict[str, str]: def print_messages(self, messages: List[Message]) -> None: for message in messages: if message is not None: - logging.info(f"{message.sender}: {message.content}") + logger.info(f"{message.sender}: {message.content}") def reset(self) -> None: """Reset the environment""" diff --git a/agentverse/environments/simulation_env/rules/order/classroom.py b/agentverse/environments/simulation_env/rules/order/classroom.py index dba459bee..1e2321a03 100644 --- a/agentverse/environments/simulation_env/rules/order/classroom.py +++ b/agentverse/environments/simulation_env/rules/order/classroom.py @@ -1,11 +1,11 @@ from __future__ import annotations -import logging import re from typing import TYPE_CHECKING, Any, List, Optional from . import order_registry as OrderRegistry from .base import BaseOrder +from agentverse.logging import logger if TYPE_CHECKING: from agentverse.environments import BaseEnvironment @@ -75,7 +75,7 @@ def get_next_agent_idx_grouped(self, environment: BaseEnvironment) -> List[int]: # `groups` should be set in the corresponding `visibility`, # and `group_speaker_mapping` should be maintained here. if "groups" not in environment.rule_params: - logging.warning( + logger.warn( "The environment is grouped, but the grouping information is not provided." ) groups = environment.rule_params.get( diff --git a/agentverse/environments/simulation_env/sde_team.py b/agentverse/environments/simulation_env/sde_team.py index 325c1eac0..474f979bb 100644 --- a/agentverse/environments/simulation_env/sde_team.py +++ b/agentverse/environments/simulation_env/sde_team.py @@ -4,6 +4,7 @@ import json from agentverse.agents.simulation_agent.conversation import BaseAgent +from agentverse.logging import logger # from agentverse.environments.simulation_env.rules.base import Rule from agentverse.environments.simulation_env.rules.base import SimulationRule as Rule @@ -116,7 +117,7 @@ async def step(self) -> List[Message]: def print_messages(self, messages: List[Message]) -> None: for message in messages: if message is not None: - logging.info(f"{message.sender}: {message.content}") + logger.info(f"{message.sender}: {message.content}") def reset(self) -> None: """Reset the environment""" diff --git a/agentverse/environments/simulation_env/sde_team_given_tests.py b/agentverse/environments/simulation_env/sde_team_given_tests.py index fdef4a863..b60a6ed65 100644 --- a/agentverse/environments/simulation_env/sde_team_given_tests.py +++ b/agentverse/environments/simulation_env/sde_team_given_tests.py @@ -1,5 +1,4 @@ import asyncio -import logging from typing import Any, Dict, List import json @@ -8,6 +7,7 @@ # from agentverse.environments.simulation_env.rules.base import Rule from agentverse.environments.simulation_env.rules.base import SimulationRule as Rule from agentverse.message import Message +from agentverse.logging import logger from .. import env_registry as EnvironmentRegistry from ..base import BaseEnvironment @@ -104,7 +104,7 @@ async def step(self) -> List[Message]: def print_messages(self, messages: List[Message]) -> None: for message in messages: if message is not None: - logging.info(f"{message.sender}: {message.content}") + logger.info(f"{message.sender}: {message.content}") def reset(self) -> None: """Reset the environment""" diff --git a/agentverse/llms/openai.py b/agentverse/llms/openai.py index 1331d9155..72669fc59 100644 --- a/agentverse/llms/openai.py +++ b/agentverse/llms/openai.py @@ -22,7 +22,7 @@ from openai.error import OpenAIError except ImportError: is_openai_available = False - logging.warning("openai package is not installed") + logger.warn("openai package is not installed") else: # openai.proxy = os.environ.get("http_proxy") # if openai.proxy is None: @@ -37,7 +37,7 @@ openai.api_version = "2023-05-15" is_openai_available = True else: - logging.warning( + logger.warn( "OpenAI API key is not set. Please set the environment variable OPENAI_API_KEY" ) is_openai_available = False @@ -110,7 +110,7 @@ def __init__(self, max_retry: int = 3, **kwargs): for k, v in args.items(): args[k] = kwargs.pop(k, v) if len(kwargs) > 0: - logging.warning(f"Unused arguments: {kwargs}") + logger.warn(f"Unused arguments: {kwargs}") if args["model"] in LOCAL_LLMS: openai.api_base = "http://localhost:5000/v1" super().__init__(args=args, max_retry=max_retry) diff --git a/agentverse/output_parser/output_parser.py b/agentverse/output_parser/output_parser.py index 556d9ff6e..59cc47947 100644 --- a/agentverse/output_parser/output_parser.py +++ b/agentverse/output_parser/output_parser.py @@ -18,6 +18,7 @@ from agentverse.agents.base import BaseAgent from agentverse.environments.base import BaseEnvironment + class OutputParserError(Exception): """Exception raised when parsing output from a command fails.""" @@ -157,24 +158,38 @@ def parse(self, output: LLMResult) -> Union[AgentAction, AgentFinish]: class NlpClassroom9PlayersGroupParser(OutputParser): def parse(self, output: LLMResult) -> Union[AgentAction, AgentFinish]: text = output.content - cleaned_output = text.strip() - cleaned_output = re.sub(r"\n+", "\n", cleaned_output) - cleaned_output = cleaned_output.split("\n") - if not ( - len(cleaned_output) == 2 - and cleaned_output[0].startswith("Action:") - and cleaned_output[1].startswith("Action Input:") - ): + # cleaned_output = text.strip() + # cleaned_output = re.sub(r"\n+", "\n", cleaned_output) + # cleaned_output = cleaned_output.split("\n") + # if not ( + # len(cleaned_output) == 2 + # and cleaned_output[0].startswith("Action:") + # and cleaned_output[1].startswith("Action Input:") + # ): + # raise OutputParserError(text) + # action = cleaned_output[0][len("Action:") :].strip() + # action_input = cleaned_output[1][len("Action Input:") :].strip() + action_result = re.findall(r"Action:(.+)", text) + result = re.findall(r"Action:(.+?)Action Input:(.+)", text, re.DOTALL) + if len(action_result) == 0: raise OutputParserError(text) - action = cleaned_output[0][len("Action:") :].strip() - action_input = cleaned_output[1][len("Action Input:") :].strip() + + action = action_result[0].strip() + if action not in ["Listen", "RaiseHand"]: + if len(result) == 0: + raise OutputParserError(text) + action_input = result[0][1].strip() + if action == "RaiseHand": + action_input = "" + if action == "Speak": return AgentFinish({"output": action_input}, text) - elif action in ["CallOn", "RaiseHand", "GroupDiscuss"]: + elif action in ["CallOn", "GroupDiscuss", "RaiseHand"]: return AgentFinish({"output": f"[{action}] {action_input}"}, text) - elif action == "Listen": + elif action in ["Listen"]: return AgentFinish({"output": ""}, text) else: + action_input = result[0][1].strip() return AgentAction(action, action_input, text) diff --git a/agentverse/tasks/simulation/math_problem_2players_tools/config.yaml b/agentverse/tasks/simulation/math_problem_2players_tools/config.yaml index 6e154b9d2..0bc9e29ab 100644 --- a/agentverse/tasks/simulation/math_problem_2players_tools/config.yaml +++ b/agentverse/tasks/simulation/math_problem_2players_tools/config.yaml @@ -94,8 +94,8 @@ agents: prompt_template: *prompt verbose: true llm: - llm_type: text-davinci-003 - model: text-davinci-003 + llm_type: gpt-4 + model: gpt-4 temperature: 0.7 max_tokens: 250 output_parser: @@ -110,8 +110,8 @@ agents: prompt_template: *prompt verbose: true llm: - llm_type: text-davinci-003 - model: text-davinci-003 + llm_type: gpt-4 + model: gpt-4 temperature: 0.7 max_tokens: 250 output_parser: diff --git a/agentverse/tasks/simulation/nlp_classroom_3players_withtool/config.yaml b/agentverse/tasks/simulation/nlp_classroom_3players_withtool/config.yaml index 336c7e25e..762085b9a 100644 --- a/agentverse/tasks/simulation/nlp_classroom_3players_withtool/config.yaml +++ b/agentverse/tasks/simulation/nlp_classroom_3players_withtool/config.yaml @@ -155,9 +155,8 @@ agents: 5. Provide an envision towards the future development of neural networks. Your goal is to ensure that the students understand the material, so it's important to speak slowly and clearly. You don't necessarily have to strictly follow the course outline when teaching, you can also talk about some other relevant topics. Remember, in each round of conversation, your response should only address one topic at most. Please take your time and don't rush through the content. prompt_template: *professor_prompt - llm: - llm_type: text-davinci-003 - model: text-davinci-003 + ll gpt-4 + model: gpt-4 temperature: 0.7 max_tokens: 250 output_parser: @@ -180,8 +179,8 @@ agents: prompt_template: *summary_prompt recursive: true llm: - llm_type: text-davinci-003 - model: text-davinci-003 + llm_type: gpt-4 + model: gpt-4 temperature: 0.7 max_tokens: 100 output_parser: @@ -203,8 +202,8 @@ agents: prompt_template: *summary_prompt recursive: true llm: - llm_type: text-davinci-003 - model: text-davinci-003 + llm_type: gpt-4 + model: gpt-4 temperature: 0.7 max_tokens: 100 output_parser: diff --git a/agentverse/tasks/simulation/nlp_classroom_9players_group/config.yaml b/agentverse/tasks/simulation/nlp_classroom_9players_group/config.yaml index b8d9d0319..89d840dfd 100644 --- a/agentverse/tasks/simulation/nlp_classroom_9players_group/config.yaml +++ b/agentverse/tasks/simulation/nlp_classroom_9players_group/config.yaml @@ -43,11 +43,11 @@ prompts: - During class, it's recommended that you listen to the professor by responding: Action: Listen - Action Input: None + Action Input: listen - If you have a question that you think it's worth discussing in class, you should first raise your hand using the following format to let the professor notice you: Action: RaiseHand - Action Input: None + Action Input: raise hand if the professor does call on your name, you MUST speak or ask a question, and use the following format: Action: Speak @@ -115,7 +115,7 @@ agents: When teaching, it's not necessary to strictly adhere to the course outline. You can also incorporate other relevant topics into your lectures. It's important to take your time and not rush through the content, explaining each topic carefully and ensuring that your students fully grasp the material. prompt_template: *professor_prompt llm: - llm_type: text-davinci-003 + llm_type: gpt-4 temperature: 0.7 max_tokens: 250 output_parser: @@ -130,7 +130,7 @@ agents: memory: memory_type: chat_history llm: - llm_type: text-davinci-003 + llm_type: gpt-4 temperature: 0.7 max_tokens: 100 output_parser: @@ -143,7 +143,7 @@ agents: memory: memory_type: chat_history llm: - llm_type: text-davinci-003 + llm_type: gpt-4 temperature: 0.7 max_tokens: 100 output_parser: @@ -156,7 +156,7 @@ agents: memory: memory_type: chat_history llm: - llm_type: text-davinci-003 + llm_type: gpt-4 temperature: 0.7 max_tokens: 100 output_parser: @@ -169,7 +169,7 @@ agents: memory: memory_type: chat_history llm: - llm_type: text-davinci-003 + llm_type: gpt-4 temperature: 0.7 max_tokens: 100 output_parser: @@ -182,7 +182,7 @@ agents: memory: memory_type: chat_history llm: - llm_type: text-davinci-003 + llm_type: gpt-4 temperature: 0.7 max_tokens: 100 output_parser: @@ -195,7 +195,7 @@ agents: memory: memory_type: chat_history llm: - llm_type: text-davinci-003 + llm_type: gpt-4 temperature: 0.7 max_tokens: 100 output_parser: @@ -208,7 +208,7 @@ agents: memory: memory_type: chat_history llm: - llm_type: text-davinci-003 + llm_type: gpt-4 temperature: 0.7 max_tokens: 100 output_parser: @@ -221,7 +221,7 @@ agents: memory: memory_type: chat_history llm: - llm_type: text-davinci-003 + llm_type: gpt-4 temperature: 0.7 max_tokens: 100 output_parser: diff --git a/agentverse/utils/prompts.py b/agentverse/utils/prompts.py index e9824ecbc..e7be8aa8f 100644 --- a/agentverse/utils/prompts.py +++ b/agentverse/utils/prompts.py @@ -1,6 +1,6 @@ import json import os -import logging +from agentverse.logging import logger base_prompt = { @@ -208,5 +208,5 @@ def load_prompt(file_dir, file_name="prompts.json", key=None): prompt = base_prompt.get(key, "") if prompt == "": - logging.warning(f"No prompt of {key} has been found") + logger.warn(f"No prompt of {key} has been found") return prompt From 42e579960df811daf854f9a4d401a1f29ffcf45c Mon Sep 17 00:00:00 2001 From: chenweize1998 Date: Tue, 7 Nov 2023 15:48:13 +0800 Subject: [PATCH 082/101] fix: some bugs in config file --- .../simulation/nlp_classroom_3players_withtool/config.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/agentverse/tasks/simulation/nlp_classroom_3players_withtool/config.yaml b/agentverse/tasks/simulation/nlp_classroom_3players_withtool/config.yaml index 762085b9a..6babc1ed8 100644 --- a/agentverse/tasks/simulation/nlp_classroom_3players_withtool/config.yaml +++ b/agentverse/tasks/simulation/nlp_classroom_3players_withtool/config.yaml @@ -155,7 +155,8 @@ agents: 5. Provide an envision towards the future development of neural networks. Your goal is to ensure that the students understand the material, so it's important to speak slowly and clearly. You don't necessarily have to strictly follow the course outline when teaching, you can also talk about some other relevant topics. Remember, in each round of conversation, your response should only address one topic at most. Please take your time and don't rush through the content. prompt_template: *professor_prompt - ll gpt-4 + llm: + llm_type: gpt-4 model: gpt-4 temperature: 0.7 max_tokens: 250 From 38cc5731a71290f7f9876766801d7cc8136a1732 Mon Sep 17 00:00:00 2001 From: chenweize1998 Date: Tue, 7 Nov 2023 16:23:44 +0800 Subject: [PATCH 083/101] feat: improve local model support and doc #96 --- README.md | 35 +++++++++++++++++-- agentverse/llms/__init__.py | 15 +++++++- agentverse/llms/openai.py | 2 +- agentverse/llms/utils/token_counter.py | 7 ++-- .../commongen/llama-2-7b-chat-hf/config.yaml | 20 +++++------ scripts/run_local_model_server.sh | 9 +++-- 6 files changed, 66 insertions(+), 22 deletions(-) diff --git a/README.md b/README.md index 78061ecce..a79477c91 100644 --- a/README.md +++ b/README.md @@ -205,10 +205,14 @@ https://github.com/OpenBMB/AgentVerse/assets/11704492/4d07da68-f942-4205-b558-f1 - [Simulation](#simulation) - [Framework Required Modules](#framework-required-modules) - [CLI Example](#cli-example) - - [GUI Example (Local)](#gui-example-local) + - [GUI Example](#gui-example) - [Task-Solving](#task-solving) - [Framework Required Modules](#framework-required-modules-1) - [CLI Example](#cli-example-1) + - [Local Model Support](#local-model-support) + - [1. Install the Additional Dependencies](#1-install-the-additional-dependencies) + - [2. Launch the Local Server](#2-launch-the-local-server) + - [3. Modify the Config File](#3-modify-the-config-file) - [AgentVerse Showcases](#agentverse-showcases) - [Simulation Showcases](#simulation-showcases) - [Task-Solving Showcases](#task-solving-showcases) @@ -282,7 +286,7 @@ You can create a multi-agent environments provided by us. Using the classroom sc agentverse-simulation --task simulation/nlp_classroom_9players ``` -### GUI Example (Local) +### GUI Example We also provide a local website demo for this environment. You can launch it with @@ -338,6 +342,33 @@ We have provided more tasks in `agentverse/tasks/tasksolving/tool_using/` that s Also, you can take a look at `agentverse/tasks/tasksolving` for more experiments we have done in our paper. +## Local Model Support +### 1. Install the Additional Dependencies +If you want to use local models such as LLaMA, you need to additionally install some other dependencies: +```bash +pip install -r requirements_local.txt +``` + +### 2. Launch the Local Server +Then modify the `MODEL_PATH` and `MODEL_NAME` according to your need to launch the local server with the following command: +```bash +bash scripts/run_local_model_server.sh +``` +The script will launch a service for Llama 7B chat model. +The `MODEL_NAME` in AgentVerse currently supports several models including `llama-2-7b-chat-hf`, `llama-2-13b-chat-hf`, `llama-2-70b-chat-hf`, `vicuna-7b-v1.5`, and `vicuna-13b-v1.5`. If you wish to integrate additional models that are [compatible with FastChat](https://github.com/lm-sys/FastChat/blob/main/docs/model_support.md), you need to: +1. Add the new `MODEL_NAME` into the `LOCAL_LLMS` within `agentverse/llms/__init__.py`. Furthermore, establish +2. Add the mapping from the new `MODEL_NAME` to its corresponding Huggingface identifier in the `LOCAL_LLMS_MAPPING` within the `agentverse/llms/__init__.py` file. + +### 3. Modify the Config File +In your config file, set the `llm_type` to `local` and `model` to the `MODEL_NAME`. For example +```yaml +llm: + llm_type: local + model: llama-2-7b-chat-hf + ... +``` + +You can refer to `agentverse/tasks/tasksolving/commongen/llama-2-7b-chat-hf/config.yaml` for a more detailed example. # AgentVerse Showcases diff --git a/agentverse/llms/__init__.py b/agentverse/llms/__init__.py index 0902d3116..b623e6234 100644 --- a/agentverse/llms/__init__.py +++ b/agentverse/llms/__init__.py @@ -1,7 +1,20 @@ from agentverse.registry import Registry llm_registry = Registry(name="LLMRegistry") -LOCAL_LLMS = ["llama-2-7b-chat-hf"] +LOCAL_LLMS = [ + "llama-2-7b-chat-hf", + "llama-2-13b-chat-hf", + "llama-2-70b-chat-hf", + "vicuna-7b-v1.5", + "vicuna-13b-v1.5", +] +LOCAL_LLMS_MAPPING = { + "llama-2-7b-chat-hf": "meta-llama/Llama-2-7b-chat-hf", + "llama-2-13b-chat-hf": "meta-llama/Llama-2-13b-chat-hf", + "llama-2-70b-chat-hf": "meta-llama/Llama-2-70b-chat-hf", + "vicuna-7b-v1.5": "lmsys/vicuna-7b-v1.5", + "vicuna-13b-v1.5": "lmsys/vicuna-13b-v1.5", +} from .base import BaseLLM, BaseChatModel, BaseCompletionModel, LLMResult from .openai import OpenAIChat diff --git a/agentverse/llms/openai.py b/agentverse/llms/openai.py index 72669fc59..700c826b5 100644 --- a/agentverse/llms/openai.py +++ b/agentverse/llms/openai.py @@ -97,7 +97,7 @@ class OpenAIChatArgs(BaseModelArgs): @llm_registry.register("gpt-35-turbo") @llm_registry.register("gpt-3.5-turbo") @llm_registry.register("gpt-4") -@llm_registry.register("llama-2-7b-chat-hf") +@llm_registry.register("local") class OpenAIChat(BaseChatModel): args: OpenAIChatArgs = Field(default_factory=OpenAIChatArgs) diff --git a/agentverse/llms/utils/token_counter.py b/agentverse/llms/utils/token_counter.py index 8c35b16a3..b594011b7 100644 --- a/agentverse/llms/utils/token_counter.py +++ b/agentverse/llms/utils/token_counter.py @@ -4,7 +4,7 @@ from typing import List, Union, Dict from agentverse.logging import logger from agentverse.message import Message -from agentverse.llms import LOCAL_LLMS +from agentverse.llms import LOCAL_LLMS, LOCAL_LLMS_MAPPING def count_string_tokens(prompt: str = "", model: str = "gpt-3.5-turbo") -> int: @@ -27,9 +27,10 @@ def count_message_tokens( tokens_per_message = 3 tokens_per_name = 1 encoding_model = "gpt-4" - elif model in LOCAL_LLMS: + elif model.lower() in LOCAL_LLMS or model in LOCAL_LLMS: from transformers import AutoTokenizer - encoding = AutoTokenizer.from_pretrained(model) + + encoding = AutoTokenizer.from_pretrained(LOCAL_LLMS_MAPPING[model.lower()]) else: raise NotImplementedError( f"count_message_tokens() is not implemented for model {model}.\n" diff --git a/agentverse/tasks/tasksolving/commongen/llama-2-7b-chat-hf/config.yaml b/agentverse/tasks/tasksolving/commongen/llama-2-7b-chat-hf/config.yaml index 8514b1004..5e3ff2ac5 100644 --- a/agentverse/tasks/tasksolving/commongen/llama-2-7b-chat-hf/config.yaml +++ b/agentverse/tasks/tasksolving/commongen/llama-2-7b-chat-hf/config.yaml @@ -96,8 +96,8 @@ agents: memory: memory_type: chat_history llm: - llm_type: llama-2-7b-chat-hf - model: "llama-2-7b-chat-hf" + llm_type: local + model: llama-2-7b-chat-hf temperature: 0 max_tokens: 512 output_parser: @@ -113,8 +113,8 @@ agents: memory: memory_type: chat_history llm: - llm_type: llama-2-7b-chat-hf - model: "llama-2-7b-chat-hf" + llm_type: local + model: llama-2-7b-chat-hf temperature: 0 max_tokens: 1024 output_parser: @@ -138,8 +138,8 @@ agents: memory: memory_type: chat_history llm: - llm_type: llama-2-7b-chat-hf - model: "llama-2-7b-chat-hf" + llm_type: local + model: llama-2-7b-chat-hf temperature: 0 max_tokens: 1024 output_parser: @@ -154,7 +154,7 @@ agents: memory: memory_type: chat_history llm: - llm_type: llama-2-7b-chat-hf + llm_type: local model: llama-2-7b-chat-hf temperature: 0 max_tokens: 1024 @@ -172,7 +172,7 @@ agents: memory: memory_type: chat_history llm: - llm_type: llama-2-7b-chat-hf + llm_type: local model: llama-2-7b-chat-hf temperature: 0.3 max_tokens: 1024 @@ -189,8 +189,8 @@ agents: memory: memory_type: chat_history llm: - llm_type: llama-2-7b-chat-hf - model: "llama-2-7b-chat-hf" + llm_type: local + model: llama-2-7b-chat-hf temperature: 0 max_tokens: 1024 output_parser: diff --git a/scripts/run_local_model_server.sh b/scripts/run_local_model_server.sh index 0d16fb901..2ea115506 100644 --- a/scripts/run_local_model_server.sh +++ b/scripts/run_local_model_server.sh @@ -1,9 +1,8 @@ -:< Date: Tue, 7 Nov 2023 20:42:55 -0500 Subject: [PATCH 084/101] doc: Update config.yaml typo [ci skip] --- agentverse/tasks/tasksolving/brainstorming/config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/agentverse/tasks/tasksolving/brainstorming/config.yaml b/agentverse/tasks/tasksolving/brainstorming/config.yaml index 82be06bcd..873e08a07 100644 --- a/agentverse/tasks/tasksolving/brainstorming/config.yaml +++ b/agentverse/tasks/tasksolving/brainstorming/config.yaml @@ -17,7 +17,7 @@ prompts: What experts will you recruit to better generate good ideas? Output format example: - 1. an electrical engineer specified in the filed of xxx + 1. an electrical engineer specified in the field of xxx 2. an economist who is good at xxx 3. a lawyer with a good knowledge of xxx ... From 2e59ccb77642f5facfb61dbee4f1cd4d74849d3f Mon Sep 17 00:00:00 2001 From: Ikko Eltociear Ashimine Date: Wed, 8 Nov 2023 10:43:37 +0900 Subject: [PATCH 085/101] doc: Fix typo in README.md (#90) [ci skip] --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index a79477c91..437f47016 100644 --- a/README.md +++ b/README.md @@ -64,7 +64,7 @@ Applications: software development system, consulting system, etc. - [2023/10/5] Re-factor our codebase to enable the deployment of both simulation and task-solving framework! We have placed the code for Minecraft example in the paper at the [`minecraft`](https://github.com/OpenBMB/AgentVerse/tree/minecraft) branch. Our tool-using example will soon be updated to the `main` branch. Stay tuned! -- [2023/8/22] We're excited to share our paper [AgentVerse: Facilitating Multi-Agent Collaboration and Exploring Emergent Behaviors in Agents](https://arxiv.org/abs/2308.10848) that illistrate the task-solving framework +- [2023/8/22] We're excited to share our paper [AgentVerse: Facilitating Multi-Agent Collaboration and Exploring Emergent Behaviors in Agents](https://arxiv.org/abs/2308.10848) that illustrate the task-solving framework in detail of AgentVerse. - [2023/6/5] We are thrilled to present an array of [demos](#-simple-demo-video), including [NLP Classroom](#nlp-classroom), [Prisoner Dilemma](#prisoner-dilemma), [Software Design](#software-design), [Database Administrator](#database-administrator-dba), and a simple [H5 Pokemon Game](#pokemon) that enables the interaction with the characters in Pokemon! Try out these demos and have fun! From d8825665c032295b51fa2b1d06d44e68b5453abd Mon Sep 17 00:00:00 2001 From: Ikko Eltociear Ashimine Date: Wed, 8 Nov 2023 10:43:54 +0900 Subject: [PATCH 086/101] doc: update README.md (#92) [ci skip] --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 437f47016..e21a03f25 100644 --- a/README.md +++ b/README.md @@ -261,7 +261,7 @@ You need to export your OpenAI API key as follows: export OPENAI_API_KEY="your_api_key_here" ``` -If you want use Azure OpenAI services, pleas export your Azure OpenAI key and OpenAI API base as follows: +If you want use Azure OpenAI services, please export your Azure OpenAI key and OpenAI API base as follows: ```bash export AZURE_OPENAI_API_KEY="your_api_key_here" export AZURE_OPENAI_API_BASE="your_api_base_here" From 255728309c8ed2f1ae3cdfbb6ba37defb3a8fc13 Mon Sep 17 00:00:00 2001 From: Weize Chen <32613237+chenweize1998@users.noreply.github.com> Date: Fri, 10 Nov 2023 12:46:33 +0800 Subject: [PATCH 087/101] doc: update README.md [ci skip] --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index e21a03f25..7f3112c87 100644 --- a/README.md +++ b/README.md @@ -25,7 +25,7 @@ HuggingFace - + Discord @@ -553,7 +553,7 @@ Also, if you're passionate about advancing the frontiers of multi-agent applicat - Twitter: https://twitter.com/Agentverse71134 -- Discord: https://discord.gg/QyAmgpw2. +- Discord: https://discord.gg/gDAXfjMw. - Hugging Face: https://huggingface.co/spaces/AgentVerse/agentVerse. From abacf5a55519bc3baa0adce008e96d48edd4f956 Mon Sep 17 00:00:00 2001 From: chenweize1998 Date: Sun, 12 Nov 2023 23:17:58 +0800 Subject: [PATCH 088/101] fix: encoding for local llm. #100 --- agentverse/llms/utils/token_counter.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/agentverse/llms/utils/token_counter.py b/agentverse/llms/utils/token_counter.py index b594011b7..94125ad73 100644 --- a/agentverse/llms/utils/token_counter.py +++ b/agentverse/llms/utils/token_counter.py @@ -8,7 +8,12 @@ def count_string_tokens(prompt: str = "", model: str = "gpt-3.5-turbo") -> int: - return len(tiktoken.encoding_for_model(model).encode(prompt)) + if model.startswith("gpt-3.5-turbo") or model.startswith("gpt-4"): + return len(tiktoken.encoding_for_model(model).encode(prompt)) + elif model.lower() in LOCAL_LLMS or model in LOCAL_LLMS: + from transformers import AutoTokenizer + encoding = AutoTokenizer.from_pretrained(LOCAL_LLMS_MAPPING[model.lower()]) + return len(encoding.encode(prompt)) def count_message_tokens( From ffc3d39d9989a8ef84a263c72e94aabca9b52cb3 Mon Sep 17 00:00:00 2001 From: Yusheng Su Date: Mon, 13 Nov 2023 01:20:38 +0400 Subject: [PATCH 089/101] Update README.md --- README.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 7f3112c87..f485f5c95 100644 --- a/README.md +++ b/README.md @@ -37,13 +37,17 @@

- 【English | Chinese】 + 【Paper】 +

+ +

+ 【English | Chinese

**AgentVerse** is designed to facilitate the deployment of multiple LLM-based agents in various applications. AgentVerse primarily provides two frameworks: **task-solving** and **simulation**. - Task-solving: This framework assembles multiple agents as an automatic multi-agent system ([AgentVerse-Tasksolving](https://arxiv.org/pdf/2308.10848.pdf), [Multi-agent as system](https://arxiv.org/abs/2309.02427)) to collaboratively accomplish the corresponding tasks. -Applications: software development system, consulting system, etc. +Applications: software development system, consulting system, etc.

Screen Shot 2023-09-01 at 12 08 57 PM From c16ee0a755cae66d11aef2d51bfedd5cccf82ae6 Mon Sep 17 00:00:00 2001 From: chenweize1998 Date: Mon, 13 Nov 2023 14:23:39 +0800 Subject: [PATCH 090/101] fix: local llm support #100 --- agentverse/llms/openai.py | 1 + scripts/run_local_model_server.sh | 10 +++++++--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/agentverse/llms/openai.py b/agentverse/llms/openai.py index 700c826b5..c119dcd80 100644 --- a/agentverse/llms/openai.py +++ b/agentverse/llms/openai.py @@ -113,6 +113,7 @@ def __init__(self, max_retry: int = 3, **kwargs): logger.warn(f"Unused arguments: {kwargs}") if args["model"] in LOCAL_LLMS: openai.api_base = "http://localhost:5000/v1" + openai.api_key = "EMPTY" super().__init__(args=args, max_retry=max_retry) @classmethod diff --git a/scripts/run_local_model_server.sh b/scripts/run_local_model_server.sh index 2ea115506..b4c2cfe73 100644 --- a/scripts/run_local_model_server.sh +++ b/scripts/run_local_model_server.sh @@ -3,8 +3,12 @@ # export CUDA_VISIBLE_DEVICES=0 MODEL_PATH="meta-llama/Llama-2-7b-chat-hf" # path_to_the_downloaded_model_dir MODEL_NAME="llama-2-7b-chat-hf" # name_of_the_model -python3 -m fastchat.serve.controller & \ +CONTROLLER_PORT=20002 +python3 -m fastchat.serve.controller --host 127.0.0.1 --port ${CONTROLLER_PORT} & \ python3 -m fastchat.serve.multi_model_worker \ --model-path ${MODEL_PATH} \ - --model-names ${MODEL_NAME} & \ -python3 -m fastchat.serve.openai_api_server --host localhost --port 5000 + --model-names ${MODEL_NAME} \ + --host 127.0.0.1 \ + --controller-address http://127.0.0.1:${CONTROLLER_PORT} \ + --worker-address http://127.0.0.1:21002 & \ +python3 -m fastchat.serve.openai_api_server --host 127.0.0.1 --port 5000 --controller-address http://127.0.0.1:${CONTROLLER_PORT} From d434c5a845491e40ff269a2a4cad60ec0b94b066 Mon Sep 17 00:00:00 2001 From: chenweize1998 Date: Wed, 15 Nov 2023 16:42:53 +0800 Subject: [PATCH 091/101] fix: output parser error in demo case [ci skip] --- agentverse/output_parser/output_parser.py | 33 ++++++++++++++++------- 1 file changed, 23 insertions(+), 10 deletions(-) diff --git a/agentverse/output_parser/output_parser.py b/agentverse/output_parser/output_parser.py index 59cc47947..980299292 100644 --- a/agentverse/output_parser/output_parser.py +++ b/agentverse/output_parser/output_parser.py @@ -131,17 +131,30 @@ def parse(self, output: LLMResult) -> Union[AgentAction, AgentFinish]: class NlpClassroom9PlayersParser(OutputParser): def parse(self, output: LLMResult) -> Union[AgentAction, AgentFinish]: text = output.content - cleaned_output = text.strip() - cleaned_output = re.sub(r"\n+", "\n", cleaned_output) - cleaned_output = cleaned_output.split("\n") - if not ( - len(cleaned_output) == 2 - and cleaned_output[0].startswith("Action:") - and cleaned_output[1].startswith("Action Input:") - ): + # cleaned_output = text.strip() + # cleaned_output = re.sub(r"\n+", "\n", cleaned_output) + # cleaned_output = cleaned_output.split("\n") + # if not ( + # len(cleaned_output) == 2 + # and cleaned_output[0].startswith("Action:") + # and cleaned_output[1].startswith("Action Input:") + # ): + # raise OutputParserError(text) + # action = cleaned_output[0][len("Action:") :].strip() + # action_input = cleaned_output[1][len("Action Input:") :].strip() + action_result = re.findall(r"Action:(.+)", text) + result = re.findall(r"Action:(.+?)Action Input:(.+)", text, re.DOTALL) + if len(action_result) == 0: raise OutputParserError(text) - action = cleaned_output[0][len("Action:") :].strip() - action_input = cleaned_output[1][len("Action Input:") :].strip() + + action = action_result[0].strip() + if action not in ["Listen", "RaiseHand"]: + if len(result) == 0: + raise OutputParserError(text) + action_input = result[0][1].strip() + if action == "RaiseHand": + action_input = "" + if action == "Speak": return AgentFinish({"output": action_input}, text) elif action == "CallOn": From 1c92dbe58a9808bf5ff336b1398b3dbf3b145eca Mon Sep 17 00:00:00 2001 From: lelo <32453496+elolelo@users.noreply.github.com> Date: Mon, 20 Nov 2023 07:53:00 +0000 Subject: [PATCH 092/101] doc: add a simple documentation (#91) * added some parts of documentation * Updatde documentation --- documentation/index.html | 570 +++++++++++++++++++++++++++++++ documentation/style.css | 139 ++++++++ imgs/agentverse | Bin 0 -> 257896 bytes imgs/docs/Python-virtual-env.png | Bin 0 -> 116372 bytes imgs/docs/environmentKeys.png | Bin 0 -> 108145 bytes imgs/docs/prisoner_env.png | Bin 0 -> 238236 bytes imgs/docs/simulations.png | Bin 0 -> 348214 bytes imgs/docs/ts_env.png | Bin 0 -> 290426 bytes 8 files changed, 709 insertions(+) create mode 100644 documentation/index.html create mode 100644 documentation/style.css create mode 100644 imgs/agentverse create mode 100644 imgs/docs/Python-virtual-env.png create mode 100644 imgs/docs/environmentKeys.png create mode 100644 imgs/docs/prisoner_env.png create mode 100644 imgs/docs/simulations.png create mode 100644 imgs/docs/ts_env.png diff --git a/documentation/index.html b/documentation/index.html new file mode 100644 index 000000000..ac7d4a0b7 --- /dev/null +++ b/documentation/index.html @@ -0,0 +1,570 @@ + + + + + + + Documentation:Agentverse + + + + + +

+
+
+
+ +

Introduction: AgentVerse

+

+ 🤖 AgentVerse 🪐
+ Think of it as a universe for LLM agents. +
It is designed to facilitate the deployment of multiple LLM-based agents in various applications, which + primarily provides two frameworks: task-solving and simulation + Introduce how to run an example successfully in CLI mode and in GUI mode +

+

+ The codebase contained facilitates the creation and simulation of multi-agent systems, potentially incorporating language models for agent interactions. +

+ +
+
+ +
+

Requirements

+
+

This documentation assumes you have the following:

+
    +
  • AgentVerse github repo
  • +
  • A Python virtual environment setup
  • +
  • + A working OpenAI API key +
  • +
  • Good working knowledge of Python
  • +
  • + Some experience of web development +
  • +
  • + Knowledge and understanding of yaml +
  • +
  • + Interest or a general understanding of LLM's +
  • +
  • + Knoweldge of github +
  • +
+ +
+
+ +
+

Installation

+
+ This section of the README has + details on how you can get up and running with installing this project. The steps below were used to install it + on Windows 10 using the recommended manually: + + Make sure you have Python >= 3.9 +
    +
  • Clone the AgentVerse github repo + git clone https://github.com/OpenBMB/AgentVerse.git --depth 1 + +
  • + + +
  • Navigate into the folder + cd AgentVerse +
  • + +
  • Install + pip install -e . +
  • + +
  • Optional: If you want to use AgentVerse with local models such as LLaMA, you need to additionally install some other dependencies: + pip install -r requirements_local.txt +
  • +

+ Another alternative to install is: + pip install -U agentverse +
+
+

This guide shows how to export environment variables. On windows, the screenshot below gives as example on how it can be done.

+ +
+ +
+
+
+ +
+

Simulations: Graphical User Interface

+
+
+ Simulations can either have a Graphical User Interface (GUI) or a Command Line Interface (CLI), some simulations + have both interfaces. Here are some showcases, examples of cli simulations can be found here and GUI simulations can be found here. +

+ The simulation agent located inside the agents folder which is inside the agentverse folder defines a + BaseAgent which is a Python class that serves as the foundation for other agent classes in the AgentVerse + framework. + The class includes attributes such as name, llm, output_parser, and methods like step, reset, etc. + The agent can interact with an environment and has methods for performing steps, asynchronous steps, and + memory management. + It provides functionality for managing prompts, receivers, spending, and memory-related operations. +
+ As part of the agent registry module in the AgentVerse framework there is an initialization file that imports + classes from various modules, including simulation agents (ConversationAgent, ToolAgent, etc.) and + task-solving agents (RoleAssignerAgent, CriticAgent, etc.). + The Registry class from agentverse.registry is used to manage and register agents.The file initializes an + instance of Registry named AgentRegistry for agent registration. + These files shown below collectively contribute to the structure and functionality of the AgentVerse + framework, providing a foundation for creating and managing different types of agents in both simulation and + task-solving scenarios. +

+
+
+ +
+
+
+
+ +
+

1. Prisoner's dilema


+
+ This class defines a PrisonerDilemaAgent within the AgentVerse framework. + This agent class is designed for simulating interactions in a Prisoner's Dilema scenario. + Additionally, subclasses PoliceAgent and PrisonerAgent inherit from PrisonerDilemaAgent, each representing a + specific role with additional role-specific information. + +
+ + Imports and Type Checking + : The from __future__ import annotations statement is used for postponed evaluation of type annotations. + The class also uses type hints, and there's a conditional import based on type checking to avoid circular + dependencies. +
Class Structure: The class PrisonerDilemaAgent inherits from BaseAgent and serves as a base for + agents involved in a Prisoner's Dilemma scenario. +
Methods: + step Represents a step in the agent's decision-making process within the environment. + astep An asynchronous version of step. + _fill_prompt_template A helper method to fill placeholders in the prompt template, including agent + name, environment description, role description, and chat history. + add_message_to_memory Adds messages to the agent's memory. + reset Resets the agent. +
+ Role-specific Subclasses The PoliceAgent and PrisonerAgent subclasses introduce role-specific behavior + and template filling. + + + +
+
+ + +
+
+
+ + + + +
+

Task solving agent - Command Line Interface


+
+

+ The base.py file located inside the task-solving agent folder, defines an abstract base class named BaseAgent within the AgentVerse framework. + This class represents the foundation for creating agents in a multi-agent system. Agents are entities capable of interacting with an environment, processing messages, and maintaining memory. +

Attributes: +

  • name (str): A unique identifier for the agent.
  • +
  • llm (BaseLLM): An instance of a language model that the agent uses for generating responses.
  • +
  • output_parser (OutputParser): An output parser that interprets the responses generated by the agent.
  • +
  • prepend_prompt_template (str): Template for the prompt to be prepended before generating a response.
  • +
  • append_prompt_template (str): Template for the prompt to be appended before generating a response.
  • +
  • prompt_template (str): Combined template for the entire prompt used in generating a response.
  • +
  • role_description (str): A description of the role of the agent.
  • +
  • memory (BaseMemory): Memory for storing chat history and other relevant information.
  • +
  • memory_manipulator (BaseMemoryManipulator): Manipulator for interacting with the agent's memory.
  • +
  • max_retry (int): The maximum number of retry attempts if an error occurs during response generation.
  • +
  • receiver (Set[str]): A set of identifiers representing the entities that can receive messages from the agent.
  • +
  • async_mode (bool): A flag indicating whether the agent operates in asynchronous mode.
  • + + + +
    Abstract Methods: +
  • step(self, env_description: str = "") -> Message: Abstract method to get one-step response.
  • +
  • astep(self, env_description: str = "") -> Message: Abstract asynchronous version of step.
  • +
  • reset(self) -> None: Abstract method to reset the agent.
  • +
  • add_message_to_memory(self, messages: List[Message]) -> None: Abstract method to add a message to the agent's memory.
  • + +
    Methods: +get_spend(self) -> float: Gets the spending of the agent (associated with language model usage). +get_spend_formatted(self) -> str: Gets the formatted spending of the agent. +get_all_prompts(self, **kwargs): Gets both prepend and append prompts along with the total number of tokens. +get_receiver(self) -> Set[str]: Gets the set of entities that can receive messages from the agent. +set_receiver(self, receiver: Union[Set[str], str]) -> None: Sets the receiver entities. +add_receiver(self, receiver: Union[Set[str], str]) -> None: Adds receiver entities. +remove_receiver(self, receiver: Union[Set[str], str]) -> None: Removes receiver entities. + +

    This base class provides a blueprint for creating agents in a multi-agent system. It encapsulates common attributes and methods that agents might use to interact with the environment, generate responses, and manage their memory. The abstract methods enforce the implementation of core functionalities in derived agent classes. The class is designed to be extended to create specialized agents tailored for specific tasks or environments within the AgentVerse framework. +

    +
    +
    + +
    +
    +
    + +
    +

    Simulation environment


    +
    + The simulation environments are defined in a class named BasicEnvironment within the AgentVerse framework. This + environment, labeled as "sim-basic" in the EnvironmentRegistry, serves as a foundational simulation environment + implementing the logic of conversation. It is designed to facilitate interactions between multiple agents based + on a set of rules. +

    Purpose: + + This class represents a basic simulation environment within the AgentVerse framework, implementing the logic of + conversation between agents. +
    Inheritance: + + Inherits from BaseEnvironment, providing a base class for custom environment implementations. +
    Registration: + + Registered in the EnvironmentRegistry under the name "sim-basic." +
    Attributes: +
  • agents: List of agents participating in the environment.
  • +
  • rule: Rule defining the logic of agent interactions.
  • +
  • max_turns: Maximum number of turns in the environment.
  • +
  • cnt_turn: Current turn number in the environment.
  • +
  • last_messages: Messages from the last turn.
  • +
  • rule_params: Variables set by the rule.
  • +
    Initialization: + + The class initializes with a rule, and additional configurations for order, visibility, selector, updater, and + describer aspects of the rule are extracted from the rule configuration. +
    Methods: + + step Asynchronously runs one step of the environment, involving obtaining the next agent index, + generating the current environment description, generating the next message from each agent, selecting certain + messages based on rules, updating agent memory, updating the set of visible agents, and incrementing the turn + count. + print_messages Logs the content of selected messages. + reset Resets the environment, setting the turn count to 0, resetting the rule, and calling the + reset method for each agent. + is_done Checks if the environment is done based on the current turn count. + This class provides a flexible and extensible foundation for creating various simulation environments within the + AgentVerse framework. It encapsulates the common logic for agent interactions, allowing for easy customization + and extension based on specific simulation requirements. +
    +
    The code snippet below shows an example of it's usage: +
    # Creating an instance of the BasicEnvironment + + basic_env = BasicEnvironment(rule=custom_rule, agents=[agent1, agent2]) + + # Running a step in the environment + + + resulting_messages = await basic_env.step() + +
    +
    +
    +
    +
    +

    Pokemon environment


    +
    + Pokemon enviroment defines a class named PokemonEnvironment within the AgentVerse framework. This environment, + labeled as "pokemon" in the EnvironmentRegistry and is designed for simulating a Pokémon-themed scenario. + It involves multiple agents located in different places, and the environment allows for interactions and + responses to a player's messages. +
    + Initialization: The class initializes with information about agents, their initial locations, a rule + governing the environment, and additional parameters. +
    Environment Steps: The step method simulates one step of the environment, allowing either routine + agent actions or responses to a player's input. +
    Internal Methods + _routine_step Simulates routine steps for non-player agents. + _respond_to_playerProcesses the player's input and triggers agent responses. + update_state Updates the state of agents based on their locations. + print_messagesLogs messages for debugging or information. + resetResets the environment to its initial state. + is_done Checks if the environment simulation is completed. + get_test_messages Returns a set of test messages for demonstration. + +
    +
    +
    +
    +
    +
    +

    Prisoner's dilema


    +
    + PrisonerDilemmaEnvironment, which is a specific environment implementation within the AgentVerse framework. This + environment is designed for simulating a scenario related to the prisoner's dilemma. The class inherits from + BasicEnvironment and is registered in the EnvironmentRegistry with the label "prisoner_dilemma." + The purpose of this class is to represent an environment for simulating the prisoner's dilemma, a classic + problem in game theory. +
    -It inherits from BasicEnvironment, providing a foundation for custom environment implementations. +
    -It is registered in the EnvironmentRegistry under the label "prisoner_dilemma." +
    -It asynchronously runs one step of the environment simulation. It involves obtaining the next agent index, + generating the current environment description, generating the next message from each agent, selecting certain + messages based on rules, updating agent memory, updating the set of visible agents, and incrementing the turn + count. +
    -It inherits attributes and methods from BasicEnvironment.and it utilizes a specific rule (SimulationRule) + for governing agent interactions in the environment. +
    -For asynchronous execution it utilizes asynchronous programming with asyncio.gather to concurrently + execute agent steps. + This class is registered in the EnvironmentRegistry under the name "prisoner_dilemma," facilitating easy + retrieval and instantiation. +
    +
    + The screenshot below shows the location of the Prisoner's dilema's class +
    +
    + + +
    +
    +
    +
    +
    +

    Software Development Environment Team


    +
    + This file defines a class named SdeTeamEnvironment within the AgentVerse framework. This environment class is + designed for simulating interactions in a software development environment where a team collaborates to craft + code. It extends the BaseEnvironment class and includes specific rules and behaviors for the given context. +
    + Imports The class includes necessary imports for asynchronous operations, logging, typing, and JSON + handling. +
    Class Structure: The class SdeTeamEnvironment is registered in the EnvironmentRegistry as the + environment for simulating software development teams. +
    Attributes: + agents: List of BaseAgent instances representing team members. +
  • rule
  • - Rule for the environment. +
  • max_turns
  • - Maximum number of turns for the simulation. +
  • cnt_turn
  • - Current turn number. +
  • last_messages
  • - Messages from the last turn. +
  • rule_params
  • - Variables set by the rule. +
  • task_name
  • - A string representing the name of the task or project (default is "test"). + +
    Methods + Constructor (__init__) + Initializes the environment with a specified rule and other optional parameters. It configures the rule based on + provided configurations for order, visibility, selector, updater, and describer. + +
    step Method + + Purpose: Runs one step of the environment simulation. + Steps +
  • Gets the next agent index based on the order rule.
  • +
  • Generates the next message asynchronously for each agent.
  • +
  • Selects certain messages based on the selector rule.
  • +
  • Updates memory of the agents using the updater rule.
  • +
  • Updates the set of visible agents for each agent.
  • +
  • Increments the turn count.
  • +
  • Returns the selected messages.
  • +
    + print_messages Method
    + + Purpose: Prints the sender and content of messages to the logging system. + +
    Parameters: +
  • messages: List of Message instances.
  • +
  • + Output: Logs the sender and content of each message. +
  • +
  • reset Method:Resets the environment, including the turn count, rule, and agent states.
  • + +
  • Output: Resets the environment state.
  • +
  • is_done Method: Checks if the environment is done, either reaching the maximum turns or an end flag.
  • +
  • Output: Returns True if the environment is done, False otherwise.
  • +
  • Rule Initialization and Configuration: + Initializes and configures the rule for order, visibility, selector, updater, and describer based on provided + configurations.
  • +
    + The SdeTeamEnvironment class is specifically designed to model interactions within a software development + environment where a team collaborates to craft code. The environment includes rules for order, visibility, + selector, updater, and describer, which are tailored to simulate the dynamics of a software development team. + The asynchronous step method and other functionalities allow for the simulation of turns, messages, and + interactions among team members. +
    + Tool Loading + The environment loads a tool named "code_interpreter" as part of the initialization process. This tool, along + with others, is loaded using the load_tools function from agentverse.initialization. The tools are used to + interact with specific functionalities related to the software development context. +
    +
    + +
    +
    +
    + + +
    +

    Task solving Enviroment


    +
    + TasksolvingRule class defined within the AgentVerse framework represents a rule set for a task-solving environment where agents collaborate to perform tasks. + The rule set includes components for role assignment, decision-making, execution, and evaluation. It extends the BaseRule class and is designed to be used in the context of multi-agent systems where agents need to work together to solve complex tasks. +

    Components: +
  • Role Assigner (BaseRoleAssigner): Assigns roles to agents based on the task description and advice.
  • +
  • Decision Maker (BaseDecisionMaker): Determines the plan or decision for solving the task. It takes into account the task description, previous plans, and advice.
  • +
  • Executor (BaseExecutor): Executes the task using the provided final solution from the decision-making stage.
  • +
  • Evaluator (BaseEvaluator): Evaluates the solution and execution result to provide a score and advice.
  • + +
    Attributes: +
  • role_assigner: Instance of the role assigner component.
  • +
  • decision_maker: Instance of the decision maker component.
  • +
  • executor: Instance of the executor component.
  • +
  • evaluator: Instance of the evaluator component.
  • +
  • role_assign_only_once: Boolean indicating whether role assignment should occur only once.
  • +
  • add_execution_result_to_critic: Boolean indicating whether to add execution results to critic agents.
  • +
  • add_execution_result_to_solver: Boolean indicating whether to add execution results to the solver agent.
  • +
    Methods: +__init__ Method + +Initializes the rule set with components configured using provided configurations for role assigner, decision maker, executor, and evaluator. +role_assign Method + +Assigns roles to agents based on the task description, advice, and turn count. +Handles scenarios where role assignment occurs only once. +decision_making Method + +Determines the plan or decision for solving the task. +Handles dynamic decision-making scenarios. +Takes into account task description, previous plans, and advice. +execute Method + +Executes the task using the executor component. +Adds execution results to critic and solver agents based on configuration. +evaluate Method + +Evaluates the solution and execution result using the evaluator component. +Handles human evaluation scenarios by collecting scores and advice. +reset Method + +Resets the state of the rule set by resetting each component. + +
    +
    + +The TasksolvingRule class is designed for a task-solving environment where multiple agents collaborate to perform tasks. It integrates components for role assignment, decision-making, execution, and evaluation. The file incorporates dynamic decision-making scenarios, human evaluation, and configuration options for controlling the behavior of the rule set. Below is a screenshot showing codebase for this class. + + +

    + +
    + +
    +
    +
    + +
    +

    Contributing


    +

    + To contribute or if you are interested in + joining the agent verse and a become core AgentVerse team member - don't hesitate to reach out to the leaders, + their details are on the repo's README file. +

    +
    + + + +
    +
    + + + \ No newline at end of file diff --git a/documentation/style.css b/documentation/style.css new file mode 100644 index 000000000..80e8ed588 --- /dev/null +++ b/documentation/style.css @@ -0,0 +1,139 @@ +@import url("https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600&display=swap"); + +* { + margin: 0; + padding: 0; + box-sizing: border-box; + font-family: "Poppins", sans-serif; +} + +body { + display: block; + height: 100%; + width: 100%; + background: #f5f6fa; +} + +#navbar { + position: fixed; + top: 0; + left: 0; + padding: 10px; + height: 100%; + min-width: 350px; + color: #ffffff; + border: none; + background-color: #174782; +} + +#navbar header { + margin: 10px 0; + font-size: 28px; + font-weight: 500; + letter-spacing: 1px; + word-spacing: 5px; + +} + +#navbar ul { + height: 88%; + overflow-x: hidden; + overflow-y: auto; +} + +#navbar li { + padding: 10px 20px; + list-style-type: none; +} + +#navbar a { + font-size: 17px; + text-decoration: none; + color: #bdc3c9; +} + +#main-doc { + margin-left: 350px; + padding: 100px 50px; + text-align: justify; +} + + +#main-doc p { + margin-top: 20px; +} + +#main-doc li { + margin: 10px 50px; +} + +code { + display: block; + padding: 20px; + line-height: 30px; + font-size: 15px; + font-weight: 500; + letter-spacing: 1px; + word-spacing: 5px; + color: #abb2bf; + border-radius: 12px; + background: #353a40; +} + +.comment { + color: #5c6370; +} + +.keyword { + color: #c678dd; +} + +.string { + color: #98c379; +} + +.number { + color: #d19a66; +} + +.operator { + color: #56b6c2; +} + +@media screen and (width < 800px) { + body { + display: flex; + justify-content: center; + align-items: center; + flex-direction: column; + } + + #navbar { + position: relative; + width: 100%; + min-height: 860px; + } + + #navbar header { + font-size: 20px; + text-align: center; + border-bottom: 2px solid #ffffff; + padding-bottom: 20px; + } + + header{ + text-decoration: underline; + color: #c678dd; + font-size:medium + } + + #navbar li a { + font-size: 20px; + letter-spacing: 1px; + word-spacing: 2px; + } + + #main-doc { + margin-left: 0; + } +} diff --git a/imgs/agentverse b/imgs/agentverse new file mode 100644 index 0000000000000000000000000000000000000000..1ef4dfca6d3acc1a54b25cb9870370704bb09523 GIT binary patch literal 257896 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�I` zZ!g^?J2Yz#{{xa3rqw$ur+u@3mG1n!&imK;^hx*u%XZUxyvj$JMX%~x>G7TuvE|LO z^kve>UgvXL0*@>t@lT2>(4!BR<*m#k`V~^D}Wz(H`OO~d5^h-uXo5ziaI?`NIRIJuB-Wo4|~-K;~IcL$^t@Pt%oj5I#K z^2cKKgqO&f0Zh||Yw*!LHZzkPs4T#v(!XN?%C=VD_$msbu)!$@56pUT;Bnd4^1RwE zNn$ooxWKvlpPYi7R;@+O+jS*F4%pnHhd4u;0MSKj_ghiV1olk9;sOxSK%uP5f2A)@ z8IA;uzbrwQ$>1?iPP7uhs;JQ{faG{oyGUbcJYeI}k;TtMs7sTO(k{k1tfXnxlnhkb zRxqeQ&MgHr4S~s{fS!}HL%GX`ep3orW(=;}!ARe-Gp zef())d;ewa&v+2K>3<(og6fnQu7xWxB~;t9*?!HxQ-%uXGvZ-NN6GTvCCw?hE1Ew+ z#s5Qp*3sZcmabqCsWp?p;UD2T2*3ydW^c+nb*T9B^pj690NLM~q*4Me6Fl2GsgvT~ zNQRGLlzof+X=r+WYAOk1DFC|vK6;`3V}!`^t3<>rr%MYTi#uoUL%Gg-<5+=IX~+8R z)2cLn;I>CTJ&bW&9^6Eq zf~5i7)IVs?fdUQ@UqTHo77-p-auqw={po4rAViDM<$n)phRo{B0Y8t;1z~nV_8*@;P0tdZw^?W?$=8UKdUSLA6g>-k2>PZmIY_lc{o*s4d}|F9~c9~>*5(zO9y4HO#wW2y218S6UnV1 zLJmOZ^3_yTt=?%Cf^*I``i9JY2?2q??jB*WAzQO9xYQST4ae2Af5gDn?%GpXB{{PpXVMxLN#wCgiAW-@cvrX99 z**8~LJM#?IhddAG-&;-Qqb7F%;A8x!pp;HP7v;`_n-a-_|JZ!A(vgjf@kRm|b-%sg z{_@ct~Z7`!bM`k@@%llC)CY zT809Z%rpt-wYT1+G@_oDA?G_|W9iMVN2K~~o{2_6VS)XClX9C&*A0kOt*Niys;PQ@ zL+0mtx++NuNF4v#x4!-VD9;E`Y!>P=n_Z4_Zji%rO9dh}P*&S=fJVK};sH{sJ0cd9 zM_tJA9|nFY4_wr}386mynTS$6Lu68qj`P)*T_3Q&#KY4Ae-AJW`VZE^6&yMu7~tML zpxWMp;aow||9pLa0=c!m6Vd$sAaaDU0e!)Ce?9-Q+oK- zqRl@Epz`0gugL(9B@2o}ylYMc*mz75E*U<`o<|sYkt!D-yzOX)V4#cV#WB(YF0^Ef zK!)Uh8{ZCYqwmUhmc+_IS{@Txc{)D{cO3VNZOlYAOX=Vno7~5{^Pr+qCf5HhXq^Y% zgmDCxWGkcrjOdBP3vPt|(rvKORe`Pj^t4fsQ-VpRLys2g>i{R({plJ)A1Ooxz{98o ztb;pB`WbM@$1C9O;KcQS9W&AiVD{pz^oqo27ia*TlPkfcOf(1##-O%-=UsMgXWVU7$p~EbJAN$fWKs43$9+`7ofG8XWu@=*GK@@&Z3B0I?_T zUjd|mA;krV^o`7pCgYEKe!4OA0X%TBr8?EQ22cOgos!{98J_R-BZ$s#u&Ib|_?_1m zr4?hw{bLP2=vnjU2A~-oc|SZyu4}&HE!PNiR0tW$CW}rQ5H%um`_BCTwS-Jq!X!7!fyAs*T_z9?CFDUVzW+_b zz+IevN^Baa^W7)7v(AC3D1qM)fxvte2Q>|?Q5Hw?`H{F&)* zlT)zu4bz3R5D_9op+Dp?2Isb$XP8|;gr-maq{MzXBZ1jlQSrCeX;1i=RbZhjkw(B- z$oTe6cE?`NCsjw6uX4PDn}r(Rop!y+gQx3&w%|8Cq705-W8GpQi9av6b}1^(!8p*D~SQ^OxbG0e6`K!HoRHfD9cIS`j37x4y{ z`D)m>Ck*%TBlUMV7$9AZly{Ta)wZ@iK(Ti1JjA|G$QEl8c|C$4OR_CMOvfkXxw;C^J0 zMb$t4ySy?KAe*xH=lQDJ>DM~tEby37uBw?rJr3Wuv4+=qyffcH>OxA)ur|%8 z0BUBf3n?Qr6BQyyr3k5m=0M0c#l3E0R>{zDN!*SWd%BB%873yILUAUjC1xWj#j{>e zkk*i1K5#N8qTpSILc{IL?Rtju^Doafqk9yopIMuKwWZ8soa_Vj5 z()&rU{oAFhz5MdrJ(Y+?iasb?bJKjd&51BBmc0PZMhP}4;Pu|0DW?{IM47~zATT0G zBH*PM$k7>M#rlOly2gvo6FHpf5tm@Zl`QCFt^!eb9#8!fNhxspmt}XBfvGys7xh8Ni~#j^jZTc2N&uFautJ6ej-LV|5sEn>nd~62`@r8?3+y$Bg!8 z0w!COOr|6P&?EH?4X{<%&d# zg>Uk>y9QeC9T4f@k2)(bwPp-DsAL$#%-(zbcc2^LAR2u2f<4LxV)F!iVgCwLG1y5G-%W~_#>g7yR<|5(Od=!Of8gRV!^8SSJ&H{$U zRE2ba^e1H22uwF9REYJDcZ8Cma&&MeMo@~2@z)0KnF4%{K&&=Uur&knQ;uNq-IIg4 z%8cT8uFpwfDA|henBIAqF<(QNSPE>H8XTsiQ=An8sq7_naV*Ep|VzYs&mEuXA z1-s~~vwvRG6s7Lv`5_t^o1#38rYeK;Gd$n~JoQSMTo(fRF?{j4>1|Ezs7}<`QsD17 zD#w&JnpaUwzL8i4{jSpEOh5oM-tbX4doo6&LA9o_0=%g&yceL%VgFJB71g3I9r?p0 z`0ANxJ=$q8aBLE<>SzHTSN@FfMmak=8+sy3e13l~UzVLM-aZjMmc>&l|L&cx0?B;8 z`(=M-Yg;QS!!cE>BoD1I)1%_-k5B1`gURS6p84m#FW0o`#toNAvAQFlcnT8Bl4VOp zy;%)ATm$xJ?fSzh1zo=lE+lGe|IjRh``hRfzoXyknDlo{df7`|n}CraxD#M6Obttf z$bse*pvp`fH;56UJP?h3E!2Q)6@L#K$b`LtA6s^xRGv#dbo0kdrH@cejen-TK$Pqt zew@G9U8)pMU{jZxspT{l4Tb!x>8q(?TGT87qit2WgbCY5T(93sUYx3%PU@N--IP=( z6oqF%{LN|r<$D~|=D0%UO@MDkDU4HuKLQ+GHF-WMw*GIW|20H_y%TKrp=7`n7`Miv z$q@1b8Mnas()VEY-7%SR#qEv6B6Y$!E)t&4pBN#xV=&-lTkU&;5JFDx7v%BHRC0-v zSQefdIg*|Z`lRqYPQgUV+W{MM zvFuFl<<@~)jnVcokuUj+@BMxJvB)(HTWqC2+tM78#+d(>Bu;bU4@nbncvHO$kg$O2!_H<=d} z5o4VIE;0WB`}hrPrYaqnr@%LoAr?%WA>i>A^WNfHsm2<7k6=mgFnP;QF53eumL`Ev zQIyrMoHn~mkVYe1pdO^Y27`y`7IAPS5r1LxDpcRHA-cdfNCwtD?Gm1!J`b*>evXa# z?jfXLd>#CjQlyBRpHefDB{Ai?fn-aWJbU;V&wA}dd-|U)C<4{*asf@<_qs(_1NOeK z`ZL=aIq=;%ySxAtd(if#i^XZBV9fQWIN#t3JE&@(Z#rHE z%-dcbFR-!4sZ#I!wE|KLOoOaZ)DpxV0DXoWKxS=q(U0??fN%E#7)bHzh~IzkjywMf z3VWrGdNxN~1U3yro(ZC^>6Vr-znRF5$;~U9i{-N`8DN!zTZ&esvm7&tJ|~6V0Ms zioZB=vr0JE@jVHjNB#3px zkQhq9xf)H5Tc$^h1;B8%(^vNhaJj6^sPCX;05+k@j+~2S9;7hN5Wt*0DW5C@Yie#D z6r27bF2n|C9UIkS*%sWK{Sbbk&pySW*cctKv zel&cQfqV_-@ZtBlw%h%&0sL@y1TtlH?SPbF%Q}kc4G>>ZXZKgABDPr7_y2S?p`9;D z@C=wP2D!+ezQi!2~$o{ zxX@Ne6NEN1hXy@YCvrv6uoQb@{?o`T5Wu0?)3p|E3DHU0ie zf_SgFHcT|J&#L*78XEVn_;knpx7NdTrjvscDg6Z~1Rd%2g~Nj={?(u>+)!0&zqfwz zz9Z07#a^N zkL+uS->X`vOx7@-;lW*OR%TT6aLV0ecZ4kDb`9^r6)7licrsO)Y=c)qH$IuKENvI9 z@7@CFesaTiIMj1Q4q#m@Omv%LE7Fn=4(iY53Q)@ZZD{l z%S>r%-XX71sQDtZrOsv#ZQEy6#KXh$tQ1g?GaPt%Fq3m%WeIqQ%+-AYgbk5z_|k5? zxBsBtQP5m%ZEgi+18FjOKXwbg|6a*@A zQ53@d`?L7Z4Rj(V_W;!Sz74+cZwJ-*rJ=aUj`?tgv>!}HN4*Zvye(*le!XIR_h$?&K;ma^4qBLGD4JcvY zxoq2XusbzJYyBz|@Uxc!$WMZ+-NjE8-P|wF9!F;pD*-OJP^!P<#2W37v(87o1s(Mv z+apiW=^tpMr}#wUbDC;gtfx(xEe@_I3faA||pWm{O-`oqf-eq7z1)D2AkH2hNY z&a!WSoj}0%tPZ?Rz1uZT-EBF(M|3w4 z@-N2)_fThc2B_mxegDKco1T~tT4XXNjj&r4Ivp*#KswB@F-iFYUYB_cl@sXc={Gif zdA0Nk+vwz4Z)12kVntQdpbeJ2(ysQ`{0Ecl{hE&3^Ncp5w77*JKZ=g5sqVXuMN+P{3E{#PoW+VU6k>Ji+SJw4tUjR%3eojS(FnI zClSC=y+2bnq@AP7XTK_Or+4uRkc3j3Jq)P#4e@cnv?zl?q)tEsrkP;|NIk$#YgbbxGp?QdP-}Slg*o$@N(o zmr&c%xIDp{g6w}tFopX@(1zJaPM8y|q|qUt(j1w7yw_ zqR{j~_`XONsb+2+Eq*Kkf4w=`?9*g;QhFJ|o;>|A2V=KgY>mRA5CLZjBgRfQBcJy_ ziOtDr;wi@=lZISr&<~zjrTHPH@!5fZVExsaEmq>8MLVjoG+s-3`O)daT8ooo@WE%6 ztK*q$SG$!0=A<$DcOqsua5(-{$g#*+Z@}sNc8NpQ6yMmMp-wm*!LhIGX><9 zc_7~6(#rLJK*6;gin&@9LKGLcwlP%VEn6U~+0$8?O|^F0-3qSMnk*y`H9c0xLEIy& zMY%h_Lg(J4Q^~q}xSJX~G29bI?@W9ruTo>0zFe6to>N1}qS^kd$DJg`h9tfx&t@+^ zC^Qk9??tl^qgKxyz4gkyFRKf+5xLe}->uN0)$xd^hS?x+vCbx!nP^8nqLcsH;2X+{ zM`}`&`Tg&Tp9QRQPLmB^#zqrT^bKib#s58sKEvJn|MG#T2~Y(oAg9C(cUV(1S^)Ci z1j^X_qNt0!9W#>7pIrZ&idCnIivNpDiVmI3W@k8F++@+4TtolE7`)-&-YD`iZh!eA zl}z_dr4(d;ssM(RiooO+0QGi=o!rD;v~sTs&{CIs4CG7Q)WeRIF6d7i&;O+p3zPLD zmV*xODUP@LFVKKhOibd2-Tgi%voAu3g0aYHZW9BNs2{UIs9QO*(A{0ie@oFQ29)|i98i0?Z2=) zZK>G^+Hom-s`9$CT5zs+SxTBNc97o2q7q-C8yFm7<(;8}S9W^d&9i-&-gA8X#?b+u>|4m@vQ|D#SY=7zCC`kx>5)Dmjg#Qp)=MDw{_nSFratcC&n`I zfsyA=thu%%H56=&axiv9*6mcjXt2y@dFNE*yeBn zC_5_?oTYZ(pTMh_R3@2au*~!1yHV_WQo#Z(9DztoS#Yd+I9Y%Tv;GPdZ?4mM;=Blha{sNq8c+?yYM{y*+x}AGGjOMkgT)3VJ4iD=hIBR4#IgFL zOVr{rq*HzEKJXm@mXO!$U@Wpy8ZwN?Y$%5#NOy zORiwC0-UvC0#gc;sOuI*rkmGquU=00k-2d52n?F@f@|sf>0k*b=VpfVskw54GrJa*f;7gK=jFZ}w}mq8EmgXpH&!JY{K-m5e1SQ1 zaI@rcrS_&2{UKeL#U!=34cjl5W*ccuS)M15M0F;*zZ) zC_`-jW|O&*=YR##HG09iw*goX^K7yEaq=SJ%gESLxI;MTK$b^bd3bQ&R}n zc41Gn$Q#MMqq8^)ac479(-J1$B~$N*bCUY~`AoDe1yD)+caD^4{XSf$M{)MHs6IWOr-xjY5enshv4VQqH2JAgaz5-%593& zJ$K5830itIa}j!Sg~n6i(H%jlc8S7+o1L0+(TaE;bR&uC-TgeL;mjs@m(IIEYC4s z;)Af)E{cl{Wo!IW{U-}Zi@9j>T*=3D*-3qQ!J4har>u86Jkfyux$mvyLm7}A#52AM z>qzrfUS@zt>3p4<0Nk`5@{5hf;k)=lG4+Tin4x@ka0K8p-t1TTSfRfPNda8Od6qB8 zZ3!S!sD|)MI#=ZO7!aAsy|og0h*VJt2*v;~@^+xx)I?K?*C$jfo`o4yEqwEKA-Y?Y z%dgNfsPvMa5rqe}E9J@SZXJ`5RfA>_IR^yu1OGxcy*}JO;TjgsNwu|se0YT%J5li0 z?KZuq7oQKSx&-Ayv9U$M*;e_;0btM;%*?nj4O?6j8%~5Il!Y%%#D*uU9QyKFhVvJK zW1-?HL8*kaL#C+$nBuJoz;d zGlBT%!!(|4KyR3XcbLDz_7xQ0ae}-KJNZgG`6Ox57W$Q$w@@3JKRBDrx!IC`pkE?WwzH$wL0 z?Mfas{bzNiM9cfM?#;W2WNX;dZQ*Z?kDqS?nv zeU*j++Y+6%ILGUBH;$CT40`c7*|&RKYpwq$Q8-XA&(sKrB<0CdA`Uo~{)&BQN;;Of zm+dEQxe+wdijw;Yi}HN}Wu<;gRuCq|Kr}Gf7+kx9d}6PXE)*|+5vZ1ooEBFs?DFVw=>u0z)<+3mAaaMNI2|Cy2a|K}-=Ru&}{Uuq!h6ThV6l2lAK(Nno zGJm45 z=BfqD*bV!4E}RMBTC>{r4x3sgeN$Z0&fom7O%QF%UH~#zv5YUPpRnV;I2`09wZ>$( zO`G0yzcMWrn^+Y;fD7NuV6(&bNNlV@>215uGqes`JL@U~e& zb!DGn0_OLjM26i;t-gF;e&dUrRitiX0Q}?2_=%yoZXFk88h1mu!K+|7*xL8&q2x;N z5M5L0k0z(>sp*#ywXLs#IW6y#612wo*5#D0nI~xkk&?fK$+b zzfK%LkCSPmtdkHtP<$H{+$jP$6KINPu>-pUUSl)SJKbYx#&I0B=dxmw3nc)bfC!26 z-S>v{nsREMMVG6xRAAFrmT}Im{OkJd?mcVgFmL?0sH?K?!+q)dBU( z;&txvkTgm6Bn|kZ@)%XK)oVZeEp~4TyNs7D6Z74s^S<;{ZTf*8w^CUNCi}snDQ5EW zW+0v`l!R~~5i)buIKU0?xe0C&hXduO;@5HS#A$sb3{)w^Gc>qtg+i;OR(4d6 zKQ_5blH&j_B0cIN;Tw0vxk17q^#U}jIYv%=7sqBLQD7pdu$w+~DXQ)Ac7U5jk5fF7 zoHu2EuEekKQgQS~uUKjZro08Hvtqip;&W!>6^i4)Q(uPe%@R^YSMmcTq-}++3d`om zi$UE&bq*tVpx@$>Vidw2Np=8gNV(9WT%G&91kf%Ek>BTK=g>0tZ&yHHNfI+ek@r6Q zP8-&5^ncAy%2h>N@bvXWs>x#bW#6B^40WE@QYZOGFtKuaTMWBllL|Jas2r{e(IR&f z60LDC)_#xo#9wFUTq~C}hlP4{`P6N%m`@Z2eor1<@O_zLUqdbHRyOHO7AEK+-3F;oDz}-D*o=_Ii`d@?e}Tkp(}-+fq{jOS#Y0jc1eM5H^V57?lm>1_xC$bmK&k!TY;)y`AW9Sw~O!PyhgPT*bGLYS3r84vpx#MlOWrGG8IysQn z>HoB{ae5@fL%@k!(pInzFoEo42g=EJSm3DuI&STWf2XiuOH2Z5|e1Z zDdJ1rrAK|#NHJ>PSe&@d2+LsRSLFpDbKG*d)x#O!+>Y@- zXhvOF&s8`m^IW=IAL{DMLIICCBIX?sBO9zR+r`hpvqT54W+5FrtXBgStG9v(PeQn3 z-v+6FyfGo;;!d{7MI$WZqOTEuBz?M{NiI*}tLK=KDf{#j&Uah4=K&;pZf2ez$9-WY z7+tefSD2J}KaMR2)9>)gTIM{e^Fj)rJfUni)oi9I+fY4&_tCt@7+|tUGJ?k>lkh-K zPDHH;XyK1zrFD^ud`R9v)Hn=1P*w?H_9Npo#rUyOr=Lns88EHeWXhgcruT6+Deik1 z!hofBXw8hk0@B1*ZE#AeyBeawt?Prut-xZPOLFdq@wFI9Z|JXG>I@qMKb=-E?+>oQ z2oLTewdjhYL|tl%;ADw|g)dCDOHI)~Uu*2%=8$JV{XghGF&vp;z$R`k{SY`_N7ezu zdq+a)^$`TWdU0F`>go}7aeRtymrOTs++IPr+&i?7sxWYZ1&s)w|M6ja(}_VuAfb4b z-jD}0DrZy4$3HFEX~pR$wOH~V%Qeebj{dZ!1x2Sy4SoEvlPfsIs1EpBj%ZD07Dspj zaXr&e(`*htu&-`1nKq%#56&f<>t-C#5V<6V4|xEM{7@OCs1q?F)!4?cG>d2K=UDcX zXi+sNGQO*+HKK<@Uz2aUw{98*2Oo>UK!#o;Wy5SIDrcbo|TSJ~H z;s6mc!yWY>W(EpI{ttLK?o^ieHI{Gn!HTI_C&;mP}X0Y-T8i`GdA^M{paH2M2M zB1K2Ou?hKv-c4ME_f!k+ea7>9P^^dl-iKzwjj?8~eCA>hlk`v@& zDB7u9naE!lN;Ut;ZZ%&_;(hrn6UEOyAv}i7cJCyK_IQzwM#LhSs+p=@Q7*Zdpg7HL z*e2;hTEC`CWvrLUKEc696hi^D92R>fTKQGQ?|EJ9s^Xl_OFkeOj z-7lQ9(vc-sz=9kHzL=^gf0t<_^L7$2EEOAthLzInN~5*D>Pj{F+JAJ0zsxu)>;_d1 z-&XFXelj;-FX7(W=(}|~nMG>;%`~+z0!$Vd_q(jKJ^TZERPGC9OG3KYabbpASHY8H-Sle91rEC9k>2M?^kg=C3 zQFx9Ug9y26oHk`wT|BEz$TXrmnXG1dW{GDr@_tQfF6e^6-l(;niOYy}9bCRbvz`r1P(SjQ8(b#)=D z0}l@{vkhd$4^1nwJWekU+imk6yAf22m*~~-BdLE#MpAebeKng7)=Uk$OeZ2I14B37 ze~t1qsz~_M;!57uFZS+3s(_HYX=Sg-cS0+K2TWNE*}hiwMPKMo&IzkYP8rR^(CX-o z`0rLzgOOw}UDM1Q`?sISc-&vjb1Y&H&4?u?C}a?(CR(u+BFWPCd93($z;lSa)XYDw z`3t_e8P+t`y>s7O>pQ!VtM?eHXj>Y%Y)R#$+>_U_EL%)C|5K>^X_l6XO2U+$9!Nz4 z1Z`i}qj@`+WMzNLM?Lm4pD!W_2<*pUrTIIqRZ!UjBix;jaTpQ|-X=B)#Wi5_FpTRo z)dRD-a!5BesulNv0aT|~SA>Ch@-3#sh~SiJY;_e8)ah^rtM!cyB*A=!Jh68Zg!{2JnvOq>K^Q7n)ZLzD-5bpm&+TT4d*H`pe#>Ws7$qqQWTo{ zdz?ujB4d$;!ForGENw%P?TBtYjy@cUIpblAyHg_BJIFigv85tV6gI-s+h3jLenW7T zL3>S2*H3t?aydSwG-cpHX6XA6&~IjFSlKE7!l^D-gEZ~C#ZvB`1ZRKnVjt#M*!g(V z-p%_PCtZN+eNRW;4HHghT0I%maTmAse%(|ZJDt78-}1=w%E>?ay+4>Fo!1t_S6p1Z zqd`NNdffGRF+Ar+wAAt)zEO0f4-UH6Q+AL5kgbD>EAN{?J)Sada$fjV$3kOHKij>O z4V0%0vm}N6gjJ?Nq$Kgo)v5x+;u@F_=T=@qEIAB624n88kYPu@rB-ORU@Xi2si$h5 zn>Oux@Z@ppe72KTiXCs*%&^J6_DSQFPt7TJoy`P>A%5!ZQ<&lDd4!v+;D@kk;|NVs zWrADYX0iV0CNI5P?u`r6S~Yqpmh_hPi|wJ)(w$H~Q^i5hl5eIItXkLV;#!m^kU2i$ zt=i`e@lU)g{L9ISb~d?Xs<1ZDU>73=IkSQey-s(fxX*XVr-xHJuEYQdEw;NDTV`)q zB7$Z_HOBE5O zYHD$!#ZbfhRQIy-)ZiRksK|VpfCEikX1aBDwqAt?V*7&`tBN6LQf6)X3+{sey5+8X zY0ax!kEV(80?}bh&Xid^wo2?L?m{M9&3h4-XbOtu(l# zzoDu%4xX{Jd9KYw?)Qqw=?;P}_L{D$ia)VEmJ<@h2>B^g7WGEybc+LBjXfj&U zggI)hnPq!RntEcTjwyfFFPW4miSSNod$@kso#Z9p7Fr&MB>D1rWWQdKs5jDA zQRd7Bwj;gubLAPwya=CBjCJwHVU+}%n{=EF=l(k`N*$?9_b~8vbsK3 z(q++a599zT(te3EXzzO;`g(iOUaS;#pUrC`N2F72)_)_;24IUZC6(QGjcGGPyPwNZ z|Ee2!SI~Zr!sA0xOB03vC7W02$L@Ti18wSgNhKW6^v4_MRfxbx1|acRO^5KKi(5VF zS@32xD5@+mW-#esQri3y+;5kxDhZ6MB*pqNu1z7}{^pbGVb8amJR_;GS{e=T&h}P( zcE6?q7%Wp=`YM)~)<|~l`0TxEcS1%Vaq6e|m(tpN9rSPL>F#ktEbE)^WqSI$77}T6 zr>?)fG87PQ&XYC4ZWP*QVY;xSVWw&f2tsKhkpSoa_*9EGvUEL8@bu*Xg1L}8F#XBh zZPv@{a?gUsZM%h=(`Axdh`tWB$@k?Bfqbz(r$1(++Aa^$HeyxY@q8O_~|74%h^6z zb3C;5>H7}j>eJ7PvY+x1o>F;YnjyS=(wQ# ze+6l*e{mDwK(CjK1rrGlF-d<;5om`9j;^8<--uu4&(C&nC>#H{2f82Px`7tmleVax zfxgUZ4=!B~_c8OF-l35p=^Z-+X3|4m^}ds`_O5U3ZO$llKMj0QD_db%hi|Ut1!(>@ zgw_mo7|?jth7#VXBl`j6{zS_H`nsT+c^;hUX=7~9n~Z%$96zA9M5inf$uYwK;X!-t z39a`8Pr>Zz_B9}ot-|3!gvCHvS`wRXZt79TLOXDZJA75m6hqFwU*@-N{$n7G@>a+d zu8i+67zq={ZZkmjy>f1-hvK?)U1P{_j$MLIWNdbNB(n)J&G^YS#}t3*f!!Aq{C9lx zCbhMTF)6JkTN(&2$Y%a*(?QomdQX zD>r~zuy~>_x-dr3rlJWjhaD-WnKAsDSN6;G+{9cgWiME*vz+=(hbO)w@ZO^r%~r)` ze_(>;3*(u$#p!BSt_s8DJUCw4NRcI4VyVUq{r={JBdki7LH_S%{*S>8J|II)V)H`Y z1Ccb{+)-xi91q{Q)?$n(e=YL(=ho4u84(hh)!vY^Kv@+Pu?oG&U;DfVoHm;}Va=Y3 zGWK9b?$JLH&Kbhqz#>V{S?Q#EdeX~3N1cAB&FTHd+fv|^ZaEL;wz>~#PZ*AW-lk6J#yoNN+ zGK-%pw(Jtm`}c&gHJKpwo(T?0&(mecJdI^xM~nvBl>$LA6X(lS*G!bmA3~SYF<`KB zHLWjwO<_%*aaNiBA?=(4n>r+=SjT+*Yk2J+r*?G@bUe1Szk&CB8FWwQsAl)MGHWl)P zP-LHdkRM~OGQ&?IvPLVk3My0{I2k0$D^i{!)P81C?nkt+868)Bx^egQumB8)I@|v{ zrkKWnDylO8EsMF>%6Nv9b(SR_BUWN)5EM{a1>+h?HnV!=7ZG9O^*m)xSGW~hI&>IB z2hmRN3z(;IEPT6p;D46)aDZV{21#b)z%8~$(Q?D_1DxR~waUGTAetlCt2w4cGWqf8 z56aaXwfrkynle$_D3ci}8OBnPBV4)#J*9ia#Y}5s@p;OQkS50hs)*l;d#}@j948sm zN{!o76BEA!qq)%H4~nup6&dl!=brY0i;!3&pxApYl#^VTOo5GPe& zt`Z1#p$EaVu@=Dl@+YlNK#B$>7UM_N3}Ir)b}{_VlBGL`bp(3UGrFH0P(819zk6mG z@RY;_=$w0efPM}w&#(c8r2UG#uC3yc%!4sFd!v8XWtuWSl4@OpSPhmOJ!U1!lw;J< z@uOz2y<-bJVY3zgRGv>N0^>)<&}8*zJ@{y|{YRDaB(EoT`J4dSh8)rPISe*nIn|sE znm7tKw`~q}c^+r*T4y%4%iFf%r)_=5wazKq5H-Oxewk;!%t;fvD$58XZJFwn+zaCIW)NNT2 zk0kZ;-)bd%cbEvET=Ki-lYPh#v!$s+?G#;_3x#H`OI+ssNcvR2j*dY-tr{%Rg69x& zUs%TUJRN9xdv#N9tcwRl^WX9vbN`AZC-(Tp^RltxnXSWgWOG&)UYTXws<3h(PZ81T zt=}88fakrU>^RhqAt_fsYisdi`8)3SS#vmn;7RvXz8Xz)@0E9EXqILQ@XF{IO*)o{ z>v$T~w-1<1Ok9NR+99%Km+gc^1phy({yHkE|9c-m1?iBMlo()0>F)0CmXhv9Ko~+g zhi>U^5TqNVOIo_S8}IS``Tp)*_a7FEHO!ndXTNqld++Dj*2Q8RjkuU*zw27vxy7Z% zBb9cDLn5Gq^@NJ3`=(io51V5F@iu%6^y$k1H3^T?n`gF>a6`J9D_Z!oS);$QWnM{zX&ZEFh-jrG zaltTPzu0V@;bnwzJTD(Ako~eDHk#I{a(vazUv09qeUbj+Et(;+e7~n`wL+^BN;L!a z6{7fL>Fc1>P&rBMDY%>+ZN#Zh|{N{tNu;hRi&Mlz(LXD_Sz}HNMkbq*h_S!3vXK9KQudHBYo74NL zvzmO9Lt(Z)XY?zxVF&%KE7hhUKRMjIcP7a7XFT0mYrW8P$&i<{z2w?$Rx9f>WKhzN zn{x7x*9m;v?KG~HwBn1;34O5YwWAW^yO8{|b;Le4e-hz_50C<(d97S)94oUy<^Hqs zzt}s}kRnLs3Ou1iu7QpX2hafGMClZ0mgoWm=HSwuKdl`Kv~JI$*{%7Y#Iwo{4gHcN zl|(SR8co1vo6?A7cJ%eyTv<5o8J$Jr;wV4ew-Q$!5}0DHz(a?1^Xpz|2DNB{$gzy! z$}&XEHbargm5!|dW`(8jaB8ldZTn1}lYXI(ytT0$_Lrea21_=aT$<+C@~r*7``<%@ z$yok)0*ruOw~LnEs;OqQP-zlg=!YZi-wpBMyj(BluJR{+zqrBUiPtZ8Ymru&zxe#? zi83`eGI3!mK{J}FGDktkeE|7i1PK@9v$~F-siLr2>DLUey|QM@Nj~2~d}@e?Ye__D z?8M(k(08W{QKN9>W#51CZ05S(IYM&VDy6FQ1Sj?2)`C}tEwJZ zGc@XaA5gmgk#NRF%@TyoB9e1%ex*u7BdyqlxD&91#n*`3kiFV!yh_H9WV)&UU+oy} z{RLaAdX=_`{ouCu$KSV4POW#{G#q>UQA1rh$^I0-tZ)KSCP;&QtluOJ(z+bv;C3fM zzvf`2U5W<-8)(a&sn@vnuoKzRr=VN>8|RqeCLCb1G(_9TZYDGbz#zl4P$ zT~6&WdYDZ|C`zXVo9+-H;+6nTO{?PAf=xN2Yl|;+*393mf_z4~T&uDNfJ(Ym`4%nH z64Yee`)pYK)METv>3;FWfPd}v9JK6Z;}EpnZ$^sw70>pr*?~r$0M<8Ieqy`RVIc!N zY$eOB4|*mc`l0VmYO^!D5xK41LTxxZY)r8e&V|)-ZVm*Iw9FH9Wlq7SW_cS@at$(U zW=e&x#!AU=7PmhoC_2jTlOejhfXMt>bkkTGSweGSndvGFW$o<)Yu<@UL>b;S7LyNP zk>vPaxYz1spD`4!gyt~zBi0LJmv3c%LCYESAsgvzl!B*y^qf)B5oHhhu=YIN}tt%)H zkJlc_hNJ0E>e7;^>_%x3^To>jjsnFch)RS4#jQPK1>RQXe>J*doY?^a_oCkL~0}ZwX>|sxOO8q4E%M=e9-%0`zk+{8X zBte8BQdV)VhUm}8$cXXFv?d{f!3ZY5O%tVV}9DZ%R#%TrfcwZJc zNq6nW0utAF^g}#6Z(6BU@?7ZMYs*5z%gdS>RBkmp9!PjDX`UF&)W+7nhQoPIFN@7c z*uvP|j?fF`^0E7ClNk@TYD^IYwod7SC7MXLVVgfG`RYs$<}oqpiWwCQXF5w$1b1gE zVR07S*H7|zzc{G#@;zF0LK<(*)&)m}M3sYPBtM#1(D_8YO0D-P1W>`#&6fmM) z6XVOniSA&KWO!u02s1mVC(-q012NhFcVRJ( ztRX?Hptvu>bFxbC5r@|0%9Wig1^Ihx*uQ_z{_veX7tzebaCK zui9JoiI!yTv~Q!MBL{6AzvhO|4n5da@qFH#Ij6bQ=6`t{)U*5Z^Q{7Iqr;*>efXT( zm9UW*+y=q--D$h#VOVG|jZ&5B z-rHS-65&V+!9At>++SSe*|W=3-tv|HPE1t7Iqj_0jkU)`t{2e^$nAP_>G(UzXBZ5MzAP#J^tsc3e@Aunmy@q|4sX09IisiCX|VQaU7Hqc0F_U zHncYuIWOv^RglFrm3D;8S7<^hJLdL8&+OKReaPQPx3Hkd>BA?lt<@F+&M#5mp_uR8 zs`x=j1WTOFtG6<+CmvXdPit(jfG0xD0*WkqPl;*rfcHL+Z{zV=Xq zAif)FHa7M=m95_L5s{H`lG_wdmF!J@5|rf&BqYa@*BWO0!s5I+U(nOd*ji{)xs^YN z^r|csHi!dd3wGn3J}@tJw>0;dEDu|GOwGXo8?B$31O$1ny;uWbfPLG}>hs%9XVE)X@<;{P zByGX~b1@i789rPfC4y~LNAvHWuwk}Da(@EP0#WXgkzNe=J06AWmai7e&hE}uPa(lV z+(d^|^daiZ_{_F||HUSC^B%;~SWal-@yYiS;qr3*hV(8xk>#JyZ?P8WGM_tRcy92*)zH1VNb@5P~Y)%VVQ4j zvahdorTAK@zJW>mcV+qFz~y}Nl;!n`1vqm6YI8HM=+=<;val!bMWC%Kgm4AOmbxU= z5Uuw(X_Wst5gSUth{~h2$DEeh+%9Om_FqM7n(DYRrG}ILce8J$|9eXau+5I<8S%9h z7+UJJUHRBhGJwR94Zqn5KuZyEJ3l5pT1FHx*UwK$It0VS+zIjkDQgV@j+;Au() z;A|a2PUlUD2Aeq)AT5LB=Wp51(tB1SL4c)Q2=WL(8?YWq_BEigvXY#M&@~MW=buv- zdOBvm&{vd=z0~lEO$&Mab>6JoCm@tndIJ=~rt$jJ>e9 zIHxvbV+l;i8Yxit<={t8jE)AkzuZi&HeN+V)z1M>hV@sm5?PS4UoSfh*ElKpgdC8n zupq#(v9n!V%2%6A_4J=#Ub1~tPuO!x!HN@wJ7rtHbo%%FRLQ&GmbU38%m9-^@D>6Z zFhe71g;J|{u=ar9%Ren_1azX{Xku=yQb^r-mN+>zH9WAz>~&l_SOYK$@oU#s9K=u< zhr#J-DG_OezT`MgoyzkiQ} zY>glP0u=&~C+!&y5XOa;#=NICD&hzNq4u#9rw)CkI=3YskK6`ajQ4 z3M-|Yn}nNB&hXaq?>&t4{PQ;uXmWiM!lbMuHdB)gi|s+^oC=b2S*MLT%=A5>H@I>! z{_GIrrtib^@S6ryDG2maX`VOb?nvi-5;SrR2gR6V|M@=1uYXSW7l?Xfl^%9ZDHl+$ z#{_7~dw}RN)o44fZ(qD}_722i-1SD(z&WuvUEyD@+(ChDHI1mZctqv;pN)5oVX|1j zR;Gfbdpq?5pZl!(jG6=P7rb!e9*PQ!xxWYrB9FD+y$5Fjo5fwBS9_F!vz8v-ElAD{ zq5(fBD`X(=b5f&mN_Ax#8zA_S@@Ah}R)4xfEwW~7^YZclf-#>88W*-^+58N5&X)gW z+cI!+|8Rt3l(}e;MjWf0ua9&_UK{W-gEu<{a<}-VV(d+xyzS4IBkTJSi;Ih%4?{mg zp>XL;q-_>fa7%zo*}vmQXT8uK;nMn_Lk9eJ3lf13CZs3Ow<7J9s?Ib&K1u%#o}3KC zA_n`%m;Jk0iDvG11Hu_xCNDqTd8EM^uNETm%F-Nmr=htX-8HrKV%KR5JpT7=N&^L( z3Q9t-dJTP(CcP}F&pTgye0oQtJj(LJ!v}%J#@3zYnz6{5kvlHD_tO6k#o@m^@i28* zunY#gxm-GT7HpblT2S#{UI?;<7xSnrts-hRCai^t=d=gZx3th)sHg?W4}HF)xC zDhI-%MDEV^PH!ge=azozFxE!VT4nMoFck>Qhq9}iX60ZHSx2a{TA)BeUv3P@h{YHk z9gE9Khu9WRY^-Ff^Y~D_8)UnTv)l{#($TTMSWk0GC`1B*Kv-y8Cw?a5!Y}xjF?Ud%6^%vcj7q2cl?gQTCHrz^;ah=>jL z%UZ)_b8A2->mJcgND0i_u4lQc%(S*uy_5tk`#NSwsDEwdRI~w(iQOJM2kZ&3p0Cs3 zMImI^kZWi5Ip)7J7>AS?*#)pzOty#<+!w~@#}VtR?d)w-s@~<%QX@AN0W_9`Y?>iF z>G81)Et0e#*ReOK>J2weQu&x<9LTmI2#Oh9-TipG$s{aYaQ*!uL)3vEH{_^59%TIw zlqpUeT%Vp)7~&1P7mFvWix7oR$&Ek5iv`FJ3T$s0Vp4{g6jqj6X5is zMKN%TNTi&5KGmRoEmrH8)JS=SVI(o$(B|#elPoTJcCt+u(eLo(ot~Lt4Y5ErSEB@a zFpD_l7##-pNeD3_P#E9c!qBjXYpMiiU0OBPsklZP2;dG)Q7utDvZvz2&(dQAb) zRzyZddlRwkv~XmoF&Ni4m!N-pAn>nTglw%8lmm-KX){0eYXI5YhK_0Y7OpY*bRUU_ zk`jR5&;T?FAs+V2vxI9_KoE?13J^dAJo5S}h}1*P7`CFa0Pyp`R?CX4Ta$lp)jFRvDp6QDlM`s0HFG}UIr$<01 z(K&jQ{7mG#-UV|W@c*Jr(xPPY{}o&?|MIDC^XNd%-ERvTPDgo@pCYZ5h*x|X__;jR z#9~ihwEJigKIKnwMxda=s#Ndn_|xMzdZuApHOa11Q)j^Qyl2!20JOy^`EF6{?2f)I zjvBVDT&nzwGVvhe3RRw~;k(5*pvq~cPknFHvN%zkLY41|tllpnGi3|mn#`o*S|&>* zV|hz;jOw@#>}G&T-UJM@gH{**+Q_ofP3nY5tzpq9o7|icPnNkO@wwX|%e$(ZEa^%V zWl5I#VwGN99%`81FMaKHw|#bMg%-Le04JGJtq zp`G}j2iCxWwdJ-Gz55fizPG2XDBav{ljO`ZucjS{ByiD(^DhTp7%I_h&jXSgO{~_S z9n>oOki#CAg`3A@BSuFO!!jyiyb#s1p4s%CmgSh>H2Fww2&ofmYAb)Q<7pb33v3yhe$z9h{Uh*XbJxn%EB# z0o6W=2BzK$|4S%svCh$LLg*%x`$yB*(Jx67oq4#csxYk(yeS;=RRK?ie(vBo-;;Qy zlJ!E!Ww_SntciPQ=)NPJszZ`@|CTpk$2ip|ntVFCw_96~PIx69Jo)Y2hlqj#s^hiJ z&O;iL0w1708(_)d^FtH5aWuTJDoBybPX6Bk!GtKdRQ&zF3dHnxV^3hCo4Ao2>?X5g z2=v@ts*D{akSdH_D>Lot6P@=!8T(~?kemShbl%yS)x>Lq2> zupb#{(CO7+{zLf)m|^KJ#Xk@HqF`%<9*mP4SBS#F@p06qWO#)IzQK)eic;XjgDO69 zv9jm8b1iB-CLp)BSW)X?S!5Q7L`Js-W@Z|AeVNPOPuB`mG3(bgp(vdUlVAXCR)jrT zIIGqo@x*0hMaKQv3KLL2{9QIb^d0~Qe3-4~V@`f?bi^4QH9}i9F={xV{*>_7KGRAe z5-dkF)CrXdj-tVhU#I;$g}tZ@I>QW7kO)4)+Wxl324@09w+P<$0;a3Buju$s1JlZw{UHfbEBgO)XXGsyd8USeM{QuyR z9m=jdCmc2i1Jj4Ji!ZD%wXj2@dB?eBZF*jl9y^zK&yEN9PR{QA3p8XQu|G62lS4H% zucER<)IVpw-%h5(s_xN%`em~skAO3-2VvgI$u;0v1?Q4u%?eGTgp-fRj0C{nXxcKM zf`(BJI79PY)tsoc^6*L(dD27}3WQ(BhkuF9WGe$mR#}#6a%cI!T;0ZLu+qD7^d0r$ z!%uIwSQd)EVN0b7geTF3BVZ3Lz7}e4`nuhz&+IoNUePSiUAls;7}LDf&%TCj_kJQd z0gW}}wIN!YPal;7t!Q4@mX;GgGcXt`@cIw>`!i(NKI4#a4)C(0Jc z3>7Rg2n!e^zaQwS<;J7PoOq=mC_bB(v57hprOELGcTYPajecO@-e<*y1q7Q+dV*co zI{Xm6;GKT0r-FFgu~r{rMWRH;k>Q61M!9{@&L#W)m|>(g8~!!6K}TU%E(QWq)71D; zowIXN!Z5PuxBYUh{~8P$nGo*xZQtd&O4FWJ1!^{NkV=GzkR+|Z%gbJ~#~~WYvAwlI zu9%$`3=w(RD9^}mwZM+$! zj!+bTE1SzGN~b!MXk?Cl-}bh%q^;rq##1KM! z+4!b#4Vw$v@kq)-!UvIj7s&%jmOC$`WTSSI0SJ5dBlcf&gC4>URbn_@_@x zML|Gmle3bYim(H@moNFomPO*ZU z_zUw-q1#|1>l+&)y01-ki{DQEIt+$y700Egqo8hb`W{S#CyK;}P!HwhjWdl~trk&# zxj79N@_WJ*wbXX-W2-lX1I`D-uNIXuA_h^IQZgBBsWX=6P7S{zBdl%0&OfQ~{v57{ zW<70C`4sxG1>e+^5P@iiqW(-}f9n1M88cTUwXzEjE%|M8%Y5q}wbx|@;4ONoP7g<3 zfZ;-tz&>W|$Y0c|_+8_Z`JwR<;DZ_?nUEXGHu?*J-&rky{EHwXeF^*hdjt#&48R!| z6{R~#$1)%{$n^{}J7`xKz>H}5`S~%lXwOC9eeUZW9S`}#_R-ygaa>;XPsk6GT?AZ< z!tb=y7+leRLPM4-LmatrVHMMz4h<}7P5)QopZB27VB+{U+L;~cC>hD2j5Fy6j;p9oO3ilqnvj1#Em|gVF!dsOdKjCh-eH*BLKn&jh5~$ zc*Jtx2N4EU$vj$Sd~Id}k=Z0*tA$wtMv9M})VJw`_^!Ov|dWaC|=;wTr0S?XwD$Vc6;Hs`i4WlP$R$aFXbD@7`4=rj;M% zC$A|++=mtCSXLq4-aIYa zW>lY4__vtzQrKYw&N;rP2oW)+>QS7R(o7}lsJ&coJY!q{U}%Ks6|fD>@|t$>DCyv1 z=*~$3epkifdBLo%{W@34asG-d315Idn+%QSL?Ye5hlq~R z{x;EXK*t48u>H4Cfc3!#o~wzA+p6Wl@t3SpclgA6$`h&=CGRllAhBC+O$mv&UNZgOZF=cyEOjYk{SlC5LPgikMgB_X|$!OI>m zU*KS;N1A6H$Q;|Ot67_lw(iLY?jS<&`tEt>VKq}rc?h*;>GU*QX@$4Eb0`k)cGF2L z3F9>*`#OJC9>T%e?WZZ3#b3MtyEwb|B*gbV>zlCSHJl!h7iSaRQCW08p&WXv)zGHd z;K647qL_5>fK|xV)pcU2IU1gdFd}Ne_7N?LkJNe>mylLmZv=P&VWT--L?gQ4VxK?{ zklpOz+)>)&=lhi#XlZ3tXB9T+u^%;4OBCm_x+tsdG^e=TCT>LVC;F_lwx}qt1ihk= z6^-jpd|Mh@Tlr=_ek)4~Fq5ujdmEm7y4{R2zvoMSj;7gBJHnsP(ix*3z>JK{?3l}@?ytsZocbTak{*0zg|p`$VVB z982i+y4QwpYf0Uni*7Q8Q8%n$E3|v6K2^Z19|OlaL?U|!Cwu@UD!9Vez{8^lBV(SD zkB>;W${=K}^KZDZD^AqSorGTmhqhQ>2>e`keII?4K;uQVpG9FDrvF`Hc&CDd+A0FU& z#IP2AS1*SNw%&p0cnNQ3&(ihvb6cR4nX47+1jq1a7Oze&9ujKiXq&N8pesEvh;Gxw z%i>+$fw#31oL(%cAPcbE?*@X_{ZuMhJJuuYgpD3$bY)&&xiHhY=$wdqkB`bvq`rff zv1y|RlUAoc-I_#ans2&pY#B7kg+5hm>&oG6{ug!PwR;9Fk8eRqRuQ973GJx=WSs^!raaV0dMQtqV!a ziHo9ZwVmW0VH)#FkDpP7wB4{uwHl%5YuXM8*Fjib!Z!CfX(on`hnbr3M#gYi(RdYZ zC$lJyZ30@BN0X||hZQM5OpA&Wx7k|n96nZCMQ_j9PLe=nGg%$8O|ZWMxpa3a16;aB zuI5E?t{b*Ex$R|`$nxcM{ZLE?2%*iFzJhc^G%NyvLN*Pa$Lw>c=F?rc?gXGtX}lB5 zV4_&WH1XS0THli2gsYz6Bk`I9^^9F7a@vpfFz2lSO{^rBh?xMeuqmP9a#2^=4)G42 z$Y~lO?KmHXYmT<@&T>m8Tha(yfvsB0`}r(24B=;%udff5&OH@gfOwQ!bdE33v!SbS zvuv_yQ{|itU{pH~W;Tq1<+NxSvss@&J<`aVB^@{w750-QpDpi08+uPaE}u{2 z5XWW5%XSzXyhPmAI=RqL7oalQpO{GcH#K>HK*jWzL?8cpvm7# z#M10XDOSyLhZyOVmhQGf=qN6ii=I&^dk54GW8cLW8h!AMd`>uV2M0|pWZsZ`l;u;1 zz*4FplBK8Z8;z{BTKM@9Xj!@fwDjTna>w$ev}FB@sw$En3$#?JIASeL4wt?a{Nl*6 zm8&xqV#2Y*#}~t^fBU-=@o3ZWn z@rd(lQG$s2r@*KJ^J85Z@H(zUKw-IpQOVG?{)%vFaPf}aqY^EvB#9)`C^)b(ED=x8 zO60*Sj(Iekaf@FDw92m(|AiJz^LEV2X<=bpsbosVHv)I*_GA1NP2J`C!AZ~)Su=k7 zmzw~Lcw$ev1HG*ea$M_8m^v?q8s<23wqg@8Zfap^=@~d!wo((+IDIo;k{bmT{GP3O zV-qc}`q1mfvshf~)5#EVaR(!BYabu1g z=>$PQe;{!rfa&RjZG=YdDl6^T7fHZah_?UzFfz~sMjFh(Ku;n{QPDmgrGXygC}Xbp z?qT`Sb%}k50$z`lS7SGYlk~c17Z-_I)+Po8|CnU5P1*6e@szoNW-kke=rKVzu!Uvr zXKL14#0c^od$W&2KX5fEI@*$hbr^gEUKh*=9@b^NwEDH-(R%>MST)fj24r6q8m@?~ zP-#ymBLbsfkJ!6XNv&`qU{#Yxnpgtr6hCcociO+gQ5bbQxhZ$iMLS5>C|q^_ehhGy zvU*>dJC{}10WCac+vf&gnz#dw(ERast(c7RVnH-sRpu^+1O+KhI-Yyc7n)R2Dq$*- zU;~NrR;Naa=_rjzlDRm=6%C0*>bQxz z)zSx<@iCg>V|r1YnwDDpG_NLS@;SnI%cc$wC&yF7zq`?@6BA?}91mu46F4{<=ULgD z9J=Z~aI80LqqF7`hHYWxp`bVyFsUq|H&1+g2$EX<&Lrz%RPWL+B8Vu&>m^!yvMmIQ zZ=^Gt)N%z*kAerq@~a1tX|>ema*)=@NPe>F=R-uP_Ax*LY=%6Nw)^;Tl#= zO%fIHrOx%Y-}fg!qNR)*cKtE*!OTdM^^2Kp))0z){$A=*XKh-G$+0KmXw9)|?Epi3 z$#8JE8I~KjOYn3EI;&;@{{+769?CHK%T zpB5j!HfOrRhEL%*n<_-tDUDBK>L||t;nRZWQ^{yknK=OpiOh#OViHyjAVNd8^?+>&kGKE8n6rWWlvS)wr>dMHB^|$E!JS)WSiok_>Z10VB zFA|!x|NL%yc1pGVaUkRhzxGLkBoBJEvAZcT6%`pTEA(2Y4voWgPn&JQEh!{Vse;9_ zki?ZRHfE0U-?Pov&UFqbyqFLO;XP|dQO4l)b|Dt-C0Yd7`!s`IwDO&HBYb*q%y=6K zVCClnjtF-ccQOs+Po3O8?95A%S$)s?lH%$yU$4i3+S7J7i*qSgg%{4@kbHUN;uc}I zA}cGl|NpoE>hR?|?loy*^S>Mw_inUa*W1_`0-Fg4ep$RuS)j?f;Y^#kZJK!Jn}qYD zp4a!T!{+oMcvc+ef?|C-?@LFExSXUdF)jrqf@1CJE(8>(bR$+tFfsQ-Jyw?}89u({ z?=XtS{PM76f;jQ&SlE4f$2v?f`-3bwPTY{ou~f|zXRIVgC6g2;WA`i!Ci?X?1UdA( z91nWN``9DLvgx1SF|A0_7{f{4o~=19u$yVZ-f^Kad_QVQ@9GjU_~~}QW!u)i+S}V( z8~ptBOt&l60ksGt= zUmLflZeA3ob3X+Xjd7;tzuixh<(3#fF&^Yyl_>X>e|$l4%_a@y0Rhb1_-PrHoE71J ze}UEiE(Bs{=I^H=mzK_!MySMQi&oM->fl7w9PC?T3~C7>+02m$!H8~mtrA-7YF%gM zjmvEl7GtX^yZCZ*oiKlYS!~rqe&We}!$nV2P(VWsx?JIvIOPjUjFc@{86TuzJ8F|V z9QIx6barBi|J#eTREYB&cANwr?D~aQetxY!(KRq2Wo)NGMjfK^IY-=OTemM0Rl4tj zl7)HPBpo%)+=Vbh0gHDg5;MadvfW^?kb#RSYN4#!oHMY-X3;O{Lw=5-5L&FuWLtVT+N!SP;_-W#*u@`v-*}rQf3LJ+E{a(@1bBL zYT{Vm={~h~A$?t(qhd2b>h0SDt5LOcnHLo@Om$3sW{6r2$r~-Nv3Zth=|@p#nyGN$ zt2q2Y=jrpA9YE!D3r@fC#w-nW1Sh&3&e8=3&t~e*2EwDV_&vHw3`$Ou$Kf)%^L$pp zgfyb=ZcP7Kr8S0)KBdr=;5A?1r3fEtz*Wmar@k8X@fBDfE#Nmv603Jh3E!Y~p$=Uz zr=PFTREPV44EZQ2Om!QGizlH`LnfgK!@H$aSmL(P+;oLWlrW54{+mY<`gk+AV4gX~ zAf{sc=F5!nA>fv&U7btiFyGA8#-=F?MYq{%2geFBXnXd>qg}eF(LbDz=AUXHMQB4T zl8dawp?ispF$gK+M|9hrq% zx0kTwz@nL(%qRO_^lx%<3~wX*$m<&njY{y8(#({kQpbORnU&^OOH_*ay$Gl@ec>vz ztu{+Rrcuroi>(p5-^=lLP)u^z4@fGBOA>iC{re2Fh@1ig(q$h;mvS@Z+Dy2_RF3DF zK`n7ii+2<}lvj%JICoqR*)32xS|}7W5In--MHS8UYqh~?I_0A`FhlD&6TP3kE0%@( z*=bP_AKNjo9=4B+$ek;_j9@ieL8$jG)$aP`aFh^)d$8DPy*jZ!-I5O|b}kAD0t1yr zh(n560IH1xh%zxEH@JwkDKvgo3mXhV6~X=CIiM@5Q1XAa|Fxo12S<#lwx!Z^0WqqhG>P> zo&_JO1uhBdWLt>Mwt|Oj=l4|;mHTvACBwkN>epz8HkQ%GYTQda`duAnZ|F!fx@cIC znzo}>M^_TyEIBrMw?7^ghcBDXn1yU@T8gp8JM}+j<~xF?BTD~Xa0@?GO>NJVJ2FZ1 z&1neSh~RteC7{q%y$RRlU4SM)Y&9%lN?8^=bLi%lsVf*l68zr-GnoZuvmZf~z$D}1 zg-`A2GIdyFI89(9(jF5HIV&f|qW22fn6Z-3r57jw7QHtcX*KyHalY-|d#mX-I?1gD zJij9wbKF-j&UbZ7X3E$hW3tPU!FZ$a_K@<{(EW1WZNy(4Jm@bzjX}^zexf_CBBkqM z=(Zz!*ZfP<8SxVa>A;T>?Ty+gj6D5${n+)d%jl(I@bbxiLE_ReCf%7oHk7`)+UV;E z-3exaug<#E&vX-|&ybeF&*Ci#%;%L3BtW(_@|WHRN*0q#2TOC2OXUS|%z10rM}gJF zd%GXoJ4^%QfwJaN5*V85PklgW%#+zrA8za$jX<4SfB&za3orwr8-*?NxB>o^ZDxkW z@z_ctJ6Z%`EOk&VvDhtr@z~5P1o42nKOuAaa{U@@e`D(ifd+%y?O+D)>lo3@d6MDc zrE$t%D-luu{sJP^sVLw3Tk+;w?lkOsU@*}{USpw# zUlhpu7VZv@CHSzA>EKG9_umK;pct0Q@^4Nr=do?OSY#clEYuyz+(DZRDD^4HeS>mF zjF!#}%3!S<=G(Ib2NmN$nx2Dnd1`G_RC1}I$Rsln*>22UsYCT14obeE0TI8U`#*>j z56R>)Xw>w)^89ps?m6F4Aub(4DAt4}OghSG?{L8ksS^44Ya=ww>-&#?*9lT!5nb~p zN;Z8#vQ5;*TRF3g5h{DZcfwwX-@j)Kr!_feuxZ{d0a|%@IbYi_eQq+TJ@*$#bC@2( zW=Y2A^^-(Xd``Yk$wWo;gp;5cQ^3OG_NG6oii0Yb`1!jA``jm0X_VL>?!t`M;xfdb%lC{lM#^Q72~S%%SMl_^d6>S~UVc?*JghCiVdgwRApWVr&) zR_I}*sf2k7SBoX z*Qda$$mbJ+E`q^NC&E&?(%Jd@)riyZ>qLD!j<*o4AL>D zOi*ogLWNw#>`MWFjYU&kv3bK80Kf6e7~qxwr6fRJR+`N3`rE>6acjh2YY^>HWV6N^j1sd&w^U^$I80+z~Fx>Q+C^`D0~8$Ndwt5SY{&nfaY zbp0K@60Er+zo5vdzL(_=AW@c1jeqcbOLX3NvP3$b?I5936BC6PdI&>NIY}OWMt42< z7rs>L4)@EV8TQBUKva@vOAM3=15rQFx~7{y$bl3~w?!u{@!j6zR{~a3f}3bWV8I|* zD4BjStG=%8{MR+1&dnAx-l>T)N*AT{UGM7F?Hman={A!cZIRIVCUj!`{sDD6h%qJ6 zQqrl|Qc?d)3@3G9_n%$_r7=HDkqGOxTq%HvBZ#n_rCgCKjfZlM&|QPGMHHNAniguW z&{OsVE~fydTMk1D#LV3Fk<*U)4LYKx%#3>L3fbuni)irF!)3DQkZYSgZef|uB1Jqj z-fvoM?pp!qdSq!3PRnu`knee|8=(>N$w;8Jqp}c=Qbh5G1)#tWBgT{9gqNpOo7^mA z@pwMdj+VyO5+xwNB~8{{)|-Ax#EBR^9wO|Z`5D?MmcK5=@?$#yr$8y+s`>%fDL3HM zyT?rj(?VfetrI7hsM9uSQUbyoZ>cpa|8cV9i3h0o>r$%!`k<12^=&J1%k3n)JzYWK zU(VpinLl<*!Dl_RUwCqEtr%46DhsT2*qBnjj zmIX%%aeVxVRV6X670?q-)2i{G6jl2;R!9C1I>l+nX45g?35Udc!vG5p_lQK?gEIUF zLGhg6iIhVaja7*@ozm`=7{v+^UckS6Ggj#U|bOl9HLag9-@_S>0<7PC&+{y?` z`l+UYoy_p$8^mwpO*o7N6c06V{4rb*K8M8pR-7u*r`dQ?SP_t5b;j9PMxuUPe+nm` z@=8jX3zBqJrU6-> z0U9bGSf%YL%4vVA@KUj{N=G1Cpyz&f8XlpD^qWL(JTL2uS(2Fv%)?o} zCkuG2&oA!j)4@xPL~1k6oKyh`)JjrflZZa{H&f;@jzlz4KGz z8TU&xYe{UY`D!Uc)m&gL>yfkiH~|2>q~w4Jo_`|_Amo2=E3G+t`4@}v^l-%t?q2r) z4^w9q6bBb=>BcR%TOhc*Yvb-tkN^Q1cXxLP9-QFr?(XjH!Ciw-|99?G%~MxDcGo`V zY+3tT%&7aFn>!*!8Rw~_k+6`ZTZ%P*0;J0oD`)ad=(Q92#L?she(yNp1R*~7YpKM9 z2UL&j1u%EM#q%QbLvG)^YL>)ihtW?4W6l0}q8t6CMOFAM@ooAGG2fSZGhb!e#3?#a z{gb^=M}-t-Lll%nA+RxsY;$K7mVngkrFO{BR3dNX_vYA_sTl%ZADLVT*4o;C#;eQV zy&~${Irf>jH+ke6XUf751O|&AsiIF|W|*iT5M9xZi@a+y8)*RGvZl&gO6&S};IS zo3?0v#FRP5WO+UAabL04@oe}8)@V3qhXv=*YO>a)v?j+;>c+3u)Q1UL2MO+MH{rhp z5~w+ADXE_RI*s-|DS6LewJ6feMo3iHE%Qe};Y^c6D&z@Ak$zWJ$aR2L+=YtiTBTmw z)o;H(^oqJ3PQRl0CsEaQ#TGGyDSiJoK0YaF>CI4DtMrZO4UzZvw1m1RS8Tj7TWlE> zv*phwa~aj!$byx6LIKNGvKp)w#O~;HU_MPI%;>8_!pq+$!?)n`B=M4xZbuA6 zsZ*y4=-p=sjJ^Iq-?#^z`1K~*^k&2WdVMeOB-x>Qf4i=&yYwo?84l~&T4t@toTG7K__qhIY3@eW*PD|KN~L)7vbdh9WV! zUhnOx4SSrkY*Y63_8qe29e5i_N!*xpecK$51+>s?68dB!_h+i-&I zZr@DF6!?;hN{;cwGuy+_^Rv--6LY)>o=^zk&FgkR1RL51H??MdE#Xt9Iqp)YvhjXW zs?a+D@2}x*o=gK5)$;8UA&b{4*^ra5zEEqlLEci9)R*&z)|S=DbL;D9c4_4q~6Umwg&hS?j7E-_x`#-?_n+nzfKJaI1 z{iJxNpzwnS^qlpxT!3$%5<04Hb^6>FFB7}pi4jWL(^J=WThd<`7U|mKxr~sjsvq8yw{rX>HOFtT zIENvCGtEl)ayQV-wW&}Ri8Om8A zj>vRCeSDbPWU(FzD49iP@dsP9QD#_tG#YX0Hfv^lT!(^1M%dfl?^#9i&gaRxA#ssZ zrcIyiQ1#|M(m|^fmlz=Vz*@zsDfnE_Y*80i$ubpM0Hch{;l5liU1rI)j_USLb{v-^ z1=mA6(V`?WcOY%NB>lbNOlvT5h8>2?pTp^6JWEIgXHm9oh9dLjzu{`&{ZDQh8fBxK zIUVtXc*vL>w*_IC=Uzsw9&mlHB35}~k)J1pX)yy0w_=>Z2azbILRM6eXk z=tHU=Jmfh^YqSrT@T@m+GoD}bt9dKW`5|d0Ebz@j@m=;kZaZor!p{6WXnJZCCYDJN zG+#w4>J{8K)oXCw{1!`b8DF@4`bzaAL$)ODcW@y;k(TSf(h{mad?U*UU3sejHrwM^ zfjd2X01F&}VPjV%8jfrC&DRfZ^b%8xcT#8`oQRvRTjWbQ#N44o_ub_hx}A7Azx;LX za8zdkayZt91o#lY9W*ngR4{C%-#}IbKQopi$z4Ac+5G$QD8=LPQc)zp>|J|L9{trN zXTTH=-Q0t&NGDoy1KxZ^V-{##g=lQnThW?`s(@DSjWja`z|LRMNdjxXfqP z`^kej6TK_LU;C!JD!1rbugPb1czI3F>A2M~ z4un5O@Ofzdq|DFSQ&p&St?qQi`FMLm&Uz>>jxz?Yj2|Dw{5Ech6tgX%m~m#(D%AW> zdj;O)`yUM+88%2mysKz5ojzWR#qY!We5H%nC!B#$whUdRTM0Gz z0X3+YBp#E)gsw>5;}<<_qj%r^;n1f?u*i0x^1L_wUvb#Z>l^za zBoA}aR9JFCRd)2hhY?a=eeq0k+yl?&T}Wazf}c_%m+v`S3niC(vsU1A!FttROAbZw z_Fuo>=ewI$yfP%g!XQniK)4)rXnL$)mu!~L^(@kYSzZz<^37@r#Vv-XR=7rmoTRs@ z@-r|${^Nce6`rd2Syom-LF_2jhyaEF4s)f!G^nn1$=hk$-RKr+Mdk=!wyfUO;H!Nd zb+RZsH;3hV;K&+PfoQoDl>=8`f%5B`NuYcs07I5tHOnE#6q83JoAo*OLy1TEO5Kfr z_6nLM>01)$UO+B3YUuq*AYzw1)Z}eoSlXpjGs|IN&{&}cqOqIfvRvZ+O)VaCFR6tm zlh2bV;tMFuve9R+ zy#Tuk@lT7D9beF58BCM)W-L@#?A|g-cOR+hAD443fH^r+`2Io?DyK{?!aw@=cyG!M zd7W)8%Q~&q>q~AsUHTpxzSwadkW2b?KTfr4f*%=x@X`0vQo+U zc8$ZL09=N@qP%^lsxD#!A4RnhEpNU5CZ!6k-z@_xc2ilod~~{udApt;34c;h7#AcG zi;j-6bypP5R+uGa5TBoU{mTCf3x7t4=!M%zq3f}`-^_cXI?SHuY<7yLDv;xBu~Qirf#YM-NxbD94#oK4 zw2?=K0x0$(C@ek3PQvzTM)H%FgC)BD4{jqYR%dFGVSvKhELQ_E(FRY40P6X|6Cx|! z0cTlaVoUK%o;LHO8oY->+MHMHO6nD}UR9E`iD4A}Pn3`Cq0JF8c89!E8a{LM@UOk2 z=X%!UWR)|EFk+!!L_Z;XW?LLg2xR6l} zy?*ZTiPRfp;4D?Wz#M75`2)#_WHSNHOAzp2#PMZUSIxIYuzibi8K22sG#r|>5Vbrv zjECgP%-wJj9FDQQ2rA=cQK5HLk7#|>rQO0wa2bOjEd;y4v#{4PgtkO-RrmcCVOB7K z>~Uw1e{MK^m6ge&hIiHFi*s!hnM9d1COW(fO~5Zm1T;}mf`I!C z3T`mU`%rNNd5|KM;$TYVa^i&jZaR(q&hLo1dME3%Ls4+T5fV?2bk1+@r~h>5?b0aQ zBojfe;V5;@cX5k`eJRyn9rO?y=I6hrS=VmbR$Km}KA}w{LN#sLlRlDCDg2HEn_nA& zH_mOYM9VGmS)a_YZgu2%9kHT>x5N9?6%b_~@A;*$p8HV!5vbCdVSp=cZLFYeR7D-uNM2VFngteW*c|_-TrVJ00=ohb%6`e5H)W-x5&K{ zFO}0{)4b^l&K|V$?sgp!LoowzI?%iKW^6P=)YPY|GJJ?5X=6W(Q(Yr_op;7LGe{mo z^6F%2k3Ym-|6J8TjQy^h`ITd%`-@rVq58r~mH~_e;C~VsR!wFmeC|nPYKa%bUoUec z&}L%DTNu%8QG*$mIiIePKF95pdX>1~bLmZAEKgq)EB@Fy{nDOUi>}KI^VRRo0sdDZ z+|3WiNzNsDaZeq!D|T9my31G27Ngh)I!!f_;>LSwRRxQrH?L2_&p&*l23Ygb?>y#G z6S^Spbe^;smD$Dp4*Gav9ISSW6G%tDWWMdNqVynT);mR)E``sR?W zsR*Kz*c&CDbK=G+on!O!siz$2<6@D6 zBL@r+7>Ks28X|U^uv5v1n)I<7{L{n8y%`xDt;QMlm4yYoSyV|OW?K28s`e*YYJ$jV z_5S0O;8@8;R+cj?OillH)0CdXX>`-n@vcUI88o)@j6Cm`A6=aQ5D|%LRiJ6Ou3=rY z6ux&#{P0bALliTwG>IWpq_6WeCId>?F0y~ua&OY8U)1^_s z?8(QKhR#)V0R?hA=^l#cnY_E|_2hH=#bP<2+_Wif5P4UwFp@Y%KN{;wAXkJ}8| z#w}LsSxNXqs?1WzK+SwV#pbuucotnH6sURoom8;8N{egGRhg~AryWh!hqzaG>jgK3 zX}-W?t8iiciuPTTkR~c-Ezs8JPg(Wy)|+9+Tl%Ao69X$j07n4nuBsxmZ*IeCOn0Z; zB4%lW*HxGPsx%=R$bW2}yRL@pu9KZ|=sVee2cg9F|2qf_1xPUJAVaU+z7X8%g+NL^ z5~kuG^nm}m#ArRdz8`PTjMC3V{LUFLGY3Iu`EFYQ&*Mrv%ye1>Iw|#nWnQkqUj8JZ z(FODm;n|!!Y2GzAIl?x~6iY&DQ!?qazM9E$63@-&l+{IDksupN!%}BWQM|2@n0THh z3vRx6bY@DY`0qxN+fvy*nf#YO@(+<-g39#`?}(c(#DD;|!ucTuJw6wSjyiVlAXT=B5PNAs3qNtaz8!uDG8K64x zzw|TC5Psd-!s9YyS#vp)MIeobF!@C*Lbev1dl?!@2ax|g=5!ZjP?9YMu~ATIjn|Mh zL9e@(@W1CAdtEmdh*z4J{yph#eix7f|by%HU@?7mbhMz!X%wk%_5!k~hcpGpor} z=(^a?$4sNRk@5?ma@TDDFvFx+k1$_Vym>d=>hC=~NZyFU>5hn*4ai#srcEpIc@(rZrMHb;$uu1v&x2_ZsXJzP) zLk_~Nyj+PlX=o%(Fy9}RZ)&SJ(NY@x?0V%21Rd2eLPN}Cj?6UN2cLUvnaTF$?>im1qd@9H;1IM}uX@I@X5GLD1zJqv6L32BqM$I} z2T7uj(b~{Fb#PfzMWLkEBXUyGA{bBynnLC_-j#)>R;Si2mh^C;2&NS`=qNtEaHBt2 zYV^hKmqs4)(#<}V!C4X)Pom^V%H`UucVX5ag390gT8^IJ5fD_j+adQxl!*L}o5rD! zU%YQ#$NWD#_%F2vqTeitUmg&uzgg=8F4ofKcQ7ZemXM(15iuj0!cGL$KDj)uXU(rq zaJOkJn)TPGR{vBW=VtM`v9QN#8{@yi^J%A@z`skNqWwR~Mh^4a#_^4BN8Y(mw<~c%lM!3wQ zUKC>HT%)^~pIwto*D#`&S%8@_e*A7Iwl)jx{d_5>Y3{Y%zqGIVU7I{ekN)lTg4?Rl zUnHM;|1{&WVGQgp!v^;~EW}Qyxt_^pE6E6|(&NM?O3G>;kiId~P(V@fzT<WMlvhm|&>v~0=B*&rP*fR|YL=$ez;4xg z(fPCyXP3%U%^LvY*Fsp`@#03m4&n^avJ6%=%3jowwNa&TI#8elrX4yY0-*O@^Xh1G z)7^KI2vlXz5D{c!)RInV7W3IGVX@Sr%X`P#Hq7Tq-)0N)@p!D^HT;Rw25afA`0(9= zlajFrdTX6_(u(?MRi()ys1nR|b+98r)3iTl7$8B6`HF>1jWAp>5HkZR(Ey@EDh0~` zb}p3Fbeb7$goaO#6PGuq+1D{x?X`Fx&K~s(t9HvnB2#xmiV@#8BgzDjzxT?@N!b|x zr#Fn-*5i8msZ<>Ca1Xkgx^5~k<8Gb5*5QsTnL5E#ODRJ>!_Q=4I?aGjO*J-8EbQ?* zx6M@yqQMwa=0cQQecSGRUt+`Qh&P$!X2IiH8Pc}R2&cosPkpQVY2#BnX6^VSnu2Fu zC4_;k#H03*E}h%>zl6ojLh;rEIcYvax79cz*S5yVzIH0lvh`!K0C%A=ReSWg(Uy3a zkBc|!P4wZg($x?b`06pAx^zV64blkFFtB}jc5W)`5&tp#)usM4*;avr9nj#p$(BD? zoeRu>n{i&toa75QWry26-7UL8@Pv4Z45_(BPhezPq@-EWyunIoFlNHCGdjuF>{>|7 zJ}^98tSWz@*zY~xFGgg2qbsYUksKy?(6Vusl*;P;yUGC#{0^q`Lry^p5DI#7G}&&h z{iHSpfMUr1uG@9T41e{SD7)Ecb^7yJftXHe6a`5C#Tek4LH7BgMf8VG{Ku#5@k%F@ z=i^E2b-=FutPRgi+LH2@OVh1iN2$|YKjoA$u;rIi0BZh(R@z1Im3a+Dyf8X!$|lOjk(T5QWUyWvbKRJ?}`Cez_9LZ6-2H5p*R_EmyR z0l=wp)KI|L4pL{wDWzDVpI`UVZ~z*R1l>gOksh==|l1CbRP-6rd? z^9AuskK49yV7RZ3ik@m{m?-jm13N|wbRf)T zi3*E+9CneRwG065c6yP%m`_5LG<^Rz?RGO){+UE$DVLj^lp<=4C*ywC*gZS7YD34A z@o0ojLr16S<99b0mQ;l_l&{p~KbYfNczRGo4V>D&eEq66WtuV{Rm#Hvy8Q899Jhck zs%Qh%_5bn@b|_#wk4}kFsD|!+Nx|cWs`M2*8WtDjq zEH$chgoB1OhuWv3Ifee{GFj#H@->!)Ya^1sP1)BGF&S>6H&mnB4>v5+Pr)^LH+1eO zT!*_K)(jZ2Z^CI#O>(b*kUN>qDOYMQDJi)`)E~YO2kFx3bXo~U$Ax9sw#j&0p077o zXKxGy?6muqk5;9-;pn3A7a%R96O&g2HA*0qv_}Ao! z{PdxB4HWi=&V>a4hmC;|Wn~P<_I-s0fXqwaU$m)*ERYC; z|NcJM39wqjQw9HX&YWfoa&n3J%%824v@8SCdJ$!LI$h*p=E)M! z(8e`m;P)!n@$Z(fY;+L(eOdYYg&G0kN@}8)?!zAvyDj1;qeWfh60g65M>lATG8z2d zZ|7o~VM!9PJwPkcg{j`PQU%t4etoYeoyPKv>!+K6k=~_kS6(c%5@PWX_9JVR3kHGL zk0Z^Kr4$xGL+Cd8e^EF21#q#~U{RXj21+%^grCUZt}aykBNMm&2*H8WIwm*OlZjg{ zbS!aG7)XDbNA*nvFOYyLQ7d^&mRzShf_RU&?8%>B-f2yWJbM@O@ zLEBw|ooudqaC-e;N|DH^Np(HV=+c0)c55J-qId(tS9b4E2}VU!Z&wX8f7z%-v%m)d z+Sxm7cQaZZEhfxRSVtXC-sK#amYKD)AL-5|52X*qvHs*1=Cf`S&QpvGSkS?LVAWMh zn>xW}0`!ZXQ>DbCiyuz2XB=c+MzFWC1+bOCS$MBM2`_VKEUk+~i8u)C7fs`Yu}_BI z3^zvPWPMXu%k-PEWJAv>r89*CD|CO=Qqd4PQN|_M-7?M35wK7NsRP+Hl(r)Foc)Ds zBZk6N*)?2Ww2QB;A>R6nSFrqXaNXcBhZK85kqKFR+KLFM@A=)Yb3Lbh-yfEFy#LkY zS!~9D=1+q6`KY!t=@c;=R98Q-HxyAT=4z(C}aAx%P z^r7W*x406(e?!&gcrrW|;qQL>_AZFp8x|!~-t~^v>1nxK)NB{~?xke$cwk8~o~9UX z8Me^Sw>By{yzX*aWBFYsZlkbBw!Fi9>ve!`a}5L5f9aYZoDJX>uSPBsviRP92@VZ4 z=ukyUIreVJ46Niq{{{1HR|MQ7SPx9HYZF_C_D_*~T9Mj&G(P@i`&NT%mWzl0hY_FT z4vn2>+$R8&8?W*U+lkuT{P*#oG>~A2ZvIKgMk^Fs#?x2YAg@~37BfZs z?Ekh&jLE}IIa77>P7m@dC5r?Uf86tA`&=q%4UKZm>YUyMI&0~86QG0)^9ql=_2$Tb zNg-uD)DGiId#Nu}5Qe5!w}EleZkzK$Lm=&CWw5w>C=tJJNg8kc&1)!={T6F}Xfjh^ zr7_(&z4%|#}>*F24K5f=_WAe3#an9%}%`g)s~J} z3^|dc2EjO8L9tk-qNg1_Meb*!Mwi(L!EuvU(QR(EUbAo+Udu^i?|>-qxmj(iJIA2l@wQ7=Q8B<>97jV%aHO{RDqQ@@_77MZpO{_w zXx`eAo|qVwtv=kX{7d3;pkJznnJbpA3M@nM<glk&ie$RZA_(&05z&yB)*&YqH^8Oqs0b&R07w{lGzGLD`XV?fM+QHTAn2XL0Jk?}cm7|0`l5%5JjULqSSXc# z^U{#&L6{PLQ`-rntWrNNsCy|TAC-hjvy=a;o{@i$4tQ{^_!$o*5jm1Hinp#{g}zUU$mewcSEm~-fK`jcQPTZmCCu2+#Y=5))+NOD!$ zB;akd`wJ!eaAhHMFYZ|ilNlp zR#5=|p}jYfQ$@i%&2veq9b4Sd;fSYg(prk68f~F5>_iPM0!J&M-}|^64LzsPU?es) zlq1DBJS+@>d_Z4jKCw+)fCtL5q7K4#VuTJueIt(5jd4h91R+5TM(~^pgnF;h%CsB*`;2 z^b87>@!c(FNuI<0ZTLxzo2!O=NJ$TkU1pyh#f87Q={JGVa9)*2>!EvxpPCoH&{D%0 zSx4=&{=vDwywFQ(;9(;4vB>FZ?h%ik2M@fHpnO%N_UA$q3w_i8tYx?S?07ruZiHp5 zStQYedAa#FIyx#_pn6^#emXK3SY6F59y1SLnF9&Akff3oc)iOL8--*8Nvax1K`ggSQHH%CF%oSe z`7vM=<8SPm=R1*_NIaYv){a!D$k!jF2sxzqwYqay8mpB4RM=s=1IY=0n1XVGZgGXO zglcZh+pSLS152-B=y!^Q@|0tTV^j6czs93lXo{-)6aVX3%o&g0?z_$%sxsRpcU2c5 zYMT1XmEXgzx<9wZnn3w{Tm-9MUwS zOl{usL;^R&LE~BS?8K|eyVj(C&H_1+t+yx^l`z1x;s~jyY%KI*y2y$IYHCW8yGWN3 z8oHpX_p9E)c_~)Z10*Z})y~|i9d6&v0fhV01(X-AoqPr#f#OetIEt@BOM;{Jc=i6# zVL63e4T;I_kj@)O_2=;HZC^j2UlSF7;Ms_N`MLq;g+kODFks?-60-!AyGT_hogblF z{5HU(d%j=1OteP)4MNd-2*K>;nThJ!_xcAU z%B2zzCZ+%hC~`~$>5t&P(-Sd}T}BT16EU3BNlf~cH2LV@GHx~>wr6;m@bBPY_@*B~ zW?1Q4_gIJld6tGg#Ll2u9_+|C>!J~FvwCk#j~=%$+yPEf?=-i6uB)B9m)DQwY>M;n zwW#MOA%CIwm*y=9m$WGc%D*(BsJw8$VN@%rnS6yaWvZJnlAzPS^KP?KCCxP*T0LzB zu$9qy@M(Q(UO?ebbo^zgE8?G=5CPqv$rDQSJmpAXPr0u$lqa3Tiz(l3`bg6Q`hi(rxK)+Z3f@hhMLQr}2-Z}^1e|+ncX_ua$S0b2*s@svm+aXT zDNvf9^c>39>%ZCAeh6~eEplKC?D)mm{&8lgX*~Q_U!4`pEM(hix15gI3Q49ko#C{l zv*fb`_3k}YuEyOz@Z9P8O9Ca;(7iY!$)VLdbpi47Za1}2wUXHqT%vYU!}_~Aq&K=! zLncxy4aEt6lrRB_hQ5#(`0=OWcAqZk|JRV|5Uzv)jtgXm8~C){p3@?TJ|w!Y0oNP6 zIUzVO-$>rL^#nQ=lH;cr@w6ooQ@SCFqoJ<9`5*2a2BonNCEnDSue)1sC~V%LyY=>m zecjU5!uyGiHM@@ptY^=cI>qGyA~dMn+jIN`k%(W&4P*z6y8q2#tnQ;d@~%~uwFAnf zFa+T7;gFADfD0Mp1j|Cnh=@VhvVeBYC_2jH z-@&e^wCCi2Hu8W_*~`IfVRJZ2AdW2B=4cqOvz(hs5ihidR5%G6=NpwJ>LammRKnIW zS&fhRqQN0LLfw3ThpBnwL{pRxwr5fGK>U6h*gCow>k+%B%Qu!UILCG9$4B5Rx@{2n zCjKq>+jWsM()Q(0*_eSC)G(i@^=1IzU@nI2>L0u5kG!fmy;CxBwGXM*r!7RYaGIZl z(Si9ZJ;}ZcvgI8U0Yt0Lo09F0)b5M#F!W4+=WR?Aw4vE3HTHO@C^xAQp^`jV;T-BSK_aYd#EI!kC%ZN$Lx1?0VGY z>CVkDo^D^LfuWT-X5l>DrVBpIISZAXPH^=RCVO~trR$38v*GZ zaT1n#EYU?Mw_79v?ktGU`c&!q##_6hPgSLH>vQk;09~jnpcP&rObo@LhV2`cY_4=RUn%5$ml*kZ+9XrPXt|)`tYgK=`$SzWP!(PjRuR1qD7baic;9%38;LuiH(X< z`;qQ`l!WR@y?Da_0 z^JsduBiUbB^liDf)d!W*gG!YzZ;EP9psq4cJnlVG3vHp8yR6ek`R`6FEv6J{xT1vY zGvub2$)p!}uX=H3d(KOj2KC!r_*yOJ6SUAzA@ouX2&SI~C%)8cGqi_|?xewYK#YzpC-&$-L=Tu{RLdv?(1>5?v=rY-< zkVUm?pw?bh%UD~u+fcIsZcG#r4wu+bxcgF`vTWun1p| zYAHq(3)YgZlr9G!@xjT?2ybjnEX1)0Cj2fGZ0_cc)fa>Yxi8{6F-yeA-glGSmc6GK zi!pgziUI%rx!<2HqY^Ir2C0yTa;`6?*xxvlcWQqvC{3t1C;BV?W8*jaZ{J06*&0>k z4fuz=^?%Mm002IojJSxpKR7m{S*ca1{+g)b#2WO8dJ!WDX-c?D_IiOIoxT9mOQ9h!GuGgoea70D-7RxxM(6lBl&e;>X7e zc=O6%7pjC7_w#;UX`ds;(C>a$icu12zbCcG|M*ZCY~DRGKHcU#$fZjM(1nC(P&5+U zJ(Kw1e;4MjO{u;s0F+tCNyP*@IfdPw5AV!dl}I4#EgUQ)k+MUTl>|DxB=f>wuFFAy zl3i_ov)IB12EH57(e-}#yw*Og;H#sw;EQC5F0wiU6f)#Eei+2ktBR8a;H2NCB>&G?5xFJYueHFa>P zjBO9q^w~m;@|W`3sn`Ty?nOzf5H4404Lc*#v$Y^~^JA#|6M$Fu$q+kU~`~5j}geR>^K#4!{h1%wpcP=efO&L!QlD~g;o`i|$ zRgtO6o4KuIkWvX(Dt6kkVEzzf;Yjh~W*4TIv~`d2MFf~rZVl$9ER@Pa{++Ki9miQS zyeQx9Gu()ZJgU-f2R}o&w2Mvj;!;v31L5e}9}mXz8EmyShSr1~eBg3mMWGTE?`9 zChFx}ok-Oi(9js*%ellp5>Xx!|7cQucjCl>opNSCzj=z0o<(4fu4C(gRE>^16oae^S)?YCgbMDZFgHQ3V1mza50Gk4>BaAH@aZ;z3v0L zbHax)G4|h-f!I@>v#+!PO(~X6U+p_T5dJ-W&7+tKUV_Y|)yv{%*MOSp;?jZu{Q<|s35Yv)zFoyC7P#m1Wz#uKuwlOCv*(HL)W#^i&3&b|8O zaLftf!DhRtJ!bY3v0bvj;(PAx~jTh-1I$C;Gr{0i<@vzDB*3Qn|Js3COJnFvEo6&-RA{MW1ut{ zQ$xNaa|~|*X3~Skx-aq4($ch_-U&8X%pa@IjuCAbF+gE{24PHsp1sq<@lL@ylixzj zZ);QOGS}hz+R=eduak+_7o6fns5Y^?Z{M8!0YA*v0>=FIaT@ZW2_B3}aE>GaHqfG? zkSg+oAVeU4f*c`;n>5!4m-BOksKBN0!ATJV*?zYJBm0Ik!2(J_eY&`o`4a%nP89$) z+*$A|CCD5SHC$cjfXU(f1b{9+C83j(t=?@J?oThnKMyNqLBp6Ad)}Jy`&ut`yV;w<9)*9(hhE-cp&Ejo%qo~J*D^>$cP-YFsD$k_<(fI(K9jjGn^)< z+z{uJFkzv4G#nKpP4!E%v%d5G}K{IhYy{-DHOB&X@gMmVMSWnTw2U9dVr0&vjExCIXA_O??bp< zCvi9?gwm^kdJ6WnmL#AF@SW>3dLao@`;Adcl~|AE>`(W#pk~CzzC(@DhJONE*}JN7 z^qv_aG^SFfqI&)P^{wO&f9l()$XV6~YSJEy`KlRlOI0`*a}0LaX`5nCHG{D z`D|4qQ490P8@zMsl=x)jywZVHg8*Q>TM;?P;)~ot^Boy0YgOHi9)2k-Hxg0+#Bktl zssGl$$u>VUNCn*7-$|fR&JYQ{v6{SSdyeHInp+bkjMTJ1y9JTkbpKw>A)U1@!h`c- zLpQ6M;8)e1%yhw{EuJ#o`-grk2e32TU_HP|cbJA!;<(DHa%otC{NG_?BudMF!d7cy zpxjog0R(7E=;sH_;GU99uEZ6&e-la-^o;!^`SrPwa;Y1g1uJ+-NTyCxD<%K*oqskP z1M~=eK+mWM9k>pcSC9)o8$Y`uhCQ{xv=@>HHX`)jH(K!SbNF*eehHnl(_NmA4|S)h z-C^&!PsfLTje4!22u)`4xZmuy=`~nx|CQgBs8&6Io>pjkets|;OITJ=AzL8+X+Lwg zvgq{4c-Z>V`)|m+2%y1OJtdVEduNi+kIX+MG7cdZ1|6+^cZqOUKOJ$oj-e}Kf`*|I z=;?~?cn9B-oW46GLF(0YbkKR!dGo&9I7t#5!SkX$ZS6b6|Dhj3=E_S5pdHN$KjdwQdnpXu$$b&2-1f zror6SMdw&6<5KG45|2mQC`41EEy1`k5+p!nbqW{8Hwiz-cU$(vA0 z8iQXTjLffwMxaMr#>(JFnV|HuZ!xF`?)8@3AAIGtgHkV+=r@p#mgQ3RK7`*?^u5Hm z!HB+puB#Yd@bChPPK*B>+4G(u`5%%S@W@F(R$@tnJU0Y1AzKV9{RTZvs2hZMr_--wsro0bn!-Cbi}4$>e*Y0FHSh)NYuq4l^Q7bz1iJm7 zdVmT)6C+d4)_cTC!z=s--%PZK1|=*iF`}CiDwdjMCFv)FBbdY$RF+-4&Ygd2&DB9f zw|gPEZl!+4z@_$geil1X@=0R4OOW-kS!vES{ab)5?{L_x+j<_j_-U+swa|wa@1IhmW zZD7>voCJVOC5ly&Xi>vq!MF9%njQGUNAlA}5-67h#i8&d`oNlb;X;ES?FWQ`#rdJW zRd64p*wJ3#0ZVp#fG~aP;ZK_Cd&%wL?W7vGCDJ>Li~R_VP4%T%+?rI@0?Nj2!r+|On}Axh2m^Rlwzm8Q z1}U7%B4GNbt3x4jLp)5mLogscBbAvdjs#KIj|37FhQ?^XbCriX<@;{c)-p%7Je3)v z&+o?l(%{E^h4XgS={BSO&haA7BqpY_bK^oEkVcnTl;?e5MkFPA@2Y-OjLuPx_LhRg zPZXp#K+9ZB;jS4m!CuJYxfWee#ze!^9A@Q;A!w!9)1T}>hoz+~TS)>@<5Hd{mK(K&8HOsXAEc4NLAy(MI5o)Fye)~g60w5^VTzwflz-O!9RU@WI#_v; z_X33Ih7D`kQf#2)R6y}{*`Z`y> z_-m2}NScg+3m_oml6NN}_B~{2Me{EN(rFRjTml0jTld=-+VJfjK0>G2DnFh~gj|Ij zE?C=3y)0^{Z}O4Gppg8^!Gp2)1&tbLsd9|a^xn~k30Tx$A^@9;ZvjOhvQTU}Sy@Zx z1&yLw3k@voM$2T!{SN-aBTW~BNf)-ig(1>wT`5g}Jk=H_BjOq)AQd|7=l1``sqZ@H zga0`@HlC@kW43t{NRXJ}A}*Yq_WQrQu!uo&v+;D9W^kzTMGM+B3BY{ZsZCbs8Ap4D zYdT2KpG@Hf-hI(!n)w()${9)Q>LO@eoDT2zZ(K9p-W@giGPxJ|$PKU6Ai%}ElF)EI zD!0Ml`?Iic5Oucq7lp;?kV`SSzoY-0D#!Xx7Tm!Ec8ozOzfhjG5{yx)GKEO|K-on6 zK}xEEY`Q)N*$mSIr{snBuk8AIMoMsekI>r#2f#Q3qog17qDQ1!U+}r$ec&F8>555k zy@{T;$o$Rd$VoH8nN#fs>l)V=D5E^Bx5GbL-n-ytyPUL$6y?Fk7#0#_wAshvJm(DQ zm^>mA(VzC7!IJBR7RcWq1r|;o^F5knIFgYzRXlmB~q zU@>YMOOR4SO3GA7pWC`5B%j>=bxKO&nKY_ zIm!JSum*z3m0_HekFTlkqo_~D(QuHXa;qpE(=O@ZB|Vde2~}!S(WRx5q*rE4x0%QPe?47s0BXA3y8mg8*er?2=^T7VYTR3#3&>bib#I9$Ecq3)sN znt43m3Sv~>y>DPIKQb%=cuY_#Ul$GGM~v+V%&1t?VgSn>ZwLMlQ)d~}1{bYs2=4A~ z!Hc^?aCdjtVuez?xVyUrcXuuB(4xh?I20&QxaoK9nR|caS7tJkEo(1*pMxlx$|0h{ zTrAL4v<&AUx<|YG^)<>5F!B!qZP&8C33QgFh_lJC6C<Mm6SH}`%cv;>8vM)tT%FJPF9 zBe!{1Or!xD@GvQnp@{Ee5VLcJGWmBH^WK*MW=c$z+1pqga7mYq50SR$Bdx{7kqAUW z-gpM@xq0iZ{)5(z{%9jE`AR6Ho+kCOLz$|zR??A-A|2s1oDamQBmPP9mYRQajU;}( zvj&MzzkMSc3T@PEFdv48&~|&n17t=D#r+v5&!i!}H-p*M1ynuWbI;ryXN0)y{}~S` z#_Ly8)8U!^ZZgZUcxP@ANPpwx$H|E}myg^n;Gm)*d*uXErB+fs%{Z=ar{j!DVHt|- zo4c{MOA(GxEl+=M6vCP*xgvTZj#yPunNfm(?|4QFY~@&4iI{<&@rV&Is+e{8b@GLb zz-(O=laZz*GMu48yYXxpf+KmnT1C3!@Fz?9q}|WheZe0PZ+=Bb&aMoO(dbogD{Z8A z)6aMYkD6!40;q>xpKuZ^=R}pmswV{dBn3H_!gsS`wLZ_+rD%RCdg#FspDKr44}b)Q zAS7-K1xN;dmi~3c{X1>Z3`QP9@R1etJTRUBZx#yokbv@wZff#~r+euPL(*GOXtf;F z+J=zp8RkH|nb7wE>09j}ZlNOr{EQtZH@eraUn_?MQ1eYLBbAjxaOifQL8zhi1^wR{ ziJ~C440>KTG5D$A2aU^y;K8bQP@p#NcOK@%bp6OxOWUMRZOLa@@%Jr^S6o8Y?MqRS zbz~Wl2mV?rr}hW{2Z#>q-Ov5-HC+s8_Ob~hkzPIBWzGvV`BqDHq@Q?r5d{HT2>{JB zz+`GD3ElMT*Y#?*wS;gt>l*yD#a!q+#_YJ{MU4Y6uqdQ}t1gc-^Qy~iUDQKjU_jr& zuRTuaW=hu_%C29Drew5?(QH+`o7+EDYT}`OIz@ZJ?i|$XXI$+z$yUFXl{B}67wYiJNowi=H zFU$y!&>p5Az%Ygn9iCu@(kzeHz_!yc%s@>7<3n!L_t_P>GWlwxedgZ}kO5iQS(_He zD+F&{@26+@ouh?7n&JIw?T_Kkikm4m9W48p8Bu^XCm3b=%FZY5s_4Z(m^du^2WphO z^A$s#Nxbu(NZc1h1WytHxNwm;7hKRdRW)KZ)@y?&gLwa{PK{NU;z}JMpBMXPr9psjGh)c7@{;P>YP$sT zs&>wFa*v%rkcIU1r}T zC-W~D8qfMewsOixL}oi90}}0y>X#gFSHX#=9P9tfeaYj^UiBLzd=&b6>o*S9fvKjr z%tz-e%h8gEu4RnkweRPF4QX{;8p|=*g`H2u35HsasVde?cCxZLWNa`kotvE@On+g* ziJ4|zm$A;ae=?R7stWc(yO1M^LFZTCnU}EKfDcMfazhsKzLeClN$;9{b`m}zbAP_K zKM~I{{9;!XaQ|lTg^hQSp0}T4nm;#t59Z>}SnuOxj%%0ZL2z@pB z+O1WM*Q&xgZg#+cw-d|Jcvp!J&cwV{f--Gv1P)|Xm-CGQ%a{bbdVQ7K1)yeJsm+Ku zN9)x8y~i?1Gj>)Gk1i-qlQOQyzW|!XITyM1*DV37L1<7A)O3MZ|ED}Xnz^HQXeg-n zclMG8*Zsv#+*;;Jnd!Tm?OkEW!M@KFeS5N;&J!Z| zatT~P4S4na-~wwB)Y(b2xX6j+&PN>AlfB!C?jLl{VpaXUBj6Oi?Y#*`oyweDhPSCH z&J0v*wIrsZufN6)Mtwn!uUP7VW;tgrv`ye`XlN?LmRUy4SWZ2P_GBqM5U#2anG?XT z1(er6@5+sDUss&Sa{r+1w}bw{$fwtxxx~=b&$&XM&|d<6qLI)%D-~^f(>!a>O#+lo zjFpdh+wciRI$?~Q_Zobc$VRd{2S>KZWpvO_HY@3bg^dQ%w3zUkmN(%8olg8nj|IVw z!k-*+Fq-U8UtMf$0G2p7f^#zBcGTHk=f;9ic$W3s{*N$V%0sH4{vz%Lm1Its{LA! z5d4gRmc%b~*6Xo0oEBN<-E*r5TLkYQ#cvAi%?+VZm5gZ`yjg;paN06mPwLg$Ef;D2 zvm~l7j|p#(a%+iL)udBr0Sk|_!3*{)*AH3F<|Jb0Q!X6qkCkJ%LF@;0_Z1;e&$RMnr4GX#^f6J1Aj?|Wt z4WFkzmx65uwib|Y8Yd!ARYAW5ov$?#g1Hx1tSXl~yl#lw-rGuLxgRMml;Gcg5ssIH@JeK+b?kux+;$(1(hH@u^3y?u7RePCwb5D%kzwx&I zYIn~CLz|djCcHC@F+JdkhuF6ri}mycBFy$I)A8CuK~5h3)7Q)5!1A%%fl#pe=N+QOh` z$Um?!Yh0;0YO)gW2X8CzYM46V%fxLMA)gCNbafsz1_%Q$OT2laC*=O%GcA4D&SKVG z$2moKns^jpkP5{bNL0;Y9P&ed2@b zLycS@*NnN6RmNv`5GzFM4A|Pn#D#W-y1uW3yA-}Je0W8CA^o-lygjADs$AywP21R| zz|kmlvyqX(-!woCi9!+!`tl`Nt58J5(Rh|fn;&Wim1;Jz>|)Os(L7v7Y}xjTaZV?^f&NK+G6`+Q*BbTEhzXHnS&GndbCi3r z9~C_=#lxOsUEnXbC)^bwjJa_mvf70{Z8ANBB>iX&_Ht3?#SW^OiyE-8;M~OChRFx_ zomHP{<7RwvllX=P4sZ?$7wXj=GFa75R(NpbzGBW>zVH<1=k520+rudi=XLIpk%)}? zC=m-@B*r2{)s8Sbja+L?pB=l?Fa_SrhAD;eZCf(9>^UFOSAUE~D-o<5|c6$*Yt ze!-2y)u$!h$b^`35<{+gyA`aEb??x*KRFgY3*uU?PB*46zj6}1F4GsyCv_06^tv84q^}oQ?u++Bx zJ$V^`=&%LDARyz+LYmIbd?%a!Qd3{IVA*lV2lEG5aur*Y$l1ft(w9^60+EId62jXR zrJu#espj|Of{#3)Un0f1CaLz7BfTkgZAw9!h~6`{2q}iIL~7OcFnWTFumqO@{JP~Xiq=$jbDmG8P+ z&wB;T?p~0Ay59}si;z%Eq*YzIrV6xyr;HUC+3VAn1i4Mj4VVm05~39RNGHoHRHa&A@UpwK7x0_dzp0bXO_xa5Akz ztq3q0OJvC(^5tt%sv#hbW0&nVn?#dWC@PLtcIsfn^vT}bOR4mQuSS3f!$;G_kc8Vw z=?vYMY52E5!qQ($=`1fXMZ>QzB_tR>GBcM_0@Pz%9F$Iuz@;e=#07-0Enn}q`+|ak zGJM%9#NqU`Go<^$lBel}%i_K4J0fbogaxtXt-a0Hr%>F`h;KWAd8VL!1ru(Ft3}15 z;-^G9n+$Nq_#@6`amTBm`vu*w9!Y@lPoFL_|+!lTJ^j{V-hXu1Da5;?tH$G0FSsPIRV1%;OpRcP z`=lxFrQALBR%VN(G)eWM#)S4)sS8n0liR?n5i`YIX{LDv=zI4cWvJ9@v-nynvecAV z3|O$6y~JjV2NQZ7uI5qq^g=$u0O$3V;FuT`uZ#8HPeay)pibaC`9MKIYzCDk7-7^@ zi6~sM5RHfv#4r!RDfC-pXF17GAPTcezz$isSoU9ify_@~BFVr4{Ea}ebkxG!_-wxe zh?J|f=sstO(}-!{hTXlMqO7)l;%k~XP%A={3zi8DVa#*Igr2o5Lzk7Y0?c$v!>kGl zY2c~|c>>|Gt8-G+;169%k=;f^;ZksOTgH55rA1A3Z@-az^2)_!lf5DXdtI2Do2%@@ z?(J)iziR=z+Wp{v8labR*vm|kjcfhDWS^W3l`dxcbE`C*QO&!1nFqBQqeN+%kITx% zs-20EbIQVjW80IoTAKDqM-L48lNh*M%IV?sg9Ir9!*ZlT)NZ|rgQd1M%82Ip{VVFe zMk&ALyUlBRN;XavS5=TJsmkg69c%z%w#3-onfdJgzK>7gk15^7~i|shDiYhHAn)Ik6_?r%Pb@;b7uq zh2DgWl~iUB)Z$_RMwIAAfrtR-y>Sxs>y($nk$*ipfBQLGY}^ zL;1LNqdy)_R{I2ujL1%?O%L5S>-eXAG!YTeloUUns6 ziK|zW_m;x07%h>(8tpQcJ%XO`kuBq&teJ8U*@JCTywL2O3`mKB8E%_fAH~F;wvi>y z$uxAAwk*FBT?uW$oTnrpnQobq?tJyXxe+quqT06akzL|y-o12+;oJHQ|A}NdBrL6r zauaq~=I}&}u8b@_9m$%wK(kM>NxeRmO^L6w^dx81P+fImjuJ4__l61Ke9t)3%Ni^E z^D9z=GJYz+(gLiBp@~2P*XgR*c40<1QdEw}0_X0=Ms@O?CR-K-oB!65ldJLXiOjjs zE5Ui*IfGgxqx9K~xP>26GWH_7&j_fcLSH!%hY6W@0CxRbGeM*6ikMtH^}8kr)Swd~ z4+EsTWS&p;0J0OeJHXNt$P#Yw7fEdZT}uO$#_!|hk-|#NZi6Ec%80;{C%O8_bW)@- z)dFlvT8PwA>fL05KG0$XtMKK>=c)^YZt9HeG;2w5A#?`ZE+M)FKB`nQo*Ri{*2vJs zHs%EvsuHjoiP@gNn4PST&GnHCk2YE*NocM+b2yW1y450m*ak`F6-Mref*kz#| z9atnemF?wPZ-f<>%@fp|!#q9B8VZPe%)8E$alY=e;(>%|bPu#Cb`Dij(akSaTn@Sw zKPm{A*q*qms)718f?2Lz?W7QnAZP2wftex+gf5u&fIR;8&*(QrLRd7YAHSDE-hmZR zGEW$64Q%uj4te555lV`=FF=p_+;JEXF@4R^+iX?YCP8IBp-7lWTZss8yP?JiO|Q z6)ZImNpVzWZTI4SE%_SA;5#`88;j0=K3fb;QBSO7K!im=D1r3zt^OXfS+3QrW>6j% z{4c28sRThxLwNgnvN-cWwp&=(1)wzKZ5o%~zlS}}R`k?R)i&p800^QwXM~BsBG!%9+r&$&F zuY%&VP}Fw|3yejOvH&uDt;jE20o8AV@K2e%kwjQ_qm2O#?UP{teMDyJ`Dw8wG z6lfxC!`QmHi+k22f}cuwtM2`7w;g9?ia+#i$1 ztTQ+~EEO!(rvMAV?^SA+5Ac!pzxQDE`g*dOvFa;9-nYbm5oNH=XWv3dd0_})9U@tY z`q5RIFzG&62X=n)3m)V+|HfnKykXOCf`xR28_4Eyje8-?a@0YckTWi0q zsDvo`1Q4k6@B1anz#2Gtk^%rUJ0ywWTFKd!ay%2^DFPdk=Tw81>hM>1z~NPdY{^n4 z(RuzkDpo?158w*%fO#jf^AQsc9xfUW)Ag9;d=AFBre&f@FI$WF@3y#|n(9SK3UP>n zme0G}WLvBHr1Bx#6C){OLx0N}3tE4$MK&G!_oY5&$1pvnWd3haTRk?ltWI$Lp~!lF}%qWb#!a(~>~WQV^G zElGr3#{uZ!SCb$I^FnZ*5*kjc4Mi+NPg=2A1-MED9AxEljIiJDqejZdLd(cXuw$G_h`g#{NnX+XRA<4}`*xj&U~pwKA9nh<}7 zJC*2N^quVls&dbcz-6e{EhSOXcL>|sVi8$5%0k21Z7SI{FjC-9ai&qgLe@?HT)q@o zJ}9=H{}t9MDX=m21*f!j@a+M2D7NV|7m00)qQ~cR!VS+24R0ydwDOFc5LjlicDQ24 z3W-F>P*2Ywv7ghjF#@FAXq)yI7{Ipbne|}kg)ei&5!j@vR3>DH%{d=phq2Zvt>)|uGeK;Xa zb_`TWh$nCmlY0uMGwiaghR7YjM1h9~M?pa`41dl@@pEYhrj}B%M#nl?-_{0Qf4~Zm zf(2KZ6-ZR~(Rl{_{ol@^La%d<$MT0vFXNv7VH1yPo8ZQC21)CWzRh*8ewaXbEy1*n z767}~G0vTFssLp`u36uP)+Vy2`D@`S9UWxA1p+IbJPTH{&^VR~2dGI&OZ1fsuqaAr zTwT*+$Vhq83+dVwn--Xr>-pq3D&Z{GE{NIO4xPF6{LVg*~_-l=q#1;GxjFgNYO$83t7}B*=ykEjo-h{yYBG|F$PBEsb;9 zt?qv_StyFbq=lqu;^N99`o&k$pw~7$731#VPFal1OijXb4W)AwkK^ydkv$|~y3Yv= z-;!`^e#K5JJ(>KDs5hnLjB`$Oc94M1O^uvS#|JiW&&b?m&sG>rw3?wEr7m_bkJl$N ziJ%d9|CNlF5=iEzyOk^Cr<*5d_;db8oR2Zg(<77w?uuN>eE%euxu2arsgd#NC06Y0 zi$ICVCtbbNTk=IRAp}Z=nQ@uqXkoAh?MDn>OG1R@T^5o!BIIBQ1D5D500{$Q>{3LC!}E!9n4*TX=)dru zof2}SxnT@qIeAk(j%U?zXYp6xHZX8!wBd``mk+06W2Bb*MCACtWXj=2yDLHaov(ii zdPy{AZ)|04H7~a++aHVBaEmSW2;{l&(96!sSl2^dyjjV459*Yq(W)|#g)QeO-r<(P z?HMI^t2nTVMMmdk=i>6GUIbq8b84ix?ZhNt;p0WbqM}Di8D)Q-naYfsCN(V(7!x?m zRNQy#TzLAT^qJt{5-$xP{aIOFaV(9U$8YwzSQ?GK#lALN(j~C6l#<^QPAd(w;=kJ-T#gi+!}oUqY>fcnW#dA`F27`hKO7sN zBHAIgIQIu6TpAy~F~ZBm^hU9y5lc9(P#&I@k>Y8_2Sia5ZnXY_O~9ftx6l_n8*GTR zbLzaMf7>_?@rGBG%z0Lh_J8}fV5a0ms$$#)*NprA?C_E`;?%wYu|8FQarLS!ZJB0)l_{qJ&V-hu^GHV|D2)f@*mEi| zUaR5p`F_@F_@JZF+yNveC5FC|fkf|ayZWRTEzTP{n0AnQ7)$(-LN6NRIz3~jzCxjf zi3@ogp-S5-N2w86Jg7_lHr;ngV?z#v3z9}Mv* z#>pVnaNv{|PIrYazsw)9E^w@H)UlS;3fBXVU=gu{^?UADNuiOg3}*#wVRq z$j=fG(-=1LU2QyD6204qAj46kE~8zKo&fTCY%3lw)P$Lf_Okq#m>m6|rR1PWl;ex| zzg`tmKgGA@8mA*hNpW~A_UUgb5H;X_ZAVOxKb(ImIU`c?(3EC8C$$Ob2N5s+V|o{ZZEL>}tJ zO!1Py13+vYPKwMs+xg~KT(JUDfb%R4^E@|BpX&uLr&BczJ3A?v1JUr(Ph}7JtE(E} zZqnrF15do=EG8?=N_z|Ygu+Ox4n3QJpW)?o40kLOoE;L%sv+yTsEOUWFiP3NL?{Fw zmW523LLfy5Wqy?Kl(tk_#}+lh>0l$A5dCOQ4oo6Yp%P09X(`0knVBJuQv%@ID6O6N zA&*xNoMKG;=$})rL|kl1kOICIh*mE#ki*;8kT55?pGl`^;k}~;HMh-U;GlkGczL-6 z1RR=dmI|PEy&WYgU8kj?6UDQA{39vtK&|Vm>vwyk#QnR@l-knAh(4pvXl!@C@7}ct zTO+c#4Ds9BZ-X8J~`xb+v&Ifpw$fU#GB8B#>r zR}sg2b=i^zC*dV=s6-;7(GNxY6+jf@FIaXC9imn<8E(nek~Wi1Kh|`?8W>a0^~i^T zF|DFIfjIW-9ss2Z$N|LJAxe^GadmmYr!}&KGw^E6bUmw6bn*kJm?8yfez%cB?hkoD z`}vzViz{#0hHq#wG1ENsK31th&d0{dChUIM)9Pn;a7!lQ5Dm%$=!>9kja;cdZ&k;} z;P24_I|BX+o-J42g$}2E zkAVqJqLJN$cqX)H=n(U1MRG{`&mXyiOJDkzW4iwe@xbl@zciQZ+_3CK%jfnsC;~?B zN(!XM9=;vx`Tp*T?$XauWLeAon|e21CLOnkoCxNw-z2f|#=gmR zQ5QnLQ!Ey-UC)0o!qRO?nORV>)Usf?@d2p#hRx*BFZU&}6R~ol2qNMJB28e-K1zFi zrpwKAeYMIDeKV)1cQkFtQW7Z?t9sg*E8Td^WGpLuo7bAi`awu!t zy|k=+cRR-0{L%n}aqxJ)*;uNVf!N3SGL)W1IEh}?qpTg3Q&StOGTrL}b}>06Y%gBh z`*mNZT-4}io?3G(jOQ>c&Qi&)rctUk7!p+!d^Wni^(LPtWy! zf|$kq$$~UtagD|%BDd2jCf@1k;M?DqnC?@_Rz65L1WF+d7!F4ZtD;BAU;*gXnSj1c z=F@Fdo-6+sy{5WB!dIP9f(G0O3R2Qo2u$2;g(642U8R;f0aT_@q*CG)85@o7OuF?> zZ@}&AUI3oJg_|?9qYPttPEjqA<=7}OR4k6 zR#!!E9C<9@zr-BXYUQJeH-$iHpJ%A4CN9S~g{Lpr5iOkwv& zQ0e!FB=DN#!$$QwR%#>))PFNZich38Cgil!&XY$Z_PmuMp5%$|L-V?9W;(6qm_fWa zRY4Q|cO;C&$ysm>O=@}u6Q6Fvfo`T({53;bvCvn^GqqDCERC6%BwL2j~xAtu&h%GF) z&fb5$FtM92k}~a~F`5avD~!wZI6BWLLK#}gv`PgPbxDRtxk)%cqhKr|7Q|-KJ*C7L z5TWcCJ@vve^2|v+gV}o^d@3X(Bp#!#5}`r;AEfenR_MwMQmx8VQs=N@5`pdd z^b0u6r<%(j3|7ub-x9B|g_u;PSGY63iDbG=0S}<0B#c?vapE2vaUu)te>tW}C;$Q5 zQ?X%&$!e!Z`IDh8d^k&loj77>V#+f*6ML3RXQA% zf#oF}5wRQ$5^voa{U#_|f0co3CB{7C++7gJAjF1sq555opI;EKVdX2{T}($DjkgLF zKO-TSSAjBQp2WPNp%rxBOSox`BTg*qq$iw}rUPoXxnTbtSf3ufU1e!oH#9PfgAlkC zTRK9x8H4=owX<2hwu)fY=w_tSL+|Cg&2psynXybC{M7m9mWp38{04Zav68740OzZw z1WH^xV}wGl@;=IT)6#)SsyRCdoME2=JiF?-Fq(_Vtw_V_RU;llgQKGIOg#_UzjxnT z_Q}+$2n(9mYpKePlPljqROkpXCud7?s6T(#7e`(Jkg^;7yR1rOR>^kJC{2-~7}=H(d%y zoB}ZwF?bZ_YPFFDQoa%kjfhBT={y*^IfH3wS_cC^4-`p7%=h{}Y7~Ui&MWvMkqZSi z+s;`WR^dHa943#Yr@{T_G6#XgC3cRK16%CZpk))t>1C26ipMdv@5_J(^| zrH|SVz6z|i9tWi>b$jiaYSn3RY;(Bv_P1S?HPM@Yw2iS1M;p2>f@!g_9He@5{X5Ev zO74(_O5eZv~gvb@bv-#2@^GaQc!elDqkO2lJRKUu| zuQXU~E^Dats(FKO+svMK`C&)OBt@U9@eKeWB%-obzxS-G-QM=B^{^He%XRr;i8*kU zNtl6Pqwp8sMY~L;;yht5>?kCw_4HH#PnJ@ZrA48rFML&Dcg5e=yA%F^+)PEiRS}kg zcPf{ZN_qrLS1&K{c=ChYY7ZVfs&AcMnq5}u`fUQn2%GL(Xh}29>+H+m;18n4o5l{Q z1AQes(wYkvEO!xH70}kq7iVf2RKipgsnH5r4VFL2FMrCN`MnOrtPC@YY<@FkKL2p6 z*zwzr*t!t%ZoJtj*f}_ZyL#|v3d7$?ApnJoFEL4t}xxGDCvnAiX zCs1U*KN!ET+nk3Y+-|hF1lJn&g^LL+UTt|l!L0BQ^*g;0|9!a^U)hp!d+1@4NgxgX z?U?THfhI(*JV8`H^t^7H z6SH#_N&zG;fTPlBB5{vay0R?bPZXq)Xt)B(opdoLryBKO0PCt+=`65zy<{b*sDTb{ zE(M6^QyZ;GH$*=~@G?gR((vSbRWXgA(?``aFxUgnv91cP4~I(1fJcDCBSW~nHf<+A z8%f|jFJyqpTMg_qo$5$nhG?}e-*>UdxVYg434gUt&dLnWWd$cuB2v1MOZPjWIa*{XrKmBxG8hy;T9n%ktElCuLiF=b0D&@QYsQBXR3bwbxy zQC)yhuI-cJ)~dRzX@Dr5e|c1CERW-9NPAc1)GxZw0f_AG?(S|d914D_TEg=M7&2p! zKUrQ7z{J~9UCm6)Z5IR)1dOUcea<^tT6@0OXm?AZJ?iW0qsG0@=5f4UcdREuCDaJE zVOP8v50(R5BwZ6uON;gYaxFyU%g3`GKnT&t6-X@qS4iEdG!Mwbv6Qix zA(&L2%53~-_VR%)C{;{A%zLE~u`^(pf>r1qf4_~c*mkK%3lv)du2W_{WIR72@OGKcoCboEv?X7^{rWNicy))HB%M zd+{vdr=Aku+n;}*-I^!iq#!+x_sm?~eges0c1l`Fb*o&ca}}6jn41@^c08jz<%=oP zW}{`f3l63G1^D1JZrSd*@}Dx)M{^eXwfWNJ^w7;U;}ucD z1jX7b0>_cr?xa4OCBD&oFXbwZ+FsRarYgFUDU8F!qEm#GMBvT_$f{D(D1g>x?q+6E znp`RE4p>Pf^---@yvGXDT*BzDjx06y^+cN87Ky9E`!(DJtlV{4I(NyRCKyj|eHgCXKlmPR(KS)kJqdd5T6$FI?;h-sSqbeJUw3fgi2=S>X-oZm{;l5a{2ObGzv=7sZf^fI-gkHZg@Cg9eFVMTjTuzPPtrj;WBYs;a_${0Y>=;yFv4%eKuY ziXIF>7+j9+^Enl8UVFs>_Wx-+Ib6L7JlO?J$gVEl;Z7OdJzj=UU%OBmw7bAr;(Xh6 z-I9kCHc&E(b+5=z#0pKfrmSysKYp;C`K-$yo-dT4MU9d5vJdo*$n~0g`7CO_g!4|q zb>{XB?Y0Y2J#g2boG#1{6@Lj&wbhgl9<{%EC|D>mc69SQoA$Xsd5q=& zM|o6jJ{T`XG-SKX!)nn6LsnLHRY<5uMC9(j%9H6?w4i0`vaBWn39a#>xYjmfNTTeGf9?lo-}d zmT4zo{hee=s*IhL(j9!@WXKNa_r`sftgI9PTrZ z8@|jS-;@b|)GU}a4JwPtNMTH14Xf%;du)=(fc){QxKc#)#gi(X#lU8MHBw%557NDy03~bkg$3ZK!#d_M z{4%sSblYfshfnzDwR*Mr>SNN(QAX}6bVqivOp|>Xkf-J7O&LA?1CbrbgRck*uJH!xX?IL45+tM;T2J<~ zy|c)xHrtgBz#I3P{}UaV=FkqxA@RATSohO%y%UxuI;T6$E)NUu@ja z2T2pL=UOrT8;~HSbbWjE>H1?DMmIGXG4sWZbs~*f_cZ2N4;FUQ-zvp5 zF8`+^06fNt^4rW0^Oda-!rw!m7gA+@g6+KzGq!jBCWzvc?*{8eI>mtY(~ZCVIr_Mw z76g#an>zb}oQ4ay$U9BpIR06QYe$Ji!%$p0I<2(?ObIHO%gL*!R@MZUZsXwWHCpd~ zdG&t6befcBlNVqB#_R*xBsHFrT6?mGIlGL77}*o^RPz}Y4nC^O?Le0$ zY?>dY9+rmHM0#P#IT150H1)}=&siHg-;H#oT71487U(L?`pIkv6tyQ^PK9a|e~mUb9~8e>Kvu&>*jhod)hp z8dHADwsW*KDx5P2+YU~;>R?hHXEu4*;Nf3(Bb5^Xk-!{;lG>C% zVL@*Db^euH$kfOHRf+4-I{s~G;{Pj=q7Z!h4Uw-Th4CqleFY*ETxD) z8jF7wXmwe`&FMF0mSa{93J!euD-pP#9sLW#*M~G1%u!3aT2CMFY%bzC!?#c4a>(hO zd$Tq6be2N_(rql_8@KmmU~KM+^iWmxTtV&8O=5z5jwBa&Ut= z_{9smZLMjgWoUS>@w1TWLxQC8WPb1dY~ZcZuGQKToo~Amja2#h9K92UF|2k3$#+A# z-Sm5`KmMx)F;X{pT^K0k@?&w_j~M{rf^X_o20r$`6@`VQNiW%|;L%3%-f+0>Q9QlB#}en^T_Ks`42sa{|&d*z5K-F6RUCZ4V>*>hhpi1U0<))+3!?e487w} zEL@rTgJrk58>Km>*6u>)yxqM00`;rU=v@sEr_8wO#L3N#o1dTG>9-LU5w?F^&|Yj? zPu_Xk=~g#}wd$!UE)Ml@B@`JP0w09bI98_5wLQ%Di!Zv-xW`WiqE~8^SFKyWJ3rWe zvw(01T3}nL1+|`iS5J%NQ&mkc`Yt6Yx#N3-9mhk~I`PMAI6V3fp=|5j@7~z@A9X8l z`4_Y5ZjkIU1dX?TS7w9AbCE~|~7|eTjfwbD_+kdV5O@YsnlgHAcUTOupL+Wi2 zGVBrQ+|M*Zn&Jcm0<(A1&U}@WxbXv?$f<`UcXoE5j*({%aAuJ5eD9@}(l5vr*ROZ7 zKr!VfIYsvB{9b=)|BOV_cyv3_CT2&=FK!%PQV;M&`bB8VEcfbV8X88M0UFKSI=pF6 z)d$rfgPK8kwPaW|E>C7dxGheJFXnQUUsF|&dvyC=ZE$#TlG4#MsTWw(>s`>M^F^Vz z{=mA9mq!`tcOi2F=LO>e6V~Cz*YV=hN2%Gx>yZECo*Q+O?ph6_bb%k+ zImzEn#HEPn+S;m6uSRD%9dui*%^9a{7hXG%jsL0FpgK~8+fectbm{8GpbuwIMjXeH zRqQ%jASSl$Gd`Ux`~Nx?75Y3x?iu_GPocHetOhZ6%5DA+U2g$aRrIWlO9+TahalaJ zbeD8@Nr^N_OSedOOCxyb?(Rk!L{z#v4xRsn_kX|pJ>T``bCl!eoW0jxduGoHI*ORo~$4& zsJyvf7=L_^c({HYm-S}i>q7bwZr$BkHvU#~wfXxW{OscVKx1}Tv=VgkchUS*CE3Ad zcIsjt?I-zGYb0yq%Xe?tb~1FTkI%GT5tEK8PS3{JaSoyl zZddo$N(=IPVc!d#q9xuiYrXqamf?xqwF9YSd3O~?_3H$Uf4ru9RoHVGo00K5iKhBm zxxpEgP&)g?SJN{6i@@e!{=k;#{%N`?lAlxUx91cd82CI^YcEAl*JsfY`4YAeZV<(BQZ?R1ng_V_89+UoS zyj4SYQO`)UYcwLJ9Gmm~nHTN%4KSW)w@mU(SHHNelb0LKgTsPF%UgLf)Qx}hz7qCn zM-8~X7?sGrJMGqb`BO>dplFMFeo*b|W*E7K4DLD`KxR42QYiXumsrPhS%XW{+D9ee!-gP7j;p^k7&9+~A_fSjVs8`Yu#U$lfBBK+(x&ELP)L0v zk5m!47Ss!Arq8kK>ye<~V?>CBQIQUngK$M+ydprfrm-%Vsz%4lB#k1{ALtnc1P`?$ z;t0JRLDDbA!VU`bOA!!U_X0;1bcL%7#To`;warH}qkW^Z-Xz67OL0og^><}z5q2WK zA}ZA>Alm^1X_*=mS7#T4Yv}fMJ}oEmQ?bg~^JZ9zeim*` z7-PQqW63Ea@in(y8GP1+ldFfF0j7mVu(r$5Yj_@Hb9woQkb&z8Hn#Rt43GvpDDTXi z_hdCYl_T%&oq4KNu8*xatwXl4>8iix1W$90)2Y;ABhAF_Hb7cxwNW~#R(Tana>)H< z)8a0u*6n<5nLK&0+B`@QF)Kd*BtccNzx|jVmr=cqP#TuWFhrI~Em`DdDR)kspx0<7 zjHTD@`kW$5MEH*M6S903-}6P=TjG{v+e<@?*%X1@h1&Y0kHh@WP-QDNh7-yCdd;DD zVZ(aKzj-`280RVJt!TK27JTjN8%E&`x;?^VenjX@y}r3~J>k0PxaxWuUU}pcXki=| zrI7Hu-tM_w6j!p6i2`*^UppIFvSoGNgqaCyo#!FyvAeL}_k$w;aNISe zBLz38v)A>UK*{BMoDHATBbs3$^ZVSbsalTtry1;EGL|&V?egDT03aKkqdb}{Y{_RS$Lc!$+hPSIx4@8$)&5`dGmEBxRA`5=A zzNV%gh$I)woOg%Oc%=!k2o1AhqT|CKtSo%Z$}Wa^B{?kry<_;{Riw;Vbf68f^Pw1` z@(|w2_VNuP6nAx?U5En{tS^k?4WjyNn_l=Yw(lIwl2e!2{p(!kf{~)BNx&kzb-zK# z6FZkzIGB5vX}JS!28uJJlAQ?a-)GFT=ZcQ_sjeH6$H15_|1Nf2oRU68Kv%MpQt;Kj z{7v@PfRmJt_3%_4+DVohuXiT43Oj77fKIHNIHke)AmOrY_&dJvpB3pm9m2usA24%C z*kse+2_gwNMHcHg2N{#rys2XDe>EC@vDYk>^)#do^&7h0 zBy=mKOfB}fLFqzk33A+5a^N(y@Om3fpj#2J`2!YNg@8DtmQAX0Y9$}6 z?x3g+-v?qmIK7%Rr$ChGT8L8V=(i0AU;IXm5RQ%)&yjvssSN}Hdn4Q6qd_WQL7I-Nn! zzoS(wH#51J?!EL99eS;pJlNxT#Llu|l?Dw)7d@ZZ>BSCJWreFE zjHhT*sZQk+7S$dF>WvK+y(oxb$$DOm<#fnb?Ru-q%e{$9!&QrK&G)yl_fe^q!-+p& z(w2w>YtRijY){T^@D_L_{2 zH}p1@ij5^fE>=uJQ9{Ap%Zg|%bZZhlT1%JVP4LOuFNMv~5r(2$5v%B$> zd;)A+dR9}wbKM7pHc(&7r++Xcw?MU>;2k8$*#&&OD%J`E zc{PFYw1O}+_5200P^Fh_m1m$G*Im#q_aPEgo}JvN)Y3R5c2Tg-TVtS_(SA>XAs_km z*C)8IYv1raHIvqYV@mrWmBq#R&a})IQvm^Ez#PU@vyvPXt-TLaWM5LAv7%NwzBit5~^4_-ZTXT}l7SgjP)0h6mGhW@Ixika*opLHIQ(en}@--ecO(WyhJsXIpv z8$O#Uym|&z9yyctuxRq0^+~6C$lB8?HNN?=^{X*pqv||kGv-Z}cjC#VH3~8+27R3( z(XS1*UXzvai%A?kim93F1?SH>ioahH9l8CKpNUZ&pMT z&CJ_cRxfP2t^r}4g^#CEXl3RL;;ORbpWqH---aca9Lt1IVbTiH1*9(p$X`^&CVi0< zg~N7g`i_F5x=px7F%mKGT&S+5lCp~_b7? zbDC4qOl;TB0r>kqto29NRq4laTag<>rTZ!OZ3N9RkBI8<$7h&fB#&+DZc!X z(TK#tz5h#UY)~YPCaJPFp2n^gWFWn-LbFlCCN+X1p7sm1d2ZJJ^8yq7fayaCZb$?f z9*VBd9KyqIR~>t5X?D-9g-^E`tc96xY-Qsj`~WQ8Rjq1Di7Cq9LmMJtR)^tHWB0jC zq4fl{{pT1!2=`)!5TK+$>;?P=rsBlF8bK9&7Jo|VojosQH~E?zm1Z@NirSxLcZ+Q zbtNR^Qk?8W$>golMCT|fNW`A(TsmmiTso=b(Xz;&-=9G30HtqX9f@Y}Hs7X?HumU- z!rSLl3Yx0K*XCITV?JF)nuSzR!l^efJfy+Yf)OIcYQ_GfWQ`e$A6HwgHx2%rv_lH1 zr=5N8&lo-oBox=ggBlXgr$e?6ot>Q)b8*;ez8`)Rbq^hUSQ~(f`3(-EnaO_*3DR2L z*-*^VK^6CaboR}`tS)*5-^R~BjCP!LOS`*p-3#2p!J-r4BfbLL1`q=&$e3YVT(}0< zzCK}NwLI1DM4+d@8PFhTM3erM8lr4Wt}v;_hOR`<$yqq2jvYG%DqU;Ca$Hl>LN3}$ zn~e^1r$7hL&JCig3rZo~8qA9~6z}9Q!leUxfQT4Cxgc9erDb$HT%%j`=`%Cdw1LIXGBI&Q}&+i<2`zH5O>iy(F^e{|Y3iJyCrf`tJ5sm-(c*g9tAN?BPL%0SOJtN1IFe(*&|2^6vj^%jum+ z{~(5jRH9pts+Qjt>ACFhVbQwBi7(ss?PH>m?}y)EW%?u>izdEm1pUYPV;R{YA-ERm z?Ts#7O)3g=n~AO&lE19)U2k6>u3o)WYq?m+3QVcShBimOYVVFHJPfJ&AX)ELxB@3P z`*}(^y}+906q~r>Sx$I${+C9{r+NOOS`r0=Q!%oOUac6_W-a-Hqi3T1(e+o_@S(POa& zu~zi~yQ{b8-8Hc!a2c<$R}HoL`b0Se^l;dfqfCZlO*!d=0cs^q&$IEcp0z2wUHZ%o zI`RxbG;@#?HZ?KfP(pMG)D~Jy<-PEEaHsIN*m|2lZIZ#}*HMqn>G}Hy$#!QNQ;K71 z*Pkww1C17V{|%MnwotEBdZOUF=w(}Zqz~2m%DJELKso{WeDtT&D(U<8#>#VbY}ed} zfu%yfE1+Yo_GN3bgsI4(UqcI~N)Xr-)ZdgQNl-h7u03ZW<9mino%Drs26m)H{S(qwRB$u}R`+q_ zn5+rEd1qr2oW<{Po@%4_X+ajqY$_AKu*3unq@G&OwrD(e9;MgtdH3BcV-K24aT*jT zWjxF~JgK2xT`k~~ONJi#H#;;7*^@a*O$JUp^LoJFualAwsLXg8RVh3?{F@nLDsC|6wN zMI$Z&fn@9?cK^Kl2m@z313}iOR3V|13;ZM&eXsS*`NhX>($eQ6>reu^Yd%Uz>h8H| z{P4w8I4NWkWlgMjUPGHdpALO4@wZQv`zZU44}R-4PeY5s9BbKm4-0&BBa6+Q4d z{Gs>CS{!qtOFK>*K~@5)u49xTfeO!I^xFMIt+Jt)uPu{a%O9g%O9|Aw z>KGAt1_#J%&e1pPAwe%EPS4!?f0$Wrvt#0ihRl^gsMC+3t7+qn|O)%-BTuAZI}*SvVc z>bj7xcP%U7oL!7c>;t>pEYE3L_p-u9c6e9|*_?N=B+M?aCf=5e2}@9|7sxv>&wwb%P*`bP;A*-1vgp*Iw|bm?%kN8i zhqHmr2Azn}PQB+)*hb(6xm>T2VpRoJ7R}XKkLI|F)Y@FvV3&=ON1pa*T=WQy^GAnwY$6c7#%wIt-)o zc%0G#|B14X!H^O*P&B(hXdHPem{GS0sbHYxq_y54SM;UP&n*WFLzFBW*5lYOTt1Ap zfC%G*DuLAuv@eHB&f#`Lhp^chR&dv~^W67B)Fw|dIw*tHX9)^<{)Y85Q+l!Vhu4{) z&y5q!a#i1Ta*)sCe`6Orm%U{Sx;&APmgs^b#iVD$+gYV>C6p_6n{^xH>`D|>eJqlapC$0$KJt=-zQ9kzOKNq z#2{+Jwq#;huv-NOo8N zUEYf(9f%{L8#lZH!Fst5Z6eH|;xP7OhD&W&W396a>a5roc+`GYFuH`BNrQ-(}kLFwu;QrR%PGyRz)zvlghj6_C0Bz z1j*7~_O+f8F67WwT|vTqy}}Ecxoby{8d20t$?+|tId~fvL%+S3RY(}3+f^?_ek;ID z=Gv&rXAD`nALg%wo@5p5=s!Qe$)NKa*ZJs-ACh^7fHyR&Ym^@&fmTzt&>*pqE*xuF zfgvF6Zzh&EcxJ6BSwCvi+r89Pr}Oh9!}CR_u3Db|2!bit>kkU)U+$7hkv(RK(ZRhA zlWYk;{0!1EAkKP_7$SOIAe_WvSi*T|qM@Xu`ur)VKFCJJ!n#2_z_g+m>4nH8txhQs z?=!qxE5Oi}5>gksw;a~e zlk3Pj`Ig0`hrYM>G#g_#0*ivfHlq(8GL<3QbvQ3ye$I=08&+aH>%E+b^(^MD3$V&R zU-Ye)sc(3#VydQ&3g6+6W!7GPdAZuAlQ9^^sads6eg5k5kIFK#WX#fQ!nxWq%Hg<$AuQk@u4f&T}ux-x@VV`cWioJrSp&JEDPofo*HDnes*Ac zbrU^3^;#A(r+gw+_hEhZ2qXq~W{Ou@@#E>(%-6m8t1gNm(uyHtP6}e_+w`Lx?t1Fn zhV@0U_OHgHKMB8-mDMtRx4V7lz`2bgVf~cP6IG25G$szy9$iv%5Bn0&GXu-%j^ zD!4Tzr)$5t7Ga2`VpgY_{9LVUKiKt{e$|lzQ5~9L=hoIs$Mbd>9?N#;-8$uH=dE$n zfM8Vdi-URMf`PVdKsp$pr^3g}w(@NdYkB=F`!q`d>XS1NAzxMTw%X^;$d6q0fFJkyA8Jym{ zxNFdKc=@PxFSsvq2g7nT@9+Sn=`MTgN&1UxG=r$x@fs_J(nEoHQRt#uZa>|@M}`D{ za4!4>av9i>qaWf?(x9AsoZ`_S_}KH(lif(4kUMt7zVX4+l9iG1Z%nxo3r$+tk*cEr z$|OMiSOG~)p|i65Uj&(`+b_~oQA3W8FoqbwJ?b<`9TEPv?cnDJSv#+vx;MBe8hUJqV+a0(G}We+525(`MMx6a`e z2p5)U&i{KW((Y93YVu!x52_$g+9r##1MB+nfA+aOEi)c?O66}hP^>oE->1T3{QkW? zh{ha+rmFZ`spOL0fqsQZ&t43ezSVFsr<7v;yGQ0U+ApH3&^Kb(2@Nr zH5BaLfXm_UO=Z7B`mpGYp3!vnv^g|JhCCY$SeQICb+7qh<>Guv8UIBd$`;Yl8{UTPP=W^t%mTq)yX57Rfv?H9u*oc$ zlC`p`Uk%@04*UG&FA5cbJXE{l9;px-68e()qyL$opVtpl+ahtjz@^2eg-FvWXDiG4 zuN=HhUpc`2)GTLDL+0|}E_PT22u@^{m>ZjKH=r`Mu8V1NDTjL{E$-~`kSAw*Gij1h zgxl#)MaqaWpP*Qv8cLL?7IbD z&_7phMB)mctazk$DOH7PmjyXG757ncW~2BV1miP3=$Ucr8BelN0ZPTR2o)$F>92+9o#;NMhO6y z5mCngQ(H8!n}vtK;ms8TX1(F1|M6+cuh}I-7MDTp=Hf6P5STWr zPADfyKi&oTGY&;KSkfg`cvZ6jxy7?R84$fX7drAf8NCy6+V~~50M0-z|0Enq{3Sm5 z<8YtMw?h4pH&{?GNsn~EeBUsB2!V$sMIU*lUZ9!fadsfrazgRR7@bzPt|T4K29$9} z#eQY^{&Yj+=8a#-{S~}h2<(`DU$G-84>J%k!g|{n_D4yedYsdG+jKH>AS_}`WYLe3 zAo&D{#oI{q{rTo(OiF1Hi7;%3mhaw@QQ*2L79sCn!L}f8f|ei_fGej?2EFiSAP`QM z&MYQ1#up4p(&g_#%}Lx@;=JQnwOOs5o8gBD!6h%ZOW%&erE!0bR%b>@ z4Y;~aAXziGI;tp;!{7ph{O|DPstXV&L;}HEDOvx-p^PfjSWEOL{sm-D;NDK#M=P2K z0(G0I3rNHP>Q;>YeD3)CJde&-DeoAoPdjD>{ZZ}w{D}Rj!jshcQ8NaIpEJDNW$khp zhL0is@7Xgn!TK;U=IdnJ!&BY@z+GIR5!`9 z)L7Yfx0lD$?Y_PqOP*3*@O@F!POBzh(4!aRipqI4+9rdc z#ppVSFz6w$u$I->*_o{#Qvu{vUnqu z<&RNKE%p<^li%d_2~#AP|4OeY(mSO50QJxDW^mz1JeIv=zrmUjy*Vs z%cBD9!E>cjK8JhDQD}jU1#~43{)f#k=3slX?_VbJw#h5UXq1c8=`2Anam%SqniUaN zBhUqOD8yE0StAd$*QMpv{NlJ(6bv)+wHPtw(IhGZlgMk)%Og_<6euq24Hvix!muZ} z81@A_F)98qBgZ@Nys$9n6%=67_K@&ofWc^B1n>3gtSBJwzQ8f5zFwsS!()~NGSFYF z3}&T;PZStM_&sT$4s#gHaR}f#I*+FJ!_2SNcX%uY-&)+ElTjlKh3cX2U4%&#fgC)6 zEqn9#1Tx^+lq<$i043wcSkmCRIlamx7HYH3XD8JG$I$HsVWWw!R1?EyEP)S~K%+!F z%Rnk?q6PbC+wPaN|9{(7w)tiSoRoA)7AU<_%da&J9`~WV_2FcGgAE}HsV{K*?Ac^t zHb`J3lB55n-_-t~!*2lKg_T0{I*duy`q2NK((&oz&`>3prs?d8G$GVLMk9-~$`9T( zin$PGJZUF!-k$cCyqnBY&68f_=h61N01=K8EHgWXX0*p@bqpBryI;6c_wx z2EP){um%KFW+(z{6z&Ws zdgK@yTq;x@@FJDd($aRgvqhx;T?4Q&k0RD39NzawcM&d4mx(Opx}78VxNRd#h~od9 ztpoVi4=M8)tMH$IwQE4hiTEGek;{n2<8X-t{}gfZ_k~+18VQpHSQo`zVMAAFD7foi zP7uKjJp{s|Ai(LL@XF&)Law?J(1{)=LoZ8Y51ww2LX&Wor64}>XnQJuZF@VEcRamh zAx0mO5-j9!nqi5IO!`e2ICq4o9gY0=)r=R^) zf2WJIxE&X$hmv#HOdcliX~?GKN5lVpKsZP}VeujFdu8^JB^(;rj_A|rdOq=bUBn4KHoMAr;J7TYrzElx$PDwS#tZPPH?O(_kJ!GfR^Wq zhSXY2B49^1olccWjXTtAmNv&8P3nn1E!lXvp|Du9%YM$0HoZkL}f z{1tc9^2$1t{%X!?0YPZgl;Fr%I5A?C%X&e52$M$fgWJ(onQYs`k^$XnLwh7~VVuJs z5HQKQr*c?wR7Ix!NLx`%yRVlt$Pss-8%q*QldQ9!@KXC@%8+ES2GHra6IFowR$5jTU!ZgxYK>GAWA&t{z= z5yKGq`1<>_yXQ}lK3I(DwTk1g!XzRbzdqlFnOYZ4!?Aovl~D(aT>l zlU2-vjzz1kMv`m2+##=lzphMc&`_wACNp{va+~JitPZA!Ma(yjtt?bz*}!d9Pc zM)anRNrNrwcm72^o9!PS2NW&lbj`uB8$$LYhmD`*b}T?>!RB=Np*TuK6F0ZRB3U2% zMHdIV^MsQ{NmQT=w)?3w-xy7YunFdVj95b=#`v9n84|dMu1G)xirs`9-ww5#%59{q zoYblI{hq5fO*~Ph3b!_y%9DTHd*?bOOu)OD2<>s_R&oVZEqM)6s0XTpDKFSp8cN@C zX$PhX{%AkIt*Jj-d)jmsTZJ~T}{cr*^-Fiw7bV9FhR;YiqJrHVcx%S6JTeHQ& zDDuOP)A5TQge_XF3Ishwy z1&AHqkCJc$1|Y1^Xm5>AjLlA)QAY+0jIBQty1LuQe2|s+BEjPq!MonfhG@x2-yZ~L+ z==)bM_J3W;^;ig?U=*?V)< zYQXkuRDtMa>QAGSDG^w2V?X;VQW-Yblg+od$DeGDDZO~br9No;r$H2i1Jr0}Xsov- zX^hFLM%Sm?YrDI0e*)BtHJKnGVC9#x{!tR^e6(M`XeD45;Y?~^U+}&+tf+xTDf62` z8rL9?o^RLE`?#B%o2djkwXOMP*Piaya2y7+xMKw9rib*G*JNkgQ&Lo(3?5XCs13x8 zC3pSg*s*t#KjiJnNs`17aJ;c(twK*j^)%3kp;4?y_&fiebNQA!eI&H+b zy-@?W46T0CN7+gfue)pKp)_t5PTN1)RI5!oH5RcYaBa*D`HJ{%GUtFhLgjd+H?-9? zaTz?i8qgw>w_O}`b?OLZ1)yj%nA=6fFN*gYK6dVB45U^V)eKO1<4;9@t$T z)7;GOygezgp+L9UwC<@tkt4CaTi&i2R`CK>7o%<+BM1N#5)o}F{%AJXKwIZ- zuXv2Q;60!lkrDmJiT=N->nGr!VJeGfMSCeNdBQDrU$&K@7zvVa+y0TxSImgpPs%bL z>d4Hv^+G{K%>#tJs(JD$3Gd%FI#TJkxJ|4;Sxa28Z7+bYk@M;4^T~(%3t^2WFahz0 zw5-N`lx^HlCqw*8oo@H)($9HP-7HC62~DeFU8y-lzABYxR< zY6aU13@`jkOPHZ*Ny!G2{+u!5~XpbB{PX zXA#EQd-naxElnS(e_Gv+yH=nRzxa{!jrOlB_K5-)ts78J7gR3i6Bbn-c^?+T6R%$E z5}5+fWNmd-3@pG&`{MZAC7Y{pRB|EZuK#sz^N~~uG-82@%c!m~J)d(&B5g2+i;uR? zhnDvD6?SLKXT7CVcHaMXc-D}LNC4tB&r&k;M>q6;zm^gn-S{CZvAjo*>t8SOaNs@0 zN)T+qJYpXIc-hOs3V0(aF?Dx;)+Ylo8pCu>e3Jj>x1Vj^{3&Bj%inrM>;8H2dy1pW zV`JWEeGtOxe|iQYa+SzY9i&XgBpQoNnWYgL8|P6>ve|!(8U!`c!1>lH(V(GIla>zA zV+z$WTuXdv+!L})$t(33YyIzg$-x5ARgRhs|2rLb%WXi|Gqm20M#Lv>Yio=8Mb6~e zKfWSD%J&G4@y)iuCA69jC)Ir1R!xZq3{F6t!wE^X24Me&^p9}J|Me0Pe-=S3m?|0Z zQdIciw)!^Q!b|E02n}Pc`vXrv;}|)Q>r=Y*fmkt(qLDQ2DFCR2tivIoWRv(@`u9bX zluve|{$FSNKWFwc#^mw2g&S$+vIRtkfw`O?scn7WSpG4LB#m+%zC=u>%`{npn(3W4^TOd>+WE**_p#hNVsIX z-C|qQ_2b5-t$OQOMJ>bA9gEY_+C-UnYRku;!0K3>_68_(3j?%wX3KmqPD0BUjF-T> zvZuDpNBs8?001<$gJ(2t7u!lF+gP)jb#qzx_&%Pcaa!k1kO;U{l=%R= z#Bu%O*HDK)9OvUtz{bvTz32svwDkcJmp4(aUKm$)-xc_r^Ewb2XL6?gG`;$VCcvK| zGQt`~>P_3>c-o2gV0A_Tw^dtkxV~-*0Gl{j02tmNRH`OPcnkS#juIu_gNWPtw=D2& zQCJLGl(%)Q8R*pVIKcL9Q3x2O$@ecRkYWB?W}_Cnw17p(J5R~Uj11m4U0<;B7-d)kpg$%E;+4p};15Up)Y zK@haDgJ5kV!N>)f7z245TOUxFnm>5~g|Z)Untm_8Is~$%e(hCy!f9RBfAdH4@~u`- z#jh}J8-qgTRVThAAQ)kzCW%6uV{yzRtBxtbU|rqaVdsWc*v|9mdzaxs-<6iCmuOGu z&4V`~5j|@An_g}ffH3sE+YVC@eUiuJvJQ)f&^2{=y{~Ij^%rJKYjKPORJNf`-M^gHLH~Jr zZ&vQQ4^BxZV`J6ab_)fkffJJTCAYSg#3i*jKE!F@<{{Fti@%Wfb&Q3`G++m&H)wJDtVA85`j|usKTZWvD)1B32i=^<)bbSz zqmEI>%6~LDTVrxdCVl_}8IBlmGoqE<;RGMI#{ECT$WyHt<#oM=@b&Q%6BAQLP*Vye zX;cAhBHnFKm1vd7KtQwwMJ-1>RJ{tw%Q&zb>iup~Egxgu$ViP|stw-XLX|x3u4{K* z9`=OeDeZ*6N|D((JXA_=d+n7Hh0l#iEibL7HPqqpC!CbHWT@Mb-~D9m6!=g@QQ>Hu zseI1#PvPMUqM%W)vsHlZY4m3axW8F}d;)*e``v>*>D@xg*Z?reDQ5!WATVOy|Rru@mK6M9^pb z-9zx%^IAxdC`x1>F`(_(B0gFd0YSk+&x?a)TLy=fp4izucioiNMzEpD%+NJc-R;@( ztQ|M;-^h!rm%r+#H7_$eZ1nMe?rOfY>YCSdduDI6hU}_~L1IgZGJyMA_Wt%trsWT9 zHN|e|p-s{+B8K}`X8E?O`E&GP2pSJ9Z{_S=i%GfoqK%KkYVpxiQVw%bfP23 z@VV@LIf=1s2Es*PXKB0nXJG`c9_P49wkswV^Vs_{ehOl19XZO6kGnsZoSY}E8CJRz zyu7_RuOBsZ^`?<6B-sg5(r}%ual|Gti{Z8y#luG8V@=F!TY8Ok&av(1-N`#VhaqT0 zm>CvDtA7x#8c&W_rDhx!FeG8-ek8(qR!3{bUafS;_Vicpd~uNah#h+=&3!Or*jm>$E2PvK z%W18d*tR842B`06SQnOE>3zz+)F%QFngBj32e{wQ4jHQXiluSK-U?n3#XzCJJWbG) z^Fm?{tGymL(7=ok1p$w(0?hr}4Odpv3Ul3MSAL%|FtDx==HcS+;k9*fyiR6=hK0b? zu8n5sj;fSQn;-nqWE7nWEuDwgx1)A+A&RQJ?NzE~ zrKQv5hFQpX%q8kH6YipjsD#Qy><8ci0!5N91taP69&g8Voh=Q~mch$#^}@__iO%k4 zalgRPg%sepUcXbLo3duOz3V(w&tX?CWG?6QVc|ye8mVq`*PXbzU)l_X)OArrFnarH zdz2kPKeuZ!3Tj=>$7bmc0gHJg__eLrx7FwyS| zV!WFb8Prmokh9(6>JyAYG)h!4(os59AFoCaXdu!np9t&n&o7H~L_8V88HMhj5LRwL z8Pf{+PMJZzR$nkSi#Jo<0e}IHm?D|z>iBNtzL_C9B{?|)5jOuGcZIYc9-onJmmdsV zx(CNA6bsy9ZV%!$jTp!EA*$!X7UQHK_*OrK_g8&PA^xw|&xj}Gr$fb4{7!x_BPrI0 z&rc5a_e*uk=ElaN`yyXS0Vm=sIFq;NP6+b99Dd+BKPHuC3y19!*KV(%rz6~pus??&~735r1$B+f`SlwSP%(PXZp5k zSH4$C3>@QQL9xgR9I2$xZ+3|cLM4)Yglsvje@Gjr7;nC8{F_kye^9cXARYc+(ZJtS0LZ-2 zIqyt^P`HmphFW#C%MZ7(!N#=;gF;gJunL4}lb|4n4g~ada)fk`$>x8(z9518^PA-_ zuO2h8pqmVOG=?UEudnYTE$McMu3V|MGGFD_~Tu}AvnE~? z(cliHUI**`uUcygc=f+ck%4^$uhOX-YOnVt-ZkXLrli&v^3D748CnEa<;fZRKE z1?Y~1{Os9R08Q|H5Hb=8|6G*9W{RwkC6uw!6DkI>R?(l?SFry%hu~n{W643O^jn$W zdGtBAAC<;ZyjdwY8X^BwfJgHY0m5Leq8RY_r@-I!&#r*}y+)--8sXoPB0~C@zcI@t zc!yRE)J*Mgp|ub!&RnuMga4EWKao?i3fDt}>*IbB%dt#BM~*aXwOt&F_BZm z=X-z4`}jDmrVGdfN7Uc!{d?j--bxO3V$`p%n;isVk{5@I`G8;>kjCxjnD*w5|62f- zw%~#LV+kr{IDi97J7QJCo=qg+76a;WWI#{S$K19QomV>Hf0$^ItPbGH(18(h0E2BQ zJvCcX-b3}mVqswcaCg7{)#_P)%b=3;*_)2s`TwV{=%>TN)KMU1T4MGj@(x!l57J{heF)RKFW?zowX%EQN|MQC#;vLH`EItsfvX%kU zrn3I9(CT@5eP%tB%#yXk^B+tF$QCAdfUv&6s5>ZuRP>WH!#A;4<8F}e0Hjq0aKaYw zlpa?RX}AEa|70n7aQ%U8Q3Kw5A;=Lsn!GnzA0!@j;KkDX-7bk|;7V@+9F{3>h4Vo+X^TKqQZiiJ8MY+CS$C#4yjFXtly0t+k{KsZp_ApSApC2PT(K;+a9C(52t#>4^w0tI@F zjvK+I&FkmZ#3J35ME}hN0Kj<(U`beo84sU(`MySr`l0#L_}An#tcML1@Oly$w3wmq zV-0j=l9`EsyRVSzyVL=LjEee$aMqf^W3~-=#A9MU%x{rFJpBzU^~K`1E$f?QkQh)P zCYveHDBCl|>gMTL9EIYMig3l_NsYHEgJW*!1{rh?bYy^RJy3{B^9IY!8Rt4cB$;jqs;EqRX3OSz4KsH8zE% zm)F;m0P=Z!+;TSS01WCOezHMU^lJzNHCtdk+L$A2-5d&hj<*F6c>-_UTAbEHwAQ+u zi@UG0nx}2Tmzm!$%%Is9ioJ(Y8;U4|T8E8YhlaNwSkXLe0tLk{1(onW%xPYx438O@ zR-EgB2>Ft4X}41~B&^Qy=GBX{X-a0qnPOxevofhR$bl z3ABY156i(mP1gWAnc8yQ`zfQuYa3>l0YInzVYg{GQu+_s^|E|s3cYG_EQAbwG z_a{p?=XImw`j43hrxim2?_adpOwyMvn4vk6ZJ0phkt5yArF^>U_U8u z#wv|s(P_C}tC_~bPVFxJopHaC_6)Zj!|%Gonj*UeP0jLqDJ{d7Pc+<@8>%tgogm@c!_&V5UY+%6`$JoFnGXPOIRGKA>-db_WKE%DyJ&Y%({%>F z>%^AR&2+O5sD3D)V9_jTD7!y0l(IMl$j;YdyTVc=isG{SPfx=+9w9;ijB0JSyWbda z+n7~&ju|B0Q!LVGo+)MWl}>JM1`*2%*)C{C5ekA)UxjNGoj%Mr%@=`?Qm4%eQU(-= z&FRMneSiy36`yo%UVHy>)4%h&IvorlX+kw_nqA9OyGy5oAAo5g9(rGGc5cK>55Tq6488QA`t z1E$obOt)PH^00HJ`#7boH|NEthYOzXG#($mZ$AyT1r~&Qqgvt*Ey>yS`YbI2$rYMaT&iA3wwOmj`RVU zCg-zCC5`_Lc_64D^usnXru zUElJ(_v?Gd@DGRMc+T1D?7h}{=JT6#mHt|8u!vOkDPXh%tC@e;IgvI zC8!BQt{>FX2idydQCe5w7zB5$Hnx#&y9 zliTv;ubpH%bv<>zla;rGj}Nz~J9{yYJ{e+y!o5*VcdVwPlRM|l0ZW(d*0U(lZ4gG% z<+EdsL|+Y?&6C(X+D9Tz+ug0;DM7#0T&d;zs2J79&=``^i|d0$Gu7pm@-p2YKmWNM z8tkk8xg9LdUgf82oZ5iELpdjO3Il@wH{dW9|)0s=?yMf&ve z=W5<9!rFixz^_IpGeRzV%ohZAkt>p&Ykm+tjgykomn7zEdGdSI&zaoovUUva**$n9 z=D{cyUV`!vz7M{*EtYXecEv3ob&;6Fysil_^zOgO20RGkS8>M*?8)dk(`Z`Ca-cJ^hs;`DkFZ z>*SFIl0M2!Xs5jko-2908nNPW+KQrZ8Km>{k0WQk7V?tAbM_QO#i12B#r_t$CE#(E zQn7R4i;FY;*+ns=b*-kWkB_UX%!1A=y3NODICZHY{ zp=W=3GQA;w+!zN=BpWpNsob$-BYMmo%Pp<;udm&FVl9_AxBx5LUcQ0L-!%|d%s>8a zP7NaHCx++32M@fc8FnwwyBd{eP~NKy}>xwad!(sY9q42M+l^ z3qPPp7lbhqi^+9Z?~TjK%34Grr9r4gf6X%v;rH6<>?w7nLwX5#=KolHhWWyYeR)Xi z{c;=qIWX{0%^eWaA-MnblV;L^RC7fcb@AWEJ0lIeKu*`EpYJ~pmcM`NU+u=OQ-bur z3{*!kc)`}M-=V|*?Q&<*I|gxvcE`f~zK*4`y7H>#)4!`S=tAJ}7)(b%CpP}^`OSa3 z9|LwIJEo=r7mONa%TNB^hzs|(h_OFERcU{)jy(bDgvDlr2}?0(Ei3iOWztB-<(K4x zrhsf40EDX7dWtVNazYE`qMwA$XvNX5V%T@Vv5b|#Gv1hUI z@p5}!Dr;eURu<{+=Pf_ruMtS}o*w;6V<}3-vQPkVRFuLC=(Zye_ISX?f73iqN}!O& zP4u2BjCTIBjb<{M5uEnJyg2UmP9QfJbqf$2NOiVTUnUD>OXDiF>f$PNTR%3QZxlQ~ zRt8A90w_}JyZhV5=H?+Di8QuUsnOk~cE6a2R}4}>KUNz6ua*Kdv@eIh)yYrR`mX!E{Rb*$j6=rSINS59VJRQV2cv5B%&R^!)fwv$oc z&BiL?>}J2Gj=El!6ug|dy8Um)08`3SrAt;W)2I&He`C-o zLVG)$I<-4HRisiVqgkTT7$M~fGX%pCVl0fpMzB#u8-%X!5IqK`2%r^(-n)V-$4mH#B=i(%ClWa z_`cnr6KA*B6fBp;Lvd4B#9=dEY&@1FnAhlJstnGntF!(s_DdNd(fe@DZ)dUxHG#nk z-EuO&Sn6u!CrDtl7ies3RGfD`q){#TMSD9*5xEQS5f!0?f(q(*mIc7+snP38f$sEo z^p_M;Wv`|VW?6R!*85aSR4huAF6k1{c>mw&XC(?yN|D`K_fDPegnV4Tq-}?iY*eb1 zOjOao8;=Ubklrgr6V~ly)$OZ(Z>N;Y{t$>TXoQIIx}dYO;S-v5)F7Cf0eqFARckF; zV>-efv2i?}6Sy05+Aa+{m($fpqg`)J$xW0Hfk!6-G@d-Y*8B0D2_spSB~V+_F{B8} z6Go0gnzLD4t3Ko^^*B!YgZ897;mNvuNyA7wd*KVBKSNx}jQYw1(KFc!d7i4p&)eOS zgzM--8dOHTQO>86?5a)HI#zS}IeZ*`KMf7s&2!`MXcOe|$19|aRssUWRaiLCoR1bh zkZ89XVEbIEx+L;>)yrI*tO}Rhsj|mjkI)hjY4{S4%ahF4Ttg*ND^8O8T^})Q4rIp9 ze4EI(UV zD*xI=vuHWJ5|9RZEAs%8Zj;33P-2qHd-oHCJB#s8;8ke<}BI-)L=7LvPM6QG!H)15|tY&TRKi4Y^NGH;Zfhj2wp%oOq z#m00=OnK<9=LU_uGtVz8(72t9vBZY&zx&wpDk5;adLF;_@-W}7Xr&d#BdT)T9+U(6 zcLBl+!pYp8p#()B(qdht-xwj>V-OcEG@hqySSK*3P`8)Ca$G&JTSS1Xe)QcDo+^A~ z*k9QgV5JRwt8WE_qOS;Swy+Dh2{}IZ9G&iM88aGQtDWE^jc==$-QnxsUsOM(RIjrk zOo9_%CPy>pX=KyboDc78Ouly`?0H@a5a0t4l`P7=fl@r5*?s;>mzF?3(p%PXrpczL_fr;)5f8w@74YZbabK9J${+R)%Zdu($KS*O|seqoDOT`A&3~HrN-i4AYX4+ z&mErU>S$Y zhPhLW!iaw&hr#4w^ye7A$pX--(vN~4T2uzz)3Zu5Y=QFp;-N)#@Ychc9z(Dwk!5LX zn|tW?)|PSo8p=pV`qaXPbjzj+}?cO}bX`b@FZg-=d+PYRE6JPDliKDqBcHpJv>aMsd zH|GsH-%F%(zFvAA?H1pl@Rw&7dZYF7(^y9o!DQTf{MZ{LXA6Y&zGxgsnD9o`6}QuN z`09N61{-Wr2yZ1gKd3^tS&Ewh&CL|UfaGXcc+{hz#vMz=!RUAeq)AA}7?0SStr9dU zp>fAh6r!!<+;4Sd&ZeI?;$P{{bt-6+IF3Tv9J&>pq`NYyWYZ)7b67x&8^R0tt`yhf zB~hS|7wNSMctjGij_Bn&Hq_u>4GRa3gz_F^ouWtH0BDcmbka16($AxxTb=+D6JJ7> z9?fm*?e>8~Dx(b#H@zl7D*ro=1}A&_D&nJI$jD#^Nh)Z2;x47lt&SeNup&NMsPI7? zvELR&#S7bh)YZg2UmfM!@TS1v#&hWq9t9tDUiEBdIO7LcJoaPMgVk0@Xhz=`h9a9V zB2Ea)P`5Hu3zjmI%1g)rP{EZ4-1~3QNgQo+(7|7vS7q-%JfP&op0qHOMGOg#VjvwK zgWkD$OC0#V(?7+TFF)pmMAMj6=#(@Zqa6domwe7oJlAd~5^+UWt#T`DhwwH4k{HpAb~{s@2givV;Da{ZncKc24j zCSDe0@N_L_g+9vXxg9SnGoUJ)5pz{#T^%n|@jcf~akO~dhnPkb<2^h)nrJo-4_5iy ztMNFj!4=fLcR`3zS}A6Ap8-jGtN@hSqQ@;9b-&ojA&!32M%e8PbI7i2Mz3F=V7t)r zmcMxxR)@fLu}O3&i80BgV=B3dvz|pJlP4HG+={W>ytzH*UYI5#X`T_i!J&BQKy4NU=cO5nM7g36LE=o<<;lnkbFvc+oY~=u3Uf5p?i)!NogvFq^fCrD4(kX!UVlPa^2gp3qF9y=V#jE# z(pcZ<;ZL~nkjxrnh};*AQRi7u1}m*RgTK5xsFl)5S+cb2ewRaL zSgXteJ|*Zxme2>y@Skim)jr(PIesBYMN-9FL-E)x%!FYJpKO2fG1sowY;NFGvML{Gset-lBAB z6%#UTuXBR3(f+zK4dh`l10V@ikB;04}+(q0m=2hxpNeFBq1B^vm!n6nQ1iOD7mjCOIe<|k5Dt{)g zOEwmn?-Ux2D=>g*H;I%fEJKp$b#n+j4`@w9xc|;nD^5rY4Gw{YVa2rWIUmGP0HLI0 zqcJelMNuxJ6sQlSh&0wn^)U*6V+-ees{Y3A1cMv}o%yhogO9&|q-)W+|KuspBHa*K zb67z$Eh$piWCmD-!B+=YQ~8|-AaT``hnMeNa{kra{FDhbW|zQVWokK7g%u8uQAWpG zoSsVpfbM|96Jp8*L$68!ZkVX zQd8~W(rx>C7)n6@yYg-O3TkD2r1#%*yZmuA^BqXQF!sNzvf4(MN@i>wLL1qgtHa(L zj>SHo5%~ijbpF3b4GfT|q88?Wx8QeytgD zk)D8j$(Q4Hd3{Qt2C{LyLu4gNpL95npx6?)HzqeCOUb}K6fD-ZW+qMZLTfa`L|}Us z@>6cnAgKL40#^v5P%de#>!AxQTD48o$p@Rrmz^ z_XZV+>;Oi8YI#UY0_f_FMZ`$_Ylg9e0e$VfHXqNa_#!51+XZ*aocLqloCpG`tki`7 z8w6cKhqK8y_kUlG=>ur2EjX7KuxZ#TFTaBv6wGpDitrK8X9gxIN)rA zgtuX=2YIDWPiQoBGAZ~~&-=k#>g+zaRCa#m@3jYfd$Tf#z_#UaxCgvnWa28>J>37& zpacRt0AXbD*yLxv)-5PV=6aJWGDvI=`Yrj&MPuWD1?)5BD(P|JwiQVfccarbjb>m3g4{4W?jk z6ska8mFOS@2OT+z%k1PcijW2hM(Y_wfBlMiYxYY`?z!`HVNn>5d>wu$Vf9yH(V(vN zUkS^92n!!fhJ?IZoG5AwoHn}sK#K&KP643pA`E)2buLe@-?eI^rUh-0Y4AZukJ0Hx zO>u3f&P2smQ#bZWGrAacpS-CwPTk;mM!ngQ|L`G)&IX~i%`T1rvY7uB&rSB;Vve5O z#^|4)?chVU=9HL9u88E`y|AAbIq9y2?Obi_+17~JkGB~B2J=i@3;O%htknLsC(V@z z_kwXGP61PqYe|M4e|y1~OrF0|hP7h|(K%rVU1rejzCu|yK|w|O4n+hGT@no>YZ(y* z4e65cJ#x2LKN%^CulKAowd_z&p^cXfJ&;>KP@kO7-Bq4UD$DFXTZ!}E3Rt_FPjp1P zHkZv}@|$szEAY5UPFLz;lioa1i$)|+ChGFKg$ykyTy32?_{-;3fzy;S`1238n4Q|HYaJURQLYI5fMM22eqAqG1 zx8T85X77&1j`V$WA%7gV^Oqf6u|%i^x06D^Ln8$d#QwhHCs_iQ!^`xl?@1Duma4#I z9QfBD-XDiyx!>a@dx-TPL8v1@hE(` zzml!{>H5@qUk=^3G?w5OnD#6%vgvFIB`*@U^ckeE#^}Y{3AJ!mh$;2P*mV#u)N9`%!!R{Oq)emjk)H|mX z@$|Cmn&3XLeqghQ0%iY1g0nF}u2d4W6aX&r{w+MnZ2zcT1+#U56fT)><7|}ytLkG( znq>LMTNZ#2N&a1O8FXH8cj<<{Ao>XEkznW%71SB9#}MuKjb{FQUr1uJ+?EIyNnu{M z!)U$4@JXYR+}P(LB~MRJX^1QUvMk3XM*z1yI*b%-S~IU# zcCc@KLu0UQC>c$B#7|7mF?3{yNEHmWJm_-kS;tzRK3io-6?jgdV8mdojgPN|NqM{& zYvZS>ovxM_n_VZT^`{G4@6nY&C(>GvSe+&NG-wgXWRa?3e7Pne_`02Aue{)`GWV}| zs3ze9m?+=0P3_)l<{GbNX$_vtgf1xIKCCIvzk?=eOak5lZE}-%Ht=jBi``SLeM6`P zxS?XiMplR(&|LyRf(Zd-6yPM4vyQza`L7NvC%zN3dfg{EZjLg9h(grLkGiD(0K|uGI{05jSKSaLbBCqq={EP$h=<@BO{K zy?2h=sir^=W0N`Whgbj%JXl7*9l!pX+9`+`wgqSTr%VhyIt8GGGaDQ<>EDaMnl};U zXVeg?@QsGvyU1*vfM_I2jO~ft)(HiRpmTt(+95R1(WSo1@w5?v?WnfVezm0`t2ZCe zUZqFPTif23dj)(6)QW~qv8KxaX1^iH0!`uQ;Yn!yWpU@jy`nEg4{LhXzF*wzmXTss z;T%sPzf097+aA3J-Y1|~fm(BOdA)AyQS{29@6#w(}v#Zm}Zg%}ECVpTq)#6U-r^6*^~c@h`m@!G;mN#0T3wg0$>`~JzRlTrvUZz*0=DR=*(vPlh z1Av}I9<2tf-1(5!HcoEp3MjcH+{f zP@!1~t27P77iC`(aTMbwt;Ey;N*Me4V_GQKP7RsN69HBC(lGm%(exz{a%nIOKt=H; z0_lYK#etr{Q;gtY9Bcu!tOpDPbp-5Eur59t8EGnfZ5}i)l;LavzjDJ0j_Pu&mpovl z3sG?BXyPXpIS9vZghK`0J5d%=-#hnz`hDWpR>`Pa|M@RK5Hb3irpu4u9WReYhZEW< zKP2?=SLJgwZ44j?%mGVTc>i9|?k-|GFzZA>4sd>;*VL21L4@-B=oTsA^(_OvgB+6x zY$dT#f7K?0&M1H8r))5yt~ayhaiaXSo{n>K%WC<{yg1Si%ocZW^)~nFZDbH$(x&mm zHV$&Be~KPnK($Tke_P2rcXj;)^?%KOcg#~?^VTbZ*ntf%POse8 zf~(~O{GC|0t@jc5D0f?cp^at5D*&KmqU;eq0lOpIYpyDJ*Og=jbv@Up-({NfY=gZm zPP&QyGpj9UCrZ8o4v5VK_9rXQAn_#HyZ7MbG8EXP6f~T!Dc(Bbh_pFsMZAj%PJ9mI zdc6aIgPA77d?|5s{gk_cCiu1CYnQ4(SL3dT2hZ2^dn&2~d(j9nDF}pQgYhWu3gvIJ zarplBT%mJ}sMoNvbDnl_dRkbJvE^j}R_}^D-ub>8)9%XbW8u`Rp|s?L*BeoZqWf zsHD=W7h9&ojVL*&z!G{X$Uq*7@fhEofBaLao(y6N<#6C@7_{qC6V+OWNa0@){z_iz zu^cGk2NHW>%om6Dm>m6}0BI&_UXq#8M!DDfkg03Zn>5_U)RR6gLY57)*8Jd{13r_n z*se97`_jsiDX`>kJfvEW^R7F6;CzkrkNzNy45ox?L(lP(iX7#(svlKeQRAXUEiE6# zoj_||q{#2>Mz@a=c>Eq{BNyET-+QEwc z_^G*Q^6LRESz+!6{C-SgOhS3u5G^U#;L{=e1~aMDFJ?`SVzIJ*^R>1gKs-p2g@Etb z0^5V*T9)59h&~~YIoIJDyhWY+VP{0xG^2@T^8g^oYOc>z)ea-VXsa~(ZJ#grj4;^H zt^LI;B+O|D0g7V?E6A{sr-?B~erzC6RPL>VlNwCCX? zH~-mr+xbT0mvO@C_bPFsq7jVVPz*tWk7O)5QV^u)PV$Z}KM(4q?5xnB;vp341>?o6 zu42*(k-TuF>fGRsjdp|bFd|v|AWfM(XaV>Dk z`kkQNIAjy+jb#!N&zwi{ceJ$1D>r^G*kHZ_W=?1Po{KQa_1@2BVMdP<4`U^;d@3GzFFc<=?TgoGZs+&kess6!!rD~N0pmX1ECiBBKQOS=X6 zIV1rZcO?~{gw|I%0eQgTqi`}Vg$~{M`k^OsyATnPsE)0#{e^l_fwtKbmZ;8OR4qOM5kOQp*Vh@XhMq! z1tX$%HMB(hTTh}$WvuzM>pY`(CeE@05wE7QKfuZgyGN0rSi2h>v!GAgEhJSe^jrOg;pcEiSWZ{G<@YRAd6dFWtl!y6@Vcxq9(}X9MMv#+ zI2Vq~q(vP%xX|X5<>@=!_3Pg6_=!yFUDRjd8SN(1=*n&#?$FK0%;R%9^@{APLoMmX zTdASmdj`~K1h#czzK19t$BTv*vvb77nPu^G9*;t~%nt_+9Y1g0_93wQhP>h8f<8sV zKt?~*U<*3o3(R$rasCy|X>T?Sf&u&QFKB3~=akyK;rkg{Vsj8-I4D;@nJ{+fj2r`9 z?vVG49J4jzsJHfrh&~16{cjr89}Dd;Aa-APM`y9=#lMuDHJmo)0((JQsZ-*~ed~n7 zhf1ebi}(=AV-5&WYL?ag^`WW2%Y33|e9-rcmm_$0<7!VI}f0W?F1eKW4D zDU0q?cFUpBER4UC3*Rej*d^*-43_YEuZl`zty?mG2ShrmRDaZLY_-0nWmc(adw9b} zxJCJJn>>hbIpE*>=k(!LVDW1jn~fMSDo)OS!IOB80J*pT+Q4Ro!_CWU``0|)!{2i6 ztsb(C^EIG(PHECSnVPp#_0^=O1@xHZ8b z9=(L>6H({ru2{GK75D8Yd3jsAh1HI8;k{s>_bA5qzQ~{1`Dyhl^I|&dVoF|caIt7i zPqD6&c4!o(E%dxqhk(b`nu;GSYV0NC`d|!sT~@DkFnJ#Sd|NSwMAyVQ4|>ELa~9*PFq6Hq+A@&eVm@ef$@s6ImeV71Wy@2G(K%q4b1l^Q9PSDSB`IV_kAQbU}FjC$o_<)f*-ZGC~QL7b0RC~CzwZDARpW5 z{MhzRSAGgOkInRxeOAMZt%_b`@d@`+7O%`hZ_(FnB2Hbshk% z3jrOJ-jbHiZuhn*kr_Q;!}`3LgZG2?`N;D|7^aaTy-P(+ETj5pnbM{>Gae_#Z#INY zds%7lW*Ho#nI1yU4Nl@1h`;zRMtyOlwIxgAyM{7n8KIK@GV83PWe{kaO4AddtUh^ zee~CU@AJx!*f1h7ajhppn&i2>N=0XwL6b*)r>e8^?!lA>IsG*&;kf&y=~2Km>fmbn zagbt{JBG<4>7B1Uzz!1?_1kaXs4+82J;a*$#+bpcXTW(D33!s62eq6s)c%oFACA+x9AWUA#87FqJ2#J20Uu{6 z%z3>#T3VG>HK$iLO;L?mgsb`_BFex!R5?Fbb_mX$<%+-A4ckqoNo(cp0bhd8aa*8D z%S{mtzqMwsU+;w)MG;#zJQA$dxEaCt5)$m3k!sUmrt5mAnUHcX^0BK10vpM@Eb>z- zBZT&v^XBFW>C`c1!*1%`%w7Zzqm}#XC!f#_ow5UFHVNl`nY4@Iy!mfkOU9sTO{8O^ z6K}=mo%VoNSU-8{68}<)i@I*1iGp)i>mE2k-RnepejWxpwr)+VWa0h1v7XNHNVlyV zE%C&yr?D(k7WgT%V@P{?_h4hW|9RDCwGJonb5Kvz^Ncwz{gVI!TzD`mn)9(R)aI+@ z(id}XN)+zfS2k(9ejKm4y;C3&SZaEPC?9^LK!DTOlsQIE9E79CSuk3wig+C%g{G}c z1@^b@Xv7i>9f$T#HN&@4xh-3~>N>^|GfwwtX-- zH=!O|dn){YcXFLq*HpE)m)}l0!NaCa>~xoIoor-n1*j)UX3{qD4MV&Re)hdB3;hXp zSJa|s@(|;L#U4Gq-oMe9AcHO10*9C%HqCL(Jr7#;_RSWuSo=L=E!CI??xr{)hN5i3 zd&uc8$Ha+}wH)osQp?G2c=-4d-pZTYuE1DmJcj3oe`cR8om?py!~SKsRr|^Ck`v-2 zPT;O&4I!SN?1Ly_%jZHX1QX^$@&St~MOpCj5%GCP^NMy7m8h4#!}CNQ^1r&DnaG7TOp&?zz3*0tC*P)S zI+7-d{*!q$&y={W^ZIw`v~B+_OY|+XU(#?oXK34fee)|2=cHDb66{DFJpnt?U`Z{$ zA_~=To~N`qxMtGu-F`EMK~1q)%wn=Ir@=vxAMukAYnrn`>jF;sy+{kFEzi% z$yW)PR!s5=Bf-;Q^i!#9=Im4PE7WTIZpKxMdbeX+=Hn$A&)c=&n-+UAX08xN_ul-2 z)3r%)#RF8sx=!tYx38#m@YZ^wnL^6&aF!x*3aCD^7$k@yr9*jLULH=RL->3QEVT{# z9MNA~36-iw@{gkr{KmJ*+}|-3A`-MM%V0|3Cgg8UD6yseo2m2 zypJELk#nx0-ihXiy{P_S*AwD{IeAKXucduc{^RL@zo)bm_CL`=$>)r6`TLnpiB^`_{lD^4A7G$^?PsixUeM;-+8=|A`fm~QOpmUKjvG|sR z&EyF_Uckl=`h@=4cqNz5wfc1ON#xdjr8J1GOm=M3II7vx%zYHjqMYk@?l{fA^MEye)qFGGtx;13>dIpiSOsjZfK3oU!xmTh=bzSSQ zS>iEOB$i&!X`(YVQv2=spT?h;R5q#Zxm@Y>OkVN6@$Omg3my*M>(rgt{RbzJuNcTO;GR%kTW zlm5&J4FB_Z*g3TRjC0P(;MbIIib!)JR1X`-H%`kVv>e>U%c0&s<1y4=S9UK~uQV^2 zjLkg$bZ1rPxSH%FMfwcVyGpst>Lmw_VYJq=UJ&rT!qd-foRUP4;p9|jPi^&mT%M`7 zp{p=MkO_~WuaAzRy5l0l<|>Ga{#LVaF>nc*HWTaL(wi0sZB5s7r^>Cw>*Ps`EMc>M zZ{2N@vsb77>cJ=dZTZGz+1A?UT6Ke%SB8_PTuU)LNR)QnNiigMO=$xsY3-93Iv)ah z=M08`QhTD`&ArFkK%e=wNiG$^J|`9*>a`=;{4(+_-%-pj`iHoLaGki>5N7RrBJ9KM zC%1)>(;qr%RjKin%s6g|iI~)^U6LOKa43G#m=Wnn{pgsD_JQqVv!|yYxD*ZVdz0XC z?sh=fjRqmnIXfnosgIzt)X_%p|0C2kh5|*nh>AZt>A6`Cfud*>rCzr-Q(ZgQmEtk| zT|1&g2z~bQTcmpFhr2!G<7@^phhpA-nE93P0RV9_s41}fr z@P{9|9oEgsm@MizblHgdiwd^odwN)mX?C?@9}e=mS%&Ucw8vT(s~d zc$QzR5s=o$hTnmj3*XxlQa#pNERQE&ldDM&nCm&g!lJB#OUAiMhtl#)GM=SEh^P9A zG4HE^IBwj2m_jzMsEEUwBbkbxjl=BGbt28AcIuL^Gglw&Kx0xLPmAE+we&jbe`Wzt z5<2M2R)6BSdN^TU%#=1q!+9s(sXsnWv&x&~Z{GM|e~HlnnUpri zJIn8hARawsb!b^vyG_dl75xos4^c%qEasnjZYh+=uXXI`v&h_BX^=p$Z*z!xqlNV% z)%Eqz5%>u5I{Ae-S#jZ8z zph4r(Ctf4!om|Gr<>#ncrSI{#;+&%mW!^W~QLhDWjpiJQn8Rn=K-V~m4u*iY#zeUx zHh}VNvd#_FTaID4RoAVJ^&u{nB%jAr{~d;luw7NUE#FIZ-9Y{=7jnCHyKXXXCCq)%Gp6`xuKu=?z-XN-oI-28GfxV)lo%19TaE12LGKNCD^G3VjsSP zQj{(6C6isgUOAA?X@?Z08t-3X%i_K3XE9PrghuVLd<; zRtKm^DnC&pTUn#6mrDxyVev=KVap5X{_Mw*ay2$~Vz-}z3DD*Fp$@xNyUWUL9CMz>icDKtBk4%XRPV$v6MswnC!WT zh2_^|b|z|-6|~Tw4+V@`kJ#*+z_Ntda`}fmO!^FS^nI)3^|D+hkMQTX7$Q#G)6>(4 zrRR49^l{O<)=B3G7pg}iaX6*SVegZH9mMvB_N~W*pXz)CnmGv$D^yPTT*+Z{xb}O$ zYj0y5)6&_=tJJ5k(d*(f9@iVwm8z_*z1hxo_zH73ig%A%B~9W_i(xZ1`{jMQw+~c* zF0sq|yMGoWqbd6=xhWUX3GItqUiyp)oG1LQ8Xux%+Wf(6`O9Z8+O*pwS#4*zpaM!Q z%lAq&c*bb5@(Zy?dg2GQMptapR|s*D;kdZBYd7q=bK&YV)5VV;*{xn!oFEZcA<#E-dCr;>z;jXMGDyuNYY*1+_?{GkWU^3>pa=TmbZD8Dy%Nb=_PT zHVuIoM~L^gB%U@@dC9Scb?8|8jgp7o%n>Q;7JQ4Sy>RkiJn73K_pXo;<6z&8>ss{- zOBA#zD*cOr*geW=mwQn`u9Ap>loBX5=p(qBm(?Z{yHIHf(-(Ka?CRK)0kswqmxL1e zsN2hS(ZSrzUzklTh-yHBMHG}4fsqmJPx#RcXPREDrk&)=gXnrVN3+qi4??u4oFR9s zaa#`p$b5+>4a99m368sc)}w?Zsv$EE?^^KE!@SkyqZ%Hh7CiSQp8lj!_ZnZSo3!(r zY!N3E*ab_Ux__xChhOVu?8|=CqT+(b_)PN+_CrmHB==Rb zQlG^v)cC=LZhutI;&oIBro@@E+~zkZEt@0B85rL-fe2im+;wArG^7nQMl)X#$C^;I3M#yQPu2G;tQ*b)m*Xxxnm0v;N$r@A+jllhX$S4B^I+3)0hH=OFf zo(G-*;6A~4qo%S{>OmN0m8gtaFXNVQM{TcA523)8P!o=(c;HXh)4eZul^sKwsi=-a zP>yP&etBV2oyJTW%kKJMva}mfZ=lR~iD!o5WtUiACBu>aDDN6mEd2hP_kp2kzunX| zP_S*bM-OMdd!RbvC+B0|TQbl2KAa+MF4Y)xC81mfbDwb5&`K)YgoSMpi(hHhc+J6> z-+g%5Y)-m=bARtdyrW@a$^fmxX{}M&iL?{Xb$8l(Hf;5YjKI9v)Gxrg>G#G&a7~BK z@QIl>Wj_a9-cNgSG9rj@ zsa9C6Ns1}KAl7pGu?aylt@oJC#;9lUC|Jqyk?kz!nBtUyGM@+Sgnh?; z#I(d$jH_!IJ!E>kAW$D4XJ7dSHTQST3(>BAwC#r1*SW9E+bih{0x z=RZF+#uqtn+q}s0XE^m7+lVHnq=PXjeBa~TuX^syZ`q3HlP>G1mPg!qWfhHSXf_Xd zVs|}3`0>NJ)@dHwK`wHeNb9ARMZ)*39Mk&BlOKXnSvhFU-`GyeJzV}7>JN`mHDES| zDeyJXxejcPNETZM;e{{mE4%>2C;5PInDse7e82O&W3g z`bXy7cq~VikQ^g1u@cHi$_L6hPnP)fAa>=e&)rCNi#$!8bu%u)didN3yGm*@Zy1bN zWhf$7*Aii!T$>PbabEH{QJVibK;iO|Iv71Ox-dFyC1&4ah88Mq#f>IId-1CsK@MIhzO1_QJ+|pk>otfR5fGeBl-}w;UFBvPfLB87dIc9QU{dC1Iq^3U?iFzj`MEsEb}z>7$54HIZB(W zx3m1zdYBR(i!D;sV2hgW#5}sDI+B9VtIy`;S36~bAjZerr_3j2S0mm{7F#c6cr_G4 zMrz|;#=)y3-Egvb<6}}KoQ`^WHs>$|m{%&;^{Sx@s}xTBm=%n_?o4&Nc zPHkn%IfbMr26X3zI+%~38z0EM)5r`RNo|~Au!VR($-r%7n5)!T&Z4-*JJ3{&9~q|+ zPBySBD140pVH2yPyvOxJ(Q+Owd^$nhLRKWj)k&MiGAu*ZpErwiYkW;^5e|*!t@~i_ zFRJC0Fpk#$;m7w%==eO_^mw5jS-wxD#SLbC>1?yGEU;!im@UkiunR{6=inq zq%=ccJ2|w(RsKd^Y;?cdgLDpNfYR@hapdtU0U+UwOP$0TKSmw{KCZChRHe6aT>Te| zzacA9w4pm8?b%@m`^4N)Jd)3w{V@5D^g;Iz_nVuo6`^#S`y;QNp*b0l+h;*8q;C%g zTl;XEl}SbxU#Ayu?Dndea%6!g8wk;Ad=hXnsO^9}VYfIxCACmN;i;$a^ao{r=`D4g z=mPceRl9VPebDG7%Bf>zS|ihU*qWgD)stscQOI1YQ3qrzga0e_>vA>5l*nJh3Jw@G zn)B%l!p>lqQP1fV^#Ruk2xJ1yvFBB#04U*5valvFX1TwKqs?o)>OnjIGSkmbmuiCc zR)mIwQzi{!#N7{*Fvr$J%i+pnA>#lwGKc|w--sM_|7bv)%7RRns9%p+4y3+Z%TXWi$~lpuccH{@v~kQf`E(BMBC zxM~Cix1v4Lfnb=w?E+i*Daldw{bmC7 zcKp%h8xa}Jwv_ZwCJL_X+ZcKBwg&K&k~Ob?NX_4N!9-ZMgM}VD_RiSwy(CSBDg6e| zitvNNeJ3ZH~N+VEp5$Z*1t!C7Z_RV9P z6PyvT_UKHqvTF@D%vnqPH+-H@7QtoTad?%K%|D!tThrR#b=`m4jut z7+~=rT{ygn98oudjW)udu)8bAAB}M*9n_a@79wJXf;{M2ySBy}O2GUZx>|$XdUyJ^ z3h=d{f6#1%U;KSWywh)Iq(pgQMjuxBk^YlFtori>Dl;SMV%>{IzY1_YUA%Bj*%rP> zdxsi)n_}|P485`?$HDlWp{F;ZCC9|X68oZ4oD2iKvb!z;(UjqKns9h?TRLGn%xF=A z1CVCu?c;y{=V}oenu{Qb6pX5@hQx~igAl7C_W3-WE?$@e4)4TM#!n*nv$n|^`siol z`jz9C6~gWqM^KrEdW0(oNYPfoNZUp1HJT?3^9azEamtjmBqeP>)WDupTL9x=L;0tS zo@9~Nux1`rXOo;N{ZUsl0E~XMh#n6nomF^$FCYg6fRn0pE7q9rg6LsY!wa`PM#&Z@rb4wU)O%MX`5aSJ|&e`h+eDV^nrpKBIImQ!{{TcA_+jNw?zHy({Cjik8PqGQJ66u3w(3B|N$1A>4WAg{FGOA^hGH~fWIDKT)fsm6~iE881P7k;@@A1Z>aHV74 z%nt3>={*14rgaEd7L#hsYK|h`ULqIx3^;AVn0n9aDvnGs$q))Guk!}Z$hkU7zj<=w z(MwL|*6ZGz_%uulB$bh;b8ubiBVvGLJ;Z>QZZawlVPz}?+W5bc!U$0>RYc?b;C?FH_9lV`2WB>=2+CS1(|+70X0EAb~lfG%gCqzYKQ z6MMWsDohVak=hPp%#s2R77#QIx@~+%BO^PCiB#ig7Z_ycnYG+YwmC>oV$I-Rb0;v{ zifR~3Ek%Ns*0>TA`9eGq;)a2d)vm1Eg34g0_(6XcnAmvrWP?{WAQF-E;U!- z^*KISEi5tDQd@)H;xAq5JbTAAx6KH=PKL|Ucnr7NwO#FMOl`tb0czN|7bs#;wWt0e zh^zQeP)CAydIcbpS-<7-a_a>d(BzLG4*27FW}rO9$wQ?aL6LqEYBq0Jxto{N^b1RY z9%f?ZY>+LoJdB=w4qsU&k}lX#+uoEpLXV8m4WoO+Gqrryyq;DZ4I{Ee=rljIn+vf8 z+1@NQ(@w(&VP;q+e+buXtKP!(GJU$qSX`)O zDxV$mS*KS5*nV#;WUS776mH$GYDP0Q@_AIT{^-csHnxkbsY&Q)v5vnlnbEV;FYCV{x25IOEUj zkOEjKuTi19>=q+>Dv#OJBPL5fG7^(J;8B1O-bo|B2M*&@Iu8*FN+nO2(d{O3TdU3cE9=K zPK!^);}U;yax$}RNtal^!X%_w^V5UYQlrIBHw zC(7T|n}!`oah5Zk|Dx#GQ#Qp7dVnWWBB$|myVVVUxW7m1k?I>ty@X{Dy2~I*!Fb5u zO&Y!l1xE6OH5B+;_DZ}*@;6s!r(OAD&T={0&-7uKXQ%RSTMzF?^YQL@3@dlf-VIy%sMw(g?zxn1nq#-xc}y5B)`l}ZgayX5SKgD* z@sy#ft&O+_^BQ@2rf$+`zEX_uo$G8%9bK(8DO}IjSu>p+jB(Hy(LMN8`hENn5);Iy z!+REn1Y(u$Ui@ba>hWzLxL$(UJICN5f{aPST2%{WXFdA>p8nWnJcA?=Y7RD7q=d$sgM-Ut)S%c)YLya1{@&p?a za8Dn{Wpm1Q3V*rM2Rd)HMjdYSb<)xdDOwicpL$@8qu!DhyRHT7r zJZ>*WPGbGFRM|J7Jl^a8Wl>y)lQ96-WQK)Rk3YRVXf$+!xS zCq}X?M4s$VS?O@$IrF^Wb&tKdy1SYuE+uz&!veheIZMUjT52WuFr}e9` zLn~Dr=eDPq;RMkFR*I)02V*=NyyKYWj5_!gD3A>O4#$6F~iQuD9aeq)xrT429kYm z;Ns=h?pA{@O6qmt_rZ?Fov)ssGn>{)DdwVbM*;d6mTVJ< zS$ak@wNAA$>DfAkZ=Tz~Z}lx};&DBKl@ukq3quidn0QHPEd5cD`}GBmy}U0c=?i!+ z{?#ZB;?hUZrtqn_k;`TtrR~uCK{|h%8ybETX`xoJMKP?)uSmG5=&WCB`$l!29z%rC zeXu#e+8|-*AnbJZ^Na*&@)6Td`_qLY0L1j~TTj)!_X>Xd<%$^;|774B$va^-l#pR} zfm#dx+P9W;f;>1BsV1~ZXOhyOK~q!D?b}$lU-#d8KK5wmoUz`wMjD7nV;`CY`!plu z9Hnt41*4WOcISeHFK*3nwp6`EX4X4mvXUb{DiS-`lvzMXc_?^#V9vFHIFGG8b09xD zfCwzgev-=5)xRy7gd)j}IU1o?D5*xGkyQbu)G<5$B%aG(9-}sHw%U6#oAXpS9GyE7 zbHs_IXzX9?^C$1#UBolzj?SBfRmU;5rg^f68qgQ&HLwm(-65?&2)53m?nA!wUml0E zXV%TnIj2}-@L)Yn-5)&OWDB!DDem6*}fUpW-j@TLLR*ISXtwqfREy z!NR!OxYSBbiHq(F?ELi^enl}?keWv+Azk&h-A^&xXUUs1+HRC0es9Cyv_7`}goPw7 zi|pR>egH=K2w^gTt2$yl(Dh@Yqsw;tnUww`S|YAFPP>%}w2Wl?#267E%_m^EyNc`#nfzUp1% zjH{HiwwpaD#bUN_uy*ZS{*Iu+p^rKSt!R+Yqw+0}{2Z&rk;o{$8r*XnZj}E7i{D~s zSFStfU}1XKcVaH!=AMY-;=wA_;spNesuZMg%}Z~9`N4f(YFj0Q3-h2!qcg;PTOfcG zke1nrf&h1X_oezNRz$Y#Dik$c{$G3JQhk5-e z@U!ie;Vg6ES%#*Lj0p7KfA>nZmsE=*8)@;-9WptU^_awOd=D_ft$PsVdc-hvJ-Vo4 zXI~lVIt^BnGzGn-@xe=~x-T2Ok1X~gQ8An^{zPy^F*mR}hLklA@krdzcN-+`K2`e373YLqdn>JhJloxM z1-B8QCD}_63`&196F2Vtq2BWKizoXl-Fr4#PF03aA$`sUt1^zk= zD(b2wefc%d=0F}|TV4sTftB0UIDv-g3WG0KAv9$LZ*GM(CJguh^=ZeY+Ps#NDbes$ z1OhHzQ?0qrjxy$wNH^sOU!0=8dqk3R?#;o!N?-j^9c4JPVdiIb^|(v;=#QCJ39(T8 zqWd3V3@|5w?!OC!^gq~9>3<4I@3`3hd!M|SihRvK&1t0!RN4R-*P~zf>ooHRc*^9u z97LnrQDfkI6;J#)vD_;}kfX?erOKY3Q9}Yy(zU!Q?&ir-_yXONNc&7Lp+jj-kN1mb z7JRVz`orDsBwfI56R_sGs>Ph^r>!CZLRdLmkmS>6XZ*ZvhO^n-N;SMBtIdSed9FCs zYczsB1ROwF&D{KL*RF&&zPRu9$FIiMvj?3JE2oO;ib18#o_6FuF z-MHz(E=XcF` z?f9Fk?5<|}Mo~p-)Pjp=F@$(isUBrg?>C@KW<}3a&7V}`LAEb2^xCsA{QiPySuEjo_ zONxo$N7(V7>;ZRmES}p5-`86-GqFjT4TKkmfkYBofhC;n&iD3(%+%3-mXAWmBt*M( zq6`={!gpJTgGj?FtPO)yP6(BJi_uvfw$YMTl)A?^cV|uM>6u~Q^9BKdTTO&c*re6{BO^pt*ZHE2}vZ&eAL&6gRhY- zckI_@5{F3$J`QhOr5(Cl$Fmmj=nVFQWUXr9u-?HM#qJ*(W9(@XKDJ4N?&{v zlfQve)dHtkBSFjB7HDpX+#?}_5-dISRmFLB2lj{aZSjcX;TTzo#3XqMWWSNCRcXn` z`cvYXtr#o@lk;pW5q2&pMM)#5Z20oszw*^$M%3^Mq9lv`#kViSGdJ(%?d7;x{n`m^ zdlcK9fr9#Be*aT^3K0;(;c?Cp@DP>lsX_%@5{ihe-_!!xXQ^V5VNCwd8oG>iVK^CN z=i~gLXBncxxk|~d4tGUQ^gr^n08`EjsYI-1L?|gWNe%y%Q=!m7mx=&FeM2FJ7KzWO z3v7lFyEnqHI07NW97n=lW#v595hg!DPF;^S@b`J%QLn+Ec;Vo=pQz;6etgz*AK*E` zSO$$}xQr1)xK#_u`}?7B{z^&jc=Z;o zwaaY`imFx}mn*?uAne&0B}+?lrY23YoNTXGX^|;$S%NQ<4-XIgz_9eJji z-NXPRd9*NIVL(%LC@F_loTlW2M~7oIluxPceVzeUtFcdmD^=9<-_4#Mq2b}yyKYu% zS^vGAn?i)k1>MGL74Q4$r%>~4V#eF5J6;Sa3WPy)_0**ynmuG0WqLhJe=$X3TtA;5 zo;-XOECb5KZ6B9W5z}fqIVYEnF<%SA=iOvg;CIJg&#!g@)ztesZi;}l&#)2eG{#$eAp>F>7(S?1d@0DD) z%@uop@&WI>>tEKovNngFz`vI}V;BAtGR(Qo9lOCzwW-R?gYZqu^S>NqD3p`p|f!QuMDB{eQI4@OmYi_ za$(7ZDj6R*QH`E!lCUnaoM*(<24xaGM{v4Amej(Ob!0dEmanjaC13V-tb~2K+$h?@LHF%TREN1#~h6ES|4>NnW)j4=LOW4)|)1f zk^iE=hQxXhPZExNRrZePNueoCmpN`p{EK!Q0@-@LEN;2+-q#QZ|2)gYo2?@;LsSyH zk%@ed{l9?31{)?YA|5%@D>VQh5GYq%f`FnyO-f9$QV3}b^b%=K@deX)K*|AF>=I{d zO@69)8Unow^gbbs0k|wM!W^T`R|OsuFd`%MJW}PxtiPM*c7*R8f7XR=H_H1dnq^z9 z&XgM_TNufE6%J3heOmS5UwDj;Li%4g1ivW^kx;Of{@pyC_x?>5g#MXS9DCO37UP@G zjwfJC@10M+oD`~;NzTelW%aA+y>>S#H734LKt(*tZ{TaNv+H|Pbo2yKjEVJ2)bgEl zYEZCKs4=Q(2W#m_fGqmizNr7`^D?bDThtm}rHVku!69_Ymiy$cuy(aCjQ(}{Q(KJ8 zy`c3R*!}V700y7yg|rAGN!0b}Y@O}}>ll%ROsmXcliLEIuJ>_~Kx}MXkO=^4xnInA zIe~H54fq95jvYvC0qm6jPk)$5j(eLtLaDOi!|l()WjM@CyIJVR9bmz{T4b7mCqRH3 z1xO1WlpyGnRb=xYkg6{nc;0HXM;~G4$;2aF{dfMBa;X7_B$D(k2?@5zY~=fqR(T|O z0BEmQ{x;P#*Xo2vZ_$tUOIcWiCC1g2Qs|#=nK$i*Tm}Bt5?J^DcZO=8<7Q&mnCl;0 z;cph{)o8Mdjm{hEIM{hF=f{{<{}sa$xO_NWhAA}QY$9VZQK3P>0;*ORYAfhkTwqfe zd&^tyu&%GNfFi#0_E?wBJWotZ9%u=YP_!$>nQv8HCB$qg_=Ub~m3seYEPHFbpIc4L zXl)PqU+2MAucfhx`VWb>vX9Mk)mOpExiCyA@jxO6cptv#xp_0luNMufJnR>@I|F&nzcJMVMHOG z)n$wC3%mJ=TrB5EKP~h4n54Bj`KL70I#p6D$UEIvWD$*XW5aMvMt<~!*i0D-B?f#| zKpH&(ZjO@KuRW61yeQM0AWK$Aqfc$MSsfbhpxjfO8?nKIE9)Vhb%x+OpuaCB>6+KP7u25FmMZ&SK`peA}x6z zj3xeXkVnRANOYUVLuRwW{skYpia0Eojy`&soiK7a$z8*AKuargt;`dS%=z9ANSj7a z6mw&m=&wNv1y!c4eJ%yaqZ*%lQF?;nvK@nk_WL_>6Q;YVJ6gZ<_Y2i{R1srq0K8j-U-jhe^%9=C9f7uF30pzx_#+5;#92scwvcONo=?Jo}T-2w00hn zH}kHa(Gq$ReA`9V*}1-NZ3J%2clmcM`{JzaeCagp4+H87d~v+mdD&?^>m`2OepitX zerZ^$KMl4}w4uT|of_Z1n{U2xL4SiOzV<3`L{(%Hki&tJ11fKI#7Mf3!)@D_&t!&U z>RXzhP}2a=43oJyREL?^oaASWLx#%qz+OV#LNa=8CZ?jdcTA6dofAq-i{(sQE(H>+ zNiJEEWPGNaOcvzHwd|=2!|E&=Yoc=W-?sMm4uy$t)w=JzbX(Z zr1BP#N4U~V3<*kBZtJRl9t8Da4%b+Y1cv|W$Ahdj>s$;5E(&Z7gmDVX!;78Ux(i7X zJ2)KfJ-l?pH)&f3NBb5xUo$!!ZMp$4^1C|&V|deI9+;P`;yEV9qkg%uQMw-99z)~^ zvoO(PfKUr_nI*g;YH9bMj5$A)s;?khG&Gl)*9BZr|{3 zSHNSkHuHaq^$*ebE`*-LWiRk^rU0jvfo^*jv}xBP#DG%H@8TI(rpvqvT@y~91=Gv6 z3xckXw;!t>9gn62Q4fdYy6jP=b=kL)b_vVBl$11>S5!?FD-YoaHtGN3gWwlRMG@#P z=k|Zf;JGHRsMV}DY|}RJUI_W`$0t^Ah;~qo0;BFc`W%SHqe?4HZLK5CHLtwAzdrzI zNOPpe`TEf)x=~V$%~A9^0Iq>}WY#`k`r(4*P&PKo=J;4z0|LPgdH<*Ov1EZRv7Jxm z$dbW)+vA23RM{@$DI}bb3tTKR&yQ41<-C^ga;a7}eaK`j0jL)ge+eydp0;vV1aZSM zW=I*6&gBqurqS^hN1mVG5pq?xr3hXbyF))o5V$GTsErm#C6#la#!5`}Y7*oRug@ac zQ~!2QKQ|#h4)OXN@n)EoC182n9U6oZE?tDh{Ur+{1{jQIppKf%9Y^n)MtrV_wDLLk z%WvC=MP1$9;0yM?y*&7x;qVDtcL=M5L84r-@`Asp-?g{k3KFg@`BZSa+25KIQ7f0K zxJFn@h37$9K-J20Y^vCPm?qGc4A&?_d$&GA|%BugrkGyTk$)-Jt93z(M}OgU&A(z9KMYvbCX_C8yX)1-#nT#RpqXWd*@~ z^65bJR+$++0N5X?D4F-JbKO(oQzdl;WUlSw%;|8Nih17juJ`|q8^YJ8=1G-Jc!Tfr zAe=DrKK_;J^N)b~#rwtBRA&n6PzwZDObI;4oO`CmY~46i)E&14;-@#?1+PJ!EKy}a1G6DzoBO6dmA5;2#m{+yS~(? z0?`UES91noorD>K03L)zZ7_*D94b!~>!|&yySHz>U)TB!-D(}-OiT$@x~TQY6bWw~ zta(kScnX3Ma z0Myv2=z%Vvt*Q#(=jZo)Y|Du`W=C#LP@ut?I1rer!K`z4jn;lnJc(3fHE#WUN}{UV z%~`iRUfGG2Wn}cnU66+VLAE;mrAu)pMG)2ff&XL3ts0bk0lBgg_}sWlQvgYK90UK8 zRCPeFidr0KjUtl}cGv{KEs)umozS@eAmQ)W@cDrIX#{E*6}{WweG{@8_fL z@{31sp;Np|ABOW!_k98%XAiIsBaAvccRKDEvvZPa6c*u7; zl{^Rl25*gcQpKdZ{+$(gmvZ^zAGO=G%*PHZ2{hPlAU2K^%a3%0BGa72q_i5-NlMmC zev(OZtj+U3(NSo#)#tjzijegbC?(e?a%^gn6!c$VHS~a#XACpiA_bP~li$R-U*Ln+ z9@S>A2etR3Z}QXXUUEJd1frbLVltK&BQC{!$G zI#a|r46WULIsA6y5ZH7UnG`40jSHu%r~Tln6seDcXUx2`-@U-0iq)FLvMAF|>d~h2 z0ZgGst2nQ}Puzlt#_#g$3kc!zPAUU_TSg?^rP11ue#q_4wmQeo4?i8m3?^;vrxVxA zRobdwggv=J>+YcmzfyG84$9e{6M`3cI%K_ zD@Vv#KC;2({PKLiczI}+4}X1b#?y-{lLOzqdNzhuYuS)zowzOsrk2ArZNf>FTUwSE zGO5q(-&`(W#%<#qmn~5whazFfFPw7tu0z56+HlQ*6w+0CGFjrX_;X+cdustOL_m=W zNkW*%c%a7Y^5PE1kHm80Keh6(rVu|=nY)q;5NPhCjsu=<0^&rK6 zn_ye{9JPd6l8^QS7ne@5Vv4#gEJR@-ql^(gT*;CCLV`Nz=U-S~as+u^m3}J69umwF zcZ!J#xS5E%KRmJk14N=MT5ZqtTF~1TS%-RmFf>;Ok)3V-JW?z|%wAL%YhxY*W~+E; z2Sw5PrHPEz7PYz9f98BY+(G!l(TO|__R0tUTlsM`^xa>khitJsYrT!j`(9eNbDN_L z;t>6GYmx4?`}1?;w}&s`n&`*sj@gkU+r7X%^SHefQxk_VQ$!*q9s{ zeJ`lHis_pFl$KGfzs%oZ!&$8Dk&UJCRPoJ#FC+_h3>jAsSb)<6ElWz>pX5+hfIjN_ zo_4veKYZLd^TKwR0QykZ0Z;ajOm94e!E^sKtn*ucEL4Ie-LCPPZ&!{<+n;CulxE)S zB_e>-o zM*ec}b$Ylo@#aoY^mGNR6I&0pVbT{{s8sy+%~|j|@uhn_g%^fjRCD zdr(9O$!PyT{8@_ATNIJurwo+2m>_`VJ9Bg78K@M|9&DoiL$*EK`N?yD2>s`uzzb!P zzu+p$dQ~*g%+J%+rY$od-u*?s3i&$KYYT*ny~|r5X}VhMAVbW>$Ja4?L-jY%_ban@ z>VTgr0f%QTSyIU^e6499vVqa}ovDUgx%ohI0^-fz`ezfXz+bMmfQC@Dx&rOYa4w6v z5+Rk9lnw+?3qTfW+6h_0KmeQT1+{xIU#gl@*#TEVffnwq&hnbth0g9==-hfu*ZdT8 z;ZfbJh%XVJrTe(EoiDrvI=2IzyRp|UZ#<#!4ZuDgz@%rX1XELyVXyD}_OZ{uRfha* zf4bnB@#DdcAs$b=AR8jVmip_=EOpWNwVIJHOhWHNaK;9O&uizs%d|eFykcJmj%Y|s zou5CjE7|L;g+N98hIOUUhB4jJa97mvEQ99q_33>1RR0eH=0TTYai`lk0#@6_ySDY= zRNH1Q1ZYVKQ;OJka_uVpFgOt1{$H~4lcJ)E^YH@Jzm}sUA^yAMiA8H2 zQ*~yzvt(JRMZ&!5e<*eSyZ3jl2--BicxgE8&P zB`JzYBlzUYxWsAgVHjQmiF-l@evzr_wUe5+5@$rWsS%SB`Tm-p`!c?UeQvoKknl3S zHXHwSm+Q0vuDPmW?$YH-QP-HorJ@4wy)te1{CGO=(uty4bvvo7oh%{ld|eS3KFO1_ z&mz9Q(_D3$+p&E*ZtWZlM##hPlOa(mR!sT(EykUm*vs`f;=J<-55-Cz{mND2XADI) zk4J)`B1G5g>3y}GO8e6?7G<=;C%+~}PdDqRh{xc3NzAX@Z{<`tNoZ?VAD}d|A@V5g zWOA(lOy7(M^S{0__6R>d*HKxjaHM!YZxPSn+vmn|J_Pj!{YDZYnqpwjf8J^3=n+2P zhVSfGN?GZPc;1|Z{(4Kbg@@~3{gxz?7qAjS>+uZ`E;j8F+=lwZ{ZL zsFO2vd%1CLxhlD(?3HM{R{xSyA@g^CqO8KLRJc5zeZ~&}jl=3jjMF+iH_zsLzc-|e zcQLNGUmIG@8q{Ko0@EznlO*M7B+J#a#o4drvRGnXe?7iI$Qc0(;D-VME2xN2@MDbh ziA54W(*Ux9c~_ms-?z5+=5&hwU(l%qv%YisgE~Ww;z@fc37D3;P?k4De zEQ%u^5L{oG2BfZ)vpzRiW4l^-^wll$WSk|1$xDxop25G2l^T*OQUay61Cwl z(9+Wr{y@E@_uCKIAg+@1{){T~a=u)LDxvYlwHn9G(+izo+DQF>)WTxM%GWeC9rpW* z4Xe6<`a)m!o>08xEX}A-vy_5Ylci`U@zmhDHyT~(0Z;J8l&lTz2rE1BmfKpZ%zqR$ zl~bW;Dn&YJJ}ypy_wbSX93XliQG5%~)Un>pP_8 z@c{k7OVg1}OOITh2jsr@c|1RoZ3vLVb8Sm>)3T$t1AW!fvJ2BnOjK+7se@xO4qxsz z2I{6n3MX6KN4N*kkE#}Ke(vtlJ0H#92`(=?V`NK`6pvkl7xt9k(Btp^3%u{wj+(PC zbn*qa<*OL2UVa22LW^t>wNgKrXVhj~YtmDS24wr(V@GJ)ZF^F#1U+%5)HC)VaZl5~ zlJx{}bJP5g{84lI;U_QA)?m-{HS!0wL1kNYx>0mK5YFYtDZIOPv>yOuWXma_N5|%d z$d9AB;0xx@2RqC~seXiUdr^y9d)V0*+80*S)LCEDE-o;Gv#W5{!pz}Tq{KaiL%62Q zGUva+cx&Z?h9c=X@~gSpJEyxFGJTbF1ex4h%Q4-yFAs5dIji=JF@w#b_~&(7%mQCVW}^PSOJ@_`JBRDL zPuQvoN3s}*)<;*pm}VCz-#8A_UG?^NA=x+MJdS;OElvYg$4#Z~7)oh@%(xY`{@yE$ zWjp`%;L$|-ef#v4{+w^f6|m|jGgo3A9o`Q{e{TpT{{`l?k$`&i)bi>>*Mz4}6=h-c zd!97|_l}s6ek#`z&F)m^%z9~=p#e)SimQ{lstJ#Xu$kFen8+tgZ?Cb6rmecE&hng4 zGRTLG?{`$CirY++slqB1t3Dt*@^V09tlOI2fql|EoLM{l2kSu+$R=w9gL#u(R&A{1 zj$8e|PT9EH;wk~^DG{N|kT3f^8Oad^_X6W7LKG~Ec72sdmlt_YO6T7^^Ei)aGq`uQ zPT9F&8MJiSBE!2FSXX9PvTpZJt+nN((vdXH9J6Sz10$r~eH~D|b=0FHJ@=zmv{>U& z)-**`+|3bWWJHs{D$QbuP|S#rW|RrPmaOf6`&_)S?_IKaxUgRdsF@0fu@0jhTpvZ# z2BSDS;e3kcv&8WOcB!pv^kj7{w%WFp9vp8+aA=wI%r6>#`=qT8Hj-Uy;!or+)_d4n z{p0q_Zj{~02pwRv3jF8LjCxdg30a958CPkj1F_%@Sk)vUu|!F;R!sCq_#qEaR_zML zkhac;aam{|l~2bZ2aF17gWsdp?B;Ux?jhWTCHJ1*QGZV!;g2}}F^ zAhb5Zsv$w*+ZB)}ZwMmJ*@W@!D$)Fq!}Qx%$gw-bZImTZrjl4q+egr_WJ67(WXVaj z4$Q{K(Xew0Dfeni!6Orn2k5^;mZ0$V;ppUn|0s9`6alB5vXjyDh*uPjQt&=g_F0=5 zJbQkgfCMF3`%C|vx-1FVI5Q)C*{CXS2yu~@mdZhq*x5WBB&BL)-T33bE<0xY=xg-Y z-iew1FXQLwm~WlE@n6M>@19!3aRgZ23o>jhrh(4KD{6M4*Rb~~7lTqZi5*_Io6*Ad z8YXFk_Dj_$R6^D+6^YI2sxdfLj9DD*TU!&u+K1L{1{Lst7tCy*E4; ztx-|XyLX>X#l7!2fr_LmkI&|jAJtrBSRCKuW1ypJ${xq`|9@TpW1}=}he8>NnL%RT zCkN7aeM^p$NVedyqPZMAEr-{?M~5;`9t+JTCnnT3vkd#(kck)nbtn&D;{VW?)X`Db zqD*hKHdwJ*C@1U8=Brb#YGJQZS>XoMw=O^@R^nMRI=r%fxNX$om>AcU2{=};8Sv$M z-BB}ELYBR*57pY5w+0Ha5%PWI&Pce=HmKDwnio7{0mljQZB!tPvi%DX=^qQ({xd0O7?;9gKKL^ zj|;$0Z-;{3ai&MiDb%#J3HQ6$+~U+#Cw5i6r4q*Dq%0g{vMLrUU`E=YK5#L_RZ@7j zshJkA-A;-6G$pI=^u{Np0l>0g+mj`EiEh1&Z~*qAaB}*K+x1G)%|9L(U zyW;&=!pLbp+7#_9&)7kHgjpI7&jOFt68_W?|5n6T)n)!q!J3eToDF0)K|YR@>sFc` zFRIy2y+4$nq|O(g9BZIV8pmB$3xZlk_59)Ul7F7$af`)6#ftKNbv++oC2k~wjO$wZrK!FgtzCADOtFo$ji0M!5UqY6XDx^ z&mZ84p}9t$lQf`|OAmEeZ4fGC)Tg8JH|!x-(G3on2(B*yCk5ZhyHErU zcBMvcn_HFUlUlq+>Ed?#uK*=>MZkE;#+1N&b}U}CNcfkNQgAUYmc5${rCYLnid=lr zQ?8Qsh)wWOdTeH?Y{t*cC4aiR))#Ha_sz87sriW18R>5!oe_vH8SICPd{2|>{ea0C zhKU&UjeBbCM?PEuuT(@&EJQcY+5iO+LHaUWaSMY4t<#A+h;j8-d(HXhL?Y_xCq3?C z|IyWI(fedIZ5CiSYgZWsMX*zrPD0Z4I0^)A71SPyg1K)n29X~0Nvnk=aPG1!)bs&367-hBe^?C zVO~x%)>E{__Hd11t1~x{@H1h$qTw2SPCbc#y#+)YF6qVVK)nw6sn|XZP>7C@w$K+! zD&P2lShZh%9KPh+^!{K8Az|MlE>*iAYqfU!6Oh*=xsA(tF@%JO&a{lM_IuZh6luuBu^g}UgKRf3@NK>Sy&ODzY*o52b@B<&fr@C zYO_9Gf7~|sO1bho0U)yEVsHM6N!z_y51&B)M!RKO=aYFfYHH`ICIB=nV{`TX&Z7J& zNFEunchluBi^E^DjmbNXATOqclzvtg$&pwphcsboHAv1LCwoOzv%_04lHX#~!-~b2 z2Q!JtFcHADr{l#}KKMGponJ6ww==3|=c%_>*bM$WP6J-}SBH@)M+2UL}^4PeFKhx*}8JX_^qaMMUC8DE@kn)EZaP z2)$Il*?!oLnA$mQ0+#ySg@vVI#=|i|nxD;lSoQkCOUFm9)mFD-&D=DA^8;i^{)9Rf zKHk)sgXmRF++farB*kfbH(nRy`<&Zd|L^qPw^wEk1PJy<@^aJzP zl>vHQ!G*z0Q_VFNq?aS-U*g~H?&FMYZKdUT^T!^g^0${SHzVhn=vGbd+$l^<|7I4S zLQVx}Vncs~jgG0eG~AjYUM=4A@8eHuF5Qw`}7Lz02kzl{n5OB-QzwLwPS2Z+1{ z&-X!Flo{&9P^ve72qbJ&fSa1pLA>9^tNTv1ry*p9v2TjwAlxt~wQ<}1l9H19FN59# zZ$XKWJTpz)G_E2D&DMNWJboj6NZ?^_muzyd*us;LPbNNOwkur&HYcb z6WBQ7lcZ2OC3HW*_u0Ac=#f@&y2=AI9Bcxmq~443Q%vaBO9=Tl6g0n=3loow>^B=W zNBj{P*te;-^;srenC#O`uwXTBdjyYw6-hWtWfvZpz4^Et0oMQh>qHu_mUl?Bf%A)t zj*f@pcBaG4{30%>O}S$uoIikmK28;Q8{<-!&GA(m>&28CmM}1B>KQGd7l)dXp|B;% z4~gfbWunft+oCS&m?Ge}kZ{ha)|7OKn8k?=8kBz%MD0LlS1Z0)cwRwpGat{s_x-hL z!$+-aZaZq5q&7^&Cc}aI^%FNyZxo2ur zZ3@{dpv+}luysCkVHY{ZaeT#r5J(t|kV4br*JEg0@Y<0B<4Xu$JQ5n`c7_=4 zhFduh>L;1L@dBcLYm*~Qp#44SCChfc<%A&*N87KzX^gLMfo}_U@_PK2YxxZaigouipx467Wv3Sy2azT>V zj6HgLrW!Nj5um-+1g`0!K#tu?J>Ir9@ZH_@c1p75<5^gF@zDKD zl%PRT#$0lWor?J13@54?uqMrSThQQNH`+=i-VPrtg*7izQ&5v8!k*8wRi)`y1_lPx zirCN;iLxgLU3K3`i%oIL06D$)7aQpGW4eAuRUIYKA=u9i+0!s#s&7P%?e5IV- zUWTZ@r*KV+shQ7Ajp@?n)phnW7-u)*-uafqCnbGO(hx>bmiHA5;@AVXx(@und0rg7 zUTODeYb{E?5m9KY%g>T?&Hn~xh;iYFmlu0{9PERg_ovOwxlrnk?K?3cU-XAVF`tg^7h1U zuKvb2u~OTRO!}7zQk}6w2tw7QkYo{{>8I$zda?&N&Y`%y<>U*0c$depwJeeJcimTO|ok2XOX@?EN*L=GKK&bP$gtXUq_gqJX* z&x%#OSz-|=WNd7W&j=_jqxVk;sHoJI?zP5QcbCEi1F1}ai0SOxFreyLJ0WghWI=4( z)jDKOo(9u?{y4$w&Pu+d1tD*C@<%lo#3YfkC2+D0uwXRF<lw+WWievj zrLL!#eCn>>6O`4`8_&dJw_b2i%6c>}CSd=AT=4V)ize`bf~)W8r1!?5*qOVzL=hcC zg`cvu35A93Sd+3Z3c*!J4QbbJ%<}@(&tZ#&+5U(Q!t9e9fvYSR)G-@}-EH|z*erCZ z3t?$C)r=q9AMy;8<``#0pPKx1^t3ju^^@mLu2 z=JS_$k`NK6PC`_cN{=UBkY1O^jqp6%p}b05uVtN2^$eKkDC01gyy2q@q-rG_bHsz( zSdmnODHumpHAaY}q$(BF&zm`4l(RbmrNxB88W}R zySRLpag&~sgZCi)w|<_O_rX9;kzM_+ySXa-@`~6TZ(VsWeDmkV^J+Mq<=5Sn=iPEc zmF?=q+r**rChu^q>cMx;03DMRVjjo9nthb2*JLFjjh}yk*tYppAbOm1c6qVJl8NNaYh*JnWa+3^w_mH%jpEO3~ZKroH zPQw;L#o(?DW7W(zVlC$pd_2x~Da~l?KaXLfZ{d&#_4sm)lb8@S54`&NzAr187S;~U zbT>qQ1v*nYNIfUyNS(j=4xBKW3hDzhscx=T_k`yh)`tJ?4jJjYQ{6LV!+sy26qn)@ zOVHm!BiTYWA|@LBD-g$AC>g=E#E>(<(HXrT+|>&oQ%^S!-ke&!QnA+lb(uG}F-yKf z`bEUv?BrY{7>$Wuj!*BMJFz`S{NW=@+Ad>~(`vS5=6^oL-NHJU2d3@l2-ovujYnY^B-AI-giN91$REt>^Pa4U+M< z7LHh5K?pl;S^EMImfJ$x8KVq2S2>Zq*-3C?ojR_ruFDAgkfneh!KC=pmAjgPovU3O zn}V&UYQ*;K4I`2@40AdB46@o$`r2T3pld8`x6^Xh=E>dyN`}hpxlM|Rk0CZEeAS9& zVI2{_y*+_^&acJ*myRWHDsM>byzGG-NSp`f7)MwxZ8A5MO?<7cThI)a$gx8)%`!sY zI;lRt+aT~_w|KK$eFSS^_x@dU{`f0$H*>QN=&N7JeK%SJgwOh2W>?}SeUO#3imjuf zrqr~)e6iai6J!1YlY}R;5U}aEui$z58F{zzzCd-;X|$R1w>0>q=&Ro^xmGZAc+(3x z4?m;MF+{ysDZ2GGi%P%HRV-C43j*7jo52gwnLL$f9@fNM1L-+XaY4DoA$eRthp&r^ zu-~%1oL{3@Qm4G935I>=9hDoCUzxIQq5s<*?$~?o$3@uCbaIbIA02qDxT&)!6>SM> zTF;ugYk~A-43ICXn<0&hPySv$qZ`_3yX^6)$t*VTbL;9*)LHf6HHX&Y3azCvwuvMb z!a!xEoJl$HZdiTF=60y-L6pJR%Mc~4p(NpzNBVm_HJh09EyB^Ei7f)^3lr5ogK#fg z1Hf20mSJ&qDnUc%7WBQ`bklT-U0Xr>k1M-q7F5w!HNwXXgt^O{_{hj;_1(;Yi4){3d474*lZ zCqRFGds&|91?q2Ykd|2C`HJckfBk+&q+09VR)s433Z^8;tL;Vcm`gg=MXcyIp|HYH zC@&PW3{3u2QIePYHewR3tpORu@-xZ5xRQ@-G6L^!{`CUmJ2Cj4Z7J;wGx#iJd~>l3 zmmUu{!z;-aQ1Mry4^$su$ccKi*n+7kL@ZB;kz7|pV)Y;E%eN>EhEZpM(ROZN-qg;Yl)+n%T1X@s^*5;1UNIv{mXPOBg=mFD zbRuQK{-*rxB*0!HHPP_>lg+n`w6M-kp3gOg1-$DH5_O}%tm~Cd_s#n~#>R@uWcgMKCTh12^~dovQ2`#DvArHDZi1=}#|)|5y&bb}}eI z75p^kU(D3Y_kU(33HbAk?z;pAT&!7FyZ_s>##(-IavZ>(YzU-ai6syn41lhO*?W_j zKEMn}GCI0)E-8Egte&ZzpMYi6@9}w9m%Got8^t^KenZv)vzy9DPt~!o``$|>ndh%p z-r2l7c-rDtv`>sJkZc1CZ(;hmSUmJpnHvuiEA$b-gV~)`(Xf(*o%5a6di*JBwh>-@ zHZ#iSL_`*?4?F#R_$%CS;aPzJ7pykIMqs_ItlH*_{TY%rlS?UiHeyIaxwH#$qL45n zKW>ab5sA#A8gP zO;3HNt=_#sz#B3Zo2R@3!RSfSDixoKT>|k7U7qLlDT0i3Rd!B2XE@YYr^!KW6*Bl$ zC@r~UU?j-^$WHCK?es`zEW-ys$w?_a3(weF&xiROz97oKOd-FLO?l%*NU_^5Dku%k z<%o>o)f@xEC1+PTYjDlP96FCUcCzoe8-I+}P!PiW`jO|G#KDBcRLNSN>v_qri8<+M zK_W=}hgD3ZA@_*Yd6XgBwceJXm2UfAD+UuE(*ktR%gLERVp?9DX|S7wc@qNP`NglG z9x*0SoS)g#cuAt05_+40yDI9zy1^S(@J^9C-SBT69AcLlC{vp_a2h-2aA$0LOAg&Z z!~j7Ej_>V!gnC*4Walfpcl*P~W5V6*_4}vY{c)#Y8nEHTt+rPebaQW1v}51#iO}V?Pa@W=H$_xV~+j-!1gpXR1P`*N-a} z|HqpUJ)|X@zyENF<8dx`eT%}f+}mD}fN5gfpI@@s>p667X%hpPSowhpu|X}~@5Y|l zWB13)mi4&c9Px+{zCSx8Uv^-69dDJM9XWm=N*$EpMAlYeH>N3>6wD;>b+BTe1$2^)JD ztoLUIr%hROQ|TxbhNSkTzTncY4l*TT(= z2B~=+%<@OOfBV=7OaU*OC)G0-7{|QmTTGj+yXoGyjtLr@1pYbjW*kQCiVO=444&!> z=r4P8DEI#HQp*JaMTSIzSGpb z3Aui2%B@E`+EI0dTt3WgrDo+ibg@=V8odReyriGaVS|W8pR^bT;SB($2GZs6Hf#$Z z-eq2!$U-9a_T-q9FFx4vqUP!9mdQC;ht!6>ALmTG^JXg5YjlmEIquv;zjFJHFpLeQ znZ$ru!qZF_Zp<`>J-)3Do8r#x6}}uj3yw$1jhB;^Hb8X2vqgS8pakNDJQD(_*oLa9 zCaPEo(tz*HYx}G zKt!0XQnQYurqGO4Z(@@OP_mKJ2d_D(5;z}GQg&FGBGu5zcqnj&c32=WL z82fe!qW4GPDtQ2Pp4&T7ut{-<+#9rgcclKAG|e$ZQ+9U98fnQ&LM~hm5tS$$OvdCu zE$tQ@NQES8A_ZBoG&7yw8$NrbJ)^Ne{lQ`|gKWpnZU`7+i=qUd1$gEk0`BV|KvjEj z0lJQ^<*uz9(%iw(1uAsJTor3iQsUquXh@=oYARnSQ!Xy-79{(jd>2lPV z#Yxn9x3PGE$K|$Y`}2h$tiU{M>tv3g4~}XsAslqSy@h*HzXrUeGbFg^${${r%p!aF zHpLD@colfd%X^;$ls`L4a%oKH&!d#E1AoyePM0+daG(0jzEmU@62g|_eK2Z~MVc8V z=ku8*Rd!)c+|T9rS3@Eg)2+cBAKt~x{_Wtl~!*8ePYJYTG$LN;ZVRvOYKsDKk+wMllvCCPAHVR*xLJSGAxK#-wfOuV!R!pWbL=Cw3is2CPnWLtrx+b29HB`KtOHh}MnXBCh($s%33D0~j?Hy4 z@lXEzv{5TDrJcy9hy3(s*|3}Y=XicQ;_D+Sd;@$;bacrXS^5ct3;U)?FhR58q(ZtE zwpF{K?vnwB%Yz|%S~zc*^U=716}xE>h)c*&E;r6O)jq1ssvJEM7u=Fg>d;TSLVazQko6hp7p}4?8x{7q@C7wdKcxg{& zoM|5P8D&a?P#N}jeOQ|qb(08P>;X$&2um*8?1akoJ^nc@tg~< z(Q2A+s@2XSWP5Q{8Nc-qgPGSbcvCt^hvINt3|h2%aSu5s)`hmp6jZMr#Ro^;qjL_4 zV`DSps85CBP}{S9saCH&a)Th?fhSqv-M5rR7y`(WFy~0_PlYx8HM@pi>M+DeYD!YR zovmM`vJ#uILY(kJRwMAg2GdeWHs+5iL_Uo=Lf=T{+CEGrE7J7F!GH(qxpFWdZ*%Y0 z>tn`n>Haih!kWCZ2_1T?j%MH6Ep*uN*i*E{y&0$eG+*&8e2t!`YsF#BR_33`r}aWx z5Ppl-q}#M*;FPmVEU7NvD#%Z1Y?e+&f{_=6W+o_yd6^0uFvN( zKzf%il+)r=ja4nQP;jI55`)O5&UVO@SLRn0#@s@=k`lYc%oW~)+1`G?!GNE>uy|hK zUqX!&?Js1IkPZS7s@) zpk)qH`5!hLd3>(EGLGq$P7A_D1K)2?%Rli)-heKVYp6w?Sc$~>d>($2rSMI5wZ%Ug zVRc_m*pS2N2G7~4mPn(ow|>-TBBdPw0++Tw12ez<`3A-DwRy~6Orud8y}uS_G6$#@ zvp03Fzn`ssSAO^P67M;rSEq(=vGB>|lL_;LN#q2d_Lb=V9TZRJSPNQBb%&=w!|9rk zPl=8)z5W7q#vmgg20`Xsj5cRGKXrw%A1e^7Ms*}t=>a)k#i_Ijd-y#Dc!1+c0hKPt z>6tHFm@Zhaa`p1Rt2XM51UYTir76=#AeXu_CJhxZb*<5mbsJs72&NGiET0edQGsTo zq}G7QRPexF8l%bZmM*@|$GZqk zDE30nkC-DRF=(6;YYU|x%GoR7d@z;!$iHNkWgxV_d_kMedZX@lwoY<-Reajv7khBX zFMv~jaZGnh(d+ciHGlgNK0_=ls==g(6Uy$3`M$Rg0ZZT=@d+(YRXGSFQ`2Hs52y3C zc&~I)nM^3fRId)(NNPss~IxJv>u(l1nT8)XD8l}Fer{MOMmwO@JM z_7%~CU($bR`Ys6v_S)f4BTpzo)A`J>dB}%7??FSw6A4W{yJRo^<|Kq_5NxR4Y^Qgx zxjjbqBselmfn5yh`UDsIs{-C|ndS7YNNXqGcgHgyy~(N9;-;8|s;Hr$!IFe0z4*~@ zq&jNJBe$ehVp0TUKDT~i1G@qIm~?HqPp{MNgiUyn;5&}0%PBA^L7 z&$#?XmIlx9bB$MGb3RL%+w1;>K%yDXw(aPU{>$kEnNQFK!t&kR^z^Ss0x)T8*t zDO$Z+{Tl1?45aaUa(K&ytd8%lYM65ZeWb}8sCmR9?$bqnYN+*nkCzpN_30vZKyj)BV_5FXyzy{oMyVg)rb!c&a$XEB zlZxH8r-(t8D-ZE{hg%F>GN1KQ8zk)g{Dod8EeAu2+3aLAGDaIJB{;H`NChGyqKD>V zAmiKGJjH-YPPb-t_4y9a|Jdqsq8QIPsfKDU5f>PAS%TsyD9HUzVTdv3`5F2GY@94n z_GDO1C*f;e!%y^V(rn-_E$I>dpmNA?wk#;bvZ6tneZn~+Fq~*k>S#9mwGG8ORwef% zc=8Xq4p}I)X?wq_YVcb06);5N?lebnW4>r&|-RKBU0oo z+eV9W{vrlLa>>!aL9yRQ#$oe_UNM)Ui0}LSH9_GBv7DJG%YyaD&G-KeDgW8nOV?(1BS_#ioG# zywOxH(g1bWp1V4#9O{5&P?3Bfx zI;*I2F<|bdujpb%3ylAQEq5$4pwb@GgV56uP0=vyWuPoZGW^yN<5ZDyBPY z`FWNCN$z!b+wV;QZz&V!8NO`|u^uAmk~U1;I$4(yMqvN80Gnu#mEr6AT|8>Z*p9~c!l_``bUqy`6b#O? zUV5YID~6i+)K09y674okZs8Z9x$LVmj`dDI>K3WJVla!sIBvC912o)N1 zJnvhQi6`^A^u8IPxsvd5>|VswQ%35 zh*soVMx68vRP)e~OnT}yTBLc=&r|x1lh+@Et`x6q672o-wE^~Y=}k1HO${{c3Bz0~ zs#M}UKM{_zo+ihYVz(G}8F*$jYm!FI_Ce54oH9fvawl=t%24!DlQ|Tq%ij&cBzV{( zy~K%X2c1A{4lqUs z181bgn4N=E0LA#luRrXRsb!!nP1&G1{SW}>UJDjaD?9bu~R=sRw8 zqDwr8nGAEq!R>RCA`%jgS)TMM59U5?9fDlc!%^gV-~h=&4acX?(&IV~PrPBH7TbKBaHr0Z&=x~zeE)#Y~zdiiPwDO|jnW5#e7psQqY zvEtSAiFmk`^_V3*Ug!$?@5}6^(AlfpFu>&AHMu8f-h0p(N2@Y)<|Wow5a3G`gh_U0 zbsj{EMS?y|7hB}@32nsqwY9=yk()+12IJ<0;r6R&C?=65{fGXHBt)zO%q4%Mj{npf zbGR$g8SBHN5FK|NBb=oc15|Uy_qcu5qJ1gdLuQ1?D3*aZ*;rBvanMA6jOO`p{}^!! zyOcQ@_|fQ&RP`vN8uvEmFbeL=PYK?{J!17^j&j{(4TIzDAr7iNHv*okYP)uPEf&$0~Y|a%YE|49{vkAk{ zM9v2N_+%<7`PT2F(Dg~5524F_0d4-*TlB8bU{BbG<8M@08_Oxw5pWnX2#;M!mKytK zRqd5yyc8~Ew?A(fhtv7#QI?ewLbg>%4GKMG!f+O>=(?y}vhvc9tjHSuhkXskA5eb$ z@;zb%b(lrD9(I`-kmoWKLCUg?A7Sr<-wQPDcp9d*A-G#6}>-H0~7v39xU5Z<}8j~}tGk7!U4v>B*|e#xim!GTl@Bbz3% zbt5CDQ`%B`QEOBH7;n{Ox~AYoAo$U=I}{+N^sV{{6AN1OA$ zJrMyk%uC*2<0;)=+`MSvz>zcoQSpM)fY*!WRhRc13uWnZ4rK&nsBh?iNKnxtRI}90 zl3^I;(8(vs_eV>D#3Ab+_TlwG+&mD*>N@5QeSSF8l5RP?y|+OJ`Dt!jJZ=q${NiVE ziK>aNhRz@`@v6vT*AI1;GkQUp9V9#%vh+Im_+Sos7C6HyO|)#ykVupkCS!IAcV>p3 z!5!k@ViTUB5>JaP0f~&Z;i2#|i_=t(PF8S6ROrS9_d-mTBOT62(_NlHoT)Xws78}W z3%Fj?TmfGP&9fnHE8DXAD2yl7;}TI$eMJ-{k%#_4IL%`ue=7jZ4@REtB||{GglH@@ z3hti@oz;ix_jT6v{*fJH>~Ou}yR%uHr7XCTfh9z56Yp%fDEoNV9!Sd$OYCK(a*+}N zCG*V{U?NkRZwk-Xp!|WahqJIx)2|XeT@Vw_bV8ySafyAyn-d|x)X*8zelnLv2n4@$M8tFy|3$Fe}u2QZGb2>3TSm`AJfdDKBMi*V9 zRw;l?#1mONSwcjQPZE6n4XZQYL+Ibaw}`L=R(5WLMEh~R!E3?V45yd!Q5enkI5S}^gZM9}muFS^Ns@3dnW`+#t zeofD!D&Q59iTI2Nl@W;Jc#L-j;-BW5vtKA}vN*l9;!G)wX70<`hKl58zAJC?Hc#&N3!=T!p?4;Q(?ZcGlPFeLQZb&}T?vK^U_7(U z>hq$y_za6im+(ss6TOX-%kbf?NjWdtP9pPJiUREu#P1vBjHA~o_X_LA4ee$KVkMj)B*{*;JdF-zWq;RtCUge$tC73uqruETqQW{n-SaHI$^3}+=V zp5~DUC#$_rc7t27X==cp;d7${&Kh#Lks^0E=eTMcl8LCkYb8h>{HG zcl{rEEe6|DRS*lROSvzuXWpTfVqgK)arvHkc@D2-ET$&36!1HsZk5vLL#x+N8MRjX znv}KTKS@A5h4VWJAz(2i1tfSPNUB6|tI_A+C~+XN0@F05J2YmNXp>JHMoEgP6tdgX zS;NZIxy9(9f&-6mJ6Xw%zRKDUEvIxnVvNA%V9xzv{C*mjh|TYpo`Ys6y4Ia+iYP4h z&BzGL`;AYp$2E*G+=(XS#K0Y*1P*4>xNY%D8}uhlO-a?{5$ zi|!iVh5fA`jm;=7{3ejq;caT&YWW5Lt27?iG+x#McRZ1DC-C}eHI8EbMj5%iv3_&;r8uvO$@pWZa zKF&#?ZT`s~WByE74^F1ZrvOTpKB;CV5A<-my#;UfJ@=Ize5NbDsGt8#WVzW*U1!jJ z4UavQ6*XWVu^6t`?;6oQ1Jdl7eFB{f1iZ|O`+dw?D3TL}{}K4PsGN#0toh0OPygou zXbJg}q{FB$=*DTE_M^!1Gw&3iUEmcAu2B!CvSl2zN)dL&GJGm4ZO2DXZ~Q}OEm}s6 zWfe)%;qr>f8rb|_#j7-WgOprlG3R{uSWhG^p*SECFu(yIl5#?w-+{}d+qX%5SRwt5 ze7sz>gPI`dAQH?W{1qB@U8{p|d=s{?_2haPPP;Mau88$&3I}_J$Pi`}nM&SKptN(#K>Pm+s^EZLf}AF+ z(jO%S%sC7~Wj%do(C%xgApzGBJD=A*%T^Em4BuSQ5T2bJwu0EsxzbaUd9j>^=;=YG z92WG<6yACot34z*Ny2bubU(UzQje)9Wj|CuN(YA=&ZLx=a~V5|yf}@lA$7nb!gr$M z;aoUO_=DPSK_Mfr4T)4AoC%Ew(qgAgP^`GQ!ln01)(~1Yfh2p7{IM;iUIGHfCJgHaj>s*>H1w4m+O%iP;J0AX5naT} z0-Cs1!Ci*pF&!+|7d(d)Hs$bGE3Hcf7^ASo1h+Ey8Foh&NBlWKvlJ^`(mnkB{i0oq zZEj`wah`4+09@}QGxm!m|DJrKP%AQ( zN#GCz0y9K469+yi8alpW?<}DhVQZa{ebdI&XCi5ThO*a{NjPC1jICoP;r=45n5hMu zcnLMxkmiiqQgU4O&6pm?kWfyA=VSMf59aJTbFJkixc*1joL7eCAtxt;%0{M$QrW+5k3RKNU0;HN#n1% z&ol~rJ;zT`ck80qfx@>N*2iC=f;Aa%Z+gme{;N)lQy%=y?M=!1ox`L7e692|a1R4H zN;olpb14C*wMy@UkS7PS^no@m!(+rmD!r0KG?vUklAF^%V;WO9eyoT@cR0n)7<7qj zpzg5T?!rmDcaa`_?A~L@$?mJGq1t4_g=m)T!tE0}7MJchYMMfpYk^!T4;yohpqGEr z+I6^!%KQibfsGndgxVH40vIujT=)ZjQsanAjIhrweCUxq{YOni#9fiZlUeEB4}C>j z9#=2m+XI2H(Ff_oady{ph5gIScfIbaA6EN9cH*Bk^bxPANY z_mUUDTSi5dotcTyS{~AUwb~n^t+QC5vF^( zv}m9Jy6G#H&S&C8#$!p`_W2M)O{t4n0$z=Q8T9wB&3N^Qi@(Lf9@-Mo7Hg zOUg5M%adtJl4)N7{MLV;O-T*`5UZAAe3qp&j_RQK?>iHH(b}93*|6y{5=P>Qm2&w! zt}^4TAhKXdpy4ccP(On7ea_>=Y2UV1eKHR>L!w+lRtc_44$AKE9z{&~BXLA%6-k`v1RZ1shI#4^V{=a`#8XgYV zl8z$au9}^wc=%GeP^v1L?)K?_=FowYhFH&F?NvEu(%YIis~l=FpDy`E5wSQ!%rEd2 zI#zz@i;sXh^nAV1pygrJGRKBg8?$1bKxT!v48xad5A%lX%}(&f+Hikw@2R3rbY0 ze=q*MY~xuhs~7Q~MWvnL-U9Q{`P?Ac(zINSd{9js$pcyXa(quDI|*#HTJPTqgZ8`Ajz9B6ZKQ z^~A)O+bgM0bEp&nw~_Xr+-5+i7n|)S?ofonnwhCgEP#ZKR9gqD+PqJi{n*JXAntM>sn?z(;kCV#o^T&99<=nAFjle9e z*t_0Ig?Db{eDk}cP4E9ZVS!+-9L+YXdEtJ-O5aW^$axv7| zDmqjJcfapsi%h~GmZt%ReJ?0uy?^eo8v;k!qK)er>gL=KTktKH-8S;Q|s^90(RPOVba4`BJ(7?cJom1&<0q*jrFV()Sw5V*TC34x}=1T7? zf0ou{ZYxC55p&06!o^z433-tP6KQ`@P6SAGwi~qYV1%mqiwbO!L zp(|Z8+45+Fex_F1hwEY=0uRmff#3w?ze5ETB$qCFLcvAO5*-I;dK(x7h@8}KY0SA!mUQ*8J8NwU=x0f(nB=^7i|ZgbJ+F4 z_*p}In<@)do+zqfD&5zuaU6?vfp)wp+5MHOl>L|~)Bhl5oN9pUTp>@rb{fSd;onKVfz$2rjZ&}E6glU2y?tuw*yzKa zOjoW}SDLR{KCAG)Be*bEV(I3y*i9t533t_EvnYtgUl`YsJ;a@qS?N+n_U`#=!hTVU z+Ed)gN@V#9{hRCEIwQN{EFl%ve@6BM3yOquEJ!WB+NW0OenuAfG8lr5kA($#k6s!H zNyYGB0;*SE{KO9g6B-wWwUE%y+EQ=5^{51d#B(J=5DkWosSeO>uZAU>6 zPtNlh=%2EmARwPe!x-84U4VN|TuN%%f}8dKaRKPm@STNVS-|~f`FF6h;bMvTv!1(O zxb!-F;}*(icc-fa^;ZEl=1Q4;m}a{dCOXwJ+oDz6)tsPcZx1^KyS(_VSeVkN&t*Tk z4-`$?@SCl-Pzd;}v%CT>^V}{=kC8D6&gX%PBZ>82k`F~v#|IAs4V`2_w_j4B`OWus zD^SQB6#}^C6u)UQR^WSF>SIaJ6In95#&0=pwPQ+n6d5aop25$BD){_^(Q$!ta9E5g ziR-PGAOP37(RO!6EqQ^atKlu_2-d&<3&7M+N$lXrv#0+9ur*m}L%#0+5;p+HVqjY7 zr2)?~aRET%&6IzKmSz5y7hbA<6HSOxe_>A-c}B|I`y)d4QLxr_(m7R#TMbgsKAboor<3?uSlDW{R$n;PlNYq@ z^&qGo{5wZya36UdTL2A$=W4UfNHCS*Yqaz645kHsGPOd9ppX0F$8&&0ra*xK}33DPZs{-+HOy3B>s;`|RO@zsBV=rr*spDSy!mBz7hHKUDks1ObhE zK%<15_fe)MBwo)twZ?j?rp+BDwc^}I&ueU+Z{ugT-QM1(|-_U3EzSz@%FSB`D;!ZKR z%!SX$1PHzFG6Zn)*?eJ)oA(%TTU}=Ssmuobg};C|vpO+Gz&(5(PPP_v*lbgDIhra9 zIGQa7YRwCWKr_^_aNt(H+TwJYd#A|ur}3TkxNjW6N-;nwq57}8vT&fuihzGP;dU5( z*wtrAn`FP!^YV@M>T<2HmK5UN=MqvQ>-@$F=YPod5*vMniC9M^$alm@ti#o+Qhi#M zN@y;G_O@U+wB#C*WxoJ+5r?=M(dDi~bCCbtWb%B zfU#qIK4&()PXEQO)thkmuzN}fh`B9|5=U_VOD6ceSpbM>uW&a;gF`+qCid^Bgva93 zQXW(x-B;4XX)Tt2%gxJp<@g}7E#5Yr%Ou*yvST>-T+g-?ui+7I%+;3^_d@lXI zI|^s-S}S$Iov`{7evV)j+K#B95R4DxvnVkNVGB?swq3~#U+t|7S;%<6QKAzHRYuXb zeYnh+PXts3BVErsd_l)dLj=WFD_u_M$i)&3w+QPH@n4BLe8i+k@WB0_ohUgi*CN-O zy%YxuzLSW8&2qVvX}@e%Q}b4|BN9*4g&+T?_4aEP|T#)sa1q& zQ~Tcg;U_W}j&h}C%a9wtZ~i-F{MPntC56`|jYq|k+jF-MJlGJCA~w%ipRC~SWIjZ_ zPFLmy^)Y<8{`OR5F%TT`wEIC=9!qyw#_>9ZRjo!-S^45e;!U&T(RXuVg{; z!_baaEKi(~b&X2{I$an>NsIbYyGRaT5E@d_#E%-RfbuA}0wuBn`?|S$?H|^Q0}>y~ zU%u3gT`yN_Ji0EUxxHVN8&pUo=nE~vI_4evFsQ4w1EX>kKw^SLfI}B)Vx#`O2vz7Y z1L&k)%pDzwgU;sOq5Ff4*$T`o}rz~4!jLnoZqpuPQNMI{d`>}0%hdFOpOLe zxGtU0InhKwNI{70uBmLMV-;K?FPQk?J`e=aA1)ULOGU$~X<0(=Cy>wI;In(i%zk(; z%Q_jx!|c!XdR%H$e)&ZXEIGr~8nmXNkO+V?FCvvU!(TbRb$bZ zR@3nUuquLSaAlm-HC*I5ch~H+55wwYOkO+S7s}8@S5|@pmE78DzZIL@ghUPO6+S_m zO=hJEJ+iE1Ku{gRR-z8^*dhR9%2Hl8LPu&PUs{+8n+-KkOhgf=%+R#Uu8WN5WB!;; zXT|AXEIkF?>5o4r4=($=gb4+KU_>)r4Ih|v0oCFUAb0z{QX3JAp^-z7!{-*Qn8(B9 z8uYbJHxnW=5E1q*FqvAZ1VVnw?&q}?I#s}5`=2qm`(6s!T&Y!Gs}%vpfn=Heu9@5y zYPXBqqR0=2ac2PF>gQOQL2Vxct-CoJhK^`xZh791%K!slv&yY%M9h90C_=Q@o2lNc z(m3P^s6|YsU%{gMDKC|KFIE!f+fxHy+}HK-a(UXOo`I^1rk&a&wl z|9;v3vC|1xantv((Hy zO{KG|Im2v{1OPC&-NmP!?BSPE*0sKp{N~x?$7y`D$)!Ny`c6T;F0U?#e=@Jg7)8d=jCiMQe zk3y8)2QI0wOXujD#-J7Uq5L5YK``XO?{WHEkxlV?^8N>OS!NCw&T@|T z;q|80>O5KFdgcJO1e~$ONLK2%@k< z+&e?g>Ev54pL~bNzZ)RlyVtjm9>(YMNO)ZzV0-!t76^-!r~m#tjr?Sv!PQY1yeHAi zhbo`NnoKuLl$Imt75XfI+u43{)9<6!?XK5k_FH74`KtJ|_o-p_tDy9g-6kFZr)@^& z>~aVedq@n4!Jha?kUZrq>h`X;J32{jEc%yGX~7Z9(gRk1U>x)G?P2@#ROC3E7vXN^YMeh^b76HQKo+*MZulrMpm5P7WUPh zwvf~t%Ky1wjSVZ2o zBa3($?`&5P2mF;T?Ew4*BOYSlAc@a;N8FJRqRG(7yf8o7obFE_nLWb$tWNh!ZvK_$ zpB9!s8$WmDzbqPO6eyl&1s4v!?`}_79)CM5c=LH6Zj_!}`;6U+CgEmQi$WD6W(Qc-P^T6#AT40jZcbeP!D;%jWt9Gdy5NWHQ%d~+J^_L3>UX{JO)ux{6^!L( z3_AH7bYB8e_)n_k3KpWM_5y+5;Ich~0_I`LNXUnx_ zC`b3$0}JqL3cogGHd1gYc3V`5d1ljIAM(Ex!PiMTa+jHw+t;z+FIRot@}*X<)245` zWf@OnFhXlMtb|r<j z(Iby`Q^eokdB3vK^yGVFfUQ(GVdCu995^n7HO|?i`S!zHOufC2%KJa$m!<3f>7y<} zBu+9U9}eyCyb?VcIx{vdrGmoUSTLivI$L2h-&yuNg&kd&WA;dDeXb$}Sc}=McX~ob zhr*V<`qJSn^Nz&BGX~%NUMlRny|H}RGTcb&_Mi3$QfYP4ey=*}{`AG*#0D2{hs^LQW$ z9xS-KyE}y7?(VJu26uON4H|;GTW|~R?(Qzz{LeXe_wL@Uno1R9hMDg9`s-Jo=l5b} zB*^mKu=tjMO@6bz^OW3Y`Qw4_F+{N6+ zE-4_WA9*&W2odx^mWvkrrUwx+e6m;<{XKyOOVue1{tgBlep))Z1*l#wsX+~*qvIvg zybYmI8pV4rCCM~s^S7_wbJx#0pA3AwqIcb5S&B{E%6QeDze!G&8QmJmMv9W+sbnNw z>C=shykT#O;B<5kfOB3wE>V zcavbFGFf?W=}~S?A2<^6qN0x2spOqHd$QXGF1ZS@4zK$T1hs3oIZyTN#*aFKiMvb^ zy^LkLk2?Gp4GVB9sXDH6Bh* zo18tWX?s(bK;97yY9EXm5!cB%|Cm%4=eM{3Kc zyJ_fIj)Bu4o?`x2H^H9?0hiCF=Z<)(JKPO>m3y7CN8Z-Ks{yajmeXOomN7Z2|2)|AA4VFrGS0xuN&#-wabZaUnIW zc88w6yxvXEjX*WO17px3PiOcV)YYI%7Dm=?3+0;pthd=#WL-f7D!D9o#7mj%MBj2e z+X&YE?qBp9Zd0NbSZ>eVR`uYT$8(Ph_`&w|utx^OA+|wF0EcDmVRj{8zVqy7|9#B5 zT1!j2OWN8{;p&Jn%gQZ+efG+6@5P#0qqca5`@6;2RlY?9m#Gr9<`CDa_fxwuUF9)! zRC&~j>3Qpg)((!zBH@`!O~O>G7jDBYd>Q9`r9y-ykjdLWG*#=9GWId;N%?_ZAD{3Y zd6L}GemrOJ?6?Fo6~6HG6h=LqM?YSeR@Eyk4O-}mEMO+@IC{oB`uH!?7hCt>5YHJ^ zdjRqyDBmWTEn(f7w`!}hjmo}wW3oi*Te)gPDFIY>s-{x`4#}(#zA6Z>VMlw@vw~B? za~faiyHnm#H+e+-*>F1*IKv>r?1PU{^Z5q9iJk~6T*>B>_1bK7Wjrizs8wwj)oiQP zSAnTS`iACMS6QSABbSxpG4A-&!7h^Rx`#SoYum@1S5{`!w*=LZ#9o-jNyck^2_EAC zioUVra9Zy<*TGc3O1n_EzlDP5{2|HyCn%Qn5JaSOOBV)ZcA3j9rHcE;)JOUuB{*YD zOk-Ylo1ip&Hds~I5Bd^GJ$#@PBU-?%CKhI0~*#+|v zAgBhk#Lu?lj_8{neA>LxP5ABo22S=G=X1T2{4!d3i_5imKi%7!%>qiBzaBF6mp-_` zZurAJ!bL-aihK!fXytW*Qx*HC?Pa_FkzRy@jOu~TCuMi+O1<5nZhqfzGtPK`Iy{q$ zRuTnuUML-_qTNua6*`{SnjSZ5-qRqxp2-fY+~laxju=BtYi6-l%hwZ)=kSw}q}0AO zm3EtS!`I)boYPXlJh>Q%sot7N<5e$Q*NRv4gglk=acAK;XDCDdu0Qa=2w~S45bzoJ zww`LpLpX^EO45mtqK(@)eC%&|2c0*=oQZj1dzdnA$io=wteFsQhN~d;4;w#krY@qV zitD7JE?A{=o1gS!C-i3wkTFW1)Ev7zG#>&BeNaC_R_4q|;W(Vj6wvPOeb#EA$udg) z1gOg$`)Ad6GkhNmXN&JfYAyF(tj4fX_zR;SW;2)>yh#F3XHOhFl-4c+E*DTIDls|< zVMBz}I(~h?=0J-5G4Si9weyf|q`q`3QmR5nIWO~jM2xj_1K+IY(F9)|A4nklQd=63 zM`aet;hoyMk_?-Keykau2@?&>;s54mG}y zr__kCzkSIpG^ZsdRAJ2!{py-I^}|iskm%KNbFF*&XxUmLQjm{rdq1DYk@Lu*{CTV-C6|>MB`$6 zt9dJ~`x}boq1E14Ui7MI{fjJLJ{I#{$P_UsdJsJPKxfLGJU~McYqe4%iFpfr!s1KCR>cCb~S82hefWY^*{~yPN52)eN|*11JNBQ6)r4px3g|1yW>EmT^OOxrU{R6P=yy~tvoEMelfF$P}IR~ z{ue!w`(toN+@SvOEN(r2;dt$FmC=&tOW1`jAO6Uv>Nd%wa)zF&*FG+cgY6mzm$QQ1 ze&4h*#qvQ$L_96@`arfA=mLvlZlS)2&+WC=f`1|pp+S`}hS*&k96Ap>1L+Zv>c09Ioz0 z8vzSg%4_d+v0EQO170@T*!sF2mFjFvi%AqX8@Lt4OLSPXuzHQrmr;Xq;>Z0hSqUni zZSatrNbNcn(9pKT_2W@R2m{`8$e*%rGs%6u+_@a9nU6pLXtWP516xLKjC8h$Ip)Rz z>wDXZM7UUY+TIr0P{{2fb@>387xmuz8M@+I}_59Lr(RbeuSGM3eS&MbW19~FZt`E8{LL# zD+!59LBU*N-SUQe+{3e%@!~14Ud=t}EXh(3LuhrLhRsT6KxkwAJss zw~9t--|2F?j6~Gj8F`nbG_h4j*L1iTuXb{P0A7BB)1m~f+3n4sdlPt4QnSQ+trY(GKmW731Gdv672b%ZwmI4Y6${P~)b19qt@jYaNYsXziw z>)AYA7GpqQ?P zBm%b>ga~L~2@oUTI*Wang-{(MdVi&$KNR>g`qY)J*K04`A`~9k0#(82ol(*_F5)2| z=&I2{Wt+7Fk|Sz(w&56Vk`HZdvMBrNdl8phpP#li0yATyLp8CWwJ(s++~V;Cr7t9lOkY?_gjt ziAoP9Y=mE@pgs2y>KCsc_EcyedX7EMR(VBux^GWbw)C1*P&$BR2ch`Llhc21?Pr!Y z-S2u~zn{&447RcTpXU0=_OlQ7*a)3Sv11TD@`RRIvoMN;fMGcn8J+YOM=_*vY+#!# z$Y^rVNO1O<2l#W*NKe!Dm@B3i1Uo6L}ihl7P0?9r6h;6NW3qPca! zwU93(k;LVv(|3oz+MsejVWo0wV0tOQ2kW2IncTQlu{n{`4k_MomyIi`QHi=LI8)_* z`1r&)_dVGE_wHyK(yjU=<6aJdRCCLnpM3~ZLHMviFWQlx&5B#)MPUDku#?C-E|jmr zDH=^`#i%0RJa7Y$kFwbNWw z!s@+vMjkiDElurDWi&}$zS?CP{2P+qJh)hNO72neGq}R!of4u9y@ntPczUG3Re}%- zfwNBughaf(dJlxs{xfPAzic%?jo#H*&&gLVPVubgP$v=_0=8y03Ukvh^rUB4)rXm5=VCdTBq z6=+yUOO|eepgtVALOkOAhL|0Rdea*akqp{_2#(r|F`jBU5@)=z5M}9?7N}2bB7Vjh zHGA}l;XQIbWs)>k zXH1v+SvL0c+LEubbFiz&RxgmYc#skHa`UfF*5 zsJ|=-ViR?v)!9lryjVT?J(N;TP&)ND!j8XG-rTb4C@JL@;40Jp ztLk#6GeE5TbKsFA=&&8Z-T{97W1-wQ(Xjsji4uzbiEpd8`b9^no7gP*aHQpLy1CnX z^h&&bE^TeY9K7P@n4RLMk61y!N_((8yI;SGCCODx_k64}VI9vuhorABw2W^~#TUiS zm`SA(;joYMVBG$=GZ>$|HnqLy5eaF1wz`6D&p}qq$@<6gjRY{C$&!X))FV1K2CJA+Gx3TH4JFYU zXJJazn}xUn4V%HwF1I6gn5WX_Cpuf)Q~6MHwE(#VvW_ zVIvji1fbXxUI1p)V^FV<)<;;Ten3&cT_1yM0M-I{T^nUAs(SPVwp5g9DD;PT+5aBVd{ zUqD^)@( z{)Ntmq`M0IW4Fe<@}2WqgIa=X25HkvS~lXV`tdXpX%gI)#;;#zIZ~G1e>C7M$v9do z1|Z4T)bG30-;{>QB^(46EAC=pwC>mY=ElN0{}0iDr3ld~NHn0vcCB3sRvqZ~Sxfd7 zKFP?tjFmf5~%B2^KPeVCPfl8&4jO6-)+_sY4UX-CJw zk?Jb)6O|gn;Vjn6?G{QnZQ9GiAW9?vRNV>!NDw68BIv~IN)xh>D#{%D)c1$K-u|AS z1&6tt^2hl&A5K$JX%+^2>)!QG`?aGwRcOdZ%b0QTq(0+ujlurlgPBv7X!< z%~5#s`LAUBW|>5lon{)Iz=QM!E-(3p^2}bp562H<==x0X4(BCNgF{i!mK9kmI3d4M zoYXlR30%L{VRkrxvznc|OgEfyn@s14eo}|J;_O=N(CyF>R-vMZX^*cp7ihy> zknQ<*k8N8{)o(z?Q_L)Tc`L#zSwMMTXcp@?-R}9}D-X#j_cTF9AbyKID<5y`kEJ-} zj|kZ@C>9>|kmO_v^-0%((C1%cSQLvu!w^Z(a;iB|?Ty(qw`7eYw_Fn9Yadj|WsyXD zkj+Z#VDO1)fX@8D05{K_7ddP!m7t{d+wZNm{`gUNG}iyZYW*t4yF%WD2-)43$bV;Q zeML<4DMYa(VeHO)th`mc*#`v7fs&4kFq_gamU>wkC z(;;Nz3Lt2}*{!X3^xmkv6Ck8OJ?g79hu=j~x6`uxQPx(8aZfAek}Vb8){{C_6!0A* zq*-ViO=hfUEM$BFccp1cQb@O&=7TDOcjcF;3FXtMQnI>;?c)#f4g>49aMwt(od4Uw zN`l^TuEdXL-qbE85U=MmkVuzVRT85g3i_jmj*fmRaPWcrZ&ki{Z{MH}46gri(rCIG z`z-uea<&W(zgV`%Wvp2eNzMk$vgoS^gle@CWz8U>!rF-@yZK!fuTwnvB|z3tb23YX z?swIaZZYh4ZU$|Mo+z_tY;P7;z) z@I5i=j<*kr_=j0>;)ds73S+#c8`#YAxp2iiFdYGwTRV{5ZR5>%Wan{uA50oU z%Lwh|rG0y%g>_ByK?mqGWr*WCo_K!g1Z20fiC0!4>-DKBH@*G7=$>zMD;=g8#l*6Y z-S9JI2wt{!M1~%K{msfI2m#xsUid3=3>1sVd^QL7mPis5O9W&b#qCLhzxstYzkMaZ zXh=g{2v|JAd++w^v^%XI>$Y2^GF%e(T+gsVO>;tWPTy3g@GJar@X_XT^_dTlDKnpjCxq3weVCTeDiFjPVJAoJr@iotxj5B3gwQ z2M1kOVvn0)Kmlt&*JvuUrd=PFOH@akPY@=knl{w<)PXPmvx`ilw)8K~Sl=>dKo{EC zL$D6$ySX-Ny0P%VN1flI3PRyVu{pqO7xGHhd+o(vpbZbyC> zh+pPO*;9Y3`nGA~$w6S3IJK5pTRI~)>kD`x2HN+30s7MO^LLL;kKul8z`LnxG>siY z1uK)xj(Gx*Mraac*s!fp4+3C7De-9Bf@B?!h1$d5DL)NaB^SM}+wcBPq`(0Qw8Hur zetJX`!2C<652cm)p;c5Mp7xf7oT-;t=BjW|X9TWj2wR<`1wDIxQM0lq$c)*M$gn1n z)DgXEFwX5w3F2!R_r@2DB-a9p#$AylS(SGMy6?{jpI?qJkNdO`Ul09Yzj6fefN~=3 zc_ouZ5(dYb55_XN^_HVYVj;Nu6I2!!8QysA7 zHC?^l%E33Qp@B>Fs@L>VX_`s~e(8Ng&cPSwazBN}DzA9|Lh}W4yxJD8yMpl*f2oY~ zrNNL?X=tx}2BrHXebLiubbP^p^;RxXm!)&MY5-0pfuv+rU zkNyFXj~8Lc;A$IMO%`b3R#vhEkrcx0D9V z^Q5)CdAF>b+e4+XThf%xfB)6Wx2n~U{w`Xz_*+fdRod#jDh@WwM#xHnOM{ig?=7R| zl%Nm5F)$2XFLnO0Je(0Rm`~bH|JFo2Q%MuB26Foy$QUBHpKj-7!0jx@f5%`Tk%M-K z*Y)a$%s+0ae_T`%0+>hAzB&!`?Z@;oWvFAhiX?0h^PlT1ZoULwf`_$PPE;a0=DzIc zQLXZ2w$A})%mdQ*;p(jrgS%dG7Dq!E##^$^V&)cW?Bkm2<*Ft0b?(jSihtqTMa$Ip zy=Ts7je3to^9+P{dzS(ogrFe!_F3|fA((5RPtdHmNHsJg9<1k#`52V0CsVWbyY8GF z$tUm^f8m?VS`~#zz12dSe8Joipi$xct=<*}=y?hdom!*XU ztrLWOPofeX=U+>@+!@~U(&u{jLd6^-0~S(xo=tvre2wHW`YWP#K2P3r%~GAVpn_Sf zska&nes{G|ciNbqf*6whYrce@FQuh+q zVPtt;djWQjpvwFtRkd)S0-hd#xKs4s=8FR0yJO3UAGk4YwFhS z@y=C^Wk5$gQTIzVlg}UEkWA(UehQ#GoYV2{=`#2m%^&r1slle|&m1}KY6(2{>{MwY zHHG5t2*NVMdIA=^bA&6*?}d*BoToL10{ip5KwGd1bPmLJ^7*jnhkb8cGBgb5pTp2; zEkboWAA@g!ci-q1-7iSyR^O!4{+KI)>W#WNnz^vt_|grv+ZBz+IdUeVuG846H~8t3 zc!zAd(Ch2#bep*B2S!ewr5e+5IY0_oA{t&q0|K5a1pMMBP_Uh%u4v!YOEf>8|Lb%! zga(KrvwA2QjLvcuDYcuOt`9A3IqWJ1Ou;-QSuOeWOE6TxlIb;v#(7Y04zB7+5z?RS zwdl*o>ut7jL@>t@#u>!NGOmGcn)>BxD@d3JQjOedu00<~SrJu0{}FKd1&|hwX*ZY3 zLkYe1u8|?pNNiwjk7uu;M7yA!Sq&-_lmLjbq(&J7Ca6Vl;Vn8o3kFUmG>reUHG0~sxk(AJqyHx(~ zz4QH=0#-G!yKq6wU+HHXbd2A*32&Cjy-R4x8S@49HCoM(fy5{s3d?;akyg=R%xI%?V%mOS%U}j0!JXF*TdyL#v{3U7VIew2wt1!ujzHG(g0_uQJ*fr zZKO(|mjnc{KV>poCg!WQMmb#ho{mxd;&_lI*s5$eZ%AR}&qC9bp}|j9yw0Ws$Uc^y z*3G%0N{w}UT(`e`plx0k_)@CaQur;(W1yn>_9Uw)P>N+JlN&LU1Edj&BEo6s+WB&Q zWp=pQRz%uv9v}2B$^AR)`GlysX&3h}8ICJ5KW#pR3(N9ODFJlYA9+7axa4plnd*42 z5RlMn-P5yLO{+zsf7i?PJ{cs}wHM|qKO}{AEi6GykBfrj z1*2OLWzx~-7m+jXE?vKD|Z>ZSA_1t{)yuXjY|8q&Ki#;<8`8G~%4i?rr zpM0fKDn`QPaGh2-1+v=`ZB2gx9`j2Ui@EYP()RC({m>UMTu1Nh)6l1_J9EELJm0I= zv@?NX8udKbOhY0vSoNzt`r7RmK&=Xp-22??9cDEA5>*Zaq-YeINwnMC0^iL%fUG)E ze)D4|H1td$pIkBlF=M*J_P`(qUg7ltbIJvQ4V(G0z%t^KR{&%zpqtf% z-J}dr7LSHbe^~boz1myERG}xAO4$}L3(Av0f)|`$ZTD;-JsZKADiKHYC)krJ%T*f8 zlj`N64vCSwE#a!gDqPduyyJ1d#j#KdJICj7^%-K&SL6QolC~3Be}1?!pxvenPl#fD zG=ZHhb$rX{`Jkn}fEiY`dNZ1IsPYdMz_(Xi;PkF?4G;~>ZmPz7Bh_hjjhdUuh)lb?wmF77liu}Zl9*mBC(4*hoUir69eilqNvc? z`W1HswM|4ozhsCYhCHqnk;F0L;t@iynIdPyjpfmY(qVjrpt)FUF8T}%u1h3E0A;(M zf{^<&0_ulVZPYfC=`<-fCr)GYy{dZ&Z2=pa2oLHI?q*7(#jdeXlQ0i`*uQ?!7oBak z`{Moz5$sC#G5lUEGM%Fr9+z!-WH`V<^0{Dm&Ppl*{X(j-p*NR*gpp$N{Im1vvSp|# zQSHNLw>z&Hl;Bn=9t_Y$Miee$eJ?ZeVi1!r@u7g*4WhLm&SDT-sl7)E*(TE4%ETG1 z{kQ%P_C#5nAl%LSn68m0V1wc8z0yw$q1UX>5XQkLN&%UUW*s3#n?|u!$#4cYZV-#5 zfs$!;jYIpn`(W5acpNb`Hz%^`+wZeOdbnEv51S+pe&ND-RKCt`SbZ-cJw8z=2akV` zxQyDS%gL(kmM{hK+lF|y+Gb30(~Kw%>Mano=+yUK_1D}30y#eXMmEOMM zl~%2CeuUd*8A=jo@&fo&riK^@_KJnCHoKXOj#0uM07^uZ$5EQQ_vLUv*XPGSUaX^Ey$C=A7v*am2Ix{6b~*r6F|?}YB7js) zq_xHc%aE}h{FxJ576|{SHUR;lc?s&c^JT)kODf_6?&glG0uUGnH_G$BTFr)Y!tD(5 zN06tqOcbj8&SLE`_IP`R6v0{D8P%-U++09$Y&~O=TnTA)O-97yG8t?!JrlgrHh}?? z#5ptxf{IO^QJNpqZ8QqiZL!G@5l-)TFo^+HnfhE>$ap$?1@LvPrh~j+jU$A4Bn3hM z;l$vX_Xx{XH8O5+>z^<*)C*Z2`C&qYAA_djQaA_~?-Jmd)H8BPaG=_)X@W7sWct?C{3glR4?=eC>Q??_d> zg#4?d+kZGHhvQWvib8tu`_!@MDqMq+gD=#B29HM6z0*Lcp*@6nB}3W zrNt@x1_cz0eyK1OmE@-|G*b6RVU0ct605WN06+Hbu-7zt$dDU!BZ&qUdrq&kjHDh= zkbSlX?PF4_<>ag<$YFoB(F(D+8tN{2e|mIvqX#AM^!47PyhUEOTL+|>ETBG_$?K9t z#f^*_begu{Xd;gU3}-bK+#OM$HbL&)sQ_Ms>jiVG)w|vtaL<_qE>Z{TG8^Q!m`3cb zcHHWd4(PUJMbR3kR-q}1z+y&e^i}?Vd{U)l>nZ}pdnHBv34>!&P|J(h(R6np)?deS zW}PMZp)2>Zy!*xH#UBK#8ABBI&_!$<%~yNFvT~9+Ty_PL@+ZKpT%pSkdd944#qIu_ z5dDpglEZf9n;pBb687dLMKb$0i`sQMe$U<7{ZEfSx$Nx6(^&l#KEQA(bAsDHP}9)q z9))TkWZXXi!{jo?&8L2Dn4UKW9-;pb(0WDxMPoM5N8p;Dr!stYK~~>Bw0S9$B?z=m zgJzW1vChfH1$Ur&cjka|dwaY9m(g1a8O)c}g*zKMeH-YEj$riDzwsFXJ$Vm40)P_q z?s%s&=!E39E|-L_52*}iao@>8m|9#I{3#Lc$C#n$lIAtO6#1S=mFNm{OGQpVhwnj^ zLZ#%Ip{K6$gIp$qVaDtF@FmQD2+mGax7{O^6wiXoj^o7i)M+25huNnY(!CD<5^K6* zO`w=W{%EBg(CoEpOJPkG6*a6K6p6_j83ka5GeiMm_AiWGz!g*n?rK_NG}`T1Y8EOP z%HC-SoC1V1kkHm(PwQ}sKLZA^SD?5hchN>)^e(h~F262OBnx%HD#btUk2hB=nkbnn z%4i>kizE-dpyS4t-E>c$`R9o@td^km@m-O?QENQezP<=@dJcJg$nd|er=X1DO5cP4 zCH<>S$xIpr!F#dY(R4|`xMLcXk_Q!vJ|n0>)P4a4^F=0uhj6;7R=FC2@-!?Q z8e1!!knV}{yuf$EquJjy&^yK5Fctwh-D0K4)vEfCr+)#ry!?hxU?`jbRfJF^(k#6i z#*c%=6~RDw5}qhrelilYW950M4-$&z05Zml=7H3Y*u@Ub zFv>DAO7nW2zCXmYEESvREDnKV?kZ zvNyuX@6@w@jNAW-f&bf&F%UqaSNr9D;z#oTgUb>s-kINMR*ga3H zR^9)EfR)*mYt@C(GFtze!=sAqlZd9K>VK08%we3=si#Xy{k;vSE(Fy~d;`(=`T14D z-M0?{W>UuJ;UrBzVZ83?!H>xC0!x+GQq_F_WhEvZVXnF|s!GAbPrf-BK#6q3)@>!7-~|7h4>ymB~;7 zr^HE($3xS8J*W73cVG=bE&1v zraS^DI}|>=(d0P+{>jANqHf#sAksC%Ced^+%m?E1e6N|`w;NB-w@bb(2KNm5&7iY( z;V)mlY^z{#RsHLDDPccjPUxn5i>~PCcw>wQOr~`0Bz$P9Mb6SdFQSMbOFENnWv9MN z>bW?U*z7z;@Qd41eQJelc7ypkyZ^OsL}&X!vb((dAXjVc(m@WaJt@?uaUetWX~Dre~SZLex^a@ z(P9KuNU$G25_oqgg(_zVa{@x?+}V%;cc{ZU=dZrvp`94I9%4Nm_*7{=gTKVbb(E?_ zB%1#e?M)TRd9@lgMRd3< z2MxvcP>g?`erK?}Cx|(~WVZ=JkYnmMAI)FRnav5bmTZenjvsvEC7bJx*c1Rd#LjP7 z-FHv%F8_7EGQ?K|T`m{5(AO82*s1oHf7=wNIB?%fgaCF${K8xYup=aa0#^+~9f zXDo>L;|2K4wyGOyba-Vh5K0R$|BE&QP$qmj0Rhg$oUS)%H@oeE%+9bX!<5f(6VM&- z!#>)P$uwVXgfq#YcmHai-e9$G%s}5ax0|~LU-HZ(k2V+LSx6j+I6#fhaU`(W= zdxe@OJ+RYd^2#B0i>MP5+kkpZF7UEI^oU$KtIyxdy@fQxEt?{-fW>@LV{$!V zw{KL_Ag)s6d=#icQJlRkaicckmfl9|){2L)wNXm^{B~VmLPA2R@v|1dDJ|ZKy0=jc z#?ewr8o`$YAXNuY45pE`l$ES1oxSjPYc!iywP*I zl((0>`_Ch3Kw)VZ_&RnH6lFrM`0jxK)CgDuw~#UupC0$J*(Gv?0(WABZ(Cgeq>$Ar zb^l_c<(9O^c!4CkWNvrhPWPu$NuZ1;99=DX4>_h+)@ z?#bc$Z~wfNw(J=YnD@64-^~B>(K_3|uLBcFFrb(bQ77!i3S>FPyhb`+ZqYAQ`p0rH zQR-M7u6Sc{ts~dr4j<-96jg(~S(qAAhe=|PeStRkw^UR~(**InOvi#x)FMg# z;Bmayp2E!VU0k5Y3t;lb&AOcNefVfb&@BQ%A^@=gRgE%HZeBjw+@TL{cn zN#{r$HQGSrcm1{DIZB4;JmJ_u7x1YBKbhZ1v?rN+)OM7i3(>AaI zKqw3-tIjsC>7OA75H;Q|is|5`_;Sqs>HUetXyCf+PJY}IXS>%4;k5?66{zE_Elhtq zp7guJbq{SmF&y|LB$eYR-$-&^UZ2h!L_+g!mzQdrWOYDwnbE>3*6^5n*X|JbO4TjD zeI0-lRf;QJ?gOuzQ%~LmMADmG3K})!-zW!*Nx=TcG=HYEfBHQbTv@!NQex(?wyrF<=UF za9Egh9$vC_VLu&e0IA#@YE#9N$sj?EJs;OpIlr7VtdT+T?Vl~^!K~=8Oqf)D8lfhe ze+#GQJF9WQpvY-r;gEel!3(kku|8~G%W7A6P0M(-%D-B6ZrE3^Kl=DgA|-dDh_E>A z2$s5PfQ~X}?}M-lR4eX|xt=XeA#V8Zv@}~byETWCTwK{weD|*X?>wCYMM)S1j@^_v4pK6d0dxp6^0&R2WN3e!9i<^O z@ZUfT$fVy5_2AXD3GgCzB_SkGVLzJL`3I?j>1a@8HR%`(xL$747n~NMZ1BSr@Mlzxm-O4FCwdo$K#tWw>93ZM6KEsj^K186!r5Fvt|b(MJosJKCM` zKpt!+tqGKheMb-h@RqYSmD(Q5eHbtTuKOF}QZ7^9F9CnPy8FC>03CP)4IN(SgUnjrX@SV=+TnDv_-FC;afyz5#wNkJ>seS8(<#(`4iSq>i>~F^;i;UX;5n-? z3z6r(a=NiN==jkwxz++?YGx%j%KqyB@Z4|z700_CgT4i7x$%lr$6oj*b^HzSz>e10 zEkt__wqaO%=**=9h>_e?c2ynVk{3CK5IYEpVS*Ct=&P z4wk!M8$j~o5ZxTHS8hNcv4K&l@!>{t;v%xRqO({#)Qn=h5g;L8^AW8@2ppniFu!jG zG15@WrhIN$IZJ$ewPxLp4wK1>I{~ON6UuQ`n)y~hgXlJEprpP}29@3Ix*tECE<@6I zzmiY~(?1BlB9YIN{~XgU2#SeR030ZBFK0su!R~*eGKybb{8{33cwK+T3d?qmL-AwT z=FWh96{}vKBsIJ=J6av}YDbas$1|M5!}SW|@Z$|Wg{rP+q-GumG=ZVQwG(J$v{Z?yQJoQHcyRVME z-nvxQA@Fup6#gRI-Ey#*Ru|EKeL8PtnjtS*=*8M&Gv)o&fIu1Cx*KC_CybhI%4)lQ zDQ!5Mz72<+!Oyf4>-`$J|A1r%UAunJePz{p(5zNAzp+}VwD{FE%M$7J*h5x{9dB?k zYap~fD2vAJl>mJ|2k`@-XPOdgaQqID`o0d~cuyrEkfCY`{oC)P)0R!ddqwV~NnBl| zQ+Y<6^Z%}_&_C$PynbJ|&v|DwISh}o&x>Af(Ho16)998*XamdxjGeAvJbA?uM+xav zfM;QDHJyz30lx0&tocX=^wzd&-&Lp$4qs(cZ?j^cn=}sxiL@SA5(<$Px1R9N`O5;% zUsrykLcx@ABM4*tA$$V*E$nv*ck%m%MkTjEZg1cnYCtv&F=)>l3H!A z(Xf_$p>su2B%T=Q-D~2F4v$v^z-oeuX?M!ZkuH0=)!U z(kKog9nb^m_$OM-Cz{0iKG2@>aO|B3h}nWUfb%D?(>C7u9W^}3VECILXDOjc3rj9#D5j_p?vDKK+(&kceXZn|Pw*R0-}aTl<#`=incW=b<{n>9~Q z%cFmAh3x?RWP^wLg%3t)k?ljkdyCkqN)i=93_*+($x#bJ36PWyu{Dp;;NJ{ zNsS6;^uZUwwq0L*W4ZZEz5J0Xn?FBtcUT!`eh+EXFr1-N)f9Et$oR3qUU5 zy|_P#0lVDv_e3033=#DDV0w}lRbRN%H`Ku8oCF|Vhx+ryz6B%Ly6M*X=|)(=s6Pt} zf7qG&yVB>)C^5$OgmaXd{HJ_b>OBg0<9NSS5kQI3xe#E%N+V@3R9{A&=!mDdY%%Gk@L7ilw=rYX+hxw%dg?R!g2)TjzZ0JW)3}&&lmmp4m*jeuK7a0 zBDqEJK4H+-FdC(?+gh;G>R!YHdCFhs*IyNdL!@=|^;f_p35h-rkNg%FDZcg50a;z5 z%`JI&ovhH3;+_VPb_3~S4l7cuu;n>f4G4Ak#o?PJ_exb-Q4h?~M`s#aB zVQJ<^6&)6?=zkS3;C{D4YpumZQ=!`-fk3UGRBydRHOFeP|EIBwjl|>Tz_hs~L(677 z*`+L)AkdYSW9*FV75*!-EYEAg0UNU@p69jxRa~nsp7$mtvtF0xWr}+H>0{qyiwpj- zMZ6o@`kyc{}vbp#z-;0@gyG zLJ|&AaNy3u@B5z&fEws;A>VD`YhzfZ(LL=K=KH1~(|`6u<;h$Lfa!HVyNMm9YgyK& z1rnxoC$_U-zTKvFj|T_AZ$2%+^i07b+xC(wv~{s49NKdN;Vr1Mu)y#n*L-n9{D|iW z7MD|xGu*&x_U2oQHF4C0Tp)fnKHf9j?u10F)t0DpFRGC94IJlt68Wm*sH}IACF((8 zVQb)wPE`va*m*TM#NV&JCpO=5?Un&y#8rIuZz)-I*jy(2mC++P^fwANmfO?rL@i5S z?*UrH%iYIStTX_D>^x^csIlf6NWC>MjR=ZYZm@P{oa;yv3 zdMAJj=EzdHSK|PZ`uU1Q<)20IC1!bV% z1Vm4aN9QoLPB1ut1Q@pDwx1iwZ~s&G@rLuAz2w7z*92*Zk{ zW2d71@#`5V71bIZhkNEu#JPc04raT_Y5}EZi(}0lc`4-^0XLkSz_3i(Ncj6*{eO7q zWfNDLj8btn9ZPUJ>om;#ulskFobi{(pQ3Xh1RO{jc`E!Yj(JYg@XdMY;q;Is~MVlu|-LIz+k|>Fx&U z5D<`199o8MP#WoOkQz!DaER~V?^)}8zxRE<_5A~n>t3$KJ=+zQMo$ zrSz@boW09;#_*6?i{3s1(h-p1Wq)il&TGNVa34w`3l&KGx1Z&98BuhH`U^}-A-j^M zlOeI6O`a!iRZ3pDV38O304UTaw(ks!J)TK-)&xAOLOf;JTmSIiUUveI)_U{~s)4HM zs~(ojT6^L0Qo3^nc-`_~BGV%TsMMJFGL_JJ6X(e`Q#z)9+#g4~ST#iRsxShK*lTXE zDsH{GZge|1`^M0s$4kzm@l@|yQ-9r`G}^gOit+H{UV8uYN%Ive(%i3}Ct^OkAYkJ> zIP+2j4dyoV<3mZ+A94vV_(VHi0S9EgdGP>u9xHeo1Z|%*3U+RC(R#35@Pu=R8G?w**JZ}N!Dq6M{8I!7AkdVqCL&n0%>ppKA!Sv zw9T*l51>I>tPlSm^CeNkl9xyl(wGAS@T-&pMRQpbb;mapJBEIt+0F{&OGP|vY9JI+y*r8) zJ~#PA=lM*9U$Z0ay}P2n80xDnIM@x&d6&L9Y#J?Ac~;-vm-zj{dS-|F$+<}@wap_4 z2Bc6C0ezyUB;f|14)h94qB(?#;;m^fzXsgwKg(sFMTJ0 zUSI*A0jC+!xzqQaMP=_7$Bc#!cbQ+Jfrlx?_zCGmipq|`Bg+qvZ^M3nep?@RpF0Cl zjx6_mDKzU=2G1IxA_=8h#pggkx`vbjn_3wXwyBvOVLs9~kw!RQ zI4t_I-{jZ}|Jj@Rs?XuO=+9FFUCxL^wyQ<%^ijV2tPBi#<7Q9;zsHC)*aISn`IEx8 zUuVJBS@M@MR`3y=uT!Vs{_I?t?SG8{?t%`gsl$?2UEprVPM=QCzTavH&v=(G!55B- zZa^0UJ97iECbx%V_Z+=D-m;BM*++@A0;*6=J0p{%p zl~04s2rM0y-nvDy-}kVKnB=3CL6=ycFaB4MV$X6n(#v~zMa*&HngILX)^GMj3V9Y= z#*ZwS^wR1mJJ|mmx6CbpX1i&=u5URa0Cp3yF+TRF@1>66ezjtDGT|Qtfp57s$RC%2 z*nZgW$7(nKbj%KUD)`cu7fV0B6Vr!gsC)xs^jKBq(J;HN__ElygGARDbWR||_sQ^>~QYWFAL0xXoV zd}s(lDC;5%v`g0py&EEVZU9+W`M}*f^qW*4@Zq72aIf4e;6WDxU*_o?y(z@v;&_AK zN&3dFlmkRLJde4d+Z@mH8(f?R^;{M`Cwy-4oA-RVzB~HGc&7V=H4-D3I4V;Hu3s+} zUbolb5IEO3cWCMwUaTjL@*}bi8(hW)>-vCKdC-qb$B*Z)yA1Z~IC+y!+>@e0$GJ8X z`t(usG@u7i_6f&RR=ZWszcnM_VpV<%qD!Kjc~_$ymqntSFLWBR&e}I~{o|??X{}BD zPS)QV&eWe!AhRCrHM@+DD)#T!)g7j|f?}t$W|CJrRRv#jN}$?hZVkkC(BCO+8ip5$ z*Ot#fuOi>G=zHABA7!y_6_u{O?_yIu|DQDto7Jqa+6l{{Y{s=7KX~<6Xhj3R=W!bU zMgOzgmnKr2*Cf+21m2$SxuMvf@>}!)<>qJCcm4HAxJidM#(unsKCNBb!}J$AHD8TJ z_8OP2F*fd;2zwsC8GGBvYn3C=UzC`!wSCZfL!n>q^0Ew!x_J@4dR^hy9hJg2y}cBK zA=Rb&DXzNvnngJ|!hWV|qPkmB;Ozi@ZD=#)a+@U{5{$Z6oXw)2aXw>Kh>57-0lD~W z-=!8`=6#^)=`5E%siY}+Gk@!z0h2!Z6VHSf++4G-*5ajzt(QJe7&@QnQoQ?Gao2Mj z@^d>@c#+I{3AlP9-eV)tH3uM4$p+N=Tzcyz;5~~V0U1Dkc1_Qw9-;?WJ4#5NmUJRZ z|8WgP`Pt#@i`rqov7%h_?q~|a+Fpt4PC`82v;MSlC0(5tX*Kideu#z3ixRV7Xe>b+XJMT zd)87WZ2=Jla39ayoUa|D$qz}Jc(xgB2EGz6x%EvCwPV-JRH>_Vq3>{x#M<8AL-oWn zdcSkiY+o=@muVl2^`N~~Nj?`FZ*qNKK{h}b`&Vh_RzNw8nz}4o-~9L)0s)9TL=p)y zTJn?Rfa zVhOerQV9u=!PshlQ18gJpC#NXF?8LIMITkuE5z%3lb|^5io2WRf9;vebtXVx!~`1B z|01$9u73Mf2??0y-7~q6$=8Wz!B~WG)x9U&pD$r&@Om>kgi`Vq@D6;>V2Hz}yWkaY z?i_v3Y$waqz_t;dKjze{5ivECS#aIg5H48cDB&oXgG%i9>CRMgmqC|jNG#$l-)9ML zV%?>=Z+-jGdS(#6Mwx$J|5VxSnOU2men}@@9lYTQ#-lLpAHWLavwgFK5DK$Wmxs*G zXLXCS4}M;EQy9lo3!8ZtN-SoyAFnM?L0UZ6u=asbrLvZC`!yoseHj3n82 zrZDq7OK8Ee)fXA}y&>of%a62vqt~%W&K`2P>9T*6g?|x}g4Not8ZVf8HDx@ETibnY zrL#YO@nzVrBP25M%%iozqW!W&qkw6j129;DI`1;I=oP(8y}KE|G_P@%X84L{h^}?J zV2@h3g>mTm2U~7bjiNrYZqDS_gUA|xka1bt8{Le2L^!M5emPncRdq054^Ff^g&~=> zqXKA7QVvGK7hWmS`;ztdC-2f(VG91g-S~BCRI-ud!B1u~x4_1~yN-kIVAM3_4VmBO z82{b%pC$fFF8`6me`N9hJtJodr~qYGYt+4se9XF|X0Fn>^jSfKnN|=ds+{As!#?BK zdi8V2-FVR%kh6fh@uvP_GwbA1us4?4vV3a0I5%g@LI%a}VuQk)(0(2^x+u${k{ZK7 z0oO_P9!Tdq1~x-!G+*9V2tXv^U_Ow%LOdPUl%e~FY;Smd%f7+18Uy7dk{?*dS2JEB zzJJ_iT6`OmIdlM6Y|RAfWcz;A-2B<)$#~*ggikG`3T-}{ZN9#i^`(;ZfeG49au%Fi z7av?Ami$57D#pY|#;MB-e~n=d+9^hxZdY{PO#((-%8qpEU$M6IA9OR-e~<@j;&eW9 zg@H?@_zX5DJ%5Y7H;}O{-t-!W*&1-*4T); zXB}%Dxo>+?pGlU2&hUH3{X7Ubr8pj#aGyH)jK=`RJ6U6`wR8gX{737Jlq|7kAnLPA zz;8^?3SZcY3$;|sM?74NH?HEjS;wiI(qY|vQhIqEg)3scw=L=`p@#^B(etHAy?Ds@w^YZ4i%;#-+ z0h^35S&?S6mazD*=iqzoON5A8HHGaN11O~#Y10vcWBq{-4y>EcC|lUxK5FKX-*L`{ zj*+K@-qzrUGopZVukBB1UI>yLjUF_iGf;4Gz!#OiJ5ya;M=wct3H(0dR0FktK}H$G zCKT!?VQ-lL2N#HqxeiNM79-|e<7vG2DxEDvw+oZjfg4w|>wNIBzaq=&fZfuqKp=-6 zzG;wq1J?coPSnS(_hX@;q0J2k0JCxSxwG+iv$>6p)|c{R&?q0bG5|R|}gY&c4fmSX~~F8K2kyRuH_X8D+oK?3EMV;()?Bstv2&L?(0T zPwH=~?w}v4if*QxH_?th_5f#X(PexgYo?Lm1+$Ml`*5%>R zhe2VGu=^X{j4;ZO@^6Wumy(={Zx*I=8Y@!ES)K)P4oa?@CKL2L!bF_K{+oAWz^gh3 zLu!>5l*^uRBB|S~UGyQkzdH$~lmKI^@M$RSD-ngV0Z{smCzlWCe%>=#4(nC6Q{0YE zGBUucKTxn}Ow?l2Qq$oJEenFI#g3m|V^@c&fq2_Kn{SPU^`ZagQV`n&oxgSPS_!3C z&#=rndIhGCy#xe+O|J04U#`1g+T&S{u}vB~TQm^fmzQO zn~E6K9;-y9D#2aCUe2d}p=6t(MreL{b5-`kZ!y=&@c!-4uyw(?^z zk%XOF@?+0r7a1b&sH;j#_`rS9lPydn6Mj^kDNL7QbPve?WG5XS&WmRH1D}&b4D4Co z-lrKOr_|5Zv}`1QsDoLTH106K!#R&L#}tUHcGk(`sC1D|yD{lY9*ZDmHUr)8K9{Su zpLCvK(fjbeZSoEdkJrCm4kq+5+<43*p5@#e%t*t}RFv7s8GhYK`H?4(coo_NU-eX3v2bn+VQ`6ykJnWGf7l1iA z^MS!9zdd-@UZL_g)k~{$6O%w~%>+WI7*+60A`ya*ObK-TeNwyh&tAevG?7t8UDPu-SR_Sqd1A{1{~=<=Vyx2 zDq*%vC|nb+z4a@4TXOu1Z&NYgYUGVh!-X9f7GpjY2ZrtoK0JG~wK$oRlrm3WK$QS z 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 KmxDev3Hm?xAB|-I literal 0 HcmV?d00001 diff --git a/imgs/docs/Python-virtual-env.png b/imgs/docs/Python-virtual-env.png new file mode 100644 index 0000000000000000000000000000000000000000..ea71fef173578fa0b44eb825502b5b8bd05b72dc GIT binary patch literal 116372 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∋6J8wck71D`KHRyoYDvvcdGE%GRL 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 literal 0 HcmV?d00001 diff --git a/imgs/docs/environmentKeys.png b/imgs/docs/environmentKeys.png new file mode 100644 index 0000000000000000000000000000000000000000..82fdf0347b842421a73a816e8911465f79b55ded GIT binary patch literal 108145 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

    8c=mpfa>rR(ejr|EdGER@^ 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 Date: Thu, 28 Dec 2023 18:58:14 +0800 Subject: [PATCH 093/101] feat: support docker (#107) --- .dockerignore | 2 ++ Dockerfile | 20 ++++++++++++++++++++ 2 files changed, 22 insertions(+) create mode 100644 .dockerignore create mode 100644 Dockerfile diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 000000000..ea7d5dde4 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,2 @@ +.github +.gitignore diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 000000000..6ca5ddf26 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,20 @@ +FROM python:3.10 as Builder +RUN sed -i 's/deb.debian.org/mirrors.tuna.tsinghua.edu.cn/g' /etc/apt/sources.list.d/debian.sources && \ + sed -i 's/security.debian.org/mirrors.tuna.tsinghua.edu.cn/g' /etc/apt/sources.list.d/debian.sources +RUN pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple && \ + pip3 install --upgrade pip # enable PEP 660 support +WORKDIR /app +# install libGL.so.1 +RUN apt-get update && apt-get install libgl1 -y +# install BMTools +RUN git clone https://github.com/OpenBMB/BMTools.git --depth=1 +RUN cd BMTools && \ + pip install -r requirements.txt && \ + python setup.py develop +# install AgentVerse +WORKDIR /app/AgentVerse +COPY requirements*.txt ./ +RUN pip install -r requirements.txt +RUN pip install -r requirements_local.txt +COPY . . +RUN pip install -e . From 5fb1f7713988c0ef71c1a8a455d7a74d821fd7cb Mon Sep 17 00:00:00 2001 From: Su Yang Date: Thu, 28 Dec 2023 18:59:05 +0800 Subject: [PATCH 094/101] feat: allow custom openai base url (#108) --- agentverse/llms/openai.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/agentverse/llms/openai.py b/agentverse/llms/openai.py index c119dcd80..7897ef2fc 100644 --- a/agentverse/llms/openai.py +++ b/agentverse/llms/openai.py @@ -30,6 +30,10 @@ if os.environ.get("OPENAI_API_KEY") != None: openai.api_key = os.environ.get("OPENAI_API_KEY") is_openai_available = True + # set openai api base url if it is set + if os.environ.get("OPENAI_BASE_URL") != None: + openai.base_url = os.environ.get("OPENAI_BASE_URL") + print("use new openai base url", openai.base_url) elif os.environ.get("AZURE_OPENAI_API_KEY") != None: openai.api_type = "azure" openai.api_key = os.environ.get("AZURE_OPENAI_API_KEY") From 4c16c4210f82b8507d0d572f74c19acd132be6c5 Mon Sep 17 00:00:00 2001 From: Kunlun Zhu Date: Thu, 18 Jan 2024 20:56:11 +0800 Subject: [PATCH 095/101] Update README.md on the news (#118) --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index f485f5c95..70be22fbf 100644 --- a/README.md +++ b/README.md @@ -64,6 +64,8 @@ Applications: software development system, consulting system, etc. # 📰 What's New +- [2024/1/17] We're super excited to announce that our paper got accepted at ICLR 2024. More updates will be coming soon! + - [2023/10/17] We're super excited to share our open-source AI community hugging face: [`AgentVerse`](https://huggingface.co/spaces/AgentVerse/agentVerse). You are able to try out the two simulation applications, NLP Classroom and Prisoner's Dilemma,with your code of the openai API key and the openai organization. Have fun! - [2023/10/5] Re-factor our codebase to enable the deployment of both simulation and task-solving framework! We have placed the code for Minecraft example in the paper at the [`minecraft`](https://github.com/OpenBMB/AgentVerse/tree/minecraft) branch. Our tool-using example will soon be updated to the `main` branch. Stay tuned! From ebcf88bdda781d6692e10714f1e79ea55a8768fd Mon Sep 17 00:00:00 2001 From: chenweize1998 Date: Wed, 6 Mar 2024 12:49:47 +0800 Subject: [PATCH 096/101] fix: dependency and typing error #120 --- agentverse/memory/chat_history.py | 2 +- requirements_local.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/agentverse/memory/chat_history.py b/agentverse/memory/chat_history.py index 9d07b18ce..1b40f19ec 100644 --- a/agentverse/memory/chat_history.py +++ b/agentverse/memory/chat_history.py @@ -21,7 +21,7 @@ class ChatHistoryMemory(BaseMemory): max_summary_tlength: int = 500 last_trimmed_index: int = 0 summary: str = "" - SUMMARIZATION_PROMPT = '''Your task is to create a concise running summary of actions and information results in the provided text, focusing on key and potentially important information to remember. + SUMMARIZATION_PROMPT: str = '''Your task is to create a concise running summary of actions and information results in the provided text, focusing on key and potentially important information to remember. You will receive the current summary and your latest actions. Combine them, adding relevant key information from the latest development in 1st person past tense and keeping the summary concise. diff --git a/requirements_local.txt b/requirements_local.txt index 1acb9614e..d7df9840a 100644 --- a/requirements_local.txt +++ b/requirements_local.txt @@ -1 +1 @@ -fschat[model_worker,webui] +fschat[model_worker,webui]==0.2.30 From fa916e180e6bc0fed586f2f5da54f1c7843ffd3b Mon Sep 17 00:00:00 2001 From: "Yusheng (Ethan) Su" Date: Fri, 22 Mar 2024 01:17:47 +0400 Subject: [PATCH 097/101] Update README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 70be22fbf..f93466317 100644 --- a/README.md +++ b/README.md @@ -64,6 +64,8 @@ Applications: software development system, consulting system, etc. # 📰 What's New +- [2024/3/17] AgentVerse was introduced in NVIDIA's blog - [Building Your First LLM Agent Application](https://developer.nvidia.com/blog/building-your-first-llm-agent-application/). + - [2024/1/17] We're super excited to announce that our paper got accepted at ICLR 2024. More updates will be coming soon! - [2023/10/17] We're super excited to share our open-source AI community hugging face: [`AgentVerse`](https://huggingface.co/spaces/AgentVerse/agentVerse). You are able to try out the two simulation applications, NLP Classroom and Prisoner's Dilemma,with your code of the openai API key and the openai organization. Have fun! From c7e5c1c3be4aafc6111a4db50da6d76f814c4f97 Mon Sep 17 00:00:00 2001 From: Weize Chen <32613237+chenweize1998@users.noreply.github.com> Date: Sun, 24 Mar 2024 16:42:51 +0800 Subject: [PATCH 098/101] OpenAI 1.0 and vLLMs support (#127) * migrated to new openai library and added VLLM support * updated README to add vLLM support --------- Co-authored-by: taisazero --- .gitignore | 3 +- README.md | 17 + .../rules/executor/tool_using.py | 16 +- agentverse/llms/__init__.py | 31 +- agentverse/llms/base.py | 5 +- agentverse/llms/openai.py | 364 ++++++++++++------ agentverse/llms/utils/llm_server_utils.py | 42 ++ agentverse/llms/utils/token_counter.py | 4 +- agentverse/memory/chat_history.py | 8 +- agentverse_command/main_simulation_gui.py | 22 +- requirements.txt | 2 +- scripts/evaluate_responsegen.py | 8 +- 12 files changed, 376 insertions(+), 146 deletions(-) create mode 100644 agentverse/llms/utils/llm_server_utils.py diff --git a/.gitignore b/.gitignore index bbfb5aec0..fced8a228 100644 --- a/.gitignore +++ b/.gitignore @@ -173,4 +173,5 @@ results tmp/ data/toolbench logs/ -ci_smoke_test_output/ \ No newline at end of file +ci_smoke_test_output/ +.env \ No newline at end of file diff --git a/README.md b/README.md index f93466317..dd03c1019 100644 --- a/README.md +++ b/README.md @@ -218,6 +218,8 @@ https://github.com/OpenBMB/AgentVerse/assets/11704492/4d07da68-f942-4205-b558-f1 - [Framework Required Modules](#framework-required-modules-1) - [CLI Example](#cli-example-1) - [Local Model Support](#local-model-support) + - [vLLM Support](#vllm-support) + - [FSChat Support](#fschat-support) - [1. Install the Additional Dependencies](#1-install-the-additional-dependencies) - [2. Launch the Local Server](#2-launch-the-local-server) - [3. Modify the Config File](#3-modify-the-config-file) @@ -351,6 +353,21 @@ We have provided more tasks in `agentverse/tasks/tasksolving/tool_using/` that s Also, you can take a look at `agentverse/tasks/tasksolving` for more experiments we have done in our paper. ## Local Model Support +## vLLM Support +If you want to use vLLM, follow the guide [here](https://docs.vllm.ai/en/latest/getting_started/quickstart.html) to install and setup the vLLM server which is used to handle larger inference workloads. Create the following environment variables to connect to the vLLM server: +```bash +export VLLM_API_KEY="your_api_key_here" +export VLLM_API_BASE="http://your_vllm_url_here" +``` + +Then modify the `model` in the task config file so that it matches the model name in the vLLM server. For example: +```yaml +model_type: vllm +model: llama-2-7b-chat-hf +``` + +## FSChat Support +This section provides a step-by-step guide to integrate FSChat into AgentVerse. FSChat is a framework that supports local models such as LLaMA, Vicunna, etc. running on your local machine. ### 1. Install the Additional Dependencies If you want to use local models such as LLaMA, you need to additionally install some other dependencies: ```bash diff --git a/agentverse/environments/tasksolving_env/rules/executor/tool_using.py b/agentverse/environments/tasksolving_env/rules/executor/tool_using.py index 9ae70a78d..13b4d02d5 100644 --- a/agentverse/environments/tasksolving_env/rules/executor/tool_using.py +++ b/agentverse/environments/tasksolving_env/rules/executor/tool_using.py @@ -1,12 +1,12 @@ import json import ast -import openai +from openai import OpenAI from string import Template from colorama import Fore from aiohttp import ClientSession from copy import deepcopy from typing import TYPE_CHECKING, Any, List, Tuple - +import httpx from agentverse.agents import ExecutorAgent from agentverse.message import Message, ExecutorMessage, SolverMessage from agentverse.logging import logger @@ -14,9 +14,9 @@ from . import BaseExecutor, executor_registry import asyncio from agentverse.llms.utils.jsonrepair import JsonRepair +from agentverse.llms.openai import DEFAULT_CLIENT_ASYNC as client_async url = "http://127.0.0.1:8080" - SUMMARIZE_PROMPT = """Here is the text gathered from a webpage, and a question you need to answer from the webpage. -- Webpage -- ${webpage} @@ -219,7 +219,7 @@ async def _summarize_webpage(webpage, question): ) for _ in range(3): try: - response = await openai.ChatCompletion.acreate( + response = await client_async.chat.completions.create( messages=[{"role": "user", "content": summarize_prompt}], model="gpt-3.5-turbo-16k", functions=[ @@ -261,7 +261,7 @@ async def _summarize_webpage(webpage, question): continue arguments = ast.literal_eval( JsonRepair( - response["choices"][0]["message"]["function_call"]["arguments"] + response.choices[0].message.function_call.arguments ).repair() ) ret = ( @@ -300,7 +300,7 @@ async def _summarize_webpage(webpage, question): } for i in range(3): try: - async with ClientSession(cookies=cookies, trust_env=True) as session: + async with httpx.AsyncClient(cookies=cookies, trust_env=True) as session: if cookies is None: async with session.post( f"{url}/get_cookie", timeout=30 @@ -327,12 +327,12 @@ async def _summarize_webpage(webpage, question): ) as response: content = await response.text() if command == "WebEnv_browse_website": - openai.aiosession.set(session) + client_async.http_client = session result = await _summarize_webpage( content, arguments["goals_to_browse"] ) elif command == "WebEnv_search_and_browse": - openai.aiosession.set(session) + client_async.http_client = session content = json.loads(content) # for i in range(len(content)): diff --git a/agentverse/llms/__init__.py b/agentverse/llms/__init__.py index b623e6234..f5bcda3fe 100644 --- a/agentverse/llms/__init__.py +++ b/agentverse/llms/__init__.py @@ -9,12 +9,33 @@ "vicuna-13b-v1.5", ] LOCAL_LLMS_MAPPING = { - "llama-2-7b-chat-hf": "meta-llama/Llama-2-7b-chat-hf", - "llama-2-13b-chat-hf": "meta-llama/Llama-2-13b-chat-hf", - "llama-2-70b-chat-hf": "meta-llama/Llama-2-70b-chat-hf", - "vicuna-7b-v1.5": "lmsys/vicuna-7b-v1.5", - "vicuna-13b-v1.5": "lmsys/vicuna-13b-v1.5", + "llama-2-7b-chat-hf": { + "hf_model_name": "meta-llama/Llama-2-7b-chat-hf", + "base_url": "http://localhost:5000/v1", + "api_key": "EMPTY", + }, + "llama-2-13b-chat-hf": { + "hf_model_name": "meta-llama/Llama-2-13b-chat-hf", + "base_url": "http://localhost:5000/v1", + "api_key": "EMPTY", + }, + "llama-2-70b-chat-hf": { + "hf_model_name": "meta-llama/Llama-2-70b-chat-hf", + "base_url": "http://localhost:5000/v1", + "api_key": "EMPTY", + }, + "vicuna-7b-v1.5": { + "hf_model_name": "lmsys/vicuna-7b-v1.5", + "base_url": "http://localhost:5000/v1", + "api_key": "EMPTY", + }, + "vicuna-13b-v1.5": { + "hf_model_name": "lmsys/vicuna-13b-v1.5", + "base_url": "http://localhost:5000/v1", + "api_key": "EMPTY", + }, } + from .base import BaseLLM, BaseChatModel, BaseCompletionModel, LLMResult from .openai import OpenAIChat diff --git a/agentverse/llms/base.py b/agentverse/llms/base.py index b759fb281..cc38f6d39 100644 --- a/agentverse/llms/base.py +++ b/agentverse/llms/base.py @@ -1,6 +1,5 @@ from abc import abstractmethod -from typing import Dict, Any - +from typing import Any, Dict, Optional from pydantic import BaseModel, Field @@ -20,6 +19,8 @@ class BaseModelArgs(BaseModel): class BaseLLM(BaseModel): args: BaseModelArgs = Field(default_factory=BaseModelArgs) max_retry: int = Field(default=3) + client_args: Optional[Dict] = Field(default={}) + is_azure: bool = Field(default=False) @abstractmethod def get_spend(self) -> float: diff --git a/agentverse/llms/openai.py b/agentverse/llms/openai.py index 7897ef2fc..144e19d3d 100644 --- a/agentverse/llms/openai.py +++ b/agentverse/llms/openai.py @@ -5,51 +5,95 @@ import numpy as np from aiohttp import ClientSession from typing import Dict, List, Optional, Union -from tenacity import retry, stop_after_attempt, wait_exponential - -from pydantic import BaseModel, Field +from tenacity import ( + retry, + stop_after_attempt, + wait_exponential, + retry_if_exception_type, +) +from pydantic import Field from agentverse.llms.base import LLMResult from agentverse.logging import logger from agentverse.message import Message -from . import llm_registry, LOCAL_LLMS -from .base import BaseChatModel, BaseCompletionModel, BaseModelArgs +from . import llm_registry, LOCAL_LLMS, LOCAL_LLMS_MAPPING +from .base import BaseChatModel, BaseModelArgs from .utils.jsonrepair import JsonRepair +from .utils.llm_server_utils import get_llm_server_modelname try: - import openai - from openai.error import OpenAIError + from openai import OpenAI, AsyncOpenAI + from openai import OpenAIError + from openai import AzureOpenAI, AsyncAzureOpenAI except ImportError: is_openai_available = False - logger.warn("openai package is not installed") + logger.warn( + "openai package is not installed. Please install it via `pip install openai`" + ) else: - # openai.proxy = os.environ.get("http_proxy") - # if openai.proxy is None: - # openai.proxy = os.environ.get("HTTP_PROXY") - if os.environ.get("OPENAI_API_KEY") != None: - openai.api_key = os.environ.get("OPENAI_API_KEY") - is_openai_available = True - # set openai api base url if it is set - if os.environ.get("OPENAI_BASE_URL") != None: - openai.base_url = os.environ.get("OPENAI_BASE_URL") - print("use new openai base url", openai.base_url) - elif os.environ.get("AZURE_OPENAI_API_KEY") != None: - openai.api_type = "azure" - openai.api_key = os.environ.get("AZURE_OPENAI_API_KEY") - openai.api_base = os.environ.get("AZURE_OPENAI_API_BASE") - openai.api_version = "2023-05-15" - is_openai_available = True - else: + api_key = None + base_url = None + model_name = None + OPENAI_API_KEY = os.environ.get("OPENAI_API_KEY") + OPENAI_BASE_URL = os.environ.get("OPENAI_BASE_URL") + AZURE_API_KEY = os.environ.get("AZURE_OPENAI_API_KEY") + AZURE_API_BASE = os.environ.get("AZURE_OPENAI_API_BASE") + VLLM_BASE_URL = os.environ.get("VLLM_BASE_URL") + VLLM_API_KEY = os.environ.get("VLLM_API_KEY", "EMPTY") + + if not OPENAI_API_KEY and not AZURE_API_KEY: logger.warn( - "OpenAI API key is not set. Please set the environment variable OPENAI_API_KEY" + "OpenAI API key is not set. Please set an environment variable OPENAI_API_KEY or " + "AZURE_OPENAI_API_KEY." ) - is_openai_available = False + elif OPENAI_API_KEY: + DEFAULT_CLIENT = OpenAI(api_key=OPENAI_API_KEY, base_url=OPENAI_BASE_URL) + DEFAULT_CLIENT_ASYNC = AsyncOpenAI(api_key=OPENAI_API_KEY, base_url=OPENAI_BASE_URL) + api_key = OPENAI_API_KEY + base_url = OPENAI_BASE_URL + elif AZURE_API_KEY: + DEFAULT_CLIENT = AzureOpenAI( + api_key=AZURE_API_KEY, + azure_endpoint=AZURE_API_BASE, + api_version="2024-02-15-preview", + ) + DEFAULT_CLIENT_ASYNC = AsyncAzureOpenAI( + api_key=AZURE_API_KEY, + azure_endpoint=AZURE_API_BASE, + ) + api_key = AZURE_API_KEY + base_url = AZURE_API_BASE + if VLLM_BASE_URL: + if model_name := get_llm_server_modelname(VLLM_BASE_URL, VLLM_API_KEY, logger): + # model_name = /mnt/llama/hf_models/TheBloke_Llama-2-70B-Chat-GPTQ + # transform to TheBloke/Llama-2-70B-Chat-GPTQ + hf_model_name = model_name.split("/")[-1].replace("_", "/") + LOCAL_LLMS.append(model_name) + LOCAL_LLMS_MAPPING[model_name] = { + "hf_model_name": hf_model_name, + "base_url": VLLM_BASE_URL, + "api_key": VLLM_API_KEY if VLLM_API_KEY else "EMPTY", + } + logger.info(f"Using vLLM model: {hf_model_name}") + if hf_model_name := get_llm_server_modelname( + "http://localhost:5000", logger=logger + ): + # meta-llama/Llama-2-7b-chat-hf + # transform to llama-2-7b-chat-hf + short_model_name = model_name.split("/")[-1].lower() + LOCAL_LLMS.append(short_model_name) + LOCAL_LLMS_MAPPING[short_model_name] = { + "hf_model_name": hf_model_name, + "base_url": "http://localhost:5000/v1", + "api_key": "EMPTY", + } + + logger.info(f"Using FSChat model: {model_name}") class OpenAIChatArgs(BaseModelArgs): model: str = Field(default="gpt-3.5-turbo") - deployment_id: str = Field(default=None) max_tokens: int = Field(default=2048) temperature: float = Field(default=1.0) top_p: int = Field(default=1) @@ -101,9 +145,14 @@ class OpenAIChatArgs(BaseModelArgs): @llm_registry.register("gpt-35-turbo") @llm_registry.register("gpt-3.5-turbo") @llm_registry.register("gpt-4") +@llm_registry.register("vllm") @llm_registry.register("local") class OpenAIChat(BaseChatModel): args: OpenAIChatArgs = Field(default_factory=OpenAIChatArgs) + client_args: Optional[Dict] = Field( + default={"api_key": api_key, "base_url": base_url} + ) + is_azure: bool = Field(default=False) total_prompt_tokens: int = 0 total_completion_tokens: int = 0 @@ -111,14 +160,27 @@ class OpenAIChat(BaseChatModel): def __init__(self, max_retry: int = 3, **kwargs): args = OpenAIChatArgs() args = args.dict() + client_args = {"api_key": api_key, "base_url": base_url} + # check if api_key is an azure key + is_azure = False + if AZURE_API_KEY and not OPENAI_API_KEY: + is_azure = True for k, v in args.items(): args[k] = kwargs.pop(k, v) if len(kwargs) > 0: logger.warn(f"Unused arguments: {kwargs}") if args["model"] in LOCAL_LLMS: - openai.api_base = "http://localhost:5000/v1" - openai.api_key = "EMPTY" - super().__init__(args=args, max_retry=max_retry) + if args["model"] in LOCAL_LLMS_MAPPING: + client_args["api_key"] = LOCAL_LLMS_MAPPING[args["model"]]["api_key"] + client_args["base_url"] = LOCAL_LLMS_MAPPING[args["model"]]["base_url"] + is_azure = False + else: + raise ValueError( + f"Model {args['model']} not found in LOCAL_LLMS_MAPPING" + ) + super().__init__( + args=args, max_retry=max_retry, client_args=client_args, is_azure=is_azure + ) @classmethod def send_token_limit(self, model: str) -> int: @@ -126,20 +188,27 @@ def send_token_limit(self, model: str) -> int: "gpt-3.5-turbo": 4096, "gpt-35-turbo": 4096, "gpt-3.5-turbo-16k": 16384, + "gpt-3.5-turbo-0613": 16384, + "gpt-3.5-turbo-1106": 16384, + "gpt-3.5-turbo-0125": 16384, "gpt-4": 8192, "gpt-4-32k": 32768, + "gpt-4-0613": 32768, + "gpt-4-1106-preview": 131072, + "gpt-4-0125-preview": 131072, "llama-2-7b-chat-hf": 4096, } - - return send_token_limit_dict[model] - - # def _construct_messages(self, history: List[Message]): - # return history + [{"role": "user", "content": query}] - @retry( - stop=stop_after_attempt(20), - wait=wait_exponential(multiplier=1, min=4, max=10), - reraise=True, - ) + # Default to 4096 tokens if model is not in the dictionary + return send_token_limit_dict[model] if model in send_token_limit_dict else 4096 + + # @retry( + # stop=stop_after_attempt(20), + # wait=wait_exponential(multiplier=1, min=4, max=10), + # reraise=True, + # retry=retry_if_exception_type( + # exception_types=(OpenAIError, json.decoder.JSONDecodeError, Exception) + # ), + # ) def generate_response( self, prepend_prompt: str = "", @@ -149,59 +218,93 @@ def generate_response( ) -> LLMResult: messages = self.construct_messages(prepend_prompt, history, append_prompt) logger.log_prompt(messages) + if self.is_azure: + openai_client = AzureOpenAI( + api_key=self.client_args["api_key"], + azure_endpoint=self.client_args["base_url"], + api_version="2024-02-15-preview", + ) + else: + openai_client = OpenAI( + api_key=self.client_args["api_key"], + base_url=self.client_args["base_url"], + ) try: # Execute function call if functions != []: - response = openai.ChatCompletion.create( + response = openai_client.chat.completions.create( messages=messages, functions=functions, **self.args.dict(), ) - if response["choices"][0]["message"].get("function_call") is not None: + + logger.log_prompt( + [ + { + "role": "assistant", + "content": response.choices[0].message.content, + } + ] + ) + if response.choices[0].message.function_call is not None: self.collect_metrics(response) + return LLMResult( - content=response["choices"][0]["message"].get("content", ""), - function_name=response["choices"][0]["message"][ - "function_call" - ]["name"], + content=response.choices[0].message.get("content", ""), + function_name=response.choices[0].message.function_call.name, function_arguments=ast.literal_eval( - response["choices"][0]["message"]["function_call"][ - "arguments" - ] + response.choices[0].message.function_call.arguments ), - send_tokens=response["usage"]["prompt_tokens"], - recv_tokens=response["usage"]["completion_tokens"], - total_tokens=response["usage"]["total_tokens"], + send_tokens=response.usage.prompt_tokens, + recv_tokens=response.usage.completion_tokens, + total_tokens=response.usage.total_tokens, ) else: self.collect_metrics(response) + logger.log_prompt( + { + "role": "assistant", + "content": response.choices[0].message.content, + } + ) return LLMResult( - content=response["choices"][0]["message"]["content"], - send_tokens=response["usage"]["prompt_tokens"], - recv_tokens=response["usage"]["completion_tokens"], - total_tokens=response["usage"]["total_tokens"], + content=response.choices[0].message.content, + send_tokens=response.usage.prompt_tokens, + recv_tokens=response.usage.completion_tokens, + total_tokens=response.usage.total_tokens, ) else: - response = openai.ChatCompletion.create( + response = openai_client.chat.completions.create( messages=messages, **self.args.dict(), ) + logger.log_prompt( + [ + { + "role": "assistant", + "content": response.choices[0].message.content, + } + ] + ) self.collect_metrics(response) return LLMResult( - content=response["choices"][0]["message"]["content"], - send_tokens=response["usage"]["prompt_tokens"], - recv_tokens=response["usage"]["completion_tokens"], - total_tokens=response["usage"]["total_tokens"], + content=response.choices[0].message.content, + send_tokens=response.usage.prompt_tokens, + recv_tokens=response.usage.completion_tokens, + total_tokens=response.usage.total_tokens, ) except (OpenAIError, KeyboardInterrupt, json.decoder.JSONDecodeError) as error: raise - @retry( - stop=stop_after_attempt(20), - wait=wait_exponential(multiplier=1, min=4, max=10), - reraise=True, - ) + # @retry( + # stop=stop_after_attempt(20), + # wait=wait_exponential(multiplier=1, min=4, max=10), + # reraise=True, + # retry=retry_if_exception_type( + # exception_types=(OpenAIError, json.decoder.JSONDecodeError, Exception) + # ), + # ) async def agenerate_response( self, prepend_prompt: str = "", @@ -212,19 +315,34 @@ async def agenerate_response( messages = self.construct_messages(prepend_prompt, history, append_prompt) logger.log_prompt(messages) + if self.is_azure: + async_openai_client = AsyncAzureOpenAI( + api_key=self.client_args["api_key"], + azure_endpoint=self.client_args["base_url"], + api_version="2024-02-15-preview", + ) + else: + async_openai_client = AsyncOpenAI( + api_key=self.client_args["api_key"], + base_url=self.client_args["base_url"], + ) try: if functions != []: - async with ClientSession(trust_env=True) as session: - openai.aiosession.set(session) - response = await openai.ChatCompletion.acreate( - messages=messages, - functions=functions, - **self.args.dict(), - ) - if response["choices"][0]["message"].get("function_call") is not None: - function_name = response["choices"][0]["message"]["function_call"][ - "name" + response = await async_openai_client.chat.completions.create( + messages=messages, + functions=functions, + **self.args.dict(), + ) + logger.log_prompt( + [ + { + "role": "assistant", + "content": response.choices[0].message.content, + } ] + ) + if response.choices[0].message.function_call is not None: + function_name = response.choices[0].message.function_call.name valid_function = False if function_name.startswith("function."): function_name = function_name.replace("function.", "") @@ -243,17 +361,13 @@ async def agenerate_response( ) try: arguments = ast.literal_eval( - response["choices"][0]["message"]["function_call"][ - "arguments" - ] + response.choices[0].message.function_call.arguments ) except: try: arguments = ast.literal_eval( JsonRepair( - response["choices"][0]["message"]["function_call"][ - "arguments" - ] + response.choices[0].message.function_call.arguments ).repair() ) except: @@ -264,36 +378,55 @@ async def agenerate_response( "The returned argument in function call is not valid json." ) self.collect_metrics(response) + logger.log_prompt( + { + "role": "assistant", + "content": response.choices[0].message.content, + } + ) return LLMResult( function_name=function_name, function_arguments=arguments, - send_tokens=response["usage"]["prompt_tokens"], - recv_tokens=response["usage"]["completion_tokens"], - total_tokens=response["usage"]["total_tokens"], + send_tokens=response.usage.prompt_tokens, + recv_tokens=response.usage.completion_tokens, + total_tokens=response.usage.total_tokens, ) else: self.collect_metrics(response) + logger.log_prompt( + { + "role": "assistant", + "content": response.choices[0].message.content, + } + ) return LLMResult( - content=response["choices"][0]["message"]["content"], - send_tokens=response["usage"]["prompt_tokens"], - recv_tokens=response["usage"]["completion_tokens"], - total_tokens=response["usage"]["total_tokens"], + content=response.choices[0].message.content, + send_tokens=response.usage.prompt_tokens, + recv_tokens=response.usage.completion_tokens, + total_tokens=response.usage.total_tokens, ) else: - async with ClientSession(trust_env=True) as session: - openai.aiosession.set(session) - response = await openai.ChatCompletion.acreate( - messages=messages, - **self.args.dict(), - ) + + response = await async_openai_client.chat.completions.create( + messages=messages, + **self.args.dict(), + ) self.collect_metrics(response) + logger.log_prompt( + [ + { + "role": "assistant", + "content": response.choices[0].message.content, + } + ] + ) return LLMResult( - content=response["choices"][0]["message"]["content"], - send_tokens=response["usage"]["prompt_tokens"], - recv_tokens=response["usage"]["completion_tokens"], - total_tokens=response["usage"]["total_tokens"], + content=response.choices[0].message.content, + send_tokens=response.usage.prompt_tokens, + recv_tokens=response.usage.completion_tokens, + total_tokens=response.usage.total_tokens, ) except (OpenAIError, KeyboardInterrupt, json.decoder.JSONDecodeError) as error: raise @@ -311,8 +444,8 @@ def construct_messages( return messages def collect_metrics(self, response): - self.total_prompt_tokens += response["usage"]["prompt_tokens"] - self.total_completion_tokens += response["usage"]["completion_tokens"] + self.total_prompt_tokens += response.usage.prompt_tokens + self.total_completion_tokens += response.usage.completion_tokens def get_spend(self) -> int: input_cost_map = { @@ -320,9 +453,13 @@ def get_spend(self) -> int: "gpt-3.5-turbo-16k": 0.003, "gpt-3.5-turbo-0613": 0.0015, "gpt-3.5-turbo-16k-0613": 0.003, + "gpt-3.5-turbo-1106": 0.0005, + "gpt-3.5-turbo-0125": 0.0005, "gpt-4": 0.03, "gpt-4-0613": 0.03, "gpt-4-32k": 0.06, + "gpt-4-1106-preview": 0.01, + "gpt-4-0125-preview": 0.01, "llama-2-7b-chat-hf": 0.0, } @@ -331,9 +468,13 @@ def get_spend(self) -> int: "gpt-3.5-turbo-16k": 0.004, "gpt-3.5-turbo-0613": 0.002, "gpt-3.5-turbo-16k-0613": 0.004, + "gpt-3.5-turbo-1106": 0.0015, + "gpt-3.5-turbo-0125": 0.0015, "gpt-4": 0.06, "gpt-4-0613": 0.06, "gpt-4-32k": 0.12, + "gpt-4-1106-preview": 0.03, + "gpt-4-0125-preview": 0.03, "llama-2-7b-chat-hf": 0.0, } @@ -353,16 +494,19 @@ def get_spend(self) -> int: reraise=True, ) def get_embedding(text: str, attempts=3) -> np.array: + if AZURE_API_KEY and AZURE_API_BASE: + client = AzureOpenAI( + api_key=AZURE_API_KEY, + azure_endpoint=AZURE_API_BASE, + api_version="2024-02-15-preview", + ) + elif OPENAI_API_KEY: + client = OpenAI(api_key=OPENAI_API_KEY, base_url=OPENAI_BASE_URL) try: text = text.replace("\n", " ") - if openai.api_type == "azure": - embedding = openai.Embedding.create( - input=[text], deployment_id="text-embedding-ada-002" - )["data"][0]["embedding"] - else: - embedding = openai.Embedding.create( - input=[text], model="text-embedding-ada-002" - )["data"][0]["embedding"] + embedding = client.embeddings.create( + input=text, model="text-embedding-ada-002" + ).model_dump_json(indent=2) return tuple(embedding) except Exception as e: attempt += 1 diff --git a/agentverse/llms/utils/llm_server_utils.py b/agentverse/llms/utils/llm_server_utils.py new file mode 100644 index 000000000..1aef91f78 --- /dev/null +++ b/agentverse/llms/utils/llm_server_utils.py @@ -0,0 +1,42 @@ +import requests +from typing import Optional + +def get_llm_server_modelname( + base_url: str = "http://localhost:8000", api_key=None, logger=None +) -> Optional[str]: + # remove /v1 and any trailing slashes from the base_url + base_url = base_url.replace("/v1", "").rstrip("/") + try: + if api_key: + response = requests.get( + f"{base_url}/v1/models", headers={"Authorization": f"Bearer {api_key}"} + ) + else: + response = requests.get(f"{base_url}/v1/models") + if response.status_code == 200: + # get the model name hosted by vLLM + models = [m for m in response.json()["data"] if m["object"] == "model"] + if len(models) == 0: + if logger: + logger.warn( + "The vLLM server is running but not hosting any models." + ) + return None + model_name = models[0]["id"] + if logger: + logger.info(f"vLLM server is running. Selecting: {model_name}.") + return model_name + else: + if logger: + logger.warn( + f"vLLM server is running but could not get the list of models. Status code: {response.status_code}" + ) + return None + except requests.exceptions.ConnectionError: + if logger: + logger.warn("No vLLM server running at the specified URL.") + return None + except Exception as e: + if logger: + logger.warn(f"Error while trying to get the vLLM model name: {e}") + return None diff --git a/agentverse/llms/utils/token_counter.py b/agentverse/llms/utils/token_counter.py index 94125ad73..7af8e2ffb 100644 --- a/agentverse/llms/utils/token_counter.py +++ b/agentverse/llms/utils/token_counter.py @@ -12,7 +12,7 @@ def count_string_tokens(prompt: str = "", model: str = "gpt-3.5-turbo") -> int: return len(tiktoken.encoding_for_model(model).encode(prompt)) elif model.lower() in LOCAL_LLMS or model in LOCAL_LLMS: from transformers import AutoTokenizer - encoding = AutoTokenizer.from_pretrained(LOCAL_LLMS_MAPPING[model.lower()]) + encoding = AutoTokenizer.from_pretrained(LOCAL_LLMS_MAPPING[model.lower()]['hf_model_name']) return len(encoding.encode(prompt)) @@ -35,7 +35,7 @@ def count_message_tokens( elif model.lower() in LOCAL_LLMS or model in LOCAL_LLMS: from transformers import AutoTokenizer - encoding = AutoTokenizer.from_pretrained(LOCAL_LLMS_MAPPING[model.lower()]) + encoding = AutoTokenizer.from_pretrained(LOCAL_LLMS_MAPPING[model.lower()]['hf_model_name']) else: raise NotImplementedError( f"count_message_tokens() is not implemented for model {model}.\n" diff --git a/agentverse/memory/chat_history.py b/agentverse/memory/chat_history.py index 1b40f19ec..65d007514 100644 --- a/agentverse/memory/chat_history.py +++ b/agentverse/memory/chat_history.py @@ -1,7 +1,7 @@ import json import logging import os -import openai +from openai import OpenAI import copy from typing import List, Optional, Tuple, Dict @@ -12,7 +12,7 @@ from .base import BaseMemory from agentverse.llms.utils import count_message_tokens, count_string_tokens from agentverse.llms import OpenAIChat - +from agentverse.llms.openai import DEFAULT_CLIENT as openai_client @memory_registry.register("chat_history") class ChatHistoryMemory(BaseMemory): @@ -206,12 +206,12 @@ async def _update_summary_with_batch( summary=self.summary, new_events=new_events_batch ) - self.summary = await openai.ChatCompletion.acreate( + self.summary = await openai_client.chat.completions.acreate( messages=[{"role": "user", "content": prompt}], model=model, max_tokens=max_summary_length, temperature=0.5, - )["choices"][0]["message"]["content"] + ).choices[0].message.content def summary_message(self) -> dict: return { diff --git a/agentverse_command/main_simulation_gui.py b/agentverse_command/main_simulation_gui.py index 75d7fbd3f..e132a1024 100644 --- a/agentverse_command/main_simulation_gui.py +++ b/agentverse_command/main_simulation_gui.py @@ -9,19 +9,23 @@ type=str, default=os.path.join(os.path.dirname(__file__), "..", "agentverse", "tasks"), ) -parser.add_argument("--share", - action='store_true', - default=False, - help="Create a publicly shareable link") -parser.add_argument("--server_name", - type=str, - default="127.0.0.1", - help="Server name") +parser.add_argument( + "--share", + action="store_true", + default=False, + help="Create a publicly shareable link", +) +parser.add_argument("--server_name", type=str, default="127.0.0.1", help="Server name") +parser.add_argument("--debug", action="store_true", default=False, help="Debug mode") args = parser.parse_args() def cli_main(): - ui = GUI(args.task, args.tasks_dir,ui_kwargs={"share":args.share,"server_name":args.server_name}) + ui = GUI( + args.task, + args.tasks_dir, + ui_kwargs={"share": args.share, "server_name": args.server_name, "debug": args.debug}, + ) ui.launch() if __name__ == "__main__": diff --git a/requirements.txt b/requirements.txt index 0a93efec9..4c4575e64 100644 --- a/requirements.txt +++ b/requirements.txt @@ -3,7 +3,7 @@ fastapi==0.95.1 uvicorn py3langid setuptools-scm -openai==0.27.8 +openai==1.5.0 opencv-python==4.8.0.76 gradio httpx[socks]==0.25.0 diff --git a/scripts/evaluate_responsegen.py b/scripts/evaluate_responsegen.py index 07b497ae3..0b7adabf2 100644 --- a/scripts/evaluate_responsegen.py +++ b/scripts/evaluate_responsegen.py @@ -2,8 +2,9 @@ import json from string import Template import time -import openai +from openai import OpenAI from tqdm import tqdm +from agentverse.llms.openai import DEFAULT_CLIENT as client with open("./results.jsonl", "r") as f: lines = list(f.readlines()) @@ -25,7 +26,6 @@ res = [] eval = [] - def write_eval_to_file(file, skip=0): for idx, line in tqdm(enumerate(lines)): if idx < skip: @@ -50,7 +50,7 @@ def write_eval_to_file(file, skip=0): ) for i in range(100): try: - eval_response = openai.ChatCompletion.create( + eval_response = client.chat.completions.create( model="gpt-4", messages=[{"role": "user", "content": prompt}], temperature=0.0, @@ -59,7 +59,7 @@ def write_eval_to_file(file, skip=0): time.sleep(min(i**2, 60)) continue break - text = eval_response["choices"][0]["message"]["content"] + text = eval_response.choices[0].message.content eval.append(text) text = text.replace("\n", "\n\n") f.write(f"{text}\n\n") From 6e6dff647b5cadfc0bb8126f9410cfe2d40f8907 Mon Sep 17 00:00:00 2001 From: chenweize1998 Date: Sun, 24 Mar 2024 16:46:25 +0800 Subject: [PATCH 099/101] fix: github action --- .github/workflows/test.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index e593f0609..1e7071e31 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -35,7 +35,8 @@ jobs: env: OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} OPENAI_ORGANIZATION: ${{ secrets.OPENAI_ORGANIZATION }} + OPENAI_BASE_URL: ${{ secrets.OPENAI_BASE_URL }} run: | python setup.py develop python agentverse_command/benchmark.py --task tasksolving/mgsm/gpt-3.5 --dataset_path data/mgsm/test_sample.jsonl --overwrite --output_path ci_smoke_test_output --tasks_dir ./agentverse/tasks - python scripts/evaluate_math.py --path ci_smoke_test_output/results.jsonl --ci_smoke_test \ No newline at end of file + python scripts/evaluate_math.py --path ci_smoke_test_output/results.jsonl --ci_smoke_test From c755193f3bd68ca1c3cde8f3b0b3c331726a016d Mon Sep 17 00:00:00 2001 From: _1ring2rta_ <53417412+1ring2rta@users.noreply.github.com> Date: Thu, 25 Apr 2024 09:20:58 +0800 Subject: [PATCH 100/101] Update openai.py fix ``Error message is logged: RuntimeError: Event loop is closed`` --- agentverse/llms/openai.py | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/agentverse/llms/openai.py b/agentverse/llms/openai.py index 144e19d3d..881ec3f7a 100644 --- a/agentverse/llms/openai.py +++ b/agentverse/llms/openai.py @@ -232,11 +232,12 @@ def generate_response( try: # Execute function call if functions != []: - response = openai_client.chat.completions.create( - messages=messages, - functions=functions, - **self.args.dict(), - ) + async with async_openai_client: + response = openai_client.chat.completions.create( + messages=messages, + functions=functions, + **self.args.dict(), + ) logger.log_prompt( [ @@ -275,10 +276,11 @@ def generate_response( ) else: - response = openai_client.chat.completions.create( - messages=messages, - **self.args.dict(), - ) + async with async_openai_client: + response = openai_client.chat.completions.create( + messages=messages, + **self.args.dict(), + ) logger.log_prompt( [ { From f90c4bd9680fdd3bcff8c52c9170911a59b23478 Mon Sep 17 00:00:00 2001 From: chenweize1998 Date: Mon, 9 Sep 2024 13:47:39 +0800 Subject: [PATCH 101/101] fix: bug in openai async call. update requirements. #139 #134 #128 --- agentverse/llms/openai.py | 26 +++++++++++++------------- requirements.txt | 2 +- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/agentverse/llms/openai.py b/agentverse/llms/openai.py index 881ec3f7a..11b17f023 100644 --- a/agentverse/llms/openai.py +++ b/agentverse/llms/openai.py @@ -41,7 +41,7 @@ AZURE_API_BASE = os.environ.get("AZURE_OPENAI_API_BASE") VLLM_BASE_URL = os.environ.get("VLLM_BASE_URL") VLLM_API_KEY = os.environ.get("VLLM_API_KEY", "EMPTY") - + if not OPENAI_API_KEY and not AZURE_API_KEY: logger.warn( "OpenAI API key is not set. Please set an environment variable OPENAI_API_KEY or " @@ -49,7 +49,9 @@ ) elif OPENAI_API_KEY: DEFAULT_CLIENT = OpenAI(api_key=OPENAI_API_KEY, base_url=OPENAI_BASE_URL) - DEFAULT_CLIENT_ASYNC = AsyncOpenAI(api_key=OPENAI_API_KEY, base_url=OPENAI_BASE_URL) + DEFAULT_CLIENT_ASYNC = AsyncOpenAI( + api_key=OPENAI_API_KEY, base_url=OPENAI_BASE_URL + ) api_key = OPENAI_API_KEY base_url = OPENAI_BASE_URL elif AZURE_API_KEY: @@ -232,12 +234,11 @@ def generate_response( try: # Execute function call if functions != []: - async with async_openai_client: - response = openai_client.chat.completions.create( - messages=messages, - functions=functions, - **self.args.dict(), - ) + response = openai_client.chat.completions.create( + messages=messages, + functions=functions, + **self.args.dict(), + ) logger.log_prompt( [ @@ -276,11 +277,10 @@ def generate_response( ) else: - async with async_openai_client: - response = openai_client.chat.completions.create( - messages=messages, - **self.args.dict(), - ) + response = openai_client.chat.completions.create( + messages=messages, + **self.args.dict(), + ) logger.log_prompt( [ { diff --git a/requirements.txt b/requirements.txt index 4c4575e64..be80b602c 100644 --- a/requirements.txt +++ b/requirements.txt @@ -3,7 +3,7 @@ fastapi==0.95.1 uvicorn py3langid setuptools-scm -openai==1.5.0 +openai==1.1.0 opencv-python==4.8.0.76 gradio httpx[socks]==0.25.0
    ~ppMV>6>;V;>G&72G>JqNlR9erkF{!SFq4$3{ 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ℑws`6n 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

    XrFgeMyH8ExxG+4LH*^f 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

    =ihHD>UYwKsexc#~Z9c^w+t3%EExt*aQBI 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�-rgD=*j|rW{mQA8#e1)+PJbz*)uzY5 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 literal 0 HcmV?d00001 diff --git a/imgs/docs/simulations.png b/imgs/docs/simulations.png new file mode 100644 index 0000000000000000000000000000000000000000..53a6c75ebaaca2816cc09d5295c1c4e6b4043236 GIT binary patch literal 348214 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 z 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 Ts>^w#?*pR{7+ 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%0Av(%`mQM39C zo)m^)UL*btcAZ86w7CqDHx>b|2KBD@{JmRJ->J%yq;XZ=gitR;CMmRMGYg+tL^8*1 z`4lns^pv+gv-+l)M-?`lH{AWiOe}Mms!-gLN+8Yy!FfSRorf;g6cU2vr|n5jP-z;w zerlzW^Gr6$7kaR;EaxTnzF*Q2`_AT_7p zY5DYDRe|7ff2ji5Tg#M5c+|9YzHnYKzN#rY>{XnondyvAXuvQySn^4 zO=V@hPclJj{zg)5O~CD5g%jr*#t|N;lLs^UbwSfvx+WRzCIFW>VXR}PQIw1z)C6wO$>WE8lf8v z6^%v+$l8hXr%LIMo#R^>&;$~*!e?1f#FdYS=@V4n<#aJK3@-98QAZVR-gbM1+z zU_BiwM72bQ8ynv|mHg_siB@v8-Sgtekyj=)DXk%qTPRb*{wJ1b9a2R7r7JAYn|Ltm zzMg9cit)7CjDxv6IYilcVWj((&WEQ3`KY>huZj8jhPt9fMSg=}-Li0;>=O1-2ak@- zIaei|2{AJAImjE_Ce1}@UfBvEdzBC#r^)|wW3gs~VrPo^qTH~5$+sm;0G(*Hx_bYF3NzRS?%q&_=ZMgDSUW9!4ka(-mslXP>yehx@dJcfJwOiA9FuNwvh3o6d z86r9c$(4BkPHti6mUnG?90xyvn$d2YnmV|WneWdGK4Kr;;FF z{9uX5<(S9;8D%`)9szv}j|v^|m>SOpl0-IhK0XS)0S3bAQ$~?}vMXbrG7Z9IBs^H9 z#>c{FTZ^UbXk)PD!{b@bwFGca`vk4}u}+P4byC{n#mT_X|CBE9Z!6(bo=*F-r$M

    C}1fX5?8+J9E-~UkI!&}_Py`a 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 Iag%`m2MVuS#Q*>R literal 0 HcmV?d00001 diff --git a/imgs/docs/ts_env.png b/imgs/docs/ts_env.png new file mode 100644 index 0000000000000000000000000000000000000000..fdba5a1151771e6b0d1a2078164bfb9afa339676 GIT binary patch literal 290426 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∨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 y|Rp+ja+a1_L-@WU68Ytx70+%inhz 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