diff --git a/autogen/agentchat/chat.py b/autogen/agentchat/chat.py index b3258e6f8ba5..efdf0ae6a422 100644 --- a/autogen/agentchat/chat.py +++ b/autogen/agentchat/chat.py @@ -34,31 +34,37 @@ def initiate_chats(chat_queue: List[Dict[str, Any]]) -> List[ChatResult]: args: chat_queue (List[Dict]): a list of dictionaries containing the information of the chats. - Each dictionary should contain the following fields: + Each dictionary should contain the input arguments for `ConversableAgent.initiate_chat`. + More specifically, each dictionary could include the following fields: + recipient: the recipient agent. + - "sender": the sender agent. - "recipient": the recipient agent. - - "context": any context information, e.g., the request message. The following fields are reserved: - "message" needs to be provided if the `generate_init_message` method is not overridden. - Otherwise, input() will be called to get the initial message. - "summary_method": a string or callable specifying the method to get a summary from the chat. Default is DEFAULT_summary_method, i.e., "last_msg". - - Supported string are "last_msg" and "reflection_with_llm": - when set "last_msg", it returns the last message of the dialog as the summary. - when set "reflection_with_llm", it returns a summary extracted using an llm client. - `llm_config` must be set in either the recipient or sender. - "reflection_with_llm" requires the llm_config to be set in either the sender or the recipient. - - A callable summary_method should take the recipient and sender agent in a chat as input and return a string of summary. E.g, - ```python - def my_summary_method( - sender: ConversableAgent, - recipient: ConversableAgent, - ): - return recipient.last_message(sender)["content"] - ``` - "summary_prompt" can be used to specify the prompt used to extract a summary when summary_method is "reflection_with_llm". - Default is None and the following default prompt will be used when "summary_method" is set to "reflection_with_llm": - "Identify and extract the final solution to the originally asked question based on the conversation." - "carryover" can be used to specify the carryover information to be passed to this chat. - If provided, we will combine this carryover with the "message" content when generating the initial chat - message in `generate_init_message`. + - clear_history (bool): whether to clear the chat history with the agent. Default is True. + - silent (bool or None): (Experimental) whether to print the messages for this conversation. Default is False. + - cache (Cache or None): the cache client to be used for this conversation. Default is None. + - max_turns (int or None): the maximum number of turns for the chat. If None, the chat will continue until a termination condition is met. Default is None. + - "message" needs to be provided if the `generate_init_message` method is not overridden. + Otherwise, input() will be called to get the initial message. + - "summary_method": a string or callable specifying the method to get a summary from the chat. Default is DEFAULT_summary_method, i.e., "last_msg". + - Supported string are "last_msg" and "reflection_with_llm": + when set "last_msg", it returns the last message of the dialog as the summary. + when set "reflection_with_llm", it returns a summary extracted using an llm client. + `llm_config` must be set in either the recipient or sender. + "reflection_with_llm" requires the llm_config to be set in either the sender or the recipient. + - A callable summary_method should take the recipient and sender agent in a chat as input and return a string of summary. E.g, + ```python + def my_summary_method( + sender: ConversableAgent, + recipient: ConversableAgent, + ): + return recipient.last_message(sender)["content"] + ``` + "summary_prompt" can be used to specify the prompt used to extract a summary when summary_method is "reflection_with_llm". + Default is None and the following default prompt will be used when "summary_method" is set to "reflection_with_llm": + "Identify and extract the final solution to the originally asked question based on the conversation." + "carryover" can be used to specify the carryover information to be passed to this chat. + If provided, we will combine this carryover with the "message" content when generating the initial chat + message in `generate_init_message`. returns: diff --git a/autogen/agentchat/conversable_agent.py b/autogen/agentchat/conversable_agent.py index 0ba44ef23069..c4321c123cb2 100644 --- a/autogen/agentchat/conversable_agent.py +++ b/autogen/agentchat/conversable_agent.py @@ -519,13 +519,6 @@ def send( "Message can't be converted into a valid ChatCompletion message. Either content or function_call must be provided." ) - chat_result = ChatResult( - chat_history=self.chat_messages[recipient], - cost=gather_usage_summary([self, recipient]), - human_input=self._human_input, - ) - return chat_result - async def a_send( self, message: Union[Dict, str], @@ -578,13 +571,6 @@ async def a_send( "Message can't be converted into a valid ChatCompletion message. Either content or function_call must be provided." ) - chat_result = ChatResult( - chat_history=self.chat_messages[recipient], - cost=gather_usage_summary([self, recipient]), - human_input=self._human_input, - ) - return chat_result - def _print_received_message(self, message: Union[Dict, str], sender: Agent): # print the message received print(colored(sender.name, "yellow"), "(to", f"{self.name}):\n", flush=True) @@ -729,14 +715,20 @@ async def a_receive( if reply is not None: await self.a_send(reply, sender, silent=silent) - def _prepare_chat(self, recipient: "ConversableAgent", clear_history: bool, prepare_recipient: bool = True) -> None: + def _prepare_chat( + self, + recipient: "ConversableAgent", + clear_history: bool, + prepare_recipient: bool = True, + reply_at_receive: bool = True, + ) -> None: self.reset_consecutive_auto_reply_counter(recipient) - self.reply_at_receive[recipient] = True + self.reply_at_receive[recipient] = reply_at_receive if clear_history: self.clear_history(recipient) self._human_input = [] if prepare_recipient: - recipient._prepare_chat(self, clear_history, False) + recipient._prepare_chat(self, clear_history, False, reply_at_receive) def _raise_exception_on_async_reply_functions(self) -> None: """Raise an exception if any async reply functions are registered. @@ -763,6 +755,7 @@ def initiate_chat( clear_history: Optional[bool] = True, silent: Optional[bool] = False, cache: Optional[Cache] = None, + max_turns: Optional[int] = None, **context, ) -> ChatResult: """Initiate a chat with the recipient agent. @@ -773,9 +766,12 @@ def initiate_chat( Args: recipient: the recipient agent. - clear_history (bool): whether to clear the chat history with the agent. - silent (bool or None): (Experimental) whether to print the messages for this conversation. - cache (Cache or None): the cache client to be used for this conversation. + clear_history (bool): whether to clear the chat history with the agent. Default is True. + silent (bool or None): (Experimental) whether to print the messages for this conversation. Default is False. + cache (Cache or None): the cache client to be used for this conversation. Default is None. + max_turns (int or None): the maximum number of turns for the chat between the two agents. One turn means one conversation round trip. Note that this is different from + [max_consecutive_auto_reply](#max_consecutive_auto_reply) which is the maximum number of consecutive auto replies; and it is also different from [max_rounds in GroupChat](./groupchat#groupchat-objects) which is the maximum number of rounds in a group chat session. + If max_turns is set to None, the chat will continue until a termination condition is met. Default is None. **context: any context information. It has the following reserved fields: "message": a str of message. Needs to be provided. Otherwise, input() will be called to get the initial message. "summary_method": a string or callable specifying the method to get a summary from the chat. Default is DEFAULT_summary_method, i.e., "last_msg". @@ -812,8 +808,19 @@ def my_summary_method( agent._raise_exception_on_async_reply_functions() agent.previous_cache = agent.client_cache agent.client_cache = cache - self._prepare_chat(recipient, clear_history) - self.send(self.generate_init_message(**context), recipient, silent=silent) + if isinstance(max_turns, int): + self._prepare_chat(recipient, clear_history, reply_at_receive=False) + for _ in range(max_turns): + if _ == 0: + msg2send = self.generate_init_message(**context) + else: + msg2send = self.generate_reply(messages=self.chat_messages[recipient], sender=recipient) + if msg2send is None: + break + self.send(msg2send, recipient, request_reply=True, silent=silent) + else: + self._prepare_chat(recipient, clear_history) + self.send(self.generate_init_message(**context), recipient, silent=silent) summary = self._summarize_chat( context.get("summary_method", ConversableAgent.DEFAULT_summary_method), recipient, @@ -837,6 +844,7 @@ async def a_initiate_chat( clear_history: Optional[bool] = True, silent: Optional[bool] = False, cache: Optional[Cache] = None, + max_turns: Optional[int] = None, **context, ) -> ChatResult: """(async) Initiate a chat with the recipient agent. @@ -853,11 +861,22 @@ async def a_initiate_chat( _chat_info = context.copy() _chat_info["recipient"] = recipient consolidate_chat_info(_chat_info, uniform_sender=self) - self._prepare_chat(recipient, clear_history) for agent in [self, recipient]: agent.previous_cache = agent.client_cache agent.client_cache = cache - await self.a_send(await self.a_generate_init_message(**context), recipient, silent=silent) + if isinstance(max_turns, int): + self._prepare_chat(recipient, clear_history, reply_at_receive=False) + for _ in range(max_turns): + if _ == 0: + msg2send = await self.a_generate_init_message(**context) + else: + msg2send = await self.a_generate_reply(messages=self.chat_messages[recipient], sender=recipient) + if msg2send is None: + break + await self.a_send(msg2send, recipient, request_reply=True, silent=silent) + else: + self._prepare_chat(recipient, clear_history) + await self.a_send(await self.a_generate_init_message(**context), recipient, silent=silent) summary = self._summarize_chat( context.get("summary_method", ConversableAgent.DEFAULT_summary_method), recipient, @@ -956,31 +975,7 @@ def initiate_chats(self, chat_queue: List[Dict[str, Any]]) -> List[ChatResult]: Args: chat_queue (List[Dict]): a list of dictionaries containing the information of the chats. - Each dictionary should contain the following fields: - - "recipient": the recipient agent. - - "context": any context information, e.g., the request message. The following fields are reserved: - "message" needs to be provided if the `generate_init_message` method is not overridden. - Otherwise, input() will be called to get the initial message. - "summary_method": a string or callable specifying the method to get a summary from the chat. Default is DEFAULT_summary_method, i.e., "last_msg". - - Supported string are "last_msg" and "reflection_with_llm": - when set "last_msg", it returns the last message of the dialog as the summary. - when set "reflection_with_llm", it returns a summary extracted using an llm client. - `llm_config` must be set in either the recipient or sender. - "reflection_with_llm" requires the llm_config to be set in either the sender or the recipient. - - A callable summary_method should take the recipient and sender agent in a chat as input and return a string of summary. E.g, - ```python - def my_summary_method( - sender: ConversableAgent, - recipient: ConversableAgent, - ): - return recipient.last_message(sender)["content"] - ``` - "summary_prompt" can be used to specify the prompt used to extract a summary when summary_method is "reflection_with_llm". - Default is None and the following default prompt will be used when "summary_method" is set to "reflection_with_llm": - "Identify and extract the final solution to the originally asked question based on the conversation." - "carryover" can be used to specify the carryover information to be passed to this chat. - If provided, we will combine this carryover with the "message" content when generating the initial chat - message in `generate_init_message`. + Each dictionary should contain the input arguments for [`initiate_chat`](conversable_agent#initiate_chat) Returns: a list of ChatResult objects corresponding to the finished chats in the chat_queue. """ diff --git a/autogen/agentchat/groupchat.py b/autogen/agentchat/groupchat.py index 1947a392aa1d..1b5905e8d1b7 100644 --- a/autogen/agentchat/groupchat.py +++ b/autogen/agentchat/groupchat.py @@ -507,15 +507,21 @@ def chat_messages_for_summary(self, agent: Agent) -> List[Dict]: """ return self._groupchat.messages - def _prepare_chat(self, recipient: ConversableAgent, clear_history: bool, prepare_recipient: bool = True) -> None: - super()._prepare_chat(recipient, clear_history, prepare_recipient) + def _prepare_chat( + self, + recipient: ConversableAgent, + clear_history: bool, + prepare_recipient: bool = True, + reply_at_receive: bool = True, + ) -> None: + super()._prepare_chat(recipient, clear_history, prepare_recipient, reply_at_receive) if clear_history: self._groupchat.reset() for agent in self._groupchat.agents: if (recipient != agent or prepare_recipient) and isinstance(agent, ConversableAgent): - agent._prepare_chat(self, clear_history, False) + agent._prepare_chat(self, clear_history, False, reply_at_receive) def run_chat( self, diff --git a/notebook/agentchat_auto_feedback_from_code_execution.ipynb b/notebook/agentchat_auto_feedback_from_code_execution.ipynb index a8d07ad3599c..8f232975b310 100644 --- a/notebook/agentchat_auto_feedback_from_code_execution.ipynb +++ b/notebook/agentchat_auto_feedback_from_code_execution.ipynb @@ -35,7 +35,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 1, "metadata": {}, "outputs": [], "source": [ @@ -78,7 +78,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 2, "metadata": {}, "outputs": [ { @@ -90,6 +90,8 @@ "What date is today? Compare the year-to-date gain for META and TESLA.\n", "\n", "--------------------------------------------------------------------------------\n", + "self.reply_at_receive[sender]self.reply_at_receive[sender] True\n", + "recipitent sending assistant What date is today? Compare the year-to-date gain for META and TESLA. None\n", "\u001b[33massistant\u001b[0m (to user_proxy):\n", "\n", "To get the current date, we can use Python's `datetime` module. After that, we will need to retrieve the year-to-date (YTD) gain for both META (Meta Platforms, Inc.) and TESLA (Tesla, Inc.). We can do this by fetching the stock prices from the beginning of the year and the current stock prices, then calculating the percentage change.\n", @@ -111,34 +113,112 @@ "Please save the above code in a file named `get_current_date.py` and execute it to get today's date. After that, we will proceed to the next step of fetching the stock data.\n", "\n", "--------------------------------------------------------------------------------\n", + "self.reply_at_receive[sender]self.reply_at_receive[sender] True\n", "\u001b[31m\n", ">>>>>>>> EXECUTING CODE BLOCK 0 (inferred language is python)...\u001b[0m\n", + "recipitent sending user_proxy To get the current date, we can use Python's `datetime` module. After that, we will need to retrieve the year-to-date (YTD) gain for both META (Meta Platforms, Inc.) and TESLA (Tesla, Inc.). We can do this by fetching the stock prices from the beginning of the year and the current stock prices, then calculating the percentage change.\n", + "\n", + "First, let's write a Python script to get the current date:\n", + "\n", + "```python\n", + "# filename: get_current_date.py\n", + "\n", + "from datetime import datetime\n", + "\n", + "# Get the current date\n", + "current_date = datetime.now()\n", + "\n", + "# Print the current date in YYYY-MM-DD format\n", + "print(current_date.strftime('%Y-%m-%d'))\n", + "```\n", + "\n", + "Please save the above code in a file named `get_current_date.py` and execute it to get today's date. After that, we will proceed to the next step of fetching the stock data. None\n", "\u001b[33muser_proxy\u001b[0m (to assistant):\n", "\n", "exitcode: 0 (execution succeeded)\n", "Code output: \n", - "2024-02-07\n", + "2024-02-16\n", "\n", "\n", "--------------------------------------------------------------------------------\n", + "self.reply_at_receive[sender]self.reply_at_receive[sender] True\n", + "recipitent sending assistant exitcode: 0 (execution succeeded)\n", + "Code output: \n", + "2024-02-16\n", + " None\n", "\u001b[33massistant\u001b[0m (to user_proxy):\n", "\n", - "Great, today's date is 2024-02-07. Now, let's move on to the next step, which is to fetch the stock prices for META and TESLA.\n", + "Great, today's date is 2024-02-16.\n", + "\n", + "Next, we will fetch the stock prices for META (Meta Platforms, Inc.) and TESLA (Tesla, Inc.) from the beginning of the year until today. To do this, we can use the `yfinance` library in Python, which allows us to retrieve historical stock data.\n", + "\n", + "I will provide you with a Python script that will:\n", + "1. Fetch the stock prices for META and TESLA from the beginning of the year (2024-01-01) to today (2024-02-16).\n", + "2. Calculate the YTD gain for each stock.\n", "\n", - "We will use Python to retrieve the stock data. There are several financial data APIs available, but for this example, we'll use `yfinance`, which is a popular library that allows us to fetch historical market data from Yahoo Finance.\n", + "Please execute the following Python script:\n", "\n", - "First, we need to install the `yfinance` package. You can do this by running the following command:\n", + "```python\n", + "# filename: compare_ytd_gains.py\n", + "\n", + "import yfinance as yf\n", + "from datetime import datetime\n", + "\n", + "# Define the tickers for Meta Platforms, Inc. and Tesla, Inc.\n", + "tickers = [\"META\", \"TSLA\"]\n", + "\n", + "# Define the start and end dates for the YTD period\n", + "start_date = datetime(2024, 1, 1)\n", + "end_date = datetime(2024, 2, 16)\n", + "\n", + "# Function to calculate YTD gain\n", + "def calculate_ytd_gain(ticker):\n", + " # Fetch historical data for the ticker\n", + " data = yf.download(ticker, start=start_date, end=end_date)\n", + " \n", + " # Get the first and last closing prices\n", + " initial_price = data['Close'].iloc[0]\n", + " final_price = data['Close'].iloc[-1]\n", + " \n", + " # Calculate the YTD gain\n", + " ytd_gain = ((final_price - initial_price) / initial_price) * 100\n", + " return ytd_gain\n", + "\n", + "# Calculate and print the YTD gains for both stocks\n", + "ytd_gains = {}\n", + "for ticker in tickers:\n", + " ytd_gains[ticker] = calculate_ytd_gain(ticker)\n", + "\n", + "print(f\"YTD gain for META: {ytd_gains['META']:.2f}%\")\n", + "print(f\"YTD gain for TSLA: {ytd_gains['TSLA']:.2f}%\")\n", + "```\n", + "\n", + "Before running this script, ensure that you have the `yfinance` library installed. If it's not installed, you can install it using the following command:\n", "\n", "```sh\n", "pip install yfinance\n", "```\n", "\n", - "After installing `yfinance`, we will write a Python script to fetch the YTD stock prices for META and TESLA and calculate the YTD gain. The YTD gain is calculated by comparing the current stock price to the stock price at the beginning of the year.\n", + "After installing `yfinance`, save the script as `compare_ytd_gains.py` and execute it to compare the YTD gains for META and TESLA.\n", + "\n", + "--------------------------------------------------------------------------------\n", + "self.reply_at_receive[sender]self.reply_at_receive[sender] True\n", + "\u001b[31m\n", + ">>>>>>>> EXECUTING CODE BLOCK 0 (inferred language is python)...\u001b[0m\n", + "\u001b[31m\n", + ">>>>>>>> EXECUTING CODE BLOCK 1 (inferred language is sh)...\u001b[0m\n", + "recipitent sending user_proxy Great, today's date is 2024-02-16.\n", "\n", - "Here's the Python script to do that:\n", + "Next, we will fetch the stock prices for META (Meta Platforms, Inc.) and TESLA (Tesla, Inc.) from the beginning of the year until today. To do this, we can use the `yfinance` library in Python, which allows us to retrieve historical stock data.\n", + "\n", + "I will provide you with a Python script that will:\n", + "1. Fetch the stock prices for META and TESLA from the beginning of the year (2024-01-01) to today (2024-02-16).\n", + "2. Calculate the YTD gain for each stock.\n", + "\n", + "Please execute the following Python script:\n", "\n", "```python\n", - "# filename: ytd_stock_comparison.py\n", + "# filename: compare_ytd_gains.py\n", "\n", "import yfinance as yf\n", "from datetime import datetime\n", @@ -146,69 +226,108 @@ "# Define the tickers for Meta Platforms, Inc. and Tesla, Inc.\n", "tickers = [\"META\", \"TSLA\"]\n", "\n", - "# Define the start of the year\n", - "start_of_year = datetime(datetime.now().year, 1, 1)\n", + "# Define the start and end dates for the YTD period\n", + "start_date = datetime(2024, 1, 1)\n", + "end_date = datetime(2024, 2, 16)\n", + "\n", + "# Function to calculate YTD gain\n", + "def calculate_ytd_gain(ticker):\n", + " # Fetch historical data for the ticker\n", + " data = yf.download(ticker, start=start_date, end=end_date)\n", + " \n", + " # Get the first and last closing prices\n", + " initial_price = data['Close'].iloc[0]\n", + " final_price = data['Close'].iloc[-1]\n", + " \n", + " # Calculate the YTD gain\n", + " ytd_gain = ((final_price - initial_price) / initial_price) * 100\n", + " return ytd_gain\n", + "\n", + "# Calculate and print the YTD gains for both stocks\n", + "ytd_gains = {}\n", + "for ticker in tickers:\n", + " ytd_gains[ticker] = calculate_ytd_gain(ticker)\n", + "\n", + "print(f\"YTD gain for META: {ytd_gains['META']:.2f}%\")\n", + "print(f\"YTD gain for TSLA: {ytd_gains['TSLA']:.2f}%\")\n", + "```\n", "\n", - "# Fetch the stock data\n", - "meta_data = yf.download(tickers[0], start=start_of_year, end=datetime.now())\n", - "tesla_data = yf.download(tickers[1], start=start_of_year, end=datetime.now())\n", + "Before running this script, ensure that you have the `yfinance` library installed. If it's not installed, you can install it using the following command:\n", "\n", - "# Calculate the YTD gain for each stock\n", - "meta_ytd_gain = ((meta_data['Close'][-1] - meta_data['Close'][0]) / meta_data['Close'][0]) * 100\n", - "tesla_ytd_gain = ((tesla_data['Close'][-1] - tesla_data['Close'][0]) / tesla_data['Close'][0]) * 100\n", - "\n", - "# Print the YTD gain for each stock\n", - "print(f\"META YTD Gain: {meta_ytd_gain:.2f}%\")\n", - "print(f\"TESLA YTD Gain: {tesla_ytd_gain:.2f}%\")\n", + "```sh\n", + "pip install yfinance\n", "```\n", "\n", - "Please save the above code in a file named `ytd_stock_comparison.py` and execute it. This script will output the YTD gain for both META and TESLA stocks.\n", - "\n", - "--------------------------------------------------------------------------------\n", - "\u001b[31m\n", - ">>>>>>>> EXECUTING CODE BLOCK 0 (inferred language is sh)...\u001b[0m\n", - "\u001b[31m\n", - ">>>>>>>> EXECUTING CODE BLOCK 1 (inferred language is python)...\u001b[0m\n", + "After installing `yfinance`, save the script as `compare_ytd_gains.py` and execute it to compare the YTD gains for META and TESLA. None\n", "\u001b[33muser_proxy\u001b[0m (to assistant):\n", "\n", "exitcode: 0 (execution succeeded)\n", "Code output: \n", - "Requirement already satisfied: yfinance in /Users/qingyunwu/miniconda3/envs/ag2/lib/python3.10/site-packages (0.2.36)\n", - "Requirement already satisfied: pandas>=1.3.0 in /Users/qingyunwu/miniconda3/envs/ag2/lib/python3.10/site-packages (from yfinance) (2.2.0)\n", - "Requirement already satisfied: numpy>=1.16.5 in /Users/qingyunwu/miniconda3/envs/ag2/lib/python3.10/site-packages (from yfinance) (1.26.3)\n", - "Requirement already satisfied: requests>=2.31 in /Users/qingyunwu/miniconda3/envs/ag2/lib/python3.10/site-packages (from yfinance) (2.31.0)\n", - "Requirement already satisfied: multitasking>=0.0.7 in /Users/qingyunwu/miniconda3/envs/ag2/lib/python3.10/site-packages (from yfinance) (0.0.11)\n", - "Requirement already satisfied: lxml>=4.9.1 in /Users/qingyunwu/miniconda3/envs/ag2/lib/python3.10/site-packages (from yfinance) (5.1.0)\n", - "Requirement already satisfied: appdirs>=1.4.4 in /Users/qingyunwu/miniconda3/envs/ag2/lib/python3.10/site-packages (from yfinance) (1.4.4)\n", - "Requirement already satisfied: pytz>=2022.5 in /Users/qingyunwu/miniconda3/envs/ag2/lib/python3.10/site-packages (from yfinance) (2023.3.post1)\n", - "Requirement already satisfied: frozendict>=2.3.4 in /Users/qingyunwu/miniconda3/envs/ag2/lib/python3.10/site-packages (from yfinance) (2.4.0)\n", - "Requirement already satisfied: peewee>=3.16.2 in /Users/qingyunwu/miniconda3/envs/ag2/lib/python3.10/site-packages (from yfinance) (3.17.0)\n", - "Requirement already satisfied: beautifulsoup4>=4.11.1 in /Users/qingyunwu/miniconda3/envs/ag2/lib/python3.10/site-packages (from yfinance) (4.12.3)\n", - "Requirement already satisfied: html5lib>=1.1 in /Users/qingyunwu/miniconda3/envs/ag2/lib/python3.10/site-packages (from yfinance) (1.1)\n", - "Requirement already satisfied: soupsieve>1.2 in /Users/qingyunwu/miniconda3/envs/ag2/lib/python3.10/site-packages (from beautifulsoup4>=4.11.1->yfinance) (2.5)\n", - "Requirement already satisfied: six>=1.9 in /Users/qingyunwu/miniconda3/envs/ag2/lib/python3.10/site-packages (from html5lib>=1.1->yfinance) (1.16.0)\n", - "Requirement already satisfied: webencodings in /Users/qingyunwu/miniconda3/envs/ag2/lib/python3.10/site-packages (from html5lib>=1.1->yfinance) (0.5.1)\n", - "Requirement already satisfied: python-dateutil>=2.8.2 in /Users/qingyunwu/miniconda3/envs/ag2/lib/python3.10/site-packages (from pandas>=1.3.0->yfinance) (2.8.2)\n", - "Requirement already satisfied: tzdata>=2022.7 in /Users/qingyunwu/miniconda3/envs/ag2/lib/python3.10/site-packages (from pandas>=1.3.0->yfinance) (2023.4)\n", - "Requirement already satisfied: charset-normalizer<4,>=2 in /Users/qingyunwu/miniconda3/envs/ag2/lib/python3.10/site-packages (from requests>=2.31->yfinance) (3.3.2)\n", - "Requirement already satisfied: idna<4,>=2.5 in /Users/qingyunwu/miniconda3/envs/ag2/lib/python3.10/site-packages (from requests>=2.31->yfinance) (3.6)\n", - "Requirement already satisfied: urllib3<3,>=1.21.1 in /Users/qingyunwu/miniconda3/envs/ag2/lib/python3.10/site-packages (from requests>=2.31->yfinance) (2.1.0)\n", - "Requirement already satisfied: certifi>=2017.4.17 in /Users/qingyunwu/miniconda3/envs/ag2/lib/python3.10/site-packages (from requests>=2.31->yfinance) (2023.11.17)\n", - "\n", - "META YTD Gain: 31.31%\n", - "TESLA YTD Gain: -25.49%\n", + "YTD gain for META: 39.78%\n", + "YTD gain for TSLA: -19.31%\n", + "\n", + "Requirement already satisfied: yfinance in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (0.2.36)\n", + "Requirement already satisfied: pandas>=1.3.0 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (2.2.0)\n", + "Requirement already satisfied: numpy>=1.16.5 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (1.26.4)\n", + "Requirement already satisfied: requests>=2.31 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (2.31.0)\n", + "Requirement already satisfied: multitasking>=0.0.7 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (0.0.11)\n", + "Requirement already satisfied: lxml>=4.9.1 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (5.1.0)\n", + "Requirement already satisfied: appdirs>=1.4.4 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (1.4.4)\n", + "Requirement already satisfied: pytz>=2022.5 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (2024.1)\n", + "Requirement already satisfied: frozendict>=2.3.4 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (2.4.0)\n", + "Requirement already satisfied: peewee>=3.16.2 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (3.17.1)\n", + "Requirement already satisfied: beautifulsoup4>=4.11.1 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (4.12.3)\n", + "Requirement already satisfied: html5lib>=1.1 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (1.1)\n", + "Requirement already satisfied: soupsieve>1.2 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from beautifulsoup4>=4.11.1->yfinance) (2.5)\n", + "Requirement already satisfied: six>=1.9 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from html5lib>=1.1->yfinance) (1.16.0)\n", + "Requirement already satisfied: webencodings in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from html5lib>=1.1->yfinance) (0.5.1)\n", + "Requirement already satisfied: python-dateutil>=2.8.2 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from pandas>=1.3.0->yfinance) (2.8.2)\n", + "Requirement already satisfied: tzdata>=2022.7 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from pandas>=1.3.0->yfinance) (2024.1)\n", + "Requirement already satisfied: charset-normalizer<4,>=2 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from requests>=2.31->yfinance) (3.3.2)\n", + "Requirement already satisfied: idna<4,>=2.5 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from requests>=2.31->yfinance) (3.6)\n", + "Requirement already satisfied: urllib3<3,>=1.21.1 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from requests>=2.31->yfinance) (1.26.18)\n", + "Requirement already satisfied: certifi>=2017.4.17 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from requests>=2.31->yfinance) (2024.2.2)\n", "\n", "\n", "--------------------------------------------------------------------------------\n", + "self.reply_at_receive[sender]self.reply_at_receive[sender] True\n", + "recipitent sending assistant exitcode: 0 (execution succeeded)\n", + "Code output: \n", + "YTD gain for META: 39.78%\n", + "YTD gain for TSLA: -19.31%\n", + "\n", + "Requirement already satisfied: yfinance in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (0.2.36)\n", + "Requirement already satisfied: pandas>=1.3.0 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (2.2.0)\n", + "Requirement already satisfied: numpy>=1.16.5 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (1.26.4)\n", + "Requirement already satisfied: requests>=2.31 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (2.31.0)\n", + "Requirement already satisfied: multitasking>=0.0.7 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (0.0.11)\n", + "Requirement already satisfied: lxml>=4.9.1 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (5.1.0)\n", + "Requirement already satisfied: appdirs>=1.4.4 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (1.4.4)\n", + "Requirement already satisfied: pytz>=2022.5 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (2024.1)\n", + "Requirement already satisfied: frozendict>=2.3.4 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (2.4.0)\n", + "Requirement already satisfied: peewee>=3.16.2 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (3.17.1)\n", + "Requirement already satisfied: beautifulsoup4>=4.11.1 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (4.12.3)\n", + "Requirement already satisfied: html5lib>=1.1 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (1.1)\n", + "Requirement already satisfied: soupsieve>1.2 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from beautifulsoup4>=4.11.1->yfinance) (2.5)\n", + "Requirement already satisfied: six>=1.9 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from html5lib>=1.1->yfinance) (1.16.0)\n", + "Requirement already satisfied: webencodings in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from html5lib>=1.1->yfinance) (0.5.1)\n", + "Requirement already satisfied: python-dateutil>=2.8.2 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from pandas>=1.3.0->yfinance) (2.8.2)\n", + "Requirement already satisfied: tzdata>=2022.7 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from pandas>=1.3.0->yfinance) (2024.1)\n", + "Requirement already satisfied: charset-normalizer<4,>=2 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from requests>=2.31->yfinance) (3.3.2)\n", + "Requirement already satisfied: idna<4,>=2.5 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from requests>=2.31->yfinance) (3.6)\n", + "Requirement already satisfied: urllib3<3,>=1.21.1 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from requests>=2.31->yfinance) (1.26.18)\n", + "Requirement already satisfied: certifi>=2017.4.17 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from requests>=2.31->yfinance) (2024.2.2)\n", + " None\n", "\u001b[33massistant\u001b[0m (to user_proxy):\n", "\n", - "The year-to-date (YTD) gain for META (Meta Platforms, Inc.) is 31.31%, indicating an increase in its stock price since the beginning of the year. On the other hand, TESLA (Tesla, Inc.) has experienced a YTD loss of -25.49%, indicating a decrease in its stock price since the beginning of the year.\n", + "The year-to-date (YTD) gain for META (Meta Platforms, Inc.) is approximately 39.78%, and the YTD loss for TESLA (Tesla, Inc.) is approximately -19.31%. This means that so far this year, META's stock price has increased by about 39.78%, while TESLA's stock price has decreased by about 19.31%.\n", "\n", - "These percentages reflect the performance of each company's stock from the start of the year to today's date, 2024-02-07.\n", + "Please note that stock prices are subject to market fluctuations, and the values provided are based on the closing prices from the start of the year to today's date.\n", "\n", "TERMINATE\n", "\n", - "--------------------------------------------------------------------------------\n" + "--------------------------------------------------------------------------------\n", + "self.reply_at_receive[sender]self.reply_at_receive[sender] True\n" ] } ], @@ -266,16 +385,16 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "Chat history: [{'content': 'What date is today? Compare the year-to-date gain for META and TESLA.', 'role': 'assistant'}, {'content': \"To get the current date, we can use Python's `datetime` module. After that, we will need to retrieve the year-to-date (YTD) gain for both META (Meta Platforms, Inc.) and TESLA (Tesla, Inc.). We can do this by fetching the stock prices from the beginning of the year and the current stock prices, then calculating the percentage change.\\n\\nFirst, let's write a Python script to get the current date:\\n\\n```python\\n# filename: get_current_date.py\\n\\nfrom datetime import datetime\\n\\n# Get the current date\\ncurrent_date = datetime.now()\\n\\n# Print the current date in YYYY-MM-DD format\\nprint(current_date.strftime('%Y-%m-%d'))\\n```\\n\\nPlease save the above code in a file named `get_current_date.py` and execute it to get today's date. After that, we will proceed to the next step of fetching the stock data.\", 'role': 'user'}, {'content': 'exitcode: 0 (execution succeeded)\\nCode output: \\n2024-02-07\\n', 'role': 'assistant'}, {'content': 'Great, today\\'s date is 2024-02-07. Now, let\\'s move on to the next step, which is to fetch the stock prices for META and TESLA.\\n\\nWe will use Python to retrieve the stock data. There are several financial data APIs available, but for this example, we\\'ll use `yfinance`, which is a popular library that allows us to fetch historical market data from Yahoo Finance.\\n\\nFirst, we need to install the `yfinance` package. You can do this by running the following command:\\n\\n```sh\\npip install yfinance\\n```\\n\\nAfter installing `yfinance`, we will write a Python script to fetch the YTD stock prices for META and TESLA and calculate the YTD gain. The YTD gain is calculated by comparing the current stock price to the stock price at the beginning of the year.\\n\\nHere\\'s the Python script to do that:\\n\\n```python\\n# filename: ytd_stock_comparison.py\\n\\nimport yfinance as yf\\nfrom datetime import datetime\\n\\n# Define the tickers for Meta Platforms, Inc. and Tesla, Inc.\\ntickers = [\"META\", \"TSLA\"]\\n\\n# Define the start of the year\\nstart_of_year = datetime(datetime.now().year, 1, 1)\\n\\n# Fetch the stock data\\nmeta_data = yf.download(tickers[0], start=start_of_year, end=datetime.now())\\ntesla_data = yf.download(tickers[1], start=start_of_year, end=datetime.now())\\n\\n# Calculate the YTD gain for each stock\\nmeta_ytd_gain = ((meta_data[\\'Close\\'][-1] - meta_data[\\'Close\\'][0]) / meta_data[\\'Close\\'][0]) * 100\\ntesla_ytd_gain = ((tesla_data[\\'Close\\'][-1] - tesla_data[\\'Close\\'][0]) / tesla_data[\\'Close\\'][0]) * 100\\n\\n# Print the YTD gain for each stock\\nprint(f\"META YTD Gain: {meta_ytd_gain:.2f}%\")\\nprint(f\"TESLA YTD Gain: {tesla_ytd_gain:.2f}%\")\\n```\\n\\nPlease save the above code in a file named `ytd_stock_comparison.py` and execute it. This script will output the YTD gain for both META and TESLA stocks.', 'role': 'user'}, {'content': 'exitcode: 0 (execution succeeded)\\nCode output: \\nRequirement already satisfied: yfinance in /Users/qingyunwu/miniconda3/envs/ag2/lib/python3.10/site-packages (0.2.36)\\nRequirement already satisfied: pandas>=1.3.0 in /Users/qingyunwu/miniconda3/envs/ag2/lib/python3.10/site-packages (from yfinance) (2.2.0)\\nRequirement already satisfied: numpy>=1.16.5 in /Users/qingyunwu/miniconda3/envs/ag2/lib/python3.10/site-packages (from yfinance) (1.26.3)\\nRequirement already satisfied: requests>=2.31 in /Users/qingyunwu/miniconda3/envs/ag2/lib/python3.10/site-packages (from yfinance) (2.31.0)\\nRequirement already satisfied: multitasking>=0.0.7 in /Users/qingyunwu/miniconda3/envs/ag2/lib/python3.10/site-packages (from yfinance) (0.0.11)\\nRequirement already satisfied: lxml>=4.9.1 in /Users/qingyunwu/miniconda3/envs/ag2/lib/python3.10/site-packages (from yfinance) (5.1.0)\\nRequirement already satisfied: appdirs>=1.4.4 in /Users/qingyunwu/miniconda3/envs/ag2/lib/python3.10/site-packages (from yfinance) (1.4.4)\\nRequirement already satisfied: pytz>=2022.5 in /Users/qingyunwu/miniconda3/envs/ag2/lib/python3.10/site-packages (from yfinance) (2023.3.post1)\\nRequirement already satisfied: frozendict>=2.3.4 in /Users/qingyunwu/miniconda3/envs/ag2/lib/python3.10/site-packages (from yfinance) (2.4.0)\\nRequirement already satisfied: peewee>=3.16.2 in /Users/qingyunwu/miniconda3/envs/ag2/lib/python3.10/site-packages (from yfinance) (3.17.0)\\nRequirement already satisfied: beautifulsoup4>=4.11.1 in /Users/qingyunwu/miniconda3/envs/ag2/lib/python3.10/site-packages (from yfinance) (4.12.3)\\nRequirement already satisfied: html5lib>=1.1 in /Users/qingyunwu/miniconda3/envs/ag2/lib/python3.10/site-packages (from yfinance) (1.1)\\nRequirement already satisfied: soupsieve>1.2 in /Users/qingyunwu/miniconda3/envs/ag2/lib/python3.10/site-packages (from beautifulsoup4>=4.11.1->yfinance) (2.5)\\nRequirement already satisfied: six>=1.9 in /Users/qingyunwu/miniconda3/envs/ag2/lib/python3.10/site-packages (from html5lib>=1.1->yfinance) (1.16.0)\\nRequirement already satisfied: webencodings in /Users/qingyunwu/miniconda3/envs/ag2/lib/python3.10/site-packages (from html5lib>=1.1->yfinance) (0.5.1)\\nRequirement already satisfied: python-dateutil>=2.8.2 in /Users/qingyunwu/miniconda3/envs/ag2/lib/python3.10/site-packages (from pandas>=1.3.0->yfinance) (2.8.2)\\nRequirement already satisfied: tzdata>=2022.7 in /Users/qingyunwu/miniconda3/envs/ag2/lib/python3.10/site-packages (from pandas>=1.3.0->yfinance) (2023.4)\\nRequirement already satisfied: charset-normalizer<4,>=2 in /Users/qingyunwu/miniconda3/envs/ag2/lib/python3.10/site-packages (from requests>=2.31->yfinance) (3.3.2)\\nRequirement already satisfied: idna<4,>=2.5 in /Users/qingyunwu/miniconda3/envs/ag2/lib/python3.10/site-packages (from requests>=2.31->yfinance) (3.6)\\nRequirement already satisfied: urllib3<3,>=1.21.1 in /Users/qingyunwu/miniconda3/envs/ag2/lib/python3.10/site-packages (from requests>=2.31->yfinance) (2.1.0)\\nRequirement already satisfied: certifi>=2017.4.17 in /Users/qingyunwu/miniconda3/envs/ag2/lib/python3.10/site-packages (from requests>=2.31->yfinance) (2023.11.17)\\n\\nMETA YTD Gain: 31.31%\\nTESLA YTD Gain: -25.49%\\n', 'role': 'assistant'}, {'content': \"The year-to-date (YTD) gain for META (Meta Platforms, Inc.) is 31.31%, indicating an increase in its stock price since the beginning of the year. On the other hand, TESLA (Tesla, Inc.) has experienced a YTD loss of -25.49%, indicating a decrease in its stock price since the beginning of the year.\\n\\nThese percentages reflect the performance of each company's stock from the start of the year to today's date, 2024-02-07.\\n\\nTERMINATE\", 'role': 'user'}]\n", - "Summary: The year-to-date gain for META is 31.31%, while TESLA has a year-to-date loss of -25.49% as of February 7, 2024.\n", - "Cost info: ({'total_cost': 0.20895, 'gpt-4': {'cost': 0.20895, 'prompt_tokens': 5355, 'completion_tokens': 805, 'total_tokens': 6160}}, {'total_cost': 0.18321, 'gpt-4': {'cost': 0.18321, 'prompt_tokens': 4865, 'completion_tokens': 621, 'total_tokens': 5486}})\n" + "Chat history: [{'content': 'What date is today? Compare the year-to-date gain for META and TESLA.', 'role': 'assistant'}, {'content': \"To get the current date, we can use Python's `datetime` module. After that, we will need to retrieve the year-to-date (YTD) gain for both META (Meta Platforms, Inc.) and TESLA (Tesla, Inc.). We can do this by fetching the stock prices from the beginning of the year and the current stock prices, then calculating the percentage change.\\n\\nFirst, let's write a Python script to get the current date:\\n\\n```python\\n# filename: get_current_date.py\\n\\nfrom datetime import datetime\\n\\n# Get the current date\\ncurrent_date = datetime.now()\\n\\n# Print the current date in YYYY-MM-DD format\\nprint(current_date.strftime('%Y-%m-%d'))\\n```\\n\\nPlease save the above code in a file named `get_current_date.py` and execute it to get today's date. After that, we will proceed to the next step of fetching the stock data.\", 'role': 'user'}, {'content': 'exitcode: 0 (execution succeeded)\\nCode output: \\n2024-02-16\\n', 'role': 'assistant'}, {'content': 'Great, today\\'s date is 2024-02-16.\\n\\nNext, we will fetch the stock prices for META (Meta Platforms, Inc.) and TESLA (Tesla, Inc.) from the beginning of the year until today. To do this, we can use the `yfinance` library in Python, which allows us to retrieve historical stock data.\\n\\nI will provide you with a Python script that will:\\n1. Fetch the stock prices for META and TESLA from the beginning of the year (2024-01-01) to today (2024-02-16).\\n2. Calculate the YTD gain for each stock.\\n\\nPlease execute the following Python script:\\n\\n```python\\n# filename: compare_ytd_gains.py\\n\\nimport yfinance as yf\\nfrom datetime import datetime\\n\\n# Define the tickers for Meta Platforms, Inc. and Tesla, Inc.\\ntickers = [\"META\", \"TSLA\"]\\n\\n# Define the start and end dates for the YTD period\\nstart_date = datetime(2024, 1, 1)\\nend_date = datetime(2024, 2, 16)\\n\\n# Function to calculate YTD gain\\ndef calculate_ytd_gain(ticker):\\n # Fetch historical data for the ticker\\n data = yf.download(ticker, start=start_date, end=end_date)\\n \\n # Get the first and last closing prices\\n initial_price = data[\\'Close\\'].iloc[0]\\n final_price = data[\\'Close\\'].iloc[-1]\\n \\n # Calculate the YTD gain\\n ytd_gain = ((final_price - initial_price) / initial_price) * 100\\n return ytd_gain\\n\\n# Calculate and print the YTD gains for both stocks\\nytd_gains = {}\\nfor ticker in tickers:\\n ytd_gains[ticker] = calculate_ytd_gain(ticker)\\n\\nprint(f\"YTD gain for META: {ytd_gains[\\'META\\']:.2f}%\")\\nprint(f\"YTD gain for TSLA: {ytd_gains[\\'TSLA\\']:.2f}%\")\\n```\\n\\nBefore running this script, ensure that you have the `yfinance` library installed. If it\\'s not installed, you can install it using the following command:\\n\\n```sh\\npip install yfinance\\n```\\n\\nAfter installing `yfinance`, save the script as `compare_ytd_gains.py` and execute it to compare the YTD gains for META and TESLA.', 'role': 'user'}, {'content': 'exitcode: 0 (execution succeeded)\\nCode output: \\nYTD gain for META: 39.78%\\nYTD gain for TSLA: -19.31%\\n\\nRequirement already satisfied: yfinance in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (0.2.36)\\nRequirement already satisfied: pandas>=1.3.0 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (2.2.0)\\nRequirement already satisfied: numpy>=1.16.5 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (1.26.4)\\nRequirement already satisfied: requests>=2.31 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (2.31.0)\\nRequirement already satisfied: multitasking>=0.0.7 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (0.0.11)\\nRequirement already satisfied: lxml>=4.9.1 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (5.1.0)\\nRequirement already satisfied: appdirs>=1.4.4 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (1.4.4)\\nRequirement already satisfied: pytz>=2022.5 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (2024.1)\\nRequirement already satisfied: frozendict>=2.3.4 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (2.4.0)\\nRequirement already satisfied: peewee>=3.16.2 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (3.17.1)\\nRequirement already satisfied: beautifulsoup4>=4.11.1 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (4.12.3)\\nRequirement already satisfied: html5lib>=1.1 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (1.1)\\nRequirement already satisfied: soupsieve>1.2 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from beautifulsoup4>=4.11.1->yfinance) (2.5)\\nRequirement already satisfied: six>=1.9 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from html5lib>=1.1->yfinance) (1.16.0)\\nRequirement already satisfied: webencodings in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from html5lib>=1.1->yfinance) (0.5.1)\\nRequirement already satisfied: python-dateutil>=2.8.2 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from pandas>=1.3.0->yfinance) (2.8.2)\\nRequirement already satisfied: tzdata>=2022.7 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from pandas>=1.3.0->yfinance) (2024.1)\\nRequirement already satisfied: charset-normalizer<4,>=2 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from requests>=2.31->yfinance) (3.3.2)\\nRequirement already satisfied: idna<4,>=2.5 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from requests>=2.31->yfinance) (3.6)\\nRequirement already satisfied: urllib3<3,>=1.21.1 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from requests>=2.31->yfinance) (1.26.18)\\nRequirement already satisfied: certifi>=2017.4.17 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from requests>=2.31->yfinance) (2024.2.2)\\n', 'role': 'assistant'}, {'content': \"The year-to-date (YTD) gain for META (Meta Platforms, Inc.) is approximately 39.78%, and the YTD loss for TESLA (Tesla, Inc.) is approximately -19.31%. This means that so far this year, META's stock price has increased by about 39.78%, while TESLA's stock price has decreased by about 19.31%.\\n\\nPlease note that stock prices are subject to market fluctuations, and the values provided are based on the closing prices from the start of the year to today's date.\\n\\nTERMINATE\", 'role': 'user'}]\n", + "Summary: Today's date is 2024-02-16. The year-to-date gain for META (Meta Platforms, Inc.) is approximately 39.78%, while TESLA (Tesla, Inc.) has experienced a year-to-date loss of about -19.31%.\n", + "Cost info: ({'total_cost': 0.21233999999999997, 'gpt-4': {'cost': 0.21233999999999997, 'prompt_tokens': 5348, 'completion_tokens': 865, 'total_tokens': 6213}}, {'total_cost': 0.1866, 'gpt-4': {'cost': 0.1866, 'prompt_tokens': 4858, 'completion_tokens': 681, 'total_tokens': 5539}})\n" ] } ], @@ -296,7 +415,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 4, "metadata": {}, "outputs": [ { @@ -308,17 +427,67 @@ "Plot a chart of their stock price change YTD and save to stock_price_ytd.png.\n", "\n", "--------------------------------------------------------------------------------\n", + "self.reply_at_receive[sender]self.reply_at_receive[sender] True\n", + "recipitent sending assistant Plot a chart of their stock price change YTD and save to stock_price_ytd.png. None\n", "\u001b[33massistant\u001b[0m (to user_proxy):\n", "\n", - "To plot a chart of the YTD stock price changes for META and TESLA and save it to a file named `stock_price_ytd.png`, we will use Python with the `matplotlib` library for plotting and `yfinance` to fetch the stock data.\n", + "To plot a chart of the YTD stock price changes for META and TESLA and save it to a file named `stock_price_ytd.png`, we will use Python with libraries such as `matplotlib` for plotting and `yfinance` for fetching the stock data.\n", + "\n", + "Here is the Python script that will perform the task:\n", + "\n", + "```python\n", + "# filename: plot_stock_price_ytd.py\n", + "\n", + "import yfinance as yf\n", + "import matplotlib.pyplot as plt\n", + "from datetime import datetime\n", + "\n", + "# Define the tickers for Meta Platforms, Inc. and Tesla, Inc.\n", + "tickers = [\"META\", \"TSLA\"]\n", + "\n", + "# Define the start and end dates for the YTD period\n", + "start_date = datetime(2024, 1, 1)\n", + "end_date = datetime(2024, 2, 16)\n", + "\n", + "# Fetch historical data for both tickers\n", + "data = yf.download(tickers, start=start_date, end=end_date)['Close']\n", + "\n", + "# Normalize the data to 100 (percentage change) based on the first closing price\n", + "normalized_data = (data / data.iloc[0]) * 100\n", + "\n", + "# Plot the data\n", + "plt.figure(figsize=(14, 7))\n", + "for ticker in tickers:\n", + " plt.plot(normalized_data.index, normalized_data[ticker], label=ticker)\n", + "\n", + "# Add titles and labels\n", + "plt.title('Stock Price Change YTD')\n", + "plt.xlabel('Date')\n", + "plt.ylabel('Normalized Price (Base 100)')\n", + "plt.legend()\n", + "\n", + "# Save the plot to a PNG file\n", + "plt.savefig('stock_price_ytd.png')\n", + "\n", + "# Show the plot\n", + "plt.show()\n", + "```\n", "\n", - "First, ensure that `matplotlib` is installed by running the following command:\n", + "Before running this script, ensure that you have the `matplotlib` library installed. If it's not installed, you can install it using the following command:\n", "\n", "```sh\n", "pip install matplotlib\n", "```\n", "\n", - "Next, here's the Python script to fetch the stock data, plot the chart, and save it:\n", + "After installing `matplotlib`, save the script as `plot_stock_price_ytd.py` and execute it. The script will display the chart and save it as `stock_price_ytd.png` in the current directory.\n", + "\n", + "--------------------------------------------------------------------------------\n", + "self.reply_at_receive[sender]self.reply_at_receive[sender] True\n", + "\u001b[31m\n", + ">>>>>>>> EXECUTING CODE BLOCK 0 (inferred language is python)...\u001b[0m\n", + "recipitent sending user_proxy To plot a chart of the YTD stock price changes for META and TESLA and save it to a file named `stock_price_ytd.png`, we will use Python with libraries such as `matplotlib` for plotting and `yfinance` for fetching the stock data.\n", + "\n", + "Here is the Python script that will perform the task:\n", "\n", "```python\n", "# filename: plot_stock_price_ytd.py\n", @@ -330,99 +499,279 @@ "# Define the tickers for Meta Platforms, Inc. and Tesla, Inc.\n", "tickers = [\"META\", \"TSLA\"]\n", "\n", - "# Define the start of the year\n", - "start_of_year = datetime(datetime.now().year, 1, 1)\n", + "# Define the start and end dates for the YTD period\n", + "start_date = datetime(2024, 1, 1)\n", + "end_date = datetime(2024, 2, 16)\n", "\n", - "# Fetch the stock data\n", - "meta_data = yf.download(tickers[0], start=start_of_year, end=datetime.now())\n", - "tesla_data = yf.download(tickers[1], start=start_of_year, end=datetime.now())\n", + "# Fetch historical data for both tickers\n", + "data = yf.download(tickers, start=start_date, end=end_date)['Close']\n", "\n", - "# Normalize the data to compare the percentage change\n", - "meta_normalized = (meta_data['Close'] / meta_data['Close'].iloc[0]) * 100\n", - "tesla_normalized = (tesla_data['Close'] / tesla_data['Close'].iloc[0]) * 100\n", + "# Normalize the data to 100 (percentage change) based on the first closing price\n", + "normalized_data = (data / data.iloc[0]) * 100\n", "\n", "# Plot the data\n", "plt.figure(figsize=(14, 7))\n", - "plt.plot(meta_normalized, label='META YTD')\n", - "plt.plot(tesla_normalized, label='TESLA YTD')\n", + "for ticker in tickers:\n", + " plt.plot(normalized_data.index, normalized_data[ticker], label=ticker)\n", "\n", "# Add titles and labels\n", - "plt.title('YTD Stock Price Change for META and TESLA')\n", + "plt.title('Stock Price Change YTD')\n", "plt.xlabel('Date')\n", "plt.ylabel('Normalized Price (Base 100)')\n", "plt.legend()\n", "\n", - "# Save the plot to a file\n", + "# Save the plot to a PNG file\n", "plt.savefig('stock_price_ytd.png')\n", + "\n", + "# Show the plot\n", "plt.show()\n", "```\n", "\n", - "Please save the above code in a file named `plot_stock_price_ytd.py` and execute it. This script will create a chart showing the normalized YTD stock price changes for META and TESLA, and save the chart as `stock_price_ytd.png`. The normalization sets the initial stock prices to 100 to compare the relative changes in stock prices over time.\n", + "Before running this script, ensure that you have the `matplotlib` library installed. If it's not installed, you can install it using the following command:\n", + "\n", + "```sh\n", + "pip install matplotlib\n", + "```\n", + "\n", + "After installing `matplotlib`, save the script as `plot_stock_price_ytd.py` and execute it. The script will display the chart and save it as `stock_price_ytd.png` in the current directory. None\n", + "\u001b[33muser_proxy\u001b[0m (to assistant):\n", + "\n", + "exitcode: 1 (execution failed)\n", + "Code output: \n", + "Traceback (most recent call last):\n", + " File \"plot_stock_price_ytd.py\", line 4, in \n", + " import matplotlib.pyplot as plt\n", + "ModuleNotFoundError: No module named 'matplotlib'\n", + "\n", "\n", "--------------------------------------------------------------------------------\n", + "self.reply_at_receive[sender]self.reply_at_receive[sender] True\n", + "recipitent sending assistant exitcode: 1 (execution failed)\n", + "Code output: \n", + "Traceback (most recent call last):\n", + " File \"plot_stock_price_ytd.py\", line 4, in \n", + " import matplotlib.pyplot as plt\n", + "ModuleNotFoundError: No module named 'matplotlib'\n", + " None\n", + "\u001b[33massistant\u001b[0m (to user_proxy):\n", + "\n", + "It appears that the `matplotlib` library is not installed in your Python environment. To proceed, you need to install the `matplotlib` library. Please run the following command to install it:\n", + "\n", + "```sh\n", + "pip install matplotlib\n", + "```\n", + "\n", + "After the installation is complete, please try running the `plot_stock_price_ytd.py` script again. Here is the script for your convenience:\n", + "\n", + "```python\n", + "# filename: plot_stock_price_ytd.py\n", + "\n", + "import yfinance as yf\n", + "import matplotlib.pyplot as plt\n", + "from datetime import datetime\n", + "\n", + "# Define the tickers for Meta Platforms, Inc. and Tesla, Inc.\n", + "tickers = [\"META\", \"TSLA\"]\n", + "\n", + "# Define the start and end dates for the YTD period\n", + "start_date = datetime(2024, 1, 1)\n", + "end_date = datetime(2024, 2, 16)\n", + "\n", + "# Fetch historical data for both tickers\n", + "data = yf.download(tickers, start=start_date, end=end_date)['Close']\n", + "\n", + "# Normalize the data to 100 (percentage change) based on the first closing price\n", + "normalized_data = (data / data.iloc[0]) * 100\n", + "\n", + "# Plot the data\n", + "plt.figure(figsize=(14, 7))\n", + "for ticker in tickers:\n", + " plt.plot(normalized_data.index, normalized_data[ticker], label=ticker)\n", + "\n", + "# Add titles and labels\n", + "plt.title('Stock Price Change YTD')\n", + "plt.xlabel('Date')\n", + "plt.ylabel('Normalized Price (Base 100)')\n", + "plt.legend()\n", + "\n", + "# Save the plot to a PNG file\n", + "plt.savefig('stock_price_ytd.png')\n", + "\n", + "# Show the plot\n", + "plt.show()\n", + "```\n", + "\n", + "Execute the script after installing `matplotlib` to generate and save the chart.\n", + "\n", + "--------------------------------------------------------------------------------\n", + "self.reply_at_receive[sender]self.reply_at_receive[sender] True\n", "\u001b[31m\n", ">>>>>>>> EXECUTING CODE BLOCK 0 (inferred language is sh)...\u001b[0m\n", "\u001b[31m\n", ">>>>>>>> EXECUTING CODE BLOCK 1 (inferred language is python)...\u001b[0m\n", + "recipitent sending user_proxy It appears that the `matplotlib` library is not installed in your Python environment. To proceed, you need to install the `matplotlib` library. Please run the following command to install it:\n", + "\n", + "```sh\n", + "pip install matplotlib\n", + "```\n", + "\n", + "After the installation is complete, please try running the `plot_stock_price_ytd.py` script again. Here is the script for your convenience:\n", + "\n", + "```python\n", + "# filename: plot_stock_price_ytd.py\n", + "\n", + "import yfinance as yf\n", + "import matplotlib.pyplot as plt\n", + "from datetime import datetime\n", + "\n", + "# Define the tickers for Meta Platforms, Inc. and Tesla, Inc.\n", + "tickers = [\"META\", \"TSLA\"]\n", + "\n", + "# Define the start and end dates for the YTD period\n", + "start_date = datetime(2024, 1, 1)\n", + "end_date = datetime(2024, 2, 16)\n", + "\n", + "# Fetch historical data for both tickers\n", + "data = yf.download(tickers, start=start_date, end=end_date)['Close']\n", + "\n", + "# Normalize the data to 100 (percentage change) based on the first closing price\n", + "normalized_data = (data / data.iloc[0]) * 100\n", + "\n", + "# Plot the data\n", + "plt.figure(figsize=(14, 7))\n", + "for ticker in tickers:\n", + " plt.plot(normalized_data.index, normalized_data[ticker], label=ticker)\n", + "\n", + "# Add titles and labels\n", + "plt.title('Stock Price Change YTD')\n", + "plt.xlabel('Date')\n", + "plt.ylabel('Normalized Price (Base 100)')\n", + "plt.legend()\n", + "\n", + "# Save the plot to a PNG file\n", + "plt.savefig('stock_price_ytd.png')\n", + "\n", + "# Show the plot\n", + "plt.show()\n", + "```\n", + "\n", + "Execute the script after installing `matplotlib` to generate and save the chart. None\n", "\u001b[33muser_proxy\u001b[0m (to assistant):\n", "\n", "exitcode: 0 (execution succeeded)\n", "Code output: \n", - "Requirement already satisfied: matplotlib in /Users/qingyunwu/miniconda3/envs/ag2/lib/python3.10/site-packages (3.8.2)\n", - "Requirement already satisfied: contourpy>=1.0.1 in /Users/qingyunwu/miniconda3/envs/ag2/lib/python3.10/site-packages (from matplotlib) (1.2.0)\n", - "Requirement already satisfied: cycler>=0.10 in /Users/qingyunwu/miniconda3/envs/ag2/lib/python3.10/site-packages (from matplotlib) (0.12.1)\n", - "Requirement already satisfied: fonttools>=4.22.0 in /Users/qingyunwu/miniconda3/envs/ag2/lib/python3.10/site-packages (from matplotlib) (4.47.2)\n", - "Requirement already satisfied: kiwisolver>=1.3.1 in /Users/qingyunwu/miniconda3/envs/ag2/lib/python3.10/site-packages (from matplotlib) (1.4.5)\n", - "Requirement already satisfied: numpy<2,>=1.21 in /Users/qingyunwu/miniconda3/envs/ag2/lib/python3.10/site-packages (from matplotlib) (1.26.3)\n", - "Requirement already satisfied: packaging>=20.0 in /Users/qingyunwu/miniconda3/envs/ag2/lib/python3.10/site-packages (from matplotlib) (23.2)\n", - "Requirement already satisfied: pillow>=8 in /Users/qingyunwu/miniconda3/envs/ag2/lib/python3.10/site-packages (from matplotlib) (10.2.0)\n", - "Requirement already satisfied: pyparsing>=2.3.1 in /Users/qingyunwu/miniconda3/envs/ag2/lib/python3.10/site-packages (from matplotlib) (3.1.1)\n", - "Requirement already satisfied: python-dateutil>=2.7 in /Users/qingyunwu/miniconda3/envs/ag2/lib/python3.10/site-packages (from matplotlib) (2.8.2)\n", - "Requirement already satisfied: six>=1.5 in /Users/qingyunwu/miniconda3/envs/ag2/lib/python3.10/site-packages (from python-dateutil>=2.7->matplotlib) (1.16.0)\n", + "Collecting matplotlib\n", + " Downloading matplotlib-3.8.3-cp310-cp310-macosx_11_0_arm64.whl.metadata (5.8 kB)\n", + "Collecting contourpy>=1.0.1 (from matplotlib)\n", + " Using cached contourpy-1.2.0-cp310-cp310-macosx_11_0_arm64.whl.metadata (5.8 kB)\n", + "Collecting cycler>=0.10 (from matplotlib)\n", + " Using cached cycler-0.12.1-py3-none-any.whl.metadata (3.8 kB)\n", + "Collecting fonttools>=4.22.0 (from matplotlib)\n", + " Downloading fonttools-4.49.0-cp310-cp310-macosx_10_9_universal2.whl.metadata (159 kB)\n", + "\u001b[?25l \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m0.0/159.1 kB\u001b[0m \u001b[31m?\u001b[0m eta \u001b[36m-:--:--\u001b[0m\n", + "\u001b[2K \u001b[91m━━━━━━━━━━\u001b[0m\u001b[90m╺\u001b[0m\u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m41.0/159.1 kB\u001b[0m \u001b[31m1.0 MB/s\u001b[0m eta \u001b[36m0:00:01\u001b[0m\n", + "\u001b[2K \u001b[91m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[91m╸\u001b[0m\u001b[90m━\u001b[0m \u001b[32m153.6/159.1 kB\u001b[0m \u001b[31m2.1 MB/s\u001b[0m eta \u001b[36m0:00:01\u001b[0m\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m159.1/159.1 kB\u001b[0m \u001b[31m2.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[?25hCollecting kiwisolver>=1.3.1 (from matplotlib)\n", + " Using cached kiwisolver-1.4.5-cp310-cp310-macosx_11_0_arm64.whl.metadata (6.4 kB)\n", + "Requirement already satisfied: numpy<2,>=1.21 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from matplotlib) (1.26.4)\n", + "Requirement already satisfied: packaging>=20.0 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from matplotlib) (23.2)\n", + "Collecting pillow>=8 (from matplotlib)\n", + " Using cached pillow-10.2.0-cp310-cp310-macosx_11_0_arm64.whl.metadata (9.7 kB)\n", + "Collecting pyparsing>=2.3.1 (from matplotlib)\n", + " Using cached pyparsing-3.1.1-py3-none-any.whl.metadata (5.1 kB)\n", + "Requirement already satisfied: python-dateutil>=2.7 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from matplotlib) (2.8.2)\n", + "Requirement already satisfied: six>=1.5 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from python-dateutil>=2.7->matplotlib) (1.16.0)\n", + "Downloading matplotlib-3.8.3-cp310-cp310-macosx_11_0_arm64.whl (7.5 MB)\n", + "\u001b[?25l \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m0.0/7.5 MB\u001b[0m \u001b[31m?\u001b[0m eta \u001b[36m-:--:--\u001b[0m\n", + "\u001b[2K \u001b[91m━\u001b[0m\u001b[91m╸\u001b[0m\u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m0.3/7.5 MB\u001b[0m \u001b[31m7.9 MB/s\u001b[0m eta \u001b[36m0:00:01\u001b[0m\n", + "\u001b[2K \u001b[91m━━━━\u001b[0m\u001b[91m╸\u001b[0m\u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m0.9/7.5 MB\u001b[0m \u001b[31m11.2 MB/s\u001b[0m eta \u001b[36m0:00:01\u001b[0m\n", + "\u001b[2K \u001b[91m━━━━━━━━\u001b[0m\u001b[90m╺\u001b[0m\u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m1.6/7.5 MB\u001b[0m \u001b[31m14.7 MB/s\u001b[0m eta \u001b[36m0:00:01\u001b[0m\n", + "\u001b[2K \u001b[91m━━━━━━━━━━━━━━━━\u001b[0m\u001b[91m╸\u001b[0m\u001b[90m━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m3.1/7.5 MB\u001b[0m \u001b[31m21.4 MB/s\u001b[0m eta \u001b[36m0:00:01\u001b[0m\n", + "\u001b[2K \u001b[91m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[91m╸\u001b[0m\u001b[90m━━━━━━━━━\u001b[0m \u001b[32m5.8/7.5 MB\u001b[0m \u001b[31m29.7 MB/s\u001b[0m eta \u001b[36m0:00:01\u001b[0m\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m7.5/7.5 MB\u001b[0m \u001b[31m33.1 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[?25hUsing cached contourpy-1.2.0-cp310-cp310-macosx_11_0_arm64.whl (242 kB)\n", + "Using cached cycler-0.12.1-py3-none-any.whl (8.3 kB)\n", + "Downloading fonttools-4.49.0-cp310-cp310-macosx_10_9_universal2.whl (2.8 MB)\n", + "\u001b[?25l \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m0.0/2.8 MB\u001b[0m \u001b[31m?\u001b[0m eta \u001b[36m-:--:--\u001b[0m\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m2.8/2.8 MB\u001b[0m \u001b[31m81.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[?25hUsing cached kiwisolver-1.4.5-cp310-cp310-macosx_11_0_arm64.whl (66 kB)\n", + "Using cached pillow-10.2.0-cp310-cp310-macosx_11_0_arm64.whl (3.3 MB)\n", + "Using cached pyparsing-3.1.1-py3-none-any.whl (103 kB)\n", + "Installing collected packages: pyparsing, pillow, kiwisolver, fonttools, cycler, contourpy, matplotlib\n", + "Successfully installed contourpy-1.2.0 cycler-0.12.1 fonttools-4.49.0 kiwisolver-1.4.5 matplotlib-3.8.3 pillow-10.2.0 pyparsing-3.1.1\n", "\n", "Figure(1400x700)\n", "\n", "\n", "--------------------------------------------------------------------------------\n", + "self.reply_at_receive[sender]self.reply_at_receive[sender] True\n", + "recipitent sending assistant exitcode: 0 (execution succeeded)\n", + "Code output: \n", + "Collecting matplotlib\n", + " Downloading matplotlib-3.8.3-cp310-cp310-macosx_11_0_arm64.whl.metadata (5.8 kB)\n", + "Collecting contourpy>=1.0.1 (from matplotlib)\n", + " Using cached contourpy-1.2.0-cp310-cp310-macosx_11_0_arm64.whl.metadata (5.8 kB)\n", + "Collecting cycler>=0.10 (from matplotlib)\n", + " Using cached cycler-0.12.1-py3-none-any.whl.metadata (3.8 kB)\n", + "Collecting fonttools>=4.22.0 (from matplotlib)\n", + " Downloading fonttools-4.49.0-cp310-cp310-macosx_10_9_universal2.whl.metadata (159 kB)\n", + "\u001b[?25l \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m0.0/159.1 kB\u001b[0m \u001b[31m?\u001b[0m eta \u001b[36m-:--:--\u001b[0m\n", + "\u001b[2K \u001b[91m━━━━━━━━━━\u001b[0m\u001b[90m╺\u001b[0m\u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m41.0/159.1 kB\u001b[0m \u001b[31m1.0 MB/s\u001b[0m eta \u001b[36m0:00:01\u001b[0m\n", + "\u001b[2K \u001b[91m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[91m╸\u001b[0m\u001b[90m━\u001b[0m \u001b[32m153.6/159.1 kB\u001b[0m \u001b[31m2.1 MB/s\u001b[0m eta \u001b[36m0:00:01\u001b[0m\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m159.1/159.1 kB\u001b[0m \u001b[31m2.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[?25hCollecting kiwisolver>=1.3.1 (from matplotlib)\n", + " Using cached kiwisolver-1.4.5-cp310-cp310-macosx_11_0_arm64.whl.metadata (6.4 kB)\n", + "Requirement already satisfied: numpy<2,>=1.21 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from matplotlib) (1.26.4)\n", + "Requirement already satisfied: packaging>=20.0 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from matplotlib) (23.2)\n", + "Collecting pillow>=8 (from matplotlib)\n", + " Using cached pillow-10.2.0-cp310-cp310-macosx_11_0_arm64.whl.metadata (9.7 kB)\n", + "Collecting pyparsing>=2.3.1 (from matplotlib)\n", + " Using cached pyparsing-3.1.1-py3-none-any.whl.metadata (5.1 kB)\n", + "Requirement already satisfied: python-dateutil>=2.7 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from matplotlib) (2.8.2)\n", + "Requirement already satisfied: six>=1.5 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from python-dateutil>=2.7->matplotlib) (1.16.0)\n", + "Downloading matplotlib-3.8.3-cp310-cp310-macosx_11_0_arm64.whl (7.5 MB)\n", + "\u001b[?25l \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m0.0/7.5 MB\u001b[0m \u001b[31m?\u001b[0m eta \u001b[36m-:--:--\u001b[0m\n", + "\u001b[2K \u001b[91m━\u001b[0m\u001b[91m╸\u001b[0m\u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m0.3/7.5 MB\u001b[0m \u001b[31m7.9 MB/s\u001b[0m eta \u001b[36m0:00:01\u001b[0m\n", + "\u001b[2K \u001b[91m━━━━\u001b[0m\u001b[91m╸\u001b[0m\u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m0.9/7.5 MB\u001b[0m \u001b[31m11.2 MB/s\u001b[0m eta \u001b[36m0:00:01\u001b[0m\n", + "\u001b[2K \u001b[91m━━━━━━━━\u001b[0m\u001b[90m╺\u001b[0m\u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m1.6/7.5 MB\u001b[0m \u001b[31m14.7 MB/s\u001b[0m eta \u001b[36m0:00:01\u001b[0m\n", + "\u001b[2K \u001b[91m━━━━━━━━━━━━━━━━\u001b[0m\u001b[91m╸\u001b[0m\u001b[90m━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m3.1/7.5 MB\u001b[0m \u001b[31m21.4 MB/s\u001b[0m eta \u001b[36m0:00:01\u001b[0m\n", + "\u001b[2K \u001b[91m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[91m╸\u001b[0m\u001b[90m━━━━━━━━━\u001b[0m \u001b[32m5.8/7.5 MB\u001b[0m \u001b[31m29.7 MB/s\u001b[0m eta \u001b[36m0:00:01\u001b[0m\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m7.5/7.5 MB\u001b[0m \u001b[31m33.1 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[?25hUsing cached contourpy-1.2.0-cp310-cp310-macosx_11_0_arm64.whl (242 kB)\n", + "Using cached cycler-0.12.1-py3-none-any.whl (8.3 kB)\n", + "Downloading fonttools-4.49.0-cp310-cp310-macosx_10_9_universal2.whl (2.8 MB)\n", + "\u001b[?25l \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m0.0/2.8 MB\u001b[0m \u001b[31m?\u001b[0m eta \u001b[36m-:--:--\u001b[0m\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m2.8/2.8 MB\u001b[0m \u001b[31m81.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[?25hUsing cached kiwisolver-1.4.5-cp310-cp310-macosx_11_0_arm64.whl (66 kB)\n", + "Using cached pillow-10.2.0-cp310-cp310-macosx_11_0_arm64.whl (3.3 MB)\n", + "Using cached pyparsing-3.1.1-py3-none-any.whl (103 kB)\n", + "Installing collected packages: pyparsing, pillow, kiwisolver, fonttools, cycler, contourpy, matplotlib\n", + "Successfully installed contourpy-1.2.0 cycler-0.12.1 fonttools-4.49.0 kiwisolver-1.4.5 matplotlib-3.8.3 pillow-10.2.0 pyparsing-3.1.1\n", + "\n", + "Figure(1400x700)\n", + " None\n", "\u001b[33massistant\u001b[0m (to user_proxy):\n", "\n", - "The chart showing the year-to-date (YTD) stock price changes for META and TESLA has been successfully created and saved as `stock_price_ytd.png`. The chart should now be available in the directory where the script was executed.\n", + "The script has successfully executed, and the chart displaying the stock price change YTD for META and TESLA has been plotted and saved as `stock_price_ytd.png`.\n", + "\n", + "You should now have the file `stock_price_ytd.png` in your current directory, which contains the chart of the YTD stock price changes for both companies.\n", "\n", "TERMINATE\n", "\n", - "--------------------------------------------------------------------------------\n" + "--------------------------------------------------------------------------------\n", + "self.reply_at_receive[sender]self.reply_at_receive[sender] True\n" ] } ], "source": [ "# followup of the previous question\n", - "chat_res = user_proxy.send(\n", + "user_proxy.send(\n", " recipient=assistant,\n", " message=\"\"\"Plot a chart of their stock price change YTD and save to stock_price_ytd.png.\"\"\",\n", ")" ] }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Chat history: [{'content': 'What date is today? Compare the year-to-date gain for META and TESLA.', 'role': 'assistant'}, {'content': \"To get the current date, we can use Python's `datetime` module. After that, we will need to retrieve the year-to-date (YTD) gain for both META (Meta Platforms, Inc.) and TESLA (Tesla, Inc.). We can do this by fetching the stock prices from the beginning of the year and the current stock prices, then calculating the percentage change.\\n\\nFirst, let's write a Python script to get the current date:\\n\\n```python\\n# filename: get_current_date.py\\n\\nfrom datetime import datetime\\n\\n# Get the current date\\ncurrent_date = datetime.now()\\n\\n# Print the current date in YYYY-MM-DD format\\nprint(current_date.strftime('%Y-%m-%d'))\\n```\\n\\nPlease save the above code in a file named `get_current_date.py` and execute it to get today's date. After that, we will proceed to the next step of fetching the stock data.\", 'role': 'user'}, {'content': 'exitcode: 0 (execution succeeded)\\nCode output: \\n2024-02-05\\n', 'role': 'assistant'}, {'content': 'Great, today\\'s date is 2024-02-05. Now, let\\'s proceed to fetch the stock data for META and TESLA to compare their year-to-date gains.\\n\\nWe will use Python to fetch the stock data. For this purpose, we can use the `yfinance` library, which allows us to retrieve historical market data from Yahoo Finance. If `yfinance` is not installed, you will need to install it using `pip install yfinance`.\\n\\nHere\\'s the Python script to fetch the YTD stock data for META and TESLA and calculate their gains:\\n\\n```python\\n# filename: compare_ytd_gains.py\\n\\nimport yfinance as yf\\nfrom datetime import datetime\\n\\n# Define the tickers for Meta Platforms, Inc. and Tesla, Inc.\\ntickers = [\"META\", \"TSLA\"]\\n\\n# Define the start of the year\\nstart_of_year = datetime(datetime.now().year, 1, 1)\\n\\n# Fetch the historical data from the start of the year to the current date\\nmeta_data = yf.download(tickers[0], start=start_of_year, end=datetime.now())\\ntesla_data = yf.download(tickers[1], start=start_of_year, end=datetime.now())\\n\\n# Calculate the YTD gain for each stock\\nmeta_ytd_gain = ((meta_data[\\'Close\\'][-1] - meta_data[\\'Close\\'][0]) / meta_data[\\'Close\\'][0]) * 100\\ntesla_ytd_gain = ((tesla_data[\\'Close\\'][-1] - tesla_data[\\'Close\\'][0]) / tesla_data[\\'Close\\'][0]) * 100\\n\\n# Print the YTD gains\\nprint(f\"META YTD Gain: {meta_ytd_gain:.2f}%\")\\nprint(f\"TESLA YTD Gain: {tesla_ytd_gain:.2f}%\")\\n\\n# Compare the YTD gains\\nif meta_ytd_gain > tesla_ytd_gain:\\n print(\"META has a higher YTD gain than TESLA.\")\\nelif meta_ytd_gain < tesla_ytd_gain:\\n print(\"TESLA has a higher YTD gain than META.\")\\nelse:\\n print(\"META and TESLA have the same YTD gain.\")\\n```\\n\\nPlease save the above code in a file named `compare_ytd_gains.py` and execute it. The script will output the YTD gains for both META and TESLA and indicate which one is higher.', 'role': 'user'}, {'content': 'exitcode: 0 (execution succeeded)\\nCode output: \\nMETA YTD Gain: 37.17%\\nTESLA YTD Gain: -24.36%\\nMETA has a higher YTD gain than TESLA.\\n', 'role': 'assistant'}, {'content': 'The year-to-date (YTD) gain for META (Meta Platforms, Inc.) is 37.17%, while the YTD gain for TESLA (Tesla, Inc.) is -24.36%. This means that so far this year, META has had a higher gain compared to TESLA.\\n\\nIf you need further assistance or have more questions, feel free to ask. Otherwise, if everything is done, please let me know.\\n\\nTERMINATE', 'role': 'user'}, {'content': 'Plot a chart of their stock price change YTD and save to stock_price_ytd.png.', 'role': 'assistant'}, {'content': 'To plot a chart of the stock price changes YTD for META and TESLA and save it to a file named `stock_price_ytd.png`, we will use Python with the `matplotlib` library for plotting and `yfinance` to fetch the stock data.\\n\\nIf `matplotlib` is not installed, you will need to install it using `pip install matplotlib`.\\n\\nHere\\'s the Python script to plot the chart and save it:\\n\\n```python\\n# filename: plot_stock_price_ytd.py\\n\\nimport yfinance as yf\\nimport matplotlib.pyplot as plt\\nfrom datetime import datetime\\n\\n# Define the tickers for Meta Platforms, Inc. and Tesla, Inc.\\ntickers = [\"META\", \"TSLA\"]\\n\\n# Define the start of the year\\nstart_of_year = datetime(datetime.now().year, 1, 1)\\n\\n# Fetch the historical data from the start of the year to the current date\\nmeta_data = yf.download(tickers[0], start=start_of_year, end=datetime.now())\\ntesla_data = yf.download(tickers[1], start=start_of_year, end=datetime.now())\\n\\n# Normalize the data to compare the percentage change from the start of the year\\nmeta_normalized = (meta_data[\\'Close\\'] / meta_data[\\'Close\\'].iloc[0]) * 100\\ntesla_normalized = (tesla_data[\\'Close\\'] / tesla_data[\\'Close\\'].iloc[0]) * 100\\n\\n# Plot the data\\nplt.figure(figsize=(14, 7))\\nplt.plot(meta_normalized, label=\\'META YTD\\', color=\\'blue\\')\\nplt.plot(tesla_normalized, label=\\'TESLA YTD\\', color=\\'orange\\')\\n\\n# Add titles and labels\\nplt.title(\\'Stock Price Change YTD for META and TESLA\\')\\nplt.xlabel(\\'Date\\')\\nplt.ylabel(\\'Normalized Price (Base 100)\\')\\nplt.legend()\\n\\n# Save the plot to a file\\nplt.savefig(\\'stock_price_ytd.png\\')\\nplt.show()\\n```\\n\\nPlease save the above code in a file named `plot_stock_price_ytd.py` and execute it. The script will display a chart of the stock price changes YTD for META and TESLA and save the chart as `stock_price_ytd.png` in the current directory.', 'role': 'user'}, {'content': 'exitcode: 0 (execution succeeded)\\nCode output: \\nFigure(1400x700)\\n', 'role': 'assistant'}, {'content': 'The chart of the stock price changes YTD for META and TESLA has been successfully plotted and saved as `stock_price_ytd.png` in your current directory. You can view this image file to see the visual comparison of the stock performance for both companies since the start of the year.\\n\\nIf you have any more questions or need further assistance, feel free to ask. Otherwise, we have completed the task.\\n\\nTERMINATE', 'role': 'user'}]\n", - "Summary: None\n", - "Cost info: ({'total_cost': 0.28146, 'gpt-4': {'cost': 0.28146, 'prompt_tokens': 6642, 'completion_tokens': 1370, 'total_tokens': 8012}}, {'total_cost': 0})\n" - ] - } - ], - "source": [ - "print(\"Chat history:\", chat_res.chat_history)\n", - "print(\"Summary:\", chat_res.summary)\n", - "print(\"Cost info:\", chat_res.cost)" - ] - }, { "attachments": {}, "cell_type": "markdown", @@ -433,12 +782,12 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 5, "metadata": {}, "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAABXgAAAK8CAYAAABV1dcbAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8g+/7EAAAACXBIWXMAAA9hAAAPYQGoP6dpAACtu0lEQVR4nOzdd3gU5frG8XvTE0IaLYTee1FApAlI6KJ0UUSaYMOGRz3YwIod5SBFRUABRZqKCooUKQJSpHcMTQgtkBBCQsr8/phfNoQkkIQkk939fq5rrt19Z3b2mSTs8dz77vPaDMMwBAAAAAAAAABwOG5WFwAAAAAAAAAAyB0CXgAAAAAAAABwUAS8AAAAAAAAAOCgCHgBAAAAAAAAwEER8AIAAAAAAACAgyLgBQAAAAAAAAAHRcALAAAAAAAAAA6KgBcAAAAAAAAAHBQBLwAAAAAAAAA4KAJeAAAAAAAAAHBQBLwAAAAAAAAA4KAIeAEAAAAAAADAQRHwAgAAAAAAAICDIuAFAAAAAAAAAAdFwAsAAAAAAAAADoqAFwAAAAAAAAAcFAEvAAAAAAAAADgoAl4AAAAAAAAAcFAEvAAAAAAAAADgoAh4AQAAAAAAAMBBEfACAAAAAAAAgIMi4AUAAAAAAAAAB0XACwAAAAAAAAAOioAXAAAAAAAAABwUAS8AAAAAAAAAOCgCXgAAAAAAAABwUAS8AAAAAAAAAOCgCHgBAAAAAAAAwEER8AIAAAAAAACAgyLgBQAAAAAAAAAHRcALAAAAAAAAAA6KgBcAAAAAAAAAHBQBLwAAAAAAAAA4KAJeAAAAAAAAAHBQBLwAAAAAAAAA4KAIeAEAAAAAAADAQRHwAgAAAAAAAICDIuAFAAAAAAAAAAdFwAsAAAAAAAAADoqAFwAAAAAAAAAcFAEvAAAAAAAAADgoAl4AAAAAAAAAcFAEvAAAAAAAAADgoAh4AQAAAAAAAMBBEfACAAAAAAAAgIMi4AUAAAAAAAAAB0XACwAAAAAAAAAOioAXAAAAAAAAABwUAS8AAAAAAAAAOCgCXgAAAAAAAABwUAS8AAAAAAAAAOCgCHgBAAAAAAAAwEER8AIAAAAAAACAgyLgBQAAAAAAAAAHRcALAAAAAAAAAA6KgBcAAAAAAAAAHBQBLwAAAAAAAAA4KAJeAAAAAAAAAHBQBLwAAAAAAAAA4KAIeAEAAAAAAADAQRHwAgAAAAAAAICDIuAFAABOaeXKlbLZbJo3b54lrz99+nTZbDYdPnzYktfPjjZt2qhu3bpWl+GyYmNj9dBDDyk0NFQ2m01PP/201SXhGjabTWPGjLG6DAAAgOsi4AUAAHlmx44d6t27typUqCAfHx+VKVNG7du31//+9790x7399tv6/vvvrSkyGw4fPiybzWbf3N3dVb58efXo0UNbt261urwbiomJ0WuvvaYGDRrI399fvr6+qlu3rl544QWdOHHC6vIKRGJiourVq6cqVaro8uXLGfYfPnxYfn5+6tOnT7rf9fW2lStXZvjb8PT0VPHixdW8eXO9+OKLOnr0aLZrfPvttzV9+nQ9+uij+vrrrzVgwIC8/BFkULFiRdlsNoWHh2e6//PPP7df16ZNm+zjY8aMue7PJTIyUm3atMnWz/DqsHTPnj2y2Wzy8fHRhQsX8vXa80tOrzv1d5DZ1qlTp3TnXrNmjTp37qwyZcrIx8dH5cuXV7du3TR79ux0x9lsNo0YMSLbNU+cOFE2m01Nmza96esHAACFg4fVBQAAAOfw559/qm3btipfvryGDRum0NBQHTt2TOvXr9cnn3yiJ554wn7s22+/rd69e6t79+7WFZwN9913n7p06aLk5GTt2bNHkyZN0uLFi7V+/Xo1bNjwus8dMGCA+vXrJ29v74Ip9v/9888/Cg8P19GjR9WnTx8NHz5cXl5e2r59u6ZOnaqFCxdq//79BVqTFTw9PfXZZ5+pRYsWeuONN/T222+n2z9ixAh5eXlp/Pjxuueee9Lt++qrr7R06VJ9/fXX6cZr1aplD4tT/zZSUlJ0/vx5bdy4UR9//LE++eQTTZ06Vf369bthjcuXL9ftt9+u0aNH3+TVZp+Pj49WrFihyMhIhYaGpts3a9Ys+fj4KD4+PtPnTpo0Sf7+/hnGg4KC9NJLL+mhhx6yj23cuFHjx4/Xiy++qFq1atnH69evb78/c+ZMhYaG6vz585o3b1665zuK3Fx3w4YN9eyzz2Y4V1hYmP3+3Llzde+996phw4Z66qmnFBwcrIiICK1atUqff/657r///lzXPGvWLFWsWFF//fWXDh48qKpVq+b6XAAAoHAg4AUAAHnirbfeUmBgoDZu3KigoKB0+06fPm1NUTfp1ltv1QMPPGB/3KJFC919992aNGmSpkyZkulzLl26pCJFisjd3V3u7u4FVaokKSkpST179tSpU6e0cuVKtWzZMt3+t956S++++26B1mSlZs2a6ZFHHtEHH3yg/v37q06dOpKk+fPn6+eff9bEiRNVunTpdL9jSVq/fr2WLl2aYVySveXGtX8bknTkyBF16NBBAwcOVK1atdSgQYPr1nf69GnVrl37Jq4wvaSkJKWkpMjLyyvLY1q0aKGNGzdqzpw5euqpp+zjx48f1+rVq9WjRw/Nnz8/0+f27t1bxYsXz3Rf+/bt0z328fHR+PHj1b59e7Vp0ybD8YZhaPbs2br//vsVERGhWbNmOWTAm9PrlqQyZcpk+rd1tTFjxqh27dpav359ht/nzbyfRkRE6M8//9SCBQv08MMPa9asWQX6AQMAAMgftGgAAAB54tChQ6pTp06GcFeSSpYsab9vs9l06dIlzZgxw/7V5EGDBtn3//333+rcubMCAgLk7++vdu3aaf369RnOeeHCBT3zzDOqWLGivL29VbZsWT344IM6e/ZsljUmJCTorrvuUmBgoP78888cX+Odd94pyQxJpLQ+u3/88Ycee+wxlSxZUmXLlk2379oevIsXL1br1q1VtGhRBQQEqEmTJhm+cr1hwwZ16tRJgYGB8vPzU+vWrbV27dob1jd//nxt27ZNL730UoZwV5ICAgL01ltvZRjfvXu32rZtKz8/P5UpU0bvvfdeuv1XrlzRq6++qkaNGikwMFBFihRRq1attGLFinTHpbYv+OCDD/TZZ5+pSpUq8vb2VpMmTbRx48YMrzt37lzVrl1bPj4+qlu3rhYuXKhBgwapYsWK6Y5LSUnRxx9/rDp16sjHx0elSpXSww8/rPPnz9/wZzJ27FgVL15cjzzyiAzDUGxsrJ5++ml7+JuXKlSooOnTp+vKlSsZfoZXS+0PHRERoZ9//tn+7yD1b+X06dMaOnSoSpUqJR8fHzVo0EAzZsxId46rf9Yff/yx/We9e/fu69bo4+Ojnj17Zvib++abbxQcHKyOHTvm7uJzaO3atTp8+LD69eunfv36adWqVTp+/Hi2nrt9+3YNGjRIlStXlo+Pj0JDQzVkyBCdO3cu3XGprSUOHjyoQYMGKSgoSIGBgRo8eLDi4uLSHZuQkKBnnnlGJUqUUNGiRXX33Xdnu578cOjQITVp0iTTsP7q99OcmjVrloKDg9W1a1f17t1bs2bNupkyAQBAIcEMXgAAkCcqVKigdevWaefOnddduOvrr7/WQw89pNtuu03Dhw+XJFWpUkWStGvXLrVq1UoBAQF6/vnn5enpqSlTpqhNmzb6448/7D0jY2Nj1apVK+3Zs0dDhgzRrbfeqrNnz+rHH3/U8ePHM51lePnyZd1zzz3atGmTfv/9dzVp0iTH13jo0CFJUrFixdKNP/bYYypRooReffVVXbp0KcvnT58+XUOGDFGdOnU0atQoBQUF6e+//9aSJUvsX7levny5OnfurEaNGmn06NFyc3PTtGnTdOedd2r16tW67bbbsjz/jz/+KEk56uV6/vx5derUST179lTfvn01b948vfDCC6pXr546d+4syezp+8UXX+i+++7TsGHDdPHiRU2dOlUdO3bUX3/9laFdxezZs3Xx4kU9/PDDstlseu+999SzZ0/9888/8vT0lCT9/PPPuvfee1WvXj2NHTtW58+f19ChQ1WmTJkMNT788MOaPn26Bg8erCeffFIRERGaMGGC/v77b61du9Z+zswEBgZq/Pjx6tOnj7744gvt3r1bp06d0uLFi2Wz2bL9c8quZs2aqUqVKlq6dGmWx9SqVUtff/21nnnmGZUtW9b+df0SJUro8uXLatOmjQ4ePKgRI0aoUqVKmjt3rgYNGqQLFy6km3UrSdOmTVN8fLyGDx8ub29vhYSE3LDG+++/Xx06dNChQ4fs//Zmz56t3r17X/dnGRUVlWHMw8Mj0w91bmTWrFmqUqWKmjRporp168rPz0/ffPONnnvuuRs+d+nSpfrnn380ePBghYaGateuXfrss8+0a9curV+/PsPvtW/fvqpUqZLGjh2rLVu26IsvvlDJkiXTzWZ/6KGHNHPmTN1///1q3ry5li9frq5du+b4urIjMTEx0w+iihQpIl9fX0nm++myZct0/Phx+4dGeWHWrFnq2bOnvLy8dN9992nSpEnauHFjrt4PAQBAIWIAAADkgd9++81wd3c33N3djWbNmhnPP/+88euvvxpXrlzJcGyRIkWMgQMHZhjv3r274eXlZRw6dMg+duLECaNo0aLGHXfcYR979dVXDUnGggULMpwjJSXFMAzDWLFihSHJmDt3rnHx4kWjdevWRvHixY2///77htcSERFhSDJee+0148yZM0ZkZKSxcuVK45ZbbjEkGfPnzzcMwzCmTZtmSDJatmxpJCUlpTtH6r6IiAjDMAzjwoULRtGiRY2mTZsaly9fzrTmlJQUo1q1akbHjh3tY4ZhGHFxcUalSpWM9u3bX7fuW265xQgMDLzh9aVq3bq1Icn46quv7GMJCQlGaGio0atXL/tYUlKSkZCQkO6558+fN0qVKmUMGTLEPpb6cytWrJgRFRVlH//hhx8MScaiRYvsY/Xq1TPKli1rXLx40T62cuVKQ5JRoUIF+9jq1asNScasWbPSvf6SJUsyHc/KXXfdZQQGBhru7u7GqFGjrnvs448/bmT1n8mp1/j+++9n+fx77rnHkGRER0df93UqVKhgdO3aNd3Yxx9/bEgyZs6caR+7cuWK0axZM8Pf39+IiYlJV0dAQIBx+vTp677Ota+XlJRkhIaGGm+88YZhGIaxe/duQ5Lxxx9/2P9uN27caH/e6NGjDUmZbjVq1Mj0tebOnWtIMlasWJFh35UrV4xixYoZL730kn3s/vvvNxo0aJCt64iLi8sw9s033xiSjFWrVmWo++q/UcMwjB49ehjFihWzP966dashyXjsscfSHXf//fcbkozRo0dnqy7DuP51G4b5O8jqZzl27Fj7cVOnTjUkGV5eXkbbtm2NV155xVi9erWRnJyc4ZySjMcff/yGtW3atMmQZCxdutQwDPP9pmzZssZTTz2V7esDAACFEy0aAABAnmjfvr3WrVunu+++W9u2bdN7772njh07qkyZMvaZpdeTnJys3377Td27d1flypXt46VLl9b999+vNWvWKCYmRpLZiqBBgwbq0aNHhvNcO3svOjpaHTp00N69e7Vy5cobLo52tdGjR6tEiRIKDQ1VmzZtdOjQIb377rvq2bNnuuOGDRt2w367S5cu1cWLF/Xf//5XPj4+mda8detWHThwQPfff7/OnTuns2fP6uzZs7p06ZLatWunVatWKSUlJcvXiImJUdGiRbN9fZLk7++frh+ol5eXbrvtNv3zzz/2MXd3d/tXxVNSUhQVFaWkpCQ1btxYW7ZsyXDOe++9V8HBwfbHrVq1kiT7OU+cOKEdO3bowQcfTLdoV+vWrVWvXr1055o7d64CAwPVvn17+8/j7NmzatSokfz9/TO0icjKp59+qitXrqhcuXJ65ZVXsvWc3Eq9posXL+b4ub/88otCQ0N133332cc8PT315JNPKjY2Vn/88Ue643v16qUSJUrk6DXc3d3Vt29fffPNN5LMWZ3lypWz/56yMn/+fC1dujTdNm3atBy9tmS2KTl37ly6a7zvvvu0bds27dq164bPT53lKknx8fE6e/asbr/9dknK9O/x2lYcrVq10rlz5+zvJ7/88osk6cknn0x33NNPP529C8qhpk2bZvg5Ll26NN3PY8iQIVqyZInatGmjNWvW6I033lCrVq1UrVq1XLWXkczfc6lSpdS2bVtJ5vvOvffeq2+//VbJycl5cm0AAMAatGgAAAB5pkmTJlqwYIGuXLmibdu2aeHChRo3bpx69+6trVu3XndBqTNnziguLk41atTIsK9WrVpKSUnRsWPHVKdOHR06dEi9evXKVk1PP/204uPj9ffff9sX2cqu4cOHq0+fPnJzc1NQUJDq1Kkjb2/vDMdVqlTphudKbe9wvfYVBw4ckCQNHDgwy2Oio6PThadXCwgISBfMZkfZsmUzhOLBwcHavn17urEZM2boww8/1N69e5WYmGgfz+zay5cvn+F8kuw9c48cOSJJqlq1aobnVq1aNV1Id+DAAUVHR2fZdzS7C06VL19eJUuWVJ06ddIFhPkhNjZWknIctkvmz6ZatWpyc0s/D6NWrVr2/VfLzt9eZu6//36NHz9e27Zt0+zZs9WvX78btqy44447slxkLSdmzpypSpUqydvbWwcPHpRktmnx8/PTrFmz9Pbbb1/3+VFRUXrttdf07bffZvj9R0dHZzj+en+PAQEBOnLkiNzc3OztKlJl9l6UF4oXL67w8PAbHtexY0d17NhRcXFx2rx5s+bMmaPJkyfrrrvu0t69e3PUizc5OVnffvut2rZta+8hLplh84cffqhly5apQ4cOuboeAABgPQJeAACQ57y8vNSkSRM1adJE1atX1+DBgzV37lxLVmu/55579O233+qdd97RV199lSE4u55q1aplK4jJq8AwdXbu+++/n+VM46tnvF6rZs2a+vvvv3Xs2DGVK1cuW6+Z1cxjwzDs92fOnKlBgwape/fueu6551SyZEm5u7tr7Nix9uA6p+fMrpSUFJUsWTLLxaByOnu1IOzcuVMlS5ZUQEBAvr9Wbv/2mjZtqipVqujpp59WRESEvQd0fouJidGiRYsUHx+vatWqZdg/e/ZsvfXWW9cNm/v27as///xTzz33nBo2bCh/f3+lpKSoU6dOmc5wz8u/Ryv4+fmpVatWatWqlYoXL67XXntNixcvvu4HQddavny5Tp48qW+//Vbffvtthv2zZs0i4AUAwIER8AIAgHzVuHFjSdLJkyftY5mFNyVKlJCfn5/27duXYd/evXvl5uZmDy2rVKminTt3Zuv1u3fvrg4dOmjQoEEqWrSoJk2alJvLuGmpswN37tyZ6czVq48JCAjIVrB8rW7duumbb77RzJkzNWrUqNwXe4158+apcuXKWrBgQbrfXW4D+woVKkiSffbm1a4dq1Klin7//Xe1aNEi32fe5oV169bp0KFD6dpe5ESFChW0fft2paSkpPswYu/evfb9eeW+++7Tm2++qVq1auWodcnNWLBggeLj4zVp0qQMs4H37dunl19+WWvXrlXLli0zff758+e1bNkyvfbaa3r11Vft46mz33OjQoUKSklJ0aFDh9LN2s3svchqmb2fZsesWbNUsmRJffrppxn2LViwQAsXLtTkyZMd4t8YAADIiB68AAAgT6xYsSLTGXGp/S2vDk6KFCmiCxcupDvO3d1dHTp00A8//KDDhw/bx0+dOqXZs2erZcuW9hmRvXr1sreAuFZmNTz44IMaP368Jk+erBdeeCE3l3fTOnTooKJFi2rs2LGKj49Pty+15kaNGqlKlSr64IMP7F/zv9qZM2eu+xq9e/dWvXr19NZbb2ndunUZ9l+8eFEvvfRSjmtPnQF59c92w4YNmb5GdoSFhalu3br66quv0l3nH3/8oR07dqQ7tm/fvkpOTtYbb7yR4TxJSUkZ/o6sdOTIEQ0aNEheXl567rnncnWOLl26KDIyUnPmzLGPJSUl6X//+5/8/f3VunXrvCpXDz30kEaPHq0PP/wwz855IzNnzlTlypX1yCOPqHfv3um2//znP/L3989ytraU+d+iJH388ce5rqlz586SpPHjx+fZOW/WsmXLMh3P7P30Ri5fvqwFCxborrvuyvAz7927t0aMGKGLFy9mq1c6AAAonJjBCwAA8sQTTzyhuLg49ejRQzVr1tSVK1f0559/as6cOapYsaIGDx5sP7ZRo0b6/fff9dFHHyksLEyVKlVS06ZN9eabb2rp0qVq2bKlHnvsMXl4eGjKlClKSEjQe++9Z3/+c889p3nz5qlPnz4aMmSIGjVqpKioKP3444+aPHmyGjRokKG+ESNGKCYmRi+99JIC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l1xyiSZPntzo952fn69zzjlHaWlpWr16tf7yl7/ovvvu0/PPP+875tChQ+revbseeughJSUlNbptp6Dv6+97SYqPj9e+fft8y44dOxp9jtaOvq+/7++++24999xzmjNnjr799ltNmjRJ48aN05o1axp9ntYsVPu+srJSHo9H//u//6uRI0fWeUxsbKymTJmi5cuXa9OmTbr77rt1991317o2OBn9X3//P/nkk37X/F27dql9+/a65JJLGn2e1ixU+/7zzz/Xqaeeqrffflvr1q3TxIkTNWHCBH344Ye+Y/i+F7p9L/F9L1T7viW+7zn98//uu+/k9Xr13HPPaePGjXr88cc1d+5c3XnnnUdtd/v27brgggs0fPhwffPNN5o6daquu+46LVq0yHdMUVGR+vXrp6effrpRtQKOZwAb7N+/30gyy5YtM8YYk5ubayIiIsybb77pO2bTpk1Gklm5cmW97dx4441m+PDhtbZfeuml5u677zbTp083/fr1O2otXq/XJCUlmb/85S++bbm5uSYqKsq89tprtY6fN2+eSUhIaOAdWp555hnTrl07U1pa6tv2pz/9yfTp06fO49PS0szjjz/eqLadir6v6ftA2gsG9H1N3ycnJ5unnnrK73UXXXSRueKKKxp1DqcJlb4/3NVXX23GjBnTqGPHjRtnrrzyyoDP4RT0f/3effdd43K5TFZWVsDncIJQ7Ptq559/vpk4cWKd+/i+ZwmVvuf7Xuj2vR3f95z8+VebNWuWSU9PP2rbt99+uznppJNq1TZq1Kg6j5dk3n333aO2CTgdI3hhi7y8PElS+/btJVl/NSwvL/cb8dK3b1917dpVK1euPGo71W1Umzdvnr7//ntNnz69UbVs375d2dnZfudOSEjQwIEDj3ruxli5cqXOPvtsRUZG+raNGjVKmzdv1sGDB4+rbaei7/37vrCwUGlpaUpNTdWYMWO0cePG4zpva0bf1/R9aWlprf890+PxaMWKFcd17tYqVPr+WKxZs0aff/65hg4d2uLnbin0f/1efPFFjRw5UmlpaS1+7pYQyn1fV82hhL73r5nve6HZ93Z83wuGz78x18+VK1fW+r9lRo0aZcu/5UBrEW53AQg9Xq9XU6dO1ZlnnqmTTz5ZkpSdna3IyMhacx4lJiYqOzu7znY+//xz/eMf/9C//vUv37bMzEzdcccd+vTTTxUe3rgf7+r2ExMTG33uxsrOzlZ6enqtdqv3tWvX7rjadxr63r/v+/Tpo5deekmnnnqq8vLy9Mgjj2jw4MHauHGjunTpclznb23oe/++HzVqlB577DGdffbZ6tGjhxYvXqx33nlHlZWVx3Xu1iiU+j4QXbp00Q8//KCKigrdd999uu6661rs3C2J/q/f3r179fHHH+vVV19t0fO2lFDu+zfeeENffvmlnnvuuSZt1ynoe/++5/te6PZ9S3/fC4bPf+vWrZozZ44eeeSRBtuuq938/HwVFxfL4/E0qkYgmDCCFy3upptu0oYNG/T6668fcxsbNmzQmDFjNH36dJ1zzjmSrLnvLr/8ct1///3q3bt3na9bsGCB2rRp41s+/fTTY67hSCeddJKv3fPOO6/J2g0m9L2/QYMGacKECerfv7+GDh2qd955Rx07dgzKXwjpe39PPvmkevXqpb59+yoyMlJTpkzRxIkT5XYH3z/L9H3dPv30U3311VeaO3eunnjiCb322mtNVltrQv/X7+WXX1bbtm3rvBlbMAjVvl+6dKkmTpyoF154IWhunhco+t6/7/m+F5hg6vuW/r7n9M9/z549Ovfcc3XJJZfo97//vW/74e1OmjTp2N4YEAIYwYsWNWXKFH344Ydavny531+sk5KSVFZWptzcXL+/Lubk5NS6EcW3336rESNG6Prrr9fdd9/t215QUKCvvvpKa9as0ZQpUyRZf8U0xig8PFz//ve/9etf/1oDBw70vaZz587at2+f71zJycl+527MnUGrffTRRyovL5ck318Mk5KS/O5QWt1u9b5QQt833PcREREaMGCAtm7d2uhzOwF9X7vvO3bsqPfee08lJSX68ccflZKSojvuuEPdu3dv9LmdINT6PhDVo7xPOeUU5eTk6L777tNll10WcDutGf1fP2OMXnrpJV111VV+07kEi1Dt+2XLlmn06NF6/PHHNWHChEa3GUzo+4b7nu97llDo+5b8vuf0z3/v3r0aPny4Bg8eXOvGs998841vPT4+3ve+6vq+HR8fz+hdhC67Jv9FaPF6veamm24yKSkpZsuWLbX2V0/+/tZbb/m2fffdd7Umf9+wYYPp1KmTue2222q1UVlZadavX++3TJ482fTp08esX7/eFBYW1ltbUlKSeeSRR3zb8vLymvRmS2VlZb5t06ZNC6mbrNH3jet7Y4ypqKgwffr0MTfffHOjztHa0feN7/uysjLTo0cPM23atEado7UL1b4/XCA3Wbv//vtNWlpawOdorej/hvt/6dKlRpJZv359wG23ZqHc90uXLjWxsbG1bqhUF77vWUKx743h+54xodv3zfF9Lxg+/927d5tevXqZ8ePHm4qKika979tvv92cfPLJftsuu+wybrKGkEbAixYxefJkk5CQYDIyMsy+fft8y6FDh3zHTJo0yXTt2tUsWbLEfPXVV2bQoEFm0KBBvv3r1683HTt2NFdeeaVfG/v376/3vI25u6cxxjz00EOmbdu25v333zfr1q0zY8aMMenp6aa4uNh3zI4dO8yaNWvM/fffb9q0aWPWrFlj1qxZYwoKCuptNzc31yQmJpqrrrrKbNiwwbz++usmJibGPPfcc75jSktLfW0lJyebW2+91axZs8ZkZmY2WLcT0Pf19/39999vFi1aZLZt22ZWr15txo8fb6Kjo83GjRsbrNsJ6Pv6+/6LL74wb7/9ttm2bZtZvny5+eUvf2nS09PNwYMHG6zbCUK1740xZuPGjWbNmjVm9OjRZtiwYb7XVXvqqafMBx98YLZs2WK2bNli/vrXv5q4uDhz1113NVi3U9D/9fd/tSuvvNIMHDiwwVqdJlT7fsmSJSYmJsZMmzbNr+Yff/zRdwzf90K37/m+F7p93xLf95z++e/evdv07NnTjBgxwuzevdvv/Efz/fffm5iYGHPbbbeZTZs2maefftqEhYWZhQsX+o4pKCjw9aUk89hjj5k1a9aYHTt2NFg34EQEvGgRkupc5s2b5zumuLjY3HjjjaZdu3YmJibGjBs3zu/CPn369DrbONqop8b+w+P1es0999xjEhMTTVRUlBkxYoTZvHmz3zFXX311nedfunTpUdteu3atGTJkiImKijKdO3c2Dz30kN/+7du319nu0KFDG6zbCej7+vt+6tSppmvXriYyMtIkJiaa888/33z99dcN1uwU9H39fZ+RkWFOPPFEExUVZTp06GCuuuoqs2fPngZrdopQ7vu0tLQ6X1dt9uzZ5qSTTjIxMTEmPj7eDBgwwDzzzDOmsrKywbqdgv6vv/+Nsf4I5PF4zPPPP99grU4Tqn1f32sO/y7H973Q7Xu+74Vu37fE9z2nf/7z5s2r9z00ZOnSpaZ///4mMjLSdO/e3e89V++vq92rr766wbYBJ3IZY4wAAAAAAAAAAI4TfLfrBgAAAAAAAIAQQcALAAAAAAAAAA5FwAsAAAAAAAAADkXACwAAAAAAAAAORcALAAAAAAAAAA5FwAsAAAAAAAAADkXACwAAAAAAAAAORcALAAAAAAAAAA5FwAsAAICQcM0118jlcsnlcikiIkKJiYn61a9+pZdeekler7fR7cyfP19t27ZtvkIBAACAABDwAgAAIGSce+652rdvn7KysvTxxx9r+PDh+uMf/6gLL7xQFRUVdpcHAAAABIyAFwAAACEjKipKSUlJ6ty5s0477TTdeeedev/99/Xxxx9r/vz5kqTHHntMp5xyimJjY5Wamqobb7xRhYWFkqSMjAxNnDhReXl5vtHA9913nySptLRUt956qzp37qzY2FgNHDhQGRkZ9rxRAAAAhAwCXgAAAIS0X/7yl+rXr5/eeecdSZLb7dbs2bO1ceNGvfzyy1qyZIluv/12SdLgwYP1xBNPKD4+Xvv27dO+fft06623SpKmTJmilStX6vXXX9e6det0ySWX6Nxzz1VmZqZt7w0AAADBz2WMMXYXAQAAADS3a665Rrm5uXrvvfdq7Rs/frzWrVunb7/9tta+t956S5MmTdKBAwckWXPwTp06Vbm5ub5jdu7cqe7du2vnzp1KSUnxbR85cqTOOOMM/d///V+Tvx8AAABAksLtLgAAAACwmzFGLpdLkvSf//xHM2fO1Hfffaf8/HxVVFSopKREhw4dUkxMTJ2vX79+vSorK9W7d2+/7aWlperQoUOz1w8AAIDQRcALAACAkLdp0yalp6crKytLF154oSZPnqwZM2aoffv2WrFiha699lqVlZXVG/AWFhYqLCxMq1evVlhYmN++Nm3atMRbAAAAQIgi4AUAAEBIW7JkidavX6+bb75Zq1evltfr1aOPPiq327pdxRtvvOF3fGRkpCorK/22DRgwQJWVldq/f7/OOuusFqsdAAAAIOAFAABAyCgtLVV2drYqKyuVk5OjhQsXaubMmbrwwgs1YcIEbdiwQeXl5ZozZ45Gjx6tzz77THPnzvVro1u3biosLNTixYvVr18/xcTEqHfv3rriiis0YcIEPfrooxowYIB++OEHLV68WKeeeqouuOACm94xAAAAgp3b7gIAAACAlrJw4UIlJyerW7duOvfcc7V06VLNnj1b77//vsLCwtSvXz899thjevjhh3XyySdrwYIFmjlzpl8bgwcP1qRJk3TppZeqY8eOmjVrliRp3rx5mjBhgm655Rb16dNHY8eO1ZdffqmuXbva8VYBAAAQIlzGGGN3EQAAAAAAAACAwDGCFwAAAAAAAAAcioAXAAAAAAAAAByKgBcAAAAAAAAAHIqAFwAAAAAAAAAcioAXAAAAAAAAAByKgBcAAAAAAAAAHIqAFwAAAAAAAAAcioAXAAAAAAAAAByKgBcAAAAAAAAAHIqAFwAAAAAAAAAcioAXAAAAAAAAAByKgBcAAAAAAAAAHIqAFwAAAAAAAAAcioAXAAAAAAAAAByKgBcAAAAAAAAAHIqAFwAAAAAAAAAcioAXAAAAAAAAAByKgBcAAAAAAAAAHIqAFwAAAAAAAAAcioAXAAAAAAAAAByKgBcAAAAAAAAAHIqAFwAAAAAAAAAcioAXAAAAAAAAAByKgBcAAAAAAAAAHIqAFwAAAAAAAAAcioAXAAAAAAAAAByKgBcAAAAAAAAAHIqAFwAAAAAAAAAcioAXAAAAAAAAAByKgBcAAAAAAAAAHIqAFwAAAAAAAAAcioAXAAAAAAAAAByKgBcAAAAAAAAAHIqAFwAAAAAAAAAcioAXAAAAAAAAAByKgBcAAAAAAAAAHOr/Awsd6Lg618B2AAAAAElFTkSuQmCC", + "image/png": "iVBORw0KGgoAAAANSUhEUgAABXgAAAK8CAYAAABV1dcbAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/H5lhTAAAACXBIWXMAAA9hAAAPYQGoP6dpAADDjElEQVR4nOzdd3hUZfrG8Xtmkkz6pJGEQELvvYlIFxDEhgI2UEFsP0VXcdXV3VXXVREbyoqCimLDgoJdFAWkCEiX3iGhJJSQ3iYz5/dHyEgMSIJJTib5fq5rrsyc855znhNwJHfeeV6LYRiGAAAAAAAAAABex2p2AQAAAAAAAACAc0PACwAAAAAAAABeioAXAAAAAAAAALwUAS8AAAAAAAAAeCkCXgAAAAAAAADwUgS8AAAAAAAAAOClCHgBAAAAAAAAwEsR8AIAAAAAAACAlyLgBQAAAAAAAAAvRcALAAAAAAAAAF6KgBcAAAAAAAAAvBQBLwAAAAAAAAB4KQJeAAAAAAAAAPBSBLwAAAAAAAAA4KUIeAEAAAAAAADASxHwAgAAAAAAAICXIuAFAAAAAAAAAC9FwAsAAAAAAAAAXoqAFwAAAAAAAAC8FAEvAAAAAAAAAHgpAl4AAAAAAAAA8FIEvAAAAAAAAADgpQh4AQAAAAAAAMBLEfACAAAAAAAAgJci4AUAAAAAAAAAL0XACwAAAAAAAABeioAXAAAAAAAAALwUAS8AAAAAAAAAeCkCXgAAAAAAAADwUgS8AAAAAAAAAOClCHgBAAAAAAAAwEsR8AIAAAAAAACAlyLgBQAAAAAAAAAvRcALAAAAAAAAAF6KgBcAAAAAAAAAvBQBLwAAAAAAAAB4KQJeAAAAAAAAAPBSBLwAAAAAAAAA4KUIeAEAAAAAAADASxHwAgAAAAAAAICXIuAFAAAAAAAAAC9FwAsAAAAAAAAAXoqAFwAAAAAAAAC8FAEvAAAAAAAAAHgpAl4AAAAAAAAA8FIEvAAAAAAAAADgpQh4AQAAAAAAAMBLEfACAAAAAAAAgJci4AUAAAAAAAAAL0XACwAAAAAAAABeioAXAAAAAAAAALwUAS8AAAAAAAAAeCkCXgAAAAAAAADwUgS8AAAAAAAAAOClCHgBAAAAAAAAwEsR8AIAAAAAAACAlyLgBQAAAAAAAAAvRcALAAAAAAAAAF6KgBcAAAAAAAAAvBQBLwAAAAAAAAB4KQJeAAAAAAAAAPBSBLwAAAAos0WLFslisejTTz815fozZ86UxWLRvn37TLl+WfTr109t27Y1uwwAAADUEgS8AAAA1dzGjRs1YsQINWjQQP7+/qpXr54GDRqk//3vfyXGPf300/r888/NKbIM9u3bJ4vF4nnYbDYlJCToyiuv1Pr1680u76wyMjL0n//8Rx06dFBwcLACAgLUtm1bPfTQQzp06JDZ5VUJp9Opdu3aqUmTJsrNzS21f9++fQoMDNTIkSNL/Fn/2WPRokWl/m74+voqKipKF1xwgR555BElJiaacLcAAADewWIYhmF2EQAAADi9X375Rf3791dCQoJuuukmxcbGKikpSStWrNDu3bu1a9cuz9jg4GCNGDFCM2fOrLR6Fi1apP79+2v27NkaMWJEuY7dt2+fGjVqpOuuu05Dhw6Vy+XS1q1b9dprryk/P18rVqxQx44d//QcLpdLTqdTdrtdFovlL9xJ+ezZs0cDBw5UYmKiRo4cqV69esnPz0+//fabPvzwQ0VERGjHjh2SimbwHjt2TJs2baqy+qrS8uXL1bNnT/3jH//Q008/XWLfpZdeqqVLl2rr1q366aefSux79913NX/+fL333nsltg8aNEi5ubkl/m643W6dOHFCq1at0pw5c2SxWDRjxgxde+21lX5/AAAA3sbH7AIAAABwZk899ZQcDodWrVqlsLCwEvuOHDliTlF/UefOnTV69GjP6549e+ryyy/Xa6+9punTp5/2mOzsbAUFBclms8lms1VVqZKkwsJCXXXVVUpJSdGiRYvUq1evEvufeuopTZo0qUprMlOPHj10xx136Pnnn9eoUaPUpk0bSdJnn32mb775Rq+++qrq1q1b4s9YklasWKH58+eX2i7J03Ljj383JGn//v266KKLdNNNN6lVq1bq0KFD5dwYAACAl6JFAwAAQDW2e/dutWnTplS4K0nR0dGe5xaLRdnZ2XrnnXc8H3MfM2aMZ/+6det08cUXKzQ0VMHBwRowYIBWrFhR6pxpaWm677771LBhQ9ntdtWvX1833nijjh07dsYa8/Pzdemll8rhcOiXX34p9z1eeOGFkqS9e/dK+r3P7s8//6w777xT0dHRql+/fol9f+zB+91336lv374KCQlRaGiounXrplmzZpUYs3LlSg0ZMkQOh0OBgYHq27evli1bdtb6PvvsM23YsEH//Oc/S4W7khQaGqqnnnqq1PYtW7aof//+CgwMVL169fTss8+W2F9QUKBHH31UXbp0kcPhUFBQkHr37q2FCxeWGFfcvuD555/X66+/riZNmshut6tbt25atWpVqevOnj1brVu3lr+/v9q2bau5c+dqzJgxatiwYYlxbrdbL730ktq0aSN/f3/FxMTo9ttv14kTJ876PZk4caKioqJ0xx13yDAMZWVl6d577/WEvxWpQYMGmjlzpgoKCkp9DwEAAMAMXgAAgGqtQYMGWr58uTZt2vSnC3e99957uuWWW3TeeefptttukyQ1adJEkrR582b17t1boaGhevDBB+Xr66vp06erX79++vnnn9W9e3dJUlZWlnr37q2tW7fq5ptvVufOnXXs2DF9+eWXOnDggKKiokpdNzc3V1dccYVWr16tH3/8Ud26dSv3Pe7evVuSFBkZWWL7nXfeqTp16ujRRx9Vdnb2GY+fOXOmbr75ZrVp00YPP/ywwsLCtG7dOs2bN0/XX3+9JGnBggW6+OKL1aVLFz322GOyWq16++23deGFF2rJkiU677zzznj+L7/8UpJ0ww03lPmeTpw4oSFDhuiqq67S1VdfrU8//VQPPfSQ2rVrp4svvlhSUU/fN998U9ddd51uvfVWZWZmasaMGRo8eLB+/fXXUu0qZs2apczMTN1+++2yWCx69tlnddVVV2nPnj3y9fWVJH3zzTe65ppr1K5dO02cOFEnTpzQuHHjVK9evVI13n777Zo5c6bGjh2re+65R3v37tUrr7yidevWadmyZZ5zno7D4dCUKVM0cuRIvfnmm9qyZYtSUlL03XffVUrrjB49eqhJkyaaP39+hZ8bAADA6xkAAACotn744QfDZrMZNpvN6NGjh/Hggw8a33//vVFQUFBqbFBQkHHTTTeV2j5s2DDDz8/P2L17t2fboUOHjJCQEKNPnz6ebY8++qghyZgzZ06pc7jdbsMwDGPhwoWGJGP27NlGZmam0bdvXyMqKspYt27dWe9l7969hiTjP//5j3H06FEjOTnZWLRokdGpUydDkvHZZ58ZhmEYb7/9tiHJ6NWrl1FYWFjiHMX79u7daxiGYaSlpRkhISFG9+7djdzc3NPW7Ha7jWbNmhmDBw/2bDMMw8jJyTEaNWpkDBo06E/r7tSpk+FwOM56f8X69u1rSDLeffddz7b8/HwjNjbWGD58uGdbYWGhkZ+fX+LYEydOGDExMcbNN9/s2Vb8fYuMjDRSU1M927/44gtDkvHVV195trVr186oX7++kZmZ6dm2aNEiQ5LRoEEDz7YlS5YYkowPPvigxPXnzZt32u1ncumllxoOh8Ow2WzGww8//Kdj77rrLuNMP34U3+Nzzz13xuOvuOIKQ5KRnp5eptoAAABqC1o0AAAAVGODBg3S8uXLdfnll2vDhg169tlnNXjwYNWrV88zs/TPuFwu/fDDDxo2bJgaN27s2V63bl1df/31Wrp0qTIyMiQVtSLo0KGDrrzyylLn+eOszPT0dF100UXatm2bFi1adNbF0U712GOPqU6dOoqNjVW/fv20e/duTZo0SVdddVWJcbfeeutZ++3Onz9fmZmZ+sc//iF/f//T1rx+/Xrt3LlT119/vY4fP65jx47p2LFjys7O1oABA7R48WK53e4zXiMjI0MhISFlvj+paMG7U3vJ+vn56bzzztOePXs822w2m/z8/CQVtUtITU1VYWGhunbtqrVr15Y65zXXXKPw8HDP6969e0uS55yHDh3Sxo0bdeONNyo4ONgzrm/fvmrXrl2Jc82ePVsOh0ODBg3yfD+OHTumLl26KDg4uFSbiDOZOnWqCgoKFB8fr3//+99lOuZcFd9TZmZmpV4HAADA29CiAQAAoJrr1q2b5syZo4KCAm3YsEFz587V5MmTNWLECK1fv16tW7c+47FHjx5VTk6OWrRoUWpfq1at5Ha7lZSUpDZt2mj37t0aPnx4mWq69957lZeXp3Xr1nkW2Sqr2267TSNHjpTValVYWJjatGkju91ealyjRo3Oeq7i9g5/1r5i586dkqSbbrrpjGPS09NLhKenCg0NLRHMlkX9+vVLheLh4eH67bffSmx755139MILL2jbtm1yOp2e7ae794SEhFLnk+Tpmbt//35JUtOmTUsd27Rp0xKh8c6dO5Wenl6ij/OpyrqAX0JCgqKjo9WmTRsFBASU6ZhzlZWVJUnlDtsBAABqOgJeAAAAL+Hn56du3bqpW7duat68ucaOHavZs2frscceq/JarrjiCn300Ud65pln9O6778pqLfsHw5o1a6aBAweedVxFBYbFs3Ofe+65M840PnXG6x+1bNlS69atU1JSkuLj48t0zTPNPDYMw/P8/fff15gxYzRs2DA98MADio6Ols1m08SJEz3BdXnPWVZut1vR0dH64IMPTru/Tp065T5nZdu0aZOio6MVGhpqdikAAADVCgEvAACAF+ratask6fDhw55tp1vcqk6dOgoMDNT27dtL7du2bZusVqsntGzSpIk2bdpUpusPGzZMF110kcaMGaOQkBC99tpr53Ibf1nxQnKbNm067czVU8eEhoaWKVj+o8suu0wffvih3n//fT388MPnXuwffPrpp2rcuLHmzJlT4s/uXAP7Bg0aSJJ27dpVat8ftzVp0kQ//vijevbsWekzbyvC8uXLtXv37hJtLwAAAFCEHrwAAADV2MKFC087Q/Pbb7+VpBKtF4KCgpSWllZinM1m00UXXaQvvvhC+/bt82xPSUnRrFmz1KtXL8+MyOHDh3taQPzR6Wq48cYbNWXKFE2bNk0PPfTQudzeX3bRRRcpJCREEydOVF5eXol9xTV36dJFTZo00fPPP+/5mP+pjh49+qfXGDFihNq1a6ennnpKy5cvL7U/MzNT//znP8tde/GM3FO/tytXrjztNcoiLi5Obdu21bvvvlviPn/++Wdt3LixxNirr75aLpdL//3vf0udp7CwsNTfIzPt379fY8aMkZ+fnx544AGzywEAAKh2mMELAABQjd19993KycnRlVdeqZYtW6qgoEC//PKLPv74YzVs2FBjx471jO3SpYt+/PFHvfjii4qLi1OjRo3UvXt3Pfnkk5o/f7569eqlO++8Uz4+Ppo+fbry8/P17LPPeo5/4IEH9Omnn2rkyJG6+eab1aVLF6WmpurLL7/UtGnT1KFDh1L1jR8/XhkZGfrnP/8ph8OhRx55pEq+L8VCQ0M1efJk3XLLLerWrZuuv/56hYeHa8OGDcrJydE777wjq9WqN998UxdffLHatGmjsWPHql69ejp48KAWLlyo0NBQffXVV2e8hq+vr+bMmaOBAweqT58+uvrqq9WzZ0/5+vpq8+bNmjVrlsLDw/XUU0+Vq/ZLL71Uc+bM0ZVXXqlLLrlEe/fu1bRp09S6devTBtFl8fTTT+uKK65Qz549NXbsWJ04cUKvvPKK2rZtW+Kcffv21e23366JEydq/fr1uuiii+Tr66udO3dq9uzZevnllzVixIhzquGvWLt2rd5//3253W6lpaVp1apV+uyzz2SxWPTee++pffv2VV4TAABAdUfACwAAUI09//zzmj17tr799lu9/vrrKigoUEJCgu68807961//UlhYmGfsiy++qNtuu03/+te/lJubq5tuukndu3dXmzZttGTJEj388MOaOHGi3G63unfvrvfff1/du3f3HB8cHKwlS5boscce09y5c/XOO+8oOjpaAwYMUP369c9Y4yOPPKL09HRPyHvXXXdV5reklHHjxik6OlrPPPOM/vvf/8rX11ctW7bUfffd5xnTr18/LV++XP/973/1yiuvKCsrS7Gxserevbtuv/32s16jadOmWr9+vSZPnqy5c+fq888/l9vtVtOmTXXLLbfonnvuKXfdY8aMUXJysqZPn67vv/9erVu31vvvv6/Zs2dr0aJF5T6f9Hs7iccff1z/+Mc/1KxZM82cOVPvvPOONm/eXGLstGnT1KVLF02fPl2PPPKIfHx81LBhQ40ePVo9e/Y8p+v/VR9++KE+/PBD+fj4KDQ0VM2aNdO9996rO+64o9QicwAAAChiMc5lVQYAAAAAXqNjx46qU6eO5s+fb3YpAAAAqGD04AUAAABqCKfTqcLCwhLbFi1apA0bNqhfv37mFAUAAIBKxQxeAAAAoIbYt2+fBg4cqNGjRysuLk7btm3TtGnT5HA4tGnTJkVGRppdIgAAACoYPXgBAACAGiI8PFxdunTRm2++qaNHjyooKEiXXHKJnnnmGcJdAACAGooZvAAAAAAAAADgpejBCwAAAAAAAABeioAXAAAAAAAAALwUPXjhldxutw4dOqSQkBBZLBazywEAAAAAAKgQhmEoMzNTcXFxslqZm4mzI+CFVzp06JDi4+PNLgMAAAAAAKBSJCUlqX79+maXAS9AwAuvFBISIqnozS40NNTkagAAAAAAACpGRkaG4uPjPdkHcDYEvPBKxW0ZQkNDCXgBAAAAAECNQ0tKlBWNPAAAAAAAAADASxHwAgAAAAAAAICXIuAFAAAAAAAAAC9FD17UaC6XS06n0+wyagxfX1/ZbDazywAAAAAAAMBJBLyokQzDUHJystLS0swupcYJCwtTbGwszd4BAAAAAACqAQJe1EjF4W50dLQCAwMJIyuAYRjKycnRkSNHJEl169Y1uSIAAAAAAAAQ8KLGcblcnnA3MjLS7HJqlICAAEnSkSNHFB0dTbsGAAAAAAAAk7HIGmqc4p67gYGBJldSMxV/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LwAAAAAAAKotl9vQ/bM36OvfDsvXZtFrozurf4tos8sCqg0CXqAasFgsf/p4/PHHJUlz587V+eefL4fDoZCQELVp00b33nuv5zwzZ85UWFhYma7ZsmVL2e12JScnV/wNAQAAAABQAVxuQw/M3qAv1h+Sj9Wiqdd31oBWMWaXBVQrBLxANXD48GHP46WXXlJoaGiJbX//+9/1008/6ZprrtHw4cP166+/as2aNXrqqafkdDrLfb2lS5cqNzdXI0aM0DvvvFMJdwQAAAAAwF/jdht66LPfNGfdQdmsFr1yfSdd1CbW7LKAasfH7AIASLGxv/8PyuFwyGKxlNgmSV999ZV69uypBx54wLOtefPmGjZsWLmvN2PGDF1//fXq27ev/va3v+mhhx4659oBAAAAAKhobrehh+ds1KdrDshmtWjKtZ00pG1ds8sCqiVm8AJeIjY2Vps3b9amTZv+0nkyMzM1e/ZsjR49WoMGDVJ6erqWLFlSQVUCAAAAAPDXuN2G/vn5Jn28OklWi/TSNR11SXvCXeBMmMGL2sEwJGdO1V/XN1CyWCrkVHfffbeWLFmidu3aqUGDBjr//PN10UUXadSoUbLb7WU+z0cffaRmzZqpTZs2kqRrr71WM2bMUO/evSukTgAAAAAAzpVhGHr0y0368NdEWS3S5Gs66rIOcWaXBVRrBLyoHZw50tMm/A/hkUOSX1CFnCooKEjffPONdu/erYULF2rFihW6//779fLLL2v58uUKDAws03neeustjR492vN69OjR6tu3r/73v/8pJCSkQmoFAAAAAKC8DMPQf77aovdXJMpikZ4b0UFXdKxndllAtUeLBsDLNGnSRLfccovefPNNrV27Vlu2bNHHH39cpmO3bNmiFStW6MEHH5SPj498fHx0/vnnKycnRx999FElVw4AAAAAwOkZhqH/fr1VM3/ZJ4tFmjS8vYZ3qW92WYBXYAYvagffwKLZtGZctxI1bNhQgYGBys7OLtP4GTNmqE+fPpo6dWqJ7W+//bZmzJihW2+9tTLKBAAAAADgjAzD0MTvtumtZXslSROvbKeru8abXBXgPQh4UTtYLBXWKsEsjz/+uHJycjR06FA1aNBAaWlpmjJlipxOpwYNGuQZ53K5tH79+hLH2u12NW3aVO+9956eeOIJtW3btsT+W265RS+++KI2b97s6c0LAAAA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yMjIcns0Llq0SB9//LG+/fbb4nWbNm3SE088oZ9++kl+fhV7CxQdPzIyssLPXVEpKSmKj48vddyibfXq1Tut46NiGHPuY+7GG2/UgQMH1K1bN1mWpby8PN1zzz20aKhE3jTmKiI6OlqTJk3SX/7yF2VnZ+s///mPLrroIi1ZskSdOnWq8uf3Bt485qZNm6ZffvlFb775Zrn7PP7444qJiTlpGxHgVNSG99/mzZv16quvaty4cSc9dlnHTU9P19GjRxUcHFyhGnF6GHPuY+6JJ55Qenq6WrVqJV9fX+Xn5+uFF17QTTfdVKH6cXLeNOYqIiEhQe+8847at2+vtLQ0jRs3TomJiVqzZo3OPPPM0z4+cDxm8KJGuv/++7V69Wp99NFHp3yM1atXa8CAARo5cqR69eolyfSBvPHGGzVq1Ci1bNmyzMe9//77qlOnTvHy008/nXINx2vTpk3xcfm0uGZhzLmbN2+eXnzxRb3++utavny5PvvsM3377bd67rnnKq02b8eYc5eQkKC7775bnTt3VmJiot555x0lJiZqwoQJlVabt/PWMTd37lzddttteuutt9SmTZsyj/HSSy/po48+0ueff84FUFAlnP7+2717t/r06aNrr71Wf/3rX4vXH3vce+6559ReGKoEY87dtGnT9P777+uDDz7Q8uXLNXXqVI0bN05Tp071uDaUjTHnrmvXrho8eLA6duyoHj166LPPPlPDhg1P+GEzcDqYwYsa54EHHtA333yjH3/80e2TraioKOXk5Cg1NdXtE8C9e/eWuvDY2rVr1bNnT9111116+umni9cfPnxYv/76q1asWKEHHnhAkvmk0bIs+fn56fvvv9cVV1yhLl26FD+mcePGSk5OLn6u6Ohot+euyNU7i3z33XfKzc2VpOLZC1FRUW5XES06btE2VD3GXOkxN2LECN1yyy268847JUnt2rVTRkaG7rrrLj311FPy8eHzwdPhbWPuVJ133nlasGDBaR0DhreOufnz56t///6aMGGCBg8eXObjx40bp5deekmzZs1S+/btK/y8QEU5/f23Z88eXXzxxUpMTHS7IKskrVy5svh2eHh48esq698Z4eHhzN6tJoy50mPuscce0xNPPKFBgwZJMv+23b59u0aPHq0hQ4aU/8tEhXjbmDsV/v7+Ouecc7R58+ZTPgZwQva1/wXcFRQUWPfff78VExNjbdy4sdT2ogbtn376afG69evXl2rQvnr1aqtRo0bWY489VuoY+fn51qpVq9yWe++910pISLBWrVplHTlypNzaoqKirHHjxhWvS0tLq9QLXuXk5BSvGz58OBdZqwaMufLHXKdOnaxhw4a5Pe6DDz6wgoODrby8vAo9D0rz1jF3rPIuslaWpKQk66qrrvL4OVDCm8fc3LlzrdDQUOu1114rd58xY8ZY4eHhJ7zQC3CqasP7b9euXVaLFi2sQYMGVfjv/2HDhllt27Z1W3fDDTdwkbVqwJgrcfyYq1+/vvX666+77fPiiy9aLVq0qNBzoGzeOuaOVd5F1o6Xl5dnJSQkWA8//LDHzwFUBAEvaox7773XioiIsObNm2clJycXL5mZmcX73HPPPVZcXJw1Z84c69dff7W6du1qde3atXj7qlWrrIYNG1o333yz2zH27dtX7vNW5AqclmVZL730klW3bl3ryy+/tH7//XdrwIABVnx8vHX06NHifbZv326tWLHCGjVqlFWnTh1rxYoV1ooVK6zDhw+Xe9zU1FQrMjLSuuWWW6zVq1dbH330kRUSEmK9+eabxftkZ2cXHys6Otp69NFHrRUrVlibNm06ad0oH2Ou/DE3cuRIKywszPrwww+tLVu2WN9//73VvHlz67rrrjtp3Sift445y7KsNWvWWCtWrLD69+9vXXTRRcWPKzJhwgTriy++sDZt2mStWrXKeuihhywfHx9r1qxZJ60b5fPWMTdnzhwrJCTEGj58uFvNBw8edHvugIAA69NPP3Xb52RjGagop7//du3aZZ111llWz549rV27drk9/4ls2bLFCgkJsR577DFr3bp11r/+9S/L19fXmjFjRvE+hw8fLn4vS7LGjx9vrVixwtq+fftJ60b5GHPlj7khQ4ZYjRs3tr755htr69at1meffWadccYZpSY0wDPeOuYsyyo+h3Xu3Nm68cYbrRUrVlhr1qwp3j5q1Chr5syZ1h9//GEtW7bMGjRokBUUFOS2D1CZCHhRY0gqc5k8eXLxPkePHrXuu+8+q169elZISIh11VVXuZ18R44cWeYxmjRpUu7zVvQvh4KCAmvEiBFWZGSkFRgYaPXs2dPasGGD2z5Dhgwp8/nnzp17wmP/9ttvVrdu3azAwECrcePG1ksvveS2fevWrWUet0ePHietG+Vj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", "text/plain": [ "" ] @@ -469,7 +818,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 6, "metadata": {}, "outputs": [], "source": [ @@ -516,7 +865,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 7, "metadata": {}, "outputs": [ { @@ -529,6 +878,9 @@ "If you suggest code, the code will be executed in IPython.\n", "\n", "--------------------------------------------------------------------------------\n", + "self.reply_at_receive[sender]self.reply_at_receive[sender] True\n", + "recipitent sending assistant Plot a chart of META and TESLA stock price gain YTD\n", + "If you suggest code, the code will be executed in IPython. None\n", "\u001b[33massistant\u001b[0m (to ipython_user_proxy):\n", "\n", "To plot a chart of META (Facebook's parent company, Meta Platforms, Inc.) and TESLA (Tesla, Inc.) stock price gain year-to-date (YTD), we can use Python with libraries such as `pandas` for data manipulation and `matplotlib` or `plotly` for plotting. We will also use `yfinance` to fetch historical stock data.\n", @@ -576,13 +928,14 @@ "This code will install `yfinance`, fetch the YTD stock data for META and TESLA, calculate the YTD gain, and plot it on a chart. Please execute the code in your IPython environment.\n", "\n", "--------------------------------------------------------------------------------\n", + "self.reply_at_receive[sender]self.reply_at_receive[sender] True\n", "\u001b[31m\n", ">>>>>>>> EXECUTING CODE BLOCK 0 (inferred language is python)...\u001b[0m\n" ] }, { "data": { - "image/png": "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822bO+4///zTAIwZM2bkWb9w4cICl19o27ZtBmA89dRT+dYlJiYaJ0+edHxdWJqY+zN7oQkTJhgmk8k4dOhQvntyodxncP/+/fnG8dFHHxU61gv9+OOPBmD4+/sbkZGRBY4n16WWmOWaM2eOARgffPBBicYmIiJyMWUQiYiIFGPIkCGcO3eO+fPnc+bMGebPn19sednNN9/M4sWL830VloFRlBkzZjBgwABHWU2DBg1o06ZNiUqkevToQWBgILNmzXIsO336NIsXL+bOO+90LPPz8yMuLq5EGTWXo3379gXel9zsKIAHHniAhQsX0q1bN1auXMn48ePp0qULDRo0YPXq1Zd03hkzZhAcHOy4/yaTiTvvvJPvvvsOq9Va7P7Tpk3j448/JiIigjlz5vDss8/SuHFjbrzxRo4ePVrs/kuWLCErK4unnnoqT3nRyJEj8fX15ZdffgFgy5YtxMbG8tRTT+Hn55fnGAU1jv7999/p06cPN954I7Nnzy60aXpBGjVqRI0aNYiIiOCRRx6hfv36/PLLL3h6ejq2cXNzK7BE8WI//fQTgYGB/OMf/8i3LnfcP/zwA9WqVaNXr155ssfatGmDt7c3v//+e6HHz51draDMqMjISGrUqOH4+t///udYd2GD6LS0NE6dOkWnTp0wDIMtW7YUe109e/bM0yS6efPm+Pr6lni2tNtuu43+/fuTlJTEJ598kmc8ZS333pw5c6bcziEiIpWbZjETEREpRo0aNejZsyczZ84kPT0dq9XK7bffXuQ+YWFh9OzZ87LPvWvXLrZs2cLw4cPZv3+/Y3m3bt345JNPSE1NxdfXt9D9nZ2due2225g5cyaZmZm4ubkxe/ZsLBZLngDRCy+8wJIlS7juuuuoX78+vXv35u677y6w787lCAwMLNF96dOnD3369CE9PZ1NmzYxa9YsPvvsMwYOHMju3btL1YvIarXy3Xff0b17d0d/HbAHq9555x2WLl1K7969izyG2Wxm9OjRjB49msTERFatWsVnn33GggULGDp0KH/++WeR+x86dAiwB2Uu5OrqSmRkpGN9bplX06ZNi72ujIwMBgwYQJs2bfj+++9xdi7dn3U//fQTvr6+uLi4EBYWlicQkqtWrVoF9oK6WExMDI0aNSpyDPv27SMlJaXQf7uEhIRC980NjhbUW+nnn3/GYrGwbdu2PD21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ErJUYlYo3RERERERERERqRKybSoxK4zuiIiIiIiIiIhUCRarSswKowCRiIiIiIiIiFQJKjErnO6IiIiIiIiIiFQJKjErnO6IiIiIiIiIiFQJlmyVmBVGASIRERERERERqRLO9yBSOORiuiMiIiIiIiIiUiVYVGJWKN0REREREREREakSckvMnFVilo8CRCIiIiIiIiJSJeSWmLkqgygf3RERERERERERqRJyS8yczQqHXEx3RERERERERESqBMcsZs4qMbuYAkQiIiIiIiIiUiWoxKxwuiMiIiIiIiIiUiWcLzFTBtHFFCASERERERERkSrhfImZwiEXq9A7MmHCBNq1a4ePjw9BQUHccsst7NmzJ8823bp1w2Qy5fl69NFH82xz+PBhBgwYgKenJ0FBQTz33HNkZ2dfyUsRERERERERkatcdk4GkYtKzPJxrsiTL1++nNGjR9OuXTuys7N56aWX6N27Nzt37sTLy8ux3ciRI3nttdcc7z09PR2vrVYrAwYMICQkhNWrV3P8+HGGDx+Oi4sLb7755hW9HhERERERERG5euX2IHJxUonZxSo0QLRw4cI876dPn05QUBCbNm2ia9eujuWenp6EhIQUeIxFixaxc+dOlixZQnBwMC1btmT8+PG88MILjB07FldX13K9BhERERERERG5NmTllpgpgyifCg0QXSwlJQUAf3//PMtnzJjBN998Q0hICIMGDeJf//qXI4tozZo1NGvWjODgYMf2ffr04bHHHmPHjh20atUq33kyMzPJzMx0vE9NTQXAYrFgsVjK/LrKWu4Yr4WxytVLz5GUFz1bUh70XMmVoOdMyoueLSkPeq4uTW4Gkdkwqsy9K+l1mgzDMMp5LCVis9m46aabSE5OZuXKlY7lkydPpk6dOtSsWZO//vqLF154geuuu47Zs2cD8PDDD3Po0CF+++03xz7p6el4eXnx66+/0q9fv3znGjt2LOPGjcu3fObMmXnK10RERERERESk8nj7LyeOpJl4OMpKk+pXRTik3KWnp3P33XeTkpKCr69vodtdNRlEo0ePZvv27XmCQ2APAOVq1qwZoaGh3HjjjcTExFCvXr1LOteLL77IM88843ifmppKeHg4vXv3LvJmXS0sFguLFy+mV69euLi4VPRw5Bql50jKi54tKQ96ruRK0HMm5UXPlpQHPVeX5tMDqyHtLB3bX8f19QMqejhXRG7VVHGuigDR448/zvz581mxYgVhYWFFbtu+fXsA9u/fT7169QgJCWH9+vV5tjlx4gRAoX2L3NzccHNzy7fcxcXlmvrButbGK1cnPUdSXvRsSXnQcyVXgp4zKS96tqQ86LkqneycpCEPt6pz30p6nRXalckwDB5//HHmzJnDsmXLiIiIKHafrVu3AhAaGgpAx44d+fvvv0lISHBss3jxYnx9fYmOji6XcYuIiIiIiIjItUezmBWuQjOIRo8ezcyZM/n555/x8fEhPj4egGrVquHh4UFMTAwzZ86kf//+BAQE8Ndff/H000/TtWtXmjdvDkDv3r2Jjo5m2LBhvPXWW8THx/PKK68wevToArOERERERERERKRqsmgWs0JV6B359NNPSUlJoVu3boSGhjq+Zs2aBYCrqytLliyhd+/eREVFMWbMGG677TbmzZvnOIaTkxPz58/HycmJjh07cu+99zJ8+HBee+21irosEREREREREbkKWWz2GjNnswJEF6vQDKLiJlALDw9n+fLlxR6nTp06/Prrr2U1LBERERERERGphHJLzFydVWJ2MYXMRERERERERKRKyLbaE1VUYpaf7oiIiIiIiIiIVAlZORlEzgoQ5aM7IiIiIiIiIiJVgmYxK5wCRCIiIiIiIiJS6VltBrmtkF2VQZSP7oiIiIiIiIiIVHq52UOgErOC6I6IiIiIiIiISKWXdUGASCVm+SlAJCIiIiIiIiKVXu4MZgAuZoVDLqY7IiIiIiIiIiKVXm6JmZPZhNmsDKKLKUAkIiIiIiIiIpVeVrZmMCuKAkQiIiIiIiIiUull2+wlZi5qUF0g3RURERERERERqfRyS8wUICqY7oqIiIiIiIiIVHoqMSuaAkQiIiIiIiIiUunllpg5awazAumuiIiIiIiIiEill1ti5uqsUEhBdFdEREREREREpNI734NIJWYFUYBIRERERERERCo9i1UlZkXRXRERERERERGRSs+S26RaJWYF0l0RERERERERkUov25bTg0glZgVSgEhEREREREREKr0slZgVSXdFRERERERERCo9lZgVTXdFRERERERERCo9lZgVTQEiEREREREREan0VGJWNN0VEREREREREan0VGJWNN0VEREREREREan0ckvMXFRiViAFiERERERERESk0rPklJi5qMSsQLor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MGzqOg4nppdo3+V7T5KUlkWgtxsjOtUt03FJ5aMSMxEREREREZFSMAyDB77cwIGTaTQI8iYtMxuAwa3CyuV8Xm7OTBvRjjsnrWXPiTPcM3Ut3z7Yrtj95myxl73d0rImzk7KD5Gi6QkRERERERERKYU9J85w4KS9CfW+hLMcS8nAw8WJvk1Dyu2cfp6ufP3gddT29+RI0jke+HIzaZbCt09Jt7BkZwIAg1uXT+BKKhcFiERERERERERKYcnOEwB0jAzg7va1MZlgeKc6eLmVb5FOkK873zzYniAfN/YmnGXSbidH9tLF5v99jCyrjagQH6Jr+pbruKRyUIBIREREREREpBQW5wSIbmpZkzdvbcbu8X35Z9+oK3Lu2gGefP1ge6p5OHPorIlR324lM9uab7s5m+19kQa3rnVFxiXXPgWIREREREREREroRGoG2+JSMJngxsZBgL2RtMlkumJjaBTiw+fDWuNqNlgdk8ST324l22pzrN+fcJaNh05jNsHNLRUgkpJRgEhERERERESkhHKzh1qG+xHk415h42gZ7sdDjWy4OJlYuCOel+b8jWEY2GwGL835G4AeUUEE+1bcGOXaolnMREREREREREooN0DUKzq4gkcCjfwM3rujOU/M2sb3G+PwdXchrLoH62OT8HR14t+DmlT0EOUaogwiERERERERkRI4m5nNmphEAHo1rvgAEUCfJsH857bmAHy+Mpbxv+wC4MV+UYT7e1bk0OQaowCRiIiIiIiISAn8vPUoWVYbdQM8qR/kXdHDcRjSNpxXBjQGwGoz6BgZwD3t61TwqORaoxIzERERERERkWKkZWbz/pJ9ANzXqe4VbUpdEg91icRsMrF870neuLUpZvPVNT65+ilAJCIiIiIiIlKMz/+M5eSZTGr7e1612TkPXB/BA9dHVPQw5BqlEjMREREREREpMZvNqOghXHEnz2QyaUUMAM/3bYSrsz5KS+Wjp1pERERERERKZNaGwzR+dSGTlsdU9FCuqA+W7iU9y0qLsGoMaBZa0cMRKRcKEImIiIiIiEixbDaDT36PITPbxoQFu3nz110YRuXPJoo5eZZv1x8B4MX+ja+63kMiZUUBIhEREREREcln9uY4+n/wJ8v3ngRg7YFEDiel4+pk/xg5ecUBnv/xL7KttoocZrl7a+FurDaDno2D6BAZUNHDESk3ChCJ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3apmzWr31Z7vhrgRziCyg8mTJystLU2rV6+u8zrS0tL00EMPKS4uTkOGDKm2fOvWrdq9e7eWLVumRYsWadWqVZKklStXys/Pr/K1devWOtcAx3LmHL3wwgtKTU3Vl19+KXd3d40bN07GmDrvB2zLWbMVGxur+++/X926dVNMTIwWLFigJUuWqLi4uM77Adty1mxVOHv2rL744gs9+eSTda4f9uWMGevSpYveffddLViwQL6+vgoLC1P79u0VGhpa5awiOJYzZgvOwV7ZKisr06OPPqrZs2erU6dO1/0c2cItc/Q1bk3N5MmTTbt27czx48erjCclJV33uuCIiAiTkJBQZezgwYOmVatW5qWXXqrVNl999VXTqVMnY4wxeXl5Jj09vfJVWFhojh07dt3rlu+77z4zderUauvjOlPHawo5qnDmzBkjySQnJ9eqDthXU8pWWlqakWQOHz5cqzpgX00hW3PmzDEhISHcM62RagoZy8zMNPn5+aagoMC4ubmZjz76qFZ1wL4aY7auxT2InJc9s3X58mUjybi7u1e+LBZL5VhSUhLfDXHLaBDZiNVqNZMnTzZt2rQxR48erba84kZkn3zySeXY4cOHq92ILC0tzbRq1cq88MILtd727NmzTWRk5A1rCwsLM3/9618rx3Jzc7kRWSPUlHJU4dSpU0aS2bx5c61rge01xWytWLHCuLm5mUuXLtW6FtheU8mW1Wo17du3N88991ytt4+G0VQydq3ly5cbX19fvsw7WGPO1rVoEDmfhshWWVmZOXDgQJXXxIkTTefOnc2BAwdqfNIr3w1xIzSIbGTixIkmICDAbNmypcqjcq/9F4CYmBgTERFhNm3aZHbv3l3t8d8HDhwwISEhZuzYsVXWkZ2dXTln6dKlZt26debo0aPm6NGj5h//+Idp0aKFefnll29Y37x580xgYKBZu3at2b9/v3nooYeqPcrw1KlTJjU11cyePdv4+fmZ1NRUk5qaavLz8214pHAjzp6jb7/91ixZssSkpqaakydPmqSkJBMdHW1uv/12U1RUZOOjhVvh7NlKTk42CxcuNHv37jXHjh0zK1asMCEhIWbcuHE2PlK4Vc6erQobN240ksyhQ4dsdGRgK00hY0uWLDEpKSnmyJEjZunSpcbHx8e8/vrrNjxKqIvGnq2LFy+a1NRUs379eiPJrF692qSmppqMjIzKORkZGSY1NdW89dZbRpL55ptvTGpqqrl48aINjxRuVUNl6+dq8xQzY/huiJrRILIRSdd9JSYmVs65cuWKmTRpkmnZsqXx9fU1o0aNqvIHPi4u7rrruPZfFxYvXmy6dOlifH19jb+/v+nZs6d54403qjw69XqsVqv505/+ZEJDQ42Xl5f51a9+ZY4cOVJlzvjx46+7fc78aDjOnqP9+/ebgQMHmqCgIOPl5WWioqJMTEyMOXv2rM2OEerG2bOVkpJi+vbtawICAoy3t7e58847zdy5c2k8NgLOnq0KY8aMMdHR0fU+HrC9ppCxxx9/3AQFBRlPT0/TrVs3895779nk2KB+Gnu2EhMTr7vuuLi4m27/2n1Aw2uobP1cbRtEfDdETSzGcOdYAAAAAAAAV8ajEwAAAAAAAFwcDSIAAAAAAAAXR4MIAAAAAADAxdEgAgAAAAAAcHE0iAAAAAAAAFwcDSIAAAAAAAAXR4MIAAAAAADAxdEgAgAAAAAAcHE0iAAAAAAAAFwcDSIAAIA6eOKJJ2SxWGSxWOTh4aHQ0FANHjxYb7/9tqxWa63X88477ygwMNB+hQIAANQCDSIAAIA6GjZsmDIyMnTy5El9/vnnGjhwoJ555hkNHz5cpaWlji4PAACg1mgQAQAA1JGXl5fCwsLUtm1b9erVSy+99JLWrl2rzz//XO+8844kKSEhQXfffbeaN2+u8PBwTZo0SQUFBZKkLVu2aMKECcrNza08G2nWrFmSpOLiYj3//PNq27atmjdvrr59+2rLli2O2VEAANDk0SACAACwoQceeEDdu3fXmjVrJElubm5avHixDh48qHfffVebNm3Siy++KEmKjo7WokWL5O/vr4yMDGVkZOj555+XJE2ZMkU7duzQ6tWrtX//fj3yyCMaNmyY0tPTHbZvAACg6bIYY4yjiwAAAHA2TzzxhHJycvTpp59WW/a73/1O+/fv1/fff19t2SeffKKYmBhduHBBUvk9iKZNm6acnJzKOadPn1aHDh10+vRptWnTpnJ80KBBuueeezR37lyb7w8AAHBtzRxdAAAAQFNjjJHFYpEkbdy4UfHx8Tp8+LDy8vJUWlqqoqIiFRYWytfX97qfP3DggMrKytSpU6cq48XFxQoODrZ7/QAAwPXQIAIAALCxQ4cOqX379jp58qSGDx+uiRMn6rXXXlNQUJC2bdumJ598UlevXq2xQVRQUCB3d3elpKTI3d29yjI/P7+G2AUAAOBiaBABAADY0KZNm3TgwAE9++yzSklJkdVq1YIFC+TmVn7rx48++qjKfE9PT5WVlVUZ69mzp8rKypSdna0BAwY0WO0AAMB10SACAACoo+LiYmVmZqqsrExZWVnasGGD4uPjNXz4cI0bN05paWkqKSnRkiVL9Nvf/lbbt2/XsmXLqqwjKipKBQUFSkpKUvfu3eXr66tOnTrpscce07hx47RgwQL17NlT58+fV1JSkrp166YHH3zQQXsMAACaKp5iBgAAUEcbNmxQ69atFRUVpWHDhmnz5s1avHix1q5dK3d3d3Xv3l0JCQn685//rK5du2rlypWKj4+vso7o6GjFxMRo9OjRCgkJ0V/+8hdJUmJiosaNG6fnnntOnTt31siRI7Vr1y5FREQ4YlcBAEATx1PMAAAAAAAAXBxnEAEAAAAAALg4GkQAAAAAAAAujgYRAAAAAACAi6NBBAAAAAAA4OJoEAEAAAAAALg4GkQAAAAAAAAujgYRAAAAAACAi6NBBAAAAAAA4OJoEAEAAAAAALg4GkQAAAAAAAAujgYRAAAAAACAi/v/58dvYBN343YAAAAASUVORK5CYII=", + "image/png": "iVBORw0KGgoAAAANSUhEUgAABJgAAAJwCAYAAADFk9tlAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/H5lhTAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdd1yV9fvH8dc5cNggogwHIG5x59acKZqjoWW2zHap7fW1aVnZt1/btNKvaUObjsrU3Jq5zb33RlyAgMDhnPv3x4GjBCjIwQP2fj4e58E59/zc53wgz9V1XbfJMAwDERERERERERGRy2R29wBERERERERERKRsU4BJRERERERERESKRQEmEREREREREREpFgWYRERERERERESkWBRgEhERERERERGRYlGASUREREREREREikUBJhERERERERERKRYFmEREREREREREpFgUYBIRERERERERkWJRgElERESkjBk0aBABAQFuO3+nTp3o1KmT287vasOHD8dkMrl7GCIiImWaAkwiIiL5mDhxIiaTCZPJxNKlS/OsNwyDyMhITCYTvXv3zrUuZ7/8Ho888giLFi266DYXPi7Uv39/TCYTL7zwQolee2F16tSpUNcwfPhwAKpVq1bgNj169Mh17KVLl3L99ddTpUoVfHx8iIqKok+fPkyePDnXdiaTiaFDhxZ6zGPGjMFkMtGqVasiXavdbufrr7+mVatWhISEEBgYSO3atRk4cCArVqxwbrd161aGDx/O/v37i3T8KyknmJLz8PPzIzY2lpdffpnk5GR3D++SNm7cyL333ktMTAw+Pj4EBATQpEkTnn/+efbu3evu4fHOO+9gMpn4448/8l3fs2dPypUrR1xcXKF+fwYNGgTk/n0zm80EBQVRp04d7r77bubOnXsFr1BERCR/nu4egIiISGnm4+PD5MmTufbaa3MtX7x4MYcPH8bb2zvf/bp168bAgQPzLK9duzbR0dF88803uZYPGzaMgIAAXnrppXyPl5yczG+//Ua1atX47rvvnF9i3emll17igQcecL5evXo1n3zyCS+++CL16tVzLm/UqJHzeZMmTXjmmWfyHKty5crO5z/99BO33XYbTZo04YknnqB8+fLs27ePJUuWMG7cOO64447LHvOkSZOoVq0aq1atYvfu3dSsWbNQ+z3++OOMHj2aG2+8kTvvvBNPT0927NjBrFmzqF69Oq1btwYcAabXX3+dTp06Ua1atcse55Xw2WefERAQQEpKCnPmzOGtt95iwYIF/PXXX5ecW3PmzLlCo8xt3LhxPProo1SsWJE777yTunXrkpWVxebNm/n666/56KOPOHfuHB4eHkU67ssvv8x//vMfl4zxmWeeYfLkyQwePJjNmzfj6+vrXPfTTz8xa9YsRo8eTdOmTXP9jdi3bx+vvvoqDz30EO3bt3cur1GjhvN51apVGTlyJACpqans3r2bqVOn8u2339K/f3++/fZbLBaLS65DRESkyAwRERHJY8KECQZg9O3b16hYsaJhtVpzrX/wwQeNZs2aGdHR0UavXr1yrQOMIUOGFOl89evXNzp27Fjg+i+//NKwWCzGggULDMBYtGhRkY5/Jfz0008GYCxcuDDf9fm9V/mJjY016tevb2RkZORZd/z48Vyvi/Je79271wCMqVOnGqGhocbw4cMLtV98fLxhMpmMBx98MM86u92ea0yXeg9c5Z577jH8/f0va9/XXnvNAIwTJ07kWt63b18DMJYtW1bgvqmpqZd1Tlf466+/DA8PD6NDhw5GcnJynvXnzp0zXn75ZSMrK8sNo8tt+fLlhtlsNoYNG+ZclpycbFSuXNlo3bq1YbPZ8uyzevVqAzAmTJiQ7zE7duxo1K9fP8/yrKwsY/DgwQZgPP/88y67BhERkaJSiZyIiMhF3H777Zw6dSpXCUpmZiY///xzsTJpimrSpEl069aNzp07U69ePSZNmnTJfaxWKyEhIdx777151iUnJ+Pj48Ozzz7rXDZq1Cjq16+Pn58f5cuXp3nz5nlK0q6EPXv20KJFC7y8vPKsCwsLu+zjTpo0ifLly9OrVy9uueWWQr2H4MgsMQyDdu3a5VlnMpmcY5o4cSK33norAJ07d3aWMy1atMi5/ZgxY6hfvz7e3t5UrlyZIUOGkJiYmOe4K1eupGfPnpQvXx5/f38aNWrExx9/fNFxrl+/ntDQUDp16kRKSkqhru1CXbp0cV4vOEqyGjRowNq1a+nQoQN+fn68+OKLznX/7MGUnp7O8OHDqV27Nj4+PlSqVIm+ffuyZ88e5zZ2u52PPvqI+vXr4+PjQ3h4OA8//DBnzpy55Phef/11TCYTkyZNIjAwMM96Hx8fRowYkSt76c8//+TWW28lKioKb29vIiMjeeqppzh37lyuffPrwZRTfjl9+nQaNGiAt7c39evXZ/bs2Zcca+vWrXnkkUd477332Lp1K+DIkkpISGDs2LGYza77J7iHhweffPIJsbGxfPrppyQlJbns2CIiIkWhAJOIiMhFVKtWjTZt2vDdd985l82aNYukpCQGDBhQ4H7p6emcPHkyzyMzM7PIYzh69CgLFy7k9ttvBxxBr59//vmSx7JYLNx8881Mnz49z7bTp08nIyPDeQ3jxo3j8ccfJzY2lo8++ojXX3+dJk2asHLlyiKP92KsVmu+78uFX/ijo6OZP38+hw8fdum5J02aRN++ffHy8uL2229n165drF69+pL7RUdHA47yprS0tAK369ChA48//jgAL774It988w3ffPONs1xw+PDhDBkyhMqVK/P+++/Tr18/vvjiC+Li4rBarc7jzJ07lw4dOrB161aeeOIJ3n//fTp37syMGTMKPPfq1avp0qULTZs2ZdasWZfVADwnEFShQgXnslOnTnH99dfTpEkTPvroIzp37pzvvjabjd69e/P666/TrFkz3n//fZ544gmSkpLYvHmzc7uHH36Y5557jnbt2vHxxx9z7733MmnSJLp3757rPfintLQ0FixYQKdOnahatWqhrynnM3v00UcZNWoU3bt3Z9SoUfmWr+Zn6dKlDB48mAEDBvDuu++Snp5Ov379OHXq1CX3HTlyJKGhoTz88MOsXbuW0aNH8+yzz9KwYcNCj7+wPDw8uP3220lLS8u3Z5yIiMgV4e4UKhERkdIop0Ru9erVxqeffmoEBgYaaWlphmEYxq233mp07tzZMIz8y76AAh/fffddvue7WInce++9Z/j6+jrLgnbu3GkAxrRp0y55HX/88YcBGL/99luu5T179jSqV6/ufH3jjTfmW35TFIUpkSvofRk5cqRzu/HjxxuA4eXlZXTu3Nl45ZVXjD///DPfsiIKWSK3Zs0aAzDmzp1rGIajtK1q1arGE088UahrGzhwoAEY5cuXN26++WbjvffeM7Zt21bo9yAhIcHw8vIy4uLicl3Hp59+agDGl19+aRiGo9wpJibGiI6ONs6cOZPrGHa73fn8whK5pUuXGkFBQUavXr2M9PT0S15LToncjh07jBMnThj79u0zvvjiC8Pb29sIDw93lsF17NjRAIzPP/88zzE6duyYa75++eWXBmB88MEHebbN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nuTTTz/Nsy5n3P3798dmszFixIg822RlZeW53n969dVXsdls3HXXXfmWyv3z/cnJPrpwuWEYfPzxx5e8nrLEZrPx+OOPs23bNh5//PGLlsyKiIiUJGUwiYiIFFJRyrJ27tzpLG+7UHh4ON26dSvUMSZNmoSHh4cz+PBPN9xwAy+99BLff/89Tz/99EWPddtttzFq1Chee+01GjZsSL169XKtj4uLIyIignbt2hEeHs62bdv49NNPczUXd4UjR47k+74EBARw0003AY4G6TExMfTp04caNWqQmprKvHnz+O2335yBlAutWbOGN998M88xO3XqxJEjRzh79iw33HBDvuNp3bo1oaGhTJo0KU/QLcfhw4dp2bIlXbp04brrriMiIoKEhAS+++47NmzYwJNPPuksNWvSpAkeHh7897//JSkpCW9vb7p06UJYWBjDhg3j9ddfp0ePHtxwww3s2LGDMWPG0KJFC+666y7AEQz87LPP6NOnD02aNOHee++lUqVKbN++nS1btvDHH3/kGZ+vry8zZsygS5cuXH/99SxevLhQPZxcaeDAgXz99dc8/fTTrFq1ivbt2zs/t8GDB3PjjTfSsWNHHn74YUaOHMn69euJi4vDYrGwa9cufvrpJz7++OOL9jZr3749n376KY899hi1atXizjvvpG7dumRmZrJz504mTZqEl5cXERERANStW5caNWrw7LPPcuTIEYKCgpgyZUqR+ieVNklJSc7fn7S0NHbv3s3UqVPZs2cPAwYMyDd4JyIicsW46/Z1IiIipdmECRMMwFi9evVFt4uOjjZ69eqVaxlQ4OPCW7tfqH79+rnWZWZmGhUqVDDat29/0fPHxMQYTZs2veT12O12IzIy0gCMN998M8/6L774wujQoYNRoUIFw9vb26hRo4bx3HPPGUlJSZc8do6ffvrJAIyFCxfmuz46OrrA9yU6Otq53XfffWcMGDDAqFGjhuHr62v4+PgYsbGxxksvvWQkJyfnOubF3usRI0YYffr0MXx8fIzU1NQCxz1o0CDDYrEYJ0+ezHd9cnKy8fHHHxvdu3c3qlatalgsFiMwMNBo06aNMW7cOMNut+fafty4cUb16tUNDw+PPO/Hp59+atStW9ewWCxGeHi48eijjxpnzpzJc86lS5ca3bp1MwIDAw1/f3+jUaNGxqhRo5zr77nnHsPf3z/XPidPnjRiY2ONiIgIY9euXQVe72uvvWYAxokTJwrcxjAMo2PHjkb9+vULXPfPuZyWlma89NJLRkxMjGGxWIyIiAjjlltuMfbs2ZNru7FjxxrNmjUzfH19jcDAQKNhw4bG888/bxw9evSi48mxbt06Y+DAgUZUVJTh5eXlfH+eeeYZY/fu3bm23bp1q9G1a1cjICDAqFixovHggw8aGzZsMABjwoQJed6TCwHGkCFD8pw/OjrauOeeewo11guPfan3e/Xq1XnGdaGOHTvmmt8BAQFGrVq1jLvuusuYM2dOoccjIiJSUkyGUQq7FIqIiIiIiIiISJmhHkwiIiIiIiIiIlIsCjCJiIiIiIiIiEixKMAkIiIiIiIiIiLFogCTiIiIiIiIiIgUiwJMIiIiIiIiIiJSLAowiYiIiIiIiIhIsXi6ewClgd1u5+jRowQGBmIymdw9HBERERERERERlzAMg7Nnz1K5cmXM5hLMMzLcaMyYMUbDhg2NwMBAIzAw0GjdurUxc+ZM5/pz584ZgwcPNkJCQgx/f3+jb9++Rnx8fK5jHDhwwOjZs6fh6+trhIaGGs8++6xhtVqLNI5Dhw4ZgB566KGHHnrooYceeuihhx566KHHVfk4dOiQS2I5BXFrBlPVqlV55513qFWrFoZh8NVXX3HjjTeybt066tevz1NPPcXvv//OTz/9RLly5Rg6dCh9+/blr7/+AsBms9GrVy8iIiJYtmwZx44dY+DAgVgsFt5+++1CjyMwMBCAQ4cOERQUVCLX6kpWq5U5c+YQFxeHxWJx93CkDNHcEVfRXBJX0nySkqB5Ja6iuSSupPkkxXU5cyg5OZnIyEhn7KOkuDXA1KdPn1yv33rrLT777DNWrFhB1apVGT9+PJMnT6ZLly4ATJgwgXr16rFixQpat27NnDlz2Lp1K/PmzSM8PJwmTZowYsQIXnjhBYYPH46Xl1ehxpFTFhcUFFRmAkx+fn4EBQXpj5IUieaOuIrmkriS5pOUBM0rcRXNJXElzScpruLMoZJuCVRqejDZbDZ++uknUlNTadOmDWvXrsVqtdK1a1fnNnXr1iUqKorly5fTunVrli9fTsOGDQkPD3du0717dx599FG2bNlC06ZN8z1XRkYGGRkZztfJycmA44OyWq0ldIWukzPGsjBWKV00d8RVNJfElTSfpCRoXomraC6JK2k+SXFdzhy6UvPN7QGmTZs20aZNG9LT0wkICGDatGnExsayfv16vLy8CA4OzrV9eHg48fHxAMTHx+cKLuWsz1lXkJEjR/L666/nWT5nzhz8/PyKeUVXzty5c909BCmjNHfEVTSXxJU0n6QkaF6Jq2guiStpPklxFWUOpaWlleBIznN7gKlOnTqsX7+epKQkfv75Z+655x4WL15couccNmwYTz/9tPN1Tj1iXFxcmSmRmzt3Lt26dVNapRSJ5o64iuaSuJLmk5QEzStxFc0lcSXNJymuy5lDOVVbJc3tASYvLy9q1qwJQLNmzVi9ejUff/wxt912G5mZmSQmJubKYjp+/DgREREAREREsGrVqlzHO378uHNdQby9vfH29s6z3GKxFPgB2Wy2UpPGaLPZ8PT0xGazlewtBuWq4eHhgafn+V/3i811kaLQXBJX0nySkqB5Ja6iuSSupPkkxVWUOXSl5prbA0z/ZLfbycjIoFmzZlgsFubPn0+/fv0A2LFjBwcPHqRNmzYAtGnThrfeeouEhATCwsIAR5pYUFAQsbGxLhtTSkoKhw8fxjAMlx2zOAzDICIigkOHDpV4ky65evj5+REaGuruYYiIiIiIiMhVyK0BpmHDhnH99dcTFRXF2bNnmTx5MosWLeKPP/6gXLly3H///Tz99NOEhIQQFBTEY489Rps2bWjdujUAcXFxxMbGcvfdd/Puu+8SHx/Pyy+/zJAhQ/LNULocNpuNw4cPO7+cl4aAjt1uJyUlhYCAAGUwySUZhkFmZiYnTpzg4MGD7h6OiIiIiIiIXIXcGmBKSEhg4MCBHDt2jHLlytGoUSP++OMPunXrBsCHH36I2WymX79+ZGRk0L17d8aMGePc38PDgxkzZvDoo4/Spk0b/P39ueeee3jjjTdcNkar1YphGISGhuLr6+uy4xaH3W4nMzMTHx8fBZikUHx9fbFYLOzfvx8PDw93D0dERERERESuMm4NMI0fP/6i6318fBg9ejSjR48ucJvo6Ghmzpzp6qHlURoyl0SKIycYqbksIiIiIiIirqb0FxERERERERERKRYFmEREREREREREpFgUYBJxkYkTJxIcHOzuYYiIiIiIiIhccQowXaUGDRqEyWTikUceybNuyJAhmEwmBg0alGf7fz569OjBokWL8l134WPRokUAHD58GC8vLxo0aHDR8RmGQdeuXenevXuedWPGjCE4OJiuXbte9JzVqlUDoFOnTs5l3t7eVKlShT59+jB16tRCvVfx8fE88cQT1KxZEx8fH8LDw2nXrh2fffYZaWlphToGwG233cbOnTsLvX1+9u/fT4cOHfD396dDhw7s378/1/revXszZcqUYp1DRERERERExNUUYLqKRUZG8v3333Pu3DnnsvT0dCZPnkxUVFSe7Xv06MGxY8dyPb777jvatm2ba1n//v3zbNu2bVvAkcXTv39/kpOTWblyZYFjM5lMTJgwgZUrV/LFF184l+/bt4/nn3+eUaNGMWXKlFznAJgwYYLz9erVq537Pfjggxw7dow9e/YwZcoUYmNjGTBgAA899NBF36O9e/fStGlT5syZw9tvv826detYvnw5zz//PDNmzGDevHmFe7Nx3KktLCys0Nvn55lnnqFKlSqsX7+eSpUq8eyzzzrX/fDDD867KoqIiIiIiIiUJm69i1xZZBgG56w2t5zb1+JRpDuAXXPNNezZs4epU6dy5513AjB16lSioqKIiYnJs723tzcRERH5HuvC5b6+vmRkZOTZ1jAMJkyYwJgxY6hatSrjx4+nVatWBY4vMjKSjz/+mKFDhxIXF0e1atW4//77iYuL4+677wagXLlyufYJDg7Od4x+fn7O5VWrVqV169bUrVuX++67j/79+9O1a9d8xzB48GA8PT1Zs2YN/v7+zuXVq1fnxhtvxDAM57IPPviACRMmsHfvXkJCQujTpw/vvvsuAQEBgCO49uSTT5KYmAjA8OHDmT59Os888wyvvPIKZ86c4frrr2fcuHEEBgbmO55t27bxwQcfUKtWLQYNGuQMMCUmJvLyyy+zYMGCAt9PEREREREREXdRgKmIzlltxL76h1vOvfWN7vh5Fe0ju++++5gwYYIzwPTll19y7733OkvaXGnhwoWkpaXRtWtXqlSpQtu2bfnwww9zBW7+6Z577mHatGncd9999O3bl82bN7NlyxaXjOeee+7hmWeeYerUqfkGmE6dOuXMXCpojBcG9MxmM5988gkxMTHs3buXwYMH8/zzzzNmzJgCx7Bnzx6mT5/OjBkzOHPmDP379+edd97hrbfeynf7xo0bM2/ePOLi4pgzZw6NGjUC4LnnnmPIkCFERkYW5S0QERERERERuSJUIneVu+uuu1i6dCkHDhzgwIED/PXXX9x11135bjtjxgwCAgJyPd5+++1Cn2v8+PEMGDAADw8PGjRoQPXq1fnpp58uud/YsWPZvHkzTz75JGPHjiU0NLTQ57wYs9lM7dq18/QxyrF7924Mw6BOnTq5llesWNF5/S+88IJz+ZNPPknnzp2pVq0aXbp04c033+THH3+86BjsdjsTJ06kQYMGtG/fnrvvvpv58+cXuP17773H9u3bqVatGrt27eK9995jyZIlrF+/noEDB9K/f3+qV6/OI488QmZmZuHfDBEREREREZESpAymIvK1eLD1jbyNqa/UuYsqNDSUXr16MXHiRAzDoFevXlSsWDHfbTt37sxnn32Wa1lISEihzpOYmMjUqVNZunSpc9ldd93F+PHjczUTz09YWBgPP/ww06dP56abbirU+QrLMIwilRUCrFq1Crvdzp133klGRoZz+bx58xg5ciTbt28nOTmZrKws0tPTSUtLw8/PL99jVatWLVc5XKVKlUhISCjw3FWqVGHGjBnO1xkZGXTv3p2vvvqKN998k8DAQHbs2EGPHj344osveOyxx4p0bSIiIiIiIiIlQQGmIjKZTEUuU3O3++67j6FDhwIwevToArfz9/enZs2al3WOyZMnk56enqvnkmEY2O12du7cSe3atS+6v6enJ56ern1fbTYbu3btokWLFvmur1mzJiaTiR07duRaXr16dcDRayrH/v376d27N48++ihvvfUWISEhLF26lPvvv5/MzMwCA0wWiyXXa5PJhN1uL/Q1vP3228TFxdGsWTMefPBB3nzzTSwWC3379mXBggUKMImIiIiIiEipoBK5f4EePXqQmZmJ1Wqle/eSyb4aP348zzzzDOvXr3c+NmzYQPv27fnyyy9L5JyX8tVXX3HmzJkC77pWoUIFunXrxqeffkpqaupFj7V27Vrsdjvvv/8+rVu3pnbt2hw9erQkhu20bds2Jk+ezIgRIwBHwMxqtQJgtVqx2dzTbF5ERERERETkn8pWKo5cFg8PD7Zt2+Z8XpCMjAzi4+NzLfP09CywpC7H+vXr+fvvv5k0aRJ169bNte7222/njTfe4M0333R5htKF0tLSiI+PJysri8OHDzNt2jQ+/PBDHn30UTp37lzgfmPGjKFdu3Y0b96c4cOH06hRI8xmM6tXr2b79u00a9YMcGQ7Wa1WRo0aRZ8+ffjrr7/4/PPPS+x6DMPgoYceytUkvV27dowbN47atWvz9ddfc/vtt5fY+UVERERERESKQhlM/xJBQUEEBQVddJvZs2dTqVKlXI9rr732ksceP348sbGxeYJLADfffDMJCQnMnDnzssdeGOPGjaNSpUrUqFGDvn37snXrVn744YeL3uENoEaNGqxbt46uXbsybNgwGjduTPPmzRk1ahTPPvusM3uocePGfPDBB/z3v/+lQYMGTJo0iZEjR5bY9YwdO5bw8HB69+7tXDZ8+HBnGWLNmjUZMmRIiZ1fRERERETk3274r1vo+fGf/L7xmLuHUiaYDMMw3D0Id0tOTqZcuXIkJSXlCcKkp6ezb98+YmJi8PHxcdMIc7Pb7SQnJxMUFITZrBihFE56ejp79+5l3759xMXF5ekPJVIUVquVmTNn0rNnT80lKTbNJykJmlfiKppL4kqaT2VLv8+WsfbAGT65vSk3NK7s7uEAlzeHLhbzcCVFJ0RERERERERELmAYBruOnwWgdniAm0dTNijAJCIiIiIiIiJygRNnM0hOz8JsgpiK/u4eTpmgAJOIiIiIiIiIyAV2Hk8BoFoFf7w9C75ZlpynAJOIiIiIiIiIyAV2JTjK42qGqTyusBRgEhERERERERG5wK4ERwZTLfVfKjQFmERERERERERELrA7u0SuVligm0dSdijAJCIiIiIiIiKSzTAMdmaXyCmDqfAUYBIRERERERERyXYyJZPENCsmE9QIVYCpsBRgEhERERERERHJltPgOyrEDx+L7iBXWAowiZSwiRMnEhwc7O5hiIiIiIiISCHszmnwrTvIFYkCTFchk8l00cfw4cPZv39/getXrFgBgM1m45133qFu3br4+voSEhJCq1at+N///uc816BBg7jpppsuOabDhw/j5eVFgwYNLrqdYRh07dqV7t2751k3ZswYgoOD6dq160Wvr1q1agB06tTJuczb25sqVarQp08fpk6dWqj3MT4+nieeeIKaNWvi4+NDeHg47dq147PPPiMtLa1QxwC47bbb2LlzZ6G3z8/+/fvp0KED/v7+dOjQgf379+da37t3b6ZMmVKsc4iIiIiIiJQ2S3aeYPORpCt6zl3ZDb5rqsF3kSjAdBU6duyY8/HRRx8RFBSUa9mzzz7r3HbevHm51h07doxmzZoB8Prrr/Phhx8yYsQItm7dysKFC3nooYdITEws8pgm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QogIUgaTOynAJCIiIiIiIiKlTk6JnOdFSuRyVC3vV9LDkUtQiZyIiIiIiIiIlDo5JXJel8hgktJBn5KIiIiIiIiIlDqFLZGT0kGfkoiIiIiIiIiUOkUpkRP3U4BJREREREREREodlciVLfqURERERERERKTUyVKJXJmiT0lERERERERESp3MLJXIlSUKMImIiIiIiIhIqWO1qUSuLNGnJCIiIiIiIiKlTk6JnDKYygYFmERERERERESkVDEMw5nBpB5MZYM+JREREREREREpVXKCS6AAU1mhT0lERERERERESpWc8jgAi0rkygQFmERERERERESkVLFmKYOprNGnJCIiIiIiIiKlivWCDCZPszKYygIFmERERERERESkVLHaHAEmi4cJk0kBprJAASYRERERERERKVVySuRUHld26JMSERERERERkVIlp0ROAaayQ5+UiIiIiIiIiJQqF5bISdmgAJOIiIiIiIiIlCoqkSt73PpJjRw5khYtWhAYGEhYWBg33XQTO3bsyLVNp06dMJlMuR6PPPJIrm0OHjxIr1698PPzIywsjOeee46srKwreSkiIiIiIiIi4iIqkSt7PN158sWLFzNkyBBatGhBVlYWL774InFxcWzduhV/f3/ndg8++CBvvPGG87Wfn5/zuc1mo1evXkRERLBs2TKOHTvGwIEDsVgsvP3221f0ekRERERERESk+KxZjgCTp0rkygy3Bphmz56d6/XEiRMJCwtj7dq1dOjQwbncz8+PiIiIfI8xZ84ctm7dyrx58wgPD6dJkyaMGDGCF154geHDh+Pl5VWi1yAiIiIiIiIirmW1OUrkvJTBVGa4NcD0T0lJSQCEhITkWj5p0iS+/fZbIiIi6NOnD6+88oozi2n58uU0bNiQ8PBw5/bdu3fn0UcfZcuWLTRt2jTPeTIyMsjIyHC+Tk5OBsBqtWK1Wl1+Xa6WM8ayMFYpXTR3xFU0l8SVNJ+kJGheiatoLokraT4VXnpmJgCeZpPerwtczhy6Uu+fyTAM44qc6RLsdjs33HADiYmJLF261Ll87NixREdHU7lyZTZu3MgLL7xAy5YtmTp1KgAPPfQQBw4c4I8//nDuk5aWhr+/PzNnzuT666/Pc67hw4fz+uuv51k+efLkXOV3IiIiIiIiInLlbTpt4n87PKgWYPBUQ5u7h1OmpaWlcccdd5CUlERQUFCJnafUZDANGTKEzZs35wougSOAlKNhw4ZUqlSJ6667jj179lCjRo3LOtewYcN4+umnna+Tk5OJjIwkLi6uRN9sV7FarcydO5du3bphsVjcPRwpQzR3xFU0l8SVNJ+kJGheiatoLokraT4VnmlzPOzYSGjFEHr2bOHu4ZQalzOHcqq2SlqpCDANHTqUGTNmsGTJEqpWrXrRbVu1agXA7t27qVGjBhEREaxatSrXNsePHwcosG+Tt7c33t7eeZZbLJYy9Ute1sYrpYfmjriK5pK4kuaTlATNK3EVzSVxJc2nSzNMjt5L3p4eeq/yUZQ5dKXeP7d2yzIMg6FDhzJt2jQWLFhATEzMJfdZv349AJUqVQKgTZs2bNq0iYSEBOc2c+fOJSgoiNjY2BIZt4iIiIiIiIiUnEzdRa7McWsG05AhQ5g8eTK//PILgYGBxMfHA1CuXDl8fX3Zs2cPkydPpmfPnlSoUIGNGzfy1FNP0aFDBxo1agRAXFwcsbGx3H333bz77rvEx8fz8ssvM2TIkHyzlERERERERESkdMu5i5xFd5ErM9z6SX322WckJSXRqVMnKlWq5Hz88MMPAHh5eTFv3jzi4uKoW7cuzzzzDP369eO3335zHsPDw4MZM2bg4eFBmzZtuOuuuxg4cCBvvPGGuy5LRERERERERIohy+7IYLIog6nMcGsG06VuYBcZGcnixYsveZzo6GhmzpzpqmGJiIiIiIiIiBvllMgpg6ns0CclIiIiIiIiIqVKll0lcmWNPikRERERERERKVWsWSqRK2sUYBIRERERERGRUsVqU4lcWaNPSkRERERERERKFatK5MocfVIiIiIiIiIiUqrklMh5qkSuzFCASURERERERERKlZwSOS9lMJUZ+qREREREREREpFRRiVzZo09KREREREREREoVlciVPQowiYiIiIiIiEipohK5skeflIiIiIiIiIiUKiqRK3v0SYmIiIiIiIhIqaISubJHASYRERERERERKVVySuSUwVR26JMSERERERERkVIlK7tETj2Yyg59UiIiIiIiIiJSqmSqRK7MUYBJREREREREREoVlciVPfqkRERERERERKRUUYlc2aNPSkRERERERERKFZXIlT0KMImIiIiIiIhIqaISubJHn5SIiIiIiIiIlCo5JXIKMJUd+qREREREREREpFSxZuVkMKlErqxQgElEREREREREShWrMpjKHH1SIiIiIiIiIlKqnO/BpAymskIBJhEREREREREpVc6XyClsUVbokxIRERERERGRUkUlcmWPPikRERERERERKTUMw3CWyHmqRK7MUIBJREREREREREoNm93AcCQw4aUMpjJDn5SIiIiIiIiIlBpZ2eVxoBK5skSflIiIiIiIiIiUGpnZ5XGgErmyRAEmERERERERESk1cu4gB2AxK2xRVuiTEhEREREREZFSI6dEztNswmxWBlNZoQCTiIiIiIiIiJQamVm6g1xZpACTiIiIiIiIiJQa1uweTGrwXbbo0xIRERERERGRUiOnRM5LAaYyRZ+WiIiIiIiIiJQaKpErmxRgEhEREREREZFSQyVyZZM+LREREREREREpNVQiVzbp0xIRERERERGRUsOqErkySQEmERERERERESk1MlUiVybp0xIRERERERGRUiPL5iiRU4CpbNGnJSIiIiIiIiKlxvkm3yqRK0sUYBIRERERERGRK2r5nlN8MHcnx5LO5VlntSuDqSzydPcAREREREREROTfY9uxZO6duIp0q50vFu/h3nYxPNalJv7ejhDF+SbfCjCVJfq0REREREREROSKSE638ui3a0m32gny8SQjy87ni/cwctY25zY5JXJeKpErUxRgEhEREREREZESZxgGz/64gf2n0qgS7Mui5zrzxo31AVi2+5RzO5XIlU36tERERERERESkxI1dspc5W4/j5WFmzJ3XEOLvRY8GEQDsP5XKuUwboBK5skqfloiIiIiIiIiUqBV7T/Hf2dsBeLVPLI0jgwEIDfCmgr8XdgN2JZwFdBe5skoBJhEREREREREpMQnJ6QydvA67ATc3rcKdraKc60wmE3UrBQKw/ZgjwJSVXSLnpQymMkWfloiIiIiIiIiUCKvNzpDJf3MyJYM64YG8dXMDTKbcmUl1woMA2BafDECms0ROGUxliQJMIiIiIiIiIlIi3p29ndX7zxDg7clnd12Dn5dnnm1yMph2xP+zRE4hi7JEn5aIiIiIiIiIuNzMTccY9+c+AN67tRHVQwPy3a5eRHYG07FkDMMgI0sBprIob+hQREREREREROQynUzJ4NMFu5m08gAAD3WoTo8GlQrcvlZ4AGYTnEmzknA2g0U7EgCoWUBASkonBZhERERERERExCWW7TnJQ1+v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", "text/plain": [ "
" ] @@ -594,70 +947,133 @@ "name": "stdout", "output_type": "stream", "text": [ + "recipitent sending ipython_user_proxy To plot a chart of META (Facebook's parent company, Meta Platforms, Inc.) and TESLA (Tesla, Inc.) stock price gain year-to-date (YTD), we can use Python with libraries such as `pandas` for data manipulation and `matplotlib` or `plotly` for plotting. We will also use `yfinance` to fetch historical stock data.\n", + "\n", + "Here's the plan:\n", + "1. Install the `yfinance` library if it's not already installed.\n", + "2. Fetch the YTD stock price data for META and TESLA.\n", + "3. Calculate the YTD gain for each stock.\n", + "4. Plot the YTD gain on a chart.\n", + "\n", + "First, let's install `yfinance` and import the necessary libraries. Execute the following code:\n", + "\n", + "```python\n", + "# Install yfinance if not already installed\n", + "!pip install yfinance\n", + "\n", + "import yfinance as yf\n", + "import pandas as pd\n", + "import matplotlib.pyplot as plt\n", + "from datetime import datetime\n", + "\n", + "# Check if today's date is required or the last trading day\n", + "today = datetime.today().strftime('%Y-%m-%d')\n", + "\n", + "# Fetch YTD stock data for META and TESLA\n", + "meta_data = yf.download('META', start='2023-01-01', end=today)\n", + "tesla_data = yf.download('TSLA', start='2023-01-01', end=today)\n", + "\n", + "# Calculate the YTD gain for each stock\n", + "meta_ytd_gain = (meta_data['Close'] - meta_data['Close'].iloc[0]) / meta_data['Close'].iloc[0] * 100\n", + "tesla_ytd_gain = (tesla_data['Close'] - tesla_data['Close'].iloc[0]) / tesla_data['Close'].iloc[0] * 100\n", + "\n", + "# Plot the YTD gain on a chart\n", + "plt.figure(figsize=(14, 7))\n", + "plt.plot(meta_ytd_gain.index, meta_ytd_gain, label='META YTD Gain %')\n", + "plt.plot(tesla_ytd_gain.index, tesla_ytd_gain, label='TESLA YTD Gain %')\n", + "plt.title('META vs TESLA Stock Price Gain YTD')\n", + "plt.xlabel('Date')\n", + "plt.ylabel('Gain %')\n", + "plt.legend()\n", + "plt.grid(True)\n", + "plt.show()\n", + "```\n", + "\n", + "This code will install `yfinance`, fetch the YTD stock data for META and TESLA, calculate the YTD gain, and plot it on a chart. Please execute the code in your IPython environment. None\n", "\u001b[33mipython_user_proxy\u001b[0m (to assistant):\n", "\n", "exitcode: 0 (execution succeeded)\n", "Code output: \n", - "Requirement already satisfied: yfinance in /Users/qingyunwu/miniconda3/envs/ag2/lib/python3.10/site-packages (0.2.36)\n", - "Requirement already satisfied: pandas>=1.3.0 in /Users/qingyunwu/miniconda3/envs/ag2/lib/python3.10/site-packages (from yfinance) (2.2.0)\n", - "Requirement already satisfied: numpy>=1.16.5 in /Users/qingyunwu/miniconda3/envs/ag2/lib/python3.10/site-packages (from yfinance) (1.26.3)\n", - "Requirement already satisfied: requests>=2.31 in /Users/qingyunwu/miniconda3/envs/ag2/lib/python3.10/site-packages (from yfinance) (2.31.0)\n", - "Requirement already satisfied: multitasking>=0.0.7 in /Users/qingyunwu/miniconda3/envs/ag2/lib/python3.10/site-packages (from yfinance) (0.0.11)\n", - "Requirement already satisfied: lxml>=4.9.1 in /Users/qingyunwu/miniconda3/envs/ag2/lib/python3.10/site-packages (from yfinance) (5.1.0)\n", - "Requirement already satisfied: appdirs>=1.4.4 in /Users/qingyunwu/miniconda3/envs/ag2/lib/python3.10/site-packages (from yfinance) (1.4.4)\n", - "Requirement already satisfied: pytz>=2022.5 in /Users/qingyunwu/miniconda3/envs/ag2/lib/python3.10/site-packages (from yfinance) (2023.3.post1)\n", - "Requirement already satisfied: frozendict>=2.3.4 in /Users/qingyunwu/miniconda3/envs/ag2/lib/python3.10/site-packages (from yfinance) (2.4.0)\n", - "Requirement already satisfied: peewee>=3.16.2 in /Users/qingyunwu/miniconda3/envs/ag2/lib/python3.10/site-packages (from yfinance) (3.17.0)\n", - "Requirement already satisfied: beautifulsoup4>=4.11.1 in /Users/qingyunwu/miniconda3/envs/ag2/lib/python3.10/site-packages (from yfinance) (4.12.3)\n", - "Requirement already satisfied: html5lib>=1.1 in /Users/qingyunwu/miniconda3/envs/ag2/lib/python3.10/site-packages (from yfinance) (1.1)\n", - "Requirement already satisfied: soupsieve>1.2 in /Users/qingyunwu/miniconda3/envs/ag2/lib/python3.10/site-packages (from beautifulsoup4>=4.11.1->yfinance) (2.5)\n", - "Requirement already satisfied: six>=1.9 in /Users/qingyunwu/miniconda3/envs/ag2/lib/python3.10/site-packages (from html5lib>=1.1->yfinance) (1.16.0)\n", - "Requirement already satisfied: webencodings in /Users/qingyunwu/miniconda3/envs/ag2/lib/python3.10/site-packages (from html5lib>=1.1->yfinance) (0.5.1)\n", - "Requirement already satisfied: python-dateutil>=2.8.2 in /Users/qingyunwu/miniconda3/envs/ag2/lib/python3.10/site-packages (from pandas>=1.3.0->yfinance) (2.8.2)\n", - "Requirement already satisfied: tzdata>=2022.7 in /Users/qingyunwu/miniconda3/envs/ag2/lib/python3.10/site-packages (from pandas>=1.3.0->yfinance) (2023.4)\n", - "Requirement already satisfied: charset-normalizer<4,>=2 in /Users/qingyunwu/miniconda3/envs/ag2/lib/python3.10/site-packages (from requests>=2.31->yfinance) (3.3.2)\n", - "Requirement already satisfied: idna<4,>=2.5 in /Users/qingyunwu/miniconda3/envs/ag2/lib/python3.10/site-packages (from requests>=2.31->yfinance) (3.6)\n", - "Requirement already satisfied: urllib3<3,>=1.21.1 in /Users/qingyunwu/miniconda3/envs/ag2/lib/python3.10/site-packages (from requests>=2.31->yfinance) (2.1.0)\n", - "Requirement already satisfied: certifi>=2017.4.17 in /Users/qingyunwu/miniconda3/envs/ag2/lib/python3.10/site-packages (from requests>=2.31->yfinance) (2023.11.17)\n", - "/Users/qingyunwu/miniconda3/envs/ag2/lib/python3.10/site-packages/yfinance/utils.py:775: FutureWarning: The 'unit' keyword in TimedeltaIndex construction is deprecated and will be removed in a future version. Use pd.to_timedelta instead.\n", + "Requirement already satisfied: yfinance in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (0.2.36)\n", + "Requirement already satisfied: pandas>=1.3.0 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (2.2.0)\n", + "Requirement already satisfied: numpy>=1.16.5 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (1.26.4)\n", + "Requirement already satisfied: requests>=2.31 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (2.31.0)\n", + "Requirement already satisfied: multitasking>=0.0.7 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (0.0.11)\n", + "Requirement already satisfied: lxml>=4.9.1 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (5.1.0)\n", + "Requirement already satisfied: appdirs>=1.4.4 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (1.4.4)\n", + "Requirement already satisfied: pytz>=2022.5 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (2024.1)\n", + "Requirement already satisfied: frozendict>=2.3.4 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (2.4.0)\n", + "Requirement already satisfied: peewee>=3.16.2 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (3.17.1)\n", + "Requirement already satisfied: beautifulsoup4>=4.11.1 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (4.12.3)\n", + "Requirement already satisfied: html5lib>=1.1 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (1.1)\n", + "Requirement already satisfied: soupsieve>1.2 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from beautifulsoup4>=4.11.1->yfinance) (2.5)\n", + "Requirement already satisfied: six>=1.9 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from html5lib>=1.1->yfinance) (1.16.0)\n", + "Requirement already satisfied: webencodings in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from html5lib>=1.1->yfinance) (0.5.1)\n", + "Requirement already satisfied: python-dateutil>=2.8.2 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from pandas>=1.3.0->yfinance) (2.8.2)\n", + "Requirement already satisfied: tzdata>=2022.7 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from pandas>=1.3.0->yfinance) (2024.1)\n", + "Requirement already satisfied: charset-normalizer<4,>=2 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from requests>=2.31->yfinance) (3.3.2)\n", + "Requirement already satisfied: idna<4,>=2.5 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from requests>=2.31->yfinance) (3.6)\n", + "Requirement already satisfied: urllib3<3,>=1.21.1 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from requests>=2.31->yfinance) (1.26.18)\n", + "Requirement already satisfied: certifi>=2017.4.17 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from requests>=2.31->yfinance) (2024.2.2)\n", + "/Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages/yfinance/utils.py:775: FutureWarning: The 'unit' keyword in TimedeltaIndex construction is deprecated and will be removed in a future version. Use pd.to_timedelta instead.\n", " df.index += _pd.TimedeltaIndex(dst_error_hours, 'h')\n", "[*********************100%%**********************] 1 of 1 completed\n", - "/Users/qingyunwu/miniconda3/envs/ag2/lib/python3.10/site-packages/yfinance/utils.py:775: FutureWarning: The 'unit' keyword in TimedeltaIndex construction is deprecated and will be removed in a future version. Use pd.to_timedelta instead.\n", + "/Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages/yfinance/utils.py:775: FutureWarning: The 'unit' keyword in TimedeltaIndex construction is deprecated and will be removed in a future version. Use pd.to_timedelta instead.\n", " df.index += _pd.TimedeltaIndex(dst_error_hours, 'h')\n", "[*********************100%%**********************] 1 of 1 completed\n", "\n", "\n", "--------------------------------------------------------------------------------\n", + "self.reply_at_receive[sender]self.reply_at_receive[sender] True\n", + "recipitent sending assistant exitcode: 0 (execution succeeded)\n", + "Code output: \n", + "Requirement already satisfied: yfinance in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (0.2.36)\n", + "Requirement already satisfied: pandas>=1.3.0 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (2.2.0)\n", + "Requirement already satisfied: numpy>=1.16.5 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (1.26.4)\n", + "Requirement already satisfied: requests>=2.31 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (2.31.0)\n", + "Requirement already satisfied: multitasking>=0.0.7 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (0.0.11)\n", + "Requirement already satisfied: lxml>=4.9.1 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (5.1.0)\n", + "Requirement already satisfied: appdirs>=1.4.4 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (1.4.4)\n", + "Requirement already satisfied: pytz>=2022.5 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (2024.1)\n", + "Requirement already satisfied: frozendict>=2.3.4 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (2.4.0)\n", + "Requirement already satisfied: peewee>=3.16.2 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (3.17.1)\n", + "Requirement already satisfied: beautifulsoup4>=4.11.1 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (4.12.3)\n", + "Requirement already satisfied: html5lib>=1.1 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (1.1)\n", + "Requirement already satisfied: soupsieve>1.2 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from beautifulsoup4>=4.11.1->yfinance) (2.5)\n", + "Requirement already satisfied: six>=1.9 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from html5lib>=1.1->yfinance) (1.16.0)\n", + "Requirement already satisfied: webencodings in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from html5lib>=1.1->yfinance) (0.5.1)\n", + "Requirement already satisfied: python-dateutil>=2.8.2 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from pandas>=1.3.0->yfinance) (2.8.2)\n", + "Requirement already satisfied: tzdata>=2022.7 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from pandas>=1.3.0->yfinance) (2024.1)\n", + "Requirement already satisfied: charset-normalizer<4,>=2 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from requests>=2.31->yfinance) (3.3.2)\n", + "Requirement already satisfied: idna<4,>=2.5 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from requests>=2.31->yfinance) (3.6)\n", + "Requirement already satisfied: urllib3<3,>=1.21.1 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from requests>=2.31->yfinance) (1.26.18)\n", + "Requirement already satisfied: certifi>=2017.4.17 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from requests>=2.31->yfinance) (2024.2.2)\n", + "/Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages/yfinance/utils.py:775: FutureWarning: The 'unit' keyword in TimedeltaIndex construction is deprecated and will be removed in a future version. Use pd.to_timedelta instead.\n", + " df.index += _pd.TimedeltaIndex(dst_error_hours, 'h')\n", + "[*********************100%%**********************] 1 of 1 completed\n", + "/Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages/yfinance/utils.py:775: FutureWarning: The 'unit' keyword in TimedeltaIndex construction is deprecated and will be removed in a future version. Use pd.to_timedelta instead.\n", + " df.index += _pd.TimedeltaIndex(dst_error_hours, 'h')\n", + "[*********************100%%**********************] 1 of 1 completed\n", + " None\n", "\u001b[33massistant\u001b[0m (to ipython_user_proxy):\n", "\n", - "The code has executed successfully, and the required libraries are already installed on your system. The warning from `yfinance` about the 'unit' keyword in `TimedeltaIndex` construction is a future deprecation notice and does not affect the execution of the current code.\n", - "\n", - "Since the code has been executed without any errors, you should have seen a plot displaying the YTD gain percentage for both META and TESLA stocks. This plot visually compares the performance of the two stocks since the beginning of the year.\n", + "The code has executed successfully, and the `yfinance` library has been used to fetch the YTD stock data for META and TESLA. The YTD gain for each stock has been calculated, and a chart should have been plotted to visualize the stock price gains.\n", "\n", - "If you have seen the plot and it reflects the YTD gains for both stocks, then the task is complete. If the plot did not display or if there were any issues with the visualization, please let me know so I can assist further.\n", - "\n", - "If everything is in order, this concludes the task.\n", + "Since the code has been executed without any errors and the chart should have been displayed in your IPython environment, this completes the task.\n", "\n", "TERMINATE\n", "\n", - "--------------------------------------------------------------------------------\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/Users/qingyunwu/Documents/github/autogen/autogen/agentchat/conversable_agent.py:793: UserWarning: No summary_method provided or summary_method is not supported: \n", - " cache=cache,\n" + "--------------------------------------------------------------------------------\n", + "self.reply_at_receive[sender]self.reply_at_receive[sender] True\n" ] }, { "data": { "text/plain": [ - "ChatResult(chat_history=[{'content': 'Plot a chart of META and TESLA stock price gain YTD\\nIf you suggest code, the code will be executed in IPython.', 'role': 'assistant'}, {'content': \"To plot a chart of META (Facebook's parent company, Meta Platforms, Inc.) and TESLA (Tesla, Inc.) stock price gain year-to-date (YTD), we can use Python with libraries such as `pandas` for data manipulation and `matplotlib` or `plotly` for plotting. We will also use `yfinance` to fetch historical stock data.\\n\\nHere's the plan:\\n1. Install the `yfinance` library if it's not already installed.\\n2. Fetch the YTD stock price data for META and TESLA.\\n3. Calculate the YTD gain for each stock.\\n4. Plot the YTD gain on a chart.\\n\\nFirst, let's install `yfinance` and import the necessary libraries. Execute the following code:\\n\\n```python\\n# Install yfinance if not already installed\\n!pip install yfinance\\n\\nimport yfinance as yf\\nimport pandas as pd\\nimport matplotlib.pyplot as plt\\nfrom datetime import datetime\\n\\n# Check if today's date is required or the last trading day\\ntoday = datetime.today().strftime('%Y-%m-%d')\\n\\n# Fetch YTD stock data for META and TESLA\\nmeta_data = yf.download('META', start='2023-01-01', end=today)\\ntesla_data = yf.download('TSLA', start='2023-01-01', end=today)\\n\\n# Calculate the YTD gain for each stock\\nmeta_ytd_gain = (meta_data['Close'] - meta_data['Close'].iloc[0]) / meta_data['Close'].iloc[0] * 100\\ntesla_ytd_gain = (tesla_data['Close'] - tesla_data['Close'].iloc[0]) / tesla_data['Close'].iloc[0] * 100\\n\\n# Plot the YTD gain on a chart\\nplt.figure(figsize=(14, 7))\\nplt.plot(meta_ytd_gain.index, meta_ytd_gain, label='META YTD Gain %')\\nplt.plot(tesla_ytd_gain.index, tesla_ytd_gain, label='TESLA YTD Gain %')\\nplt.title('META vs TESLA Stock Price Gain YTD')\\nplt.xlabel('Date')\\nplt.ylabel('Gain %')\\nplt.legend()\\nplt.grid(True)\\nplt.show()\\n```\\n\\nThis code will install `yfinance`, fetch the YTD stock data for META and TESLA, calculate the YTD gain, and plot it on a chart. Please execute the code in your IPython environment.\", 'role': 'user'}, {'content': \"exitcode: 0 (execution succeeded)\\nCode output: \\nRequirement already satisfied: yfinance in /Users/qingyunwu/miniconda3/envs/ag2/lib/python3.10/site-packages (0.2.36)\\r\\nRequirement already satisfied: pandas>=1.3.0 in /Users/qingyunwu/miniconda3/envs/ag2/lib/python3.10/site-packages (from yfinance) (2.2.0)\\r\\nRequirement already satisfied: numpy>=1.16.5 in /Users/qingyunwu/miniconda3/envs/ag2/lib/python3.10/site-packages (from yfinance) (1.26.3)\\r\\nRequirement already satisfied: requests>=2.31 in /Users/qingyunwu/miniconda3/envs/ag2/lib/python3.10/site-packages (from yfinance) (2.31.0)\\r\\nRequirement already satisfied: multitasking>=0.0.7 in /Users/qingyunwu/miniconda3/envs/ag2/lib/python3.10/site-packages (from yfinance) (0.0.11)\\r\\nRequirement already satisfied: lxml>=4.9.1 in /Users/qingyunwu/miniconda3/envs/ag2/lib/python3.10/site-packages (from yfinance) (5.1.0)\\r\\nRequirement already satisfied: appdirs>=1.4.4 in /Users/qingyunwu/miniconda3/envs/ag2/lib/python3.10/site-packages (from yfinance) (1.4.4)\\r\\nRequirement already satisfied: pytz>=2022.5 in /Users/qingyunwu/miniconda3/envs/ag2/lib/python3.10/site-packages (from yfinance) (2023.3.post1)\\r\\nRequirement already satisfied: frozendict>=2.3.4 in /Users/qingyunwu/miniconda3/envs/ag2/lib/python3.10/site-packages (from yfinance) (2.4.0)\\r\\nRequirement already satisfied: peewee>=3.16.2 in /Users/qingyunwu/miniconda3/envs/ag2/lib/python3.10/site-packages (from yfinance) (3.17.0)\\r\\nRequirement already satisfied: beautifulsoup4>=4.11.1 in /Users/qingyunwu/miniconda3/envs/ag2/lib/python3.10/site-packages (from yfinance) (4.12.3)\\r\\nRequirement already satisfied: html5lib>=1.1 in /Users/qingyunwu/miniconda3/envs/ag2/lib/python3.10/site-packages (from yfinance) (1.1)\\r\\nRequirement already satisfied: soupsieve>1.2 in /Users/qingyunwu/miniconda3/envs/ag2/lib/python3.10/site-packages (from beautifulsoup4>=4.11.1->yfinance) (2.5)\\r\\nRequirement already satisfied: six>=1.9 in /Users/qingyunwu/miniconda3/envs/ag2/lib/python3.10/site-packages (from html5lib>=1.1->yfinance) (1.16.0)\\r\\nRequirement already satisfied: webencodings in /Users/qingyunwu/miniconda3/envs/ag2/lib/python3.10/site-packages (from html5lib>=1.1->yfinance) (0.5.1)\\r\\nRequirement already satisfied: python-dateutil>=2.8.2 in /Users/qingyunwu/miniconda3/envs/ag2/lib/python3.10/site-packages (from pandas>=1.3.0->yfinance) (2.8.2)\\r\\nRequirement already satisfied: tzdata>=2022.7 in /Users/qingyunwu/miniconda3/envs/ag2/lib/python3.10/site-packages (from pandas>=1.3.0->yfinance) (2023.4)\\r\\nRequirement already satisfied: charset-normalizer<4,>=2 in /Users/qingyunwu/miniconda3/envs/ag2/lib/python3.10/site-packages (from requests>=2.31->yfinance) (3.3.2)\\r\\nRequirement already satisfied: idna<4,>=2.5 in /Users/qingyunwu/miniconda3/envs/ag2/lib/python3.10/site-packages (from requests>=2.31->yfinance) (3.6)\\r\\nRequirement already satisfied: urllib3<3,>=1.21.1 in /Users/qingyunwu/miniconda3/envs/ag2/lib/python3.10/site-packages (from requests>=2.31->yfinance) (2.1.0)\\r\\nRequirement already satisfied: certifi>=2017.4.17 in /Users/qingyunwu/miniconda3/envs/ag2/lib/python3.10/site-packages (from requests>=2.31->yfinance) (2023.11.17)\\r\\n/Users/qingyunwu/miniconda3/envs/ag2/lib/python3.10/site-packages/yfinance/utils.py:775: FutureWarning: The 'unit' keyword in TimedeltaIndex construction is deprecated and will be removed in a future version. Use pd.to_timedelta instead.\\n df.index += _pd.TimedeltaIndex(dst_error_hours, 'h')\\n\\r[*********************100%%**********************] 1 of 1 completed\\n/Users/qingyunwu/miniconda3/envs/ag2/lib/python3.10/site-packages/yfinance/utils.py:775: FutureWarning: The 'unit' keyword in TimedeltaIndex construction is deprecated and will be removed in a future version. Use pd.to_timedelta instead.\\n df.index += _pd.TimedeltaIndex(dst_error_hours, 'h')\\n\\r[*********************100%%**********************] 1 of 1 completed\\n\", 'role': 'assistant'}, {'content': \"The code has executed successfully, and the required libraries are already installed on your system. The warning from `yfinance` about the 'unit' keyword in `TimedeltaIndex` construction is a future deprecation notice and does not affect the execution of the current code.\\n\\nSince the code has been executed without any errors, you should have seen a plot displaying the YTD gain percentage for both META and TESLA stocks. This plot visually compares the performance of the two stocks since the beginning of the year.\\n\\nIf you have seen the plot and it reflects the YTD gains for both stocks, then the task is complete. If the plot did not display or if there were any issues with the visualization, please let me know so I can assist further.\\n\\nIf everything is in order, this concludes the task.\\n\\nTERMINATE\", 'role': 'user'}], summary='', cost=({'total_cost': 0.5330100000000001, 'gpt-4': {'cost': 0.5330100000000001, 'prompt_tokens': 13771, 'completion_tokens': 1998, 'total_tokens': 15769}}, {'total_cost': 0.38469000000000003, 'gpt-4': {'cost': 0.38469000000000003, 'prompt_tokens': 10553, 'completion_tokens': 1135, 'total_tokens': 11688}}), human_input=None)" + "ChatResult(chat_history=[{'content': 'Plot a chart of META and TESLA stock price gain YTD\\nIf you suggest code, the code will be executed in IPython.', 'role': 'assistant'}, {'content': \"To plot a chart of META (Facebook's parent company, Meta Platforms, Inc.) and TESLA (Tesla, Inc.) stock price gain year-to-date (YTD), we can use Python with libraries such as `pandas` for data manipulation and `matplotlib` or `plotly` for plotting. We will also use `yfinance` to fetch historical stock data.\\n\\nHere's the plan:\\n1. Install the `yfinance` library if it's not already installed.\\n2. Fetch the YTD stock price data for META and TESLA.\\n3. Calculate the YTD gain for each stock.\\n4. Plot the YTD gain on a chart.\\n\\nFirst, let's install `yfinance` and import the necessary libraries. Execute the following code:\\n\\n```python\\n# Install yfinance if not already installed\\n!pip install yfinance\\n\\nimport yfinance as yf\\nimport pandas as pd\\nimport matplotlib.pyplot as plt\\nfrom datetime import datetime\\n\\n# Check if today's date is required or the last trading day\\ntoday = datetime.today().strftime('%Y-%m-%d')\\n\\n# Fetch YTD stock data for META and TESLA\\nmeta_data = yf.download('META', start='2023-01-01', end=today)\\ntesla_data = yf.download('TSLA', start='2023-01-01', end=today)\\n\\n# Calculate the YTD gain for each stock\\nmeta_ytd_gain = (meta_data['Close'] - meta_data['Close'].iloc[0]) / meta_data['Close'].iloc[0] * 100\\ntesla_ytd_gain = (tesla_data['Close'] - tesla_data['Close'].iloc[0]) / tesla_data['Close'].iloc[0] * 100\\n\\n# Plot the YTD gain on a chart\\nplt.figure(figsize=(14, 7))\\nplt.plot(meta_ytd_gain.index, meta_ytd_gain, label='META YTD Gain %')\\nplt.plot(tesla_ytd_gain.index, tesla_ytd_gain, label='TESLA YTD Gain %')\\nplt.title('META vs TESLA Stock Price Gain YTD')\\nplt.xlabel('Date')\\nplt.ylabel('Gain %')\\nplt.legend()\\nplt.grid(True)\\nplt.show()\\n```\\n\\nThis code will install `yfinance`, fetch the YTD stock data for META and TESLA, calculate the YTD gain, and plot it on a chart. Please execute the code in your IPython environment.\", 'role': 'user'}, {'content': \"exitcode: 0 (execution succeeded)\\nCode output: \\nRequirement already satisfied: yfinance in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (0.2.36)\\r\\nRequirement already satisfied: pandas>=1.3.0 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (2.2.0)\\r\\nRequirement already satisfied: numpy>=1.16.5 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (1.26.4)\\r\\nRequirement already satisfied: requests>=2.31 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (2.31.0)\\r\\nRequirement already satisfied: multitasking>=0.0.7 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (0.0.11)\\r\\nRequirement already satisfied: lxml>=4.9.1 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (5.1.0)\\r\\nRequirement already satisfied: appdirs>=1.4.4 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (1.4.4)\\r\\nRequirement already satisfied: pytz>=2022.5 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (2024.1)\\r\\nRequirement already satisfied: frozendict>=2.3.4 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (2.4.0)\\r\\nRequirement already satisfied: peewee>=3.16.2 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (3.17.1)\\r\\nRequirement already satisfied: beautifulsoup4>=4.11.1 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (4.12.3)\\r\\nRequirement already satisfied: html5lib>=1.1 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (1.1)\\r\\nRequirement already satisfied: soupsieve>1.2 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from beautifulsoup4>=4.11.1->yfinance) (2.5)\\r\\nRequirement already satisfied: six>=1.9 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from html5lib>=1.1->yfinance) (1.16.0)\\r\\nRequirement already satisfied: webencodings in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from html5lib>=1.1->yfinance) (0.5.1)\\r\\nRequirement already satisfied: python-dateutil>=2.8.2 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from pandas>=1.3.0->yfinance) (2.8.2)\\r\\nRequirement already satisfied: tzdata>=2022.7 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from pandas>=1.3.0->yfinance) (2024.1)\\r\\nRequirement already satisfied: charset-normalizer<4,>=2 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from requests>=2.31->yfinance) (3.3.2)\\r\\nRequirement already satisfied: idna<4,>=2.5 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from requests>=2.31->yfinance) (3.6)\\r\\nRequirement already satisfied: urllib3<3,>=1.21.1 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from requests>=2.31->yfinance) (1.26.18)\\r\\nRequirement already satisfied: certifi>=2017.4.17 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from requests>=2.31->yfinance) (2024.2.2)\\r\\n/Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages/yfinance/utils.py:775: FutureWarning: The 'unit' keyword in TimedeltaIndex construction is deprecated and will be removed in a future version. Use pd.to_timedelta instead.\\n df.index += _pd.TimedeltaIndex(dst_error_hours, 'h')\\n\\r[*********************100%%**********************] 1 of 1 completed\\n/Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages/yfinance/utils.py:775: FutureWarning: The 'unit' keyword in TimedeltaIndex construction is deprecated and will be removed in a future version. Use pd.to_timedelta instead.\\n df.index += _pd.TimedeltaIndex(dst_error_hours, 'h')\\n\\r[*********************100%%**********************] 1 of 1 completed\\n\", 'role': 'assistant'}, {'content': 'The code has executed successfully, and the `yfinance` library has been used to fetch the YTD stock data for META and TESLA. The YTD gain for each stock has been calculated, and a chart should have been plotted to visualize the stock price gains.\\n\\nSince the code has been executed without any errors and the chart should have been displayed in your IPython environment, this completes the task.\\n\\nTERMINATE', 'role': 'user'}], summary='The code has executed successfully, and the `yfinance` library has been used to fetch the YTD stock data for META and TESLA. The YTD gain for each stock has been calculated, and a chart should have been plotted to visualize the stock price gains.\\n\\nSince the code has been executed without any errors and the chart should have been displayed in your IPython environment, this completes the task.\\n\\n', cost=({'total_cost': 0.6870599999999999, 'gpt-4': {'cost': 0.6870599999999999, 'prompt_tokens': 18324, 'completion_tokens': 2289, 'total_tokens': 20613}}, {'total_cost': 0.6154499999999999, 'gpt-4': {'cost': 0.6154499999999999, 'prompt_tokens': 17333, 'completion_tokens': 1591, 'total_tokens': 18924}}), human_input=[])" ] }, - "execution_count": 12, + "execution_count": 7, "metadata": {}, "output_type": "execute_result" } diff --git a/notebook/agentchats.ipynb b/notebook/agentchats.ipynb index ce5bfed74970..22a3eafa9b07 100644 --- a/notebook/agentchats.ipynb +++ b/notebook/agentchats.ipynb @@ -43,7 +43,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "metadata": {}, "outputs": [], "source": [ @@ -75,13 +75,13 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "financial_tasks = [\n", " \"\"\"What are the current stock prices of NVDA and TESLA, and how is the performance over the past month in terms of percentage change?\"\"\",\n", - " \"\"\"Investigate possible reasons of the stock performance.\"\"\",\n", + " \"\"\"Investigate possible reasons of the stock performance leveraging market news.\"\"\",\n", "]\n", "\n", "writing_tasks = [\"\"\"Develop an engaging blog post using any information provided.\"\"\"]" @@ -105,7 +105,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 3, "metadata": {}, "outputs": [ { @@ -183,98 +183,117 @@ "\n", "exitcode: 0 (execution succeeded)\n", "Code output: \n", - "NVDA (NVIDIA Corporation) stock price: $722.48\n", - "TESLA (Tesla, Inc.) stock price: $188.13\n", - "NVDA percentage change over past month: 28.14%\n", - "TESLA percentage change over past month: -14.45%\n", + "NVDA (NVIDIA Corporation) stock price: $732.36\n", + "TESLA (Tesla, Inc.) stock price: $200.46\n", + "NVDA percentage change over past month: 30.65%\n", + "TESLA percentage change over past month: -7.00%\n", "\n", "\n", "--------------------------------------------------------------------------------\n", "\u001b[33mFinancial_assistant\u001b[0m (to User_Proxy_Auto):\n", "\n", - "The script has executed successfully and provided the following results:\n", + "Great! According to the executed script, the current stock price for NVIDIA Corporation (NVDA) is $732.36, with a positive percentage change of 30.65% over the past month, indicating notable growth. Meanwhile, Tesla, Inc. (TSLA) has a current stock price of $200.46, but it has experienced a negative percentage change of -7.00% over the past month, indicating a decrease in its value.\n", "\n", - "- The current stock price for NVIDIA Corporation (NVDA) is $722.48.\n", - "- The current stock price for Tesla, Inc. (TSLA) is $188.13.\n", - "- NVDA has experienced a percentage increase of 28.14% over the past month.\n", - "- TSLA has experienced a percentage decrease of -14.45% over the past month.\n", + "It seems that NVIDIA has had a particularly strong performance over the past month, while Tesla has seen a decline in its stock price. Keep in mind that the stock market can be influenced by a wide array of factors, including but not limited to company performance, industry shifts, market trends, and global economic conditions.\n", "\n", - "These results indicate that over the past month, NVIDIA’s stock has seen a significant increase in value, whereas Tesla’s stock has decreased in value. Keep in mind that stock prices and their performance are subject to rapid change and can vary within minutes.\n", - "\n", - "If you require any further assistance, please let me know. Otherwise, that concludes our task.\n", + "Please ensure to verify these figures with real-time data or additional financial news sources to get the most up-to-date information, as the stock market is volatile and prices can change rapidly.\n", "\n", + "If you need any further assistance or have additional questions, feel free to ask. Otherwise, that concludes our task.\n", "TERMINATE\n", "\n", "--------------------------------------------------------------------------------\n", "\u001b[34m\n", "********************************************************************************\u001b[0m\n", "\u001b[34mStart a new chat with the following message: \n", - "Investigate possible reasons of the stock performance.\n", + "Investigate possible reasons of the stock performance leveraging market news.\n", "\n", "With the following carryover: \n", - "The script has executed successfully and provided the following results:\n", - "\n", - "- The current stock price for NVIDIA Corporation (NVDA) is $722.48.\n", - "- The current stock price for Tesla, Inc. (TSLA) is $188.13.\n", - "- NVDA has experienced a percentage increase of 28.14% over the past month.\n", - "- TSLA has experienced a percentage decrease of -14.45% over the past month.\n", + "Great! According to the executed script, the current stock price for NVIDIA Corporation (NVDA) is $732.36, with a positive percentage change of 30.65% over the past month, indicating notable growth. Meanwhile, Tesla, Inc. (TSLA) has a current stock price of $200.46, but it has experienced a negative percentage change of -7.00% over the past month, indicating a decrease in its value.\n", "\n", - "These results indicate that over the past month, NVIDIA’s stock has seen a significant increase in value, whereas Tesla’s stock has decreased in value. Keep in mind that stock prices and their performance are subject to rapid change and can vary within minutes.\n", + "It seems that NVIDIA has had a particularly strong performance over the past month, while Tesla has seen a decline in its stock price. Keep in mind that the stock market can be influenced by a wide array of factors, including but not limited to company performance, industry shifts, market trends, and global economic conditions.\n", "\n", - "If you require any further assistance, please let me know. Otherwise, that concludes our task.\n", + "Please ensure to verify these figures with real-time data or additional financial news sources to get the most up-to-date information, as the stock market is volatile and prices can change rapidly.\n", "\n", + "If you need any further assistance or have additional questions, feel free to ask. Otherwise, that concludes our task.\n", "\u001b[0m\n", "\u001b[34m\n", "********************************************************************************\u001b[0m\n", "\u001b[33mUser_Proxy_Auto\u001b[0m (to Researcher):\n", "\n", - "Investigate possible reasons of the stock performance.\n", + "Investigate possible reasons of the stock performance leveraging market news.\n", "Context: \n", - "The script has executed successfully and provided the following results:\n", + "Great! According to the executed script, the current stock price for NVIDIA Corporation (NVDA) is $732.36, with a positive percentage change of 30.65% over the past month, indicating notable growth. Meanwhile, Tesla, Inc. (TSLA) has a current stock price of $200.46, but it has experienced a negative percentage change of -7.00% over the past month, indicating a decrease in its value.\n", "\n", - "- The current stock price for NVIDIA Corporation (NVDA) is $722.48.\n", - "- The current stock price for Tesla, Inc. (TSLA) is $188.13.\n", - "- NVDA has experienced a percentage increase of 28.14% over the past month.\n", - "- TSLA has experienced a percentage decrease of -14.45% over the past month.\n", + "It seems that NVIDIA has had a particularly strong performance over the past month, while Tesla has seen a decline in its stock price. Keep in mind that the stock market can be influenced by a wide array of factors, including but not limited to company performance, industry shifts, market trends, and global economic conditions.\n", "\n", - "These results indicate that over the past month, NVIDIA’s stock has seen a significant increase in value, whereas Tesla’s stock has decreased in value. Keep in mind that stock prices and their performance are subject to rapid change and can vary within minutes.\n", - "\n", - "If you require any further assistance, please let me know. Otherwise, that concludes our task.\n", + "Please ensure to verify these figures with real-time data or additional financial news sources to get the most up-to-date information, as the stock market is volatile and prices can change rapidly.\n", "\n", + "If you need any further assistance or have additional questions, feel free to ask. Otherwise, that concludes our task.\n", "\n", "\n", "--------------------------------------------------------------------------------\n", "\u001b[33mResearcher\u001b[0m (to User_Proxy_Auto):\n", "\n", - "To investigate the possible reasons behind the differing stock performance of NVIDIA Corporation (NVDA) and Tesla, Inc. (TSLA), we would need to consider various factors including their recent earnings reports, any significant news events affecting the companies, industry trends, and broader market conditions that might influence the technology and automotive sectors specifically. \n", - "\n", - "Here is how I plan to carry out the task:\n", + "To investigate the possible reasons for the stock performance of NVIDIA (NVDA) and Tesla (TSLA), we can gather recent market news related to these companies. This may provide insights into any events or announcements that could have influenced investor sentiment and thus the stock price. \n", "\n", - "1. Check the recent earnings reports of both companies to see if there are any indications of better- or worse-than-expected financial health.\n", - "2. Look for any major news announcements from the companies, such as product launches, regulatory approvals or actions, partnerships, or other events that could affect investor perceptions.\n", - "3. Analyze industry trends that might affect NVIDIA's GPU market and Tesla's electric vehicle market, respectively, such as supply chain disruptions or changes in consumer demand.\n", - "4. Consider broader market conditions, such as economic indicators, interest rate changes, or shifts in investor sentiment that might have a sector-specific impact.\n", + "I will now write a Python script to search for recent news articles for both NVDA and TSLA using a web scraping library. Please note that this script will return the latest publicly available news gathered from news websites that provide RSS feeds or have structured data appropriate for scraping. For more in-depth analysis, professional financial services or databases like Bloomberg Terminal would be more suitable, though these often require subscriptions. \n", "\n", - "We can start by using a web search to gather this information. Let's begin by searching for recent news about NVIDIA Corporation (NVDA) and Tesla, Inc. (TSLA).\n", + "Let's proceed with the Python code to fetch recent news headlines for both companies:\n", "\n", "```python\n", "# filename: fetch_stock_news.py\n", - "import webbrowser\n", - "\n", - "# URLs for news about NVDA and TSLA\n", - "nvda_news_url = \"https://www.google.com/search?q=NVIDIA+Corporation+NVDA+stock+news\"\n", - "tsla_news_url = \"https://www.google.com/search?q=Tesla+Inc+TSLA+stock+news\"\n", - "\n", - "# Open the URLs in web browsers\n", - "webbrowser.open(nvda_news_url)\n", - "webbrowser.open(tsla_news_url)\n", - "\n", - "print(\"Browser tabs with news about NVIDIA Corporation (NVDA) and Tesla, Inc. (TSLA) should now be open.\")\n", + "import requests\n", + "from bs4 import BeautifulSoup\n", + "\n", + "# Define the URLs of the news sources you want to scrape\n", + "# As an example, I'm using Google News RSS feed URLs for NVIDIA and Tesla.\n", + "# You can change these URLs to any other news source that you prefer.\n", + "nvidia_news_url = \"https://news.google.com/rss/search?q=NVIDIA+NVDA+when:7d&hl=en-US&gl=US&ceid=US:en\"\n", + "tesla_news_url = \"https://news.google.com/rss/search?q=Tesla+TSLA+when:7d&hl=en-US&gl=US&ceid=US:en\"\n", + "\n", + "def fetch_news(url):\n", + " # Send a request to the URL\n", + " response = requests.get(url)\n", + " \n", + " # Check if the request was successful\n", + " if response.status_code != 200:\n", + " raise Exception(f\"Request to {url} failed with status code {response.status_code}\")\n", + " \n", + " # Parse HTML content\n", + " soup = BeautifulSoup(response.content, features='xml')\n", + " articles = soup.find_all('item')\n", + "\n", + " # Extract news titles\n", + " news_headlines = [article.title.text for article in articles]\n", + "\n", + " return news_headlines\n", + "\n", + "def main():\n", + " # Fetch news for NVIDIA\n", + " print(\"Recent NVIDIA (NVDA) News Headlines:\")\n", + " try:\n", + " nvidia_news = fetch_news(nvidia_news_url)\n", + " for idx, headline in enumerate(nvidia_news, 1):\n", + " print(f\"{idx}. {headline}\")\n", + " except Exception as e:\n", + " print(f\"An error occurred while fetching NVIDIA news: {e}\")\n", + "\n", + " print(\"\\n\") # Add a newline for better readability\n", + "\n", + " # Fetch news for Tesla\n", + " print(\"Recent Tesla (TSLA) News Headlines:\")\n", + " try:\n", + " tesla_news = fetch_news(tesla_news_url)\n", + " for idx, headline in enumerate(tesla_news, 1):\n", + " print(f\"{idx}. {headline}\")\n", + " except Exception as e:\n", + " print(f\"An error occurred while fetching Tesla news: {e}\")\n", + "\n", + "if __name__ == \"__main__\":\n", + " main()\n", "```\n", "\n", - "This script will use the webbrowser module to open tabs in the user's web browser to search for news about the respective companies. Once you have the news articles, we can analyze the content to understand the stock performance reasons.\n", - "\n", - "Execute this script to proceed with the task. If there is any additional information from recent news that might shed light on the stock performance, please provide it, and we can continue our investigation.\n", + "Please save this script as `fetch_stock_news.py` and run it. After running the script, you will receive the latest news headlines for both NVIDIA and Tesla that might help explain their recent stock performance changes.\n", "\n", "--------------------------------------------------------------------------------\n", "\u001b[31m\n", @@ -283,84 +302,236 @@ "\n", "exitcode: 0 (execution succeeded)\n", "Code output: \n", - "Browser tabs with news about NVIDIA Corporation (NVDA) and Tesla, Inc. (TSLA) should now be open.\n", - "\n", - "\n", - "--------------------------------------------------------------------------------\n", - "\u001b[33mResearcher\u001b[0m (to User_Proxy_Auto):\n", - "\n", - "Great, please review the news articles about both NVIDIA Corporation (NVDA) and Tesla, Inc. (TSLA) that opened in your browser tabs. Here's what you should look for in the news:\n", - "\n", - "1. **Financial Reports**: Check for the most recent quarterly earnings reports, any comments about revenue growth or challenges, and guidance for future quarters.\n", - "2. **Product Announcements**: See if there have been any announcements regarding new technology, products, collaborations, or significant updates that could have influenced investor attitudes.\n", - "3. **Regulatory News**: Determine if there have been any legislative changes or regulations reported that may impact the companies' operations.\n", - "4. **Market Trends**: Look for information about the semiconductor market for NVDA and the electric vehicle market for TSLA, as these could be indicators of industry momentum affecting these stocks.\n", - "5. **Executive Moves**: See if there have been any major changes in leadership within either company.\n", - "6. **Broader Market Events**: Lastly, look for news about broad market trends or economic factors that might indirectly influence the stock performance of these companies.\n", - "\n", - "After reviewing the news, you should have a clearer idea of what has been driving the stock prices for NVDA and TSLA. If there are multiple factors influencing the stock performances, the recent news should provide insight into which ones are most significant.\n", - "\n", - "Since I am unable to browse the web, please summarize your findings based on the review of the news articles.\n", - "\n", - "If the information is too much to process or you're seeking specific answers, please provide a summary of the key news points, and I can assist further in analyzing them.\n", - "\n", - "--------------------------------------------------------------------------------\n", - "\u001b[33mUser_Proxy_Auto\u001b[0m (to Researcher):\n", - "\n", - "\n", - "\n", - "--------------------------------------------------------------------------------\n", - "\u001b[33mResearcher\u001b[0m (to User_Proxy_Auto):\n", - "\n", - "It appears there may have been a misunderstanding. In order to proceed with the investigation into the stock performance of NVIDIA Corporation (NVDA) and Tesla, Inc. (TSLA), I would need a summary or at least key points from the recent news articles that you've found in your web browser.\n", - "\n", - "Since I don't have the capability to browse the web or review external sources, I rely on information provided to me. If you've gathered relevant news, please share this information with me. If there are specific headlines, financial report details, announcements, or other pieces of information that you believe could be related to the stock performance, providing those would be the best way to proceed.\n", - "\n", - "Once I have that information, I can help interpret the data and provide possible reasons for the stock performance based on your summary.\n", - "\n", - "Alternatively, if you did not find any relevant information in the news articles or need assistance with another task, please let me know how else I may assist you.\n", - "\n", - "--------------------------------------------------------------------------------\n", - "\u001b[33mUser_Proxy_Auto\u001b[0m (to Researcher):\n", - "\n", + "Recent NVIDIA (NVDA) News Headlines:\n", + "1. Piper Sandler Just Raised Its Nvidia (NVDA) Stock Price Target - InvestorPlace\n", + "2. Nvidia Bucks Tech Weakness With Earnings Due. Is Nvidia A Buy? - Investor's Business Daily\n", + "3. Nvidia (NVDA) Earnings Expected to Grow: What to Know Ahead of Next Week's Release - Yahoo Finance\n", + "4. Nvidia Overtakes Google Parent Alphabet as Third-Largest US Company by Market Value - Investopedia\n", + "5. Institutional Investors Load Up on Nvidia Stock (NASDAQ:NVDA) in Q4 - TipRanks.com - TipRanks\n", + "6. Bridgewater increased Nvidia stake more than 450% in Q4 -filings - Reuters.com\n", + "7. Susquehanna Just Raised Its Nvidia (NVDA) Stock Price Target - InvestorPlace\n", + "8. Why the Market Dipped But Nvidia (NVDA) Gained Today - Yahoo Finance\n", + "9. Nvidia Stock Braces For Q4 Earnings Report - Investor's Business Daily\n", + "10. As earnings loom, Nvidia options traders brace for monster share move - Reuters.com\n", + "11. In Nvidia We Trust: 3 Reasons to Remain Bullish on NVDA Stock - InvestorPlace\n", + "12. Is NVIDIA Corporation's (NASDAQ:NVDA) Recent Stock Performance Tethered To Its Strong Fundamentals? - Yahoo Finance\n", + "13. Mizuho Just Raised Its Price Target on Nvidia (NVDA) Stock - InvestorPlace\n", + "14. Why Nvidia (NVDA) is a Top Stock for the Long-Term - Yahoo Finance\n", + "15. Loop Capital Just Raised Its Price Target on Nvidia (NVDA) Stock to $1200 - InvestorPlace\n", + "16. What To Watch: Nvidia Earnings - Yahoo Finance\n", + "17. UBS Just Upped Its Nvidia (NVDA) Stock Price Target - InvestorPlace\n", + "18. Nvidia's investments in these AI companies sent their stocks soaring - Yahoo Finance\n", + "19. NVDA Stock Alert: Nvidia Is Now the No. 3 Most Valuable Company in the World - InvestorPlace\n", + "20. The Bull Case for NVDA Stock: How Nvidia Could Be Worth $1600 by 2027 - InvestorPlace\n", + "21. Go Home, Short Sellers! There's Nothing Holding Nvidia Stock Back. - InvestorPlace\n", + "22. Nvidia Stock (NASDAQ:NVDA): Analysts Raise Price Targets, Ahead of Q4 Print - TipRanks.com - TipRanks\n", + "23. Nvidia (NVDA) Stock Passes Alphabet (GOOG), Amazon Market Value - Bloomberg\n", + "24. Nvidia's Stock Is Overbought. Is It Time to Sell? - TheStreet\n", + "25. You Missed Out On Nvidia — 7 Stocks Look Better Now, Analysts - Investor's Business Daily\n", + "26. Exclusive: Nvidia pursues $30 billion custom chip opportunity with new unit - Reuters\n", + "27. Nvidia hits major milestone as AI hype shifts eyes to earnings - TheStreet\n", + "28. Nvidia Stock News: NVDA continues into sixth week of consecutive gains - FXStreet\n", + "29. Nvidia (NVDA) Overtakes Amazon (AMZN) in Market Value Amid Rally - Bloomberg\n", + "30. Here's How Much a $1,000 Investment in Nvidia Stock 10 Years Ago Would Be Worth Now - Yahoo Finance\n", + "31. What You Need to Know Ahead of Nvidia's Earnings Report on Wednesday - Investopedia\n", + "32. If You Like Nvidia, Then You Will Love These 2 Hot AI Stocks - The Motley Fool\n", + "33. Loop Capital Starts NVIDIA (NVDA) at Buy, Street High $1,200 Target - StreetInsider.com\n", + "34. Nvidia Stock: Buy Protection Before Earnings (NASDAQ:NVDA) - Seeking Alpha\n", + "35. Nvidia Stock Overtakes Amazon and Google, but Overvaluation Concerns Linger - TheStreet\n", + "36. Where Will Nvidia Stock Be in 10 Years? - The Motley Fool\n", + "37. Will Nvidia Keep Going Up in 2024 as Stock Split Chatter Grows? - Nasdaq\n", + "38. Is Nvidia Stock Still Undervalued Right Now? - Yahoo Finance\n", + "39. Nvidia, Meta Drive These 10 Leaders. But They All Face This One Issue. - Investor's Business Daily\n", + "40. Is NVIDIA Corporation's (NASDAQ:NVDA) Latest Stock Performance A Reflection Of Its Financial Health? - Simply Wall St\n", + "41. Nvidia Is Betting Big on ARM Stock - InvestorPlace\n", + "42. 'Wait Before Diving in,' Says Deutsche Bank About Nvidia Stock - TipRanks.com - TipRanks\n", + "43. How Much $10000 Invested In Nvidia 10 Years Ago Is Worth Now - Investor's Business Daily\n", + "44. 5 Stocks to Buy to Invest Like Nvidia - InvestorPlace\n", + "45. Who the Heck Is SoundHound AI and Why Are Nvidia and SoftBank Investors in It? - RealMoney\n", + "46. Nvidia & Arm: Chip space faces supply issues amid AI demand - Yahoo Finance\n", + "47. The Next Nvidia? 3 Semiconductor Stocks That Investors Shouldn't Ignore - Markets Insider\n", + "48. 1 Wall Street Analyst Boosts Nvidia Price Target by 47%: Here's Why They're Right - The Motley Fool\n", + "49. Magnificent Seven Stocks To Buy And Watch: Tesla Dives On Earnings - Investor's Business Daily\n", + "50. Why Nvidia (NVDA) is a Top Stock for the Long-Term - Zacks Investment Research\n", + "51. Nvidia's maiden 13F filing sends AI-focused tech stock soaring - TheStreet\n", + "52. Nvidia (NVDA) Is Now 3rd Largest in Market Cap: More Upside Left? - Zacks Investment Research\n", + "53. Analysts unveil new stock price target for Nvidia ahead of earnings - TheStreet\n", + "54. Nvidia CEO Jensen Huang Believes Meta Platforms Did One of the Greatest Things for the Artificial Intelligence (AI ... - Yahoo Finance\n", + "55. Is Nvidia Stock Running Into Big Trouble? - Yahoo Finance\n", + "56. Where Will Nvidia Stock Be in 1 Year? - Yahoo Finance\n", + "57. Nvidia market cap threatens Alphabet after overtaking Amazon - Reuters\n", + "58. Monday's top stocks to buy like NVDA - CNBC\n", + "59. Is Palantir (PLTR) the Next Nvidia (NVDA)? - Cabot Wealth Network\n", + "60. Nvidia Is Now Worth More Than Berkshire Hathaway, Tesla, and AMD Combined. But Will It Last? - Yahoo Finance\n", + "61. Nvidia Discloses Stakes In Arm, SoundHound AI, Nano-X - Investor's Business Daily\n", + "62. Wall Street Legend Stanley Druckenmiller: \"Nvidia Is in Nosebleed Territory\" - Yahoo Finance\n", + "63. NVIDIA Corp. stock falls Thursday, underperforms market - MarketWatch\n", + "64. Nvidia Has Invested in Arm Holdings and a Few Other Artificial Intelligence (AI) Stocks -- Should Investors Follow? - The Motley Fool\n", + "65. As Nvidia Stock Hits $720, Analysts See a Downside of 5%. Is the Stock Overvalued? - TheStreet\n", + "66. Nvidia Stock: UBS Note Should Raise Alarms (NASDAQ:NVDA) - Seeking Alpha\n", + "67. Paul Tudor Jones' hedge fund just made a big bet on Nvidia stock - TheStreet\n", + "68. Going Into Earnings, Is Nvidia Stock a Buy, a Sell, or Fairly Valued? - Morningstar\n", + "69. In Nvidia We Trust: 3 Reasons to Remain Bullish on NVDA Stock - TradingView\n", + "70. Stock-Split Watch: Is Nvidia Next? - The Motley Fool\n", + "71. Is Nvidia Building A Little Galaxy To Take On Tesla In Next AI Push? - Investor's Business Daily\n", + "72. Can Nvidia Hit $1000 in 2024? The Crazy Answer. - InvestorPlace\n", + "73. Is Nvidia Stock Still Undervalued Right Now? - The Motley Fool\n", + "74. Nvidia (NVDA) $560 Billion Rally Has Analysts Racing to Boost Targets - Bloomberg\n", + "75. Nvidia (NVDA) reportedly to invest $30 billion into custom AI chip manufacturing - Shacknews\n", + "76. Loop Capital initiates Nvidia coverage with $1,200 price target - Yahoo Finance\n", + "77. Beyond the Ticker: Nvidia - Yahoo Finance\n", + "78. 3 Reasons Why Growth Investors Shouldn't Overlook Nvidia (NVDA) - Zacks Investment Research\n", + "79. Amazon, Alphabet, and Nvidia attract new interest from Wall Street's biggest investors - Yahoo Finance\n", + "80. Think Nvidia's Stock Price Is Crazy? Maybe Not, According to 1 Wall Street Analyst - The Motley Fool\n", + "81. Nvidia CEO Huang says countries must build sovereign AI infrastructure - Reuters\n", + "82. Nvidia (Nvda) Stock Forecast: Is Nvidia Overvalued? - Investment U\n", + "83. Sell Or Hold Nvidia, Arm, Supermicro Stocks? - Investor's Business Daily\n", + "84. Curious about Nvidia (NVDA) Q4 Performance? Explore Wall Street Estimates for Key Metrics - Zacks Investment Research\n", + "85. To Sell or Not to Sell: How to Handle the Inevitable Nvidia Downturn - InvestorPlace\n", + "86. 3 Reasons Nvidia's Stock Is Still a Must-Buy AI Powerhouse in 2024 - InvestorPlace\n", + "87. Beamr Imaging (BMR) Stock Soars 800% on Nvidia Partnership - InvestorPlace\n", + "88. Nano-X stake received by Nvidia as part of 2021 deal, says Cantor Fitzgerald - TipRanks.com - TipRanks\n", + "89. NVIDIA Hits New High, Price Targets Raised - TradingView\n", + "90. Nano-X Imaging (NNOX) Stock Soars 50% on Nvidia Investment - InvestorPlace\n", + "91. NVIDIA Corporation (NVDA) Hit a 52 Week High, Can the Run Continue? - Yahoo Finance UK\n", + "92. Missed Out on Nvidia? My Best AI Stock to Buy and Hold - The Motley Fool\n", + "93. Can This Under-the-Radar Tech Stock Disrupt Nvidia? - The Motley Fool\n", + "94. Wall Street's Next Stock-Split Stocks Are Liable to Be Familiar Names - The Motley Fool\n", + "95. Nvidia or Intel: Goldman Sachs Chooses the Best Chip Stock to Buy - TipRanks.com - TipRanks\n", + "96. Nvidia Earnings Are Coming. How to Protect Against a Loss. - Barron's\n", + "97. Dear NVDA Stock Fans, Mark Your Calendars for Feb. 21 - InvestorPlace\n", + "98. Nvidia, Fed's Goolsbee, earnings themes: Top Stories - Yahoo Finance\n", + "99. Nasty Surprise Awaits Those Buying Nvidia - Money Morning\n", + "100. Nvidia Stock: Strong Market Growth Enables It For 15% Annual Returns (NASDAQ:NVDA) - Seeking Alpha\n", + "\n", + "\n", + "Recent Tesla (TSLA) News Headlines:\n", + "1. Tesla (TSLA) Stock: Another Reason to Buy The Pullback - Nasdaq\n", + "2. Tesla (TSLA) Stock Value and Elon Musk's Magnificent Seven AI Rivals - Bloomberg\n", + "3. Tesla Stock Is Up Again. What's the Latest News. - Barron's\n", + "4. Big Tesla investors are bearish on the stock over the next 6-12 months, Morgan Stanley's Jonas says - Yahoo Finance\n", + "5. How to Buy Tesla Stock (TSLA) - NerdWallet\n", + "6. Altimeter Capital Is Betting Big on Tesla (TSLA) Stock - InvestorPlace\n", + "7. Analyst weighs in on Tesla stock after short sellers pounce - TheStreet\n", + "8. Magnificent Seven Stocks To Buy And Watch: Tesla Dives On Earnings - Investor's Business Daily\n", + "9. Should You Buy Tesla While It's Below $200? - The Motley Fool\n", + "10. Tesla Was Once About Climate Change, Driverless Cars, AI. Now What? - The Wall Street Journal\n", + "11. Tesla (TSLA) Courts Chinese EV Suppliers to Mexico, Stoking Fears in DC - Bloomberg\n", + "12. Tesla: Is Elon Musk actually bad for EV maker's business? - Yahoo Finance\n", + "13. Tesla Stock Is Falling Again. The CPI Inflation Report Can Take Some Blame. - Barron's\n", + "14. Tesla unveils latest move to offset demand slump as stock extends slide - TheStreet\n", + "15. Tesla, BYD Struggle Amid Weak Earnings, Tough EV Climate - Investor's Business Daily\n", + "16. TSLA Stock Warning: Why Tesla Is at the Start of a Long-Term Decline - InvestorPlace\n", + "17. Gradual EV adoption in 2024 favors Tesla, GM: Analyst - Yahoo Finance\n", + "18. Tesla Stock Is Down 26% in 2024. This Number Explains Why. - Barron's\n", + "19. The Truth About Tesla Stock: Should You Buy Now? - Yahoo Finance\n", + "20. Cathie Wood Just Keeps Buying More of This Magnificent AI Stock - Yahoo Finance\n", + "21. 'Barely Any Attempt' From Tesla's Institutional Investors To Argue For Near-Term Bull Case, Says Analyst As ... - Markets Insider\n", + "22. Tesla investors express bearishness on stock: Morgan Stanley - Yahoo Finance\n", + "23. Here's Why Cathie Wood Can't Stop Buying This Artificial Intelligence (AI) Stock - The Motley Fool\n", + "24. Tesla (NASDAQ:TSLA) Slashes Model Y Prices in the U.S. - TipRanks.com - TipRanks\n", + "25. 'Stay Long and Strong,' Says Daniel Ives About Tesla Stock - TipRanks.com - TipRanks\n", + "26. Tesla Eyes Indian Market As Government Nears Policy Shift On Import Duties - Yahoo Finance\n", + "27. Musk's Neuralink switches location of incorporation to Nevada - Reuters\n", + "28. Musk's Tesla to Texas threat: What investors need to know - Yahoo Finance\n", + "29. Tesla, Rivian shares slide amid worries of broad EV slowdown - Yahoo Finance\n", + "30. Is Tesla a Millionaire Maker? - The Motley Fool\n", + "31. Elon Musk Wanted To Sell Tesla To Apple, But CEO Tim Cook Does Not Recall Ever Speaking To Him - Yahoo Finance\n", + "32. Elon Musk discloses up to 20.5% stake in Tesla (NASDAQ:TSLA) - Seeking Alpha\n", + "33. Tesla Shareholders Also Are Frustrated With Delaware’s CEO Pay Decision - Barron's\n", + "34. Elon Musk discloses 20.5% stake in Tesla - Seeking Alpha\n", + "35. Tesla Stock Charts Further Gains. Here's the Latest News. - Barron's\n", + "36. Tesla Stock Could Get Booted From the Mag-7. Buy It Anyway. Here's Why. - InvestorPlace\n", + "37. Tesla Inc. stock falls Monday, underperforms market - MarketWatch\n", + "38. Elon Musk Boosts Stake in Tesla to 20.5% - TipRanks.com - TipRanks\n", + "39. Tesla: Buy The Dip? Here's What You Need To Know (NASDAQ:TSLA) - Seeking Alpha\n", + "40. Tesla Competitors: 7 Rival EV Stocks to Buy | Investing | U.S. News - U.S News & World Report Money\n", + "41. 11 Best Small Cap Electric Vehicle Stocks to Invest In - Yahoo Finance\n", + "42. The Worst-Performing S&P 500 Stock in 2024: Will It Be Tesla? - InvestorPlace\n", + "43. Tesla board silent as investors await next steps after court revokes Elon Musk's $56 billion pay package - CNBC\n", + "44. Why These 3 EV Stocks Could Be Headed for Further Losses - InvestorPlace\n", + "45. Tesla electric vehicle rival files bankruptcy, begins liquidation - TheStreet\n", + "46. AI year-end prediction for Tesla share price - Finbold - Finance in Bold\n", + "47. Elon Musk's Tesla Ownership Hits 20.5%, Over $120 Billion - Markets Insider\n", + "48. Tesla Inc. stock rises Wednesday, outperforms market - MarketWatch\n", + "49. TSLA, RIVN: What Pulled These EV Stocks Lower Yesterday? - TipRanks.com - TipRanks\n", + "50. Tesla Price Yo-Yo Continues With Model Y Hikes In Europe - Investor's Business Daily\n", + "51. Don't Rely Solely on Auto Business for Tesla Stock, Advises Piper Sandler - TipRanks.com - TipRanks\n", + "52. Should You Buy Tesla Inc (TSLA) Stock Friday Morning? - InvestorsObserver\n", + "53. Tesla and Elon Musk Show Why Governance Doesn't Matter—Until It Does - The Wall Street Journal\n", + "54. Tesla Cuts Model Y Prices For A Limited Time — For Now - Investor's Business Daily\n", + "55. Morgan Stanley Weighs in on Tesla Stock Following Investor Meeting - TipRanks.com - TipRanks\n", + "56. Tesla listed as ‘most crowded’ short position among U.S. securities: Hazeltree - TESLARATI\n", + "57. Forget Tesla: Buy These 2 Canadian Stocks to Profit From EV Growth - Yahoo Canada Finance\n", + "58. The Truth About Tesla Stock: Should You Buy Now? - The Motley Fool\n", + "59. Analyst weighs in on Tesla stock as short sellers pounce - jacksonprogress-argus\n", + "60. This Won't Help Elon Musk or Tesla's Stock Price - Money Morning\n", + "61. Tesla Stock is Dead, Long Live Tesla? - Schaeffers Research\n", + "62. Elon Musk moves SpaceX incorporation state to Texas - Yahoo Finance\n", + "63. Elon Musk doubles down on his promise to ditch Delaware. SpaceX is headed for Texas incorporation - CNN\n", + "64. Tesla offers $1K February discount on select Model Y's, seeks \"continuous production for efficiency\" By Investing.com - Investing.com\n", + "65. Tesla Inc (TSLA) Price Target Set: Are Analysts Too Bullish On This Electric Vehicle Stock? - InvestorsObserver\n", + "66. Tesla's Decline: Unveiling Growing Downside Risk (Technical Analysis) (TSLA) - Seeking Alpha\n", + "67. The 'News' That Elon Musk Has Acquired 20.5% Of Tesla Is A 'Nothingburger' (NASDAQ:TSLA) - Seeking Alpha\n", + "68. [FREE ACCESS] HedgAI Signals: 2/13/2024 (Long S&P, TSLA, NFLX) - Hedgeye\n", + "69. TSLA: Tesla Drifts Away from Mag 7 After 22% Drop This Year. Here's Who Can Swoop In. - TradingView\n", + "70. Here's how much Tesla stock Elon Musk now owns - Finbold - Finance in Bold\n", + "71. Analyst weighs in on Tesla stock as short sellers pounce - Rockdale Newton Citizen\n", + "72. Tesla Stock: Waiting For The 'Redwood' - Seeking Alpha\n", + "73. Elon Musk discloses 20.5% stake in Tesla - Seeking Alpha\n", + "74. Tesla's rival BYD is considering a plant in Mexico By Investing.com - Investing.com\n", + "75. Elon Musk discloses 20.5% stake in Tesla - Seeking Alpha\n", + "76. Elon Musk threatens Delaware's hold on corporations - Yahoo Finance\n", + "77. Is Tesla Stock a Buy? - The Globe and Mail\n", + "78. Tesla Stock Pops On Filing Showing Elon Musk Owns 20.5%: Here's What Happened - Tesla (NASDAQ:TSLA) - Benzinga\n", + "79. Tesla Inc (TSLA) Stock Falls -0.76% This Week; Should You Buy? - InvestorsObserver\n", + "80. Electric Vehicle Stock Alert: Tesla Inc (TSLA) Receives Neutral Sentiment Score - InvestorsObserver\n", + "81. Tesla temporarily cuts some U.S. auto prices - Seeking Alpha\n", + "82. Tesla Stock: Waiting For The 'Redwood' - Seeking Alpha\n", + "83. When Does Tesla Stock Become Too Cheap to Ignore? | investing.com - Investing.com\n", + "84. Electric Vehicle Stock Alert: Should You Charge Your Portfolio With Tesla Inc (TSLA) Monday? - InvestorsObserver\n", + "85. Better Buy in 2024: Rivian or Tesla Stock? - The Globe and Mail\n", + "86. The Tesla share price is down 24% this year! Can it remain in the Magnificent 7? - Yahoo Finance UK\n", + "87. Was Tesla's $17B Monday Meltdown Justified? Bullish Vs. Bearish Analysts Evaluate Model Y Price Cut Impact - TradingView\n", + "88. Nvidia Is Now Worth More Than Berkshire Hathaway, Tesla, and AMD Combined. But Will It Last? - The Globe and Mail\n", + "89. $1,000 invested in Tesla stock at start of 2024 returned - Finbold - Finance in Bold\n", + "90. Tesla emits more negative signals - Analysis - 15-02-2024 - Economies.com\n", + "91. Elon Musk Boosts Stake in Tesla to 20.5% - MSN\n", + "92. Will Nvidia Keep Going Up in 2024 as Stock Split Chatter Grows? - The Globe and Mail\n", + "93. Remote software updates transforming auto industry, experts say - The Globe and Mail\n", + "94. Institutional investors feel Tesla stock will underperform over 6 months - Morgan Stanley - StreetInsider.com\n", + "95. 2 Phenomenal Artificial Intelligence (AI) Stocks Using Nvidia's Technologies That I Can't Stop Buying - The Globe and Mail\n", + "96. Tesla Stock Forecast: Bullish. But Not For the Reason You Think - Investment U\n", + "97. Ford CEO urges the Wall Street to 'stop looking at Tesla' - InvestorsObserver\n", + "98. Elon Musk Set To Appeal Tesla Compensation Ruling: Title Of World's Richest Person At Stake - Tesla (NASD - Benzinga\n", + "99. Elon Musk's Neuralink transfers incorporation to Nevada - India TV News\n", + "100. Tesla Has Problems. Could QuantumScape Be a Good Choice for Growth Investors? - The Globe and Mail\n", "\n", "\n", "--------------------------------------------------------------------------------\n", "\u001b[33mResearcher\u001b[0m (to User_Proxy_Auto):\n", "\n", - "It seems there is no new information provided to assess the stock performance of NVIDIA Corporation (NVDA) and Tesla, Inc. (TSLA). Without specific details, I can suggest possible general factors based on common reasons that typically influence stock performance:\n", - "\n", - "1. **Earnings Reports**: A company's stock often reacts to earnings reports. NVDA might have had stronger-than-expected earnings and outlook, while TSLA might have reported weaker results or provided disappointing guidance.\n", - " \n", - "2. **Product and Service Developments**: Any new product launches or updates may have affected these stocks. For example, NVDA could be benefiting from new GPU technologies or partnerships in AI or data centers, while TSLA might be facing a slow rollout of new electric vehicle models.\n", - "\n", - "3. **Supply Chain and Manufacturing**: Given the global supply chain issues, NVDA could have successfully navigated the challenges, whereas TSLA might have struggled due to dependency on components like batteries.\n", - "\n", - "4. **Regulatory Environment**: Changes in regulations could impact these companies differently, especially given the industries they operate within. This could include things like semiconductor tariffs or EV subsidies and legislation.\n", - "\n", - "5. **Market Conditions**: Broader market conditions or shifts in investor sentiment toward the tech sector versus the auto sector could be at play. Rising interest rates or economic downturns can also affect investor behavior.\n", - "\n", - "6. **Strategic Announcements**: Any significant changes in company strategy, such as mergers, acquisitions, or shifts in business focus, might influence stock prices.\n", - "\n", - "7. **Leadership Changes**: Executive leadership changes can affect investor confidence and stock performance.\n", + "Analyzing the provided news headlines, we can attempt to comprehend why NVIDIA (NVDA) and Tesla (TSLA) stock prices have shown differing performance over the past month.\n", "\n", - "8. **Global Events**: Macro events like geopolitical tensions, economic policies, or major global events can have wide-ranging effects on the stock market.\n", + "For NVIDIA (NVDA), several headlines suggest positive catalysts:\n", "\n", - "9. **Investor Sentiment**: Sometimes the stock market moves based on sentiment, trends, and investor perceptions, which can sometimes be disconnected from a company's fundamental performance.\n", + "1. **Earnings Growth and Optimism**: There are multiple news headlines indicating expectations of earnings growth and raised price targets by various investment firms (e.g., Piper Sandler, Susquehanna).\n", + "2. **Market Value Increase**: NVIDIA has reportedly overtaken Google Parent Alphabet as the third-largest US company by market value, reflecting high investor confidence.\n", + "3. **Investment and Stake Increases**: There are reports of institutional investors increasing stakes in NVIDIA, indicating bullish sentiment in the investment community.\n", + "4. **Focus on AI and Technology Advancements**: NVIDIA is discussed in the context of artificial intelligence, with investment in AI companies and anticipation of revenue from AI-related technology.\n", + "5. **Bullish Analyst Reports and Price Target Increases**: Various analysts have raised their price targets for NVIDIA's stock, offering a positive outlook for the company's future.\n", "\n", - "Without the latest news or specific information relating to NVDA and TSLA, this is as specific as the analysis can get. To get a more detailed understanding, you would need to look into the recent events specifically related to both companies.\n", + "For Tesla (TSLA), the headlines suggest a mix of concerns and opportunities:\n", "\n", - "If there is no further information or analysis needed at this time, that concludes the investigation. Please let me know if there is anything else I can assist with.\n", + "1. **Stock Price Volatility**: Headlines note Tesla's stock price volatility and the negative bearish sentiment among some institutional investors.\n", + "2. **Management and Corporate Governance Query**: There are references to concerns regarding Elon Musk's focus and the impact of his managerial decisions on Tesla's business.\n", + "3. **Possibility of Slowing EV Demand**: Some articles suggest a slump in demand for electric vehicles, which could be impacting Tesla's sales and valuation.\n", + "4. **Economic Overview and Macro Factors**: Reports indicate that the wider economic conditions, such as inflation reports and potential slowdown, may be influencing Tesla's stock performance.\n", + "5. **Price Adjustments and Strategy**: Tesla is making price adjustments to its vehicle lineup, which can indicate a strategy to boost demand or respond to market pressures.\n", "\n", - "--------------------------------------------------------------------------------\n", - "\u001b[33mUser_Proxy_Auto\u001b[0m (to Researcher):\n", - "\n", - "\n", - "\n", - "--------------------------------------------------------------------------------\n", - "\u001b[33mResearcher\u001b[0m (to User_Proxy_Auto):\n", + "From this qualitative analysis of the recent news headlines, we can infer that NVIDIA's stock price increase may be driven by positive financial expectations, advancements in AI technologies, and increased investment interest. In contrast, Tesla's decline might be influenced by market concerns about demand and potential impacts of economic factors, as well as governance and strategy questions related to Elon Musk's leadership.\n", "\n", - "Since there doesn't seem to be any further information to process or additional requests for assistance, it looks like we've reached the conclusion of this task. If you need help in the future with similar inquiries or any other questions, feel free to reach out. \n", + "Investors often consider such news and analyst reports when making investment decisions, which can lead to the changes in stock performance observed. It is important to remember that stock market performance is multifaceted and can be influenced by a large variety of factors, including those not mentioned in the latest news headlines. For a complete understanding of any stock's performance, an in-depth analysis including financial statements, market trends, and expert analysis would be necessary.\n", "\n", "TERMINATE\n", "\n", @@ -372,19 +543,15 @@ "\n", "With the following carryover: \n", "I want to include a figure or a table of data in the blogpost.\n", - "The script has executed successfully and provided the following results:\n", + "Great! According to the executed script, the current stock price for NVIDIA Corporation (NVDA) is $732.36, with a positive percentage change of 30.65% over the past month, indicating notable growth. Meanwhile, Tesla, Inc. (TSLA) has a current stock price of $200.46, but it has experienced a negative percentage change of -7.00% over the past month, indicating a decrease in its value.\n", "\n", - "- The current stock price for NVIDIA Corporation (NVDA) is $722.48.\n", - "- The current stock price for Tesla, Inc. (TSLA) is $188.13.\n", - "- NVDA has experienced a percentage increase of 28.14% over the past month.\n", - "- TSLA has experienced a percentage decrease of -14.45% over the past month.\n", + "It seems that NVIDIA has had a particularly strong performance over the past month, while Tesla has seen a decline in its stock price. Keep in mind that the stock market can be influenced by a wide array of factors, including but not limited to company performance, industry shifts, market trends, and global economic conditions.\n", "\n", - "These results indicate that over the past month, NVIDIA’s stock has seen a significant increase in value, whereas Tesla’s stock has decreased in value. Keep in mind that stock prices and their performance are subject to rapid change and can vary within minutes.\n", + "Please ensure to verify these figures with real-time data or additional financial news sources to get the most up-to-date information, as the stock market is volatile and prices can change rapidly.\n", "\n", - "If you require any further assistance, please let me know. Otherwise, that concludes our task.\n", + "If you need any further assistance or have additional questions, feel free to ask. Otherwise, that concludes our task.\n", "\n", - "\n", - "To investigate the stock performance of NVIDIA Corporation (NVDA) and Tesla, Inc. (TSLA), potential factors to consider include recent earnings reports, significant news events, industry trends, market conditions, and broader macroeconomic factors. Without specific external news or data, generalized potential reasons for NVDA's stock increase and TSLA's stock decrease were provided, including earnings performance, product and service developments, supply chain and manufacturing issues, regulatory environment changes, strategic company announcements, leadership changes, and global events. Further detailed analysis requires external news and data, which wasn't supplied during the conversation. The investigation concludes due to a lack of additional information.\u001b[0m\n", + "NVIDIA's (NVDA) stock price increase could stem from positive earnings growth projections, its ascent to the third-largest US company by market value, strong investor confidence signaled by institutional investments, and its strategic focus on artificial intelligence. Meanwhile, Tesla's (TSLA) price decline may relate to concerns about slowing electric vehicle demand, volatility and bearish sentiment among institutional investors, corporate governance questions pertaining to Elon Musk, and broader economic conditions impacting stock performance. These interpretations are based on recent news headlines and suggest that NVIDIA is currently favored in the market, while Tesla is facing challenges that may be causing its stock value to decrease.\u001b[0m\n", "\u001b[34m\n", "********************************************************************************\u001b[0m\n", "\u001b[33mUser_Proxy\u001b[0m (to writer):\n", @@ -392,109 +559,98 @@ "Develop an engaging blog post using any information provided.\n", "Context: \n", "I want to include a figure or a table of data in the blogpost.\n", - "The script has executed successfully and provided the following results:\n", - "\n", - "- The current stock price for NVIDIA Corporation (NVDA) is $722.48.\n", - "- The current stock price for Tesla, Inc. (TSLA) is $188.13.\n", - "- NVDA has experienced a percentage increase of 28.14% over the past month.\n", - "- TSLA has experienced a percentage decrease of -14.45% over the past month.\n", + "Great! According to the executed script, the current stock price for NVIDIA Corporation (NVDA) is $732.36, with a positive percentage change of 30.65% over the past month, indicating notable growth. Meanwhile, Tesla, Inc. (TSLA) has a current stock price of $200.46, but it has experienced a negative percentage change of -7.00% over the past month, indicating a decrease in its value.\n", "\n", - "These results indicate that over the past month, NVIDIA’s stock has seen a significant increase in value, whereas Tesla’s stock has decreased in value. Keep in mind that stock prices and their performance are subject to rapid change and can vary within minutes.\n", + "It seems that NVIDIA has had a particularly strong performance over the past month, while Tesla has seen a decline in its stock price. Keep in mind that the stock market can be influenced by a wide array of factors, including but not limited to company performance, industry shifts, market trends, and global economic conditions.\n", "\n", - "If you require any further assistance, please let me know. Otherwise, that concludes our task.\n", + "Please ensure to verify these figures with real-time data or additional financial news sources to get the most up-to-date information, as the stock market is volatile and prices can change rapidly.\n", "\n", + "If you need any further assistance or have additional questions, feel free to ask. Otherwise, that concludes our task.\n", "\n", - "To investigate the stock performance of NVIDIA Corporation (NVDA) and Tesla, Inc. (TSLA), potential factors to consider include recent earnings reports, significant news events, industry trends, market conditions, and broader macroeconomic factors. Without specific external news or data, generalized potential reasons for NVDA's stock increase and TSLA's stock decrease were provided, including earnings performance, product and service developments, supply chain and manufacturing issues, regulatory environment changes, strategic company announcements, leadership changes, and global events. Further detailed analysis requires external news and data, which wasn't supplied during the conversation. The investigation concludes due to a lack of additional information.\n", + "NVIDIA's (NVDA) stock price increase could stem from positive earnings growth projections, its ascent to the third-largest US company by market value, strong investor confidence signaled by institutional investments, and its strategic focus on artificial intelligence. Meanwhile, Tesla's (TSLA) price decline may relate to concerns about slowing electric vehicle demand, volatility and bearish sentiment among institutional investors, corporate governance questions pertaining to Elon Musk, and broader economic conditions impacting stock performance. These interpretations are based on recent news headlines and suggest that NVIDIA is currently favored in the market, while Tesla is facing challenges that may be causing its stock value to decrease.\n", "\n", "--------------------------------------------------------------------------------\n", "\u001b[33mwriter\u001b[0m (to User_Proxy):\n", "\n", - "**Roller Coaster Markets: The Ups and Downs of NVDA and TSLA Stocks**\n", - "\n", - "The stock market is a melting pot of numbers, emotions, predictions, and ever-changing trends. Just when you think you have it figured out, it takes a sharp turn, leaving many investors bewildered in its wake. This turbulent affair is best exemplified by the recent performances of two high-profile tech titans: NVIDIA Corporation (NVDA) and Tesla, Inc. (TSLA). In the span of a month, we've witnessed a tale of two very different fortunes, with NVDA soaring and TSLA dropping. Let's dive into these twists and turns with the help of some compelling numbers.\n", + "**The Tale of Two Tech Giants: A Stock Market Saga**\n", "\n", - "### A Tale of Two Stocks: NVIDIA vs. Tesla\n", + "In the ever-changing landscape of the stock market, the tales of rising stars and waning giants are narrated daily through the cold, hard numbers flashing on traders' screens. In the latest chapter of this financial epic, we turn our gaze to two behemoths of innovation: NVIDIA Corporation (NVDA) and Tesla, Inc. (TSLA). Each tells a story as captivating as the next, but with decidedly different plot twists.\n", "\n", - "First, let's set the scene with the main actors: our current stock prices. As of now, NVIDIA stands at a commanding $722.48, while Tesla has taken a more modest position at $188.13. These figures are not just digits on a screen; they represent the bloodline of the companies in the financial markets. They're the instantly-updatable scorecards telling us how the companies are faring in the eyes of investors.\n", + "**NVIDIA's Ascension: A Graphical Powerhouse**\n", "\n", - "But the plot thickens when we look at the performance over the past month. NVIDIA has seen a stellar rise, its stock price ballooning by 28.14%. Conversely, Tesla's numbers tell a somber story, with its value deflating by -14.45%. What could be behind this diverging fate of two tech giants? Before we venture a guess, take a look at the data neatly laid out:\n", + "Picture this: a company whose fortunes are soaring, much like the rockets that its technology could one day help to navigate through the stars. NVIDIA, known for transforming pixels into beautiful imagery, is now transforming its numbers with just as much finesse. Let's delve into the specifics with a table that paints a thousand words—or in this case, numbers:\n", "\n", - "| Company | Current Stock Price | 1-Month Performance |\n", - "|---------|---------------------|---------------------|\n", - "| NVDA | $722.48 | +28.14% |\n", - "| TSLA | $188.13 | -14.45% |\n", + "| Company | Current Stock Price | Percentage Change (Last Month) |\n", + "|---------|---------------------|--------------------------------|\n", + "| NVIDIA (NVDA) | $732.36 | +30.65% |\n", + "| Tesla (TSLA) | $200.46 | -7.00% |\n", "\n", - "### Understanding the Tides of Tech Stocks\n", + "What we see is a whopping 30.65% increase in NVIDIA's stock price over the past month. But what has fueled this impressive growth? Analysts might point to a confluence of factors: a resounding optimism in earnings growth, NVIDIA's coronation as the third-largest US company by market value, a strong current of institutional investor confidence, and a strategic play in the buzz-filled field of artificial intelligence.\n", "\n", - "Now, to peel back the layers of these statistics, we need to consider a variety of elements that can influence a stock's allure. For NVIDIA, this commanding uptick could be attributed to several factors. Earnings reports beating expectations, breakthroughs in AI and deep learning technologies, or a bullish semiconductor market overall might all play roles in lifting up the NVDA stock.\n", + "**Tesla's Twist: When Currents Shift**\n", "\n", - "Tesla's journey down the stock price hill could be pinned to a wider range of possibilities—perhaps disappointing earnings, production bottlenecks, or even the CEO's latest Twitter escapade could have investors hedging their bets. The automotive industry is also notoriously sensitive to economic shifts, supply chain issues, and regulatory news, all of which could impact TSLA's value.\n", + "Contrast this with the journey Tesla has embarked upon. Once a darling of the market, it presently faces a twist in its narrative, marked by a 7% decrease in its stock price within the same timeframe. Tesla's plot thickens with a concoction of concerns: a potential slowdown in the electric vehicle market, turbulence sewn by bearish institutional sentiment, a series of questions around corporate governance, and the larger, shadowy figure of global economic uncertainty that lurks in the background.\n", "\n", - "### Weighing the Market's Mood Swings\n", + "**Deciphering the Stories Behind the Statistics**\n", "\n", - "As smart as it would be to chalk up NVIDIA's rally and Tesla's slouch entirely to company-specific news, let's not discount broader market conditions and macroeconomic factors. Investor sentiment can be swayed by global events, interest rates, and shifts in technology trends. The market's current darling could quickly become tomorrow's underdog if the winds change direction.\n", + "What these figures don't capture is the rich tapestry of human decisions, innovations, fears, and aspirations that drive them. NVIDIA's current favored status among investors may be underpinned by its key strides in technology that promise to unlock new capabilities in various sectors, while Tesla's challenges might reflect the intricate dance of market expectations with real-world deliverables. Each stock price movement is a reflection of myriad stories unfolding within and around these corporate giants.\n", "\n", - "### A Chapter Yet to Finish\n", + "**An Investor's Prose: Caution Amidst Narratives**\n", "\n", - "As much as these numbers paint a vivid picture of the present, it's crucial to remember that the markets are dynamic. What we see today could very well be upended by tomorrow's news, a sudden geopolitical shakeup, or even a tweet. For now, though, NVIDIA shareholders can bask in the green glow of their portfolio screens, while Tesla's faithful must buckle up and ride out the storm, hopeful for smoother roads ahead.\n", + "As a savvy observer of the market's grand narrative, caution remains a protagonist. Remember, stock prices are as volatile as the oceans—serene one day, stormy the next. While NVIDIA's rise and Tesla's stumble are today's headlines, tomorrow might tell a different tale. For the most accurate pulse, ensure you're synced with the heartbeat of the market through real-time data and a diversified suite of financial news sources.\n", "\n", - "### Final Thoughts\n", + "Today, NVIDIA basks in the glow of market approval, while Tesla navigates a patch of rough seas. But as any veteran of the markets will tell you, fortunes can reverse in the blink of an eye. As long as innovation remains at their core and adaptability in their strategies, both companies are poised for the next chapter in their storied existences.\n", "\n", - "Always keep in mind, the stock market's story is a continuing saga, not a short tale. The graph that ascends today might dip tomorrow, and the sagging curve might soon find its uplift. Wise is the investor who looks beyond the immediate drama, focusing on the long-term narrative built on solid fundamentals, effective strategies, and a keen eye for the unpredictable ebb and flow of financial tides.\n", - "\n", - "Stocks are inherently volatile, and while today's data gives us a snapshot, only time will tell the full story. What we can do is watch, analyze, and perhaps, if we're bold enough, place our bets on the outcome of the next chapter in the thrilling manuscript of the stock market.\n", - "\n", - "Stay tuned, investors. The market's pen is never at rest.\n", + "And whether as cautionary tale or heroic epic, you can be certain that the market will be there to tell the tale.\n", "\n", "TERMINATE\n", "\n", "--------------------------------------------------------------------------------\n", "\u001b[33mUser_Proxy\u001b[0m (to writer):\n", "\n", - "Enrich the blogpost and mention Microsoft. \n", + "Too short. Enrich it. \n", "\n", "--------------------------------------------------------------------------------\n", "\u001b[33mwriter\u001b[0m (to User_Proxy):\n", "\n", - "**The Highs and Lows of Tech Stocks: NVIDIA, Tesla, and Microsoft's Market Dance**\n", + "**The Silicon Symbiosis: A Contrast in Fortunes**\n", "\n", - "In the theater of the stock market, the drama is unending and the characters many, each playing its part with gusto in a play directed by invisible hands. Today's spotlight shines on a trio of modern technology giants: NVIDIA Corporation (NVDA), Tesla, Inc. (TSLA), and the ever-present Microsoft Corporation (MSFT). The intrigue lies in their recent performances, moving to different rhythms in the vast orchestra of the marketplace.\n", + "In the realm of high technology and financial markets, the narrative is as dynamic as it is unpredictable. Every tradesman's tick and investor's tock is part of an intricate symphony, with movements both adagio and allegro. Today, we cast our spotlight on two titans that have come to symbolically represent the march of modern innovation: NVIDIA Corporation (NVDA) and Tesla, Inc. (TSLA). Their stories, though interwoven by the common thread of cutting-edge technology, are currently humming different melodies in the stock market concerto.\n", "\n", - "### NVDA Soars, TSLA Sours: Microsoft Keeps Tempo\n", + "**NVIDIA's Flourishing Financial Canvas**\n", "\n", - "Let's initiate our market overture with a glance at NVIDIA, the maestro of the moment, which boasts a current stock price of $722.48, having swelled by an impressive 28.14% over the past month. In stark contrast stands Tesla, its stock price now at $188.13, with a recent history punctuated by a 14.45% decline. But what of Microsoft, you ask? The seasoned performer sits at $285.30, with a slight month-on-month crescendo of 1.6%. Here's the data at a glance:\n", + "Allow me to direct your eyes to a visual that speaks volumes—a financial figure that captivates the analytical mind as surely as a work of art steals the gaze of its onlooker:\n", "\n", - "| Company | Current Stock Price | 1-Month Performance |\n", - "|---------|---------------------|---------------------|\n", - "| NVDA | $722.48 | +28.14% |\n", - "| TSLA | $188.13 | -14.45% |\n", - "| MSFT | $285.30 | +1.6% |\n", + "*Table 1: Comparative Stock Performances*\n", "\n", - "### A Symphony of Factors: Decoding the Notes\n", + "| Company | Current Stock Price | Percentage Change (Last Month) |\n", + "|---------|---------------------|--------------------------------|\n", + "| NVIDIA (NVDA) | $732.36 | +30.65% |\n", + "| Tesla (TSLA) | $200.46 | -7.00% |\n", "\n", - "NVIDIA's symphonic rise could be the result of sweeping product announcements, promising AI adventures, or perhaps the basic cadence of a buoyant semiconductor sector. On the opposite end, Tesla's current decrescendo may echo supply chain dissonances, or maybe the electric vehicle maestro's tweets have struck a dissonant chord with investors.\n", + "In just one month, NVIDIA has seen a dramatic surge in its stock price, a robust 30.65% climb that mirrors the steep inclines of a mountainous ascent. Yet, this ascent is no mere accident of fate. It has been prodded by a series of catalysts, each more powerful than the last. Analysts may suggest that NVIDIA's performance is reflective of a positive outlook on earnings growth, the magnifying glass of confidence from institutional investors, and its strategic investment in artificial intelligence—a field that promises to redefine the boundaries of possibility.\n", "\n", - "In this complex composition, Microsoft's note is more stable, gently swaying with the market's rhythm, a testament to its diversified portfolio and its ability to maintain its stronghold as a foundational figure in both enterprise and consumer software realms.\n", + "This growth is no less significant for having catapulted NVIDIA to newfound heights, positioning it as the third-largest U.S. company by market value. In the eyes of many, NVIDIA is not merely a company but a canvas upon which the future of technology is being painted.\n", "\n", - "### The Dynamics of Diverse Portfolios: Microsoft's Melody\n", + "**Tesla's Tales of Caution and Volatility**\n", "\n", - "Microsoft, an elder statesman of the tech world, has a more diversified portfolio, which could explain its relatively stable crescendo in a landscape prone to cacophony. Its persistent evolution—from its cloud computing juggernaut Azure to its gaming arm with Xbox to innovations in AI and business applications—provides a balance that often steadies it against the market's more erratic tempo changes.\n", + "In sharp contrast stands Tesla, the electric automaker whose brand has become synonymous with the future of transportation. Despite the sheen of innovation and Elon Musk's vision, the company's current stock price reflects a narrative tinged with uncertainty. The -7% dip might be seen as a momentary pause in the company’s otherwise stellar performance, but it whispers tales of doubt regarding slowing electric vehicle demand and the complex ballet of investor sentiment in the face of corporate governance queries and Musk's multifaceted public persona.\n", "\n", - "### Tech Stocks and The Market's Great Concerto\n", + "The fluctuating script encapsulating Tesla's value also underscores the inherent volatility of the stock market, heavily influenced by external economic narratives and internal corporate dramas. Tesla's story is a complex one, layered with futuristic ambitions tempered by the current climate of economic restraint.\n", "\n", - "Tech stocks, in general, are prone to rapid movements that seemingly follow the beat of an unseen conductor. Market sentiment shifts with a blend of technology trends, financial reports, and global economic themes. Savvy investors aim to read the sheet music of market indicators, tuning their strategies to benefit from the harmonics while being wary of the potential for a sudden fortissimo or pianissimo.\n", + "**The Interplay of Market Forces and Human Emotion**\n", "\n", - "### Understanding the Crescendos and Diminuendos \n", + "Beyond the arithmetic of stock prices lies the human element: the restless drive for invention against the cautious tug of preservation. NVIDIA’s surge speaks of human ambition crystallized into financial momentum, while Tesla’s recent dip reflects the cautious pullback of a market wary of sprinting ahead of its own shadow.\n", "\n", - "As we take in the current tableau—NVIDIA's crescendo, Tesla's diminuendo, and Microsoft's moderato—it's important to understand that investment strategies can seldom rely on the rhythm of a single month. It takes an ear for the long-term melody and an eye on how each company composes its future initiatives.\n", + "But these stock price reflections are but shadows of a larger drama—the ebb and flow of market sentiments that can turn on the dime of a quarterly report or a tweet-storm. The savvy investor or curious spectator must look beneath the surface waves to the currents below, charting movements with the precision of a cartographer mapping uncharted seas.\n", "\n", - "### The Ever-Unfolding Composition\n", + "**Heed the Market's Mutable Muse**\n", "\n", - "In the stock market's grand composition, NVIDIA, Tesla, and Microsoft are but individual movements within a much larger symphony. Some may rise dramatically, their stocks creating breathtaking harmonies, while others may endure temporary setbacks, their share prices softly ebbing. Microsoft's steady presence serves as a reminder that in the tumult of tech stocks, a diverse and balanced approach often holds the key to sustaining a harmonious investment portfolio.\n", + "We conclude with a note of prudence: embrace the complex stories of NVIDIA and Tesla, but anchor your investment decisions in the bedrock of real-time data and comprehensive analytics. The stock market is a creature of change, and its story is written anew each day. Embrace the power of informed speculation, but be wary of the market's mutable muse.\n", "\n", - "The tale of these tech titans is an unfolding narrative, a reminder that fortunes in this domain can pivot on the smallest of dimes. The key takeaway for the investor audience: clap for the crescendos, but never ignore the subtler notes in the background. Each stock plays its part, and each investor composes their own unique investment opus.\n", + "For as the curtains fall on today's account of NVIDIA's stellar ascension and Tesla's contemplative descent, one can only wonder what twists the next act will hold. The market is, after all, the grandest theater of all—a stage where fortunes are made and dreams may either be woven into reality or unravel before the audience's eyes.\n", "\n", - "Until our next market performance review, let's keep a keen eye on the baton's next move—as unpredictable as it may be. For in the stock market's sonata, today's silence could precede tomorrow's symphony.\n", + "As the tales of these two tech giants continue to unfold, whether they lead to further success or unexpected downturns, they exemplify the vibrancy and the volatility inherent in our quest to predicate the future on the promise of progress.\n", "\n", "TERMINATE\n", "\n", @@ -561,13 +717,14 @@ " \"sender\": user_proxy_auto,\n", " \"recipient\": research_assistant,\n", " \"message\": financial_tasks[1],\n", + " \"max_turns\": 2, # max number of turns for the conversation (added for demo purposes, generally not necessarily needed)\n", " \"summary_method\": \"reflection_with_llm\",\n", " },\n", " {\n", " \"sender\": user_proxy,\n", " \"recipient\": writer,\n", " \"message\": writing_tasks[0],\n", - " \"carryover\": \"I want to include a figure or a table of data in the blogpost.\",\n", + " \"carryover\": \"I want to include a figure or a table of data in the blogpost.\", # additional carryover to include to the conversation (added for demo purposes, generally not necessarily needed)\n", " },\n", " ]\n", ")" @@ -588,7 +745,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 5, "metadata": {}, "outputs": [ { @@ -596,74 +753,69 @@ "output_type": "stream", "text": [ "*****0th chat*******:\n", - "The script has executed successfully and provided the following results:\n", - "\n", - "- The current stock price for NVIDIA Corporation (NVDA) is $722.48.\n", - "- The current stock price for Tesla, Inc. (TSLA) is $188.13.\n", - "- NVDA has experienced a percentage increase of 28.14% over the past month.\n", - "- TSLA has experienced a percentage decrease of -14.45% over the past month.\n", + "Great! According to the executed script, the current stock price for NVIDIA Corporation (NVDA) is $732.36, with a positive percentage change of 30.65% over the past month, indicating notable growth. Meanwhile, Tesla, Inc. (TSLA) has a current stock price of $200.46, but it has experienced a negative percentage change of -7.00% over the past month, indicating a decrease in its value.\n", "\n", - "These results indicate that over the past month, NVIDIA’s stock has seen a significant increase in value, whereas Tesla’s stock has decreased in value. Keep in mind that stock prices and their performance are subject to rapid change and can vary within minutes.\n", + "It seems that NVIDIA has had a particularly strong performance over the past month, while Tesla has seen a decline in its stock price. Keep in mind that the stock market can be influenced by a wide array of factors, including but not limited to company performance, industry shifts, market trends, and global economic conditions.\n", "\n", - "If you require any further assistance, please let me know. Otherwise, that concludes our task.\n", + "Please ensure to verify these figures with real-time data or additional financial news sources to get the most up-to-date information, as the stock market is volatile and prices can change rapidly.\n", "\n", + "If you need any further assistance or have additional questions, feel free to ask. Otherwise, that concludes our task.\n", "\n", "Human input in the middle: []\n", - "Conversation cost: ({'total_cost': 0.08859, 'gpt-4': {'cost': 0.08859, 'prompt_tokens': 1597, 'completion_tokens': 678, 'total_tokens': 2275}}, {'total_cost': 0})\n", + "Conversation cost: ({'total_cost': 0.09200999999999998, 'gpt-4': {'cost': 0.09200999999999998, 'prompt_tokens': 1597, 'completion_tokens': 735, 'total_tokens': 2332}}, {'total_cost': 0.04589999999999999, 'gpt-4': {'cost': 0.04589999999999999, 'prompt_tokens': 1096, 'completion_tokens': 217, 'total_tokens': 1313}})\n", "\n", "\n", "\n", "*****1th chat*******:\n", - "To investigate the stock performance of NVIDIA Corporation (NVDA) and Tesla, Inc. (TSLA), potential factors to consider include recent earnings reports, significant news events, industry trends, market conditions, and broader macroeconomic factors. Without specific external news or data, generalized potential reasons for NVDA's stock increase and TSLA's stock decrease were provided, including earnings performance, product and service developments, supply chain and manufacturing issues, regulatory environment changes, strategic company announcements, leadership changes, and global events. Further detailed analysis requires external news and data, which wasn't supplied during the conversation. The investigation concludes due to a lack of additional information.\n", + "NVIDIA's (NVDA) stock price increase could stem from positive earnings growth projections, its ascent to the third-largest US company by market value, strong investor confidence signaled by institutional investments, and its strategic focus on artificial intelligence. Meanwhile, Tesla's (TSLA) price decline may relate to concerns about slowing electric vehicle demand, volatility and bearish sentiment among institutional investors, corporate governance questions pertaining to Elon Musk, and broader economic conditions impacting stock performance. These interpretations are based on recent news headlines and suggest that NVIDIA is currently favored in the market, while Tesla is facing challenges that may be causing its stock value to decrease.\n", "Human input in the middle: []\n", - "Conversation cost: ({'total_cost': 0.36354, 'gpt-4': {'cost': 0.36354, 'prompt_tokens': 8864, 'completion_tokens': 1627, 'total_tokens': 10491}}, {'total_cost': 0})\n", + "Conversation cost: ({'total_cost': 0.45192, 'gpt-4': {'cost': 0.45192, 'prompt_tokens': 12414, 'completion_tokens': 1325, 'total_tokens': 13739}}, {'total_cost': 0.45192, 'gpt-4': {'cost': 0.45192, 'prompt_tokens': 12414, 'completion_tokens': 1325, 'total_tokens': 13739}})\n", "\n", "\n", "\n", "*****2th chat*******:\n", - "**The Highs and Lows of Tech Stocks: NVIDIA, Tesla, and Microsoft's Market Dance**\n", + "**The Silicon Symbiosis: A Contrast in Fortunes**\n", "\n", - "In the theater of the stock market, the drama is unending and the characters many, each playing its part with gusto in a play directed by invisible hands. Today's spotlight shines on a trio of modern technology giants: NVIDIA Corporation (NVDA), Tesla, Inc. (TSLA), and the ever-present Microsoft Corporation (MSFT). The intrigue lies in their recent performances, moving to different rhythms in the vast orchestra of the marketplace.\n", + "In the realm of high technology and financial markets, the narrative is as dynamic as it is unpredictable. Every tradesman's tick and investor's tock is part of an intricate symphony, with movements both adagio and allegro. Today, we cast our spotlight on two titans that have come to symbolically represent the march of modern innovation: NVIDIA Corporation (NVDA) and Tesla, Inc. (TSLA). Their stories, though interwoven by the common thread of cutting-edge technology, are currently humming different melodies in the stock market concerto.\n", "\n", - "### NVDA Soars, TSLA Sours: Microsoft Keeps Tempo\n", + "**NVIDIA's Flourishing Financial Canvas**\n", "\n", - "Let's initiate our market overture with a glance at NVIDIA, the maestro of the moment, which boasts a current stock price of $722.48, having swelled by an impressive 28.14% over the past month. In stark contrast stands Tesla, its stock price now at $188.13, with a recent history punctuated by a 14.45% decline. But what of Microsoft, you ask? The seasoned performer sits at $285.30, with a slight month-on-month crescendo of 1.6%. Here's the data at a glance:\n", + "Allow me to direct your eyes to a visual that speaks volumes—a financial figure that captivates the analytical mind as surely as a work of art steals the gaze of its onlooker:\n", "\n", - "| Company | Current Stock Price | 1-Month Performance |\n", - "|---------|---------------------|---------------------|\n", - "| NVDA | $722.48 | +28.14% |\n", - "| TSLA | $188.13 | -14.45% |\n", - "| MSFT | $285.30 | +1.6% |\n", + "*Table 1: Comparative Stock Performances*\n", "\n", - "### A Symphony of Factors: Decoding the Notes\n", + "| Company | Current Stock Price | Percentage Change (Last Month) |\n", + "|---------|---------------------|--------------------------------|\n", + "| NVIDIA (NVDA) | $732.36 | +30.65% |\n", + "| Tesla (TSLA) | $200.46 | -7.00% |\n", "\n", - "NVIDIA's symphonic rise could be the result of sweeping product announcements, promising AI adventures, or perhaps the basic cadence of a buoyant semiconductor sector. On the opposite end, Tesla's current decrescendo may echo supply chain dissonances, or maybe the electric vehicle maestro's tweets have struck a dissonant chord with investors.\n", + "In just one month, NVIDIA has seen a dramatic surge in its stock price, a robust 30.65% climb that mirrors the steep inclines of a mountainous ascent. Yet, this ascent is no mere accident of fate. It has been prodded by a series of catalysts, each more powerful than the last. Analysts may suggest that NVIDIA's performance is reflective of a positive outlook on earnings growth, the magnifying glass of confidence from institutional investors, and its strategic investment in artificial intelligence—a field that promises to redefine the boundaries of possibility.\n", "\n", - "In this complex composition, Microsoft's note is more stable, gently swaying with the market's rhythm, a testament to its diversified portfolio and its ability to maintain its stronghold as a foundational figure in both enterprise and consumer software realms.\n", + "This growth is no less significant for having catapulted NVIDIA to newfound heights, positioning it as the third-largest U.S. company by market value. In the eyes of many, NVIDIA is not merely a company but a canvas upon which the future of technology is being painted.\n", "\n", - "### The Dynamics of Diverse Portfolios: Microsoft's Melody\n", + "**Tesla's Tales of Caution and Volatility**\n", "\n", - "Microsoft, an elder statesman of the tech world, has a more diversified portfolio, which could explain its relatively stable crescendo in a landscape prone to cacophony. Its persistent evolution—from its cloud computing juggernaut Azure to its gaming arm with Xbox to innovations in AI and business applications—provides a balance that often steadies it against the market's more erratic tempo changes.\n", + "In sharp contrast stands Tesla, the electric automaker whose brand has become synonymous with the future of transportation. Despite the sheen of innovation and Elon Musk's vision, the company's current stock price reflects a narrative tinged with uncertainty. The -7% dip might be seen as a momentary pause in the company’s otherwise stellar performance, but it whispers tales of doubt regarding slowing electric vehicle demand and the complex ballet of investor sentiment in the face of corporate governance queries and Musk's multifaceted public persona.\n", "\n", - "### Tech Stocks and The Market's Great Concerto\n", + "The fluctuating script encapsulating Tesla's value also underscores the inherent volatility of the stock market, heavily influenced by external economic narratives and internal corporate dramas. Tesla's story is a complex one, layered with futuristic ambitions tempered by the current climate of economic restraint.\n", "\n", - "Tech stocks, in general, are prone to rapid movements that seemingly follow the beat of an unseen conductor. Market sentiment shifts with a blend of technology trends, financial reports, and global economic themes. Savvy investors aim to read the sheet music of market indicators, tuning their strategies to benefit from the harmonics while being wary of the potential for a sudden fortissimo or pianissimo.\n", + "**The Interplay of Market Forces and Human Emotion**\n", "\n", - "### Understanding the Crescendos and Diminuendos \n", + "Beyond the arithmetic of stock prices lies the human element: the restless drive for invention against the cautious tug of preservation. NVIDIA’s surge speaks of human ambition crystallized into financial momentum, while Tesla’s recent dip reflects the cautious pullback of a market wary of sprinting ahead of its own shadow.\n", "\n", - "As we take in the current tableau—NVIDIA's crescendo, Tesla's diminuendo, and Microsoft's moderato—it's important to understand that investment strategies can seldom rely on the rhythm of a single month. It takes an ear for the long-term melody and an eye on how each company composes its future initiatives.\n", + "But these stock price reflections are but shadows of a larger drama—the ebb and flow of market sentiments that can turn on the dime of a quarterly report or a tweet-storm. The savvy investor or curious spectator must look beneath the surface waves to the currents below, charting movements with the precision of a cartographer mapping uncharted seas.\n", "\n", - "### The Ever-Unfolding Composition\n", + "**Heed the Market's Mutable Muse**\n", "\n", - "In the stock market's grand composition, NVIDIA, Tesla, and Microsoft are but individual movements within a much larger symphony. Some may rise dramatically, their stocks creating breathtaking harmonies, while others may endure temporary setbacks, their share prices softly ebbing. Microsoft's steady presence serves as a reminder that in the tumult of tech stocks, a diverse and balanced approach often holds the key to sustaining a harmonious investment portfolio.\n", + "We conclude with a note of prudence: embrace the complex stories of NVIDIA and Tesla, but anchor your investment decisions in the bedrock of real-time data and comprehensive analytics. The stock market is a creature of change, and its story is written anew each day. Embrace the power of informed speculation, but be wary of the market's mutable muse.\n", "\n", - "The tale of these tech titans is an unfolding narrative, a reminder that fortunes in this domain can pivot on the smallest of dimes. The key takeaway for the investor audience: clap for the crescendos, but never ignore the subtler notes in the background. Each stock plays its part, and each investor composes their own unique investment opus.\n", + "For as the curtains fall on today's account of NVIDIA's stellar ascension and Tesla's contemplative descent, one can only wonder what twists the next act will hold. The market is, after all, the grandest theater of all—a stage where fortunes are made and dreams may either be woven into reality or unravel before the audience's eyes.\n", "\n", - "Until our next market performance review, let's keep a keen eye on the baton's next move—as unpredictable as it may be. For in the stock market's sonata, today's silence could precede tomorrow's symphony.\n", + "As the tales of these two tech giants continue to unfold, whether they lead to further success or unexpected downturns, they exemplify the vibrancy and the volatility inherent in our quest to predicate the future on the promise of progress.\n", "\n", "\n", - "Human input in the middle: ['Enrich the blogpost and mention Microsoft. ', '']\n", - "Conversation cost: ({'total_cost': 0.15831, 'gpt-4': {'cost': 0.15831, 'prompt_tokens': 1649, 'completion_tokens': 1814, 'total_tokens': 3463}}, {'total_cost': 0.09384, 'gpt-4': {'cost': 0.09384, 'prompt_tokens': 1278, 'completion_tokens': 925, 'total_tokens': 2203}})\n", + "Human input in the middle: ['Too short. Enrich it. ', '']\n", + "Conversation cost: ({'total_cost': 0.14765999999999999, 'gpt-4': {'cost': 0.14765999999999999, 'prompt_tokens': 1604, 'completion_tokens': 1659, 'total_tokens': 3263}}, {'total_cost': 0.14765999999999999, 'gpt-4': {'cost': 0.14765999999999999, 'prompt_tokens': 1604, 'completion_tokens': 1659, 'total_tokens': 3263}})\n", "\n", "\n", "\n" @@ -676,6 +828,10 @@ " print(chat_res.summary)\n", " print(\"Human input in the middle:\", chat_res.human_input)\n", " print(\"Conversation cost: \", chat_res.cost)\n", + " if i == 1:\n", + " assert (\n", + " len(chat_res.chat_history) == 4\n", + " ), f\"The chat history should contain at most 4 messages because max_turns is set to 2 in the {i}-th chat.\"\n", " print(\"\\n\\n\")" ] } diff --git a/test/agentchat/test_assistant_agent.py b/test/agentchat/test_assistant_agent.py index af953d47c8af..0544bdad2905 100644 --- a/test/agentchat/test_assistant_agent.py +++ b/test/agentchat/test_assistant_agent.py @@ -150,11 +150,10 @@ def test_create_execute_script(human_input_mode="NEVER", max_consecutive_auto_re print("Result summary:", res.summary) # autogen.ChatCompletion.print_usage_summary() # autogen.ChatCompletion.start_logging(compact=False) - res = user.send("""Execute temp.py""", assistant) + user.send("""Execute temp.py""", assistant) # print(autogen.ChatCompletion.logged_history) # autogen.ChatCompletion.print_usage_summary() # autogen.ChatCompletion.stop_logging() - print("Execution result summary:", res.summary) @pytest.mark.skipif(skip, reason="openai not installed OR requested to skip") diff --git a/test/agentchat/test_async_get_human_input.py b/test/agentchat/test_async_get_human_input.py index fe81daf26e8b..8de6e825d58c 100644 --- a/test/agentchat/test_async_get_human_input.py +++ b/test/agentchat/test_async_get_human_input.py @@ -45,5 +45,36 @@ async def test_async_get_human_input(): print("Human input:", res.human_input) +@pytest.mark.skipif(skip, reason="openai not installed OR requested to skip") +@pytest.mark.asyncio +async def test_async_max_turn(): + config_list = autogen.config_list_from_json(OAI_CONFIG_LIST, KEY_LOC) + + # create an AssistantAgent instance named "assistant" + assistant = autogen.AssistantAgent( + name="assistant", + max_consecutive_auto_reply=10, + llm_config={ + "seed": 41, + "config_list": config_list, + }, + ) + + user_proxy = autogen.UserProxyAgent(name="user", human_input_mode="ALWAYS", code_execution_config=False) + + user_proxy.a_get_human_input = AsyncMock(return_value="Not funny. Try again.") + + res = await user_proxy.a_initiate_chat( + assistant, clear_history=True, max_turns=3, message="Hello, make a joke about AI." + ) + print("Result summary:", res.summary) + print("Human input:", res.human_input) + print("chat history:", res.chat_history) + assert ( + len(res.chat_history) == 6 + ), f"Chat history should have 6 messages because max_turns is set to 3 (and user keep request try again) but has {len(res.chat_history)}." + + if __name__ == "__main__": asyncio.run(test_async_get_human_input()) + asyncio.run(test_async_max_turn()) diff --git a/test/agentchat/test_chats.py b/test/agentchat/test_chats.py index 529ce46c17ab..72894becbb3f 100644 --- a/test/agentchat/test_chats.py +++ b/test/agentchat/test_chats.py @@ -200,7 +200,8 @@ def my_summary_method(recipient, sender): { "recipient": financial_assistant_2, "message": financial_tasks[1], - "silent": True, + "silent": False, + "max_turns": 1, "summary_method": "reflection_with_llm", }, { @@ -228,6 +229,7 @@ def my_summary_method(recipient, sender): print(all_res[0].summary) print(all_res[0].chat_history) print(all_res[1].summary) + assert len(all_res[1].chat_history) <= 2 # print(blogpost.summary, insights_and_blogpost) @@ -305,7 +307,8 @@ def my_summary_method(recipient, sender): "sender": user_2, "recipient": financial_assistant_2, "message": financial_tasks[1], - "silent": True, + "silent": False, + "max_turns": 3, "summary_method": "reflection_with_llm", }, { @@ -332,6 +335,7 @@ def my_summary_method(recipient, sender): print(chat_res[0].summary) print(chat_res[0].chat_history) print(chat_res[1].summary) + assert len(chat_res[1].chat_history) <= 6 # print(blogpost.summary, insights_and_blogpost) @@ -485,7 +489,7 @@ def currency_calculator( if __name__ == "__main__": test_chats() test_chats_general() - test_chats_exceptions() - test_chats_group() - test_chats_w_func() + # test_chats_exceptions() + # test_chats_group() + # test_chats_w_func() # test_chat_messages_for_summary() diff --git a/test/agentchat/test_conversable_agent.py b/test/agentchat/test_conversable_agent.py index 8fb6ad327938..5b0a6c326b43 100644 --- a/test/agentchat/test_conversable_agent.py +++ b/test/agentchat/test_conversable_agent.py @@ -5,6 +5,7 @@ from typing import Any, Callable, Dict, Literal import unittest import inspect +from unittest.mock import MagicMock import pytest from unittest.mock import patch @@ -1028,10 +1029,33 @@ def stopwatch(num_seconds: Annotated[str, "Number of seconds in the stopwatch."] stopwatch_mock.assert_called_once_with(num_seconds="5") +@pytest.mark.skipif(skip_openai, reason="requested to skip openai tests") +def test_max_turn(): + config_list = autogen.config_list_from_json(OAI_CONFIG_LIST, KEY_LOC) + + # create an AssistantAgent instance named "assistant" + assistant = autogen.AssistantAgent( + name="assistant", + max_consecutive_auto_reply=10, + llm_config={"timeout": 600, "cache_seed": 41, "config_list": config_list}, + ) + + user_proxy = autogen.UserProxyAgent(name="user", human_input_mode="ALWAYS", code_execution_config=False) + + # Use MagicMock to create a mock get_human_input function + user_proxy.get_human_input = MagicMock(return_value="Not funny. Try again.") + res = user_proxy.initiate_chat(assistant, clear_history=True, max_turns=3, message="Hello, make a joke about AI.") + print("Result summary:", res.summary) + print("Human input:", res.human_input) + print("history", res.chat_history) + assert len(res.chat_history) <= 6 + + if __name__ == "__main__": # test_trigger() # test_context() # test_max_consecutive_auto_reply() - test_generate_code_execution_reply() + # test_generate_code_execution_reply() # test_conversable_agent() # test_no_llm_config() + test_max_turn() diff --git a/website/docs/FAQ.md b/website/docs/FAQ.md index aa874c285368..9d6df09e02b7 100644 --- a/website/docs/FAQ.md +++ b/website/docs/FAQ.md @@ -65,6 +65,11 @@ Please refer to the [documentation](/docs/Use-Cases/enhanced_inference#runtime-e When you call `initiate_chat` the conversation restarts by default. You can use `send` or `initiate_chat(clear_history=False)` to continue the conversation. +## `max_consecutive_auto_reply` vs `max_turn` vs `max_round` +- [`max_consecutive_auto_reply`](https://microsoft.github.io/autogen/docs/reference/agentchat/conversable_agent#max_consecutive_auto_reply) the maximum number of consecutive auto replie (a reply from an agent without human input is considered an auto reply). It plays a role when `human_input_mode` is not "ALWAYS". +- [`max_turns` in `ConversableAgent.initiate_chat`](https://microsoft.github.io/autogen/docs/reference/agentchat/conversable_agent#initiate_chat) limits the number of conversation turns between two conversable agents (without differentiating auto-reply and reply/input from human) +- [`max_round` in GroupChat](https://microsoft.github.io/autogen/docs/reference/agentchat/groupchat#groupchat-objects) specifies the maximum number of rounds in a group chat session. + ## How do we decide what LLM is used for each agent? How many agents can be used? How do we decide how many agents in the group? Each agent can be customized. You can use LLMs, tools, or humans behind each agent. If you use an LLM for an agent, use the one best suited for its role. There is no limit of the number of agents, but start from a small number like 2, 3. The more capable is the LLM and the fewer roles you need, the fewer agents you need.