Skip to content

Commit

Permalink
Merge pull request #227 from Azure-Samples/gk/autogen-nb
Browse files Browse the repository at this point in the history
update sessions notebook
  • Loading branch information
thegovind committed May 21, 2024
2 parents cfe1a6c + 5b2515d commit b60bca2
Show file tree
Hide file tree
Showing 3 changed files with 40 additions and 84 deletions.
3 changes: 2 additions & 1 deletion agents/autogen/notebooks/.env.example
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
ACA_SESSIONS_ENDPOINT=<YOUR_SESSIONS_ENDPOINT>
ACA_SESSIONS_ENDPOINT=<YOUR_SESSIONS_ENDPOINT>
OAI_CONFIG_LIST=[{"model": "gpt-4", "api_key": "<YOUR_API_KEY>", "api_type": "azure", "base_url": "https://<YOUR_ENDPOINT>.openai.azure.com", "api_version": "2023-12-01-preview"}]
9 changes: 0 additions & 9 deletions agents/autogen/notebooks/OAI_CONFIG_LIST.example

This file was deleted.

112 changes: 38 additions & 74 deletions agents/autogen/notebooks/aca-sessions.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
},
{
"cell_type": "code",
"execution_count": 1,
"execution_count": 9,
"metadata": {},
"outputs": [],
"source": [
Expand Down Expand Up @@ -53,14 +53,12 @@
"\n",
"1. Get the Pool endpoint from [Azure Container Apps - Sessions Code Interpreter](https://learn.microsoft.com/en-us/azure/container-apps/sessions-code-interpreter?tabs=azure-cli).\n",
"\n",
"2. Copy `.env.example` to `.env` and update it with your sessions endpoint.\n",
"\n",
"3. Copy `OAI_CONFIG_LIST.example` to `OAI_CONFIG_LIST` and update it with your Azure OpenAI values."
"2. Copy `.env.example` to `.env` and update it with your sessions endpoint and Azure OpenAI values"
]
},
{
"cell_type": "code",
"execution_count": 2,
"execution_count": 11,
"metadata": {},
"outputs": [],
"source": [
Expand Down Expand Up @@ -103,7 +101,7 @@
},
{
"cell_type": "code",
"execution_count": 4,
"execution_count": 12,
"metadata": {},
"outputs": [],
"source": [
Expand Down Expand Up @@ -180,7 +178,7 @@
},
{
"cell_type": "code",
"execution_count": 5,
"execution_count": 13,
"metadata": {},
"outputs": [],
"source": [
Expand All @@ -201,6 +199,7 @@
" \"All necessary libraries have already been installed.\\n\"\n",
" \"Once the task is done, returns 'TERMINATE'.\",\n",
" llm_config={\"config_list\":config_list},\n",
" is_termination_msg=lambda msg: \"code output\" in msg[\"content\"]\n",
")\n",
"\n",
"aca_pool_management_endpoint = ACA_SESSIONS_ENDPOINT\n",
Expand All @@ -210,6 +209,7 @@
" name=\"CodeExecutor\",\n",
" llm_config=False,\n",
" code_execution_config={\"executor\": aca_sessions_executor},\n",
" human_input_mode=\"NEVER\",\n",
" is_termination_msg=lambda msg: \"TERMINATE\" in msg.get(\"content\", \"\").strip().upper(),\n",
")"
]
Expand All @@ -223,83 +223,47 @@
},
{
"cell_type": "code",
"execution_count": 6,
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"chat_result = code_executor_agent.initiate_chat(\n",
" code_writer_agent,\n",
" message=\"125 KM/hr for an American?\",\n",
")"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\u001b[33mCodeExecutor\u001b[0m (to CodeWriter):\n",
"\n",
"What is 30 plus 20?\n",
"\n",
"--------------------------------------------------------------------------------\n",
"\u001b[31m\n",
">>>>>>>> USING AUTO REPLY...\u001b[0m\n",
"\u001b[33mCodeWriter\u001b[0m (to CodeExecutor):\n",
"\n",
"To solve this, you can simply add the two numbers in Python:\n",
"\n",
"```python\n",
"result = 30 + 20\n",
"print(result)\n",
"```\n",
"\n",
"When you run this code, it will output the sum of 30 and 20. \n",
"\n",
"Would you like me to execute this code to get the result?\n",
"\n",
"--------------------------------------------------------------------------------\n",
"\u001b[31m\n",
">>>>>>>> USING AUTO REPLY...\u001b[0m\n",
"\u001b[31m\n",
">>>>>>>> EXECUTING CODE BLOCK (inferred language is python)...\u001b[0m\n",
"eyJ0eXAiOiJKV1QiLCJyaCI6IjAuQW84RF9YSmZkVHdadDBDMVo3YkJMQXplY3pfWGZTd2hlbHRJdVgyaVVJLWhVc1AtQU5NLiIsImFsZyI6IlJTMjU2IiwieDV0IjoiTDFLZktGSV9qblhid1djMjJ4Wnh3MXNVSEgwIiwia2lkIjoiTDFLZktGSV9qblhid1djMjJ4Wnh3MXNVSEgwIn0.eyJhdWQiOiJodHRwczovL2R5bmFtaWNzZXNzaW9ucy5pbyIsImlzcyI6Imh0dHBzOi8vc3RzLndpbmRvd3MubmV0Lzc1NWY3MmZkLTE5M2MtNDBiNy1iNTY3LWI2YzEyYzBjZGU3My8iLCJpYXQiOjE3MTQ5MjM1MTUsIm5iZiI6MTcxNDkyMzUxNSwiZXhwIjoxNzE0OTI3NjgwLCJhY3IiOiIxIiwiYWlvIjoiQVRRQnkvNFdBQUFBMHpDUjgwejRUY1FhMHp3eUdQZjUvSnJuNXNrY0M0czNKZEdsR2N4NVBvZnU5YW5MYkxSdlRNYmlwK0Evc1I0bmFBQ0l2TzNmRnk0dVFhQjJjbnFxcXFWdUxCNHBGWlkzandBcU1Pd1Q3WW01ck1BM0M5b01WUW1IMWxJUFVrQmFmL2ttdjdCaG5hUzF1TE5qOXorelBSQ3ZINVg4QjJJaVZEV0tWOFZjRGx1NmFBdFBNVXJNVG9xc0kwMzF6b0dsOUlvV0lic1lXaFBxK1pnUjVDSHhvT1BidUNCOWpVYWM0c2N3ZjlqZXN4TVU3L1lRZSs3TnNzME54SHI5Z3JYMUZhSXVMM0NYNDRUVnJ4YXY2SFZJWGs0Zy9yNDBwejBJaFpNMXpKUXdDdG04TFBBUnZ0cmdTc1QzWFBIOXZ4NlQrN0FtMXBJbWpTaUpzRzV3Ti9pUDlPb0pqcE1EZ2hWRzJkN3lOVkFnZ1RvVjV2YkhPanZlMS9ORzJkR21QeWNzMDF0a21yaHhnRmRtem9wQTYwb0YzQT09IiwiYWx0c2VjaWQiOiI1OjoxMDAzMjAwMjAwRjg2NDRBIiwiYW1yIjpbInJzYSIsIm1mYSJdLCJhcHBpZCI6IjA0YjA3Nzk1LThkZGItNDYxYS1iYmVlLTAyZjllMWJmN2I0NiIsImFwcGlkYWNyIjoiMCIsImVtYWlsIjoiZ29rQG1pY3Jvc29mdC5jb20iLCJmYW1pbHlfbmFtZSI6IkthbXRhbW5lbmkiLCJnaXZlbl9uYW1lIjoiR292aW5kIiwiZ3JvdXBzIjpbImY4ZDNjNzFlLWU0NzMtNDgyMi04ZWY3LTZjYzU2MTZhZThjNiIsImNlOTQ4YzQ3LTMxMTktNDFhMy1hMDk3LTI5OTIzMTA2MzNlOSIsIjAzMGJiMzUxLTIxOGMtNDlmNi05NmFhLTA0OTUzNDIxZDJmYiIsIjliYjhkMDU3LWRiZDAtNDQ0MS05NGNmLWQ0OGEwMTgwMGY5MiIsImY5OTdjMDYxLTQwYjktNDQyOC1hYTYwLWQ1NzBkYjAxNWJiMyIsIjQ4MTA4OTY1LTgyNzQtNDllOC1iODQyLWY5OGI1MmE1Y2U5ZSIsIjhmNzlkMTY5LTExMDEtNDUyMS05NGU1LTAyNmVhZTg0ODY0NyIsIjU5MTE5MjZiLTQ4MmMtNDJlMy04Y2UxLTlmNjczMjhjNmMzMiIsIjQ0NTQwZjc1LTJlZTgtNDgwYS1hMWE3LTkyYjM5ZmQ2OWMzYyIsIjI4ODM5NTgzLWQxOWItNDQzZC04Mzg5LWExYjAwZGUwYzIxZSIsIjAxYjg2MmEyLWQyYTQtNGJmNS05Mzg4LTIzYmIxOGRmZTQxOSIsImEwODhlNGE0LWI1NWYtNGU5ZS05OGU2LTVhYzRlNTZkNjA3ZSIsImIzYmYzMmE1LTllNmYtNDdkMy1iNDhjLWZjZDM2NjljMmMyMSIsIjQ4YmE1MGMyLTMxNTAtNDBiMS04NWM3LWFiNGQyOWU0NzlmYiIsImFhZGMzZWNjLTMzOWEtNGU3Mi1hNGRhLTYyNDBhYTBjMTNjMSIsImNlNzdhY2Q1LTIxM2EtNGMwZS1hZWQ5LTYzYjZhMGZmNDFmNiIsIjMyYmFkNmQ3LTlmODgtNDE1Zi1hNTk0LTJiYmFlMzNjNWE4ZCIsIjY1MTE5ZmU0LTlkZWUtNDlmMi04ZjBhLTI1YmEzNjBkMmY4MSIsIjJjN2Y3NGU3LTliZjAtNGFkZS05MmNlLWE0ZWFkZTc5ZGM2ZCIsIjAyZjdjOWViLWY0ZjItNDY3ZC05ZTJjLTNiZmRhMGQ0OWI3YiJdLCJpZHAiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDcvIiwiaXBhZGRyIjoiMjAuMTcxLjEwOS4xODkiLCJuYW1lIjoiR292aW5kIEthbXRhbW5lbmkiLCJvaWQiOiI4NDAyNmRkMS0xOWQ2LTQ4MmItOTEyNC1mNGI2YTkyMzRkZjYiLCJwdWlkIjoiMTAwMzIwMDJCN0JCODhCMyIsInJoIjoiSSIsInNjcCI6IlNlc3Npb25zLlJlYWRXcml0ZS5BbGwiLCJzdWIiOiI5V0Y5VGtrS25aM2ZIcnNreXhXV0J3QUV2QndxVHJ5RkJaMjVRYVBIaFBVIiwidGlkIjoiNzU1ZjcyZmQtMTkzYy00MGI3LWI1NjctYjZjMTJjMGNkZTczIiwidW5pcXVlX25hbWUiOiJnb2tAbWljcm9zb2Z0LmNvbSIsInV0aSI6Im9qMTB1RXBxVUVhMnZFNVp5Y3BGQUEiLCJ2ZXIiOiIxLjAiLCJ3aWRzIjpbIjg4ZDhlM2UzLThmNTUtNGExZS05NTNhLTliOTg5OGI4ODc2YiIsImUzOTczYmRmLTQ5ODctNDlhZS04MzdhLWJhOGUyMzFjNzI4NiIsIjc2OThhNzcyLTc4N2ItNGFjOC05MDFmLTYwZDZiMDhhZmZkMiIsIjA1MjY3MTZiLTExM2QtNGMxNS1iMmM4LTY4ZTNjMjJiOWY4MCIsImIxYmUxYzNlLWI2NWQtNGYxOS04NDI3LWY2ZmEwZDk3ZmViOSIsImFhZjQzMjM2LTBjMGQtNGQ1Zi04ODNhLTY5NTUzODJhYzA4MSIsImU2ZDFhMjNhLWRhMTEtNGJlNC05NTcwLWJlZmM4NmQwNjdhNyIsIjg5MmM1ODQyLWE5YTYtNDYzYS04MDQxLTcyYWEwOGNhM2NmNiIsIjNlZGFmNjYzLTM0MWUtNDQ3NS05Zjk0LTVjMzk4ZWY2YzA3MCIsIjFkMzM2ZDJjLTRhZTgtNDJlZi05NzExLWIzNjA0Y2UzZmMyYyIsImM0ZTM5YmQ5LTExMDAtNDZkMy04YzY1LWZiMTYwZGEwMDcxZiIsImZmZDUyZmE1LTk4ZGMtNDY1Yy05OTFkLWZjMDczZWI1OWY4ZiIsIjI1YTUxNmVkLTJmYTAtNDBlYS1hMmQwLTEyOTIzYTIxNDczYSIsIjE3MzE1Nzk3LTEwMmQtNDBiNC05M2UwLTQzMjA2MmNhY2ExOCIsImIwZjU0NjYxLTJkNzQtNGM1MC1hZmEzLTFlYzgwM2YxMmVmZSIsIjVjNGY5ZGNkLTQ3ZGMtNGNmNy04YzlhLTllNDIwN2NiZmM5MSIsIjg0MjRjNmYwLWExODktNDk5ZS1iYmQwLTI2YzE3NTNjOTZkNCIsIjlmMDYyMDRkLTczYzEtNGQ0Yy04ODBhLTZlZGI5MDYwNmZkOCIsIjc0OTVmZGM0LTM0YzQtNGQxNS1hMjg5LTk4Nzg4Y2UzOTlmZCIsIjE1OGMwNDdhLWM5MDctNDU1Ni1iN2VmLTQ0NjU1MWE2YjVmNyIsImI3OWZiZjRkLTNlZjktNDY4OS04MTQzLTc2YjE5NGU4NTUwOSJdfQ.cYjJ814-Ybk6Z8ZWOpGO33N4a4g7GNM7CrbTsdtctTYYVlwtK7m0v6H7TFc56LjX-EgxrE17Emm8fUESXsKEDltHxWus-Na3ZiBQgRGh65dgs1dfHWXZ9upvlqAzwtcUB_-TVL7VObNJSh_6IZe3ORsxyi7AlB6gcIMr4EoKlGrYg1mdZxan2EI-46ZPpJBu071ce2Zz1hQxDRlPE4TxCwedhHEl9wB3IfM7cx_mabAZW9Gqktc6hwDI8atBWtXvUzRqS6tTG7vxzfwPGp7AKx1vloQivxgCTA6GaRnqSBz_-k0Hz8Ro9zR43kQ99qWHSafsdhQX5YjGjVSNukUscg\n",
"\u001b[33mCodeExecutor\u001b[0m (to CodeWriter):\n",
"\n",
"exitcode: 0 (execution succeeded)\n",
"Code output: 50\n",
"\n",
"\n",
"--------------------------------------------------------------------------------\n",
"\u001b[31m\n",
">>>>>>>> USING AUTO REPLY...\u001b[0m\n",
"\u001b[33mCodeWriter\u001b[0m (to CodeExecutor):\n",
"\n",
"\n",
"\n",
"--------------------------------------------------------------------------------\n",
"\u001b[31m\n",
">>>>>>>> USING AUTO REPLY...\u001b[0m\n",
"\u001b[33mCodeExecutor\u001b[0m (to CodeWriter):\n",
"\n",
"\n",
"\n",
"--------------------------------------------------------------------------------\n",
"\u001b[31m\n",
">>>>>>>> USING AUTO REPLY...\u001b[0m\n",
"\u001b[33mCodeWriter\u001b[0m (to CodeExecutor):\n",
"\n",
"TERMINATE\n",
"\n",
"--------------------------------------------------------------------------------\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"C:\\Users\\gok\\AppData\\Roaming\\Python\\Python312\\site-packages\\autogen\\agentchat\\conversable_agent.py:1306: UserWarning: Extracted_response from {response} is None.\n",
" warnings.warn(\"Extracted_response from {response} is None.\", UserWarning)\n"
"77.67 mph\n"
]
}
],
"source": [
"chat_result = code_executor_agent.initiate_chat(\n",
" code_writer_agent,\n",
" message=\"What is 30 plus 20?\",\n",
")"
"import re\n",
"\n",
"# Find the message containing 'Code output:' from assistant\n",
"code_output_message = next((msg['content'] for msg in chat_result.chat_history if msg['role'] == 'assistant' and 'Code output:' in msg['content']), None)\n",
"\n",
" # Extract and round the value of 'Code output'\n",
"if code_output_message:\n",
" code_output_match = re.search(r'Code output:\\s*(.*)', code_output_message)\n",
" if code_output_match:\n",
" code_output_value = code_output_match.group(1)\n",
" # Further processing to extract and round the numeric part if necessary\n",
" numeric_match = re.search(r'(\\d+\\.\\d+)', code_output_value)\n",
" if numeric_match:\n",
" rounded_value = round(float(numeric_match.group(1)), 2)\n",
" code_output_value = f\"{rounded_value} mph\"\n",
"\n",
"print(code_output_value)"
]
}
],
Expand Down

0 comments on commit b60bca2

Please sign in to comment.