From 78a5ec056abf4729d92415d41480529d72e313b7 Mon Sep 17 00:00:00 2001 From: zhangzaibin Date: Thu, 22 May 2025 09:53:57 +0800 Subject: [PATCH 01/32] add interview action --- examples/twitter_interview.py | 93 +++++++++++++++++++++++++++++++++++ oasis/environment/env.py | 6 +++ oasis/social_agent/agent.py | 40 +++++++++++++++ 3 files changed, 139 insertions(+) create mode 100644 examples/twitter_interview.py diff --git a/examples/twitter_interview.py b/examples/twitter_interview.py new file mode 100644 index 00000000..dbfc4c6e --- /dev/null +++ b/examples/twitter_interview.py @@ -0,0 +1,93 @@ +# =========== Copyright 2023 @ CAMEL-AI.org. All Rights Reserved. =========== +# Licensed under the Apache License, Version 2.0 (the “License”); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an “AS IS” BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# =========== Copyright 2023 @ CAMEL-AI.org. All Rights Reserved. =========== +import asyncio +import os + +from camel.models import ModelFactory +from camel.types import ModelPlatformType, ModelType + +import oasis +from oasis import ActionType, EnvAction, SingleAction + + +async def main(): + openai_model = ModelFactory.create( + model_platform=ModelPlatformType.OPENAI, + model_type=ModelType.GPT_4O_MINI, + ) + + # Define the available actions for the agents + available_actions = [ + ActionType.CREATE_POST, + ActionType.LIKE_POST, + ActionType.REPOST, + ActionType.FOLLOW, + ActionType.DO_NOTHING, + ActionType.QUOTE_POST, + ] + + # Define the path to the database + db_path = "./data/twitter_simulation.db" + + # Delete the old database + if os.path.exists(db_path): + os.remove(db_path) + + # Make the environment + env = oasis.make( + platform=oasis.DefaultPlatformType.TWITTER, + database_path=db_path, + agent_profile_path=("data/twitter_dataset/anonymous_topic_200_1h/" + "False_Business_0.csv"), + agent_models=openai_model, + available_actions=available_actions, + ) + + # Run the environment + await env.reset() + + action_1 = SingleAction(agent_id=0, + action=ActionType.CREATE_POST, + args={"content": "Earth is flat."}) + env_actions_1 = EnvAction( + # Activate 5 agents with id 1, 3, 5, 7, 9 + activate_agents=[1, 3, 5, 7, 9], + intervention=[action_1]) + + action_2 = SingleAction(agent_id=1, + action=ActionType.CREATE_POST, + args={"content": "Earth is not flat."}) + env_actions_2 = EnvAction(activate_agents=[2, 4, 6, 8, 10], + intervention=[action_2]) + + empty_action = EnvAction() # Means activate all agents and no intervention + + all_env_actions = [ + env_actions_1, + env_actions_2, + empty_action, + ] + + # Simulate 3 timesteps + for i in range(3): + env_actions = all_env_actions[i] + # Perform the actions + await env.step(env_actions) + + # Close the environment + await env.close() + + +if __name__ == "__main__": + asyncio.run(main()) diff --git a/oasis/environment/env.py b/oasis/environment/env.py index 53bca419..fdbec27e 100644 --- a/oasis/environment/env.py +++ b/oasis/environment/env.py @@ -164,6 +164,12 @@ async def _perform_llm_action(self, agent): async with self.llm_semaphore: return await agent.perform_action_by_llm() + async def _perform_interview_action(self, agent, interview_prompt: str): + r"""Send the request to the llm model and execute the interview. + """ + async with self.llm_semaphore: + return await agent.perform_interview(interview_prompt) + async def step(self, action: EnvAction) -> None: r"""Perform some control actions, update the recommendation system, and let some llm agents perform actions. diff --git a/oasis/social_agent/agent.py b/oasis/social_agent/agent.py index e7d5d15e..acfbc03a 100644 --- a/oasis/social_agent/agent.py +++ b/oasis/social_agent/agent.py @@ -180,6 +180,46 @@ async def perform_test(self): "content": content } + + async def perform_interview(self, interview_prompt: str): + """ + perform interview with the agent. + """ + # user conduct test to agent + _ = BaseMessage.make_user_message(role_name="User", + content=("You are a twitter user.")) + # Test memory should not be writed to memory. + # self.memory.write_record(MemoryRecord(user_msg, + # OpenAIBackendRole.USER)) + + openai_messages, num_tokens = self.memory.get_context() + + openai_messages = ([{ + "role": + self.system_message.role_name, + "content": + self.system_message.content.split("# RESPONSE FORMAT")[0], + }] + openai_messages + [{ + "role": "user", + "content": self.test_prompt + }]) + + agent_log.info(f"Agent {self.social_agent_id}: {openai_messages}") + # NOTE: this is a temporary solution. + # Camel can not stop updating the agents' memory after stop and astep + # now. + response = self._get_model_response(openai_messages=openai_messages, + num_tokens=num_tokens) + content = response.output_messages[0].content + agent_log.info( + f"Agent {self.social_agent_id} receive response: {content}") + return { + "user_id": self.social_agent_id, + "prompt": openai_messages, + "content": content + } + + async def perform_action_by_hci(self) -> Any: print("Please choose one function to perform:") function_list = self.env.action.get_openai_function_list() From b96dca05e3e14c19acb488a557fe16a2134869fd Mon Sep 17 00:00:00 2001 From: zhangzaibin Date: Thu, 22 May 2025 10:25:11 +0800 Subject: [PATCH 02/32] interview actiontype --- examples/twitter_interview.py | 67 +++++++++++++++++++++++++++++---- oasis/environment/env.py | 37 ++++++++++++++++-- oasis/social_platform/typing.py | 1 + 3 files changed, 93 insertions(+), 12 deletions(-) diff --git a/examples/twitter_interview.py b/examples/twitter_interview.py index dbfc4c6e..585e9dec 100644 --- a/examples/twitter_interview.py +++ b/examples/twitter_interview.py @@ -1,18 +1,20 @@ # =========== Copyright 2023 @ CAMEL-AI.org. All Rights Reserved. =========== -# Licensed under the Apache License, Version 2.0 (the “License”); +# Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an “AS IS” BASIS, +# distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # =========== Copyright 2023 @ CAMEL-AI.org. All Rights Reserved. =========== import asyncio import os +import sqlite3 +import json from camel.models import ModelFactory from camel.types import ModelPlatformType, ModelType @@ -35,6 +37,7 @@ async def main(): ActionType.FOLLOW, ActionType.DO_NOTHING, ActionType.QUOTE_POST, + ActionType.INTERVIEW, # Add the INTERVIEW action type ] # Define the path to the database @@ -57,6 +60,7 @@ async def main(): # Run the environment await env.reset() + # First timestep: Agent 0 creates a post action_1 = SingleAction(agent_id=0, action=ActionType.CREATE_POST, args={"content": "Earth is flat."}) @@ -65,28 +69,75 @@ async def main(): activate_agents=[1, 3, 5, 7, 9], intervention=[action_1]) + # Second timestep: Agent 1 creates a post, and we interview Agent 0 action_2 = SingleAction(agent_id=1, - action=ActionType.CREATE_POST, - args={"content": "Earth is not flat."}) - env_actions_2 = EnvAction(activate_agents=[2, 4, 6, 8, 10], - intervention=[action_2]) + action=ActionType.CREATE_POST, + args={"content": "Earth is not flat."}) + + # Create an interview action to ask Agent 0 about their views + interview_action = SingleAction( + agent_id=0, + action=ActionType.INTERVIEW, + args={"prompt": "What do you think about the shape of the Earth? Please explain your reasoning."} + ) + + env_actions_2 = EnvAction( + activate_agents=[2, 4, 6, 8, 10], + intervention=[action_2, interview_action] + ) - empty_action = EnvAction() # Means activate all agents and no intervention + # Third timestep: Interview multiple agents + interview_actions = [ + SingleAction( + agent_id=1, + action=ActionType.INTERVIEW, + args={"prompt": "Why do you believe the Earth is not flat?"} + ), + SingleAction( + agent_id=2, + action=ActionType.INTERVIEW, + args={"prompt": "What are your thoughts on the debate about Earth's shape?"} + ), + ] + + env_actions_3 = EnvAction( + activate_agents=[3, 5, 7, 9], + intervention=interview_actions + ) all_env_actions = [ env_actions_1, env_actions_2, - empty_action, + env_actions_3, ] # Simulate 3 timesteps for i in range(3): + print(f"\n=== Timestep {i+1} ===") env_actions = all_env_actions[i] # Perform the actions await env.step(env_actions) # Close the environment await env.close() + + # Display the interview results from the database + print("\n=== Interview Results ===") + conn = sqlite3.connect(db_path) + cursor = conn.cursor() + cursor.execute(""" + SELECT user_id, info, created_at + FROM trace + WHERE action = ? + """, (ActionType.INTERVIEW.value,)) + + for user_id, info_json, timestamp in cursor.fetchall(): + info = json.loads(info_json) + print(f"\nAgent {user_id} (Timestep {timestamp}):") + print(f"Prompt: {info.get('prompt', 'N/A')}") + print(f"Response: {info.get('response', 'N/A')}") + + conn.close() if __name__ == "__main__": diff --git a/oasis/environment/env.py b/oasis/environment/env.py index fdbec27e..7d76325c 100644 --- a/oasis/environment/env.py +++ b/oasis/environment/env.py @@ -1,12 +1,12 @@ # =========== Copyright 2023 @ CAMEL-AI.org. All Rights Reserved. =========== -# Licensed under the Apache License, Version 2.0 (the “License”); +# Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an “AS IS” BASIS, +# distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. @@ -155,8 +155,37 @@ async def _perform_control_action(self, action: SingleAction) -> None: action(SingleAction): The action to perform. """ control_agent = self.agent_graph.get_agent(action.agent_id) - await control_agent.perform_action_by_data(action.action, - **action.args) + + # Check if this is an interview action + if action.action == ActionType.INTERVIEW: + # Extract interview prompt from args + interview_prompt = action.args.get("prompt", "") + if not interview_prompt: + env_log.warning(f"Empty interview prompt for agent {action.agent_id}") + return + + # Perform the interview + result = await self._perform_interview_action(control_agent, interview_prompt) + + # Store interview result in the database using the platform's record_trace method + # Convert the result to a dictionary suitable for JSON serialization + interview_info = { + "prompt": interview_prompt, + "response": result.get("content", "") + } + + # Get current timestamp based on the platform type + self.platform.pl_utils._record_trace( + user_id=action.agent_id, + action_type=ActionType.INTERVIEW.value, + action_info=interview_info + ) + + env_log.info(f"Stored interview result for agent {action.agent_id}") + return + + # For regular actions + await control_agent.perform_action_by_data(action.action, **action.args) async def _perform_llm_action(self, agent): r"""Send the request to the llm model and execute the action. diff --git a/oasis/social_platform/typing.py b/oasis/social_platform/typing.py index cb68be08..62b0c859 100644 --- a/oasis/social_platform/typing.py +++ b/oasis/social_platform/typing.py @@ -40,6 +40,7 @@ class ActionType(Enum): UNDO_DISLIKE_COMMENT = "undo_dislike_comment" DO_NOTHING = "do_nothing" PURCHASE_PRODUCT = "purchase_product" + INTERVIEW = "interview" class RecsysType(Enum): From 3d29467b85038074baa061afccbd4af3822fdb46 Mon Sep 17 00:00:00 2001 From: zhangzaibin Date: Thu, 22 May 2025 10:31:13 +0800 Subject: [PATCH 03/32] fix warning --- oasis/environment/env.py | 74 ++++++++++++++++++++++-------- oasis/social_agent/agent.py | 2 +- oasis/social_agent/agent_action.py | 26 ++++++++++- oasis/social_platform/platform.py | 29 +++++++++++- 4 files changed, 107 insertions(+), 24 deletions(-) diff --git a/oasis/environment/env.py b/oasis/environment/env.py index 7d76325c..7803ad0c 100644 --- a/oasis/environment/env.py +++ b/oasis/environment/env.py @@ -156,7 +156,10 @@ async def _perform_control_action(self, action: SingleAction) -> None: """ control_agent = self.agent_graph.get_agent(action.agent_id) - # Check if this is an interview action + # For regular actions + await control_agent.perform_action_by_data(action.action, **action.args) + + # If this was an interview action, perform the actual interview and update the database if action.action == ActionType.INTERVIEW: # Extract interview prompt from args interview_prompt = action.args.get("prompt", "") @@ -164,28 +167,61 @@ async def _perform_control_action(self, action: SingleAction) -> None: env_log.warning(f"Empty interview prompt for agent {action.agent_id}") return - # Perform the interview + # Perform the interview to get actual response result = await self._perform_interview_action(control_agent, interview_prompt) - # Store interview result in the database using the platform's record_trace method - # Convert the result to a dictionary suitable for JSON serialization - interview_info = { - "prompt": interview_prompt, - "response": result.get("content", "") - } - - # Get current timestamp based on the platform type - self.platform.pl_utils._record_trace( - user_id=action.agent_id, - action_type=ActionType.INTERVIEW.value, - action_info=interview_info - ) + # Get the response content + response = result.get("content", "") - env_log.info(f"Stored interview result for agent {action.agent_id}") + try: + # Update the database with the actual response + # First, fetch the latest trace record for this interview + query = """SELECT rowid, info FROM trace + WHERE user_id = ? AND action = ? + ORDER BY created_at DESC LIMIT 1""" + self.platform.pl_utils._execute_db_command(query, (action.agent_id, ActionType.INTERVIEW.value)) + last_interview_data = self.platform.db_cursor.fetchone() + + if last_interview_data: + rowid, info_json = last_interview_data + import json + info = json.loads(info_json) + info["response"] = response + + # Update the trace record with the actual response + update_query = "UPDATE trace SET info = ? WHERE rowid = ?" + self.platform.pl_utils._execute_db_command( + update_query, + (json.dumps(info), rowid), + commit=True + ) + + env_log.info(f"Updated interview result for agent {action.agent_id}") + else: + # If we couldn't find the trace record, create a new one with the response + interview_info = { + "prompt": interview_prompt, + "response": response + } + + if self.platform.recsys_type == RecsysType.REDDIT: + current_time = self.platform.sandbox_clock.time_transfer( + datetime.now(), self.platform.start_time) + else: + current_time = self.platform.sandbox_clock.get_time_step() + + self.platform.pl_utils._record_trace( + user_id=action.agent_id, + action_type=ActionType.INTERVIEW.value, + action_info=interview_info, + current_time=current_time + ) + + env_log.info(f"Created new interview record for agent {action.agent_id}") + except Exception as e: + env_log.error(f"Error updating interview result: {str(e)}") + return - - # For regular actions - await control_agent.perform_action_by_data(action.action, **action.args) async def _perform_llm_action(self, agent): r"""Send the request to the llm model and execute the action. diff --git a/oasis/social_agent/agent.py b/oasis/social_agent/agent.py index acfbc03a..6287c554 100644 --- a/oasis/social_agent/agent.py +++ b/oasis/social_agent/agent.py @@ -201,7 +201,7 @@ async def perform_interview(self, interview_prompt: str): self.system_message.content.split("# RESPONSE FORMAT")[0], }] + openai_messages + [{ "role": "user", - "content": self.test_prompt + "content": interview_prompt }]) agent_log.info(f"Agent {self.social_agent_id}: {openai_messages}") diff --git a/oasis/social_agent/agent_action.py b/oasis/social_agent/agent_action.py index e9fcb1e6..6430efa2 100644 --- a/oasis/social_agent/agent_action.py +++ b/oasis/social_agent/agent_action.py @@ -1,12 +1,12 @@ # =========== Copyright 2023 @ CAMEL-AI.org. All Rights Reserved. =========== -# Licensed under the Apache License, Version 2.0 (the “License”); +# Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an “AS IS” BASIS, +# distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. @@ -50,6 +50,7 @@ def get_openai_function_list(self) -> list[FunctionTool]: self.mute, self.unmute, self.purchase_product, + self.interview, ] ] @@ -642,3 +643,24 @@ async def purchase_product(self, product_name: str, purchase_num: int): purchase_message = (product_name, purchase_num) return await self.perform_action(purchase_message, ActionType.PURCHASE_PRODUCT.value) + + async def interview(self, prompt: str): + r"""Interview an agent with the given prompt. + + This method invokes an asynchronous action to interview an agent with a + specific prompt question. Upon successful execution, it returns a dictionary + containing the agent's response. + + Args: + prompt (str): The interview question or prompt to ask the agent. + + Returns: + dict: A dictionary containing the response from the agent. + + Example of a successful return: + { + "success": True, + "response": "This is the agent's response to the interview question." + } + """ + return await self.perform_action(prompt, ActionType.INTERVIEW.value) diff --git a/oasis/social_platform/platform.py b/oasis/social_platform/platform.py index 9336fc6e..a2aba3ff 100644 --- a/oasis/social_platform/platform.py +++ b/oasis/social_platform/platform.py @@ -1,12 +1,12 @@ # =========== Copyright 2023 @ CAMEL-AI.org. All Rights Reserved. =========== -# Licensed under the Apache License, Version 2.0 (the “License”); +# Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an “AS IS” BASIS, +# distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. @@ -1330,3 +1330,28 @@ async def do_nothing(self, agent_id: int): return {"success": True} except Exception as e: return {"success": False, "error": str(e)} + + async def interview(self, agent_id: int, prompt: str): + """Interview an agent with the given prompt. + + Args: + agent_id (int): The ID of the agent being interviewed. + prompt (str): The interview question or prompt. + + Returns: + dict: A dictionary with success status. + """ + if self.recsys_type == RecsysType.REDDIT: + current_time = self.sandbox_clock.time_transfer( + datetime.now(), self.start_time) + else: + current_time = self.sandbox_clock.get_time_step() + try: + user_id = agent_id + + action_info = {"prompt": prompt} + self.pl_utils._record_trace(user_id, ActionType.INTERVIEW.value, + action_info, current_time) + return {"success": True} + except Exception as e: + return {"success": False, "error": str(e)} From 66acd8ef5c3dcf55b290295bebe8991790dbf6db Mon Sep 17 00:00:00 2001 From: zhangzaibin Date: Thu, 22 May 2025 10:34:00 +0800 Subject: [PATCH 04/32] fix --- oasis/social_agent/agent.py | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/oasis/social_agent/agent.py b/oasis/social_agent/agent.py index 6287c554..aa1c91e0 100644 --- a/oasis/social_agent/agent.py +++ b/oasis/social_agent/agent.py @@ -143,7 +143,7 @@ async def perform_action_by_llm(self): async def perform_test(self): """ - doing test for all agents. + doing group polarization test for all agents. TODO: rewrite the function according to the ChatAgent. """ # user conduct test to agent @@ -183,7 +183,19 @@ async def perform_test(self): async def perform_interview(self, interview_prompt: str): """ - perform interview with the agent. + Perform an interview with the agent. + + This method allows an external entity to ask a specific question to the agent + and get a response based on the agent's persona and memory context. The interview + doesn't affect the agent's memory and is used primarily for evaluation or + extracting the agent's opinions on specific topics. + + Args: + interview_prompt (str): The question or prompt to ask the agent during the interview. + + Returns: + dict: A dictionary containing the agent's user_id, the full prompt context, + and the agent's response content. """ # user conduct test to agent _ = BaseMessage.make_user_message(role_name="User", From d73badefa91ec042deb0978ad71513f2754a3791 Mon Sep 17 00:00:00 2001 From: zhangzaibin Date: Thu, 22 May 2025 10:34:35 +0800 Subject: [PATCH 05/32] add todo --- oasis/social_agent/agent.py | 1 + 1 file changed, 1 insertion(+) diff --git a/oasis/social_agent/agent.py b/oasis/social_agent/agent.py index aa1c91e0..1dad1ec1 100644 --- a/oasis/social_agent/agent.py +++ b/oasis/social_agent/agent.py @@ -145,6 +145,7 @@ async def perform_test(self): """ doing group polarization test for all agents. TODO: rewrite the function according to the ChatAgent. + TODO: unify the test and interview function. """ # user conduct test to agent _ = BaseMessage.make_user_message(role_name="User", From 705fcb0e33cae58b093e48bcf426463b1b91c503 Mon Sep 17 00:00:00 2001 From: zhangzaibin Date: Thu, 22 May 2025 10:44:34 +0800 Subject: [PATCH 06/32] refactor interview action --- examples/twitter_interview.py | 1 + oasis/environment/env.py | 76 +++++++++++------------------- oasis/social_agent/agent_action.py | 6 +-- oasis/social_platform/platform.py | 60 +++++++++++++++++++++-- 4 files changed, 88 insertions(+), 55 deletions(-) diff --git a/examples/twitter_interview.py b/examples/twitter_interview.py index 585e9dec..79a04b98 100644 --- a/examples/twitter_interview.py +++ b/examples/twitter_interview.py @@ -135,6 +135,7 @@ async def main(): info = json.loads(info_json) print(f"\nAgent {user_id} (Timestep {timestamp}):") print(f"Prompt: {info.get('prompt', 'N/A')}") + print(f"Interview ID: {info.get('interview_id', 'N/A')}") print(f"Response: {info.get('response', 'N/A')}") conn.close() diff --git a/oasis/environment/env.py b/oasis/environment/env.py index 7803ad0c..f77d12b9 100644 --- a/oasis/environment/env.py +++ b/oasis/environment/env.py @@ -156,71 +156,49 @@ async def _perform_control_action(self, action: SingleAction) -> None: """ control_agent = self.agent_graph.get_agent(action.agent_id) - # For regular actions - await control_agent.perform_action_by_data(action.action, **action.args) + # First, perform the regular action by sending it to the platform + action_result = await control_agent.perform_action_by_data(action.action, **action.args) - # If this was an interview action, perform the actual interview and update the database + # If this was an interview action, perform the actual interview and record the response if action.action == ActionType.INTERVIEW: # Extract interview prompt from args interview_prompt = action.args.get("prompt", "") if not interview_prompt: env_log.warning(f"Empty interview prompt for agent {action.agent_id}") return - - # Perform the interview to get actual response + + # Check if the platform action was successful + if not action_result.get("success", False): + env_log.warning(f"Failed to record interview request: {action_result.get('error', 'Unknown error')}") + return + + # Get the interview_id from the result + interview_id = action_result.get("interview_id") + if not interview_id: + env_log.warning(f"No interview_id returned from platform") + return + + # Perform the interview to get the actual response result = await self._perform_interview_action(control_agent, interview_prompt) # Get the response content response = result.get("content", "") try: - # Update the database with the actual response - # First, fetch the latest trace record for this interview - query = """SELECT rowid, info FROM trace - WHERE user_id = ? AND action = ? - ORDER BY created_at DESC LIMIT 1""" - self.platform.pl_utils._execute_db_command(query, (action.agent_id, ActionType.INTERVIEW.value)) - last_interview_data = self.platform.db_cursor.fetchone() + # Record the response using the platform's method + response_result = await self.platform.record_interview_response( + agent_id=action.agent_id, + interview_id=interview_id, + response=response + ) - if last_interview_data: - rowid, info_json = last_interview_data - import json - info = json.loads(info_json) - info["response"] = response - - # Update the trace record with the actual response - update_query = "UPDATE trace SET info = ? WHERE rowid = ?" - self.platform.pl_utils._execute_db_command( - update_query, - (json.dumps(info), rowid), - commit=True - ) - - env_log.info(f"Updated interview result for agent {action.agent_id}") + if response_result.get("success", False): + env_log.info(f"Successfully recorded interview response for agent {action.agent_id}") else: - # If we couldn't find the trace record, create a new one with the response - interview_info = { - "prompt": interview_prompt, - "response": response - } - - if self.platform.recsys_type == RecsysType.REDDIT: - current_time = self.platform.sandbox_clock.time_transfer( - datetime.now(), self.platform.start_time) - else: - current_time = self.platform.sandbox_clock.get_time_step() - - self.platform.pl_utils._record_trace( - user_id=action.agent_id, - action_type=ActionType.INTERVIEW.value, - action_info=interview_info, - current_time=current_time - ) - - env_log.info(f"Created new interview record for agent {action.agent_id}") + env_log.warning(f"Failed to record interview response: {response_result.get('error', 'Unknown error')}") except Exception as e: - env_log.error(f"Error updating interview result: {str(e)}") - + env_log.error(f"Error recording interview response: {str(e)}") + return async def _perform_llm_action(self, agent): diff --git a/oasis/social_agent/agent_action.py b/oasis/social_agent/agent_action.py index 6430efa2..66d2a40d 100644 --- a/oasis/social_agent/agent_action.py +++ b/oasis/social_agent/agent_action.py @@ -649,18 +649,18 @@ async def interview(self, prompt: str): This method invokes an asynchronous action to interview an agent with a specific prompt question. Upon successful execution, it returns a dictionary - containing the agent's response. + containing a success status and an interview_id for tracking. Args: prompt (str): The interview question or prompt to ask the agent. Returns: - dict: A dictionary containing the response from the agent. + dict: A dictionary containing success status and interview tracking information. Example of a successful return: { "success": True, - "response": "This is the agent's response to the interview question." + "interview_id": "1621234567_0" # Timestamp_UserID format } """ return await self.perform_action(prompt, ActionType.INTERVIEW.value) diff --git a/oasis/social_platform/platform.py b/oasis/social_platform/platform.py index a2aba3ff..11d8d628 100644 --- a/oasis/social_platform/platform.py +++ b/oasis/social_platform/platform.py @@ -1339,7 +1339,7 @@ async def interview(self, agent_id: int, prompt: str): prompt (str): The interview question or prompt. Returns: - dict: A dictionary with success status. + dict: A dictionary with success status and an interview_id for tracking. """ if self.recsys_type == RecsysType.REDDIT: current_time = self.sandbox_clock.time_transfer( @@ -1349,9 +1349,63 @@ async def interview(self, agent_id: int, prompt: str): try: user_id = agent_id - action_info = {"prompt": prompt} + # Create a unique interview ID (using timestamp + user_id) + interview_id = f"{current_time}_{user_id}" + + # Record the interview request in the trace table + action_info = { + "prompt": prompt, + "interview_id": interview_id + } self.pl_utils._record_trace(user_id, ActionType.INTERVIEW.value, action_info, current_time) - return {"success": True} + + return { + "success": True, + "interview_id": interview_id + } + except Exception as e: + return {"success": False, "error": str(e)} + + async def record_interview_response(self, agent_id: int, interview_id: str, response: str): + """Record the response for an interview. + + Args: + agent_id (int): The ID of the agent who was interviewed. + interview_id (str): The unique ID of the interview. + response (str): The agent's response to the interview. + + Returns: + dict: A dictionary with success status. + """ + try: + # First, fetch the trace record for this interview + query = """SELECT rowid, info FROM trace + WHERE user_id = ? AND action = ? + ORDER BY created_at DESC LIMIT 1""" + self.pl_utils._execute_db_command(query, (agent_id, ActionType.INTERVIEW.value)) + last_interview_data = self.db_cursor.fetchone() + + if last_interview_data: + rowid, info_json = last_interview_data + import json + info = json.loads(info_json) + + # Verify this is the correct interview record + if info.get("interview_id") == interview_id: + # Update with the response + info["response"] = response + + # Update the trace record + update_query = "UPDATE trace SET info = ? WHERE rowid = ?" + self.pl_utils._execute_db_command( + update_query, + (json.dumps(info), rowid), + commit=True + ) + + return {"success": True} + + return {"success": False, "error": "Interview record not found"} except Exception as e: return {"success": False, "error": str(e)} From 1c9a38178b5b1c3bbc43e430b4c4a99a79cfbf74 Mon Sep 17 00:00:00 2001 From: zhangzaibin Date: Thu, 22 May 2025 10:52:12 +0800 Subject: [PATCH 07/32] add TODO --- oasis/social_platform/platform.py | 1 + 1 file changed, 1 insertion(+) diff --git a/oasis/social_platform/platform.py b/oasis/social_platform/platform.py index 11d8d628..92453cec 100644 --- a/oasis/social_platform/platform.py +++ b/oasis/social_platform/platform.py @@ -1377,6 +1377,7 @@ async def record_interview_response(self, agent_id: int, interview_id: str, resp Returns: dict: A dictionary with success status. + TODO: maybe move this function to utils """ try: # First, fetch the trace record for this interview From 0be53d0d050868416f92dc230399992f8294eb29 Mon Sep 17 00:00:00 2001 From: zhangzaibin Date: Thu, 22 May 2025 10:53:27 +0800 Subject: [PATCH 08/32] fix --- examples/twitter_interview.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/twitter_interview.py b/examples/twitter_interview.py index 79a04b98..9114f17b 100644 --- a/examples/twitter_interview.py +++ b/examples/twitter_interview.py @@ -121,7 +121,7 @@ async def main(): # Close the environment await env.close() - # Display the interview results from the database + # visualize the interview results print("\n=== Interview Results ===") conn = sqlite3.connect(db_path) cursor = conn.cursor() From c6bacb90d13bd8547536b984f082db0015a75cbb Mon Sep 17 00:00:00 2001 From: zhangzaibin Date: Thu, 22 May 2025 10:54:42 +0800 Subject: [PATCH 09/32] add explaination --- examples/twitter_interview.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/examples/twitter_interview.py b/examples/twitter_interview.py index 9114f17b..b7045e93 100644 --- a/examples/twitter_interview.py +++ b/examples/twitter_interview.py @@ -125,6 +125,9 @@ async def main(): print("\n=== Interview Results ===") conn = sqlite3.connect(db_path) cursor = conn.cursor() + # Here we query all interview records from the database + # We use ActionType.INTERVIEW.value as the query condition to get all interview records + # Each record contains user ID, interview information (in JSON format), and creation timestamp cursor.execute(""" SELECT user_id, info, created_at FROM trace From 3f810c125be816043adefa10e7dcf88e9fc7c1f5 Mon Sep 17 00:00:00 2001 From: zhangzaibin Date: Thu, 22 May 2025 10:55:36 +0800 Subject: [PATCH 10/32] add explaination --- examples/twitter_interview.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/examples/twitter_interview.py b/examples/twitter_interview.py index b7045e93..661669bd 100644 --- a/examples/twitter_interview.py +++ b/examples/twitter_interview.py @@ -134,6 +134,11 @@ async def main(): WHERE action = ? """, (ActionType.INTERVIEW.value,)) + # This query retrieves all interview records from the trace table + # - user_id: the ID of the agent who was interviewed + # - info: JSON string containing interview details (prompt, response, etc.) + # - created_at: timestamp when the interview was conducted + # We'll parse this data below to display the interview results for user_id, info_json, timestamp in cursor.fetchall(): info = json.loads(info_json) print(f"\nAgent {user_id} (Timestep {timestamp}):") From 86f99dd40bed47e880b8f0ad303a0fd2defc08a0 Mon Sep 17 00:00:00 2001 From: zhangzaibin Date: Thu, 22 May 2025 10:57:16 +0800 Subject: [PATCH 11/32] add interview doc --- docs/cookbooks/twitter_interview.mdx | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 docs/cookbooks/twitter_interview.mdx diff --git a/docs/cookbooks/twitter_interview.mdx b/docs/cookbooks/twitter_interview.mdx new file mode 100644 index 00000000..09bd26c5 --- /dev/null +++ b/docs/cookbooks/twitter_interview.mdx @@ -0,0 +1,6 @@ +--- +title: 'Twitter Interview' +description: 'Comprehensive guide to all available actions in the OASIS simulation environment' +--- + +# Twitter Interview \ No newline at end of file From c4f724d8c576438cb334db4a30dbaa36c4bd70b0 Mon Sep 17 00:00:00 2001 From: zhangzaibin Date: Thu, 22 May 2025 13:23:05 +0800 Subject: [PATCH 12/32] finish doc --- docs/cookbooks/twitter_interview.mdx | 162 ++++++++++++++++++++++++++- 1 file changed, 161 insertions(+), 1 deletion(-) diff --git a/docs/cookbooks/twitter_interview.mdx b/docs/cookbooks/twitter_interview.mdx index 09bd26c5..3dc64489 100644 --- a/docs/cookbooks/twitter_interview.mdx +++ b/docs/cookbooks/twitter_interview.mdx @@ -3,4 +3,164 @@ title: 'Twitter Interview' description: 'Comprehensive guide to all available actions in the OASIS simulation environment' --- -# Twitter Interview \ No newline at end of file +# Twitter Interview + + +```python + +# =========== Copyright 2023 @ CAMEL-AI.org. All Rights Reserved. =========== +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# =========== Copyright 2023 @ CAMEL-AI.org. All Rights Reserved. =========== +import asyncio +import os +import sqlite3 +import json + +from camel.models import ModelFactory +from camel.types import ModelPlatformType, ModelType + +import oasis +from oasis import ActionType, EnvAction, SingleAction + + +async def main(): + openai_model = ModelFactory.create( + model_platform=ModelPlatformType.OPENAI, + model_type=ModelType.GPT_4O_MINI, + ) + + # Define the available actions for the agents + available_actions = [ + ActionType.CREATE_POST, + ActionType.LIKE_POST, + ActionType.REPOST, + ActionType.FOLLOW, + ActionType.DO_NOTHING, + ActionType.QUOTE_POST, + ActionType.INTERVIEW, # Add the INTERVIEW action type + ] + + # Define the path to the database + db_path = "./data/twitter_simulation.db" + + # Delete the old database + if os.path.exists(db_path): + os.remove(db_path) + + # Make the environment + env = oasis.make( + platform=oasis.DefaultPlatformType.TWITTER, + database_path=db_path, + agent_profile_path=("data/twitter_dataset/anonymous_topic_200_1h/" + "False_Business_0.csv"), + agent_models=openai_model, + available_actions=available_actions, + ) + + # Run the environment + await env.reset() + + # First timestep: Agent 0 creates a post + action_1 = SingleAction(agent_id=0, + action=ActionType.CREATE_POST, + args={"content": "Earth is flat."}) + env_actions_1 = EnvAction( + # Activate 5 agents with id 1, 3, 5, 7, 9 + activate_agents=[1, 3, 5, 7, 9], + intervention=[action_1]) + + # Second timestep: Agent 1 creates a post, and we interview Agent 0 + action_2 = SingleAction(agent_id=1, + action=ActionType.CREATE_POST, + args={"content": "Earth is not flat."}) + + # Create an interview action to ask Agent 0 about their views + interview_action = SingleAction( + agent_id=0, + action=ActionType.INTERVIEW, + args={"prompt": "What do you think about the shape of the Earth? Please explain your reasoning."} + ) + + env_actions_2 = EnvAction( + activate_agents=[2, 4, 6, 8, 10], + intervention=[action_2, interview_action] + ) + + # Third timestep: Interview multiple agents + interview_actions = [ + SingleAction( + agent_id=1, + action=ActionType.INTERVIEW, + args={"prompt": "Why do you believe the Earth is not flat?"} + ), + SingleAction( + agent_id=2, + action=ActionType.INTERVIEW, + args={"prompt": "What are your thoughts on the debate about Earth's shape?"} + ), + ] + + env_actions_3 = EnvAction( + activate_agents=[3, 5, 7, 9], + intervention=interview_actions + ) + + all_env_actions = [ + env_actions_1, + env_actions_2, + env_actions_3, + ] + + # Simulate 3 timesteps + for i in range(3): + print(f"\n=== Timestep {i+1} ===") + env_actions = all_env_actions[i] + # Perform the actions + await env.step(env_actions) + + # Close the environment + await env.close() + + # visualize the interview results + print("\n=== Interview Results ===") + conn = sqlite3.connect(db_path) + cursor = conn.cursor() + # Here we query all interview records from the database + # We use ActionType.INTERVIEW.value as the query condition to get all interview records + # Each record contains user ID, interview information (in JSON format), and creation timestamp + cursor.execute(""" + SELECT user_id, info, created_at + FROM trace + WHERE action = ? + """, (ActionType.INTERVIEW.value,)) + + # This query retrieves all interview records from the trace table + # - user_id: the ID of the agent who was interviewed + # - info: JSON string containing interview details (prompt, response, etc.) + # - created_at: timestamp when the interview was conducted + # We'll parse this data below to display the interview results + for user_id, info_json, timestamp in cursor.fetchall(): + info = json.loads(info_json) + print(f"\nAgent {user_id} (Timestep {timestamp}):") + print(f"Prompt: {info.get('prompt', 'N/A')}") + print(f"Interview ID: {info.get('interview_id', 'N/A')}") + print(f"Response: {info.get('response', 'N/A')}") + + conn.close() + + +if __name__ == "__main__": + asyncio.run(main()) + + +``` \ No newline at end of file From 23be6f4f6e825b5251af32073f7e312ad4c2bde0 Mon Sep 17 00:00:00 2001 From: zhangzaibin Date: Fri, 23 May 2025 09:18:33 +0800 Subject: [PATCH 13/32] rafactor env --- oasis/environment/env.py | 123 ++++++++++++++++++++------------------- 1 file changed, 63 insertions(+), 60 deletions(-) diff --git a/oasis/environment/env.py b/oasis/environment/env.py index 9bf44494..7e42fd08 100644 --- a/oasis/environment/env.py +++ b/oasis/environment/env.py @@ -121,59 +121,6 @@ async def reset(self) -> None: self.agent_graph = await generate_custom_agents( channel=self.channel, agent_graph=self.agent_graph) - async def _perform_control_action(self, action: SingleAction) -> None: - r"""Perform a control action. - - Args: - action(SingleAction): The action to perform. - """ - control_agent = self.agent_graph.get_agent(action.agent_id) - - # First, perform the regular action by sending it to the platform - action_result = await control_agent.perform_action_by_data(action.action, **action.args) - - # If this was an interview action, perform the actual interview and record the response - if action.action == ActionType.INTERVIEW: - # Extract interview prompt from args - interview_prompt = action.args.get("prompt", "") - if not interview_prompt: - env_log.warning(f"Empty interview prompt for agent {action.agent_id}") - return - - # Check if the platform action was successful - if not action_result.get("success", False): - env_log.warning(f"Failed to record interview request: {action_result.get('error', 'Unknown error')}") - return - - # Get the interview_id from the result - interview_id = action_result.get("interview_id") - if not interview_id: - env_log.warning(f"No interview_id returned from platform") - return - - # Perform the interview to get the actual response - result = await self._perform_interview_action(control_agent, interview_prompt) - - # Get the response content - response = result.get("content", "") - - try: - # Record the response using the platform's method - response_result = await self.platform.record_interview_response( - agent_id=action.agent_id, - interview_id=interview_id, - response=response - ) - - if response_result.get("success", False): - env_log.info(f"Successfully recorded interview response for agent {action.agent_id}") - else: - env_log.warning(f"Failed to record interview response: {response_result.get('error', 'Unknown error')}") - except Exception as e: - env_log.error(f"Error recording interview response: {str(e)}") - - return - async def _perform_llm_action(self, agent): r"""Send the request to the llm model and execute the action. """ @@ -211,17 +158,25 @@ async def step( if isinstance(action, list): for single_action in action: if isinstance(single_action, ManualAction): - tasks.append( - agent.perform_action_by_data( - single_action.action_type, - **single_action.action_args)) + if single_action.action_type == ActionType.INTERVIEW: + # Special handling for interview actions + tasks.append(self._perform_manual_interview_action(agent, single_action)) + else: + tasks.append( + agent.perform_action_by_data( + single_action.action_type, + **single_action.action_args)) elif isinstance(single_action, LLMAction): tasks.append(self._perform_llm_action(agent)) else: if isinstance(action, ManualAction): - tasks.append( - agent.perform_action_by_data(action.action_type, - **action.action_args)) + if action.action_type == ActionType.INTERVIEW: + # Special handling for interview actions + tasks.append(self._perform_manual_interview_action(agent, action)) + else: + tasks.append( + agent.perform_action_by_data(action.action_type, + **action.action_args)) elif isinstance(action, LLMAction): tasks.append(self._perform_llm_action(agent)) @@ -233,6 +188,54 @@ async def step( if self.platform_type == DefaultPlatformType.TWITTER: self.platform.sandbox_clock.time_step += 1 + async def _perform_manual_interview_action(self, agent: SocialAgent, action: ManualAction) -> None: + r"""Perform a manual interview action. + + Args: + agent(SocialAgent): The agent to interview. + action(ManualAction): The interview action to perform. + """ + # Extract interview prompt from args + interview_prompt = action.action_args.get("prompt", "") + if not interview_prompt: + env_log.warning(f"Empty interview prompt for agent {agent.social_agent_id}") + return + + # First, perform the regular action by sending it to the platform + action_result = await agent.perform_action_by_data(action.action_type, **action.action_args) + + # Check if the platform action was successful + if not action_result.get("success", False): + env_log.warning(f"Failed to record interview request: {action_result.get('error', 'Unknown error')}") + return + + # Get the interview_id from the result + interview_id = action_result.get("interview_id") + if not interview_id: + env_log.warning(f"No interview_id returned from platform") + return + + # Perform the interview to get the actual response + result = await self._perform_interview_action(agent, interview_prompt) + + # Get the response content + response = result.get("content", "") + + try: + # Record the response using the platform's method + response_result = await self.platform.record_interview_response( + agent_id=agent.social_agent_id, + interview_id=interview_id, + response=response + ) + + if response_result.get("success", False): + env_log.info(f"Successfully recorded interview response for agent {agent.social_agent_id}") + else: + env_log.warning(f"Failed to record interview response: {response_result.get('error', 'Unknown error')}") + except Exception as e: + env_log.error(f"Error recording interview response: {str(e)}") + async def close(self) -> None: r"""Stop the platform and close the environment. """ From 8263d9814812069b4742213448eed8111c6b139d Mon Sep 17 00:00:00 2001 From: zhangzaibin Date: Fri, 23 May 2025 09:37:27 +0800 Subject: [PATCH 14/32] finish the doc of interview action --- docs/cookbooks/twitter_interview.mdx | 271 +++++++++++++++++++++------ docs/docs.json | 3 +- examples/twitter_interview.py | 113 +++++------ 3 files changed, 272 insertions(+), 115 deletions(-) diff --git a/docs/cookbooks/twitter_interview.mdx b/docs/cookbooks/twitter_interview.mdx index 3dc64489..77d795db 100644 --- a/docs/cookbooks/twitter_interview.mdx +++ b/docs/cookbooks/twitter_interview.mdx @@ -1,13 +1,30 @@ --- -title: 'Twitter Interview' -description: 'Comprehensive guide to all available actions in the OASIS simulation environment' +title: 'Interview' +description: 'Learn how to conduct interviews with AI agents in Twitter simulations using the INTERVIEW action type' --- -# Twitter Interview +# Interview +This cookbook demonstrates how to use the INTERVIEW action type to conduct interviews with AI agents in a Twitter simulation. The interview functionality allows you to ask specific questions to agents and collect their responses, which is useful for research, opinion polling, and understanding agent behaviors. -```python +## Overview + +The INTERVIEW action type enables you to: +- Ask specific questions to individual agents +- Collect structured responses from agents +- Store interview data in the database for analysis +- Conduct interviews alongside regular social media interactions + +## Key Features + +- **Manual Interview Actions**: Use `ManualAction` with `ActionType.INTERVIEW` to conduct interviews +- **Automatic Response Collection**: The system automatically collects and stores agent responses +- **Database Storage**: All interview data is stored in the trace table for later analysis +- **Concurrent Execution**: Interviews can be conducted alongside other social media actions + +## Complete Example +```python # =========== Copyright 2023 @ CAMEL-AI.org. All Rights Reserved. =========== # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -30,7 +47,8 @@ from camel.models import ModelFactory from camel.types import ModelPlatformType, ModelType import oasis -from oasis import ActionType, EnvAction, SingleAction +from oasis import (ActionType, LLMAction, ManualAction, + generate_twitter_agent_graph) async def main(): @@ -50,6 +68,13 @@ async def main(): ActionType.INTERVIEW, # Add the INTERVIEW action type ] + agent_graph = await generate_twitter_agent_graph( + profile_path=("data/twitter_dataset/anonymous_topic_200_1h/" + "False_Business_0.csv"), + model=openai_model, + available_actions=available_actions, + ) + # Define the path to the database db_path = "./data/twitter_simulation.db" @@ -59,74 +84,67 @@ async def main(): # Make the environment env = oasis.make( + agent_graph=agent_graph, platform=oasis.DefaultPlatformType.TWITTER, database_path=db_path, - agent_profile_path=("data/twitter_dataset/anonymous_topic_200_1h/" - "False_Business_0.csv"), - agent_models=openai_model, - available_actions=available_actions, ) # Run the environment await env.reset() # First timestep: Agent 0 creates a post - action_1 = SingleAction(agent_id=0, - action=ActionType.CREATE_POST, - args={"content": "Earth is flat."}) - env_actions_1 = EnvAction( + actions_1 = {} + actions_1[env.agent_graph.get_agent(0)] = ManualAction( + action_type=ActionType.CREATE_POST, + action_args={"content": "Earth is flat."}) + await env.step(actions_1) + + # Second timestep: Let some agents respond with LLM actions + actions_2 = { + agent: LLMAction() # Activate 5 agents with id 1, 3, 5, 7, 9 - activate_agents=[1, 3, 5, 7, 9], - intervention=[action_1]) + for _, agent in env.agent_graph.get_agents([1, 3, 5, 7, 9]) + } + await env.step(actions_2) - # Second timestep: Agent 1 creates a post, and we interview Agent 0 - action_2 = SingleAction(agent_id=1, - action=ActionType.CREATE_POST, - args={"content": "Earth is not flat."}) + # Third timestep: Agent 1 creates a post, and we interview Agent 0 + actions_3 = {} + actions_3[env.agent_graph.get_agent(1)] = ManualAction( + action_type=ActionType.CREATE_POST, + action_args={"content": "Earth is not flat."}) # Create an interview action to ask Agent 0 about their views - interview_action = SingleAction( - agent_id=0, - action=ActionType.INTERVIEW, - args={"prompt": "What do you think about the shape of the Earth? Please explain your reasoning."} - ) + actions_3[env.agent_graph.get_agent(0)] = ManualAction( + action_type=ActionType.INTERVIEW, + action_args={"prompt": "What do you think about the shape of the Earth? Please explain your reasoning."}) - env_actions_2 = EnvAction( - activate_agents=[2, 4, 6, 8, 10], - intervention=[action_2, interview_action] - ) + await env.step(actions_3) - # Third timestep: Interview multiple agents - interview_actions = [ - SingleAction( - agent_id=1, - action=ActionType.INTERVIEW, - args={"prompt": "Why do you believe the Earth is not flat?"} - ), - SingleAction( - agent_id=2, - action=ActionType.INTERVIEW, - args={"prompt": "What are your thoughts on the debate about Earth's shape?"} - ), - ] - - env_actions_3 = EnvAction( - activate_agents=[3, 5, 7, 9], - intervention=interview_actions - ) + # Fourth timestep: Let some other agents respond + actions_4 = { + agent: LLMAction() + for _, agent in env.agent_graph.get_agents([2, 4, 6, 8, 10]) + } + await env.step(actions_4) - all_env_actions = [ - env_actions_1, - env_actions_2, - env_actions_3, - ] + # Fifth timestep: Interview multiple agents + actions_5 = {} + actions_5[env.agent_graph.get_agent(1)] = ManualAction( + action_type=ActionType.INTERVIEW, + action_args={"prompt": "Why do you believe the Earth is not flat?"}) + + actions_5[env.agent_graph.get_agent(2)] = ManualAction( + action_type=ActionType.INTERVIEW, + action_args={"prompt": "What are your thoughts on the debate about Earth's shape?"}) + + await env.step(actions_5) - # Simulate 3 timesteps - for i in range(3): - print(f"\n=== Timestep {i+1} ===") - env_actions = all_env_actions[i] - # Perform the actions - await env.step(env_actions) + # Sixth timestep: Final LLM actions for remaining agents + actions_6 = { + agent: LLMAction() + for _, agent in env.agent_graph.get_agents([3, 5, 7, 9]) + } + await env.step(actions_6) # Close the environment await env.close() @@ -161,6 +179,143 @@ async def main(): if __name__ == "__main__": asyncio.run(main()) +``` + +## How It Works + +### 1. Setup and Configuration + +First, ensure that `ActionType.INTERVIEW` is included in your available actions: + +```python +available_actions = [ + ActionType.CREATE_POST, + ActionType.LIKE_POST, + ActionType.REPOST, + ActionType.FOLLOW, + ActionType.DO_NOTHING, + ActionType.QUOTE_POST, + ActionType.INTERVIEW, # Essential for interview functionality +] +``` + +### 2. Conducting Interviews + +Use `ManualAction` with `ActionType.INTERVIEW` to conduct interviews: + +```python +# Single interview +interview_action = ManualAction( + action_type=ActionType.INTERVIEW, + action_args={"prompt": "What are your thoughts on climate change?"}) + +actions = {env.agent_graph.get_agent(0): interview_action} +await env.step(actions) +``` + +### 3. Multiple Interviews in One Step + +You can interview multiple agents simultaneously: + +```python +actions = {} +actions[env.agent_graph.get_agent(1)] = ManualAction( + action_type=ActionType.INTERVIEW, + action_args={"prompt": "Why do you believe the Earth is not flat?"}) + +actions[env.agent_graph.get_agent(2)] = ManualAction( + action_type=ActionType.INTERVIEW, + action_args={"prompt": "What are your thoughts on the debate about Earth's shape?"}) + +await env.step(actions) +``` + +### 4. Mixing Interviews with Other Actions + +Interviews can be conducted alongside regular social media actions: + +```python +actions = {} +# Regular post creation +actions[env.agent_graph.get_agent(1)] = ManualAction( + action_type=ActionType.CREATE_POST, + action_args={"content": "Earth is not flat."}) + +# Interview action +actions[env.agent_graph.get_agent(0)] = ManualAction( + action_type=ActionType.INTERVIEW, + action_args={"prompt": "What do you think about the shape of the Earth?"}) + +await env.step(actions) +``` + +## Data Storage and Retrieval + +### Database Schema + +Interview data is stored in the `trace` table with the following structure: +- `user_id`: The ID of the interviewed agent +- `action`: Set to `ActionType.INTERVIEW.value` +- `info`: JSON string containing interview details +- `created_at`: Timestamp of the interview + +### Retrieving Interview Results + +```python +import sqlite3 +import json + +conn = sqlite3.connect(db_path) +cursor = conn.cursor() + +# Query all interview records +cursor.execute(""" + SELECT user_id, info, created_at + FROM trace + WHERE action = ? +""", (ActionType.INTERVIEW.value,)) + +for user_id, info_json, timestamp in cursor.fetchall(): + info = json.loads(info_json) + print(f"Agent {user_id}: {info.get('response', 'N/A')}") + +conn.close() +``` + +### Interview Data Structure + +Each interview record contains: +- `prompt`: The question asked to the agent +- `interview_id`: Unique identifier for the interview +- `response`: The agent's response to the question + +## Best Practices + +### 1. Strategic Interview Timing + +Conduct interviews at strategic points in your simulation: +- After controversial posts to gauge reactions +- Before and after significant events +- At regular intervals to track opinion changes + +### 2. Question Design + +Design effective interview questions: +- Be specific and clear +- Avoid leading questions +- Ask open-ended questions for richer responses + +```python +# Good examples +"What are your thoughts on renewable energy?" +"How do you feel about the recent policy changes?" +"Can you explain your reasoning behind your last post?" + +# Avoid +"Don't you think renewable energy is great?" # Leading +"Yes or no: Do you like cats?" # Too restrictive +``` + + -``` \ No newline at end of file diff --git a/docs/docs.json b/docs/docs.json index 92c743ca..ee4c4d83 100644 --- a/docs/docs.json +++ b/docs/docs.json @@ -46,7 +46,8 @@ "cookbooks/reddit_simulation", "cookbooks/sympy_tools_simulation", "cookbooks/search_tools_simulation", - "cookbooks/custom_prompt_simulation" + "cookbooks/custom_prompt_simulation", + "cookbooks/twitter_interview" ] }, { diff --git a/examples/twitter_interview.py b/examples/twitter_interview.py index 661669bd..1d2bbf10 100644 --- a/examples/twitter_interview.py +++ b/examples/twitter_interview.py @@ -20,7 +20,8 @@ from camel.types import ModelPlatformType, ModelType import oasis -from oasis import ActionType, EnvAction, SingleAction +from oasis import (ActionType, LLMAction, ManualAction, + generate_twitter_agent_graph) async def main(): @@ -40,6 +41,13 @@ async def main(): ActionType.INTERVIEW, # Add the INTERVIEW action type ] + agent_graph = await generate_twitter_agent_graph( + profile_path=("data/twitter_dataset/anonymous_topic_200_1h/" + "False_Business_0.csv"), + model=openai_model, + available_actions=available_actions, + ) + # Define the path to the database db_path = "./data/twitter_simulation.db" @@ -49,74 +57,67 @@ async def main(): # Make the environment env = oasis.make( + agent_graph=agent_graph, platform=oasis.DefaultPlatformType.TWITTER, database_path=db_path, - agent_profile_path=("data/twitter_dataset/anonymous_topic_200_1h/" - "False_Business_0.csv"), - agent_models=openai_model, - available_actions=available_actions, ) # Run the environment await env.reset() # First timestep: Agent 0 creates a post - action_1 = SingleAction(agent_id=0, - action=ActionType.CREATE_POST, - args={"content": "Earth is flat."}) - env_actions_1 = EnvAction( + actions_1 = {} + actions_1[env.agent_graph.get_agent(0)] = ManualAction( + action_type=ActionType.CREATE_POST, + action_args={"content": "Earth is flat."}) + await env.step(actions_1) + + # Second timestep: Let some agents respond with LLM actions + actions_2 = { + agent: LLMAction() # Activate 5 agents with id 1, 3, 5, 7, 9 - activate_agents=[1, 3, 5, 7, 9], - intervention=[action_1]) - - # Second timestep: Agent 1 creates a post, and we interview Agent 0 - action_2 = SingleAction(agent_id=1, - action=ActionType.CREATE_POST, - args={"content": "Earth is not flat."}) + for _, agent in env.agent_graph.get_agents([1, 3, 5, 7, 9]) + } + await env.step(actions_2) + + # Third timestep: Agent 1 creates a post, and we interview Agent 0 + actions_3 = {} + actions_3[env.agent_graph.get_agent(1)] = ManualAction( + action_type=ActionType.CREATE_POST, + action_args={"content": "Earth is not flat."}) # Create an interview action to ask Agent 0 about their views - interview_action = SingleAction( - agent_id=0, - action=ActionType.INTERVIEW, - args={"prompt": "What do you think about the shape of the Earth? Please explain your reasoning."} - ) + actions_3[env.agent_graph.get_agent(0)] = ManualAction( + action_type=ActionType.INTERVIEW, + action_args={"prompt": "What do you think about the shape of the Earth? Please explain your reasoning."}) - env_actions_2 = EnvAction( - activate_agents=[2, 4, 6, 8, 10], - intervention=[action_2, interview_action] - ) - - # Third timestep: Interview multiple agents - interview_actions = [ - SingleAction( - agent_id=1, - action=ActionType.INTERVIEW, - args={"prompt": "Why do you believe the Earth is not flat?"} - ), - SingleAction( - agent_id=2, - action=ActionType.INTERVIEW, - args={"prompt": "What are your thoughts on the debate about Earth's shape?"} - ), - ] + await env.step(actions_3) + + # Fourth timestep: Let some other agents respond + actions_4 = { + agent: LLMAction() + for _, agent in env.agent_graph.get_agents([2, 4, 6, 8, 10]) + } + await env.step(actions_4) + + # Fifth timestep: Interview multiple agents + actions_5 = {} + actions_5[env.agent_graph.get_agent(1)] = ManualAction( + action_type=ActionType.INTERVIEW, + action_args={"prompt": "Why do you believe the Earth is not flat?"}) - env_actions_3 = EnvAction( - activate_agents=[3, 5, 7, 9], - intervention=interview_actions - ) - - all_env_actions = [ - env_actions_1, - env_actions_2, - env_actions_3, - ] - - # Simulate 3 timesteps - for i in range(3): - print(f"\n=== Timestep {i+1} ===") - env_actions = all_env_actions[i] - # Perform the actions - await env.step(env_actions) + actions_5[env.agent_graph.get_agent(2)] = ManualAction( + action_type=ActionType.INTERVIEW, + action_args={"prompt": "What are your thoughts on the debate about Earth's shape?"}) + + await env.step(actions_5) + + # Sixth timestep: Final LLM actions for remaining agents + actions_6 = { + agent: LLMAction() + for _, agent in env.agent_graph.get_agents([3, 5, 7, 9]) + } + await env.step(actions_6) # Close the environment await env.close() From b7c614e0f7e0d5966174dd97fd5b852972148feb Mon Sep 17 00:00:00 2001 From: zhangzaibin Date: Fri, 23 May 2025 09:48:45 +0800 Subject: [PATCH 15/32] remove interview from avaliable action list --- docs/cookbooks/twitter_interview.mdx | 15 ++- examples/twitter_interview.py | 4 +- examples/twitter_interview_fixed.py | 192 +++++++++++++++++++++++++++ 3 files changed, 207 insertions(+), 4 deletions(-) create mode 100644 examples/twitter_interview_fixed.py diff --git a/docs/cookbooks/twitter_interview.mdx b/docs/cookbooks/twitter_interview.mdx index 77d795db..e7420210 100644 --- a/docs/cookbooks/twitter_interview.mdx +++ b/docs/cookbooks/twitter_interview.mdx @@ -22,6 +22,10 @@ The INTERVIEW action type enables you to: - **Database Storage**: All interview data is stored in the trace table for later analysis - **Concurrent Execution**: Interviews can be conducted alongside other social media actions +## Important Note + +**Do NOT include `ActionType.INTERVIEW` in the `available_actions` list** when creating your agent graph. The interview action is designed to be used only manually by researchers/developers, not automatically selected by LLM agents. Including it in `available_actions` would allow agents to interview each other automatically, which is typically not desired behavior. + ## Complete Example ```python @@ -58,6 +62,8 @@ async def main(): ) # Define the available actions for the agents + # Note: INTERVIEW is NOT included here to prevent LLM from automatically selecting it + # INTERVIEW can still be used manually via ManualAction available_actions = [ ActionType.CREATE_POST, ActionType.LIKE_POST, @@ -65,7 +71,7 @@ async def main(): ActionType.FOLLOW, ActionType.DO_NOTHING, ActionType.QUOTE_POST, - ActionType.INTERVIEW, # Add the INTERVIEW action type + # ActionType.INTERVIEW, # DO NOT include this - interviews should be manual only ] agent_graph = await generate_twitter_agent_graph( @@ -185,9 +191,10 @@ if __name__ == "__main__": ### 1. Setup and Configuration -First, ensure that `ActionType.INTERVIEW` is included in your available actions: +**Important**: Do NOT include `ActionType.INTERVIEW` in your available actions list. Interviews should only be conducted manually: ```python +# Correct configuration - INTERVIEW is NOT included available_actions = [ ActionType.CREATE_POST, ActionType.LIKE_POST, @@ -195,10 +202,12 @@ available_actions = [ ActionType.FOLLOW, ActionType.DO_NOTHING, ActionType.QUOTE_POST, - ActionType.INTERVIEW, # Essential for interview functionality + # ActionType.INTERVIEW, # DO NOT include - interviews are manual only ] ``` +This prevents LLM agents from automatically selecting the interview action during their decision-making process. Interviews can still be conducted using `ManualAction`. + ### 2. Conducting Interviews Use `ManualAction` with `ActionType.INTERVIEW` to conduct interviews: diff --git a/examples/twitter_interview.py b/examples/twitter_interview.py index 1d2bbf10..1250d640 100644 --- a/examples/twitter_interview.py +++ b/examples/twitter_interview.py @@ -31,6 +31,8 @@ async def main(): ) # Define the available actions for the agents + # Note: INTERVIEW is NOT included here to prevent LLM from automatically selecting it + # INTERVIEW can still be used manually via ManualAction available_actions = [ ActionType.CREATE_POST, ActionType.LIKE_POST, @@ -38,7 +40,7 @@ async def main(): ActionType.FOLLOW, ActionType.DO_NOTHING, ActionType.QUOTE_POST, - ActionType.INTERVIEW, # Add the INTERVIEW action type + # ActionType.INTERVIEW, # Removed to prevent LLM auto-selection ] agent_graph = await generate_twitter_agent_graph( diff --git a/examples/twitter_interview_fixed.py b/examples/twitter_interview_fixed.py new file mode 100644 index 00000000..3f9367de --- /dev/null +++ b/examples/twitter_interview_fixed.py @@ -0,0 +1,192 @@ +# =========== Copyright 2023 @ CAMEL-AI.org. All Rights Reserved. =========== +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# =========== Copyright 2023 @ CAMEL-AI.org. All Rights Reserved. =========== +""" +Fixed Twitter Interview Example + +This example demonstrates the correct way to implement interviews in OASIS: +- INTERVIEW is NOT included in available_actions to prevent LLM auto-selection +- Interviews are conducted manually using ManualAction +- LLM agents can only perform regular social media actions +""" +import asyncio +import os +import sqlite3 +import json + +from camel.models import ModelFactory +from camel.types import ModelPlatformType, ModelType + +import oasis +from oasis import (ActionType, LLMAction, ManualAction, + generate_twitter_agent_graph) + + +async def main(): + openai_model = ModelFactory.create( + model_platform=ModelPlatformType.OPENAI, + model_type=ModelType.GPT_4O_MINI, + ) + + # Define the available actions for the agents + # IMPORTANT: INTERVIEW is NOT included here to prevent LLM from automatically selecting it + # This ensures that interviews are only conducted manually by researchers/developers + available_actions = [ + ActionType.CREATE_POST, + ActionType.LIKE_POST, + ActionType.REPOST, + ActionType.FOLLOW, + ActionType.DO_NOTHING, + ActionType.QUOTE_POST, + # ActionType.INTERVIEW, # Deliberately excluded - interviews are manual only + ] + + agent_graph = await generate_twitter_agent_graph( + profile_path=("data/twitter_dataset/anonymous_topic_200_1h/" + "False_Business_0.csv"), + model=openai_model, + available_actions=available_actions, + ) + + # Define the path to the database + db_path = "./data/twitter_simulation_fixed.db" + + # Delete the old database + if os.path.exists(db_path): + os.remove(db_path) + + # Make the environment + env = oasis.make( + agent_graph=agent_graph, + platform=oasis.DefaultPlatformType.TWITTER, + database_path=db_path, + ) + + # Run the environment + await env.reset() + + # First timestep: Agent 0 creates a post + print("=== Timestep 1: Initial post ===") + actions_1 = {} + actions_1[env.agent_graph.get_agent(0)] = ManualAction( + action_type=ActionType.CREATE_POST, + action_args={"content": "Earth is flat."}) + await env.step(actions_1) + + # Second timestep: Let some agents respond with LLM actions + # Note: Since INTERVIEW is not in available_actions, LLM agents cannot choose it + print("=== Timestep 2: LLM agents respond (no interview option) ===") + actions_2 = { + agent: LLMAction() + # Activate 5 agents with id 1, 3, 5, 7, 9 + for _, agent in env.agent_graph.get_agents([1, 3, 5, 7, 9]) + } + await env.step(actions_2) + + # Third timestep: Agent 1 creates a post, and we manually interview Agent 0 + print("=== Timestep 3: Manual interview ===") + actions_3 = {} + actions_3[env.agent_graph.get_agent(1)] = ManualAction( + action_type=ActionType.CREATE_POST, + action_args={"content": "Earth is not flat."}) + + # Manual interview - this is controlled by the researcher, not the LLM + actions_3[env.agent_graph.get_agent(0)] = ManualAction( + action_type=ActionType.INTERVIEW, + action_args={"prompt": "What do you think about the shape of the Earth? Please explain your reasoning."}) + + await env.step(actions_3) + + # Fourth timestep: Let some other agents respond with LLM actions + print("=== Timestep 4: More LLM responses ===") + actions_4 = { + agent: LLMAction() + for _, agent in env.agent_graph.get_agents([2, 4, 6, 8, 10]) + } + await env.step(actions_4) + + # Fifth timestep: Interview multiple agents manually + print("=== Timestep 5: Multiple manual interviews ===") + actions_5 = {} + actions_5[env.agent_graph.get_agent(1)] = ManualAction( + action_type=ActionType.INTERVIEW, + action_args={"prompt": "Why do you believe the Earth is not flat?"}) + + actions_5[env.agent_graph.get_agent(2)] = ManualAction( + action_type=ActionType.INTERVIEW, + action_args={"prompt": "What are your thoughts on the debate about Earth's shape?"}) + + await env.step(actions_5) + + # Sixth timestep: Final LLM actions for remaining agents + print("=== Timestep 6: Final LLM responses ===") + actions_6 = { + agent: LLMAction() + for _, agent in env.agent_graph.get_agents([3, 5, 7, 9]) + } + await env.step(actions_6) + + # Close the environment + await env.close() + + # Visualize the interview results + print("\n=== Interview Results ===") + conn = sqlite3.connect(db_path) + cursor = conn.cursor() + + # Query all interview records from the database + cursor.execute(""" + SELECT user_id, info, created_at + FROM trace + WHERE action = ? + ORDER BY created_at + """, (ActionType.INTERVIEW.value,)) + + interview_count = 0 + for user_id, info_json, timestamp in cursor.fetchall(): + info = json.loads(info_json) + interview_count += 1 + print(f"\nInterview #{interview_count} - Agent {user_id} (Timestep {timestamp}):") + print(f"Question: {info.get('prompt', 'N/A')}") + print(f"Response: {info.get('response', 'N/A')}") + print(f"Interview ID: {info.get('interview_id', 'N/A')}") + + if interview_count == 0: + print("No interviews found in the database.") + else: + print(f"\nTotal interviews conducted: {interview_count}") + + # Also check what actions LLM agents actually performed + print("\n=== LLM Agent Actions (should not include interviews) ===") + cursor.execute(""" + SELECT DISTINCT action, COUNT(*) as count + FROM trace + WHERE action != ? + GROUP BY action + ORDER BY count DESC + """, (ActionType.INTERVIEW.value,)) + + for action, count in cursor.fetchall(): + print(f"{action}: {count} times") + + conn.close() + + print("\n=== Summary ===") + print("✅ INTERVIEW was not included in available_actions") + print("✅ LLM agents could not automatically select interview actions") + print("✅ Interviews were conducted manually using ManualAction") + print("✅ This prevents unwanted agent-to-agent interviews") + + +if __name__ == "__main__": + asyncio.run(main()) \ No newline at end of file From b67ab183422b87313fbec5f2c71d24a43c130a7c Mon Sep 17 00:00:00 2001 From: zhangzaibin Date: Fri, 23 May 2025 09:50:03 +0800 Subject: [PATCH 16/32] clean unuseful files --- examples/twitter_interview_fixed.py | 192 ---------------------------- 1 file changed, 192 deletions(-) delete mode 100644 examples/twitter_interview_fixed.py diff --git a/examples/twitter_interview_fixed.py b/examples/twitter_interview_fixed.py deleted file mode 100644 index 3f9367de..00000000 --- a/examples/twitter_interview_fixed.py +++ /dev/null @@ -1,192 +0,0 @@ -# =========== Copyright 2023 @ CAMEL-AI.org. All Rights Reserved. =========== -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# =========== Copyright 2023 @ CAMEL-AI.org. All Rights Reserved. =========== -""" -Fixed Twitter Interview Example - -This example demonstrates the correct way to implement interviews in OASIS: -- INTERVIEW is NOT included in available_actions to prevent LLM auto-selection -- Interviews are conducted manually using ManualAction -- LLM agents can only perform regular social media actions -""" -import asyncio -import os -import sqlite3 -import json - -from camel.models import ModelFactory -from camel.types import ModelPlatformType, ModelType - -import oasis -from oasis import (ActionType, LLMAction, ManualAction, - generate_twitter_agent_graph) - - -async def main(): - openai_model = ModelFactory.create( - model_platform=ModelPlatformType.OPENAI, - model_type=ModelType.GPT_4O_MINI, - ) - - # Define the available actions for the agents - # IMPORTANT: INTERVIEW is NOT included here to prevent LLM from automatically selecting it - # This ensures that interviews are only conducted manually by researchers/developers - available_actions = [ - ActionType.CREATE_POST, - ActionType.LIKE_POST, - ActionType.REPOST, - ActionType.FOLLOW, - ActionType.DO_NOTHING, - ActionType.QUOTE_POST, - # ActionType.INTERVIEW, # Deliberately excluded - interviews are manual only - ] - - agent_graph = await generate_twitter_agent_graph( - profile_path=("data/twitter_dataset/anonymous_topic_200_1h/" - "False_Business_0.csv"), - model=openai_model, - available_actions=available_actions, - ) - - # Define the path to the database - db_path = "./data/twitter_simulation_fixed.db" - - # Delete the old database - if os.path.exists(db_path): - os.remove(db_path) - - # Make the environment - env = oasis.make( - agent_graph=agent_graph, - platform=oasis.DefaultPlatformType.TWITTER, - database_path=db_path, - ) - - # Run the environment - await env.reset() - - # First timestep: Agent 0 creates a post - print("=== Timestep 1: Initial post ===") - actions_1 = {} - actions_1[env.agent_graph.get_agent(0)] = ManualAction( - action_type=ActionType.CREATE_POST, - action_args={"content": "Earth is flat."}) - await env.step(actions_1) - - # Second timestep: Let some agents respond with LLM actions - # Note: Since INTERVIEW is not in available_actions, LLM agents cannot choose it - print("=== Timestep 2: LLM agents respond (no interview option) ===") - actions_2 = { - agent: LLMAction() - # Activate 5 agents with id 1, 3, 5, 7, 9 - for _, agent in env.agent_graph.get_agents([1, 3, 5, 7, 9]) - } - await env.step(actions_2) - - # Third timestep: Agent 1 creates a post, and we manually interview Agent 0 - print("=== Timestep 3: Manual interview ===") - actions_3 = {} - actions_3[env.agent_graph.get_agent(1)] = ManualAction( - action_type=ActionType.CREATE_POST, - action_args={"content": "Earth is not flat."}) - - # Manual interview - this is controlled by the researcher, not the LLM - actions_3[env.agent_graph.get_agent(0)] = ManualAction( - action_type=ActionType.INTERVIEW, - action_args={"prompt": "What do you think about the shape of the Earth? Please explain your reasoning."}) - - await env.step(actions_3) - - # Fourth timestep: Let some other agents respond with LLM actions - print("=== Timestep 4: More LLM responses ===") - actions_4 = { - agent: LLMAction() - for _, agent in env.agent_graph.get_agents([2, 4, 6, 8, 10]) - } - await env.step(actions_4) - - # Fifth timestep: Interview multiple agents manually - print("=== Timestep 5: Multiple manual interviews ===") - actions_5 = {} - actions_5[env.agent_graph.get_agent(1)] = ManualAction( - action_type=ActionType.INTERVIEW, - action_args={"prompt": "Why do you believe the Earth is not flat?"}) - - actions_5[env.agent_graph.get_agent(2)] = ManualAction( - action_type=ActionType.INTERVIEW, - action_args={"prompt": "What are your thoughts on the debate about Earth's shape?"}) - - await env.step(actions_5) - - # Sixth timestep: Final LLM actions for remaining agents - print("=== Timestep 6: Final LLM responses ===") - actions_6 = { - agent: LLMAction() - for _, agent in env.agent_graph.get_agents([3, 5, 7, 9]) - } - await env.step(actions_6) - - # Close the environment - await env.close() - - # Visualize the interview results - print("\n=== Interview Results ===") - conn = sqlite3.connect(db_path) - cursor = conn.cursor() - - # Query all interview records from the database - cursor.execute(""" - SELECT user_id, info, created_at - FROM trace - WHERE action = ? - ORDER BY created_at - """, (ActionType.INTERVIEW.value,)) - - interview_count = 0 - for user_id, info_json, timestamp in cursor.fetchall(): - info = json.loads(info_json) - interview_count += 1 - print(f"\nInterview #{interview_count} - Agent {user_id} (Timestep {timestamp}):") - print(f"Question: {info.get('prompt', 'N/A')}") - print(f"Response: {info.get('response', 'N/A')}") - print(f"Interview ID: {info.get('interview_id', 'N/A')}") - - if interview_count == 0: - print("No interviews found in the database.") - else: - print(f"\nTotal interviews conducted: {interview_count}") - - # Also check what actions LLM agents actually performed - print("\n=== LLM Agent Actions (should not include interviews) ===") - cursor.execute(""" - SELECT DISTINCT action, COUNT(*) as count - FROM trace - WHERE action != ? - GROUP BY action - ORDER BY count DESC - """, (ActionType.INTERVIEW.value,)) - - for action, count in cursor.fetchall(): - print(f"{action}: {count} times") - - conn.close() - - print("\n=== Summary ===") - print("✅ INTERVIEW was not included in available_actions") - print("✅ LLM agents could not automatically select interview actions") - print("✅ Interviews were conducted manually using ManualAction") - print("✅ This prevents unwanted agent-to-agent interviews") - - -if __name__ == "__main__": - asyncio.run(main()) \ No newline at end of file From 997c8fc0895cf58803a358c374f576e8faa73d56 Mon Sep 17 00:00:00 2001 From: zhangzaibin Date: Fri, 23 May 2025 09:51:31 +0800 Subject: [PATCH 17/32] add explaination --- examples/twitter_interview.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/twitter_interview.py b/examples/twitter_interview.py index 1250d640..a34299a8 100644 --- a/examples/twitter_interview.py +++ b/examples/twitter_interview.py @@ -40,7 +40,6 @@ async def main(): ActionType.FOLLOW, ActionType.DO_NOTHING, ActionType.QUOTE_POST, - # ActionType.INTERVIEW, # Removed to prevent LLM auto-selection ] agent_graph = await generate_twitter_agent_graph( @@ -89,6 +88,7 @@ async def main(): action_args={"content": "Earth is not flat."}) # Create an interview action to ask Agent 0 about their views + # ActionType.INTERVIEW is a external action, which can not be exceuted by agents themselves actions_3[env.agent_graph.get_agent(0)] = ManualAction( action_type=ActionType.INTERVIEW, action_args={"prompt": "What do you think about the shape of the Earth? Please explain your reasoning."}) From aeae3154fe80db07e51d6d5d7a139c3894672861 Mon Sep 17 00:00:00 2001 From: zhangzaibin Date: Fri, 23 May 2025 09:55:59 +0800 Subject: [PATCH 18/32] add test function --- test/agent/test_interview_action.py | 449 ++++++++++++++++++++++++++++ 1 file changed, 449 insertions(+) create mode 100644 test/agent/test_interview_action.py diff --git a/test/agent/test_interview_action.py b/test/agent/test_interview_action.py new file mode 100644 index 00000000..f9eacf14 --- /dev/null +++ b/test/agent/test_interview_action.py @@ -0,0 +1,449 @@ +# =========== Copyright 2023 @ CAMEL-AI.org. All Rights Reserved. =========== +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# =========== Copyright 2023 @ CAMEL-AI.org. All Rights Reserved. =========== +import asyncio +import json +import os +import os.path as osp +import sqlite3 +import tempfile + +import pytest +from camel.models import ModelFactory +from camel.types import ModelPlatformType, ModelType + +import oasis +from oasis import ActionType, LLMAction, ManualAction, generate_twitter_agent_graph +from oasis.social_agent.agent import SocialAgent +from oasis.social_platform.channel import Channel +from oasis.social_platform.config import UserInfo +from oasis.social_platform.platform import Platform + +parent_folder = osp.dirname(osp.abspath(__file__)) +test_db_filepath = osp.join(parent_folder, "test_interview.db") + + +@pytest.fixture +def setup_interview_test(): + """Setup fixture for interview tests.""" + if os.path.exists(test_db_filepath): + os.remove(test_db_filepath) + yield + # Cleanup after test + if os.path.exists(test_db_filepath): + os.remove(test_db_filepath) + + +@pytest.mark.asyncio +async def test_single_interview_action(setup_interview_test): + """Test conducting a single interview with an agent.""" + agents = [] + channel = Channel() + infra = Platform(test_db_filepath, channel) + task = asyncio.create_task(infra.running()) + + try: + # Create and sign up a test agent + real_name = "TestAgent" + description = "A test agent for interview testing." + profile = { + "nodes": [], + "edges": [], + "other_info": { + "user_profile": "I am a test agent with strong opinions on technology.", + "mbti": "INTJ", + "activity_level": ["online"] * 24, + "activity_level_frequency": [5] * 24, + "active_threshold": [0.5] * 24, + }, + } + user_info = UserInfo(name=real_name, description=description, profile=profile) + agent = SocialAgent(agent_id=0, user_info=user_info, twitter_channel=channel) + + # Sign up the agent + return_message = await agent.env.action.sign_up("testuser", "TestUser", "A test bio.") + assert return_message["success"] is True + agents.append(agent) + + # Conduct an interview + interview_prompt = "What are your thoughts on artificial intelligence?" + return_message = await agent.env.action.interview(interview_prompt) + assert return_message["success"] is True + assert "interview_id" in return_message + + # Verify the interview was recorded in the database + conn = sqlite3.connect(test_db_filepath) + cursor = conn.cursor() + cursor.execute(""" + SELECT user_id, info, action + FROM trace + WHERE action = ? AND user_id = ? + """, (ActionType.INTERVIEW.value, 0)) + + interview_records = cursor.fetchall() + assert len(interview_records) == 1 + + user_id, info_json, action = interview_records[0] + assert user_id == 0 + assert action == ActionType.INTERVIEW.value + + info = json.loads(info_json) + assert info["prompt"] == interview_prompt + assert "interview_id" in info + + conn.close() + + finally: + await channel.write_to_receive_queue((None, None, ActionType.EXIT)) + await task + + +@pytest.mark.asyncio +async def test_multiple_interviews_action(setup_interview_test): + """Test conducting multiple interviews with different agents.""" + agents = [] + channel = Channel() + infra = Platform(test_db_filepath, channel) + task = asyncio.create_task(infra.running()) + + try: + # Create and sign up multiple test agents + for i in range(3): + real_name = f"TestAgent{i}" + description = f"Test agent {i} for interview testing." + profile = { + "nodes": [], + "edges": [], + "other_info": { + "user_profile": f"I am test agent {i} with unique perspectives.", + "mbti": "INTJ", + "activity_level": ["online"] * 24, + "activity_level_frequency": [5] * 24, + "active_threshold": [0.5] * 24, + }, + } + user_info = UserInfo(name=real_name, description=description, profile=profile) + agent = SocialAgent(agent_id=i, user_info=user_info, twitter_channel=channel) + + # Sign up the agent + return_message = await agent.env.action.sign_up(f"testuser{i}", f"TestUser{i}", f"Test bio {i}.") + assert return_message["success"] is True + agents.append(agent) + + # Conduct interviews with different prompts + interview_prompts = [ + "What is your opinion on climate change?", + "How do you feel about social media?", + "What are your thoughts on remote work?" + ] + + for i, (agent, prompt) in enumerate(zip(agents, interview_prompts)): + return_message = await agent.env.action.interview(prompt) + assert return_message["success"] is True + assert "interview_id" in return_message + + # Verify all interviews were recorded + conn = sqlite3.connect(test_db_filepath) + cursor = conn.cursor() + cursor.execute(""" + SELECT user_id, info, action + FROM trace + WHERE action = ? + ORDER BY user_id + """, (ActionType.INTERVIEW.value,)) + + interview_records = cursor.fetchall() + assert len(interview_records) == 3 + + for i, (user_id, info_json, action) in enumerate(interview_records): + assert user_id == i + assert action == ActionType.INTERVIEW.value + + info = json.loads(info_json) + assert info["prompt"] == interview_prompts[i] + assert "interview_id" in info + + conn.close() + + finally: + await channel.write_to_receive_queue((None, None, ActionType.EXIT)) + await task + + +@pytest.mark.asyncio +async def test_interview_with_environment(): + """Test interview functionality using the full OASIS environment.""" + # Create a temporary database file + with tempfile.NamedTemporaryFile(suffix=".db", delete=False) as tmp_file: + db_path = tmp_file.name + + try: + # Create a mock model (we'll use a simple mock since we're testing the action flow) + openai_model = ModelFactory.create( + model_platform=ModelPlatformType.OPENAI, + model_type=ModelType.GPT_4O_MINI, + ) + + # Define available actions (excluding INTERVIEW to prevent automatic selection) + available_actions = [ + ActionType.CREATE_POST, + ActionType.LIKE_POST, + ActionType.REPOST, + ActionType.FOLLOW, + ActionType.DO_NOTHING, + ] + + # Create a minimal agent graph for testing + agent_graph = await generate_twitter_agent_graph( + profile_path=("data/twitter_dataset/anonymous_topic_200_1h/" + "False_Business_0.csv"), + model=openai_model, + available_actions=available_actions, + ) + + # Create environment + env = oasis.make( + agent_graph=agent_graph, + platform=oasis.DefaultPlatformType.TWITTER, + database_path=db_path, + ) + + await env.reset() + + # Test single interview action + actions = {} + actions[env.agent_graph.get_agent(0)] = ManualAction( + action_type=ActionType.INTERVIEW, + action_args={"prompt": "What is your favorite color and why?"} + ) + await env.step(actions) + + # Test multiple interviews in one step + actions = {} + actions[env.agent_graph.get_agent(1)] = ManualAction( + action_type=ActionType.INTERVIEW, + action_args={"prompt": "What do you think about technology?"} + ) + actions[env.agent_graph.get_agent(2)] = ManualAction( + action_type=ActionType.INTERVIEW, + action_args={"prompt": "How do you spend your free time?"} + ) + await env.step(actions) + + # Test mixing interview with other actions + actions = {} + actions[env.agent_graph.get_agent(0)] = ManualAction( + action_type=ActionType.CREATE_POST, + action_args={"content": "Hello world!"} + ) + actions[env.agent_graph.get_agent(3)] = ManualAction( + action_type=ActionType.INTERVIEW, + action_args={"prompt": "What motivates you in life?"} + ) + await env.step(actions) + + await env.close() + + # Verify interview data in database + conn = sqlite3.connect(db_path) + cursor = conn.cursor() + cursor.execute(""" + SELECT user_id, info, created_at + FROM trace + WHERE action = ? + ORDER BY created_at + """, (ActionType.INTERVIEW.value,)) + + interview_records = cursor.fetchall() + assert len(interview_records) == 4 # 3 interviews conducted + + # Check the content of interviews + expected_prompts = [ + "What is your favorite color and why?", + "What do you think about technology?", + "How do you spend your free time?", + "What motivates you in life?" + ] + + for i, (user_id, info_json, timestamp) in enumerate(interview_records): + info = json.loads(info_json) + assert info["prompt"] == expected_prompts[i] + assert "interview_id" in info + # Check if response was recorded (it should be present after the interview) + assert "response" in info + + conn.close() + + finally: + # Cleanup + if os.path.exists(db_path): + os.remove(db_path) + + +@pytest.mark.asyncio +async def test_interview_data_retrieval(setup_interview_test): + """Test retrieving and analyzing interview data from the database.""" + agents = [] + channel = Channel() + infra = Platform(test_db_filepath, channel) + task = asyncio.create_task(infra.running()) + + try: + # Create and sign up test agents + for i in range(2): + real_name = f"TestAgent{i}" + description = f"Test agent {i}." + profile = { + "nodes": [], + "edges": [], + "other_info": { + "user_profile": f"Agent {i} profile", + "mbti": "INTJ", + "activity_level": ["online"] * 24, + "activity_level_frequency": [5] * 24, + "active_threshold": [0.5] * 24, + }, + } + user_info = UserInfo(name=real_name, description=description, profile=profile) + agent = SocialAgent(agent_id=i, user_info=user_info, twitter_channel=channel) + + return_message = await agent.env.action.sign_up(f"testuser{i}", f"TestUser{i}", f"Bio {i}.") + assert return_message["success"] is True + agents.append(agent) + + # Conduct interviews + interview_data = [ + (0, "What is your favorite programming language?"), + (1, "How do you approach problem-solving?"), + (0, "What are your career goals?"), # Second interview with agent 0 + ] + + for agent_id, prompt in interview_data: + return_message = await agents[agent_id].env.action.interview(prompt) + assert return_message["success"] is True + + # Test data retrieval functions + conn = sqlite3.connect(test_db_filepath) + cursor = conn.cursor() + + # Test 1: Get all interviews + cursor.execute(""" + SELECT user_id, info, created_at + FROM trace + WHERE action = ? + ORDER BY created_at + """, (ActionType.INTERVIEW.value,)) + + all_interviews = cursor.fetchall() + assert len(all_interviews) == 3 + + # Test 2: Get interviews for specific agent + cursor.execute(""" + SELECT user_id, info, created_at + FROM trace + WHERE action = ? AND user_id = ? + ORDER BY created_at + """, (ActionType.INTERVIEW.value, 0)) + + agent_0_interviews = cursor.fetchall() + assert len(agent_0_interviews) == 2 + + # Test 3: Verify interview content + for i, (user_id, info_json, timestamp) in enumerate(all_interviews): + info = json.loads(info_json) + expected_agent_id, expected_prompt = interview_data[i] + assert user_id == expected_agent_id + assert info["prompt"] == expected_prompt + assert "interview_id" in info + + conn.close() + + finally: + await channel.write_to_receive_queue((None, None, ActionType.EXIT)) + await task + + +@pytest.mark.asyncio +async def test_interview_error_handling(setup_interview_test): + """Test error handling in interview functionality.""" + agents = [] + channel = Channel() + infra = Platform(test_db_filepath, channel) + task = asyncio.create_task(infra.running()) + + try: + # Create and sign up a test agent + real_name = "TestAgent" + description = "Test agent." + profile = { + "nodes": [], + "edges": [], + "other_info": { + "user_profile": "Test profile", + "mbti": "INTJ", + "activity_level": ["online"] * 24, + "activity_level_frequency": [5] * 24, + "active_threshold": [0.5] * 24, + }, + } + user_info = UserInfo(name=real_name, description=description, profile=profile) + agent = SocialAgent(agent_id=0, user_info=user_info, twitter_channel=channel) + + return_message = await agent.env.action.sign_up("testuser", "TestUser", "Test bio.") + assert return_message["success"] is True + agents.append(agent) + + # Test with empty prompt + return_message = await agent.env.action.interview("") + assert return_message["success"] is True # Empty prompt should still work + + # Test with very long prompt + long_prompt = "What do you think about " + "very " * 1000 + "long questions?" + return_message = await agent.env.action.interview(long_prompt) + assert return_message["success"] is True + + # Verify both interviews were recorded + conn = sqlite3.connect(test_db_filepath) + cursor = conn.cursor() + cursor.execute(""" + SELECT COUNT(*) + FROM trace + WHERE action = ? AND user_id = ? + """, (ActionType.INTERVIEW.value, 0)) + + count = cursor.fetchone()[0] + assert count == 2 + + conn.close() + + finally: + await channel.write_to_receive_queue((None, None, ActionType.EXIT)) + await task + + +if __name__ == "__main__": + # Run tests individually for debugging + import asyncio + + async def run_tests(): + print("Running interview action tests...") + + # You can run individual tests here for debugging + # await test_single_interview_action(None) + # await test_multiple_interviews_action(None) + # await test_interview_data_retrieval(None) + # await test_interview_error_handling(None) + + print("All tests completed!") + + # asyncio.run(run_tests()) \ No newline at end of file From 44d25c718aaf16f1e43aca5bff7a783e9a7a51bd Mon Sep 17 00:00:00 2001 From: zhangzaibin Date: Fri, 23 May 2025 10:03:14 +0800 Subject: [PATCH 19/32] fix precommit --- docs/cookbooks/twitter_interview.mdx | 18 ++- examples/twitter_interview.py | 35 +++--- oasis/environment/env.py | 56 +++++---- oasis/social_agent/agent.py | 8 +- oasis/social_agent/agent_action.py | 4 +- oasis/social_platform/platform.py | 43 +++---- test/agent/test_interview_action.py | 174 +++++++++++++++------------ 7 files changed, 185 insertions(+), 153 deletions(-) diff --git a/docs/cookbooks/twitter_interview.mdx b/docs/cookbooks/twitter_interview.mdx index e7420210..81b76c29 100644 --- a/docs/cookbooks/twitter_interview.mdx +++ b/docs/cookbooks/twitter_interview.mdx @@ -118,12 +118,12 @@ async def main(): actions_3[env.agent_graph.get_agent(1)] = ManualAction( action_type=ActionType.CREATE_POST, action_args={"content": "Earth is not flat."}) - + # Create an interview action to ask Agent 0 about their views actions_3[env.agent_graph.get_agent(0)] = ManualAction( action_type=ActionType.INTERVIEW, action_args={"prompt": "What do you think about the shape of the Earth? Please explain your reasoning."}) - + await env.step(actions_3) # Fourth timestep: Let some other agents respond @@ -138,11 +138,11 @@ async def main(): actions_5[env.agent_graph.get_agent(1)] = ManualAction( action_type=ActionType.INTERVIEW, action_args={"prompt": "Why do you believe the Earth is not flat?"}) - + actions_5[env.agent_graph.get_agent(2)] = ManualAction( action_type=ActionType.INTERVIEW, action_args={"prompt": "What are your thoughts on the debate about Earth's shape?"}) - + await env.step(actions_5) # Sixth timestep: Final LLM actions for remaining agents @@ -154,7 +154,7 @@ async def main(): # Close the environment await env.close() - + # visualize the interview results print("\n=== Interview Results ===") conn = sqlite3.connect(db_path) @@ -167,7 +167,7 @@ async def main(): FROM trace WHERE action = ? """, (ActionType.INTERVIEW.value,)) - + # This query retrieves all interview records from the trace table # - user_id: the ID of the agent who was interviewed # - info: JSON string containing interview details (prompt, response, etc.) @@ -179,7 +179,7 @@ async def main(): print(f"Prompt: {info.get('prompt', 'N/A')}") print(f"Interview ID: {info.get('interview_id', 'N/A')}") print(f"Response: {info.get('response', 'N/A')}") - + conn.close() @@ -324,7 +324,3 @@ Design effective interview questions: "Don't you think renewable energy is great?" # Leading "Yes or no: Do you like cats?" # Too restrictive ``` - - - - diff --git a/examples/twitter_interview.py b/examples/twitter_interview.py index a34299a8..e3407f68 100644 --- a/examples/twitter_interview.py +++ b/examples/twitter_interview.py @@ -1,20 +1,20 @@ # =========== Copyright 2023 @ CAMEL-AI.org. All Rights Reserved. =========== -# Licensed under the Apache License, Version 2.0 (the "License"); +# Licensed under the Apache License, Version 2.0 (the “License”); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, +# distributed under the License is distributed on an “AS IS” BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # =========== Copyright 2023 @ CAMEL-AI.org. All Rights Reserved. =========== import asyncio +import json import os import sqlite3 -import json from camel.models import ModelFactory from camel.types import ModelPlatformType, ModelType @@ -86,13 +86,16 @@ async def main(): actions_3[env.agent_graph.get_agent(1)] = ManualAction( action_type=ActionType.CREATE_POST, action_args={"content": "Earth is not flat."}) - + # Create an interview action to ask Agent 0 about their views # ActionType.INTERVIEW is a external action, which can not be exceuted by agents themselves actions_3[env.agent_graph.get_agent(0)] = ManualAction( action_type=ActionType.INTERVIEW, - action_args={"prompt": "What do you think about the shape of the Earth? Please explain your reasoning."}) - + action_args={ + "prompt": + "What do you think about the shape of the Earth? Please explain your reasoning." + }) + await env.step(actions_3) # Fourth timestep: Let some other agents respond @@ -107,11 +110,14 @@ async def main(): actions_5[env.agent_graph.get_agent(1)] = ManualAction( action_type=ActionType.INTERVIEW, action_args={"prompt": "Why do you believe the Earth is not flat?"}) - + actions_5[env.agent_graph.get_agent(2)] = ManualAction( action_type=ActionType.INTERVIEW, - action_args={"prompt": "What are your thoughts on the debate about Earth's shape?"}) - + action_args={ + "prompt": + "What are your thoughts on the debate about Earth's shape?" + }) + await env.step(actions_5) # Sixth timestep: Final LLM actions for remaining agents @@ -123,7 +129,7 @@ async def main(): # Close the environment await env.close() - + # visualize the interview results print("\n=== Interview Results ===") conn = sqlite3.connect(db_path) @@ -131,12 +137,13 @@ async def main(): # Here we query all interview records from the database # We use ActionType.INTERVIEW.value as the query condition to get all interview records # Each record contains user ID, interview information (in JSON format), and creation timestamp - cursor.execute(""" + cursor.execute( + """ SELECT user_id, info, created_at FROM trace WHERE action = ? - """, (ActionType.INTERVIEW.value,)) - + """, (ActionType.INTERVIEW.value, )) + # This query retrieves all interview records from the trace table # - user_id: the ID of the agent who was interviewed # - info: JSON string containing interview details (prompt, response, etc.) @@ -148,7 +155,7 @@ async def main(): print(f"Prompt: {info.get('prompt', 'N/A')}") print(f"Interview ID: {info.get('interview_id', 'N/A')}") print(f"Response: {info.get('response', 'N/A')}") - + conn.close() diff --git a/oasis/environment/env.py b/oasis/environment/env.py index 7e42fd08..21439b6c 100644 --- a/oasis/environment/env.py +++ b/oasis/environment/env.py @@ -1,12 +1,12 @@ # =========== Copyright 2023 @ CAMEL-AI.org. All Rights Reserved. =========== -# Licensed under the Apache License, Version 2.0 (the "License"); +# Licensed under the Apache License, Version 2.0 (the “License”); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, +# distributed under the License is distributed on an “AS IS” BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. @@ -160,7 +160,9 @@ async def step( if isinstance(single_action, ManualAction): if single_action.action_type == ActionType.INTERVIEW: # Special handling for interview actions - tasks.append(self._perform_manual_interview_action(agent, single_action)) + tasks.append( + self._perform_manual_interview_action( + agent, single_action)) else: tasks.append( agent.perform_action_by_data( @@ -172,11 +174,13 @@ async def step( if isinstance(action, ManualAction): if action.action_type == ActionType.INTERVIEW: # Special handling for interview actions - tasks.append(self._perform_manual_interview_action(agent, action)) + tasks.append( + self._perform_manual_interview_action( + agent, action)) else: tasks.append( - agent.perform_action_by_data(action.action_type, - **action.action_args)) + agent.perform_action_by_data( + action.action_type, **action.action_args)) elif isinstance(action, LLMAction): tasks.append(self._perform_llm_action(agent)) @@ -188,7 +192,8 @@ async def step( if self.platform_type == DefaultPlatformType.TWITTER: self.platform.sandbox_clock.time_step += 1 - async def _perform_manual_interview_action(self, agent: SocialAgent, action: ManualAction) -> None: + async def _perform_manual_interview_action(self, agent: SocialAgent, + action: ManualAction) -> None: r"""Perform a manual interview action. Args: @@ -198,41 +203,48 @@ async def _perform_manual_interview_action(self, agent: SocialAgent, action: Man # Extract interview prompt from args interview_prompt = action.action_args.get("prompt", "") if not interview_prompt: - env_log.warning(f"Empty interview prompt for agent {agent.social_agent_id}") + env_log.warning( + f"Empty interview prompt for agent {agent.social_agent_id}") return - + # First, perform the regular action by sending it to the platform - action_result = await agent.perform_action_by_data(action.action_type, **action.action_args) - + action_result = await agent.perform_action_by_data( + action.action_type, **action.action_args) + # Check if the platform action was successful if not action_result.get("success", False): - env_log.warning(f"Failed to record interview request: {action_result.get('error', 'Unknown error')}") + env_log.warning( + f"Failed to record interview request: {action_result.get('error', 'Unknown error')}" + ) return - + # Get the interview_id from the result interview_id = action_result.get("interview_id") if not interview_id: - env_log.warning(f"No interview_id returned from platform") + env_log.warning("No interview_id returned from platform") return - + # Perform the interview to get the actual response result = await self._perform_interview_action(agent, interview_prompt) - + # Get the response content response = result.get("content", "") - + try: # Record the response using the platform's method response_result = await self.platform.record_interview_response( agent_id=agent.social_agent_id, interview_id=interview_id, - response=response - ) - + response=response) + if response_result.get("success", False): - env_log.info(f"Successfully recorded interview response for agent {agent.social_agent_id}") + env_log.info( + f"Successfully recorded interview response for agent {agent.social_agent_id}" + ) else: - env_log.warning(f"Failed to record interview response: {response_result.get('error', 'Unknown error')}") + env_log.warning( + f"Failed to record interview response: {response_result.get('error', 'Unknown error')}" + ) except Exception as e: env_log.error(f"Error recording interview response: {str(e)}") diff --git a/oasis/social_agent/agent.py b/oasis/social_agent/agent.py index 9750108b..f0336af5 100644 --- a/oasis/social_agent/agent.py +++ b/oasis/social_agent/agent.py @@ -190,19 +190,18 @@ async def perform_test(self): "content": content } - async def perform_interview(self, interview_prompt: str): """ Perform an interview with the agent. - + This method allows an external entity to ask a specific question to the agent and get a response based on the agent's persona and memory context. The interview doesn't affect the agent's memory and is used primarily for evaluation or extracting the agent's opinions on specific topics. - + Args: interview_prompt (str): The question or prompt to ask the agent during the interview. - + Returns: dict: A dictionary containing the agent's user_id, the full prompt context, and the agent's response content. @@ -241,7 +240,6 @@ async def perform_interview(self, interview_prompt: str): "content": content } - async def perform_action_by_hci(self) -> Any: print("Please choose one function to perform:") function_list = self.env.action.get_openai_function_list() diff --git a/oasis/social_agent/agent_action.py b/oasis/social_agent/agent_action.py index 66d2a40d..a5476c31 100644 --- a/oasis/social_agent/agent_action.py +++ b/oasis/social_agent/agent_action.py @@ -1,12 +1,12 @@ # =========== Copyright 2023 @ CAMEL-AI.org. All Rights Reserved. =========== -# Licensed under the Apache License, Version 2.0 (the "License"); +# Licensed under the Apache License, Version 2.0 (the “License”); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, +# distributed under the License is distributed on an “AS IS” BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. diff --git a/oasis/social_platform/platform.py b/oasis/social_platform/platform.py index e9de8cd9..97c6c4be 100644 --- a/oasis/social_platform/platform.py +++ b/oasis/social_platform/platform.py @@ -1,12 +1,12 @@ # =========== Copyright 2023 @ CAMEL-AI.org. All Rights Reserved. =========== -# Licensed under the Apache License, Version 2.0 (the "License"); +# Licensed under the Apache License, Version 2.0 (the “License”); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, +# distributed under the License is distributed on an “AS IS” BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. @@ -1363,21 +1363,16 @@ async def interview(self, agent_id: int, prompt: str): interview_id = f"{current_time}_{user_id}" # Record the interview request in the trace table - action_info = { - "prompt": prompt, - "interview_id": interview_id - } + action_info = {"prompt": prompt, "interview_id": interview_id} self.pl_utils._record_trace(user_id, ActionType.INTERVIEW.value, action_info, current_time) - - return { - "success": True, - "interview_id": interview_id - } + + return {"success": True, "interview_id": interview_id} except Exception as e: return {"success": False, "error": str(e)} - - async def record_interview_response(self, agent_id: int, interview_id: str, response: str): + + async def record_interview_response(self, agent_id: int, interview_id: str, + response: str): """Record the response for an interview. Args: @@ -1391,32 +1386,30 @@ async def record_interview_response(self, agent_id: int, interview_id: str, resp """ try: # First, fetch the trace record for this interview - query = """SELECT rowid, info FROM trace - WHERE user_id = ? AND action = ? + query = """SELECT rowid, info FROM trace + WHERE user_id = ? AND action = ? ORDER BY created_at DESC LIMIT 1""" - self.pl_utils._execute_db_command(query, (agent_id, ActionType.INTERVIEW.value)) + self.pl_utils._execute_db_command( + query, (agent_id, ActionType.INTERVIEW.value)) last_interview_data = self.db_cursor.fetchone() - + if last_interview_data: rowid, info_json = last_interview_data import json info = json.loads(info_json) - + # Verify this is the correct interview record if info.get("interview_id") == interview_id: # Update with the response info["response"] = response - + # Update the trace record update_query = "UPDATE trace SET info = ? WHERE rowid = ?" self.pl_utils._execute_db_command( - update_query, - (json.dumps(info), rowid), - commit=True - ) - + update_query, (json.dumps(info), rowid), commit=True) + return {"success": True} - + return {"success": False, "error": "Interview record not found"} except Exception as e: return {"success": False, "error": str(e)} diff --git a/test/agent/test_interview_action.py b/test/agent/test_interview_action.py index f9eacf14..4ddbefbe 100644 --- a/test/agent/test_interview_action.py +++ b/test/agent/test_interview_action.py @@ -1,12 +1,12 @@ # =========== Copyright 2023 @ CAMEL-AI.org. All Rights Reserved. =========== -# Licensed under the Apache License, Version 2.0 (the "License"); +# Licensed under the Apache License, Version 2.0 (the “License”); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, +# distributed under the License is distributed on an “AS IS” BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. @@ -23,7 +23,8 @@ from camel.types import ModelPlatformType, ModelType import oasis -from oasis import ActionType, LLMAction, ManualAction, generate_twitter_agent_graph +from oasis import (ActionType, ManualAction, + generate_twitter_agent_graph) from oasis.social_agent.agent import SocialAgent from oasis.social_platform.channel import Channel from oasis.social_platform.config import UserInfo @@ -60,18 +61,24 @@ async def test_single_interview_action(setup_interview_test): "nodes": [], "edges": [], "other_info": { - "user_profile": "I am a test agent with strong opinions on technology.", + "user_profile": + "I am a test agent with strong opinions on technology.", "mbti": "INTJ", "activity_level": ["online"] * 24, "activity_level_frequency": [5] * 24, "active_threshold": [0.5] * 24, }, } - user_info = UserInfo(name=real_name, description=description, profile=profile) - agent = SocialAgent(agent_id=0, user_info=user_info, twitter_channel=channel) - + user_info = UserInfo(name=real_name, + description=description, + profile=profile) + agent = SocialAgent(agent_id=0, + user_info=user_info, + twitter_channel=channel) + # Sign up the agent - return_message = await agent.env.action.sign_up("testuser", "TestUser", "A test bio.") + return_message = await agent.env.action.sign_up( + "testuser", "TestUser", "A test bio.") assert return_message["success"] is True agents.append(agent) @@ -80,27 +87,28 @@ async def test_single_interview_action(setup_interview_test): return_message = await agent.env.action.interview(interview_prompt) assert return_message["success"] is True assert "interview_id" in return_message - + # Verify the interview was recorded in the database conn = sqlite3.connect(test_db_filepath) cursor = conn.cursor() - cursor.execute(""" + cursor.execute( + """ SELECT user_id, info, action FROM trace WHERE action = ? AND user_id = ? """, (ActionType.INTERVIEW.value, 0)) - + interview_records = cursor.fetchall() assert len(interview_records) == 1 - + user_id, info_json, action = interview_records[0] assert user_id == 0 assert action == ActionType.INTERVIEW.value - + info = json.loads(info_json) assert info["prompt"] == interview_prompt assert "interview_id" in info - + conn.close() finally: @@ -125,18 +133,24 @@ async def test_multiple_interviews_action(setup_interview_test): "nodes": [], "edges": [], "other_info": { - "user_profile": f"I am test agent {i} with unique perspectives.", + "user_profile": + f"I am test agent {i} with unique perspectives.", "mbti": "INTJ", "activity_level": ["online"] * 24, "activity_level_frequency": [5] * 24, "active_threshold": [0.5] * 24, }, } - user_info = UserInfo(name=real_name, description=description, profile=profile) - agent = SocialAgent(agent_id=i, user_info=user_info, twitter_channel=channel) - + user_info = UserInfo(name=real_name, + description=description, + profile=profile) + agent = SocialAgent(agent_id=i, + user_info=user_info, + twitter_channel=channel) + # Sign up the agent - return_message = await agent.env.action.sign_up(f"testuser{i}", f"TestUser{i}", f"Test bio {i}.") + return_message = await agent.env.action.sign_up( + f"testuser{i}", f"TestUser{i}", f"Test bio {i}.") assert return_message["success"] is True agents.append(agent) @@ -146,7 +160,7 @@ async def test_multiple_interviews_action(setup_interview_test): "How do you feel about social media?", "What are your thoughts on remote work?" ] - + for i, (agent, prompt) in enumerate(zip(agents, interview_prompts)): return_message = await agent.env.action.interview(prompt) assert return_message["success"] is True @@ -155,24 +169,25 @@ async def test_multiple_interviews_action(setup_interview_test): # Verify all interviews were recorded conn = sqlite3.connect(test_db_filepath) cursor = conn.cursor() - cursor.execute(""" + cursor.execute( + """ SELECT user_id, info, action FROM trace WHERE action = ? ORDER BY user_id - """, (ActionType.INTERVIEW.value,)) - + """, (ActionType.INTERVIEW.value, )) + interview_records = cursor.fetchall() assert len(interview_records) == 3 - + for i, (user_id, info_json, action) in enumerate(interview_records): assert user_id == i assert action == ActionType.INTERVIEW.value - + info = json.loads(info_json) assert info["prompt"] == interview_prompts[i] assert "interview_id" in info - + conn.close() finally: @@ -206,7 +221,7 @@ async def test_interview_with_environment(): # Create a minimal agent graph for testing agent_graph = await generate_twitter_agent_graph( profile_path=("data/twitter_dataset/anonymous_topic_200_1h/" - "False_Business_0.csv"), + "False_Business_0.csv"), model=openai_model, available_actions=available_actions, ) @@ -224,32 +239,27 @@ async def test_interview_with_environment(): actions = {} actions[env.agent_graph.get_agent(0)] = ManualAction( action_type=ActionType.INTERVIEW, - action_args={"prompt": "What is your favorite color and why?"} - ) + action_args={"prompt": "What is your favorite color and why?"}) await env.step(actions) # Test multiple interviews in one step actions = {} actions[env.agent_graph.get_agent(1)] = ManualAction( action_type=ActionType.INTERVIEW, - action_args={"prompt": "What do you think about technology?"} - ) + action_args={"prompt": "What do you think about technology?"}) actions[env.agent_graph.get_agent(2)] = ManualAction( action_type=ActionType.INTERVIEW, - action_args={"prompt": "How do you spend your free time?"} - ) + action_args={"prompt": "How do you spend your free time?"}) await env.step(actions) # Test mixing interview with other actions actions = {} actions[env.agent_graph.get_agent(0)] = ManualAction( action_type=ActionType.CREATE_POST, - action_args={"content": "Hello world!"} - ) + action_args={"content": "Hello world!"}) actions[env.agent_graph.get_agent(3)] = ManualAction( action_type=ActionType.INTERVIEW, - action_args={"prompt": "What motivates you in life?"} - ) + action_args={"prompt": "What motivates you in life?"}) await env.step(actions) await env.close() @@ -257,13 +267,14 @@ async def test_interview_with_environment(): # Verify interview data in database conn = sqlite3.connect(db_path) cursor = conn.cursor() - cursor.execute(""" + cursor.execute( + """ SELECT user_id, info, created_at FROM trace WHERE action = ? ORDER BY created_at - """, (ActionType.INTERVIEW.value,)) - + """, (ActionType.INTERVIEW.value, )) + interview_records = cursor.fetchall() assert len(interview_records) == 4 # 3 interviews conducted @@ -271,10 +282,9 @@ async def test_interview_with_environment(): expected_prompts = [ "What is your favorite color and why?", "What do you think about technology?", - "How do you spend your free time?", - "What motivates you in life?" + "How do you spend your free time?", "What motivates you in life?" ] - + for i, (user_id, info_json, timestamp) in enumerate(interview_records): info = json.loads(info_json) assert info["prompt"] == expected_prompts[i] @@ -314,10 +324,15 @@ async def test_interview_data_retrieval(setup_interview_test): "active_threshold": [0.5] * 24, }, } - user_info = UserInfo(name=real_name, description=description, profile=profile) - agent = SocialAgent(agent_id=i, user_info=user_info, twitter_channel=channel) - - return_message = await agent.env.action.sign_up(f"testuser{i}", f"TestUser{i}", f"Bio {i}.") + user_info = UserInfo(name=real_name, + description=description, + profile=profile) + agent = SocialAgent(agent_id=i, + user_info=user_info, + twitter_channel=channel) + + return_message = await agent.env.action.sign_up( + f"testuser{i}", f"TestUser{i}", f"Bio {i}.") assert return_message["success"] is True agents.append(agent) @@ -325,39 +340,43 @@ async def test_interview_data_retrieval(setup_interview_test): interview_data = [ (0, "What is your favorite programming language?"), (1, "How do you approach problem-solving?"), - (0, "What are your career goals?"), # Second interview with agent 0 + (0, + "What are your career goals?"), # Second interview with agent 0 ] - + for agent_id, prompt in interview_data: - return_message = await agents[agent_id].env.action.interview(prompt) + return_message = await agents[agent_id].env.action.interview(prompt + ) assert return_message["success"] is True # Test data retrieval functions conn = sqlite3.connect(test_db_filepath) cursor = conn.cursor() - + # Test 1: Get all interviews - cursor.execute(""" + cursor.execute( + """ SELECT user_id, info, created_at FROM trace WHERE action = ? ORDER BY created_at - """, (ActionType.INTERVIEW.value,)) - + """, (ActionType.INTERVIEW.value, )) + all_interviews = cursor.fetchall() assert len(all_interviews) == 3 - + # Test 2: Get interviews for specific agent - cursor.execute(""" + cursor.execute( + """ SELECT user_id, info, created_at FROM trace WHERE action = ? AND user_id = ? ORDER BY created_at """, (ActionType.INTERVIEW.value, 0)) - + agent_0_interviews = cursor.fetchall() assert len(agent_0_interviews) == 2 - + # Test 3: Verify interview content for i, (user_id, info_json, timestamp) in enumerate(all_interviews): info = json.loads(info_json) @@ -365,7 +384,7 @@ async def test_interview_data_retrieval(setup_interview_test): assert user_id == expected_agent_id assert info["prompt"] == expected_prompt assert "interview_id" in info - + conn.close() finally: @@ -396,34 +415,41 @@ async def test_interview_error_handling(setup_interview_test): "active_threshold": [0.5] * 24, }, } - user_info = UserInfo(name=real_name, description=description, profile=profile) - agent = SocialAgent(agent_id=0, user_info=user_info, twitter_channel=channel) - - return_message = await agent.env.action.sign_up("testuser", "TestUser", "Test bio.") + user_info = UserInfo(name=real_name, + description=description, + profile=profile) + agent = SocialAgent(agent_id=0, + user_info=user_info, + twitter_channel=channel) + + return_message = await agent.env.action.sign_up( + "testuser", "TestUser", "Test bio.") assert return_message["success"] is True agents.append(agent) # Test with empty prompt return_message = await agent.env.action.interview("") - assert return_message["success"] is True # Empty prompt should still work - + assert return_message[ + "success"] is True # Empty prompt should still work + # Test with very long prompt long_prompt = "What do you think about " + "very " * 1000 + "long questions?" return_message = await agent.env.action.interview(long_prompt) assert return_message["success"] is True - + # Verify both interviews were recorded conn = sqlite3.connect(test_db_filepath) cursor = conn.cursor() - cursor.execute(""" + cursor.execute( + """ SELECT COUNT(*) FROM trace WHERE action = ? AND user_id = ? """, (ActionType.INTERVIEW.value, 0)) - + count = cursor.fetchone()[0] assert count == 2 - + conn.close() finally: @@ -434,16 +460,16 @@ async def test_interview_error_handling(setup_interview_test): if __name__ == "__main__": # Run tests individually for debugging import asyncio - + async def run_tests(): print("Running interview action tests...") - + # You can run individual tests here for debugging # await test_single_interview_action(None) # await test_multiple_interviews_action(None) # await test_interview_data_retrieval(None) # await test_interview_error_handling(None) - + print("All tests completed!") - - # asyncio.run(run_tests()) \ No newline at end of file + + # asyncio.run(run_tests()) From b0fc96c5b9e59fa6d85a6141e39f7234942639e3 Mon Sep 17 00:00:00 2001 From: zhangzaibin Date: Fri, 23 May 2025 10:19:00 +0800 Subject: [PATCH 20/32] fix precommit --- test/agent/test_interview_action.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/test/agent/test_interview_action.py b/test/agent/test_interview_action.py index 4ddbefbe..7facce4d 100644 --- a/test/agent/test_interview_action.py +++ b/test/agent/test_interview_action.py @@ -23,8 +23,7 @@ from camel.types import ModelPlatformType, ModelType import oasis -from oasis import (ActionType, ManualAction, - generate_twitter_agent_graph) +from oasis import ActionType, ManualAction, generate_twitter_agent_graph from oasis.social_agent.agent import SocialAgent from oasis.social_platform.channel import Channel from oasis.social_platform.config import UserInfo From 6a8d1841065c76b647eb738f5dba5364426a9ffc Mon Sep 17 00:00:00 2001 From: zhangzaibin Date: Fri, 23 May 2025 10:46:03 +0800 Subject: [PATCH 21/32] fix format --- examples/twitter_interview.py | 15 +++++++++------ oasis/environment/env.py | 12 +++++------- oasis/social_agent/agent.py | 12 ------------ oasis/social_agent/agent_action.py | 7 ++++--- oasis/social_platform/platform.py | 2 +- test/agent/test_interview_action.py | 7 +------ 6 files changed, 20 insertions(+), 35 deletions(-) diff --git a/examples/twitter_interview.py b/examples/twitter_interview.py index e3407f68..d2a3c8c2 100644 --- a/examples/twitter_interview.py +++ b/examples/twitter_interview.py @@ -31,7 +31,8 @@ async def main(): ) # Define the available actions for the agents - # Note: INTERVIEW is NOT included here to prevent LLM from automatically selecting it + # Note: INTERVIEW is NOT included here to + # prevent LLM from automatically selecting it # INTERVIEW can still be used manually via ManualAction available_actions = [ ActionType.CREATE_POST, @@ -88,12 +89,12 @@ async def main(): action_args={"content": "Earth is not flat."}) # Create an interview action to ask Agent 0 about their views - # ActionType.INTERVIEW is a external action, which can not be exceuted by agents themselves + # ActionType.INTERVIEW is a external action, + # which can not be exceuted by agents themselves actions_3[env.agent_graph.get_agent(0)] = ManualAction( action_type=ActionType.INTERVIEW, action_args={ - "prompt": - "What do you think about the shape of the Earth? Please explain your reasoning." + "prompt": "What do you think about the shape of the Earth?" }) await env.step(actions_3) @@ -135,8 +136,10 @@ async def main(): conn = sqlite3.connect(db_path) cursor = conn.cursor() # Here we query all interview records from the database - # We use ActionType.INTERVIEW.value as the query condition to get all interview records - # Each record contains user ID, interview information (in JSON format), and creation timestamp + # We use ActionType.INTERVIEW.value as the query condition + # to get all interview records + # Each record contains user ID, interview information + # (in JSON format), and creation timestamp cursor.execute( """ SELECT user_id, info, created_at diff --git a/oasis/environment/env.py b/oasis/environment/env.py index 21439b6c..6adb375c 100644 --- a/oasis/environment/env.py +++ b/oasis/environment/env.py @@ -213,9 +213,8 @@ async def _perform_manual_interview_action(self, agent: SocialAgent, # Check if the platform action was successful if not action_result.get("success", False): - env_log.warning( - f"Failed to record interview request: {action_result.get('error', 'Unknown error')}" - ) + error = action_result.get('error', 'Unknown error') + env_log.warning(f"Failed to record interview request: {error}") return # Get the interview_id from the result @@ -239,12 +238,11 @@ async def _perform_manual_interview_action(self, agent: SocialAgent, if response_result.get("success", False): env_log.info( - f"Successfully recorded interview response for agent {agent.social_agent_id}" - ) + f"Recorded response for agent {agent.social_agent_id}") else: + error_msg = response_result.get('error', 'Unknown error') env_log.warning( - f"Failed to record interview response: {response_result.get('error', 'Unknown error')}" - ) + f"Failed to record interview response: {error_msg}") except Exception as e: env_log.error(f"Error recording interview response: {str(e)}") diff --git a/oasis/social_agent/agent.py b/oasis/social_agent/agent.py index f0336af5..b49cfe49 100644 --- a/oasis/social_agent/agent.py +++ b/oasis/social_agent/agent.py @@ -193,18 +193,6 @@ async def perform_test(self): async def perform_interview(self, interview_prompt: str): """ Perform an interview with the agent. - - This method allows an external entity to ask a specific question to the agent - and get a response based on the agent's persona and memory context. The interview - doesn't affect the agent's memory and is used primarily for evaluation or - extracting the agent's opinions on specific topics. - - Args: - interview_prompt (str): The question or prompt to ask the agent during the interview. - - Returns: - dict: A dictionary containing the agent's user_id, the full prompt context, - and the agent's response content. """ # user conduct test to agent _ = BaseMessage.make_user_message(role_name="User", diff --git a/oasis/social_agent/agent_action.py b/oasis/social_agent/agent_action.py index a5476c31..528388e3 100644 --- a/oasis/social_agent/agent_action.py +++ b/oasis/social_agent/agent_action.py @@ -648,14 +648,15 @@ async def interview(self, prompt: str): r"""Interview an agent with the given prompt. This method invokes an asynchronous action to interview an agent with a - specific prompt question. Upon successful execution, it returns a dictionary - containing a success status and an interview_id for tracking. + specific prompt question. Upon successful execution, + it returns a dictionary containing a success status + and an interview_id for tracking. Args: prompt (str): The interview question or prompt to ask the agent. Returns: - dict: A dictionary containing success status and interview tracking information. + dict: A dictionary containing success status and an interview_id. Example of a successful return: { diff --git a/oasis/social_platform/platform.py b/oasis/social_platform/platform.py index 97c6c4be..676be553 100644 --- a/oasis/social_platform/platform.py +++ b/oasis/social_platform/platform.py @@ -1349,7 +1349,7 @@ async def interview(self, agent_id: int, prompt: str): prompt (str): The interview question or prompt. Returns: - dict: A dictionary with success status and an interview_id for tracking. + dict: A dictionary with success status and an interview_id. """ if self.recsys_type == RecsysType.REDDIT: current_time = self.sandbox_clock.time_transfer( diff --git a/test/agent/test_interview_action.py b/test/agent/test_interview_action.py index 7facce4d..b8d11b45 100644 --- a/test/agent/test_interview_action.py +++ b/test/agent/test_interview_action.py @@ -202,13 +202,11 @@ async def test_interview_with_environment(): db_path = tmp_file.name try: - # Create a mock model (we'll use a simple mock since we're testing the action flow) openai_model = ModelFactory.create( model_platform=ModelPlatformType.OPENAI, model_type=ModelType.GPT_4O_MINI, ) - # Define available actions (excluding INTERVIEW to prevent automatic selection) available_actions = [ ActionType.CREATE_POST, ActionType.LIKE_POST, @@ -288,7 +286,6 @@ async def test_interview_with_environment(): info = json.loads(info_json) assert info["prompt"] == expected_prompts[i] assert "interview_id" in info - # Check if response was recorded (it should be present after the interview) assert "response" in info conn.close() @@ -432,7 +429,7 @@ async def test_interview_error_handling(setup_interview_test): "success"] is True # Empty prompt should still work # Test with very long prompt - long_prompt = "What do you think about " + "very " * 1000 + "long questions?" + long_prompt = "What do you think about your state." return_message = await agent.env.action.interview(long_prompt) assert return_message["success"] is True @@ -458,8 +455,6 @@ async def test_interview_error_handling(setup_interview_test): if __name__ == "__main__": # Run tests individually for debugging - import asyncio - async def run_tests(): print("Running interview action tests...") From 14b0eb9727a8b0ccd1aec0c891cd2166dc83d74e Mon Sep 17 00:00:00 2001 From: liuxiaosu Date: Sun, 25 May 2025 18:50:26 +0800 Subject: [PATCH 22/32] issue #101 change twitter_channel to channel --- oasis/social_agent/agent.py | 6 +++--- oasis/social_agent/agents_generator.py | 18 +++++++++--------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/oasis/social_agent/agent.py b/oasis/social_agent/agent.py index f9fb8830..d58bcb64 100644 --- a/oasis/social_agent/agent.py +++ b/oasis/social_agent/agent.py @@ -59,7 +59,7 @@ def __init__(self, agent_id: int, user_info: UserInfo, user_info_template: TextPrompt | None = None, - twitter_channel: Channel | None = None, + channel: Channel | None = None, model: Optional[Union[BaseModelBackend, List[BaseModelBackend]]] = None, agent_graph: "AgentGraph" = None, @@ -68,9 +68,9 @@ def __init__(self, single_iteration: bool = True): self.social_agent_id = agent_id self.user_info = user_info - self.twitter_channel = twitter_channel or Channel() + self.channel = channel or Channel() self.env = SocialEnvironment( - SocialAction(agent_id, self.twitter_channel)) + SocialAction(agent_id, self.channel)) if user_info_template is None: system_message_content = self.user_info.to_system_message() else: diff --git a/oasis/social_agent/agents_generator.py b/oasis/social_agent/agents_generator.py index 51a591b1..39191c0d 100644 --- a/oasis/social_agent/agents_generator.py +++ b/oasis/social_agent/agents_generator.py @@ -33,7 +33,7 @@ async def generate_agents( agent_info_path: str, - twitter_channel: Channel, + channel: Channel, model: Union[BaseModelBackend, List[BaseModelBackend]], start_time, recsys_type: str = "twitter", @@ -93,7 +93,7 @@ class instances. agent = SocialAgent( agent_id=agent_id, user_info=user_info, - twitter_channel=twitter_channel, + channel=channel, model=model, agent_graph=agent_graph, available_actions=available_actions, @@ -178,7 +178,7 @@ class instances. async def generate_agents_100w( agent_info_path: str, - twitter_channel: Channel, + channel: Channel, start_time, model: Union[BaseModelBackend, List[BaseModelBackend]], recsys_type: str = "twitter", @@ -248,7 +248,7 @@ class instances. agent = SocialAgent( agent_id=agent_id, user_info=user_info, - twitter_channel=twitter_channel, + channel=channel, model=model, agent_graph=agent_graph, available_actions=available_actions, @@ -362,7 +362,7 @@ async def generate_controllable_agents( # controllable的agent_id全都在llm agent的agent_id的前面 agent = SocialAgent(agent_id=i, user_info=user_info, - twitter_channel=channel, + channel=channel, agent_graph=agent_graph) # Add agent to the agent graph agent_graph.add_agent(agent) @@ -411,7 +411,7 @@ async def gen_control_agents_with_data( agent = SocialAgent( agent_id=i, user_info=user_info, - twitter_channel=channel, + channel=channel, agent_graph=agent_graph, model=models, available_actions=None, @@ -430,7 +430,7 @@ async def gen_control_agents_with_data( async def generate_reddit_agents( agent_info_path: str, - twitter_channel: Channel, + channel: Channel, agent_graph: AgentGraph | None = None, agent_user_id_mapping: dict[int, int] | None = None, follow_post_agent: bool = False, @@ -472,7 +472,7 @@ async def process_agent(i): agent = SocialAgent( agent_id=i + control_user_num, user_info=user_info, - twitter_channel=twitter_channel, + channel=channel, agent_graph=agent_graph, model=model, available_actions=available_actions, @@ -538,7 +538,7 @@ def connect_platform_channel( agent_graph: AgentGraph | None = None, ) -> AgentGraph: for _, agent in agent_graph.get_agents(): - agent.twitter_channel = channel + agent.channel = channel agent.env.action.channel = channel return agent_graph From c350b3adc42c31c1cba001d1d2755133f07c53d6 Mon Sep 17 00:00:00 2001 From: zhangzaibin Date: Fri, 30 May 2025 14:21:04 +0800 Subject: [PATCH 23/32] refactor interview --- oasis/environment/env.py | 69 ++++------------------------- oasis/social_agent/agent.py | 11 ++++- oasis/social_platform/platform.py | 73 ++++++++++--------------------- 3 files changed, 41 insertions(+), 112 deletions(-) diff --git a/oasis/environment/env.py b/oasis/environment/env.py index 6adb375c..5d30c08f 100644 --- a/oasis/environment/env.py +++ b/oasis/environment/env.py @@ -159,10 +159,12 @@ async def step( for single_action in action: if isinstance(single_action, ManualAction): if single_action.action_type == ActionType.INTERVIEW: - # Special handling for interview actions + # Use the agent's perform_interview method for interview actions + interview_prompt = single_action.action_args.get( + "prompt", "") tasks.append( - self._perform_manual_interview_action( - agent, single_action)) + self._perform_interview_action( + agent, interview_prompt)) else: tasks.append( agent.perform_action_by_data( @@ -173,10 +175,11 @@ async def step( else: if isinstance(action, ManualAction): if action.action_type == ActionType.INTERVIEW: - # Special handling for interview actions + # Use the agent's perform_interview method for interview actions + interview_prompt = action.action_args.get("prompt", "") tasks.append( - self._perform_manual_interview_action( - agent, action)) + self._perform_interview_action( + agent, interview_prompt)) else: tasks.append( agent.perform_action_by_data( @@ -192,60 +195,6 @@ async def step( if self.platform_type == DefaultPlatformType.TWITTER: self.platform.sandbox_clock.time_step += 1 - async def _perform_manual_interview_action(self, agent: SocialAgent, - action: ManualAction) -> None: - r"""Perform a manual interview action. - - Args: - agent(SocialAgent): The agent to interview. - action(ManualAction): The interview action to perform. - """ - # Extract interview prompt from args - interview_prompt = action.action_args.get("prompt", "") - if not interview_prompt: - env_log.warning( - f"Empty interview prompt for agent {agent.social_agent_id}") - return - - # First, perform the regular action by sending it to the platform - action_result = await agent.perform_action_by_data( - action.action_type, **action.action_args) - - # Check if the platform action was successful - if not action_result.get("success", False): - error = action_result.get('error', 'Unknown error') - env_log.warning(f"Failed to record interview request: {error}") - return - - # Get the interview_id from the result - interview_id = action_result.get("interview_id") - if not interview_id: - env_log.warning("No interview_id returned from platform") - return - - # Perform the interview to get the actual response - result = await self._perform_interview_action(agent, interview_prompt) - - # Get the response content - response = result.get("content", "") - - try: - # Record the response using the platform's method - response_result = await self.platform.record_interview_response( - agent_id=agent.social_agent_id, - interview_id=interview_id, - response=response) - - if response_result.get("success", False): - env_log.info( - f"Recorded response for agent {agent.social_agent_id}") - else: - error_msg = response_result.get('error', 'Unknown error') - env_log.warning( - f"Failed to record interview response: {error_msg}") - except Exception as e: - env_log.error(f"Error recording interview response: {str(e)}") - async def close(self) -> None: r"""Stop the platform and close the environment. """ diff --git a/oasis/social_agent/agent.py b/oasis/social_agent/agent.py index b49cfe49..2ba3de11 100644 --- a/oasis/social_agent/agent.py +++ b/oasis/social_agent/agent.py @@ -217,15 +217,24 @@ async def perform_interview(self, interview_prompt: str): # NOTE: this is a temporary solution. # Camel can not stop updating the agents' memory after stop and astep # now. + response = self._get_model_response(openai_messages=openai_messages, num_tokens=num_tokens) content = response.output_messages[0].content agent_log.info( f"Agent {self.social_agent_id} receive response: {content}") + + # Record the complete interview (prompt + response) through the channel + interview_data = {"prompt": interview_prompt, "response": content} + result = await self.env.action.perform_action( + interview_data, ActionType.INTERVIEW.value) + + # Return the combined result return { "user_id": self.social_agent_id, "prompt": openai_messages, - "content": content + "content": content, + "success": result.get("success", False) } async def perform_action_by_hci(self) -> Any: diff --git a/oasis/social_platform/platform.py b/oasis/social_platform/platform.py index 676be553..67c6cc9f 100644 --- a/oasis/social_platform/platform.py +++ b/oasis/social_platform/platform.py @@ -1341,15 +1341,15 @@ async def do_nothing(self, agent_id: int): except Exception as e: return {"success": False, "error": str(e)} - async def interview(self, agent_id: int, prompt: str): - """Interview an agent with the given prompt. + async def interview(self, agent_id: int, interview_data): + """Interview an agent with the given prompt and record the response. Args: agent_id (int): The ID of the agent being interviewed. - prompt (str): The interview question or prompt. + interview_data: Either a string (prompt only) or dict with prompt and response. Returns: - dict: A dictionary with success status and an interview_id. + dict: A dictionary with success status. """ if self.recsys_type == RecsysType.REDDIT: current_time = self.sandbox_clock.time_transfer( @@ -1359,57 +1359,28 @@ async def interview(self, agent_id: int, prompt: str): try: user_id = agent_id - # Create a unique interview ID (using timestamp + user_id) - interview_id = f"{current_time}_{user_id}" + # Handle both old format (string prompt) and new format (dict with prompt + response) + if isinstance(interview_data, str): + # Old format: just the prompt + prompt = interview_data + response = None + interview_id = f"{current_time}_{user_id}" + action_info = {"prompt": prompt, "interview_id": interview_id} + else: + # New format: dict with prompt and response + prompt = interview_data.get("prompt", "") + response = interview_data.get("response", "") + interview_id = f"{current_time}_{user_id}" + action_info = { + "prompt": prompt, + "response": response, + "interview_id": interview_id + } - # Record the interview request in the trace table - action_info = {"prompt": prompt, "interview_id": interview_id} + # Record the interview in the trace table self.pl_utils._record_trace(user_id, ActionType.INTERVIEW.value, action_info, current_time) return {"success": True, "interview_id": interview_id} except Exception as e: return {"success": False, "error": str(e)} - - async def record_interview_response(self, agent_id: int, interview_id: str, - response: str): - """Record the response for an interview. - - Args: - agent_id (int): The ID of the agent who was interviewed. - interview_id (str): The unique ID of the interview. - response (str): The agent's response to the interview. - - Returns: - dict: A dictionary with success status. - TODO: maybe move this function to utils - """ - try: - # First, fetch the trace record for this interview - query = """SELECT rowid, info FROM trace - WHERE user_id = ? AND action = ? - ORDER BY created_at DESC LIMIT 1""" - self.pl_utils._execute_db_command( - query, (agent_id, ActionType.INTERVIEW.value)) - last_interview_data = self.db_cursor.fetchone() - - if last_interview_data: - rowid, info_json = last_interview_data - import json - info = json.loads(info_json) - - # Verify this is the correct interview record - if info.get("interview_id") == interview_id: - # Update with the response - info["response"] = response - - # Update the trace record - update_query = "UPDATE trace SET info = ? WHERE rowid = ?" - self.pl_utils._execute_db_command( - update_query, (json.dumps(info), rowid), commit=True) - - return {"success": True} - - return {"success": False, "error": "Interview record not found"} - except Exception as e: - return {"success": False, "error": str(e)} From 87cbf8ae14c3fd931a19893c5dbe9e468104980b Mon Sep 17 00:00:00 2001 From: yiyiyi0817 <1359513271@qq.com> Date: Fri, 30 May 2025 14:39:16 +0800 Subject: [PATCH 24/32] update qr code --- assets/wechatgroup.png | Bin 240520 -> 234605 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/assets/wechatgroup.png b/assets/wechatgroup.png index 8e37d31128858409ef8a47529481e94a0be20965..6a27870d7be2ea27b6b4c9396f6c038f0e3a5708 100644 GIT binary patch literal 234605 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 z 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 z zSG{rIBE#PIbTZu808sp}&n5&9Ob zk{pTQ`V6$s>ylCMf|(0F6#iyh7W&&Qc=6U%6<+bt$!n6iGJGydAS+o`zDst=Y_w7P za6lI^j${OMNa7*PO9Q}&#pK*z_YGw;;}7bu-}*R{9tXb)%zVU=uMPbMTkpR}Gtta} zuUm=j_zT2k9nz#bwVMx&L6rEqexm&t4FoOK=8kGM}Uq|y_@mTpEychq@KK+-JUH`xR zj$>r!|HNmfIg%j&ZWEEPZGd#ytl^1QUhyu2M3bcux2)Tq#7`aLqJEZ)dK)@xy>K&- zPkb>Oi6j7h90WN4IaDG7(@L5rkP~Xm{c00lW8Ci~$7L+*^piuZ5?_1BmWTN-KcadiQ2SwXz|H?@o9Qbdc9P&BB5Ni$ss4I_Rg(E?$V^ja6f z@XXyvk#LVjw~ipGvNd%@CQUeNZ=$V(B(=`9K~sJS0H|4dC8CY9jA+paNkh1o&3M2{ zJxu9J7w(iB$bI(X`bg8jBe(q>J-a;AZKJnN`0SQdTT7TK zpEFSzy3B2EnDZLPD8mQhG~}WpS6O~03j>JMh1H?NRUB`JyfVquBE+TMRiVOwi^DlE z-Ei%4iCk%Vs2j*%FVq#8j%t%5`z--8Y079__G9Hqc%X5Zu}*VUUGBblj7+`qY`??- znCZg@Z~YajZhA>-s^2IM%u)fkhOK>(ZmR`?H;9#=H5_qLp06p};pH@7Iy=#-cIq?l7EwoVzWeqQ=Zel1Jfw~}E#itdT45sd_` zuP%CFab{x`3c%|`H=j5QzmO?|`i5~8*=@}bhnC1t*ZPLI_wg#pYHm_*!k2dv7p znZ8^EkzE#Oi3LEfP05w%spiQcS3snM90XDC7;neI+d33L{oT$H)$o({AD$Hm_S015>(mvRrcbmM8KNt9F8j`zt zbKcisfI)%Pcm+pyS@siFE`L*++=G-~wp~aez|qYSpg!iyk2{VAHUY5#>kakrH2o=_ zj9VfEt&2+6zpaKVr|a~gH;+4k(@vXlQ$%n=RTKE@A5R|`OeLLr9KPo8<;5FuO=Ym2 znUNOA1cc%r2P8g!+eJSiKJPf4N>IgWc8Ca8WtdF_!CqqF@D={hPdSm|7mwUTE$0DM z7C>*ArCyjZP9f^=e7yQDEbj9x?-Lg6eGF}W)Iy8PS)P{O`w#;{B%n@9;k5r$@X_!4Lcn9ZlqK99LUQ6_m$rnLO`IRH+h4p=zR8yD)W zqFJ3OoX_7mI!p%iJe6v4qSht7_mkLIdw5*#_eKcW57e^PwN(((H8@O{rtqzpgF}@dSxzUItvD_Isc}S0ALy27FC2){>IW9i^mFMJ_W}3mb_B? z1mjnY`*Lu`gHIWKiZzzLOZ#(JdU_Bz7kJCiem^T`5%&SMM_0DVaU2^QIH*lgCQh|o zpG^7^5^U9iqcnICY_f8+YNyoplPUob?StEn)0q*p&*CWq*{i{AF)!@UDS{>mHuV6?Vl&HJ zpMIaa`<)NhNUYhc%gqxD{*Fs)BIgmNtI%^HdCQCON2atP{cVQ>F#We>yJc%_m&8et zy0i|Z)Vj3nh8pM{s4?*XXKXbluL_6sG;(FtRY;Cp9fuFUO1pLG@-F{9HnDJtcc7{L zHj)Riw4+7!tORH;^4g!hu=$i3T0(XHCw<_96SE#cF7L#qSK%E|HT;4 zP4{fC%_joI2>=FQp1Q~uUQg7_vqZBS<6UcpPBC1qijv7UOXO}QucgZNmLBm^7;mjE z(h&t$>t4nt9yOT&CU)m+pIbI(IwV`CukhcY_vcdUbOQlrtr>k3`Tki1#1r#Egb728 z0;qwk9cM`&>0qDb6~!7toSjpyrt#Ib`qfADJnS|c#jyb%l!Rhp+7ec#=dlQGzR~m9 z9CLt|H`<{tb1CEX+CFfu1$8JGT-N;qI~F8N6DM#nrqezvJUQ@H6Y<@HM`QV;lgzMR z-qN|Dh71WpcYg--{o@=5#FGdnvhU^HE?vUMaCIy{}w8UpTBdR=paQTTfwE?B>r`flkp0Dy174p{w zG7NiE&-5v6D1Id845eS2W(3{r`oS8yX>l-XZ#%cp;iIC=90!I;el0t;H@wzHAEg5x zM0XE`V=e$FH-@WYnJwPNY|Q6dq3vsaDWm0FX{lhzwDe*i5ps)Rb4*(U`ehMkVG1V7 z^nm%uGHg*nKW;qPynZ!)^Xn(;)p#TKP;TRQvh|sFk0|xQh7)@9pM;GS{Jz?%g z4pfKS#+H+TNi?R}7E?ZjV^17zAHTA!3cpAI>~=oc0OPorXS?rMGv0?Z8ICJ{W8~2FLHWp4vMb$u zui@m&xD@zpD;$zMG-FJ7fsm_LMO}WHAxq0h|@Mc zfWj>M7f9T)143f(f}CEy3?ehVk3TE_`=-;TR^qce0F@a<6F3++w%87gat?aa)vRTe^`5WI+LaJvkC_Rh&Fu($T$8HRBcxRaYCkki2c%sUP+R-RR zU4osYqc`g)Oh6|l{Z8>LR%LHp9;Nh%>a+;hjLx$>Bs)25QY$PB@2-D+=dp0Csj;nF zzLn$okg@Ev<}3p_T2aM;aAubak=pOiFc@dH>7ix!o#j%*ZKBUI(9HQ5G*wK?@mg{M zCHQrnP4OYg@NZz>ZUzU9Ze3z2g>eMWOi036CTQ8a;@DctiCgmeqti#%6r_!>EnU$} z2qxW4eEBuFm)2#y+Yl^mFp8?n?!wHS5myI^FDiKWfRgQSWPIYQc(x$YcD)Vb_nypAtykcaw%|y*xo({9driSK5YsuVw z+PB0QtKrMpGldu1Bi_8pIM9Ae;-U}iyCsF52x9d)dD7pIj@`-A2W$uXs4_`j55hu8Km3C&dvT1 zFaLR`{t0N6^_nA;oe21dH=n&nG9#z27k8oKL|Cdv$aivWHZORjr#nyv!YU2c=elh} zl`i@zr8Cm`rMv4xMx8YmmS4>dooa1e9x@9v977n-5M^TR3fWV zDP}QS6JfXXhTZozxDvA?Mv^C%5}x6}2?)ofi7C~x=f-uI#>V=lMoUj`%b%Bd_?>l1 z-+rOqph>@H1k_$YXo|s#dRI!!V{sykH%eum2f}G%3)xGG!O4Xu8PYtm#MC^tc_JgjXg zAnuVslzsuzHXosFq%iKzpVLnnMbJf?dD{j19P!-Ib2(R}vTlo3f?7ZKr=MeGAot)b zu@R)(2>4mWAq1Fxv1$o=mWHGSPL9eS8dj~nz2=<`Ra)-f(VQOk-eiq zQVQ84c;kGM5kbpTXjm?pbKY)l&VKG4i(4Q=0!vzn-XlJ~L4PCFlXYM?eu+qj>sXTM zLbG{dm=3!~s*P5>K8DxLwAE`pWi(zKxh_` zAw&)Ll|>fM-ywlm{f+yvcS9XGc_e;h=_%3qw;F=Z1C*)^9F)w(+yfTTg5je~Q7PJN z32o{GfhYH^rgg>VZch&W#ELfPyS&O_rl}^^&*ysC38itNB zeTZcU5VtkBY~{1>tTmE6NTfQ5C377RJc&1Otb45j#qDtZYA!sJ*H!yjx%~k~HMes{ zyo2t(J%bL5Y7ETbtVV~6za&Q{f_gM z`j7O>wGb8lR<%Z}d|e2s5>%T8=1G!L`^NoxB9IF9)kpTLI^lw$Ih7OVwO#)C@@wXF zaZA*&;r$F5%(HQOMdl zrCzC;?+|6SYLzAz6O5RUfAG0g5uit;Jt8KN>_PMDL8KyJAd`fSy34ROacUasH(kW zEhBsuo5-IB#AGl-$hQOCv7*L?EY;-6ky%(lRkhwn$MDWKey#i(rA0xntXB5*N6B{D zd~dE{<;177<~7TlVQ;M{HmNIYLTfY=D4(HUJp=^N6-R1YkR-yFf8*w{fDYknU_z8n zfJ&)+&DI^e$~l$#z^mt9IP+`JCx(px=p^m-Suz|hR^t&e4tWO?`PwP+gc9Nm- z+wuhsd6E0iFxppQ7B%`z~2!17ykc(tsFlP1v{zWaWB(*EYOV6Q>COi%*TD0`x^ z%(dn7RzQyv*^4lYA7nryMLZwQNqR}9d2b}yx1PL~o}6J^V|f$USIGABFVGBc>#0nK zY4YRiIQp38wvQeH-{;?!i@^ym<=$_+kN+ zd}n)p_b!r05dq%+KbR+K7jAG@3prB35sq)S^)%Ljo zhFm=}{!T|L>D9quLt)wUvowgu;!J7RqKLLM;wI62NfsioNbD1Bnv`craE8Oyl%+l! z$Jv|TDZNhXCNKKK|4}N{AqIOw;-w4%<(%7@`-)6Q3R4Oj?3w&TO7=f0{5U_~)a!;- zeWJ3lb5|qzSp8B_fG}>1fFstCT(>dQ?zrPFpBJ@2O6R9{&%G2Cu|Ds|^R8Y?=bPxl0`2!gaN7<$+Le80`5Vk7p{ zfEY6aKfu1@K9E=lC0G&9R)JK%p>{AE@%okzH!(!nizi*htgJH8G2hePiRt8=GKQ0y z$y;bj4{uCRIQ!Vb5^~2!7;zit(ujE)H1I0#at2@29d zsse&EK`FsPlLskE2cr}L5s(gw2}ODb0YL?oUPA`~3B5Pzy%!Mz2}lT}Ja_y4zB1nD z{l0sDob*sr@R8kwHk}_S!M;2xlII@T6t9=f&373j*%wOph1`Im9 zi`<7O58wT^Iy|%0(kzXQ4+(25bv}Kecx-BV$@l)CNXw$J38$@w#?ZyHLo~u4GeB%* zA$KfQp;6$7S{V-YX%HU4D;r|kcgCEYy`|r|K20?{Lq{h^`=Otyf78L|W$T04ld9rNx=IoxLn)I^mkcz_QS_o8_1>_cCEw&(sB0QTx24ZBOK#n zfzt0r5Y}>KIK)K(#;TEjBhlsS-7MklwSZ(gSDv!rPcy_#@k^mMdCoJB4aXtMX?C-6 ziCoy`s+D~zsrbU}R|-ey(uMCEGf7uVpE@N3NmgE_`pj_dW1&z;&jEN-C>$RtJ>WIr zhM#ixV`WUl)X^aPYFU|-l+>O<$d=0Ui1J>px5l@Ff<2RTa>2ByIvl|*m@FG^f#

z#Y}r)zZ|cJALMkz)ZF~@5y9{PH<5XO$a z{&4wc(}g!r^SXIM-?3gB&~x1z8l`{t%v>j-Tv@+AHph+?u8N@{#=`;7E>FoK$ARj_ zY%!)0a5%^vL#qHeOowTbXo@EoRC29cDRwLJ^F1HlzT$Gu?c^O;g92U}6LtRx> zKA`wBQ`-UGSIZ87h*xOzQ z*_-#tHsJ-l;}}tCzZg{LG<$+&4_XzHH`JAspu*^%`C{kI)EYwFSGo3u%HeFF8hdqP zLwQ5kX_rIYw>s~ntF|_AapB^9?FqNnSw>Mcu+Z7EFJ(koOk7>@U#@O7jDl^e{$>!n zR7)>k8wjOHqzXg={}qW=UhXC)?w1xes80gdfT2-whB zgceAW&G=7lWHBP97aabE2)LJ1CHU~leGsxsF@cU0k6NE>W&_&E ze8kTbdU2CyKXI97C>LzJjLJ!_VR?^(ypcGG0p_w-zz<;gY5fjcZy{TUsbEgC zq|grLuhUn&zQx4;Xo>g*cRg1w-f{pMtR?VMKr{#rzu;uQ@H<#(wEJrD67%!(&rLA5 zpT0P->=D+;ptsWzn*YX~7-Yg50sdn76!v4J2c^5jZWw0 zwGQ-LTzKR(TY%gmqOaw*Kok)uN`rIo$?8}!w4u9L_>sgL9Z9d(+~%{38Y#A)7)pLr zT@~^OH`4SQVpcKT)^GXKiL#4ag$8HRV4=}o^xtjGro3MBYW~{PyYq{6bg``}g^num z^P{Djm)}}Ah1ausmgdHm9fD8}OYz5QGqvItB>yuPW8|K=y5v);BnAzg zh5rp9kMgNt9;5>=3eEa)1p40Ckmm4tv9$-TZJ8sUVq2<0q{0dfWe zo#WjdY+HXDf?+jtN^`>N^&4$VeF^<_?L$3EaqabQ57)y^-Y1yFtU&_A)cGg!cWKrT zG*<9lC^K4cN;2luyJT`o=0ik#yX>$K$AZpTGl{FMyMW_^n}X$M-K4j&@OsVR?e1^Y z2TKMY^hSt{Idv)a*PGH2URCyNoU4$IfZQ8%ehuTjk>4u5QK9|$4ssX?>CkmH`skle5!QiN3FUFxdd6w zJ}ngEbG`;b^S}!~j#UvrRmLTLZLWKk5td%?oZi#*@M}L^s!yU~_IY)?CoR8K8+dHV zQz%w4zZrP~RRx`G(s|19<4ErvMWF4c-oR0h3Qsot9Na^AL~>3hvEb!h!~19Uwo zj*z7T{4l2NZWnaqElj=_2wxJVroS2?p)6iO^{-jJVASi;ae?1{>n**|p~Au)9D8l5 zd()V%$oT!lZVt(Tj#>y9xlR^WIQjZ*%3C6WN9SUl+^zDTeM8zpza&oIj6;{-Ln}5G zVmnKbp=G49g&+{Mobew#k>r#J<&k3f5pSoWJbgqat3gp4`GlLJY6L zXe{P*UVD~JYq*``YIuB3R~@ zT2m;c%{T1XC>{H??{Y?;?)~hNkTAM8#dPsgMczuP8p`6N7-TJ>YG(o-jleHI2YI|? z+0jV=boB$8`iI_lZ9#%riJdll=tpXjzT9T7_>I`lp6|izG5zU>%ZlyF@u7N{#i2uW z7&|_%zx}wU&d8cN`1heWDK|$#`1ON%-h7p~vk>?qGbdiPv~zZ+mikO%dvrnVi!NW+ zg&5n9Q=3b~3x})Hfk>h$L0!vvRf3b-5IdAzILBNqn7&&k{FJxjb;JUo{s)j;VcJ!W&zIm|IVKT*H zsdY;Q$-q7(AslouxrQNv?k7F71=(8yw-5SR!_+8PpV#HJN}$Z5pwcDz@l;eY`0DuD6>rW7Fb=#)c$eW2c-6>AO9B*R6y9 zDxl|kFhQvb0p<5D1V#&>AzPg>HIbhdd8N({1y+OkR-II1k{&8DB|UpZ9rnhbZVP=8 zQq_2K7KBR^Z2a3z();9lA?8(S2B^sw8T4MC_{>etqc1-)(xIiDf5i~DZaRRf%-QVVl1 zKcyfbMjCa#{qWYcelR=J+LXC@b+w*>*1q1KR{Rm0xYkS0E(nxm2bWBy-C0F4`~BBr{_@E3m~f)3R>W`b z$=zAPqoy(2njiQzeE>a~<*HuVlqG@m|^uUn^BO>X)wh6>ab4Oj{q*tI~GBd0#Lj^)k!*pc$Q? z5+_f<*;ok+$^_x17z1mmYw$rmb*FU9c;%-1zGs1lHZFg2x%jFH4XF8LkUde$xsNZ8 zH0cm5@tKG1r*FAZzJIR?t?G3XNMv_(nXrrZSa;Q23Aat~9}KtzLx51B40S++^H;;V z7;W3ZE?mw$*7@NTDV;jYnK7?-HACr+^h4qHml&)djQ1lZbmG30LVGXKnR7hD-58t(gb z2hLZeSbKPlG}u-V5z~d8*AYy4@=}{3oQkizkdy_!ppUT1?#O0ZJa^|~sS&B8PqvSL z?AAyWr;ST}5!IbG@hD2r;X12FFs1(p(Ge33lrjU#0XSm0pl+0z)r@1VWohOqdE^7* z>3q)Sw3^S!*Xvego`J8iFa!8h^DT^Z_--o}ihgwzqq*OH8d@SS4>~I9gT6*7K-Q}o z&q90^PU4*iv_#ru+;JoRn#lJY2 z1hN>|?l++43tYT~O$(9d{?2WI!6o_@TFi@n@rLeS6OyBH+)BD9PVlMYgscNZd@_O@ z0qr@=|CMB9*a2sYCu26>$K3uT8C0N4MEu=ek(zU(yvF|hP9W0HO7xyI+}p~z6_f;deeD&4&wbs;{=xh zTLKtwK8ZDja1%JaV$7i@=hXnhoPIz62B*0YIK>q16ULUTeH?_?rOZQY zOL`N{{&~skUt*54K>%JjVWvp2lZaC{6mshf3V;{9Bs1}Yei&-k6@cEcHzb78MTnus z|MG|8zu8Ike*#7IBOKhg{9xTsssOe!zlTQQhE?RAiqKgx6PZD_2FXNiiazb|u!q6Q zQ4n0i)y6SGTkJMzMV$%R&y1JoCVr3tY6n}rG;-pi=`YvcWDK$=9xnm%%xjlg-5C8K zzYOXkq-v(!MhC6rzs@est|}(J<0;xpIg_O3>OL|;bJz--*57>tFlY^?nA|xC*!z2> z2)>E`O~JySw@Y#KER?`Zo>&zAQPOlfo2WSctbF{bZUk=zZFHx=d~Br-Ti5NL9vZeS zJ}y#b^9{fD?%DjdeI~zK(YrGIfF=NzZ*wwtMoi>V@VDCZ9r83So`lcyN z%#=>vq^DA|Q>R_%W&b!IvjXNC1l}AV3i70Czxb8zb{HcOI-$lh=PZl&Xk%2BS{u(C z(Pb>6{VFQtc7sE+h+|*iV*>R{HC24$+I|$QF1&kkl6ZB6^>kw6tEGjL55qGVi&<)$ z(Z2{30#)ojv`s-lU2qK~I34i9dBu57sG74xuF!dt%IADM-|Onkc`j$TRa^9Kd=_?f zi5RT*3>B;R%$%a)PT(Vtf?jT-%-~LwAEukiJXq8@IM&2A|MYJ*z-U0%H6IjvEj)yH zDNnz|+2UicgtMjhf^dxgDTG>AM&Jrn5=8V{5dlS}D=pe?&_ahU_a5oim#k%|-l1~( zWNVV@eA7s&)rP{shE2;zn=%7(2xBD!sdJ6iTQ3kHFW^H~hQ7GuIVH*;%NF02PGe=L zdKabXana)?6SWR_Pt9E9J}_=gtP}8IAfQ@e)><#kPR4IG(R+m{W%~*p6bw?&6=W4qBRh4{IBmyWiv_mZ=dZPt6WVwSn{sFvBG_0P|jk%>Bh* zF%>Mii@aQ)rT6AO{rgdkXTc_@OoJqdM~UG?iwgS5D;9PB!Tl(N12Q)A9Ck4o6v)X; zs7kC_W7RIZ==FW?O&J3lJINSXS{v?-)`b|;oE=#CJ{pLW1dpvJnz^6Lm^)#b4jbfI zE4w-72Uu@%&Osc`(IMybXSF)voaLlulmq?ig~yYNx*RoMULtQ@eY-fvQQ961e<(++ z*xKi#cK!|PgV=o61c9HyeL6GOLf}xj#J9MC-Mn2szBD0!G;0_H~yLMwXH5| zCO1~19L9RDG55AiP?_z)T14Mxc4H@NN;WD7SNFt>-6pwZ*eo;71dm>}hM8bg2h_xM z>&v{ptF1y6+ZEQ9C1x!^@gjN1+(mM)h1w@)|BF)=K3@uQ2d?}Y zRUfsIj}SKS$W07kIHD1(M7)q@$HVTEN>I-@6jW_SM|Bw=KFV0J|8%~cchs_zzK4$6 zM9aijj3Pq7OCI7Ef-5D}?8@`rKV_Z?Tb?UZBw!6NFXrXd~ElPI<%gZiP4%O5@q z08IrLICG2m3Xf(lT!n@6F*Z%Pl)z zC22Usim|*;f5#L05)52YQu^sgi75||CVfVL`9;k%SpG;AHt(m%&H~HF+w4;;C)mY# z%fE7MU{zIaHgmT%p5UK$3ry`z9HR{h&aHX#R-FVXtDMBPy;4%$#px$GAsfP%muT=8 z!&E5-9mtD(S1^n5*nFIWo}~#;I!IsY^jFHTi|KqJ67<)otI&%l!HORlLWZePy7`UO zwRK4cn_f}02|WkOXEii9CCxrUXoNGbP@dpPp-@NEtXuo3X}lMh^AjL|i15is{U%lV zT38V}lVvw94Y_ddv2mgq3s)jXyC|J-7)La2iS!k8dVKddT>0v^wn9&YT3@h?HXXYM z4mT%KqhYmBUyO<_SD>QjrKNyi+RitBF#i}ZJIgJbX?+GiDpTi$!?8O;tZV{vH+!G7^Cx|TNgs>;P8*5(y& zF5B6SoLwgs0*LPUq>6vWb!$L|dV%!q{7LPWnqfE~SbcAzKTfp*$q1U4@Zcv|7@sQ^ zOg>*1Z-=F>lBy``Wa$2jJUs4dP3-9(sFY%&Wnua5lbl&YqNOi33AC2%c`DJQ^t8@Z zuJLA<%#ib;KACQ3HH*nv4UBtwI$GoGJR{ZQUkK}{_$!I?npomn-*Xfv*&a+&Jp2|A zJjmloUr|oL4^OepLcaqMg2t@fub#9WU-_1~`&@AKV34~nejw6TyM^_p_>2RY^-S%n zIiMJwtWPb^-EaHgUuJyqK6ZzhOD^b8_Di+L=S+3U4kp=GQ$P5D=+#m;8s{svHRbv1^bALA#AO4TpWQ78{FVF|I3w{6K6dT9R-4Hy zJU%`^L891kk8gPQSbWH|KOtu(Ml$AH<@!h7_JkMkNq&r>>T6sk-i@YR17nQ}djX$g z+vr$wah|ce9dYFUkMI(ub_r;^btN_GA|jW;?3 z5%T!0soi`m(_uH)<4Bqaf$`nPZNEm%Efz9vcqdxiG=|yIXbc$!adJ=vt62hAY}%}f zXnh!>)l6NPcU17?L!BG z5zdKsUfChSL0iC*!re;;74d0~JC7@{+2nKIR;8ns=mT^y za}V&oE?*TROLE6H8k3EjQBw4wSEZ&yn{L{?4HYTR*`nb<_MW=}K_W=$WatjGO20Fj zKkC+vbf(Hl%%F>E&fX8YCm$gzb_Sgs=V@I^sBaocv;aDOT0at0VN5^`(~q#S716|; zOH`~K6~ms5!BOv7>+Pjp*)!-Cq77}b{9t=y=_BN&w!jmz>JKnDYYLQ_v`~xy#@q*o zfR>1d!auJ-5H805A0;u=D+$bhKrRUU+BN`=V9);zv3>|lz1c{eV)L-i$d#^9jj%mV zSg4i>RNWIc2Mq~uSV8dn**?G`-YQ)2))RXeDjMu(ZEbFSyR}v6=||bjM;QOlOnFg% zU_$mQgr5OrF*cq|F9uZDH0=li-4f#GJLF6$fETdvC5+iHC*EfNFFa!TwVo#DQNMC= ze}A;uyh_3ytY*PzppM=;@k>Sh8Lcyc&~wFv2Y7($gkQIya1>+E->J9AlFt8e4MO}= z6=?zUNUQPA z+tvSnfm-te5)x_;{exD{RARcm6sd(5J5Dir=PwDvJ-YTj@ZA)gZ_IYDQ@R{vaQhc6 z&4J9rPH)dM@4_5nb%xj?IEfOtd@|4AD(qC;BnvN|{5K@Y5mX!H{L;u#Df#4cIRNHn z0Dw#$LH!NMN=NM10(Tc^we;VRtxXsKjp{-Lpd-ek5dh53CkObxB z5t`o=E7EuoE-8-Ab4c80R;tW($NOg`j$d1i2^@6w^&)m(w2$P|kCj z-DTy2iPI2#m6LlI+DQmNBtXxI=*Ml$sEE2Eh+H$g-&X)P5Zr zPo0}*RD2M-mq~AFmR)yemqzKHH9GX{FvRX0i~^E)aKh z;i4Bs1b>3U4*VtwD6?F<&#@#z(m9#3D{(`6o2pak(2i`pYP6K)3h z;oU#?uEz7?>CHxdM_3Cb?fn|nUeQcgxqFj?Q-$HU<(DHRZg?3e*e?Mwxo8HC3TBd z{_I6V<};66-O|$|j18_U+XV)E5Lp=SuXOq}_2Yfw>BOsJ{!8#d{%V>)FZwJtzu^^J zP4-WmWdNb^!%bF>kaAe+|4R8k`GexJ{bVFT1U@c>4J)U$TFJ<^AJeuS3aI zr{L-rfoyL+=nDjTFgYKH;jV#xS^EiD820)?uB98{9`?aEPdbf& zTWH3llIu+FhP4Y8Aka&CGg3xVb~-t{M00kG^_z?T%K`?5IS|fpDsZ_W4gm zTm084%Jn%vGj9b0hqpL22E6au7Mgw~D=br@p}uC+t$9oZ{rt{AzZ2zfg;_|Qzg})d z0yEDc?7HbFtPG=rGk?xrt9W5<;J9mr)y$wL_p3L>lti$s($CxLeu}%s zAPpws`LPI~s0VF0%zReArnrz1c1;PnrGP*Vy|yP@`^eZ>q-w)e@`1;67meBku;rW~ zeRhF!`em9!pDmsL88I91^LT1hCAGFt@S>CbqdLtifk|-t?OsaJW)V^BPt zo%J?jD~Q|Lnn^dS%Gz>?-ezR}ufs$^6(jrho_2viQyx23b(J|#JR?X2KuPIMwqTQa zdI#Vh3s=`CX}j59s5Y9tCAFS*u0zSam4~IZwS|azJ=c3NC%LEZRd7eh>C_ym28Grr zCC~9eF`tlOD*RFzvvzLwPi-&8zV`KY_xWYHCrFu8#9}Nrp5y_+F4*E8kaDXT#rLfy z!O+CXRCX4X!vUP^+qf%TTRuw5S2)GWKQoUp10B{m{55RVvT8nn`4Nh@N={Qt{k^%m zoxE{oU!o@Oo`;AhZA3_#WiCTxk`oD9dbY5Xnq zvW-welk9a4S;@wiEujL6HwByOaQ8uMN$4af28e{OnA9wXVX1B?J{)%ObbEE}gMEKG zr=4k(y0*v5mbmM*J-tY52>INlRpwYIkJ?2)U|2=Pe&9!aVD2Kn^=WTUde1FGX+1_> z`+eWnlBWg<9m(}i9Vve|8i8Aw!Uxha-c01?%pR2--rMF`nibW*Hlxj4k?icEvW$7f zMRr84eb5@;_aZpW)B9&$>$|^qFkK)_2^-Bs5!~P-r_VwQei_31$)dHdEuC^%=l|Mg zus>h!&vq^3qLqDcg7!~O*dQ-yzV3MH(io)DO8ekC4`fJ3z@bi_f~rbS*)4rmlakX$ zr+e+8!qLuE&H98w4uNm2{GVheCpS+wC6uo`US0JyTZ>bW+WTX-a8o!F3{yT8T*E<0 z1!$L?#(KQvDpk})sjXeskK!@OfpTNBfok4S{>#FxLYn&4IWc788KNp?p9r!h7L{wu zgLn3{ZKjTNuif0_SMEsj%+VN^X%*)daL8EYH0Q_;F3G3jqZMpGfH^@17(}c*GyC@S zYZJK00*fWfwv}|d)LG*cmf(aAxhqtZS@$92cc7`)mLL`FPT>-e(CCYB`uMxceFHtb z68{_^EHzS4GYe4<%iQ?^#`pYI?yedQR%9u>q_d=Lq{%1lcBavnNC!wjHiiFAVtmaQ zZi@6Jqtlgnw`#R?^ZLn!+W9qAwf;u_Qn)RAa0x&j-DT+rH6d$1WUE9mV2V7;teibM z-8?3fEFM4DwU0iIl(OZ7P=*;X=?p{oh6x_<)+|~zMm&GpV{yFy>mrN!=b4wQe>lV) ztf3ukn{_y}8-r6E2dpXDUAI0f;Pmo|tkJkfVUrxLwv%O|v22eYBB~oHf;+?^vi>a` zyv2uFxC*dpVsr?aewOW-7cj@cT|s=&C6+tVB7;k_v*x92sT|{i_s(R=)NKi4V?49Q z7=>_iq%Zr`A0%d=_QMzNAD`E{?3ZUB8(kp$+1a}Ffd|DFum5Lekh|OOPg8^$JT8RO);IYG;p_JsS0gtezF)9qwS*z4} zZhJ4j*1y&%aa~Qiz47c(Kmn_4xjkb&v%3!A38MAhDk)!$<2I&S6Z6pT)dKQsQ+<6V z##-4Qva3BI6vL3(e<70^vL!%y$P{%d^cN`!;Z*9NS2OV&6=p%|{PbH#g|#%M(Jo4Z zAx7zEORz+1jh?j8$dN=Tw|Px!7rDzc%unntPlYb$Y|qaYHhUo|mPGZ75~qfkcp_^) z?n!c6!@Y*yNw@v=>Y%NUk52^6%_)3Xik?!4h4!|riIpN0CP<u=QI>Fx(tAzl8)2R-?2wHJ%?flLDdkkLsT_92h_K58it5 z%;@$xj^#72l7Dx%Lg)0?j)~$>+IAO$l3xfccuudbF4~|xajm8yj*3ONLSpXQxnG}2 zt8ycWQTQn7x&AJGden<7t^hl1U3*>m2jdEB)}1?<4s}g6QS+KlZH2y2-?1^8iFYzl zc5nU6T!4BG!;3EMo?zydrK8E0{kZf@y3H^fU%p4?HC$rR783GujmZw9DG&$=>FI$6 z)etBMcff~u=t7nu3Scj_Gg7V)ejfV8F<0t(d%~sIub2gI*lK5s^l%tiQWnyDAs%9o zyWNC4_$~Ento~a#pR+}6B0Lv3B@MWZP2Nu_SgvUhVJl64d|etYjY~QcX>b`pd68S(eT}^Wmr(NB6c|BgGt4t z%FSHs=O+8trZaCiYY*fpY8s}z%=MrZy2;tayivEifei=5b_Gp$bm{9ZHReoRe95yh zx8IF}IMb_at#S5tlBG3unr~T4ICZ)W+R@T+{21doXcUYt;2~z|4&Glh&2!b6u6ncK z+c?$sMN@Ixl($X{cC~Fj#1`t-o0L?Pv#4hXylCAn7E8aZAENSR&2$1;6VI}Zg$@0% zruR#jXKa(#c-Y3kkfd`{#ewoL97iC1BwirM2RKw<5bcEMLa$g$?GPigy?GsBrh`FB zfdq)TPWVeS~sk@wh5QG(XtqmG2^XB)H} zoA_s!mi1t5n$AatkN-HLPOa5-e4-1`UzR@O%(a(vprY&TmA`my`N{G}9^bVx zN6IdVf0TZGVU~20##JW8mp!mlbNODXqaxn^@jq4}H%0p+z?*6zv`Jug80JGDN(?v<3S>zSD z1EzDLUtLIwG7dRIyT=GYh)viiHx`)MJ-j9TwSw|Da`qo^7&LbOJKUzky8T(qWVrp` zkmfm}|5&+=;K;!>`x51DE04e@oNM5WXob)ZpM5?<`Oqi@dumn|Jqp`t}I%zvU`+ z+DnQ>IK!ynfTCfnuCAZ>65VZK-}Lf1?t-kw%fqfO7MoXExmVv2XKsgzIYEM84pW#V zXJ2nyPu`7p!)_|VvO3%sy`PR0Gn|K~j3L?(Yp7FB1!*F~2hgJbnHgOKhJ+(lpx7l6 zLq-~zS`Q!ua3?z81P_!2cH=0FtQ%P>5L#O#flmRAcEBbK@mm(0b)1TSLoR6%#mJys z{UsS>o-Ms7d;`!d6d+ek$rt{HfF{L}-a^E(-4fB79|Ia<$zggRs!@Vk=ju;N!t=bw z9LG`ZRu&53XS{!cx6!i{+G`QGRh z?gl=TccAxzRbCd)?dhvY`gL=)6EwvxMlWx+h}9sj)O;(%f9S}Vr*|p&HRX%Rc6(Hx zsq^RtZ4XliWw566@z#p(pCl1JMdrracKop`zU^7`tHHZ;qkqoIvXwdAo#Wlx*wS_J z;zmj-oi0yxen~_t-yT{3k6ztz%G2KbhB>57d{3QFI?m8~d!w8}jF(2?bb;{7dUh7x zgJO-H@1;$9U^e#p?EJp`(?<@RHm@jpky~Q83Ov-FAVVH$*lORW+_{uAvt8)s?&K*% zyO$le$ChlX!#>h^mre4_9&c#Cej%6$csf{L4eE*gKPjnMhTVk=>%ElCBYK7{Ag#!8 zH@vX-LTMcuTG;L`t06KKhRhDN4o>H>n*H{OX8*>-vz9GLX5iE$Sb=~rOXa5saKa#3 z7v-_=Z%F-OeE9w9@%$Ufb8{_u2O=Le6Ps9TS*)aVKXo`zD)F&=MYKYj&N>r3tOMw) zv6@Jim11UQkgaQ6#5B485|EE}z1G=Q)^fLb|GHKmvC;F;fM%B;4OWl?;aY%k>VaJl zcY8+6)0`)PP35wJ!S080=ZkJ7sqQ@8(8jv+QOz!AEDgZbV_TB-7i%17VJbE~ogWre@WoWLWF-T=UHS#d41~I9>QM zw~ZZfFjS24VIQ0tD9=*?K&)3{_fC*mV5JU`I92`7oIU$N&7_D z>Y&NQuD9xQ+`;T$u2IhEcAB#uvLzinEQ$N-Jm@!Qz*G!1R#%ZK0=SMnh3SQFz09<#E=lCo%B>RhaU!Mo3_WF5$Dgzo^752`-us+^- zwQ=rbt+p=w{&y#l6ksV9bn?sw!ncWv;@XxDuw6yppVYmkW!2nJ_wMOx>ZYkCWGm&F zz~K(80#Pwcyb!)T)y*9Ein-G*;?__VDI3}A)60}4&yHzj``(ed!ko^~IsHDGy@&rg z$C@zZ3dlykFO;UCV==SNy-Bo#6Z7DUj(Tj#{Z^y5rC;u>;dl~ced@@0mA=@Lm&WLO zbNaPXG&(Oy$L>i)M1iiH+!Ih0O%9YeA^mZIq&miXFT2g=uSmDS=7JfO|S5hX3*tt6ml~?`E1jGCm9@&@6ngy!r zKs;gIohLQ$s1|NOO|2xn z0S6wE`pn_{OwG!`AMo{Z7R#@fPW&u;d!Wte>_;C(f#wa96gV zA^ansIy=}CbiBO<+Zn{I7kZ2}43h@*0T>iTMd-8K(p_bIp#A<9u--C%aQo~Ktxyf( zenU4A5Zx=(**S~b7{C3lNRa{Ad!=f{JXmUP0Zze#O9NI}>AsBZF>y7-;a?_*nc3LM zOxOTH63M=6>(eFi(P!uiZ^&_n8ue`5|n& zy+JcpIED=j;!}b!-!^TP+{ z;iyd6#;O#tx-5%vyEyG>*;@(&q2^|G=d}dlXiH&1iYB#CZZhBE;sBUUL>3&iOEm}g z6q(mZPcJ_cD66x4?x1Lg%^$9)6Z!py7De68}tU>rw;FKBMZajFO)lH44D>d9&z8-AGCicQfe&B6Q z;U+Ft407qwM+zlSn>?4GN!@ymINR%@&p` zF2VGRH>kMZGx+j0nAT;k(Kf5UKEQp=($TiI4om&zqT!W$8jb13#+new4G3l670PK8 zAlyJkF^gD@U5M#*r)m~JT@`-8%i*7&&@M0)xIIu2DxP2_TIBi%+T*iWCDd{SSLzfheoxEH5f2&P;HvfX_GxkUl<0oxslutQM7CmN1pHt^9! zzt~gNxWWcXOqh8*^%Qn=!=3DPAdk*}j7_&`S+}L4JS;=i=~FMvF5&Oq{a%qS<&s}f z>$edZlAV3;&l;f>O3xtPuMY`TO+;jU>i9j;?|k66vXD zXwn!&ICaAoQmM|!3~5a^Qv(LZhA0-^+93E`?G`rLnp?@@p+jM}v#XsQ!{Q^gyC+V` zZF?`6az<#@wf^KPlgGF|eCV~0y|;w6v8k~kfmkQp&tKZZ10{bv*FYE6syHba4?qMJ z4)EvFvumrsXyBq>+N1hERZD^D#whI=o!1`TS4Qnv2X+KE1=i(g4=-;i-d_swuXjh^BR7LrIkPjof|6O<>93NOpUgmgIRM3jQ(lf;$USb& zI%91%kak`zG!LD0gDE!Jv9+BcBv=MExJ0~ous6C7_JmAzy6C}+-_uLB)N_J!q8l%~ zp3d`W1gP4s0WLAMVtTt_;V8G-eCDF5Y*%!0a;OQ!?&Bm|=V0eXN1Crk_2EG0qL$6j zZnsE!ym0b(1|$qs37vuOjS_IKcx%;n+wL5gp+r9X^sW84QF-s4p1#VIr{jOt0`{9V zV|a9vX|6?STw3YlnK{w>os0t&pL=`TiUENqPjL#e?6a`O>Tjf?0iUs)VV5sX*glpJ zj`bxumzT_abLJ2JtN%$}ymMh;f;5npHm2Iy(e2qQbje4o5fra>jDJ#|o|2-=(9)m? z8#-z}l>F7vB(WkkBuLn~W<2quY&jU;21NHn@PdQCFU(rONBQ`I7yUL;r`m5+3>36x zC@T6sU~AdXF)@K0{u%uA%WcM!OgD#_>OxR7U0y?+#}9Yjm?8^T#v3N_N|7W>Z3yb~ z1r_gego~Et*iYh>D1%PE69UM?7W{x&sGMsf^Gv!O74tgZ4|%AgAa=o8(?Z8(hR^t% z@Fs5y+Um?D8ellaVtNF`%~Yhu>PAvLnTOsy$xU#`Z+*J8R=ZAi!;)$x%pWug{3UT5 zjZ*~=4i8WQ?iEl!(5xS+@^sZ%d7qW8Y?e{eu^!w!V8K z18Yx-CE?P&(q>%-QqyF%UX(X#?j(kU8PWEvHbC+EM8Lq^6$MFUP%;ARMM0`DgmobQ ziPWI~j`>Dta1$B`R@6U%+J8X4KO_Si5pZt*jwG}H3Eut)EG{0lyIdId6zl}@$ZzM0 zRCQF&kwsDee&Y$tVNO4kVQo^s!IX4a=>~`2#YENuKjHUb~wufAFb zhH2QYB7~lifM#IogO9Cp)rKv{mI8?e(R$ae0>sonerLxteir$pfVS-8+sz)n2--DY z*K{;2=Me=_{`{kqr$A;sYFbVn8Kfk_@u|2@3wG>{N`t&}Y>Jg@u1a0EY@^ni`QE2> zFLF5tf4y8dlO`S87_dI%*(Eb2Pcdf!%rmNa(ItwL2=IzjYuY3edoonlgtB9bC1}fU z(+I?Utw)|CDq{f;QNvxz->SwnUPB;=NUMGi{WxXR@ufCto3-l7yn7OjiYab@R!Atp z`Op_9nAA&Fg^wei`AuhCy2^bnx$e!diqA0M$%mjZYHY*@c>l9CQ}InA#duflF1w&3 z2~IS-iDBv^IWU=nCqW_@xebI(EhF(W1|^|)Kl$oUGs!-f@vKwDW_~I@N&DAq7-s8H zr~`PcQ*yd<=}#C_fL6iwaYaeF)!eqCN4w+;*|N9_K>a7&7MKzNMgrL5hyY#ptMeH#Hx}th=5nC8*HmPCZ?zY~rgS<>JjhBN(=spBsL0R`v)}xhQUH<OUlXAd{caUrFWno!1PLr8T{7p`!-ct$kIjIrkt~2)hUysTsc`zmB_{xA{Z# z=!pUtWy=)DxbQsm)!=%9{2Q4rAntS`zIZarQnhf@gz3A%O*@AuF91-Z`r^dY-uU;!DO~Uv~?h)WPj$Nui zOHQTb6W~M!PDBHYblXx0{370M6?yi#sVSMWGOlIVUS5swXUd+<@lSeg_hNMFZ8bKO4WI-|0q;=i9T?rgFh__0wBhMsNAWhUV zKRIKk$aI?{(&$9Y^gJ6K?n8^>8h31H%j56Iw!DWip0J6s`VrCS0@YsQP?rrU7{!^l zHy1Kx;=Zj0Lg}DSP;-|$P>jvA@!>b1v;n$nuivnqt|S4SJPzs2L3rrjbrX{#9A&mf zlOhxplj(r_M5B+qQvFQKWUvX~-_YA6fo57h| zK8FgDdTosNFmvKx5wGF(Gg4+v1?6R-PKz@1TQ5Q0Z{2nJ&mm-26?4pfH<_}zc9iJ8 zQmWrRl~&wL>rH>N)Go!>rBAXbH*8OqVk-)rPx^>()U`C1b_Ft)3<*Djo&&Xbzk-5n zkw}>*|AVnNkB9ny|NTcuvSrOqmXtO7njzU^LUx)KLX2G~8GH6MYu1oTD0|4*X^}mQ zb!J3im`SFInR%b*`}6yr^E>Ci&;Q-rn%8z+&&Tz+?hlCec~s^8Qi-J+dE!`!T8p#Q z^X1h2l$H0TlrSLi;dl7N)52VHKMbEE}E&qQY z(n9{b!d{K+a&_&K`qEL1#I?jIR~+=zwvNK;GbG}bi|clK-XaU2_gUCS4cR)1pOl+{ zTF{6NbziFRjf(E+**O~Y;tUACq%mzKJ)~I}1^25e6+t+nq{c<2YAZ5)FcGMI^k9)-y2e#EQuwLw9T z<^7JUQq8K(rX>cM#_tT}q=PPJbV#G3r4Y{u4#d>LK`6JItDD3}o_9a~q-SPo%Ke`z z52xcV9K9**^C@|x)~mB!1AkDcJ;6WfHc$F?N}P8CWT8?3*i;wlqr@4-G^^)}(G^QN zTFXSW4S)FZ&O2N0PeHQ_U)G--My>R}34Bs#`dEdDJ8;5v4)p#Il81K2DN1ivpF1M2 zul*>gT4eAhIc^SbKmIybGKQCKq2RLzfyt;etK%QYok;m-q&Vs;#%>cQa-)O>uZ;iB zn{r*RLqGwy|CSK_Nku-1qeDT~fT0@S1TitjoMuzPEL^y%h$ zqRORP+jGs-%u2Ao=eQQ8>zC(4bu(?vSBjiZC+@%t3cj7q_Z;enV_ z9tdOUTrV&CPmjL-7S8Ucr(Cn(OFJ=VQj73qbrka~IT`a=knyfSPJVl?3O#FV|Afm? z9_{plNsfiB;pethCHoefdn1;Q+qr*j^)CP362OfQk4GEeg zM#(YitV4=B#|pIS|?%xFCAcY9o*UxeeOtN>-;x*#9*t)AsZzLc|1Y&&lM zalUG4_|YWO*6{ye|HaxsrZI(Aw{Pt<$XIj4bfi*vU#`H(_s8Y+js>bNjSEBN15zxS z-?{kWMX z=`Flb@|P&gSde({k3()#k>{YsvV7X+ z?Wf!efBGornsxy9*xQw)Pxjs56?e84^4AJzvns`*8X(bNv8>-vU;jQBwe>0hzEwwD zn-aYk$In;y3tV~-YzHZBUp#U(=@G}J1oAI4 zp=(AS;ToZW6y*Pte8|4vzsAxlO)*N{L_)|g2cpyiV}}PbeqP;9#r?9v1L-{3>~uS+ z4cLh%@H2Xhj}R{+wgz1)o;2<|MxEK_3vu}uaiSV55js z;&sHicX96-ykxXQD~>q;9V}XqHjZLe>=ht`769G0QU7xMQ9#IxH(d1%1C^dR_X@ZY zEdmV@eWX$SAfTY2dzq-O-}Fd7kKizxRa=5_n1=+Zp$nhp>J`#mmoR0`&8R#de)gk` zkcoqp%?=N({ywXee@zAOI zGfwC7i(X2x;u^y4;_61G0!W5LmLYwUm2x<#ZFRh8WI3{PL~A(Gormto^Y|2PfW|?6 z9i@bY^GD1Ng&*0sXGIiTGOT-Z#Uy(~+DBy5`Q-8?x+`1SQootNlnA+A*2_k%pvYlh z++^-y%|F#{^9rrznAuzz+4)qw@XN`X2(ar&p(0&WnE*@Zu}AtuR>4<%a@Q7M3Qs$f z2QLaB6$WpoCdoRb9|3f+E}Secvr8ep{ji@vvEm(+DCW}g+b|B+_jJ^>aH8*%HZj!_ zkt57w&%eV$(eyZ`biHs4l>H`5GdYZ<;o72$sq{tx5vFK@^c9>)8xtms#)b?+#w=bs0^SS>c#ro}7<1(=kvs zeQ1;dEUrR8&ymn9cktR6voy#MF0I#Ipi(cv=awzx3t7+_)57*de>lJ?r5!e*VYs@q zUU4#XurNy|S+QhKm&JQ^FQU@eX|^-P{OgGV@mt*Kzb6WIXbePD!g}h?u)gSQsJ9m) z=L5dx+crKOATM9a2!kEA-*)RtWEtI`w9}Kjn`8{G+g!3GK2*oQj^ujbqk%;~v%^LH zuRI<^c=Eq{z6nt_$Ewj&G$jHuNzeV|_{*QFuiS55+-Uz$qWk0Sd+KgZ=ba4;h9_DN z7;vSIJAV?9>rF^{g&y@<*NFImn-cMMN$3lEw%>HkE1hi&ZVP9H2&rrYT3j5pfoHC@ ziVf+4F~<{90ueR@V~lw4M~CuG{X>G;yrTq*Wdwe%_zv3vZ@MmBc1=$1Ni(KA&^v?= zRR}D+C80M|x534umRi|P zr?nGve>0yjh`rfeH(2jo&NX+)A{2AYZfU{Ik~_vs+WpL{4bFZb!oZ^k;0$4Kv==V3 z@u(x?FpGWV=L7ETaKVBKUBx=R+^zwG_jfD`RK71H$*X+$rB9?bp>8`8ymrAX8Yyf{ z3>l_L>I<9gTP1ZPNlV&sT30k6-EK^uP+C7TgY{Xd@%nmVi_dWWO-ji?;_+?1kB&ln zeADq0I^>s5H7?5WJ7(ckKC|s?k=~)ze>_k6K>g6FBpf|KlOc$f5hjMw@-(ST-E)x* z3kn%EhNarNL%ATX(v6C`3!Y;_M@)@TL4krAQSRx?5_9vlE`50r`>x3 z4_1D~DUXc~*&qJdwLCWc0d4*VGUB5z9#LWOey+71uY$8GlmGPixpWB_IC6T(HX2>! zdF6>o`D(yGe<(>Rr^c=g0;4F!6Z^7PIpVW>0Ed(1E9w*1S^Y&%trpQB(`3fK$#(CW zAGEWxMb7UY0x7YXe4A*rj!Nj2B%_9phI9&3{O-&O%FzV~a{_#5POQAGvZpP*Mxb>d zqydIzp`9)!gaeNOl0Qn15RiB{^*Z92b%k}t{xn)BqTnZMfTWt;r=jP$_E&xdGSinl zA%Xc+TuqcH`7Xh30LtFug?Sv*24izFuInjaMyU7H`)f$0PET;3_(bO^*FVOP=}kY> zh9t{C6W<{HGGs^*9mFsUVYRkOBx*&?=GjJ~2*z6llKehb#b~$BE~6&%@gE!$g)0OD zi=**HG>t^_5er(wF4JG@n!V#Xg^=eUnW68QI$<+P_VTMY<3^pdKQ?USCzW(C2{a$tBI7hO<7+l$7>qcxxCtQ`Bjtv zu^`2hP(RWYbu>~OQYSsq@S-;V>G{8Gy?^g4no{4a&o=@gZ*kX!Vk2Kl0=uG+C#& z?KbYRhLs7z(oSN>E>n&t?@QWvK>p`bK|;I(C+HlOCfaDD6&)`U*I}T0yh%43Ef~@5 zS}}OXS2eO~LE*5b`in}O+eZP%p(2m|Q6|0hNSPtzQvJ1AC;~+nKba^+l9>z*0 z$wjU%GpU-M^HLDfFgbaOe@u$%MTF5#8)6n{!Vx)sG%oTgI&xPgPCM+fvixq&3p;+F zI<7GrLq9^@W!=qQXKFTb9VkGjX$%zRNg6kKf6!&rN~H0`vLHTbARZ&$8E(T zc`~QaoAnaigcO9M0Oc>XXlX{x24_Vm*-+2)(Mwm~K+7=tWqjt|H|*D|j0tZOn55^j z6K!imdj$W&Y{@gkESH%*wX(aT4-XGB&}w#u`me&|ZAS)K8#B&1*y_Yx^4*?TnkRJ- z>hP}E308Q7lF5hZ)(JNB#F5qwS{-U zpne9HVjE>cgeD}lJqk?o#2in&yUJK!6n@PtKzZR+Kje0xc4G*sn407t%7JD9midI| z8q4E0oNt`DI8kiZ9cW*Ccf|AD(@8v(?7k{llL^p;5uBGqSs8{a2j!?)5`hvpIUh*2psF=0dHEEVFP;S>Js> zN8VO$@&u~O4&$rXg9o5UUzcaJ$n9NmKsY$xES znw|9rPI{CjBQ}cl4P#rq^18EH4^iZc@WkIA0K?xd3&WI^j~6en*L-N{DYFiU%Y@Fvq67@SZ9X0SL7Y$SWFFipnFAav| zm2$*;k++D=+h|MO3eXT2tls$l8e)}8{kAXM&X_WYD#If|?_vVIzoLnwh_VwJ3)eq{ z57a+z8{TRE;4i;b^p)Y3>FJj5CkGGqHi(%jNa%SGH-8hoYT2E|xD#Z^bv9DW`u&X? zHo3#;z$al|$%8g@_j;pC%1{vH4da?R)nj+dV2oBlV8Q*h>s%=J!bx0YZQuD zb&aI>VA+h|xsxgb=)~oDE5Ub+aRSb%aRy&?X7xo0$h0VzgHen-*Riwjtrs?)2!;N1 z{Rf4d^@y+Rs`DqGVL48bn+AdhIZ|6)R|G9%T%JF_c@^#hlA$+hxsP^a7x4c|e4B!f}@MrOzzcf-9==)t}3!`_A}5;%(*yH__){gN<3>y<`be!1750``Ac@BPJ7$BvF!+Fgb3-x zmns`e1snW?i&I!YH;@`3iTQ(PB7#{(nx4W-5h3ig_S`{{ykYh6S8q9lEp{ZYW^794 zZa_Z`LM~}TMDvfsXv0c`(e=w~Lq)WU$0OM}A7uGd<=GpJs3FV0qE zpQMw~hKPN_>tf(T)SDwBFmpoEyGLHZRoHSieXLoH-BkYEsoTH^|JeEXH0@)#7#KhM zU`2os{ry|Ui-?C`b)WEABw>AIf|KdZ1b7{N6!N7ACv~#k{09PfK724Mc8wl9&Z#sO z;=P9ONDMAOs^BOl&g@01Pwt7=cQQ2`P8#%Qn$YoYNp68N#y*}~Y_b~Yiw(gR|J)=8y`X3i@5O7T zc(k`4-|N29t}*q-PT?bZz?@|)>J3BRdcnl!I6Ct8>Zm*9_m~wGwzGpY&3UzP{aM~5 z^t|o+B>sM>?3|j|8yx!Hm&}DzwB`JcEqRr1&o<`^_%Dcy-Hx6{ z5-d?kNapC%5!G0)_$c@KiI)-n3#*Zu*j2N88K+h&y1*qAr!?fMTr$-b;phi@=wbsC zq7*4YR%VYgPQ)_|%H>ng^)%&<0ya*)C*z*ktR+vng&gA@*IZ@@ed-GJ%|DQU6_ybw zgkrz`SQnF(_S=VI4w)HV?YPyh5tw4_oE~S+qR)fB##)XOo+gWdI_pSQUxy{=a}YGs zC~{3~j)NucjnCwqYTuB4v1k?W=G=6~29#Y_wyn4bf|x%-{%$VOm}f9PD8J7Yi&GR= z@I5)TEXYBTg5KveQA$5=9OJqr>OhqAUu$7B(TJZxN9!Z|<@C=+X^=I+d^S0nlbFjS!e@zh^(aKP7$lc2UXBE3_cz6p zyAMaMh5=kFRVf?yQX`9=I!IlB7sW8sXVZ~wjCn&~Gi_`)kJwZ#+6qX&z5`D0g=tI4 z^3<1=1u~PTA$9I+PxLQPtOyUvLn}^^yB#NYEsL!_WKf4&O-vwsi`=jG#92!{)^9vS z4MI~y#b&P^~>Z2}v<-7Sny zIh2hfi+k_9+qGR}$qqE=r@9j7DO{46^EvAvERe945jHft>$la}p?L@G8X{%p#>}Tx z9bCt+b;~5=>m}p`klWmpdKTK;foH>j`yr}LIQ;1@^wqNatP$eD+f~;d>ACYP1@?Il z>k(|}{*X>}Kr8DEN;lPXS-w}j14A`_tq{}tillHVJEj_1q zcQr;I38F{V0ne2~|1yPbs#l&oKm4$^>|3|Od>*1so*8_!tV!e$wP3yn-iytbAmVq$ z^A0reYsV7g5YlxbG;y~_rqO*zCm;pkFU=D5YHLuT{(0|BX=BgZ68OJ{{Mr+|hnoLl z1sSEt&IGY_>omf%(Q=`0ib|mZ{zKt{_m{?brrf^%p)0adlNNBf(rs`%hCSF!>=JEt zt!*L!b$^W~!Ue$A)%WsWMBM*|y?pefpk-WPrdo3k8_8?WaF;1kDlhwz3LQZjXy~GK z1S3ormQ1QYYVO6e&=2L;W0#?ttDj6aWABri!3+rA2?Xr7(36 z!qeUas5tV`ni=)`1OOlQub~VSYC=tj?$u5M2qa)WFp66 zJ~(Vzj^Ek3(edosnQJxfiEBb{rU!0R8OE{rGi7&fjY9(}mhSegwOJQqF4On9h*rNq z|KN6W8`rOq$TZFMym2aLP^#LSC3m?0r1d9`$c>|g=JcO#(@blZ}o zBrC71XFo%rX>FwEf9HGp*AvC`&&+?Nb3>k^Y@m1HWSPwTe;cSSaxqqnf4s_w^w$q~ z*bxQyr~|LUbIP6uyD>r@NRp7h+VifDwNao#!GbX(q0V~640=kKjA z$83t7%}m%z&jh7!;0{t_PRsrFB1usbcA@w8*~n?bU0bOe1ZqLXg92q^guhII`L#O^ z_Y^<9u5zMF&kZTP<>f`11$Pwr6V*IF2qGj!W3fNOc3fACLl@V(+MPTc3oc4$;4XYQ zHDt{%Eb1t*83R@I{ZmIfHN}XcNW!`IqFN7zSBstzG4wY;YyolBr8|p0>KZwP z@QJi#Lk`0tOb0a`bCO@=S$7r8)uxN|yA6Hrq#rv8;*o$wM~;>6SM;ae(0A45eBHOd zw}1^sXG1hhJg0y3KJA{|bWaE|4?91!IO^+@njz zNtQa6Ofv0pP&hML9-zqYf~Ts=B&TxRVtXXj7d@F?GQ7@ZVu&q|>zxKawqg*RGb6E2 zO4P!W{#bgaK`gX;GR$osiqs~VYDtBjM@gX8%it|*=>Qm7J$!^pph@0GvOjs!fOuYl zGxM_Sj(@mkt5;w7YczYf8KxVklk+>VRX&AiA6)fsAVH2ajBKw8J+XKWXW}Oj}6Qad;UT&}fpw_dv@=C6= z;(>vxla4r%=vZX`u9F;eD zD;y%$0kr&Ng-vQk^to1IO$N`yM;ZMsEOiF9K(j01U1 zBIsic#3rGGt|FJA>p&mp^R$d8uqPChiQh`)*QI8wdI@}HuY0wBbMZLRC;$q4PM6$F zav5gq=OY-HoN=-ykK!i}nQEiiX+t25Mv?|@rkHw$gIJ1SQ({=R9P^>j%6+tt$L!XD z`)yh2)tWs;O}@Lo((k^||3Q5Vy&I6KF94<}mRLL-H<}XV=~*f7*y8hWsQJU2AGwS_ zH#=8rJ1)wanEF@J6Z})D&19fPGZYj4WB~=vakN~592@5K7<*Y~$<|xJZwi~Dh~qYi ztqB}@t&*fg{~%~YZb%-a_I(aHzIiix{8z+;pw){MDvJ7C0X6Ni&@~|OtHbX=@0);b z`>w#wuSurw-+7OX|FzM;F#CyXr=lE*VuP#tU8o+ycmg_WaqrEPWQnflfs_^Tz3ea@ zI?!a7J|-A?7635vXv{W@t!r)h)!_1|xoA8m7GAgLJ>&288&Q*<8EE#igq8sHE>hTw zhD2GUZmSijVm`R#2MPqY2WJOHtjCywoZwy&qD*qsxdwDZ-atwI*Q|Oc{o_a7<}S=w zKhCE)r#!W!0v`%Hz91Kp(#gj-5w4xVoATr|EF0Xs_j(~;p-cYIq(x;C-Bf8kYfPXq z1PKb>TVXyz^ca*adP2}d>RtZQE&7mW#lhA(dCP}QLgf0pbss^IRw66Q7ZBAlFl9EM zd2ENPGxu-H2z&yYn0Pd*9LW^*ki0}VFcB3d$YiNcaQw8Cv{3L1W5%z8DR5+hH^$H} zBzF7}(=Psb6pZ=`>VsnSdDxNFrVHhASG}hGv+;aqZ%66?-?Kj|XW4~i&s1E3l$QU6 z&|dYP??;3X)`lPa$*Gw%uZ1(2^Qfp4iJglNG;Q=HS2X=Nz)tL5Bu4LJDpIg{q)g(y z=CryAN$2}^7Nl@FuCvP5`0hN=auem4{0;po0^tGPFy2G2U0ueu3A_(sM6Pq%>Fb*( zeyIZC^8Pp0iP?ReKLSnF4+C~nz%#Ty4fWnn&;X3wC}W)YZ~IxrM)8ie);8zV+Lofl znn;1@d$$64Zn1{s#oFP3(m1dWq_I(sgjISFURrKXj*pbT1h=A#+Z=erEu1BrT(mdP zRYdp{9>+}2W*|1L_Rd%j#`>e#R3hK=*6HRPfQ~q0>OukST%6mIi{bI*om^LAVLzJe zoDt7;=F<|VnMDG19Nwqk?v4UZ-r4E4o}{aC?bl^K8kJrW z#;H>d$&Ogm@I->@{f9Dx`vUiSg;Jfz-dm}Ve4RFPxvuNV`&DME#+iU*wn@M;p8&Jd zC~s;J+e(k!Sz?V%M^Wm~h)0LCwW+MNiq1Whxfw{FAG>Uf&OsKhYa74O|A%%0m{j?0n@-7wL3yz=n<0H zyMUBabKUr^-@BSyva<3PJQsu^Oa@xR$jk7y4hpxg2{?YRtx@vbj;Ay0fjT z&8cHFM0S8RKuGgT`gqWc$+mMqT5$4)(l5m4x?|Sjx4iS>H9cLFY_>c zicwonp4n?OSPvC}FxeAiN3GLnr$vshTC(+Al=VS#I^4M4_Zh)rVMq_vy@h(Uu`v%M z@qT0Rj%OrIa`MbbE`Qa#PM(qpO=0A~KBkx6SgV7e`ME@S2<$;uByX_LRw&#jH;c-H2+=W|v2zrg6vY|kjt$&lnT@f-fzzWf(rya zrfbVyyNT!DNf3xdSH=9${t6Lx{75@V&7?`KL@(1W0exzC+;-4@^7lTzxX0XoI>TX8 zXgGscpr96!w1Ho99(yzF0XZm*W&ZuIh&h_l6|3F66qrk9ts zn>MUb5C4JqW-W|jE1uBkKri#KX|#fiJThUB60kXaSnT=8H6bx6;=nDyZSTsB^vo60 z^;!szu}bOpi-t^1t|7ZTm}0ekrJPot2<+62=^GOuqxpnE+s^#2$5)5I*EuCJ(ErIJ30# zV5&zju~oS>yGuNykE_rG@`UB>#zDTgSU0j&iti7UE?ROhOwdw*u=&QKll8r;`6(^E zKm*Cup1U+=P_%l)z!ez`Xc@`*TVU7i2k{RH({RGQx;)|X7m8ckH6;3r#p^4hx~NqY zdn~^iUIk0C(!EjQ*wU3bbq&u`d2KD?+$h7z5kp=wVtp+ODx@#!Jvi9QK-}!WP%nD; z7&l~AUG6zyIZwTIVrt}84S7|Xz97?lq=6yzVck?gP1Kq*p;2aj*5>Z zfH6@G_y$z_N=7sFtZ)}YZ@ioHn#RO^UA!m%t?F8?uG#0ovqAtx_b zUBhH0Mk(PWUkwt49IbfFBN5-#8-_Adr6e?N5ix&-g){%IgCOQq>hEW?Q}gRhEn^Ba z>FpDbpWJ?|FY%1nFK%Ay^%CSZU8H>i7uGi*t1CQ19m*Rq{M&=@qC2Qk*4dT$%gkb; zkLUR-MMfVUuzDPn24!=6ekk|59>B6p1?_L31RY5nh#Bxe7sqb@xOPJ&Q7dj+Cc$hwcg_S%tRTTmF{mE|Mh zBhQyT8MrQc{@d?Qs}xPR#c?pj$$bW+v}&=o`52V<68t1Npbu^R%AKdE=(4y?GAd(*b}t8veWV0#~u>N;B&@m_oS;gsIvH* z0^ps>e+%BJgu9sXmkPM!+dZ@ARCh(a^1l!DYvOc6zN)4l7>LES9j$>n_z#5IrOyQ% zVyt0nPf%QM!jv?293ES&Vn?Jp9i1yv`7-j$RT5dn<8y_={X+hp1C(DNeD)iH?*J+h z**X!|qr8qvDsV}reV!G&{=Ty}MVy{f&0J8TCoyH!Tq^w*d&uZ_bs!dO*HO4}q(!pp zv1)|ruqZn@|L)7??T)FnrR9aId2vy-Db=A~>5Upmtju4{`ue_tZijjt2FO%3(R|)0 z_Fln-?R(zp-eBaC_9J&i(&=1*w6T38OQ9;4wSoJGgV7DouvJKVM-Oo=39pECUazoi z$uwI&>1a|+FGmlw4Z|G+fgp0gkex}3ajm#+jB_oj!J-%RZ_=YjvfA)q0AtH>?_oD|(*i&9aJ)+jt%(U)2 za%d+ybtDgSoy+9$s+eG%s)>ss1g@N5yNbrca0wR$i#Oyk0C%ux$B`vNV?p3!gcqH-Bgh-WTDw%{|l%nz&_nfbhO|0r!=!vFWytyBJmz zvhv$o6#t`K^yZLdZr`n?2ouyZ%K}7ddtAQJsL1wkLE*{vPvs`V``g;CjOFa{qlgMElcWUtB}+2H-N)|Xo`s&lQG zif|agh}<#w3_jAHTw|vM*w?eaXy39nZwjJ*cq88gLfzph5~Nk#td^fUYSDL?7A33% z9NprRZVm-spvNi2q6jzOi#tHAV2To0-#_bfwDO_}Lp?uX)oJ<2drv~aldDfe>fm}d zhW^$|xw0OdOkZf$5`ZT>t?0PCHEPx>;s8IrN)D%SE)02RMOlm$p1|#5-Wqx=zSTF- zJ*X%^3CkUF(3sEN_KZBfe&23o$yBf4rqG9ylcB74vX{}LADEeZ{T{fb3oDB-S8_C? ze84rtFnZXlUskGd7qjrVp++tA%R6> zr|-3Qr(p86Ji=rLQR2U31*z9T7uD@U(m=Mhrv&*Tgt=D9_otm#&d6DbcXg%fW~+SR zfFgeV^m_h~3qD-K!Er zes+~aPtt&CjBq_5UW~5yq)U_{Ipg;0QDp6^yQT2A>!U$nDlq2BR4jSnlM^6!uAhk% z_lyPySdizL7!4&83BFj4xZm#9`=;ce$guDTe?HyFt>b_~At{@rprYx^eJvoN?r%^h zO?w_FsP9C}ZiAd!@GaX7)Ain0SaUG(eqkuVmAqF|e?s2@l68fyl4Ci;k#;(Vz&>c% z)7wtiPpt!iu~KGh*PLt?d9oYMJxyRBIK_i-u)hr@Yj#A@+Q%<_+ErnjUw$sC zn(J23RCTqSX?2IN6{_)T6R|q2Sna+ZW(h`K@Z>Uun%8kqx5Wmaq z&vXH%3lqS@YjcNrhdD5mKrP`K)!dmq6Q^c6nWIT?EI;HWoe)of%r8M}>2Yi``x_zdp9#; z0WlD%UOjkIQu%MSMfU|0{OZ-BQMauCiz?5$`-15id}RoQnU~8BQeNVrA5U`t^gV+? zxzqJCtapX)&hY+i0JVZV8R{-KjBM5Y*%kKTnIR5uJ*z{o^LH@N#mcs)8r>*Cp7XU z!Jo_HlFW-!8-j-wOC6*mvhMMfDE=pyior)BHv5X|{ED09B%Y4U3;01{NVA!HQM+;< zgu6V3_BeW;k531V*Cpx?T6JVjqs7j^ld&lbL6ryQ1FvHsN2mXyW59n9d~HIb=k%GW zB@{!PE?n5hC7;@qg5UjO>yw>U3^tc*|GG%r$PZHf8y{606yGg*;E(c$uBW&2+3vu3 z!?YEuA9Y8lMN}76sz?R5E&kv2{W?QMhZ6oLp&lpJr(lUe#;aKc%Ta^3CyU$U482%w z&|f-O4OhP}JUz`rH=7&Lf5b5WB{(Q8Hj178dB(RS`h(}oVV~1(Mj|zKQo+v|J)QNw zuU2LXd5`VtIKBc`54J1c2qMnbc--BVOx3R^CfQ|GMz`oTRLU?nTK`Py(91 zx5wz`P+vvME<{g>wQ2&e92siWl{D&FKLeF^gbYzCNW{!AYOXeRI{}8KLCHWokW>B(}ONZM) zOoj6AzkNyjTEa01W$_l3nK}G?+0kMK;kS1u>Dxsdm#fJ;uH491?_K>dzvAQLRN)#C z93(2)$LH8TVi4znW^a&5(t}lxRxc$>ng=-UK0ohV0_o#Cmyl8Q@w%bZdMYKb>01_A z@-Q)DVswqyeR*kAo)j&Tvz{}lIy4b>LfHgdtK6E*${Y~-Hnr9U@NF<~7R&-OjFvuq z-bp<}Y8}=!;H}9YlBHJw|I_bfHHv@HbOW&kdLFDf45Bhm)P(kb~l^WvDNzfNsDXvC4+W_Cj-7CSIu z?G*@-8Y@i0dD|RuV-+i3;aq(ly7wz-%G*x4k>_KeCHo5@q!_})E{Zq}7mPBP**`y{ z*!sCaCCD#k*VVbd7^v&)v5@*}ivo=@$4?g0-2+Ktz*t7gRUxA&b61j)+_ICP)rFI9+-w2H=L_n*hp)|a%^DF@C! zx<;xwD`0QSx7Bqmjk$G_gmJQ`Ce*3fv?&cfox(n)WKu~+Pxy5)_U*>I`SexZc#lwB zC(is^{GvlAw0Uu21XwqVkk}$UW~#X(b9osJQ|onMIFR-&Hhj=0R1~8E(>o2J!93sg z#_c-65K`e+U;n+9U|w)s?IZAUY*cvea|OrFx4^dX)n_3L7yp!D!fcju4NjnHp=sb4 z6a;>c0$DChzbrtiB?5V)c;)$(afMb#le2eBEKLk9z~o}n9amA@t;cMxn9GHa zXV(lxqEwOxm&x{Re*vd6rXYkOO-Mn^an`1G=8adEv6ceQwRN#8H$?A$SjqpMFtU2Y ztWXOP$-QXO|0B>qooWp}DQbT5pfue@GPt=cnKE=V-w*!!Bi6--kwSbDe9}2iq7kNh zgFVJ^>koy`Vc?SzKSgEsc}Ip~qhHvC??vKVW;y0`#`m_boV`=|dpT%!k_kH(JrO;K z0=voaP&$1k*ZGN{iAM<2X>&_`WXH1%CuPgKadmALcZmv$a!`5 zvzJ$V9bIa;7Oxgw_!)8b!cw_Pg8(eBk2E6Nfwu$qtb9$`?iq3$=Q@NFJ*b?@gChAU67M6NsGvO)@1wh9!o&wBIg_QJrXCA76+4T5Q)&9#rL-!wC%?vs}}(Q5LQ>-n}1S&`cRrPwp~--$i* zG+_#oJVQu>bxi{!{bw7(Vg7EMPi0%t8!K_4aJ)9%yMFN#1_D3il(42FfL(lc@6CR+ zOvLl!q1>N8rk0+4ycQ=NQn2uW?(S@CUTk^1s1KNY9Vs0PNB5nrX!D9w&k}Pd59=w{ z{hZ&jPUQNsY9&84lsoo?_3i5m&etz8rsy`GJc-niBgp_(61a9e)Czq*U!c-PUxY>0 zxx?yvYXkH&CO{JA1jD7LLk7*w{K3JOj95d}=nl5*(H~cZC-s~W*xy8xvNtOq z(vn&|x_jpi74$c~bG~;x)(Q7^k5Lftp34F7z?%34FkfNlF$y7ulXS?Ru@m$W zO2dByZ#LCf_$ex>eH4}Idh$J=Mebo-9fL@nIQQ%?Ah@8sQJHW)HE%%60hXY0RPFGE zGDM@7!r79_#NcX3HuFeGI?(|@*|Snglt!RgqH5$~%-H#k>BA+QLbDr0`d1F0x);4T zA4|7@)>oCF5<(Y5uABUb2*sWq$nc>U6V`^#mW#~Rrc_40`L5hDG{lvWDG*H8&y>yK zf&on3K;j?#MdA)NGcHPr$TaHm;(d);nw-nB^|fn1%W9wA(ooH2H;LS4L_`FTI;gck z?*aIsK_q8enuwBBx)I`p8&}R%RM^=-DcRrjfCkprROVgDF$r7f=tl|xRRPWIJpUV( z(y_`z|m!$ng~tN zhi*q}POE_gfqnB2Z5lZ+F0+&2HNW;e?+Dlz`bfSMcLYVB0E41+F@HdKPJk1UX{b7c zJ+I*>?2e)WRy9(E`EIf02uj)E*Qf7>;yF3#IY-RLu7HvRHaEpm;4NEeG*R+t+CLEc zZ#_o-1=%CtY?q#&%yF&>e|iC3^^i5!jDN%oLOIa{G~L?)iO@5>ic#V5SIG#Rb`;|) zpRUK_ztIhyUM0F=7g?l&>cz9WEh_6(8kb9RAyDBMm?0cN>qE9O#R8gGW?sYuR=m?n z$Y$EVb-rX(RnFkoN7hex{=dZ`?9*qnorG@*La36|mq?E$w52(j4JQ)rOszVEo&8y2 zoVMov)3G3FTB!aJe0A&v@F7aYytkLNFM^nDpQGjjsc8aj>P%+FupzHftHNMRJ`X=s zerTP3)4;Z@@zyO*;zFcM8bkd1r;2k@F)+I+8ZhbF`~z967+E`^7qni%xPA7hu??#r zyJg*;uxRODwKqAush1m5bzK9iQ+g|G-1r!1l_scrDEcS{0xXu|i+t$=Kt-Vop~uO_ zPdiSzEckIr<(#N>gY*e=mWmdOi-|>9QB(BgBKApNTga-orWCKC@UCx}B_HSaC33c0 zPg!2E+Z`U`k{hwVZo%!t*2(4YfeG6|;kttB6JzVK#FcSlZMQpaioWff)&Cq+`^@`$ z<{WFYQb`9_{+-mN=qoI@gin}FegjV6thjJ^hkqKe5q;T^B2*WF=z&VFWnX;(Amkxh zF%+6hYwW4xWj;tc{qKJ#ITyosQCP9~RW-tVqPmEY{oG;0`2$#c2cN2epyikgWL&Ds z-d=OhKP1M00W6YY=3|jQO<6zz>A5VHsKjRr^7>; zT`yuDc!uea-dU^^3u0+VZ-$3rWv6f0nv`!i{r_U@EyJ3O-}doQA|>51Qb0hYLmFub zQ935w4T3T^LQ)z51u1EfF3Hg$B@LrNQDU;8jw#!||J&zzesBNB_XY39LEQJ}`kdEw zoiTLezt^mD_4tIyN5z)$=OzRn4fYbFy{R4)X70);*e*^kCr>u}GB- zHBzJ9V~&9r+Jk=2#{iTS1#reLyP5*J$avtT=|>FhIT-0_dCU@W@2BymO}-0HKu4(T zIypevvBd)ii9DciL}yt#Tr*YY+@cFmHYFY!T?pprSz0;k^<=%v9eSLe@ljpkCpXpt zSHBNbU`V@kyoM<5y?FJayu%yVqSPP|!tnB`)b#t({sSGTu49cU&mcZocfH5 zwk$ASQQ$TE9Z+=<@X);EW}#_~FJ-pQ?ZfdSWnOQxpK@4p;In}{uthlaJ6v5|)K@hn zzvwVEHefZtJ;fOS*hvX-mQ$O=CvboKlKqxmn$U=F4`LvWISZnnbi9iiJ*D~Z=BTwV zk*&G6v!~g6BiSnFKFN`Qfz4dl;Gifyp;tq z=BzV`Rvt2>j~Wju@9@e}&4U5yq2WI*0kET~x{Up`o6r;y8L(eDkbiJ;aIMQadg(gj zI}Nayz?AEqNRTQQ=nt^X#?BDxew%QoD_$Nv=@RMR3SxPG+c@8V!q!7ei2pY^*mxiI zzknxW90(NjJCrgRS&h7)s!3dRZRv|~d-^bon}wno9OT zqtY3>90L+lHKrKuvA-DuNL{%NLiH0tN`EFyY|MuznXkhJkNQedL4OnA0T5)j3j=+s z>e1(3_~Dly<1&{mZ?C>79F@`&RR9*UO=KMeuZDqDm79NHSZfHnOW&?6oS4Ov_}J)A zrdr8Ug|80gj+PdbjZl5uC8p@$YkywpXcNbYhCtVnQ&m^SN$3<$8t6958Q!V$M`zh8(YEpPg#3`gR)C#7+{9YevaDI#nnh{zp}rw+j4N+ z99$FcSvO4Q7JeFRm>aA-PC_1^c0~!S;6m}#xMQ>qI1wm5flU$W#;2BDJ=tG7a*$%K zowP1HXXws zU!R;j?0AY@Rj-pNc}0TK1fa)!2AuVmEnemSpvT0mIjR4H9CiEXHv6;HI%;#8Ylu6Ufm!DpZrUPeCxxOCf$X|C5FuBAX3_vYE> z-9C8tO3js5_YPrSI@DGG!U3M&20D|G6d^;(bdE`xa34q}oF$xWKPZ_`bwy!TpwiBM z^&r&M>pn`df~4hbOsL$vg~U5TBT)($c36XAKBQ0CVMz3De{Sy(-g%{ykayV8nYuZ1 zOXGX)^bX4f3Fv3xpO0~>sUYJsz^0LXLX!rsRdNd#-ROjaTc`60g!l-g&xF#-Dk^(u zykN|tw~$DC7o)yA0dBuUQD8(zmT=}1&gv@>#e840t2#=;z8YG5jjSEtqgPgQCtIfO z+LuOlVKdO8Ngwc{`{3kf18*vQK3VP{@5X-}eUXohjUE2-_C|aM^vak-odWb6j;7pK z$^~rFm{6$Zg%+LAphgD} z%io`B2rf3ZZ+e@ib)NA3kYj&+Va%#i7BCv2Jjf|ea`7)gSj2Q~?EJ+J53Z;Ide4c; zoXNiG%sR`b`pkg5Z=%QgW72J#e3D>#P)Wx{B#IU7Fac>sOzp!u_O?CgTI(esohROz@N|F}F@MFD&qqT)5>6Q$suH zqr>dCj6(-)P^zo@fQhEZJ`OLwC(V1(b32o!FB>_e!YE`k9q_QYti+ImbLzx23UEm| zDV&%9zx)e~4J8M}{P?7o8~bdk|G+($3-^f&*I)kl;C~(2_qKNL%NL%vmm2&8U~cQv z#Ohrzzymn&`Y9C#RxoRakU286j^cqi)s0mi#u5X{)IXmJe0cRh(U1{}A_L@Ur9y3XEhO!CW7kkK-Uf(9REc^xxTAo1K3-9Odc*%< zV7a)4ZS`}-{LN*K@9)2ejUNpPdkG!+{$<8K!qt@lJ#HDE9dmc=&a7hgyKTcjy^nOa zCe)a;oE{NSC7uWUh8#S=ludmN$i@h>`(Cj23_K41CM8H9aYO#kflnp!N!e2t!5?aYZn3KahJ<(k7t+Td zC}3m`fCXGZ#Ph0?LXY2D?-%Ti!dNiCg3S6MgNSj?qeR|V@^2urqo51~+N_iTDuio7 zFYR|`9?}H((x=#1+Bxi)`(qmdu3)mNob4N?Y|B5@uIQ+G=;^X#+8Xh5p|cd*ZBE zi>OTSgxKfX(x-0914ppfll%Lmox zTfE*fSJ@no0&m{Mg8K+L4QfjDBL_ebM)3iA32jGtTOsE@N%F>#@rMM5_>Tc z*sx|-P0xQMHlrJy+HwM9ohHeE$=7E+5oP}IA}un8wmXB_unPpPW(YA z(NKh%p$$^iT+rtSzt2ZZ1tQ2>a%ed0zcw}sq>^I$N)0cE0mr~@0Yeu@rxR42!#rKv*4Qmma*I}1emgr_l_?H^M3rkXGVr~3 znr)@y=ZP9r=!tZqAk?W3S5U!w?|5P4IkSU$!^)`a{U#nAqX&68l(eJuq%0t9W&G== zb#ovI9o2+}U=wkW{qrOU^-@ZJb zLfUlTie01z^<^rKTi?kY#yFadX{#}}A2!k(KWlPcAsi59l` ztkb-;*)iM3@dk)4)T2yev!DUVWnBYlhW|4tD4|7{G}Pg*6+BpIxb1v8QRrDLr*`Xp zex%f!fc3-IUyw@Tdj|+({g)Lq@KzccxKQA{^e59Ine^U}G`BRH3xNaajM8=+l-!{- zWfWwLDBHafAyenDc}y|$B*bCI$vAsL`mZcMEl1P&9XkVENbd+Xn9vU!0~vf!zM;t}JNT&K{VA-1-ubXZ*V>VFCj>*%}&${rN9 zphN*$Jy!V0UuNQrj4!Ijq3D!1a8g_I)quZ_N0uQYCW{Be5e~Er5`W$|!EjAimeA+8 z{R)Su$b*8kz=&Dd#h`Wr|AirP=Rn0Ik2vL#EUL}kyP+Xzg=j92SW^q!U32|>6w%Sy za3J9Xh5!~3nThYZqF<&Q_$B$=ewmytXnj9UFm%S&4fOb1rYoTazE`w!n@~h#+rmEz z;@H4tj1M1N4=i)A>BwW-A2s}LZ$ySaD{JBayiYz;9{oROKML00lxG!J(zqmSJ%;ct zE?nJpSLfyZ*67pv`WHT(B!8O@zu}pFj)TczET^R``iAfdSr5#Q~3ui7ZSFlXC2+drsagpM*+QmB- zvZI1=&)$YXqKR{*Z3tAi(h&VM=kJ=}+!1>#Y!Ssu{@d`65kdhzp#%O@*p%^~$r~`| zluPym)<2q80a5e^6C=BsJ=NKm+%etpXTMiE`WJm4`!j7CQje>BAi1&lVZa_=!O2Mp z;44$O6QTv4*r!8#SdbzPo98{v`q!k)g;i2H1&q zoHj<{fC7>Hdlq6~Y85ecD3($^>?~XF{rdW};2lN*YNH+7KsP7NQGn4Q+?5UkL)9?s z8SQ{fmrb>=gs-K9&|p7q5~L{ME^AC);{Q4zbxhmwA9B^A{NnL^4Y)Nn7sAscu?VzB zb%zHXo?)WaQP3<-&#tUJ->{M-mOFdULtPt`;kTygb&k79nWmwF7h8bcGChozBBgr{ zB*w0tg*quG@QibA8FA2#nSUY~oKO*_r^Nk6n*gMHc1)&Lt~SPZ>V1*Na`?98kUbSk zpm(K_VCY^br*Y27_opY1KyY)wOiE^dHf%rXrF;X#q_e;64vHbWh&65o`kPK{ehsh;t+A*|c3wh)-aE^AG*h9qWYR$(%bcCNoF@s|d9{5X|EN zq`Z^~sJz9%I9UUXe~M-wyn-{W`=(<+W~<;?b^oh--w282jL6eA-p^2aYB%Em*(z*`?vy^uqWBQx-5m^Ey6h<<9frJp)n;i z0sjAD1k={?Ti18Y-89rTpK>VQMoQl5yBZNfbWLMFgV=e?U~f4j?vm00@xKuVSq z1spQV@yqL+yxan>GOnvJLe|6o^1X}*5GkH34U+1sbpt}|+yOC9mEk`MEMR2n1QiEX z+NphZ7^UF>PPD=~HYhp5)NFCnyyvGqSn$No$~AXJ%TBR{GBi$K`3O;Q_k06^#TJ=< z?0SiPo&F`N*b3f^+Mj0Sr&l2f|At!*h5;?L0 z3=cE*R~{HVE(1~c;2D?X34Vu~G2zecH>4$l@Y+?{YD~3JUsD}EE-bu4TfNFM2=+_I z=)ZaYechw{62br-yMaT9Zzscb(lf^7T+bP|K$(BHI;P=D%jemXB+TxC z;>!x;gqw@Yfx7d~&W;EmmDhWEOW3<20l0(7%2YZiPB;Z9CsrJLXLMrOv_jB-Dg2 zDF>uM{SKk0>2r<~4N8Z5fo}lB5p!0%sQe|z6@f*?5A;65HcGcNSPOE!2{|Jh!6*$o8o`gYm(0(;2l zcIe44RmXMDrGUeaQ7cu3?smn8HbMe+c}8S$TB2o5l>nq4;QoAD)ALl_I6!gx$JuX` zy36a)0e3%{h%5;=e&s=z&j2m3DHh=hjODwqrAt7BvL!kb7&kUYkpl5QH}mRES;#C> zFZP}A{aN?R?~tl6@u+_D=J1?&cm>C^5#Hm$=p-|Y!B|il4PYf@@B2U>YvRFI=vrds z!qV%)?K#c?oe+Q9^e~2g=eY!M<1GLtmp~7U`tZTu)sR1q;{gDL2CeQ{++o!MkwA({ zTj8;Nyfv^5V8cF>ugY88y>vVLMaKrIbXHf(tkm$t#H2`sb+Akh1x)@J-t`Ryukh*Y z(aRhyns2kamo;&;X*Yj!a?om9xLK}y@avnGe3iM*U#}=}=GY>@s7Yy}LzK^+9C0J3}4W?V|XOu_f*3`XgZYVaGFP&E)_)hH`^`2g=v2zWUCp~%~o&r@4R_h zJ?$rx0-fYD`S|XM{`jNTyW$fThD~38Ap8-5=dp;6u0$C57T`Y;H0}Yg(&aZdt$Ua9 zht-wdIO?&Kc5@W@XCQ=vLacEwU21lmH^xRcE2?$_}G^qwvKPWgxnYCxVPu z0#LG2OYhIq@4zN@)cSgs0;)>QOe9|VaEVBh@A@aIW8Qi=xV3%>OB5cIx^fUAC-e$?7{$+gc= zNF7wCWwB=UY`|V#m ziwa5s)^7>BzQ3%b5;%ZlaV>Bs8y_V)6re{~o*!}XzINHuu8aR7%H9y3fAo!GqR>@@ z=J(LJ--+}l<%l!iil)bIs?3S1N5`klsOSgX$wo|_Q>Z;3*X*eM>}A>PNg)Ls*_D(d zadEeO7o`t1*q={c@*Ys&f?nD@+a6>(Yklc{Q=}7g@5KHdsZ=@T?n%dA<|}j9d}(Jx z>0l7&Nr@;9TOz(7e@Yd2{%fdOx4NjvB;@FR2~;R@%kl|057UkYg8KfxLs-ME1HZEb z-U|cY4@w%ixsCfVp=-{#DfNZz-JD6aq41IH58<>xk1w^9ys~B?M}>eavF+f-n=7;9 z(zZ}s{;>5*_&nD@6FQoNO0>hlb{iKxC5uWJli4Zi20AP_?a|l_TOrmT$AE zEVygSvxONkCp^~w5EJYL>LJDFO+?79;T;fODNO=#SvQ03l93 zKokNDez}hef$@4mg|nlvOEGzNLENH`n`=Xsv8n{U4oOoup%AfG2)jclC$jkLveBoV z;nh9rr-M85k5+zs@kV|1=G;mVx_&=-Pg)HWHbu(SQ3TN6G?#3`@~+crD_vmyR$h>``MIQ zEp+@uS3;bFKVt<=|NlT$RrSgLf+}D8c*lRB%8doZ#qRIXSw=1Q86YF{dtq^eCI!^Z zpFr&qcIGz0l~CQY#%8HxXm`X-v4{&Y(OW$>aD#*rhcwAG{iIp&EN~WpKs7!Tn zD|a>fiT##Z)PZ(;Y~C5Y``V2f<{zluN&-lCDRR-oB;dxOiI|qsxUN8hK>0mw6iTphXLL?xv0_)lp?@JmSHFOW?)Y^Knxpb54Br)@V4T$CVaT#Y_^q{Q~KEJxfm zx^_gU!d!L&KuakF!Onz%^Ywuxl+t@gAb=R2uN zwa&I(YP7VwxTPynKrdfRx z3Xtq5*5`0Z`-i5!t}y;XQ0Li;u2rDS;RwM9Gm-5aNDHfs{3iLXY;Kb^N2fjR+3jOV{i9P#}R z_+AyH`* ziBmJE_-<{@Rd{OdgMAsr#7WEKU?ikJ2HL91Hk=DK;Fy}Bz>oGDPU?Cw`0s8GBV}zSSkzt@aW@%Hcw$U~B{<7NSH0`T^{IlL9-9#aEDxS5U zZkWpnRn5`e^b%!U!v2?hb-7X1{;#OkxpEIiQ*rm5vaB2QLZYl+tgc=HjV=tW86QCq zJL2Hs40^m=;Je{BfZ^6GF>Sq~$ar3`~pgJir?+aixQ{8Ac>NQ;Pp(Dq(`I zE(r4R^9bSzd8wSSVmq$lAzW%{Bz$3{@aGCmv#&HF1`j&VTwTCH%rE4loo+ga6>f7$ z_$bf->2lr`kF97Mjf8K=YW7N+ap_YtAk)aEDc*_|9~-kNs*E*62x=`mo-u zS)P#@!+4{_>yKEi|0K^{GbAt(nl*!hHeOBuH$hEWAJv{T^K|2B34f=FNp#eQ!2KZ~ z*0hXE#(S|W;&W84!60=+i7LRMdqgM&`ttJsfLin8(FTJ9+!#pe*9C>=%=#@$jSZel z=OXU;pIBp)qXcqf8y|*dZ6NivRLCwU0n5wnJMnD;lBvK~;X81T0Y*lv`dY~Yvas*y!yFJg_?kcvkKa;xX?UBO? zOqqNS{AnI{Q~Cv7?%*6*Vcr3ButD#KJgOm1BfK-Nwu@22HU~?h(V3padyBxdr7gqGbYgd?gE2 zBfRYc?}5R%LMKW`G+q`tPu{8Y@EYNCvQ=nv>=w)8Lr#HMN}+PiQV80T9?88AOc;Z=@OXU2mr|8m2ChHi6?A! zhvE??m0hpK{H_&2Tj#FK))%T`g(xyXZMQPM*nIQCv;G`{F{0-)2KY_}corJudmAi= z{{)t-iX_dkUFdxcx(*W2ZKmWL8d4?$XFeji>bfFCV>3Ia|V+#KUGuI z;r`i=K%tVmZ|=XxbhL+NC~zRe)vSv5dOUxnd87zm0HEjJFku^jljpMH?NtLs_u zvSQ9CDdhS)8ZI-TY@`h5lRqJGq&cCKOJMYU%_JCUHz6;)0d_vp$*!7TSL;g`5eCRo zro|JVq^i&Cy}cy{q9vIcHxlK>_Tr4t!{^xdgu;WOVI;hu(bqn&|F2Y!pp&j=vkB?_ zRMMV`UWV)6gn2T=$Tk!JKAG29h=)tq)1bqr(p7Ov;ay4h5lr_#QC&|oWF(W>3-oaO z%^wDt)^B>sSN?uyceKj#$VbFtTkDA=$pp;r%5)jVhF4hmbyX~330M+`_&jAEkq_{= zv6i8C>l4iR1&_@)2%edK9}#mC$KG_Rq`}+rao{87W_ghCPlw7@dBtHF>cA`+WNZ=H zR!QY&$~~_^1hf0*c0QT9A~a1J4DGWcn=+ zJhOElXJ>I!lBcbS>pg=EJr^>?P>xHJdaJJV?D+i6@2}c)9Q?B(Dd(i0BjiR&TN$s# z=kqV}#?&0SxtBR8eJ!dNAk?#UJPjBB&8u@4ATCWS%*fWfYLSIkRAw|*h5ZyG=erRq zahV0Ua6W0Ku|jvg5};`oU4OjU#j%(3rpDkQ~1ue^n6?>#SvapSm~!_Auv$9D(LolX`&D`#^uJF>P=t%u>jJuR82*W zFTttG7EURHdtM+Cz#pj$NF?u~1VV@Xu;D92Zm1lFwuji!;A9tYueH0&(5>^M(e{_< z*9RN|iZQ(zhKHOAzcu4E_bP$gn6`v*q397Nt;cGwEymPGqZoQIBv?k9_IXIyJx(Ui zmEH|9od@^Yp}^Uo=k?Ln@l`%0EQ^5en}5KfJX;8lSbB78jyYf&_f)tLM6`kXXQmFY z;MT4T0oJ#99G9KEx|xG}XATg`^U}|cwL914s})lA6E|IZ`XEp2Pu}PM_A4al`6Rs1 zl~dGzK=;rC#W(V5K6E~m>hHOJV0YWUtkBwuhwkF83|U%kEQA{fG}%PQ6RG8{M0|iA z3@=oLOB%cQ{vK1>@b?MbK%*^vSc>8W zocr*ag$~6xY#XE=m)OqS3~JM9X-`d0ygtg?8{;2ARs}bKll^nBT_n;*aV<^^Bi$ds zUDpi_HUwRrZJ7*QXDai(Tt{^u^!e3?$c97y>|+-$6U*ftg+wJb$QAt zyFI#a&Ff>L@b#iDrP;S+F=iBSC4m0;%i~G{K;v3)kNIoF`2k9_S9%{{bku-@nl8y*GT!Xkho{+aS9%#^o_kALLQJ>omgpiOS9H zz>4bT_#Y#u2~JANY+w=xYk&p=$1H_7g`6Ln=lbr{RS*KEBNE%h?|O z+%&HyGycBnQbtn4BA9AW!{dsJxC3dE9zkqO4D*3-u?IfkykR34Q$IDP_3iuIa%wLH z)%z^#^lzwU4aR4GF71PRHzn-S{g#eFFzf*U=Z)Y**~!CdDM8ED&CR|R)z(^p>=j#v z(Ce)D=btIR*Wg)_ut_+VD;@kpG`0ra_}A&-{m;J;t6bRE>@4eVynZeHW}k4^%4?3Z_IdW)9UodZ8_Yqop|c$=E>K8VsKZ}L!6rfKvq;7G zJy+1Eb;t=9;O53Fi#$O-=us)p|H`^B5%Jhi=wliEF)17;Zhq!R_o0C5u9qEPkS~ldT5!+>{ zy_B#{<#!*$^*E=1XW<#6tomQiLq7j^^N_}-K_E+;D2SWaMS~Nw!B!ZGFKmkMY=AoT zF*v0=Q#*I+SEFTr^d4o}FY_b_j~eCSJd=D%l{eQ)I%?@&iQ9)e_Zz=HdVT;BB?D6X zGJ$4jh<8A4B0w^qsQB6Q&4W~f&STwXp4*3DPBkwco6%AlxDNse#@gpX(9!@Qj{)vB z9^~kZG@|JLA`wY)r0S-*EEZqg~%)n*wFYi`GBZxI z9Wf5y*g1Syw6BzWBdcfl-S$27NEmIRps{9ws%nyB76%A$-*l$e13g#3lmaT9GNLB# z+1hX^Gv1U?UTHsf+ZxI37k%%k7P3J!n~NPuh2-XUf9pBm@eZJSk6^6{S@`HHTi>4F z1@XTncm>x+vb9B4W=~bPf7p#ac&Gniv^jlBd2n-T3iNjZ#S1`-V_emhGG4LtAhD(C z_}Ni`R|qY;xVMLqD?6=_!RY()#EbV@Dx8!YQ+!pxr~3%+V2n_j6(T=yIkI+)q5tCI zcvVeIQrxol-8`347z-6#KR~}qO z8MHQ_{584B)5XZAT=%ruk_6^OAih#yb-OQ$XQ|#CM3R#o^2NK?xdpP(G-%wN zPA+(i%-Q1hlY*&?Y9c^3QVm2_^yjZ<$CAMH`;y zU4;=h5N(lwP{z}o4M#IrB9jDJQve)9hJu3pXgBzrmLK-^8YaJw6%=hv0X;u z0>FzcF0fpZ>HyOr>2$tXJmqajuZ&eI(6jnUW9Y8kW0gaM)e)MQ!h-s%AJ zTD!#aTT2gfb|3;jBu6QxNK9S?iO0z}o2k0nG{ZI^on2@1hteBu;{&t+#1L4EXn3+B zB^40h^1Ay;wrv|HBkKd593zcECap61DNWLUkOZ)0Ptssq#MAGWawIH;uN=TQRamCq^1i|JNAi86}Vo9Le99H9uNO*FHR4V*(C4*^ zfoR}uc1w%IctR}8c?~qm1xsA-hNvc1+sy&nTttyo(V7r)B|2VCVA8iV? z1EjI105+tHsyMtHB>)rF7b0=H4_1)6-yBrd|v=5>7 z-4SWWIH$ayu5vJmz}n(*B`(wj9yZye*Z6q?`Mu%{?6Ht__G$k4lkYWg zC!7N=3R_**G40+bla>~8S-PY$pR?#Qfb`t?jdN@#F5yZKua5Hqg6@!!sU4YYLz1fM zTXzHe8xFc=3Zlzw57#Fvq8VOHD#qBRR|Gi$Wk?I}xA@BeWi~SQm#;j;hdgJ(AK{%+ z?QS_l)r4p4pPEh!aHyS#A!rj1K`LM!Zg)K47@v#&D`+SS*nZg(h1JdwFh$0d^_ zuJ?tqk7C_$iIU=@=VJ$enG^e2ipM_6><2j6dTmiJKtig&kDXrr1H--$9ar2;6z5~P z<=9yeTn$bM_eUTl_LLHKhf3+753szf)qV+`C969qp={!xw0Z7Vv`=qUl7@!l7|j5G zqyy|TgawG_norh{!uT)x!I%R6KI+7b`R2E>(avS-ye}#RsoaVbquzLs`e!&5bT$4T z5RuyM%FUNeiH#|0RoU`LDY;KI;FV=<@S|4|FJznNbV;wPW%wNfNBk1t=m$tM;-ywQ z&f^e_^5@hzz=c2JBEpdEPgU=|hicjNBjT9?Su&G5PbWAvGa{}4n;G(LLW2egR0PKy zy(gUl6VDv!=^tnc31>PIH#VXBq|aL6y)ZPS!@oZo z4Vh{3-NYrflJM{Oi(T z{1214NX~_k)nk{N`oqGvblu$=LVxezZ((j0@9n1Y(PLmOee2%O#!H`ve7$|FR^<00 z4_hZB)nRr`-xLJbKSmc3sqH1Lg)nU+I_8qn_&8V5Co-4Bskh$-)K4#@_vX)pFumAU z7@JX=mxRy>(`7a34~{;68+OX&wv0mFQ*mrj$WTiC^eEKPa@Cic(~Mxp5($||5>32h zJp=U*q)X5ClJe%4ZyGCTn=|t(ci8*@9Y%EgXm=;8gZcRXSya|bT#xC<>_uDP`pr?CTm>ZZTH}h z<6g$IRGd8`1Xw*arGY8rAtZPij2cXE#jJ}CAGafZFGM?t9Mck+%|JRUiy~7Q zI?jOKs3rRa^T!hLqcKkwr>id5M?gV;V98>ACk!S2MI^ zU7~8y?5LmUbL`pzueVpzuE zTi{qa6Bpsvh?E<+OKn_zQ&UpqYGq4zN1=CRl)FR7E!Dtu$0WiYKZC4X{8%*5LEXjn z0rG!QJY5^we591s;6Td$(6+5d200>TTi&rX2MA4Ky!gd9g|UOepy-K24MyM%ye|b+ zs&a6GdZGz^3--fJtaHV@TbO1o>M4~@H;Ih2KX)_C%)%h~d|U)zJmW2mRKmvLiuZ%q zq7uiTCi^C@avhe>MSR>!qFe9tS&kN^PNv%FuUsz^rw;D83Ikx#kT%?%*Tl4anfpMb z;Z1jn@Eu3(;M{vo+Tw!Audg}o#|V3s3l-uFuz`eDKo7l5iLJr?Jk(^0N@-80oM1j) zJhtglytrQNr0$-2{{`)LNR;=8*r)j72EgQfth7A{&s=&?diD*ydU%l0azH2TxOnCj z$6eVjTiHUB#8?q~tJbCOJs=$qOCvRq1B9PAv2#@Pe*cY;k-zYCOA{wmmaddW`74zp zaSmkf*PNS?$~*SPc_oOiY-RNz{KOy?r zqm_p=9afJ71rO82G>S1mRibLZxb1;Q=*$nQD-NVY9hSm9lTab{e->u4P5F}z2Yf;6 zPb{=lhUVQI5a|1G0Nqd%DWF=Ir?|Qga2NYiB$RQ}$%wm8!=o?lEW?fVldaP9#ok_= z_Bib9U$X~LIXAi{5N*;g`zZGy93xGqg}C;vuC9(m|9IY+hi(6Zh}_h^sqmA`f?#(4 zARzCReH3_v%j<=_CTHDJdomMp-O<+G@l*5ooz%r?=DPtL7Ph%D6rOk~oCl^JfQ*=4 zyCMq=MPJXa&IWj`FZ(z52ilB=ZiWX5&#t-a-Lqf`Lk_4k0S2ZwOD8lFOG$}xr-fZ( zyf#w9pnHg#Vd;bA(={BCK z{(fm^k3^2hJjt=t@RSw2^)AMQ2^RB~48QgHf1*r|YlfO|BHzZ&)4+7$(ka1F1qKTN zP+d?@XV=G{Rj;)E13KBBF?_@hR@}-V;T)Re17m~+HM!w?rKP;#Ul#G&0Ml5o&E!<# zitI>NyeaH=+v15VYn4m<;0U}yPSP44P$6#a0C1g4$qW=pwGmaP+V zTUR+-q>G!1LMX!B-@{NXev*2N0X((M`)dOnzVJ;|=j?Y5#}`hL0X&vw zq9so*E@Niiw}}bY{)q(`Q!ybh;8KZuL0r|)Kv&o8AsBE|W(6MxSJzB}+x;<=X&+oGK-*L?TAvRc_;NkJuK#2Tt{4#yv z>8}DJwFl;KKWV}|mB`(Xa{zADK-=$y<{LFVhT8%@?r*A)iCP~vAEi$O%8i@R!2&G) zJv|bL1)hh{itsLt8Q{nrLeQx_z|wIZ`NamPH}oS7ga|*urT@@_fFb$Mv>fy4WeduW z_y9r$Q3kfal~_~@wOiY?4G>hySX4-qh;n6OaLO06VvgR|Rg~4K6$RNO{Rh2F2SwvY^~)`&U&p{Zmktof`59Ujs+E9EP==RL|g=FXbV zQrtU~C{32Yt`VtyuB-vI?=(7o1O~!69q3`$YWRBDYUCWo1V?Duuw8c;&IN1cW>rzt z^uV?yjVSWJ|NeiE;Q!}~@;?jz)s%$npJ{BIBc20ibdb5Rcs>RbM?cAHIJxXuS(bG? zVGD6W6p$KxefQ_n6-!_sJEy4V&1ym?j0DOaf2eeJ?&GpID`(b)0jB`NBiGh02g4s9 z@RJUo^7yYeOe-mG10@2Y1Rv6nm)?Y3?rStephX?g*f;yvmfyH#j*=RgINhRG18mu{ z^MW73@T4K_&kr4KP{+|%zJM}7X#~Lu^}?{_iZ6c4`KH^AMvGJQ<8L&cVP?5hUeUc^ zs!~L&Y+a}Pu|0o=K~w)&bx;9ZjQq!B<^8YadRNxdGEf8Kr;jR4hvx^1c`oHp9gId& zmEM;PA7mA(kMT?AWO?xdI}rVBam{GH;raHzam*vahaXZNohB&3Yk8dHEyvUSG_-+E zb2h;zve)N*e*(6x*ju>mD@UJa=cCfJCtLvymF)B6mxUdp@7I(v$d@P>#^jjZ>3Mom z-`I~c3nuwlI#f(=jL{sYC&dLh#W?x&boN%;I{|7lVdiZEo@C=J{jY##KqHUvBy;0* zk0btUWWOsB-`^`k$o9GnN%Q(NZ%p*pkcN#y+C|UC4y4I^Tb+(C|0W{pH#d&i?M

2{#dU&>LQKTAfh;aSP9Wriz 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

LLpb_7iawJ!mF{7{6o`%sL^lW=f}7jG zBpHpv)Y`AkKRV!CfloDV_1<)EZA!9y&r;HC8u&glVMvYTf zR!rMTMKu!-&ObAmufFCp2I?$Ip~v5x&*}txQl_wWnXP3>8$!BZ0v+7ka~`Sl?(4?t zzX6cFcM5uN+du(OXbLv`2n6JY=42s5KZVH%@{I52m)D8|U+rko>DYyK{?DLR4xWa5 zRmEx?y1nsr)eK5R^Hh++tA98y6yIHCT+y=(RAW^WdnkW9J~z?Ua7Rhy0hmP=eYlKg zBGxBUdDjX@AgOrDwN?USW4C@8WEnRPZC_Bj3{~Q}&Y2Kv`aHy%R$J_eDUtWABgW@A zsheroQhLj_1(vk4)O+_ygF{jM#S+i~An|S;g0EMXM%|OpOU;!J;fQzE& z?BFBP!@AXoT;!##9);*LY+Esd1wta+1byE=-HhC4&A8671H=%h11=i+S5D|OhSzj0 zJETlXF1dXD(K9onx)HRw(&u$n3d5E{&PVI)t!vFI_L_QZw&5?Z^ImnmkLN7?KcE1B zeFd0#>PwPFfT!QK3%@O7wbWtOdfcV?rj#A-+-rme=_-$akcH$MF+lLc z6Y`bsuA+ocbXvWx5o6Qaq3TOX(k%t7T|>I`f#D1{N2dZA%tS=Cqu=|%S{e?|0;(M_ zv*hcBJWYl|Dxw@K*gDx*(-H}$Jf_UUpBgq34TS(%7vn>GLaM?3b2Hg2=+HjB`+kG>&Q!(HeORF1qTZOppyaf7!Rj9O~oq0kM>9pJ72H=bMEx& zQT+BjtV!^@*$xmh+{Z-)LXl#8v(q-XTdjCV-HSsuc-Jc8%KJ)9)L)C9KUK))j7pV8 z6ZZqd@9HPPc0>SNj*lP>5#33VOv5j-`5Z`jH#KsXXGOw}5%QLoFREM5Y!1j8ZgUO{ z2#zhrGzT4`@pJ=d!Dy|B!ZD%xnYe1wZ$}rq8=a+d4o26qFE2}AQeFPdwY-?vkY$iy z3>G*!w}&76CKO_?!NK}`q$I2J_m>`5w@pQc74i`VcpKfPq0VD`;e0e#lk^_O89>@0vS4}*>*|)3DIsUgR8bAxIKUEkk_B&|wabV$r;0|;#B_|*#P;g> zqg!uiJ60!lI+@HV9Ivb)o7$ldWsjeg<0AL7svf%PkfW%WvX;V;?B!W|QV!;Wqlfu^o&=|_hxD;2M?iB*LBXS(Oy9-L8IR&kvgR9ap;1Y*>y|NQw`24 zz**PRm+-Bb_v-T$N?mM4Cy)-<&VMLPNFJOc$!#fRDTcamMRJ)3TvK11kTVIXFbd-F z-vjH|1N>=0P&%aDYQ%~KdH<}c*NXt{KbG$nt5IkTo4b*8F+U){y+egwH!&=uIcX>W z3Ixmlb2e+Q;|_>Gp<19WpO-YDxNiQ0FBzhAL!{G*(HqR$ehVP^1~B zkIUO!2ij_UB=RbO=@3YcU7nyAy9G!m%bV2b*EX$dv_6wYO)we-dFL8kxW~Vv^MWpX z-)8{GnU|?K$a4b%^R$CfbUpv-*SJ+XtgNnB)vWjCS_E+oV_Ppz2-3edwAG@2q(%1) zOh;XXfUX>4X2;-sp$fJ;n1OC;B4ak9R;}t?5(0i9Ba@5na+cMlc!*M%+3MSK{Y(jz ze^ZNd1P+THoDSbgL}$JWCH3l^@9J#hYj*64JujNOV#-jcwPG+n!|?$8tt7@6-iAIT zkd;UnVg#Wk9?7~@q;?iGtZp*8vcf9d`Cu-$Nc2b|l~zU&rX1KWL=E+&`#=gH0C^zH zx_6l}`-BlTzK&nIbrHcFiyuSSRJ1icLv=;pRe927#3ELD!^!^C1z^`L2S~pJNq_gq z#$ULnx;reQoPyMKw<~qekCJa*p6X%K6wi|TmL@~D2Lr(R_A;Q?_Y4-eG6NL3z}7SF zn{4fi#|-u3srI|~)rM6xt*uyl=o)#)*MYN_SP=CRhJxrOlUE?oa( z!EDH!5+82b;=yH3kFrX zWD8+%8v+eIkh*Co(X1~_U52!x2VpE25_I!-R^X#)j?ZhG?Y;`{ZJ`&Y=r#Tgb3a?p zm!k|OwEh&Nfyh3<&Lsow7qjw$Scy*rqCj4E5H>!x7x!W~^lU(l$v$^-kP(>*&hT$SXXde&$J}6T4o^in^&{uGbK!|9{Z-rtwgQ|J(4$mMz(L zqmZ&>$rdssTe2lPjY77Vgb-##$R3K2Eo;{7l8l`!DZ8DyB&wlssc|Onc z=DGiGo)^8*$H!cAUDtUY=kYz3^T@HhM$;WAR<#%pY(cnenT{BviQ-E%PZ-$S_FMZ; zoe%51KggjFHZ`Dxp9~WqiG`ZrMmy1%E1fWQ4VST!_`(GvLTQvnf8u4C^+;sr5RC$z zlft9_py?yoKF|ZVLkh#5cz%_|To%&ZsL#=@`#~VEXqr*B9eO@3%ZxwW|2Tr=0SDa* zv^zXPjd_s^GzO^W@EB%2csmztbtGR|DK{Lka_Nar|G7sDYirYoS5`oa5o|lyEq_bJ zN>e$^WJ4;LU)@IW*Lr#&#ki!hTgUUf$0!*0=OR;KUlNh}n zX4BFkc0&=Ga>ZP)9p*<&-m1SM$Iw?$4}jO_K>CDYFC7F&IWl7nM}Bjn+wx}5UZ+=E9_j~B&*jM9~=2~K-^+Zs?qo1 zT*xo!i^3DXP1)>-$tHN}5k?~#8HAWc7d4mrY@Vd$GiHHmZR!Z*;Ym2!8!@}L4C|^w zbuMu<{tUfZW>j<6)9kn@gQMu%U7ESZs#FIB&U2BpTXLqV`%vPg{s(TLX1ve%dmJK zMFC^;Df<`Ps&27s+6}5kFV-v{KC;ykgD{9N2RU+5?ZSCb9`Gc%(9T0?q;ycz=G}&I zp`zwzsl4Y5d7VHFx$5^kKB_nDR3c{?Mx#NXGA9U}{6GCe{r&zwqG2I5k54lFS$KNk z4KPr7OicQEO~+{B_ler#2IgMt)pw}@%t`7MXHM@*EukO4XQ)?_cdlYX&@VKFry53B z4WoA|S5&H`3>8x@dYraNX)50}KR9dnm5$CNqX%T3gshHkPvcdV8%yG=Z5F+d(v#<# zzauIy1R1v%3%>sV%PO~~eGTxh`5X=PABT@bIBslz%3h#`;im!^f(aDbbXcZDGp5uR z2wHFIlQ{yH;oSkaz+R>!5M^{E7c_Tg+&MLfJJ3j7@kJ+Nrq0`z=53hYE-^(c$A@?>0!72O$2Kh!(ghZzHTr9xlP=1|}m( zap&?{_o=Q2wXKLHtqr+PDNRXjNsshQPzLnf(C9AKx@3l*ng)*9nw^MdANghh`2^oM zGC)fa;Y0*s5GS0CMRAio@F&SH{C{23%{ETcPp}P3Hct$lS#zJdXk^&PkYt+u;Pi1| z=%NUa7@?cwA_qYFSJ%?+&caEC^QV$4c@i~XvQmp5(i{kE)L4yuTy=~Z6)kE~3>h-i#M>yCT-C(3rI8Gp`sWymaF^-9%X)vUbmQZA%l ziTsr^w)BC%*K{_rlN-(Ud%^G4lz(5Fks(X`&D2h@@Hg2H%RW7m)Vs4L=$oYDzXyhj zJFz7{2^fE*LYzN{ab-6xwH=arPNk!f$mZspWb-!d3s^>Oqg}u^1ZUa-^42|!$s&x& zqfdx&&nT`-rCC2|N_`^BJ}QcrOKUgIgr2vfW2F^Eyj0qq9790YAwSpH68%gYCmJdi z)Qs$3$P~ueWZA!pBGl2Ux;(kfN`JLaOY{Ii;DgW6uS)c?z5uJA;p&h#FnA>~G?I2~ zxmTp#`v{G+p1kcBkybXWjiBO>$Pe!{ZALBtk^$u-B!P9np!;NBWSPd2p&ntL2yew9 z*SfH;q;tXY%zAg&UmvRo%3ICtuWP|vLb-6+%g99R3CGQG4e?@aFE3Ywpu6<4`W-#B z^xKBN#Zpbh(%{3;oulPER-z7}g&0*31UHSjIbN9i)up*vD@8g(+068krQqeCLT{dR zNQBdKjl08ew`DO$-K{c7k*=#3H=4(n4Mal{HOGSE^iEYDyS(_+L@(WwHj(PZgk9={ zCPJJ0dr_Rf{Jf_6t!<|MLhej7a!Y=EdHkp^rKjl7vAn#1jYlvvKRnb;7a30m#-NCY zq4q>-T>ow2`|_Yj!>Pj&p=BOlJHAx+)m&}%0h+Rc@RW(OXM(@Vu^|2bGg6}ey-t!R zOA_5mfz*H{eY&gl{z+*!#&x1{Dn;G!+GL%vV#3$rc#WiC!)vC+NLEy*nT9B!g^&{& z%8OiMJBM#%53{8{t~Mp;3d~nFWt-W-{Np?9Ps$ioAy$ZRFttWg7#Z*z8*`S^`K@?Pf@y$X zSlElIoywgjedQ_F+b#xkS&H7RwD}9+Fr)9Eu>OheT_TF3`(V$P{$)4CULj`aP06%f z1ud)GgpHteWnAJ|9iOwMIFC$(wuqApmX`u9;xa`()RE|&Pc~}CUq~zjrQ8cXJ5{^P z`?o~W-pmdg3^G*<@QIzG>KuRo>c)B@D}&5&w0b6oq;G>9+4u{&m0>aA4}uNcf3r!& zYdbMX4c@8A;&ah6&Q>sCT~M!>))Yf^UP3B{YT&p(uhy=F@mQI%&W?o1G+YQ;PZbDI zFsdy|xL`>wN0YEhoeG*P5CnRnEA9vKOFPwseYcu_^V6J$X=@83FTqsfE2if&0t3Wy z$_r~C5Rmi-vX0q9mfzHd9Q!=8gM z%>igsUbE?r5)RP`az4o{E5(sIV9cS` zC0lnn#x|NWj6ThyonuX`F1Vfpk{)I%nzP!F$gE>G3PUe$e0dFBrxMvXl+5CBu*Kh& z_53K1!yY8R8D!L7uN+=ZX6uUsHn;JsHGQl=@zALU^Fo0%E^}Oa#VTjg(4A*Ho61w% z=?B4&nNJvoJ$@Rb=iIX4&4l z(qJC(m3P@(3wZAVM21O#OLuBx!j7^ylI5pE)!*591pbNhY&uc^pDgoTlky0Aix$<4 zYp9^xhQ=z_@oyZ0@b%;!k~+wi%!8Zj=^E1Y$XfO;ZH)MNKh+eyo|zIyr}3Je?@OQI z1r!_E_#_|g1C6De#aYJ(G)yVQ$09pR`hIfd6w&#$8Z!2j=fBMVCd-Gt|_nPqU8c{~_6H zp@^mrA6shi(UHNvoIdyt&2hfhK)c8H4)ZCQPvgw*Poz^o>(SWA8vS%)G zde&(ZyiI66F9kC`Q|~F^3$2ZKmZZ0TB}qX`v*M&xlRZ?vmDo?Zsw*3H_}duKYwpoJ zB-DDNS=n1!tox!?!MOB1)MCr;kG?MsyE+Q3(_ln)$UNn{$z29r1jGooB$W5H9f;r@gcL)=gXD<;28qI zGd(VwYc(_W%hNlb%RGdywGb^N)grlYQm*OJ!5^Sng=i*w&Z-TGmNiIcH`K|ueiW_1`J|n{%p2i`*qw#j4CCT z8sd*){n3KM)54xq+Z>>rN}H*1UuUA+<5zjb&z{c@_8*c+X-aT?)0^%* zkp{G<&nOe^(C?rwN{?)STZ-N;9B=rn?${oU!LT){7TTIj=x!H&5IhsnrrD*K{s(i3 zZY`M2;5Ti!5~>Gzej12IJcTdfWwx`Ds>(;jM<$2+{ZmJzxC5QH3@Za3=$(09acMyG zU$FL$sUgt__vyyi_Mx{_mzw40*9n(s4t}-t0j-(IQhha;?)Ho4;xCP`T>nZN8aol7@IAu{)O-cC5CEywkFnO1ebf-WjBv1 z&B?`boxdH-)&wzoQBDuNC<5iNCIn*P&zG1E5kTc=mANb<$z*RY;GanQRwjzA=JudX z-fcs%eM2SkI^}yF&IGWr^?BW1$#H5^pNqYoS|;Fh9;bUt8l7$N<<}I~Wmb88n{&-Y z(1{&pjuawa0xQPrPArVI2h9_D%_ZI$(Zn>w`RQYM{zG(j`F&ID zj8_uR&slj(Xs3sm2e1!+7(6=L^R@igu~#TV^@lOi)_NZP0UGr$*NlVg)*4R;#tSt^ z{q}NH2u4)zX{FB0rr(&sy-FJyE>=z~^$@6&*Mhb#HPd(fg+w1v2A9}m1-kh?9XwjS z7UqnEDt*5&<6hpr;cw}rf9;qi@})t|x-j}F+AA+Qulb}DIFFWyq!pj|8shyiv22UF zaqruGEB2Q6&_@xck3>|Zv-_~}qYJPIpntvlo1{t^MaqLvSJBdL6zx1_)}g9$x_*99 z-lm}Wd3pLdoh$6SaX@DOrGqB9h9U#DHW{Qm`6AJGg*BEV=zoJXFY%q;#*evI?H1Wu zt#qV4i{71@5#vZ;ehZ@g5_OSp$O7PQ-zDECcH-uAh#82LYXW)=c;-`Em__V}*rLu~ zNJXH$=*7#L-XFzIU5R|DX?{`+bA$3DhoNT+iD9eu752x~4_DAlAT7_mB*Mz&tDw|- zYapVdF45Db3)c*N7k2_BasXB6C=s-!ET_N58=2zIq`dR^v-F1WVS%qGvmkL8=^Sh@ z_$kw#=`Ge}RW+aWpX}`kFvH}^om6Y^6cS5KA}wpp!~E79L{dd%8jI?BdQE8x%Rh|r zokADw#lioBlvvs<08(NHNGbc)e~^;t5Qp49q(pP-v`7RMsQm~#gwJviQcv48^noXupvL>bPtuXCZBNAI1_rZ0$wL)3ltDz)acu(xxe=7MEZen%=*HxxloR!Dw$!&ZrC%ykeiT0NLz~Z% z#&`a#zL_7qx1L#^dJ0{P;3HoI*ZszUsBhaGvjPxfb*|CX2^|lo^bB@a)-M2YK7e1E zd)K~>dGuH(RkrU_==~y{N+0smgBY<{y+a+tW^7HQTR zV~7%Fmr!ExJPXh4A-kA1A{i zl7@2nzCQ0|0Y-jn4QH`~x6CLQ*I{5M6w|-jyuDYlrKZwV!-jhB^G{KQ@3pom+=A|= z$kW+asP1IArBdnPZ?c%>k{b#D>1iZB_0$v_I$vqVeGzO!!=Ud#o3so)m z>kPNAc`eJ%h!VO^@iqw@a6p2fH* z&Dtu?4p=zA-WZXK9ABc*yaJY*m`DmYF&)OXWan9fy4swi%_&#JdX{-#k~}=dlJ6F7 z*w06H_-{y@)bBkCLog6*^Ap8Oi3eJsMu7%**xJ)%tz0)Mn8+M|Y9Q%Tp;dPTHXMwN zSn1H`F6Of?0*S)WjvJ18rKaPe1}$!`_YpDP=F_BiwZZIUU(+~+ z&#ys{rQo6>DAP;zz|K5d1Dejdmw38Ygb+5LYWMRSn^H1UhVR9tLZ$l7oE}i6KVU@L zqOoZxCW;VQhZwaQza$*=WT;1`@aGiT#fW%&gEz6Kx=t=mYrrN7B7a-!t2|JG!jTKm zChP5`)uq|w-gau7Y(oC@?-A5Cm^xs3YJBVV6X19SSpXK&IPwajxNH808_HQ;f_zJ>CEOFw&(Uma?Q zSFxbEN?R%Ok_!$n7sM z6u(1l+}4u2XVTo7Yr9)D=Ha-WDKu06N!SE}b%IE(3&{feJ2-K(%1mk~hw_vNam&)N zcqp#=l=LDNSJeG3Hi?2=%Bp{TuGx1XasC_qJIVyS>1g{inBe{b>C~a}tJ&Ue*3*h1 zpEbvTmov-oLTf@#UNG17_YZ3&qUiZl>CoHnN#2xUO@Wh~HtJ;*Cvjy?cS`Y^;uN)9qswGN-5(F_Zqqa64NauEPEHRy<9foBhWJ z>5rZUN6QJBwU`KKcnef)$tJ^_O}DGcLOJnMDFwv+Ije~PV{S?x23$7A*6q`?m%09 zICMeHj5?tYM9o2w!$@u%YqEwjea!C>I-?)eGQ00yaUWE#x9BIP@G5Y=VqQDjk?@Ft z6u*+Uy+DF_!dOBrJY>7`Si1yneYz*!p6QKHP`EK%nc5S3Ue4*XWJerD>j(939tvX^ zNh|asadQ<$(~GOIcSN$B8r*ht=oKiU+RasXQ6+MFn8u}vj!s`}jdiH}51Jr^3ycO@ z9ZRw%4iv%sX!Jh6yS2R0_|_-R0^y;EkGY%h?#AsqxDKZX2CfrjAT04Z$^DIB*~)TV z>PDQYR8bz++Yq`u#Q<>;y(Dd3QFvy!^0Y=|7KEbuYYFXI110(`BY>F~4kfl*N9uiV z1QU+7M6RjxZc}Guf zv&EZT3|SW^Z*7sdEcFLl{&7%BDI{CuD4eG7qzvVDO<}b2scTenY@?9goJCW8v%P&t zOXU>bJ=^;+_XV#snJ9GZ+`j{XXx2=?5J1qxWcuMF8t^R1u6_jfMN>)MYGGUDQ%~L< zJ4^clLud^+BVlv%8kfLLp2Jd_m!U6^lF8j!d4%6Pf5hi+-?zEk#p&Wc*(rJts0UVS z>Con~0QT+8?pf5fjQdddgC2GU2=rbUxiF?OgME+r$zS(Yn9o48Ok^5ARBf;0R^`c^ z{;TfdW$_z)U%4E@6@o#>-$zuF>`o#H7E}nfwH&ujiYR5N7H9opbxO&w5}T4L;F>D^ ztnHkKT*8ww4OZX0_RBCt%`Dv_#wZOh*`>|TgGq6yZ=!otvF?&K^K^RuU$NaGvJ>9K zvrWQ+=5~WIav11dTIg$B+0n6Y;HfpBY04Ply~P`uxaF)qaX8Sau>zaRCIAgUo0l&x zR)b~5d<90-3xzvZFJ)hJIWM4oJ}_b6ET2H&Kw-QB-Yrdj7F=U+mTb;P3+6%{s(!A^6NGBfx|Z2xk#OZv5;v}jDXs0Kf!wSW632`1Ch z2xTTKtw+r!Z-;2?^r;=&{#?3R^L1(F3IRow3SP-eTEet5k1LrM1bzJr(f{CheL>a= z(>FT@k|-YuUcNFEw$brLm6M9RXAb`k7Or@#erFZWa>lbpFowBu^E=`J{z*=$;pH4J zp)^B}V8K53rR`-EI{EiBYt@>!75x72c>FuCHYvZHnG03KeT!b;R%9u%yNZdVmj2Ey zLH%AV7ZBSCTT%-sk0qubn!r=oem=;wi{MfEli#X2gtn^9k-lEQ0F{IB}-MET3-8J=^E_gKj#%& zlJ^XD?g~h>oA`q~4*9gZzSl?{yANaK&41FRvz_ChGS!{n@Rru>o;^RYew88d6gZ z%Gpp2CVr6qxy`o{@ckO8oeII( zR8IdFK5Ly1*UCr1$UZk(z+rO-clcf z(FP5g7=lfHfo>@7%US)*J$<)+++S*F#(PhcL+diPSI}$Bg+Wbr>kcO^3Dp4_}O&%0V0BqrIev@}K)$Bx;U3*MV>abs3EEs~-otV@yr z&q+ONG};YL1&&>JRhqvmB{JQL02pN#V3hRvhxZvprKFsJE>if>WBT=EGH2eZTQ>>_ zC=N#gm!sdG)EEEc7jMrKAM5+VnHIa5)AkvAMY6J-K_s*TR2QMHRqUaN7pB8C`0zZ0 z{BcE;kUQbeMxICM;-YvXhQaAdS2WlQJ#xf&}i z+71lG9>%@k<8(C~xb_N!cCj%WhV}tGl;? z=DFtX2^3*U8H45@7lMNrgi_n4O+q0Dn)ta3L!dqCM$-|C);2OLIUBE{R1GHjs2*rA zzq~T>Y$VhfJhBHTH88gtP*Ycx7mhq1)C4{A%g*uSSDUrDQLJdotHERey=q=3>{`TW z4QCn(_4Faw-N8B{^bbhXpUGPpboqP%}8`Y*4P$k-d$(bZn1bWdVa>_gMvT4n8TBN z+gX76Ca*J@E2zHjF54JcyF4d&`}v>5BI_ub<;La|Hg4Ad(=2PTGTJ%?6FLZt=10vE zD^YT<6Y;#A8Mqiw{6Q*RYHl&Vqwt(+!FeW)Nuyy6gpAv*YS-D|n^C8w863_Q(LJQl z14+yOw|Vv7|I_~+|DTa91XjX7=G6rdZJkX}E=}bv>!()96_TT+9#3@HS5{^}SOsr5 zQS1yfwdAQrNaBBV>Yh#Hmg`wO8H{R>I79?!$g!0JX%xZr0{*ghylGMV@gI_pM> ztBHZ(oLT=uxU`^P1MMzDyRsgySEH~!D115W|NU{pu7Ym4ND`QXe7D4bzXUdfl`=r= zcb=r9ev}jc{Vln_5d0mg1L*%xAE*jgd}wk`UT-#L2|SqgE>7XQZHczJ*z>4EQP+f3 zRg~*@RLqVmNntDFn@1CrQ$t;8WW3T>WWs4k{q03QpQ7n+PSI4a)`X+OVQHgtQUoQu z%68#O$ob|{2V7E%g9j#7TQI_)Ll&WS>iR(b8ry#BzMPIE*&04BOXiB3!k}hteJ;e_ zwfBC~`R)Pam2};E$q@FU$ZfCVtbEo2nA;vE1UMr{D?D3kx=1tU_~*@g0}%nIa~VQY z?Np>*pBwk16*+t$^y@oPm9nq|Ot;k7bYjSA#jlGEhHgp01+|T5`7j)L6Gs_k|x#HYJK$}2k>Dxr#oABYe)U0C9ep>Gd|#rh zDU3uEg%OC`7&E%`Z{k@au;X8|eY`~{Q-fuvX7c42FsJPlx~_fZee3MIkVSd?>rV&q zD(N0&SYlZvvhWiz?cL9#vmVN3#)!Zt=?A^ia+N;Gg3lFR4(i_$&VQ+$&)RD$fE>YU{OMN?+1{h6a`4(>0lj3p@k@cu{`0H^p0x>G#wY zW?uOC1UeI=b8M-lmFt$au|xGFI2SRjZ&foUJ3B=9e3H4-eu}I)u4MY6RWk!s;%*m~ zI8wDUW^c+#c=D5`{QH28^HZVHLT0v?x}l#+D3dUV1%>hI`=A~2J@J;qEr#F!$_Ke@H<7H#b8X6B2B_eTTR;^f#B zOjP8g`=j_Spflnif4WG7sgryq)+DRE20_e((Mqv?kZpmnDF}#t!$CS>KLN{4+I48yOcwy(VOMM-iiPJ0Z6t3Ah_kh9LzDFjfHIl=@ z38cCGEXZF4L(8RzT{?ev#oTzQU*e%V z@9`ucVCDBWO;-6cEFYBJ{hcX9JbK~wl=@>{L!MWDuQNgrU&MA*MVXRc0Y3R#4L7RO z1mxW&^AO!EaG$3NN^CmII|yUO9`{9C4AuqULr$Y?n zIdqp3XPuxCP~y(N7$ttFV%7Tm*F)@3pi-AY@EhSR?XdA>4fl!*BVb zJ!<(1W`-vB-1*ls0#`m*L2!>A1=m~$`(7E@i)fDz>}#iO1U7If1pDO}*I>fO%IuM6 z{2KWl`~nwC03;U-+vDDuQgs=v?XQU&!_mb{q?(TADR_$FR6^5mBYv|8oC8 zBr)<5icPaW41Wp~@qJW@C~z3icP8VUD7$I<$Isp5J86FG&fVcwH8X)ojG@Z`Yw|E})(&tz?=>ZZ z!cxU9Ux(}MUQc*gR#Xqwg`@^i13(zPg|R9q@N90qP{q*PKE9E<7!*rWR4cE4TU%uL znV_Imf5dsb21W6k2+l~27-xKa(tlh)QuVV!S+nFw6w8Kprv~*@RjA(7Lk)dAeGlc_ zSZ40fok>}r{0EMe_j3dN#Z5(Ci;6b7hl=6pGL~iI7Mbx@&7!)c?wF~ZkjGoavrfRP zVR+j7%egz)GsX~<-urwM$X~0U4vcMw1}~a@z1Mo6;=LD-l6`{0UM18-{Ds`l;UOGk z^q@Ioy06*m*JcSlupwU$)eHSmG&MOlDu0qAhES;{@LreyBH~PdAZMX<_4e^8c#Ccl z<6dWbf~I`l$DCP0Ux>5P@iB=7Ik5yeWaS9;N$VAsum2{BS4og<{CxHI1=9I>n+5gY zhgBEo{zCT7or~5NdPKFn)Lb1;dNN1U@7yQ5OdiVUTvwYgbZ-}2;$E9C35tzr8& zqo9ocg;2FQgFIYKC=Q-bsi7a{wNeGUlXXp5J7C?;R_vYilVr(Kg^QMA+?x>W>fVqk zKr~iu4bl6uaZgW){iu`t5+?W<(k-HJmAPuGl8Qd!iWYPf6@hY2#+VXvi1m2kC9{to zn(-3RzxjCXwoU9l(Zf6+(=^u{5iE}Pen4v`Vm{$Qok_Y*>Btj61Fr`?hPc^#q-Ii4 z?BH0OrkUw0oy=SpxxQz+{Cs&pgli#knvd%bj3h+)w+kO4lAsM|YF1czZGSWg%TA|R zjP1&PX^h*L6?PTBs|7(UUOGK<|BP>EFUWm5+K~rQ_An}MU{OKw|6DvjSshRz^^7h@ zVg6P0OufNA=YaMAwJ&Y*Ei9ILbwP^4AVf0uiI2R>V`U@q9i>QNa);u4;=JABqGq*5>%tavo?t$ zqPi)1T-ICB%fB(g{?j?Jjf>F}XSTL@%fs_m#i-uCO&doJ<$;IbAv77)2nsEEmXY

?c^kyAkh`hQ?lM>$v!0~j^9VIn%e(50Nq_N32I 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 HZT Date: Sat, 31 May 2025 15:05:31 +0800 Subject: [PATCH 25/32] update twitter_channel name --- examples/experiment/reddit_emall_demo/emall_simulation.py | 2 +- .../experiment/reddit_gpt_example/reddit_simulation_gpt.py | 2 +- .../reddit_simulation_align_with_human.py | 2 +- .../reddit_simulation_counterfactual.py | 2 +- .../experiment/twitter_gpt_example/twitter_simulation.py | 2 +- .../twitter_simulation.py | 2 +- .../align_with_real_world/twitter_simulation_large.py | 2 +- .../group_polarization/twitter_simulation_group_polar.py | 2 +- .../twitter_simulation_1M_agents/twitter_simulation_1m.py | 2 +- test/agent/test_agent_custom_prompt.py | 4 ++-- test/agent/test_agent_generator.py | 2 +- test/agent/test_agent_graph.py | 6 +++--- test/agent/test_agent_tools.py | 2 +- test/agent/test_multi_agent_signup_create.py | 2 +- test/agent/test_twitter_user_agent_all_actions.py | 2 +- 15 files changed, 18 insertions(+), 18 deletions(-) diff --git a/examples/experiment/reddit_emall_demo/emall_simulation.py b/examples/experiment/reddit_emall_demo/emall_simulation.py index f0048215..f726e9f4 100644 --- a/examples/experiment/reddit_emall_demo/emall_simulation.py +++ b/examples/experiment/reddit_emall_demo/emall_simulation.py @@ -137,7 +137,7 @@ async def running( ) agent_graph = await generate_reddit_agents( agent_info_path=user_path, - twitter_channel=twitter_channel, + channel=twitter_channel, agent_graph=agent_graph, agent_user_id_mapping=id_mapping, follow_post_agent=follow_post_agent, diff --git a/examples/experiment/reddit_gpt_example/reddit_simulation_gpt.py b/examples/experiment/reddit_gpt_example/reddit_simulation_gpt.py index 201970d9..e3a9146a 100644 --- a/examples/experiment/reddit_gpt_example/reddit_simulation_gpt.py +++ b/examples/experiment/reddit_gpt_example/reddit_simulation_gpt.py @@ -136,7 +136,7 @@ async def running( ) agent_graph = await generate_reddit_agents( agent_info_path=user_path, - twitter_channel=twitter_channel, + channel=twitter_channel, agent_graph=agent_graph, agent_user_id_mapping=id_mapping, follow_post_agent=follow_post_agent, diff --git a/examples/experiment/reddit_simulation_align_with_human/reddit_simulation_align_with_human.py b/examples/experiment/reddit_simulation_align_with_human/reddit_simulation_align_with_human.py index a4e7988d..999fbf26 100644 --- a/examples/experiment/reddit_simulation_align_with_human/reddit_simulation_align_with_human.py +++ b/examples/experiment/reddit_simulation_align_with_human/reddit_simulation_align_with_human.py @@ -139,7 +139,7 @@ async def running( ) agent_graph = await generate_reddit_agents( agent_info_path=user_path, - twitter_channel=twitter_channel, + channel=twitter_channel, agent_graph=agent_graph, agent_user_id_mapping=id_mapping, follow_post_agent=follow_post_agent, diff --git a/examples/experiment/reddit_simulation_counterfactual/reddit_simulation_counterfactual.py b/examples/experiment/reddit_simulation_counterfactual/reddit_simulation_counterfactual.py index f42f6191..fc97fa16 100644 --- a/examples/experiment/reddit_simulation_counterfactual/reddit_simulation_counterfactual.py +++ b/examples/experiment/reddit_simulation_counterfactual/reddit_simulation_counterfactual.py @@ -137,7 +137,7 @@ async def running( ) agent_graph = await generate_reddit_agents( agent_info_path=user_path, - twitter_channel=twitter_channel, + channel=twitter_channel, agent_graph=agent_graph, agent_user_id_mapping=id_mapping, follow_post_agent=follow_post_agent, diff --git a/examples/experiment/twitter_gpt_example/twitter_simulation.py b/examples/experiment/twitter_gpt_example/twitter_simulation.py index e514bdde..acc07f09 100644 --- a/examples/experiment/twitter_gpt_example/twitter_simulation.py +++ b/examples/experiment/twitter_gpt_example/twitter_simulation.py @@ -127,7 +127,7 @@ async def running( start_hour = 13 agent_graph = await generate_agents(agent_info_path=csv_path, - twitter_channel=twitter_channel, + channel=twitter_channel, start_time=start_time, model=model, recsys_type=recsys_type, diff --git a/examples/experiment/twitter_gpt_example_openai_embedding/twitter_simulation.py b/examples/experiment/twitter_gpt_example_openai_embedding/twitter_simulation.py index 4a9e5f5f..461a5cda 100644 --- a/examples/experiment/twitter_gpt_example_openai_embedding/twitter_simulation.py +++ b/examples/experiment/twitter_gpt_example_openai_embedding/twitter_simulation.py @@ -129,7 +129,7 @@ async def running( start_hour = 13 agent_graph = await generate_agents(agent_info_path=csv_path, - twitter_channel=twitter_channel, + channel=twitter_channel, start_time=start_time, model=model, recsys_type=recsys_type, diff --git a/examples/experiment/twitter_simulation/align_with_real_world/twitter_simulation_large.py b/examples/experiment/twitter_simulation/align_with_real_world/twitter_simulation_large.py index 59d1ae16..2e2841a4 100644 --- a/examples/experiment/twitter_simulation/align_with_real_world/twitter_simulation_large.py +++ b/examples/experiment/twitter_simulation/align_with_real_world/twitter_simulation_large.py @@ -135,7 +135,7 @@ async def running( model_configs = model_configs or {} agent_graph = await generate_agents(agent_info_path=csv_path, - twitter_channel=twitter_channel, + channel=twitter_channel, start_time=start_time, model=models, recsys_type=recsys_type, diff --git a/examples/experiment/twitter_simulation/group_polarization/twitter_simulation_group_polar.py b/examples/experiment/twitter_simulation/group_polarization/twitter_simulation_group_polar.py index 225a9c8e..7a3e1578 100644 --- a/examples/experiment/twitter_simulation/group_polarization/twitter_simulation_group_polar.py +++ b/examples/experiment/twitter_simulation/group_polarization/twitter_simulation_group_polar.py @@ -135,7 +135,7 @@ async def running( model_configs = model_configs or {} agent_graph = await generate_agents_100w( agent_info_path=csv_path, - twitter_channel=twitter_channel, + channel=twitter_channel, start_time=start_time, recsys_type=recsys_type, twitter=infra, diff --git a/examples/experiment/twitter_simulation_1M_agents/twitter_simulation_1m.py b/examples/experiment/twitter_simulation_1M_agents/twitter_simulation_1m.py index b211a929..0aaee990 100644 --- a/examples/experiment/twitter_simulation_1M_agents/twitter_simulation_1m.py +++ b/examples/experiment/twitter_simulation_1M_agents/twitter_simulation_1m.py @@ -126,7 +126,7 @@ async def running( agent_graph = await generate_agents_100w( agent_info_path=csv_path, - twitter_channel=twitter_channel, + channel=twitter_channel, start_time=start_time, recsys_type=recsys_type, twitter=infra, diff --git a/test/agent/test_agent_custom_prompt.py b/test/agent/test_agent_custom_prompt.py index f8cf18f9..85d35a2d 100644 --- a/test/agent/test_agent_custom_prompt.py +++ b/test/agent/test_agent_custom_prompt.py @@ -47,7 +47,7 @@ async def test_agents_profile(): agent = SocialAgent(agent_id=0, user_info=user_info, user_info_template=user_info_template, - twitter_channel=channel) + channel=channel) assert agent.system_message.content == ( 'Your aim is: Persuade people to buy a product. Your task is: ' 'Using roleplay to tell some story about the product.') @@ -84,7 +84,7 @@ async def test_agents_posting(setup_platform): agent = SocialAgent(agent_id=0, user_info=user_info, user_info_template=user_info_template, - twitter_channel=channel) + channel=channel) await agent.env.action.sign_up("user0", "User0", "A bio.") # create post diff --git a/test/agent/test_agent_generator.py b/test/agent/test_agent_generator.py index a0f2d9be..e3152c24 100644 --- a/test/agent/test_agent_generator.py +++ b/test/agent/test_agent_generator.py @@ -42,7 +42,7 @@ async def running(): task = asyncio.create_task(infra.running()) os.environ["SANDBOX_TIME"] = "0" agent_graph = await generate_agents(agent_info_path=agent_info_path, - twitter_channel=twitter_channel, + channel=twitter_channel, model=model, twitter=infra, start_time=0) diff --git a/test/agent/test_agent_graph.py b/test/agent/test_agent_graph.py index f1401ab1..a6bf1ad6 100644 --- a/test/agent/test_agent_graph.py +++ b/test/agent/test_agent_graph.py @@ -35,17 +35,17 @@ def test_agent_graph(tmp_path): agent_0 = SocialAgent( agent_id=0, user_info=UserInfo(name="0"), - twitter_channel=twitter_channel, + channel=twitter_channel, ) agent_1 = SocialAgent( agent_id=1, user_info=UserInfo(name="1"), - twitter_channel=twitter_channel, + channel=twitter_channel, ) agent_2 = SocialAgent( agent_id=2, user_info=UserInfo(name="2"), - twitter_channel=twitter_channel, + channel=twitter_channel, ) graph.add_agent(agent_0) diff --git a/test/agent/test_agent_tools.py b/test/agent/test_agent_tools.py index 44d5fc3e..25b95681 100644 --- a/test/agent/test_agent_tools.py +++ b/test/agent/test_agent_tools.py @@ -64,7 +64,7 @@ async def test_agents_posting(setup_platform): profile=profile) agent = SocialAgent(agent_id=0, user_info=user_info, - twitter_channel=channel, + channel=channel, tools=MathToolkit().get_tools(), available_actions=[ActionType.CREATE_POST], single_iteration=False) diff --git a/test/agent/test_multi_agent_signup_create.py b/test/agent/test_multi_agent_signup_create.py index 7cd4edd6..e6e20cae 100644 --- a/test/agent/test_multi_agent_signup_create.py +++ b/test/agent/test_multi_agent_signup_create.py @@ -67,7 +67,7 @@ async def test_agents_posting(setup_platform): profile=profile) agent = SocialAgent(agent_id=i, user_info=user_info, - twitter_channel=channel) + channel=channel) await agent.env.action.sign_up(f"user{i}0101", f"User{i}", "A bio.") agents.append(agent) diff --git a/test/agent/test_twitter_user_agent_all_actions.py b/test/agent/test_twitter_user_agent_all_actions.py index 02644434..c5cfbe3c 100644 --- a/test/agent/test_twitter_user_agent_all_actions.py +++ b/test/agent/test_twitter_user_agent_all_actions.py @@ -62,7 +62,7 @@ async def test_agents_actions(setup_twitter): profile=profile) agent = SocialAgent(agent_id=i, user_info=user_info, - twitter_channel=channel) + channel=channel) return_message = await agent.env.action.sign_up( f"user{i}0101", f"User{i}", "A bio.") assert return_message["success"] is True From d6ede436c793bd075e1e67fca5f1986d9d283269 Mon Sep 17 00:00:00 2001 From: yiyiyi0817 <1359513271@qq.com> Date: Mon, 2 Jun 2025 17:09:09 +0800 Subject: [PATCH 26/32] update pytest --- oasis/social_agent/agent.py | 3 +-- test/agent/test_multi_agent_signup_create.py | 4 +--- test/agent/test_twitter_user_agent_all_actions.py | 4 +--- 3 files changed, 3 insertions(+), 8 deletions(-) diff --git a/oasis/social_agent/agent.py b/oasis/social_agent/agent.py index d58bcb64..38911a3d 100644 --- a/oasis/social_agent/agent.py +++ b/oasis/social_agent/agent.py @@ -69,8 +69,7 @@ def __init__(self, self.social_agent_id = agent_id self.user_info = user_info self.channel = channel or Channel() - self.env = SocialEnvironment( - SocialAction(agent_id, self.channel)) + self.env = SocialEnvironment(SocialAction(agent_id, self.channel)) if user_info_template is None: system_message_content = self.user_info.to_system_message() else: diff --git a/test/agent/test_multi_agent_signup_create.py b/test/agent/test_multi_agent_signup_create.py index e6e20cae..5b6bcc73 100644 --- a/test/agent/test_multi_agent_signup_create.py +++ b/test/agent/test_multi_agent_signup_create.py @@ -65,9 +65,7 @@ async def test_agents_posting(setup_platform): user_info = UserInfo(name=real_name, description=description, profile=profile) - agent = SocialAgent(agent_id=i, - user_info=user_info, - channel=channel) + agent = SocialAgent(agent_id=i, user_info=user_info, channel=channel) await agent.env.action.sign_up(f"user{i}0101", f"User{i}", "A bio.") agents.append(agent) diff --git a/test/agent/test_twitter_user_agent_all_actions.py b/test/agent/test_twitter_user_agent_all_actions.py index c5cfbe3c..f016aa76 100644 --- a/test/agent/test_twitter_user_agent_all_actions.py +++ b/test/agent/test_twitter_user_agent_all_actions.py @@ -60,9 +60,7 @@ async def test_agents_actions(setup_twitter): user_info = UserInfo(name=real_name, description=description, profile=profile) - agent = SocialAgent(agent_id=i, - user_info=user_info, - channel=channel) + agent = SocialAgent(agent_id=i, user_info=user_info, channel=channel) return_message = await agent.env.action.sign_up( f"user{i}0101", f"User{i}", "A bio.") assert return_message["success"] is True From bd9fcf9f2b18b91699a85a5add5b49b47663a603 Mon Sep 17 00:00:00 2001 From: yiyiyi0817 <1359513271@qq.com> Date: Mon, 2 Jun 2025 17:28:06 +0800 Subject: [PATCH 27/32] add default model=None in gen_control_agents_with_data --- oasis/social_agent/agents_generator.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/oasis/social_agent/agents_generator.py b/oasis/social_agent/agents_generator.py index 39191c0d..a8591ae3 100644 --- a/oasis/social_agent/agents_generator.py +++ b/oasis/social_agent/agents_generator.py @@ -389,7 +389,7 @@ async def generate_controllable_agents( async def gen_control_agents_with_data( channel: Channel, control_user_num: int, - models: list[BaseModelBackend], + models: list[BaseModelBackend] | None = None, ) -> tuple[AgentGraph, dict]: agent_graph = AgentGraph() agent_user_id_mapping = {} From 060924b4e8d3af7d559c828639c23984b98da8b1 Mon Sep 17 00:00:00 2001 From: yiyiyi0817 <1359513271@qq.com> Date: Mon, 2 Jun 2025 18:19:26 +0800 Subject: [PATCH 28/32] add aget_model_response and fix pre-commit --- oasis/social_agent/agent.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/oasis/social_agent/agent.py b/oasis/social_agent/agent.py index d87c4774..20be669e 100644 --- a/oasis/social_agent/agent.py +++ b/oasis/social_agent/agent.py @@ -178,8 +178,8 @@ async def perform_test(self): # NOTE: this is a temporary solution. # Camel can not stop updating the agents' memory after stop and astep # now. - response = self._get_model_response(openai_messages=openai_messages, - num_tokens=num_tokens) + response = await self._aget_model_response( + openai_messages=openai_messages, num_tokens=num_tokens) content = response.output_messages[0].content agent_log.info( f"Agent {self.social_agent_id} receive response: {content}") From 6943ffd8e382c90c32d33feb2b7f0a53766fc983 Mon Sep 17 00:00:00 2001 From: yiyiyi0817 <1359513271@qq.com> Date: Mon, 2 Jun 2025 18:24:32 +0800 Subject: [PATCH 29/32] fix pre-commit --- oasis/environment/env.py | 6 ++++-- oasis/social_platform/platform.py | 6 ++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/oasis/environment/env.py b/oasis/environment/env.py index 5d30c08f..4d815c60 100644 --- a/oasis/environment/env.py +++ b/oasis/environment/env.py @@ -159,7 +159,8 @@ async def step( for single_action in action: if isinstance(single_action, ManualAction): if single_action.action_type == ActionType.INTERVIEW: - # Use the agent's perform_interview method for interview actions + # Use the agent's perform_interview method for + # interview actions interview_prompt = single_action.action_args.get( "prompt", "") tasks.append( @@ -175,7 +176,8 @@ async def step( else: if isinstance(action, ManualAction): if action.action_type == ActionType.INTERVIEW: - # Use the agent's perform_interview method for interview actions + # Use the agent's perform_interview method for + # interview actions interview_prompt = action.action_args.get("prompt", "") tasks.append( self._perform_interview_action( diff --git a/oasis/social_platform/platform.py b/oasis/social_platform/platform.py index 67c6cc9f..b62908ef 100644 --- a/oasis/social_platform/platform.py +++ b/oasis/social_platform/platform.py @@ -1346,7 +1346,8 @@ async def interview(self, agent_id: int, interview_data): Args: agent_id (int): The ID of the agent being interviewed. - interview_data: Either a string (prompt only) or dict with prompt and response. + interview_data: Either a string (prompt only) or dict with prompt + and response. Returns: dict: A dictionary with success status. @@ -1359,7 +1360,8 @@ async def interview(self, agent_id: int, interview_data): try: user_id = agent_id - # Handle both old format (string prompt) and new format (dict with prompt + response) + # Handle both old format (string prompt) and new format + # (dict with prompt + response) if isinstance(interview_data, str): # Old format: just the prompt prompt = interview_data From 5f62f88ff7dfe16ddeec15aa4005212df40c0960 Mon Sep 17 00:00:00 2001 From: yiyiyi0817 <1359513271@qq.com> Date: Mon, 2 Jun 2025 18:52:28 +0800 Subject: [PATCH 30/32] add interview_record bool args and add more description of interview in the doc --- docs/key_modules/actions.mdx | 9 +++++++++ docs/key_modules/social_agent.mdx | 1 + oasis/social_agent/agent.py | 25 +++++++++++++++++-------- 3 files changed, 27 insertions(+), 8 deletions(-) diff --git a/docs/key_modules/actions.mdx b/docs/key_modules/actions.mdx index a8d0b9de..27945117 100644 --- a/docs/key_modules/actions.mdx +++ b/docs/key_modules/actions.mdx @@ -107,6 +107,7 @@ OASIS provides a comprehensive set of actions that simulate real social media be | `REFRESH` | Refresh the timeline to get recommended posts | | `DO_NOTHING` | Perform no action (pass the turn) | | `PURCHASE_PRODUCT` | Purchase a product (for e-commerce simulations) | +| `INTERVIEW` | Interview a user and record the interview result in the database | ## Arguments for `ManualAction` @@ -286,3 +287,11 @@ action = ManualAction( args={"product_name": "Premium Subscription", "purchase_num": 1} ) ``` + +#### INTERVIEW +```python +action = ManualAction( + action=ActionType.INTERVIEW, + args={"prompt": "What is your name?"} +) +``` diff --git a/docs/key_modules/social_agent.mdx b/docs/key_modules/social_agent.mdx index 99200d40..e049bdab 100644 --- a/docs/key_modules/social_agent.mdx +++ b/docs/key_modules/social_agent.mdx @@ -19,6 +19,7 @@ When initializing a `SocialAgent`, you can configure the following core paramete | `available_actions` | [`list[ActionType]`](https://docs.oasis.camel-ai.org/key_modules/actions) or `None` | ✗ | `None` | List of allowed actions in the social platform. For more details, see [Actions Module](https://docs.oasis.camel-ai.org/key_modules/actions). If `None`, all actions are enabled by default. | | `tools` | `List[Union[FunctionTool, Callable]]` or `None` | ✗ | `None` | External tools the agent can use, such as a `get_weather` function, a `Toolkit`, or an `MCPToolkit` from [CAMEL](https://docs.camel-ai.org/key_modules/tools.html). If set to `None`, the agent will not be able to use any external tools. | | `single_iteration` | `bool` | ✗ | `True` | Whether the agent performs only a single round of reasoning when taking an LLM action. If `False`, the agent may continue acting based on the outcome of previous actions or tool calls. | +| `interview_record` | `bool` | ✗ | `False` | Whether to record the interview prompt and result in the agent's memory. | For more details on the `model` and the `tools` parameter, see [Models Module](https://docs.oasis.camel-ai.org/key_modules/models) and [Toolkits Module](https://docs.oasis.camel-ai.org/key_modules/toolkits). diff --git a/oasis/social_agent/agent.py b/oasis/social_agent/agent.py index 20be669e..4fe76679 100644 --- a/oasis/social_agent/agent.py +++ b/oasis/social_agent/agent.py @@ -65,7 +65,8 @@ def __init__(self, agent_graph: "AgentGraph" = None, available_actions: list[ActionType] = None, tools: Optional[List[Union[FunctionTool, Callable]]] = None, - single_iteration: bool = True): + single_iteration: bool = True, + interview_record: bool = False): self.social_agent_id = agent_id self.user_info = user_info self.channel = channel or Channel() @@ -106,6 +107,7 @@ def __init__(self, scheduling_strategy='random_model', tools=all_tools, single_iteration=single_iteration) + self.interview_record = interview_record self.agent_graph = agent_graph self.test_prompt = ( "\n" @@ -194,11 +196,12 @@ async def perform_interview(self, interview_prompt: str): Perform an interview with the agent. """ # user conduct test to agent - _ = BaseMessage.make_user_message(role_name="User", - content=("You are a twitter user.")) - # Test memory should not be writed to memory. - # self.memory.write_record(MemoryRecord(user_msg, - # OpenAIBackendRole.USER)) + user_msg = BaseMessage.make_user_message( + role_name="User", content=("You are a twitter user.")) + + if self.interview_record: + # Test memory should not be writed to memory. + self.update_memory(message=user_msg, role=OpenAIBackendRole.SYSTEM) openai_messages, num_tokens = self.memory.get_context() @@ -217,9 +220,15 @@ async def perform_interview(self, interview_prompt: str): # Camel can not stop updating the agents' memory after stop and astep # now. - response = self._get_model_response(openai_messages=openai_messages, - num_tokens=num_tokens) + response = await self._aget_model_response( + openai_messages=openai_messages, num_tokens=num_tokens) + content = response.output_messages[0].content + + if self.interview_record: + # Test memory should not be writed to memory. + self.update_memory(message=response.output_messages[0], + role=OpenAIBackendRole.USER) agent_log.info( f"Agent {self.social_agent_id} receive response: {content}") From d85435916183e329b1ce1da388093a00c88fe599 Mon Sep 17 00:00:00 2001 From: yiyiyi0817 <1359513271@qq.com> Date: Mon, 2 Jun 2025 19:07:31 +0800 Subject: [PATCH 31/32] fix pytest --- test/agent/test_interview_action.py | 31 ++++++++++++++++------------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/test/agent/test_interview_action.py b/test/agent/test_interview_action.py index b8d11b45..e83f0491 100644 --- a/test/agent/test_interview_action.py +++ b/test/agent/test_interview_action.py @@ -71,9 +71,7 @@ async def test_single_interview_action(setup_interview_test): user_info = UserInfo(name=real_name, description=description, profile=profile) - agent = SocialAgent(agent_id=0, - user_info=user_info, - twitter_channel=channel) + agent = SocialAgent(agent_id=0, user_info=user_info, channel=channel) # Sign up the agent return_message = await agent.env.action.sign_up( @@ -145,7 +143,7 @@ async def test_multiple_interviews_action(setup_interview_test): profile=profile) agent = SocialAgent(agent_id=i, user_info=user_info, - twitter_channel=channel) + channel=channel) # Sign up the agent return_message = await agent.env.action.sign_up( @@ -273,21 +271,28 @@ async def test_interview_with_environment(): """, (ActionType.INTERVIEW.value, )) interview_records = cursor.fetchall() - assert len(interview_records) == 4 # 3 interviews conducted + assert len(interview_records) == 4 # 4 interviews conducted - # Check the content of interviews - expected_prompts = [ + # Check interview content + expected_prompts = { "What is your favorite color and why?", "What do you think about technology?", "How do you spend your free time?", "What motivates you in life?" - ] + } - for i, (user_id, info_json, timestamp) in enumerate(interview_records): + # Get all records and verify content exists + actual_prompts = set() + for user_id, info_json, timestamp in interview_records: info = json.loads(info_json) - assert info["prompt"] == expected_prompts[i] + actual_prompts.add(info["prompt"]) assert "interview_id" in info assert "response" in info + # Use set comparison to verify all expected prompts exist + assert actual_prompts == expected_prompts, ( + f"Missing prompts: {expected_prompts - actual_prompts}, " + f"Unexpected prompts: {actual_prompts - expected_prompts}") + conn.close() finally: @@ -325,7 +330,7 @@ async def test_interview_data_retrieval(setup_interview_test): profile=profile) agent = SocialAgent(agent_id=i, user_info=user_info, - twitter_channel=channel) + channel=channel) return_message = await agent.env.action.sign_up( f"testuser{i}", f"TestUser{i}", f"Bio {i}.") @@ -414,9 +419,7 @@ async def test_interview_error_handling(setup_interview_test): user_info = UserInfo(name=real_name, description=description, profile=profile) - agent = SocialAgent(agent_id=0, - user_info=user_info, - twitter_channel=channel) + agent = SocialAgent(agent_id=0, user_info=user_info, channel=channel) return_message = await agent.env.action.sign_up( "testuser", "TestUser", "Test bio.") From 1fc8fe41993fcde4f68946d7492b8a5dda0f7c4a Mon Sep 17 00:00:00 2001 From: yiyiyi0817 <1359513271@qq.com> Date: Mon, 2 Jun 2025 19:13:31 +0800 Subject: [PATCH 32/32] update news in readme --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 086e6c53..61713404 100644 --- a/README.md +++ b/README.md @@ -249,8 +249,9 @@ To discover how to create profiles for large-scale users, as well as how to visu ### Latest Updates -📢 Add a new feature to customize each agent's models, tools, and prompts, and refactor the interface to follow the PettingZoo style. - 📆 May 22, 2025 +📢 Support Interview Action for asking agents specific questions and getting answers. - 📆 June 2, 2025 +- Support customization of each agent's models, tools, and prompts; refactor the interface to follow the PettingZoo style. - 📆 May 22, 2025 - Refactor into the OASIS environment, publish camel-oasis on PyPI, and release the documentation. - 📆 April 24, 2025 - Support OPENAI Embedding model for Twhin-Bert Recommendation System. - 📆 March 25, 2025 - Updated social media links and QR codes in the README! Join OASIS & CAMEL on WeChat, X, Reddit, and Discord. - 📆 March 24, 2025

H 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 ZOuYVw*1`YRzyE9c7W_SCQ2zP#zW}58LkR!? literal 240520 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