Skip to content

Commit b60bca2

Browse files
authored
Merge pull request #227 from Azure-Samples/gk/autogen-nb
update sessions notebook
2 parents cfe1a6c + 5b2515d commit b60bca2

File tree

3 files changed

+40
-84
lines changed

3 files changed

+40
-84
lines changed

agents/autogen/notebooks/.env.example

+2-1
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
1-
ACA_SESSIONS_ENDPOINT=<YOUR_SESSIONS_ENDPOINT>
1+
ACA_SESSIONS_ENDPOINT=<YOUR_SESSIONS_ENDPOINT>
2+
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"}]

agents/autogen/notebooks/OAI_CONFIG_LIST.example

-9
This file was deleted.

agents/autogen/notebooks/aca-sessions.ipynb

+38-74
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
},
2121
{
2222
"cell_type": "code",
23-
"execution_count": 1,
23+
"execution_count": 9,
2424
"metadata": {},
2525
"outputs": [],
2626
"source": [
@@ -53,14 +53,12 @@
5353
"\n",
5454
"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",
5555
"\n",
56-
"2. Copy `.env.example` to `.env` and update it with your sessions endpoint.\n",
57-
"\n",
58-
"3. Copy `OAI_CONFIG_LIST.example` to `OAI_CONFIG_LIST` and update it with your Azure OpenAI values."
56+
"2. Copy `.env.example` to `.env` and update it with your sessions endpoint and Azure OpenAI values"
5957
]
6058
},
6159
{
6260
"cell_type": "code",
63-
"execution_count": 2,
61+
"execution_count": 11,
6462
"metadata": {},
6563
"outputs": [],
6664
"source": [
@@ -103,7 +101,7 @@
103101
},
104102
{
105103
"cell_type": "code",
106-
"execution_count": 4,
104+
"execution_count": 12,
107105
"metadata": {},
108106
"outputs": [],
109107
"source": [
@@ -180,7 +178,7 @@
180178
},
181179
{
182180
"cell_type": "code",
183-
"execution_count": 5,
181+
"execution_count": 13,
184182
"metadata": {},
185183
"outputs": [],
186184
"source": [
@@ -201,6 +199,7 @@
201199
" \"All necessary libraries have already been installed.\\n\"\n",
202200
" \"Once the task is done, returns 'TERMINATE'.\",\n",
203201
" llm_config={\"config_list\":config_list},\n",
202+
" is_termination_msg=lambda msg: \"code output\" in msg[\"content\"]\n",
204203
")\n",
205204
"\n",
206205
"aca_pool_management_endpoint = ACA_SESSIONS_ENDPOINT\n",
@@ -210,6 +209,7 @@
210209
" name=\"CodeExecutor\",\n",
211210
" llm_config=False,\n",
212211
" code_execution_config={\"executor\": aca_sessions_executor},\n",
212+
" human_input_mode=\"NEVER\",\n",
213213
" is_termination_msg=lambda msg: \"TERMINATE\" in msg.get(\"content\", \"\").strip().upper(),\n",
214214
")"
215215
]
@@ -223,83 +223,47 @@
223223
},
224224
{
225225
"cell_type": "code",
226-
"execution_count": 6,
226+
"execution_count": null,
227+
"metadata": {},
228+
"outputs": [],
229+
"source": [
230+
"chat_result = code_executor_agent.initiate_chat(\n",
231+
" code_writer_agent,\n",
232+
" message=\"125 KM/hr for an American?\",\n",
233+
")"
234+
]
235+
},
236+
{
237+
"cell_type": "code",
238+
"execution_count": 15,
227239
"metadata": {},
228240
"outputs": [
229241
{
230242
"name": "stdout",
231243
"output_type": "stream",
232244
"text": [
233-
"\u001b[33mCodeExecutor\u001b[0m (to CodeWriter):\n",
234-
"\n",
235-
"What is 30 plus 20?\n",
236-
"\n",
237-
"--------------------------------------------------------------------------------\n",
238-
"\u001b[31m\n",
239-
">>>>>>>> USING AUTO REPLY...\u001b[0m\n",
240-
"\u001b[33mCodeWriter\u001b[0m (to CodeExecutor):\n",
241-
"\n",
242-
"To solve this, you can simply add the two numbers in Python:\n",
243-
"\n",
244-
"```python\n",
245-
"result = 30 + 20\n",
246-
"print(result)\n",
247-
"```\n",
248-
"\n",
249-
"When you run this code, it will output the sum of 30 and 20. \n",
250-
"\n",
251-
"Would you like me to execute this code to get the result?\n",
252-
"\n",
253-
"--------------------------------------------------------------------------------\n",
254-
"\u001b[31m\n",
255-
">>>>>>>> USING AUTO REPLY...\u001b[0m\n",
256-
"\u001b[31m\n",
257-
">>>>>>>> EXECUTING CODE BLOCK (inferred language is python)...\u001b[0m\n",
258-
"eyJ0eXAiOiJKV1QiLCJyaCI6IjAuQW84RF9YSmZkVHdadDBDMVo3YkJMQXplY3pfWGZTd2hlbHRJdVgyaVVJLWhVc1AtQU5NLiIsImFsZyI6IlJTMjU2IiwieDV0IjoiTDFLZktGSV9qblhid1djMjJ4Wnh3MXNVSEgwIiwia2lkIjoiTDFLZktGSV9qblhid1djMjJ4Wnh3MXNVSEgwIn0.eyJhdWQiOiJodHRwczovL2R5bmFtaWNzZXNzaW9ucy5pbyIsImlzcyI6Imh0dHBzOi8vc3RzLndpbmRvd3MubmV0Lzc1NWY3MmZkLTE5M2MtNDBiNy1iNTY3LWI2YzEyYzBjZGU3My8iLCJpYXQiOjE3MTQ5MjM1MTUsIm5iZiI6MTcxNDkyMzUxNSwiZXhwIjoxNzE0OTI3NjgwLCJhY3IiOiIxIiwiYWlvIjoiQVRRQnkvNFdBQUFBMHpDUjgwejRUY1FhMHp3eUdQZjUvSnJuNXNrY0M0czNKZEdsR2N4NVBvZnU5YW5MYkxSdlRNYmlwK0Evc1I0bmFBQ0l2TzNmRnk0dVFhQjJjbnFxcXFWdUxCNHBGWlkzandBcU1Pd1Q3WW01ck1BM0M5b01WUW1IMWxJUFVrQmFmL2ttdjdCaG5hUzF1TE5qOXorelBSQ3ZINVg4QjJJaVZEV0tWOFZjRGx1NmFBdFBNVXJNVG9xc0kwMzF6b0dsOUlvV0lic1lXaFBxK1pnUjVDSHhvT1BidUNCOWpVYWM0c2N3ZjlqZXN4TVU3L1lRZSs3TnNzME54SHI5Z3JYMUZhSXVMM0NYNDRUVnJ4YXY2SFZJWGs0Zy9yNDBwejBJaFpNMXpKUXdDdG04TFBBUnZ0cmdTc1QzWFBIOXZ4NlQrN0FtMXBJbWpTaUpzRzV3Ti9pUDlPb0pqcE1EZ2hWRzJkN3lOVkFnZ1RvVjV2YkhPanZlMS9ORzJkR21QeWNzMDF0a21yaHhnRmRtem9wQTYwb0YzQT09IiwiYWx0c2VjaWQiOiI1OjoxMDAzMjAwMjAwRjg2NDRBIiwiYW1yIjpbInJzYSIsIm1mYSJdLCJhcHBpZCI6IjA0YjA3Nzk1LThkZGItNDYxYS1iYmVlLTAyZjllMWJmN2I0NiIsImFwcGlkYWNyIjoiMCIsImVtYWlsIjoiZ29rQG1pY3Jvc29mdC5jb20iLCJmYW1pbHlfbmFtZSI6IkthbXRhbW5lbmkiLCJnaXZlbl9uYW1lIjoiR292aW5kIiwiZ3JvdXBzIjpbImY4ZDNjNzFlLWU0NzMtNDgyMi04ZWY3LTZjYzU2MTZhZThjNiIsImNlOTQ4YzQ3LTMxMTktNDFhMy1hMDk3LTI5OTIzMTA2MzNlOSIsIjAzMGJiMzUxLTIxOGMtNDlmNi05NmFhLTA0OTUzNDIxZDJmYiIsIjliYjhkMDU3LWRiZDAtNDQ0MS05NGNmLWQ0OGEwMTgwMGY5MiIsImY5OTdjMDYxLTQwYjktNDQyOC1hYTYwLWQ1NzBkYjAxNWJiMyIsIjQ4MTA4OTY1LTgyNzQtNDllOC1iODQyLWY5OGI1MmE1Y2U5ZSIsIjhmNzlkMTY5LTExMDEtNDUyMS05NGU1LTAyNmVhZTg0ODY0NyIsIjU5MTE5MjZiLTQ4MmMtNDJlMy04Y2UxLTlmNjczMjhjNmMzMiIsIjQ0NTQwZjc1LTJlZTgtNDgwYS1hMWE3LTkyYjM5ZmQ2OWMzYyIsIjI4ODM5NTgzLWQxOWItNDQzZC04Mzg5LWExYjAwZGUwYzIxZSIsIjAxYjg2MmEyLWQyYTQtNGJmNS05Mzg4LTIzYmIxOGRmZTQxOSIsImEwODhlNGE0LWI1NWYtNGU5ZS05OGU2LTVhYzRlNTZkNjA3ZSIsImIzYmYzMmE1LTllNmYtNDdkMy1iNDhjLWZjZDM2NjljMmMyMSIsIjQ4YmE1MGMyLTMxNTAtNDBiMS04NWM3LWFiNGQyOWU0NzlmYiIsImFhZGMzZWNjLTMzOWEtNGU3Mi1hNGRhLTYyNDBhYTBjMTNjMSIsImNlNzdhY2Q1LTIxM2EtNGMwZS1hZWQ5LTYzYjZhMGZmNDFmNiIsIjMyYmFkNmQ3LTlmODgtNDE1Zi1hNTk0LTJiYmFlMzNjNWE4ZCIsIjY1MTE5ZmU0LTlkZWUtNDlmMi04ZjBhLTI1YmEzNjBkMmY4MSIsIjJjN2Y3NGU3LTliZjAtNGFkZS05MmNlLWE0ZWFkZTc5ZGM2ZCIsIjAyZjdjOWViLWY0ZjItNDY3ZC05ZTJjLTNiZmRhMGQ0OWI3YiJdLCJpZHAiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDcvIiwiaXBhZGRyIjoiMjAuMTcxLjEwOS4xODkiLCJuYW1lIjoiR292aW5kIEthbXRhbW5lbmkiLCJvaWQiOiI4NDAyNmRkMS0xOWQ2LTQ4MmItOTEyNC1mNGI2YTkyMzRkZjYiLCJwdWlkIjoiMTAwMzIwMDJCN0JCODhCMyIsInJoIjoiSSIsInNjcCI6IlNlc3Npb25zLlJlYWRXcml0ZS5BbGwiLCJzdWIiOiI5V0Y5VGtrS25aM2ZIcnNreXhXV0J3QUV2QndxVHJ5RkJaMjVRYVBIaFBVIiwidGlkIjoiNzU1ZjcyZmQtMTkzYy00MGI3LWI1NjctYjZjMTJjMGNkZTczIiwidW5pcXVlX25hbWUiOiJnb2tAbWljcm9zb2Z0LmNvbSIsInV0aSI6Im9qMTB1RXBxVUVhMnZFNVp5Y3BGQUEiLCJ2ZXIiOiIxLjAiLCJ3aWRzIjpbIjg4ZDhlM2UzLThmNTUtNGExZS05NTNhLTliOTg5OGI4ODc2YiIsImUzOTczYmRmLTQ5ODctNDlhZS04MzdhLWJhOGUyMzFjNzI4NiIsIjc2OThhNzcyLTc4N2ItNGFjOC05MDFmLTYwZDZiMDhhZmZkMiIsIjA1MjY3MTZiLTExM2QtNGMxNS1iMmM4LTY4ZTNjMjJiOWY4MCIsImIxYmUxYzNlLWI2NWQtNGYxOS04NDI3LWY2ZmEwZDk3ZmViOSIsImFhZjQzMjM2LTBjMGQtNGQ1Zi04ODNhLTY5NTUzODJhYzA4MSIsImU2ZDFhMjNhLWRhMTEtNGJlNC05NTcwLWJlZmM4NmQwNjdhNyIsIjg5MmM1ODQyLWE5YTYtNDYzYS04MDQxLTcyYWEwOGNhM2NmNiIsIjNlZGFmNjYzLTM0MWUtNDQ3NS05Zjk0LTVjMzk4ZWY2YzA3MCIsIjFkMzM2ZDJjLTRhZTgtNDJlZi05NzExLWIzNjA0Y2UzZmMyYyIsImM0ZTM5YmQ5LTExMDAtNDZkMy04YzY1LWZiMTYwZGEwMDcxZiIsImZmZDUyZmE1LTk4ZGMtNDY1Yy05OTFkLWZjMDczZWI1OWY4ZiIsIjI1YTUxNmVkLTJmYTAtNDBlYS1hMmQwLTEyOTIzYTIxNDczYSIsIjE3MzE1Nzk3LTEwMmQtNDBiNC05M2UwLTQzMjA2MmNhY2ExOCIsImIwZjU0NjYxLTJkNzQtNGM1MC1hZmEzLTFlYzgwM2YxMmVmZSIsIjVjNGY5ZGNkLTQ3ZGMtNGNmNy04YzlhLTllNDIwN2NiZmM5MSIsIjg0MjRjNmYwLWExODktNDk5ZS1iYmQwLTI2YzE3NTNjOTZkNCIsIjlmMDYyMDRkLTczYzEtNGQ0Yy04ODBhLTZlZGI5MDYwNmZkOCIsIjc0OTVmZGM0LTM0YzQtNGQxNS1hMjg5LTk4Nzg4Y2UzOTlmZCIsIjE1OGMwNDdhLWM5MDctNDU1Ni1iN2VmLTQ0NjU1MWE2YjVmNyIsImI3OWZiZjRkLTNlZjktNDY4OS04MTQzLTc2YjE5NGU4NTUwOSJdfQ.cYjJ814-Ybk6Z8ZWOpGO33N4a4g7GNM7CrbTsdtctTYYVlwtK7m0v6H7TFc56LjX-EgxrE17Emm8fUESXsKEDltHxWus-Na3ZiBQgRGh65dgs1dfHWXZ9upvlqAzwtcUB_-TVL7VObNJSh_6IZe3ORsxyi7AlB6gcIMr4EoKlGrYg1mdZxan2EI-46ZPpJBu071ce2Zz1hQxDRlPE4TxCwedhHEl9wB3IfM7cx_mabAZW9Gqktc6hwDI8atBWtXvUzRqS6tTG7vxzfwPGp7AKx1vloQivxgCTA6GaRnqSBz_-k0Hz8Ro9zR43kQ99qWHSafsdhQX5YjGjVSNukUscg\n",
259-
"\u001b[33mCodeExecutor\u001b[0m (to CodeWriter):\n",
260-
"\n",
261-
"exitcode: 0 (execution succeeded)\n",
262-
"Code output: 50\n",
263-
"\n",
264-
"\n",
265-
"--------------------------------------------------------------------------------\n",
266-
"\u001b[31m\n",
267-
">>>>>>>> USING AUTO REPLY...\u001b[0m\n",
268-
"\u001b[33mCodeWriter\u001b[0m (to CodeExecutor):\n",
269-
"\n",
270-
"\n",
271-
"\n",
272-
"--------------------------------------------------------------------------------\n",
273-
"\u001b[31m\n",
274-
">>>>>>>> USING AUTO REPLY...\u001b[0m\n",
275-
"\u001b[33mCodeExecutor\u001b[0m (to CodeWriter):\n",
276-
"\n",
277-
"\n",
278-
"\n",
279-
"--------------------------------------------------------------------------------\n",
280-
"\u001b[31m\n",
281-
">>>>>>>> USING AUTO REPLY...\u001b[0m\n",
282-
"\u001b[33mCodeWriter\u001b[0m (to CodeExecutor):\n",
283-
"\n",
284-
"TERMINATE\n",
285-
"\n",
286-
"--------------------------------------------------------------------------------\n"
287-
]
288-
},
289-
{
290-
"name": "stderr",
291-
"output_type": "stream",
292-
"text": [
293-
"C:\\Users\\gok\\AppData\\Roaming\\Python\\Python312\\site-packages\\autogen\\agentchat\\conversable_agent.py:1306: UserWarning: Extracted_response from {response} is None.\n",
294-
" warnings.warn(\"Extracted_response from {response} is None.\", UserWarning)\n"
245+
"77.67 mph\n"
295246
]
296247
}
297248
],
298249
"source": [
299-
"chat_result = code_executor_agent.initiate_chat(\n",
300-
" code_writer_agent,\n",
301-
" message=\"What is 30 plus 20?\",\n",
302-
")"
250+
"import re\n",
251+
"\n",
252+
"# Find the message containing 'Code output:' from assistant\n",
253+
"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",
254+
"\n",
255+
" # Extract and round the value of 'Code output'\n",
256+
"if code_output_message:\n",
257+
" code_output_match = re.search(r'Code output:\\s*(.*)', code_output_message)\n",
258+
" if code_output_match:\n",
259+
" code_output_value = code_output_match.group(1)\n",
260+
" # Further processing to extract and round the numeric part if necessary\n",
261+
" numeric_match = re.search(r'(\\d+\\.\\d+)', code_output_value)\n",
262+
" if numeric_match:\n",
263+
" rounded_value = round(float(numeric_match.group(1)), 2)\n",
264+
" code_output_value = f\"{rounded_value} mph\"\n",
265+
"\n",
266+
"print(code_output_value)"
303267
]
304268
}
305269
],

0 commit comments

Comments
 (0)