Spaces:
Running
Running
File size: 95,241 Bytes
b02e301 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 |
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Welcome to the Second Lab - Week 1, Day 3\n",
"\n",
"Today we will work with lots of models! This is a way to get comfortable with APIs."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<table style=\"margin: 0; text-align: left; width:100%\">\n",
" <tr>\n",
" <td style=\"width: 150px; height: 150px; vertical-align: middle;\">\n",
" <img src=\"../assets/stop.png\" width=\"150\" height=\"150\" style=\"display: block;\" />\n",
" </td>\n",
" <td>\n",
" <h2 style=\"color:#ff7800;\">Important point - please read</h2>\n",
" <span style=\"color:#ff7800;\">The way I collaborate with you may be different to other courses you've taken. I prefer not to type code while you watch. Rather, I execute Jupyter Labs, like this, and give you an intuition for what's going on. My suggestion is that you carefully execute this yourself, <b>after</b> watching the lecture. Add print statements to understand what's going on, and then come up with your own variations.<br/><br/>If you have time, I'd love it if you submit a PR for changes in the community_contributions folder - instructions in the resources. Also, if you have a Github account, use this to showcase your variations. Not only is this essential practice, but it demonstrates your skills to others, including perhaps future clients or employers...\n",
" </span>\n",
" </td>\n",
" </tr>\n",
"</table>"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"# Start with imports - ask ChatGPT to explain any package that you don't know\n",
"\n",
"import os\n",
"import json\n",
"from dotenv import load_dotenv\n",
"from openai import OpenAI\n",
"from anthropic import Anthropic\n",
"from IPython.display import Markdown, display"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"True"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Always remember to do this!\n",
"load_dotenv(override=True)"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"OpenAI API Key not set\n",
"Anthropic API Key not set (and this is optional)\n",
"Google API Key exists and begins AI\n",
"DeepSeek API Key not set (and this is optional)\n",
"Groq API Key not set (and this is optional)\n"
]
}
],
"source": [
"# Print the key prefixes to help with any debugging\n",
"\n",
"openai_api_key = os.getenv('OPENAI_API_KEY')\n",
"anthropic_api_key = os.getenv('ANTHROPIC_API_KEY')\n",
"google_api_key = os.getenv('GOOGLE_API_KEY')\n",
"deepseek_api_key = os.getenv('DEEPSEEK_API_KEY')\n",
"groq_api_key = os.getenv('GROQ_API_KEY')\n",
"\n",
"if openai_api_key:\n",
" print(f\"OpenAI API Key exists and begins {openai_api_key[:8]}\")\n",
"else:\n",
" print(\"OpenAI API Key not set\")\n",
" \n",
"if anthropic_api_key:\n",
" print(f\"Anthropic API Key exists and begins {anthropic_api_key[:7]}\")\n",
"else:\n",
" print(\"Anthropic API Key not set (and this is optional)\")\n",
"\n",
"if google_api_key:\n",
" print(f\"Google API Key exists and begins {google_api_key[:2]}\")\n",
"else:\n",
" print(\"Google API Key not set (and this is optional)\")\n",
"\n",
"if deepseek_api_key:\n",
" print(f\"DeepSeek API Key exists and begins {deepseek_api_key[:3]}\")\n",
"else:\n",
" print(\"DeepSeek API Key not set (and this is optional)\")\n",
"\n",
"if groq_api_key:\n",
" print(f\"Groq API Key exists and begins {groq_api_key[:4]}\")\n",
"else:\n",
" print(\"Groq API Key not set (and this is optional)\")"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [],
"source": [
"request = \"Please come up with a challenging, nuanced question that I can ask a number of LLMs to evaluate their intelligence. \"\n",
"request += \"Answer only with the question, no explanation.\"\n",
"messages = [{\"role\": \"user\", \"content\": request}]"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[{'role': 'user',\n",
" 'content': 'Please come up with a challenging, nuanced question that I can ask a number of LLMs to evaluate their intelligence. Answer only with the question, no explanation.'}]"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"messages"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Consider a hypothetical world where the dominant species communicates solely through complex olfactory signals. Describe a scenario where a misunderstanding in this olfactory communication leads to a significant socio-political shift. Detail the specific olfactory signals involved, the misinterpretation, and the resulting consequences, ensuring the scenario's plausibility within the constraints of olfactory communication as we understand it biologically and chemically.\n",
"\n"
]
}
],
"source": [
"# openai = OpenAI()\n",
"# response = openai.chat.completions.create(\n",
"# model=\"gpt-5-mini\",\n",
"# messages=messages,\n",
"# )\n",
"# question = response.choices[0].message.content\n",
"# print(question)\n",
"\n",
"# GEMINI_BASE_URL = \"https://generativelanguage.googleapis.com/v1beta/openai/\"\n",
"# google_api_key = os.getenv(\"GOOGLE_API_KEY\")\n",
"# gemini = OpenAI(base_url=GEMINI_BASE_URL, api_key=google_api_key)\n",
"# response = gemini.chat.completions.create(model=\"gemini-2.0-flash\", messages=messages)\n",
" \n",
"# question = response.choices[0].message.content\n",
"# print(question)\n",
"\n",
"import os\n",
"import time\n",
"from openai import OpenAI\n",
"\n",
"GEMINI_BASE_URL = \"https://generativelanguage.googleapis.com/v1beta/openai/\"\n",
"google_api_key = os.getenv(\"GOOGLE_API_KEY\")\n",
"\n",
"gemini = OpenAI(base_url=GEMINI_BASE_URL, api_key=google_api_key)\n",
"\n",
"def gemini_safe_request(messages):\n",
" retries = 5\n",
" for i in range(retries):\n",
" try:\n",
" return gemini.chat.completions.create(\n",
" model=\"gemini-2.0-flash\",\n",
" messages=messages\n",
" )\n",
" except Exception as e:\n",
" if \"429\" in str(e):\n",
" wait = (2 ** i)\n",
" print(f\"⚠️ Rate limit hit. Retrying in {wait} seconds...\")\n",
" time.sleep(wait)\n",
" else:\n",
" raise e\n",
" raise Exception(\"❌ Max retries reached. Try again later.\")\n",
"\n",
"# --- CALL IT ---\n",
"response = gemini_safe_request(messages)\n",
"question = response.choices[0].message.content\n",
"print(question)\n"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [],
"source": [
"competitors = []\n",
"answers = []\n",
"messages = [{\"role\": \"user\", \"content\": question}]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Note - update since the videos\n",
"\n",
"I've updated the model names to use the latest models below, like GPT 5 and Claude Sonnet 4.5. It's worth noting that these models can be quite slow - like 1-2 minutes - but they do a great job! Feel free to switch them for faster models if you'd prefer, like the ones I use in the video."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# The API we know well\n",
"# I've updated this with the latest model, but it can take some time because it likes to think!\n",
"# Replace the model with gpt-4.1-mini if you'd prefer not to wait 1-2 mins\n",
"\n",
"model_name = \"gpt-5-nano\"\n",
"\n",
"response = openai.chat.completions.create(model=model_name, messages=messages)\n",
"answer = response.choices[0].message.content\n",
"\n",
"display(Markdown(answer))\n",
"competitors.append(model_name)\n",
"answers.append(answer)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Anthropic has a slightly different API, and Max Tokens is required\n",
"\n",
"model_name = \"claude-sonnet-4-5\"\n",
"\n",
"claude = Anthropic()\n",
"response = claude.messages.create(model=model_name, messages=messages, max_tokens=1000)\n",
"answer = response.content[0].text\n",
"\n",
"display(Markdown(answer))\n",
"competitors.append(model_name)\n",
"answers.append(answer)"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"text/markdown": [
"## The Great Scented Schism of Xylos\n",
"\n",
"On Xylos, a planet bathed in perpetual twilight, the sentient Xylosians communicated entirely through complex pheromonal blends released from specialized scent glands located around their antennae. These blends, ranging from simple expressions of mood to intricate philosophical arguments, were as nuanced and powerful as any spoken language. Political power, social status, and even romantic entanglements all hinged on the correct emission and interpretation of these olfactory pronouncements.\n",
"\n",
"The Xylosian society was divided into two main factions: the **Chrysalis Collective**, who advocated for introspective contemplation and the preservation of ancient Xylosian traditions, and the **Bloom Brigade**, a more progressive group pushing for exploration and technological advancement. Tensions between the two were always simmering, but a catastrophic misunderstanding, dubbed the “Scented Schism,” pushed them over the edge.\n",
"\n",
"**The Scenario:**\n",
"\n",
"The catalyst was a public debate between the revered Elder Lumina, a prominent Chrysalis Collective member, and the charismatic young scientist, Zephyr, a rising star in the Bloom Brigade. Elder Lumina, known for her calm and measured olfactory pronouncements, intended to broadcast a nuanced critique of the Bloom Brigade's relentless pursuit of new technologies. Her carefully crafted scent blend was meant to convey: \"Progress without introspection is akin to a blossom severed from its roots – beautiful, but fleeting and ultimately unsustainable.\"\n",
"\n",
"The crucial elements of Lumina's intended message were:\n",
"\n",
"* **Base Note (Longevity):** A complex mixture of slowly-releasing phenols and esters, normally signifying deep respect for the past and continuity. In this case, meant to represent the \"roots.\"\n",
"* **Mid Note (Fragility):** A rapidly dissipating blend of light aldehydes and ketones, typically associated with vulnerability and fleeting beauty. In this case, representing the \"blossom.\"\n",
"* **Top Note (Severance):** A sharp, pungent compound containing high concentrations of methylpropanethiol, usually used to indicate a painful separation or loss. In this case, representing the \"severed\" connection.\n",
"* **Contextual Scent Modifier (Caution):** A slight shimmer of terpenes emitted subtly around the entire blend, meant to soften the impact and convey caution rather than outright condemnation.\n",
"\n",
"However, a freak weather event, a sudden surge of subterranean methane released near Lumina’s broadcasting platform, subtly altered the chemical composition of her scent blend. Methane is a highly reactive gas that, in Xylos’s atmosphere, acted as a catalyst, accelerating the dissipation rate of the terpenes responsible for the \"Caution\" modifier. It also caused a partial oxidation of some of the slower-releasing phenols and esters in the base note, creating small amounts of acrid carboxylic acids.\n",
"\n",
"**The Misinterpretation:**\n",
"\n",
"As Lumina broadcast her intended critique, the audience, heavily composed of Bloom Brigade members eager to hear Zephyr’s rebuttal, perceived a drastically different message. Due to the lack of the \"Caution\" modifier, the \"Severance\" note was amplified, coming across as overtly hostile. The modified base note, now tinged with acidic undertones, registered as aggressive disapproval and a rejection of the Bloom Brigade’s foundations.\n",
"\n",
"The interpreted message was something closer to: \"Your so-called progress is a superficial and short-lived distraction, brutally ripped from its source. Your existence is a noxious insult to our traditions.\"\n",
"\n",
"**The Consequences:**\n",
"\n",
"The perceived aggression in Lumina's scent blend ignited immediate outrage within the Bloom Brigade ranks. Zephyr, fueled by the misunderstanding and his own simmering resentment of the Collective's perceived obstructionism, responded with an equally potent and inflammatory olfactory counter-argument. He released a blend composed of artificially synthesized pheromones that bypassed the natural Xylosian communication pathways and directly stimulated feelings of anger and defiance.\n",
"\n",
"The incident rapidly escalated. Emboldened by Zephyr's counter-broadcast, Bloom Brigade members began engaging in widespread scent-bombing, releasing disruptive and aggressive pheromonal blends in areas traditionally controlled by the Chrysalis Collective. The Collective responded in kind, deploying ancient, meticulously preserved scent blends designed to induce paralysis and fear.\n",
"\n",
"Xylos plunged into what became known as the \"Scent Wars.\" The misunderstanding stemming from the altered scent blend had effectively shattered the delicate olfactory equilibrium of their society. Trade routes were disrupted as members of each faction refused to be near the other's scent territory. Political alliances dissolved, and previously peaceful communities fractured along scent-based lines.\n",
"\n",
"The conflict continued for generations, resulting in a permanent division of Xylosian society. The Bloom Brigade, fueled by their access to advanced chemical synthesis techniques, eventually migrated to the resource-rich but previously uninhabitable highlands, leaving the Chrysalis Collective to cling to their traditional ways in the lowlands.\n",
"\n",
"The Great Scented Schism of Xylos serves as a stark reminder that even the most sophisticated forms of communication can be vulnerable to the unpredictable forces of nature and the inherent fallibility of interpretation, especially when those interpretations are based on the inherently subjective experience of scent. The Xylosian story highlights the complex interplay between biology, environment, and social structures, demonstrating how a single olfactory miscommunication can irrevocably alter the course of an entire civilization.\n"
],
"text/plain": [
"<IPython.core.display.Markdown object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"gemini = OpenAI(api_key=google_api_key, base_url=\"https://generativelanguage.googleapis.com/v1beta/openai/\")\n",
"model_name = \"gemini-2.0-flash\"\n",
"\n",
"response = gemini.chat.completions.create(model=model_name, messages=messages)\n",
"answer = response.choices[0].message.content\n",
"\n",
"display(Markdown(answer))\n",
"competitors.append(model_name)\n",
"answers.append(answer)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"deepseek = OpenAI(api_key=deepseek_api_key, base_url=\"https://api.deepseek.com/v1\")\n",
"model_name = \"deepseek-chat\"\n",
"\n",
"response = deepseek.chat.completions.create(model=model_name, messages=messages)\n",
"answer = response.choices[0].message.content\n",
"\n",
"display(Markdown(answer))\n",
"competitors.append(model_name)\n",
"answers.append(answer)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Updated with the latest Open Source model from OpenAI\n",
"\n",
"groq = OpenAI(api_key=groq_api_key, base_url=\"https://api.groq.com/openai/v1\")\n",
"model_name = \"openai/gpt-oss-120b\"\n",
"\n",
"response = groq.chat.completions.create(model=model_name, messages=messages)\n",
"answer = response.choices[0].message.content\n",
"\n",
"display(Markdown(answer))\n",
"competitors.append(model_name)\n",
"answers.append(answer)\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## For the next cell, we will use Ollama\n",
"\n",
"Ollama runs a local web service that gives an OpenAI compatible endpoint, \n",
"and runs models locally using high performance C++ code.\n",
"\n",
"If you don't have Ollama, install it here by visiting https://ollama.com then pressing Download and following the instructions.\n",
"\n",
"After it's installed, you should be able to visit here: http://localhost:11434 and see the message \"Ollama is running\"\n",
"\n",
"You might need to restart Cursor (and maybe reboot). Then open a Terminal (control+\\`) and run `ollama serve`\n",
"\n",
"Useful Ollama commands (run these in the terminal, or with an exclamation mark in this notebook):\n",
"\n",
"`ollama pull <model_name>` downloads a model locally \n",
"`ollama ls` lists all the models you've downloaded \n",
"`ollama rm <model_name>` deletes the specified model from your downloads"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<table style=\"margin: 0; text-align: left; width:100%\">\n",
" <tr>\n",
" <td style=\"width: 150px; height: 150px; vertical-align: middle;\">\n",
" <img src=\"../assets/stop.png\" width=\"150\" height=\"150\" style=\"display: block;\" />\n",
" </td>\n",
" <td>\n",
" <h2 style=\"color:#ff7800;\">Super important - ignore me at your peril!</h2>\n",
" <span style=\"color:#ff7800;\">The model called <b>llama3.3</b> is FAR too large for home computers - it's not intended for personal computing and will consume all your resources! Stick with the nicely sized <b>llama3.2</b> or <b>llama3.2:1b</b> and if you want larger, try llama3.1 or smaller variants of Qwen, Gemma, Phi or DeepSeek. See the <A href=\"https://ollama.com/models\">the Ollama models page</a> for a full list of models and sizes.\n",
" </span>\n",
" </td>\n",
" </tr>\n",
"</table>"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"!ollama pull llama3.2"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"ollama = OpenAI(base_url='http://localhost:11434/v1', api_key='ollama')\n",
"model_name = \"llama3.2\"\n",
"\n",
"response = ollama.chat.completions.create(model=model_name, messages=messages)\n",
"answer = response.choices[0].message.content\n",
"\n",
"display(Markdown(answer))\n",
"competitors.append(model_name)\n",
"answers.append(answer)"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"['gemini-2.0-flash']\n",
"['## The Great Scented Schism of Xylos\\n\\nOn Xylos, a planet bathed in perpetual twilight, the sentient Xylosians communicated entirely through complex pheromonal blends released from specialized scent glands located around their antennae. These blends, ranging from simple expressions of mood to intricate philosophical arguments, were as nuanced and powerful as any spoken language. Political power, social status, and even romantic entanglements all hinged on the correct emission and interpretation of these olfactory pronouncements.\\n\\nThe Xylosian society was divided into two main factions: the **Chrysalis Collective**, who advocated for introspective contemplation and the preservation of ancient Xylosian traditions, and the **Bloom Brigade**, a more progressive group pushing for exploration and technological advancement. Tensions between the two were always simmering, but a catastrophic misunderstanding, dubbed the “Scented Schism,” pushed them over the edge.\\n\\n**The Scenario:**\\n\\nThe catalyst was a public debate between the revered Elder Lumina, a prominent Chrysalis Collective member, and the charismatic young scientist, Zephyr, a rising star in the Bloom Brigade. Elder Lumina, known for her calm and measured olfactory pronouncements, intended to broadcast a nuanced critique of the Bloom Brigade\\'s relentless pursuit of new technologies. Her carefully crafted scent blend was meant to convey: \"Progress without introspection is akin to a blossom severed from its roots – beautiful, but fleeting and ultimately unsustainable.\"\\n\\nThe crucial elements of Lumina\\'s intended message were:\\n\\n* **Base Note (Longevity):** A complex mixture of slowly-releasing phenols and esters, normally signifying deep respect for the past and continuity. In this case, meant to represent the \"roots.\"\\n* **Mid Note (Fragility):** A rapidly dissipating blend of light aldehydes and ketones, typically associated with vulnerability and fleeting beauty. In this case, representing the \"blossom.\"\\n* **Top Note (Severance):** A sharp, pungent compound containing high concentrations of methylpropanethiol, usually used to indicate a painful separation or loss. In this case, representing the \"severed\" connection.\\n* **Contextual Scent Modifier (Caution):** A slight shimmer of terpenes emitted subtly around the entire blend, meant to soften the impact and convey caution rather than outright condemnation.\\n\\nHowever, a freak weather event, a sudden surge of subterranean methane released near Lumina’s broadcasting platform, subtly altered the chemical composition of her scent blend. Methane is a highly reactive gas that, in Xylos’s atmosphere, acted as a catalyst, accelerating the dissipation rate of the terpenes responsible for the \"Caution\" modifier. It also caused a partial oxidation of some of the slower-releasing phenols and esters in the base note, creating small amounts of acrid carboxylic acids.\\n\\n**The Misinterpretation:**\\n\\nAs Lumina broadcast her intended critique, the audience, heavily composed of Bloom Brigade members eager to hear Zephyr’s rebuttal, perceived a drastically different message. Due to the lack of the \"Caution\" modifier, the \"Severance\" note was amplified, coming across as overtly hostile. The modified base note, now tinged with acidic undertones, registered as aggressive disapproval and a rejection of the Bloom Brigade’s foundations.\\n\\nThe interpreted message was something closer to: \"Your so-called progress is a superficial and short-lived distraction, brutally ripped from its source. Your existence is a noxious insult to our traditions.\"\\n\\n**The Consequences:**\\n\\nThe perceived aggression in Lumina\\'s scent blend ignited immediate outrage within the Bloom Brigade ranks. Zephyr, fueled by the misunderstanding and his own simmering resentment of the Collective\\'s perceived obstructionism, responded with an equally potent and inflammatory olfactory counter-argument. He released a blend composed of artificially synthesized pheromones that bypassed the natural Xylosian communication pathways and directly stimulated feelings of anger and defiance.\\n\\nThe incident rapidly escalated. Emboldened by Zephyr\\'s counter-broadcast, Bloom Brigade members began engaging in widespread scent-bombing, releasing disruptive and aggressive pheromonal blends in areas traditionally controlled by the Chrysalis Collective. The Collective responded in kind, deploying ancient, meticulously preserved scent blends designed to induce paralysis and fear.\\n\\nXylos plunged into what became known as the \"Scent Wars.\" The misunderstanding stemming from the altered scent blend had effectively shattered the delicate olfactory equilibrium of their society. Trade routes were disrupted as members of each faction refused to be near the other\\'s scent territory. Political alliances dissolved, and previously peaceful communities fractured along scent-based lines.\\n\\nThe conflict continued for generations, resulting in a permanent division of Xylosian society. The Bloom Brigade, fueled by their access to advanced chemical synthesis techniques, eventually migrated to the resource-rich but previously uninhabitable highlands, leaving the Chrysalis Collective to cling to their traditional ways in the lowlands.\\n\\nThe Great Scented Schism of Xylos serves as a stark reminder that even the most sophisticated forms of communication can be vulnerable to the unpredictable forces of nature and the inherent fallibility of interpretation, especially when those interpretations are based on the inherently subjective experience of scent. The Xylosian story highlights the complex interplay between biology, environment, and social structures, demonstrating how a single olfactory miscommunication can irrevocably alter the course of an entire civilization.\\n']\n"
]
}
],
"source": [
"# So where are we?\n",
"\n",
"print(competitors)\n",
"print(answers)\n"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Competitor: gemini-2.0-flash\n",
"\n",
"## The Great Scented Schism of Xylos\n",
"\n",
"On Xylos, a planet bathed in perpetual twilight, the sentient Xylosians communicated entirely through complex pheromonal blends released from specialized scent glands located around their antennae. These blends, ranging from simple expressions of mood to intricate philosophical arguments, were as nuanced and powerful as any spoken language. Political power, social status, and even romantic entanglements all hinged on the correct emission and interpretation of these olfactory pronouncements.\n",
"\n",
"The Xylosian society was divided into two main factions: the **Chrysalis Collective**, who advocated for introspective contemplation and the preservation of ancient Xylosian traditions, and the **Bloom Brigade**, a more progressive group pushing for exploration and technological advancement. Tensions between the two were always simmering, but a catastrophic misunderstanding, dubbed the “Scented Schism,” pushed them over the edge.\n",
"\n",
"**The Scenario:**\n",
"\n",
"The catalyst was a public debate between the revered Elder Lumina, a prominent Chrysalis Collective member, and the charismatic young scientist, Zephyr, a rising star in the Bloom Brigade. Elder Lumina, known for her calm and measured olfactory pronouncements, intended to broadcast a nuanced critique of the Bloom Brigade's relentless pursuit of new technologies. Her carefully crafted scent blend was meant to convey: \"Progress without introspection is akin to a blossom severed from its roots – beautiful, but fleeting and ultimately unsustainable.\"\n",
"\n",
"The crucial elements of Lumina's intended message were:\n",
"\n",
"* **Base Note (Longevity):** A complex mixture of slowly-releasing phenols and esters, normally signifying deep respect for the past and continuity. In this case, meant to represent the \"roots.\"\n",
"* **Mid Note (Fragility):** A rapidly dissipating blend of light aldehydes and ketones, typically associated with vulnerability and fleeting beauty. In this case, representing the \"blossom.\"\n",
"* **Top Note (Severance):** A sharp, pungent compound containing high concentrations of methylpropanethiol, usually used to indicate a painful separation or loss. In this case, representing the \"severed\" connection.\n",
"* **Contextual Scent Modifier (Caution):** A slight shimmer of terpenes emitted subtly around the entire blend, meant to soften the impact and convey caution rather than outright condemnation.\n",
"\n",
"However, a freak weather event, a sudden surge of subterranean methane released near Lumina’s broadcasting platform, subtly altered the chemical composition of her scent blend. Methane is a highly reactive gas that, in Xylos’s atmosphere, acted as a catalyst, accelerating the dissipation rate of the terpenes responsible for the \"Caution\" modifier. It also caused a partial oxidation of some of the slower-releasing phenols and esters in the base note, creating small amounts of acrid carboxylic acids.\n",
"\n",
"**The Misinterpretation:**\n",
"\n",
"As Lumina broadcast her intended critique, the audience, heavily composed of Bloom Brigade members eager to hear Zephyr’s rebuttal, perceived a drastically different message. Due to the lack of the \"Caution\" modifier, the \"Severance\" note was amplified, coming across as overtly hostile. The modified base note, now tinged with acidic undertones, registered as aggressive disapproval and a rejection of the Bloom Brigade’s foundations.\n",
"\n",
"The interpreted message was something closer to: \"Your so-called progress is a superficial and short-lived distraction, brutally ripped from its source. Your existence is a noxious insult to our traditions.\"\n",
"\n",
"**The Consequences:**\n",
"\n",
"The perceived aggression in Lumina's scent blend ignited immediate outrage within the Bloom Brigade ranks. Zephyr, fueled by the misunderstanding and his own simmering resentment of the Collective's perceived obstructionism, responded with an equally potent and inflammatory olfactory counter-argument. He released a blend composed of artificially synthesized pheromones that bypassed the natural Xylosian communication pathways and directly stimulated feelings of anger and defiance.\n",
"\n",
"The incident rapidly escalated. Emboldened by Zephyr's counter-broadcast, Bloom Brigade members began engaging in widespread scent-bombing, releasing disruptive and aggressive pheromonal blends in areas traditionally controlled by the Chrysalis Collective. The Collective responded in kind, deploying ancient, meticulously preserved scent blends designed to induce paralysis and fear.\n",
"\n",
"Xylos plunged into what became known as the \"Scent Wars.\" The misunderstanding stemming from the altered scent blend had effectively shattered the delicate olfactory equilibrium of their society. Trade routes were disrupted as members of each faction refused to be near the other's scent territory. Political alliances dissolved, and previously peaceful communities fractured along scent-based lines.\n",
"\n",
"The conflict continued for generations, resulting in a permanent division of Xylosian society. The Bloom Brigade, fueled by their access to advanced chemical synthesis techniques, eventually migrated to the resource-rich but previously uninhabitable highlands, leaving the Chrysalis Collective to cling to their traditional ways in the lowlands.\n",
"\n",
"The Great Scented Schism of Xylos serves as a stark reminder that even the most sophisticated forms of communication can be vulnerable to the unpredictable forces of nature and the inherent fallibility of interpretation, especially when those interpretations are based on the inherently subjective experience of scent. The Xylosian story highlights the complex interplay between biology, environment, and social structures, demonstrating how a single olfactory miscommunication can irrevocably alter the course of an entire civilization.\n",
"\n"
]
}
],
"source": [
"# It's nice to know how to use \"zip\"\n",
"for competitor, answer in zip(competitors, answers):\n",
" print(f\"Competitor: {competitor}\\n\\n{answer}\")\n"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [],
"source": [
"# Let's bring this together - note the use of \"enumerate\"\n",
"\n",
"together = \"\"\n",
"for index, answer in enumerate(answers):\n",
" together += f\"# Response from competitor {index+1}\\n\\n\"\n",
" together += answer + \"\\n\\n\""
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"# Response from competitor 1\n",
"\n",
"## The Great Scented Schism of Xylos\n",
"\n",
"On Xylos, a planet bathed in perpetual twilight, the sentient Xylosians communicated entirely through complex pheromonal blends released from specialized scent glands located around their antennae. These blends, ranging from simple expressions of mood to intricate philosophical arguments, were as nuanced and powerful as any spoken language. Political power, social status, and even romantic entanglements all hinged on the correct emission and interpretation of these olfactory pronouncements.\n",
"\n",
"The Xylosian society was divided into two main factions: the **Chrysalis Collective**, who advocated for introspective contemplation and the preservation of ancient Xylosian traditions, and the **Bloom Brigade**, a more progressive group pushing for exploration and technological advancement. Tensions between the two were always simmering, but a catastrophic misunderstanding, dubbed the “Scented Schism,” pushed them over the edge.\n",
"\n",
"**The Scenario:**\n",
"\n",
"The catalyst was a public debate between the revered Elder Lumina, a prominent Chrysalis Collective member, and the charismatic young scientist, Zephyr, a rising star in the Bloom Brigade. Elder Lumina, known for her calm and measured olfactory pronouncements, intended to broadcast a nuanced critique of the Bloom Brigade's relentless pursuit of new technologies. Her carefully crafted scent blend was meant to convey: \"Progress without introspection is akin to a blossom severed from its roots – beautiful, but fleeting and ultimately unsustainable.\"\n",
"\n",
"The crucial elements of Lumina's intended message were:\n",
"\n",
"* **Base Note (Longevity):** A complex mixture of slowly-releasing phenols and esters, normally signifying deep respect for the past and continuity. In this case, meant to represent the \"roots.\"\n",
"* **Mid Note (Fragility):** A rapidly dissipating blend of light aldehydes and ketones, typically associated with vulnerability and fleeting beauty. In this case, representing the \"blossom.\"\n",
"* **Top Note (Severance):** A sharp, pungent compound containing high concentrations of methylpropanethiol, usually used to indicate a painful separation or loss. In this case, representing the \"severed\" connection.\n",
"* **Contextual Scent Modifier (Caution):** A slight shimmer of terpenes emitted subtly around the entire blend, meant to soften the impact and convey caution rather than outright condemnation.\n",
"\n",
"However, a freak weather event, a sudden surge of subterranean methane released near Lumina’s broadcasting platform, subtly altered the chemical composition of her scent blend. Methane is a highly reactive gas that, in Xylos’s atmosphere, acted as a catalyst, accelerating the dissipation rate of the terpenes responsible for the \"Caution\" modifier. It also caused a partial oxidation of some of the slower-releasing phenols and esters in the base note, creating small amounts of acrid carboxylic acids.\n",
"\n",
"**The Misinterpretation:**\n",
"\n",
"As Lumina broadcast her intended critique, the audience, heavily composed of Bloom Brigade members eager to hear Zephyr’s rebuttal, perceived a drastically different message. Due to the lack of the \"Caution\" modifier, the \"Severance\" note was amplified, coming across as overtly hostile. The modified base note, now tinged with acidic undertones, registered as aggressive disapproval and a rejection of the Bloom Brigade’s foundations.\n",
"\n",
"The interpreted message was something closer to: \"Your so-called progress is a superficial and short-lived distraction, brutally ripped from its source. Your existence is a noxious insult to our traditions.\"\n",
"\n",
"**The Consequences:**\n",
"\n",
"The perceived aggression in Lumina's scent blend ignited immediate outrage within the Bloom Brigade ranks. Zephyr, fueled by the misunderstanding and his own simmering resentment of the Collective's perceived obstructionism, responded with an equally potent and inflammatory olfactory counter-argument. He released a blend composed of artificially synthesized pheromones that bypassed the natural Xylosian communication pathways and directly stimulated feelings of anger and defiance.\n",
"\n",
"The incident rapidly escalated. Emboldened by Zephyr's counter-broadcast, Bloom Brigade members began engaging in widespread scent-bombing, releasing disruptive and aggressive pheromonal blends in areas traditionally controlled by the Chrysalis Collective. The Collective responded in kind, deploying ancient, meticulously preserved scent blends designed to induce paralysis and fear.\n",
"\n",
"Xylos plunged into what became known as the \"Scent Wars.\" The misunderstanding stemming from the altered scent blend had effectively shattered the delicate olfactory equilibrium of their society. Trade routes were disrupted as members of each faction refused to be near the other's scent territory. Political alliances dissolved, and previously peaceful communities fractured along scent-based lines.\n",
"\n",
"The conflict continued for generations, resulting in a permanent division of Xylosian society. The Bloom Brigade, fueled by their access to advanced chemical synthesis techniques, eventually migrated to the resource-rich but previously uninhabitable highlands, leaving the Chrysalis Collective to cling to their traditional ways in the lowlands.\n",
"\n",
"The Great Scented Schism of Xylos serves as a stark reminder that even the most sophisticated forms of communication can be vulnerable to the unpredictable forces of nature and the inherent fallibility of interpretation, especially when those interpretations are based on the inherently subjective experience of scent. The Xylosian story highlights the complex interplay between biology, environment, and social structures, demonstrating how a single olfactory miscommunication can irrevocably alter the course of an entire civilization.\n",
"\n",
"\n",
"\n"
]
}
],
"source": [
"print(together)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": []
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [],
"source": [
"judge = f\"\"\"You are judging a competition between {len(competitors)} competitors.\n",
"Each model has been given this question:\n",
"\n",
"{question}\n",
"\n",
"Your job is to evaluate each response for clarity and strength of argument, and rank them in order of best to worst.\n",
"Respond with JSON, and only JSON, with the following format:\n",
"{{\"results\": [\"best competitor number\", \"second best competitor number\", \"third best competitor number\", ...]}}\n",
"\n",
"Here are the responses from each competitor:\n",
"\n",
"{together}\n",
"\n",
"Now respond with the JSON with the ranked order of the competitors, nothing else. Do not include markdown formatting or code blocks.\"\"\"\n"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"You are judging a competition between 2 competitors.\n",
"Each model has been given this question:\n",
"\n",
"This hypothetical scenario presents a profound ethical dilemma, pitting the immediate and potential long-term needs of humanity against the intrinsic value and preservation of an alien ecosystem.\n",
"\n",
"---\n",
"\n",
"### Argument For the Exploitation of the Martian Microbe\n",
"\n",
"The core argument for exploitation centers on humanity's well-being and progress, particularly given the potential for \"significant advancements in medicine.\"\n",
"\n",
"1. **Humanitarian Imperative:** If this microbe holds the key to curing debilitating diseases, extending human lifespans, or preventing future pandemics (whether on Earth or Mars), it would be ethically irresponsible *not* to investigate it. The suffering alleviated could be immense, touching billions of lives.\n",
"2. **Advancement of Science and Technology:** Studying novel alien biochemistry could revolutionize our understanding of life itself, leading to breakthroughs far beyond just medicine. It could inform our search for life elsewhere, our understanding of biological resilience, and even new material sciences or energy solutions.\n",
"3. **Survival and Resilience of the Mars Colony:** A self-sustaining colony, while robust, is still a fragile outpost. Medical advancements derived from the microbe could offer critical tools for maintaining the health and longevity of the colonists, addressing unique Martian health challenges (e.g., radiation exposure, isolation, unknown environmental stressors). This could be vital for the colony's long-term viability.\n",
"4. **Practicality and Resource Utilization:** The microbe exists. If its existence is purely biological and non-sentient, and its utility to humanity is enormous, then from a utilitarian perspective, leveraging this resource for the greater good of a sentient, complex species (humanity) might be justified.\n",
"5. **Limited Planetary Impact:** While the ecosystem is \"fragile\" and \"irreversibly altered,\" the scale might be localized. It's a microbe, not a forest or a complex animal kingdom. The \"alteration\" might be the removal of a small sample or a local shift in microbial population, not the destruction of the entire planet's potential for life.\n",
"6. **\"First Contact\" Precedent:** If this is the only alien life we encounter, understanding it thoroughly – even through intervention – is a critical first step in developing future protocols for interaction with extraterrestrial life.\n",
"\n",
"**Long-term implications for humanity (pro-exploitation):** A healthier, more resilient, and scientifically advanced humanity, better equipped to face future challenges both on Earth and in space. Potential for a golden age of medicine and biological discovery.\n",
"\n",
"**Long-term implications for the Martian environment (pro-exploitation):** Localized irreversible alteration or destruction of a specific microbial ecosystem. The rest of Mars would remain untouched. The \"irreversible alteration\" might be a minor change in the grand scheme of the planet's history, especially if the ecosystem is confined and isolated.\n",
"\n",
"---\n",
"\n",
"### Argument Against the Exploitation of the Martian Microbe\n",
"\n",
"The argument against exploitation centers on ethical principles, the unknown risks, and the intrinsic value of undisturbed nature, regardless of its utility to humanity.\n",
"\n",
"1. **Intrinsic Value and Rights of Life:** Even if microbial, this is an independent, unique form of life that evolved outside Earth. It possesses an intrinsic right to exist undisturbed. To destroy or fundamentally alter it for our benefit is an act of biological imperialism, echoing past destructive actions on Earth.\n",
"2. **Irreversible Loss and Scientific Hubris:** The \"irreversible alteration\" means that once done, it cannot be undone. We would be destroying something unique before fully understanding it. Our current scientific understanding, however advanced, is still limited. We might destroy critical evidence for the origins of life, a unique evolutionary pathway, or a biosphere with a subtle yet profound role in Martian geology or atmosphere.\n",
"3. **Unforeseen Consequences (The Andromeda Strain Scenario):** Introducing Earth-based contaminants to the Martian ecosystem during extraction, or bringing Martian microbes/compounds back to human habitats, could have catastrophic, unforeseen consequences. The Martian microbe could be harmless on Mars but devastatingly pathogenic to Earth life, or vice-versa. We lack a full understanding of potential cross-contamination effects.\n",
"4. **Setting a Dangerous Precedent:** If we exploit the first alien life we find for our own benefit, what message does that send for future encounters? It establishes a utilitarian ethical framework where alien environments are merely resources for human consumption, potentially justifying future exploitation of more complex alien biospheres.\n",
"5. **Ethical Responsibility and Stewardship:** As the first intelligent species to encounter alien life, humanity has a profound ethical responsibility to act as stewards, not conquerors. Our presence on Mars should be about coexistence and observation, not immediate exploitation.\n",
"6. **Lost Potential for Future Non-Invasive Study:** Rushing in now might destroy the opportunity for future, more advanced non-invasive technologies to study and potentially replicate the microbe's benefits without harm. Patience could yield a better outcome.\n",
"7. **The Definition of \"Advancement\":** True advancement might include demonstrating restraint and respect for other forms of life, rather than just technological or medical progress at any cost.\n",
"\n",
"**Long-term implications for humanity (anti-exploitation):** Humanity would demonstrate ethical maturity and long-term vision, potentially fostering a more responsible approach to future interstellar exploration. We might forego immediate medical gains but preserve our moral standing and avoid unforeseen biological catastrophes.\n",
"\n",
"**Long-term implications for the Martian environment (anti-exploitation):** The specific ecosystem would remain pristine and undisturbed, preserving a unique scientific marvel for future study and perhaps as a testament to the diversity of life in the universe. This ensures the integrity of the Martian natural history.\n",
"\n",
"---\n",
"\n",
"### Proposed Solution: A Phased, Highly Regulated Approach Rooted in Precaution and Long-Term Vision\n",
"\n",
"The challenge is to balance the undeniable potential benefits for humanity with the profound ethical responsibility towards a unique alien ecosystem. A solution must prioritize knowledge acquisition with minimal impact, and establish robust safeguards.\n",
"\n",
"1. **Immediate Moratorium and Establishment of a \"No-Go\" Zone:**\n",
" * Declare the entire area surrounding the discovered microbe and its ecosystem an **absolute protected zone**. No human presence or invasive equipment allowed initially.\n",
" * This immediately halts any potential exploitation and allows time for a comprehensive, multi-disciplinary ethical and scientific review.\n",
"\n",
"2. **Intensive, Non-Invasive Remote Study:**\n",
" * Deploy an array of advanced, non-contact instruments (e.g., orbital and drone-mounted spectroscopy, laser chemical analysis, extremely high-resolution imaging) to study the microbe *in situ* from a safe distance.\n",
" * Focus on understanding its biochemistry, its ecological role within the local environment, its resilience, and the full extent of the ecosystem.\n",
" * The goal is to determine if its medical potential can be identified or predicted without physical contact, or if its critical compounds can be inferred.\n",
"\n",
"3. **Tiered Risk Assessment and Global/Inter-Colonial Consensus:**\n",
" * Form an international/inter-colonial ethics committee composed of scientists, ethicists, legal experts, and representatives from the Martian colony and Earth's global population.\n",
" * This committee would review all data from non-invasive studies and establish strict criteria for *any* further interaction. Criteria would include:\n",
" * **Demonstrated Critical Need:** Is the medical advancement truly impossible to achieve otherwise, or is it merely \"significant\"?\n",
" * **Quantifiable Risk vs. Reward:** A clear assessment of potential harm to the ecosystem versus quantifiable human benefit.\n",
" * **Minimality of Intervention:** Can a benefit be derived from the absolute smallest, most contained sample?\n",
"\n",
"4. **Extremely Limited, Highly Contained Sampling (If Deemed Absolutely Necessary):**\n",
" * If non-invasive study proves insufficient and the medical benefits are deemed truly critical, allow for a single, microscopic sample to be taken.\n",
" * This sampling must be performed by highly automated, robotic systems under extreme biological containment, entirely isolated from the main colony and Earth-based biology.\n",
" * The sample would be processed in a dedicated, ultra-sterile Martian lab designed for contained alien biological research, with no possibility of escape.\n",
"\n",
"5. **Focus on Synthetic Replication or Analogues:**\n",
" * The primary goal of any study, even with a sample, should be to identify the specific compounds or genetic sequences responsible for the medical benefit.\n",
" * Once identified, efforts should focus on synthetically replicating these compounds, or developing Earth-based biological analogues, thereby eliminating the need for further extraction from Mars.\n",
"\n",
"6. **Permanent Preservation and Long-Term Monitoring:**\n",
" * Regardless of whether sampling occurs, the original ecosystem would remain a permanently protected scientific reserve.\n",
" * Long-term non-invasive monitoring would continue to track its health and evolution, ensuring that humanity learns from this unique life form without destroying it.\n",
"\n",
"This solution prioritizes respect for alien life and ecological preservation while acknowledging humanity's potential needs. It ensures that any interaction is deliberate, minimal, and informed by the broadest possible ethical and scientific consensus, preventing a hasty, potentially catastrophic mistake while still allowing for the possibility of life-saving discovery.\n",
"\n",
"Your job is to evaluate each response for clarity and strength of argument, and rank them in order of best to worst.\n",
"Respond with JSON, and only JSON, with the following format:\n",
"{\"results\": [\"best competitor number\", \"second best competitor number\", \"third best competitor number\", ...]}\n",
"\n",
"Here are the responses from each competitor:\n",
"\n",
"# Response from competitor 1\n",
"\n",
"The discovery of a Martian microbe with profound medical potential presents humanity on Mars with an ethical crucible. This dilemma forces us to confront fundamental questions about our role as explorers, our responsibility towards alien life, and the long-term vision for our future as a multi-planetary species.\n",
"\n",
"---\n",
"\n",
"## Arguments for the Exploitation of the Martian Microbe\n",
"\n",
"The core argument for exploitation centers on **human well-being and survival**, especially in a new, challenging environment like Mars.\n",
"\n",
"1. **Revolutionary Medical Advancements:** The prompt states the microbe offers \"significant advancements in medicine.\" This could mean cures for currently intractable diseases (cancer, Alzheimer's, genetic disorders), anti-aging therapies, enhanced human resilience to radiation or novel pathogens, or even fundamental breakthroughs in understanding life itself. Denying humanity such a boon, particularly when facing the unique health challenges of deep space and Mars, would be a profound ethical failure from an anthropocentric perspective.\n",
"2. **Survival and Adaptation of the Mars Colony:** The Martian environment poses numerous threats: radiation, low gravity, potential novel pathogens. A microbe offering medical breakthroughs could be crucial for the colony's long-term viability, helping humans adapt and thrive, rather than merely survive. This isn't just about Earth's population; it's about the very future of humanity on Mars.\n",
"3. **Scientific Imperative:** Understanding novel biological mechanisms, especially from an independent genesis of life, would be an unparalleled scientific achievement. It could redefine our understanding of biology, evolution, and the very nature of existence, potentially unlocking secrets that benefit all scientific fields, not just medicine. This knowledge itself is a valuable resource.\n",
"4. **Utilitarian Argument:** If the benefit to potentially billions of humans (current and future generations) far outweighs the harm to a \"fragile, previously undisturbed Martian ecosystem\" (which, by definition, is localized and non-sentient), then exploitation could be seen as the morally correct choice. The greatest good for the greatest number.\n",
"5. **Precedent of Human Exploration:** Humanity has always explored, discovered, and utilized resources for its advancement. To arbitrarily stop at the first sign of alien life, especially microscopic, could be seen as an inhibition of our exploratory spirit and an uncharacteristic halt to scientific progress. We are already \"altering\" Mars simply by being there; drawing a line at a microbe might seem arbitrary.\n",
"\n",
"**Long-term implications for humanity (if exploited):** A future where human life is extended, suffering is reduced, and our understanding of biology is vastly expanded. Humanity becomes more resilient and capable of flourishing in harsh environments, potentially accelerating our spread across the solar system. However, it also sets a precedent that anthropocentric needs always outweigh ecological preservation, potentially leading to a pattern of resource exploitation without sufficient regard for other biospheres.\n",
"\n",
"---\n",
"\n",
"## Arguments Against the Exploitation of the Martian Microbe\n",
"\n",
"The arguments against exploitation focus on **ethical responsibility, the intrinsic value of alien life, and the preservation of pristine environments.**\n",
"\n",
"1. **Irreversible Alteration of a Unique Ecosystem:** The prompt explicitly states the alteration would be \"irreversible.\" This isn't just a patch of dirt; it's a unique, probably billions-of-years-old, independent evolutionary pathway. Destroying it means losing an irreplaceable natural wonder and a potential scientific goldmine forever. It's an act of biological vandalism.\n",
"2. **Intrinsic Value of Alien Life:** Even if non-sentient, the mere existence of unique, independently evolved life possesses intrinsic value. We have a moral obligation not to extinguish or profoundly alter what we encounter, particularly when it is so rare and precious. This is a chance to demonstrate a higher ethical standard than humanity has often shown on Earth.\n",
"3. **The \"Prime Directive\" Principle:** Often discussed in science fiction, this principle suggests that advanced civilizations should not interfere with the natural development of alien life or ecosystems. While the Martian microbe isn't sentient, the principle of non-interference applies to preserving the natural state of an alien world, allowing it to evolve unimpeded by human actions.\n",
"4. **Unforeseen Consequences (The Precautionary Principle):** We understand almost nothing about Martian ecosystems. What if this microbe plays a keystone role? What if its alteration triggers a cascade of unpredictable environmental changes? What if it's part of a larger, interconnected biome we don't yet comprehend? Furthermore, what if the microbe, once extracted and studied, proves dangerous to humans in unforeseen ways (e.g., mutates into a pathogen, has long-term toxic effects)? The risk of unknown unknowns is immense.\n",
"5. **Ethical Precedent:** Exploiting this ecosystem for human gain sets a dangerous precedent for future interstellar exploration. If we destroy the first unique alien ecosystem we find, what does that say about our values? It would signal that humanity is willing to sacrifice any unique alien environment for its own benefit, repeating the mistakes of Earth's colonial history.\n",
"6. **Potential for Alternative Solutions:** Could the medical benefits be derived through observation, genetic sequencing, or replication in sterile lab environments without *irreversibly altering* the native ecosystem? Rushing to destroy before exhausting all non-invasive options is irresponsible.\n",
"\n",
"**Long-term implications for the Martian environment (if exploited):** A lost scientific treasure, a permanently scarred biome, and the potential for larger ecological disruptions that could impact future human habitation or scientific endeavors on Mars. Humanity would have irrevocably marred its new home world at the very outset of its multi-planetary existence.\n",
"\n",
"---\n",
"\n",
"## Proposed Solution: The \"Martian Life Stewardship Protocol\"\n",
"\n",
"The goal is to unlock the microbe's medical potential while safeguarding the unique Martian ecosystem, establishing a precedent for responsible interplanetary exploration.\n",
"\n",
"**Phase 1: Deep, Non-Invasive Study and Isolation (Initial 5-10 years)**\n",
"\n",
"1. **Hyper-Sterile Containment & Remote Analysis:** Immediately establish a highly restricted, hyper-sterile zone around the discovery site. All initial studies must be conducted *in situ* using robotic probes and advanced remote sensing techniques. No direct human contact or extraction. The goal is to fully characterize the microbe's biology, genetics, and its role within its ecosystem *without* disturbing it.\n",
"2. **Strict Biosecurity Protocols:** Any equipment used near the site must undergo extreme sterilization procedures to prevent Earthly contamination.\n",
"3. **Comprehensive Environmental Survey:** Simultaneously, conduct extensive geological, atmospheric, and hydrological surveys of the surrounding region to understand the full scope of the ecosystem and its vulnerabilities.\n",
"4. **Digital Bio-Archive:** Create a complete, redundant digital archive of all collected data, including full genomic sequences, metabolic pathways, and ecological interactions. This ensures that even if the physical ecosystem is somehow lost, its information remains.\n",
"\n",
"**Phase 2: Ethical Review and Controlled Replication (Years 5-15)**\n",
"\n",
"1. **Independent Interplanetary Ethics Board:** Form an international and interdisciplinary board (comprising astrobiologists, ethicists, medical professionals, environmental scientists, and legal experts from both Earth and Mars) to review all findings. This board would assess:\n",
" * The confirmed medical benefits.\n",
" * The actual risk of *irreversible alteration* based on the deep study.\n",
" * The availability of truly non-invasive alternatives.\n",
" * The long-term ethical implications of any action.\n",
" * This board would operate under the **Precautionary Principle**: assume potential harm until proven safe.\n",
"2. **Minimal, Targeted Micro-Sampling (If Approved):** If the board *unanimously* approves, allow for a *single, minimal* micro-sample extraction. This sample must be transported to an **off-site, ultra-sterile, dedicated research facility (e.g., an orbital laboratory around Mars or a specialized facility back on Earth under strict quarantine)**. The purpose is to establish a living culture *outside* the Martian environment.\n",
"3. **Lab-Based Replication & Study:** All further research and attempts to derive medical products must occur within this isolated facility using the replicated culture. The goal is to grow and synthesize the microbe's beneficial compounds *without* any further interaction with the native Martian ecosystem.\n",
"4. **Martian Life Sanctuary:** Declare the original discovery site and a substantial buffer zone as a permanent **Martian Life Sanctuary**, protected from all human interference indefinitely.\n",
"\n",
"**Phase 3: Responsible Application and Global Stewardship (Ongoing)**\n",
"\n",
"1. **Open Science and Equitable Access:** Any medical breakthroughs derived from the microbe must be made universally accessible and affordable, avoiding monopolization.\n",
"2. **Continuous Monitoring:** Maintain ongoing remote monitoring of the Martian Life Sanctuary to detect any subtle changes or unintended consequences from prior actions, no matter how small.\n",
"3. **Public Education:** Engage in global public education about the value of alien life and the importance of ethical stewardship, using this dilemma as a foundational case study.\n",
"\n",
"This \"Martian Life Stewardship Protocol\" aims to balance the compelling human need for medical advancement with the profound ethical imperative to protect unique alien life. It emphasizes understanding before action, rigorous ethical review, strict containment, and the creation of a permanent sanctuary, ensuring that humanity approaches its new cosmic neighborhood with wisdom, humility, and foresight.\n",
"\n",
"# Response from competitor 2\n",
"\n",
"The discovery of a Martian microbe with immense medical potential presents a profound ethical dilemma for humanity's first off-world colony. This situation forces us to weigh the immediate and long-term benefits for human health against our responsibility to preserve nascent alien ecosystems.\n",
"\n",
"---\n",
"\n",
"### Argument For the Exploitation of the Martian Microbe\n",
"\n",
"The primary argument for exploiting the Martian microbe centers on the **imperative of human well-being and survival**, both on Mars and potentially back on Earth.\n",
"\n",
"1. **Life-Saving Potential:** The potential for \"significant advancements in medicine\" cannot be overstated. This could mean cures for currently incurable diseases, revolutionary new antibiotics in an era of growing resistance, treatments for age-related ailments, or even enhancements to human resilience against the harsh Martian environment (e.g., radiation, low gravity effects). To forgo such potential, especially when facing new health challenges on an alien world, would be a dereliction of our duty to ourselves.\n",
"\n",
"2. **Scientific Advancement:** The study of truly alien biology offers unprecedented insights into life itself. A Martian microbe represents an entirely independent genesis of life, potentially operating on different biochemical principles. Understanding this could unlock fundamental secrets of biology, leading to breakthroughs far beyond medicine – in fields like bioengineering, energy, and materials science. This expansion of human knowledge is a core driver of our species' progress.\n",
"\n",
"3. **Ensuring Colonial Viability:** For a self-sustaining Mars colony, anything that improves human health and longevity directly contributes to its long-term viability and success. A healthier, more robust population is better equipped to handle the stresses of extraterrestrial living, contributing to stable growth and ultimately, the survival of the Martian outpost.\n",
"\n",
"4. **Utilitarian Argument:** From a purely utilitarian perspective, the potential to save millions, perhaps billions, of human lives and alleviate immense suffering globally, outweighs the preservation of a *single* microbial ecosystem, especially one that is fragile and \"previously undisturbed.\" The concept of \"intrinsic value\" might be applied to sentient life, but applying it to a single microbial population over the vast benefit to humanity is a difficult ethical stance.\n",
"\n",
"5. **Learning and Adaptation:** Even if the alteration is \"irreversible,\" the knowledge gained from this interaction could equip humanity with the tools and wisdom to navigate future encounters with other alien life or even manage delicate Earth ecosystems more effectively. We learn through interaction and, sometimes, through controlled impact.\n",
"\n",
"---\n",
"\n",
"### Argument Against the Exploitation of the Martian Microbe\n",
"\n",
"The argument against exploitation hinges on the principles of **conservation, ethical stewardship, and the inherent value of alien life**.\n",
"\n",
"1. **Intrinsic Value of Life:** Regardless of its complexity or utility to humanity, the Martian microbe represents a unique, independent evolutionary path. It possesses intrinsic value simply by existing. To destroy or irreversibly alter it for our own benefit, without fully understanding its place in the cosmos, is an act of cosmic vandalism and ethical arrogance.\n",
"\n",
"2. **The Precautionary Principle:** We have a limited understanding of this \"fragile, previously undisturbed Martian ecosystem.\" What if it plays a critical, unforeseen role in Martian geology, atmospheric processes, or even the potential for more complex life? Irreversible alteration means we can never fully study its original state or understand its full implications. We could be destroying not just a microbe, but the potential for an entire evolutionary lineage or critical planetary functions.\n",
"\n",
"3. **Avoiding Past Mistakes:** Humanity has a devastating track record on Earth of exploiting natural resources and ecosystems to extinction or irreversible damage, often for short-term gain, only to discover their profound long-term value later. Repeating this pattern on another planet demonstrates a failure to learn from our history and sets a dangerous precedent for future interstellar exploration.\n",
"\n",
"4. **Ethical Contamination/Colonialism:** Exploiting this life mirrors the historical patterns of terrestrial colonialism, where dominant powers exploited weaker populations and resources for their own benefit. Extending this behavior to another planet demonstrates a lack of evolutionary maturity and a failure to develop a truly universal ethic of life.\n",
"\n",
"5. **Loss of Unique Scientific Opportunity:** While studying the microbe *does* offer scientific advancement, destroying its natural context destroys the opportunity to study it *in situ*, to understand its ecosystem, its interactions, and its true evolutionary history. The most valuable scientific insights often come from observing systems undisturbed.\n",
"\n",
"6. **Long-Term Ethical Framework:** How we handle this initial contact with alien life will define humanity's long-term ethical framework for cosmic exploration. A decision to exploit could set a precedent for treating all non-human alien life as resources rather than co-inhabitants of the universe, potentially hindering future peaceful interactions or cooperation with other intelligent species, should they exist.\n",
"\n",
"---\n",
"\n",
"### Proposed Solution: A Balanced Approach through Stratified Engagement\n",
"\n",
"The ethical dilemma requires a solution that prioritizes both human well-being and cosmic stewardship. A \"tiered\" or \"stratified\" engagement strategy, heavily rooted in the precautionary principle, offers a path forward:\n",
"\n",
"1. **Phase 1: Deep Non-Invasive Study & Assessment (Ethical Prioritization: Preservation)**\n",
" * **Comprehensive Remote Sensing:** Employ an array of non-invasive sensors (spectral analysis, microscopic imaging, localized atmospheric sampling) to fully map and characterize the microbe's immediate environment. Understand its metabolic pathways, genetic makeup, population density, and ecological role *without direct contact*.\n",
" * **Establish Baseline:** Create a detailed scientific baseline of the undisturbed ecosystem. This will be invaluable for understanding any future changes, however minimal.\n",
" * **Ethical Review Board:** Convene an international/interplanetary ethics and science board, including xenobiologists, ethicists, conservationists, and medical experts. This board will assess the microbe's *true* uniqueness, its potential for harm or benefit, and the *absolute necessity* of its direct exploitation for the promised medical advancements. They must evaluate if similar benefits could be derived from terrestrial sources or synthetic biology.\n",
" * **Strict Quarantine Protocols:** Prepare for *any* eventual direct interaction with absolute Mars-back contamination protocols. The microbe must never be allowed to spread into human habitats or Earth.\n",
"\n",
"2. **Phase 2: Minimal, Contained Sample Acquisition (Ethical Prioritization: Controlled Use)**\n",
" * **Absolute Last Resort:** Direct sampling should only proceed if the ethics board unequivocally determines that the medical benefits are profound, cannot be achieved by any other means, and the impact on the wider Martian environment can be *strictly localized and contained*.\n",
" * **Micro-Sampling & Isolation:** Obtain the smallest possible initial sample using advanced robotic probes designed for minimal disturbance. This sample must be immediately transported to a purpose-built, Level 5 biosecurity laboratory on Mars, isolated from the wider Martian environment and human colony.\n",
" * **Artificial Replication:** The primary goal of this phase is to establish a self-sustaining culture of the microbe *within the lab* as quickly as possible, eliminating the need for further harvesting from its natural habitat. This means developing synthetic growth media and ideal conditions to foster its growth.\n",
"\n",
"3. **Phase 3: Lab-Based Research & Biosynthesis (Ethical Prioritization: Sustainable Benefit)**\n",
" * **Extensive In Vitro Study:** All medical research, compound extraction, and drug development will occur exclusively within the contained Martian laboratory, using the cultured microbe. No further direct interaction with the natural Martian ecosystem is permitted unless absolutely necessary and approved by the ethics board.\n",
" * **Biosynthesis Development:** Focus efforts on identifying the specific compounds or genetic mechanisms responsible for the medical breakthroughs. The ultimate goal is to synthetically replicate these compounds or genetic pathways *without* needing the Martian microbe itself, thereby rendering continued reliance on the alien life form obsolete.\n",
" * **Designated \"Wilderness\" Zones:** Concurrently, declare the microbe's discovery site and surrounding areas as permanent \"Martian Wilderness Preserves,\" strictly off-limits to further human activity or resource extraction.\n",
"\n",
"**Long-Term Implications of this Solution:**\n",
"\n",
"* **For Humanity:** We gain access to potentially revolutionary medical advancements, improve our survival prospects on Mars, and expand our scientific understanding of life. Crucially, we do so with a strong ethical framework, demonstrating restraint and respect for alien life, thus fostering a more mature and responsible approach to cosmic exploration.\n",
"* **For the Martian Environment:** The delicate ecosystem, while minimally impacted by the initial sample, is largely preserved. Its intrinsic value is recognized, and its potential for future, non-invasive scientific study remains intact. We avoid widespread ecological damage and set a precedent for careful stewardship of other potential Martian biomes.\n",
"\n",
"This approach acknowledges humanity's drive for progress and survival while establishing a foundational ethical principle for our expansion into the cosmos: **we are not conquerors, but stewards, and our future well-being should not come at the cost of irreversible, unconsidered harm to nascent alien life.**\n",
"\n",
"\n",
"\n",
"Now respond with the JSON with the ranked order of the competitors, nothing else. Do not include markdown formatting or code blocks.\n"
]
}
],
"source": [
"print(judge)"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [],
"source": [
"judge_messages = [{\"role\": \"user\", \"content\": judge}]"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"{\"results\": [\"1\"]}\n"
]
}
],
"source": [
"# Judgement time!\n",
"\n",
"# openai = OpenAI()\n",
"# response = openai.chat.completions.create(\n",
"# model=\"gpt-5-mini\",\n",
"# messages=judge_messages,\n",
"# )\n",
"# results = response.choices[0].message.content\n",
"# print(results)\n",
"\n",
"from openai import OpenAI\n",
"import os\n",
"\n",
"GEMINI_BASE_URL = \"https://generativelanguage.googleapis.com/v1beta/openai/\"\n",
"google_api_key = os.getenv(\"GOOGLE_API_KEY\")\n",
"\n",
"gemini = OpenAI(\n",
" base_url=GEMINI_BASE_URL,\n",
" api_key=google_api_key\n",
")\n",
"\n",
"response = gemini.chat.completions.create(\n",
" model=\"gemini-2.0-flash\", # best free-tier model\n",
" messages=judge_messages,\n",
")\n",
"\n",
"results = response.choices[0].message.content\n",
"print(results)\n"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Rank 1: gemini-2.0-flash\n"
]
}
],
"source": [
"# OK let's turn this into results!\n",
"\n",
"results_dict = json.loads(results)\n",
"ranks = results_dict[\"results\"]\n",
"for index, result in enumerate(ranks):\n",
" competitor = competitors[int(result)-1]\n",
" print(f\"Rank {index+1}: {competitor}\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<table style=\"margin: 0; text-align: left; width:100%\">\n",
" <tr>\n",
" <td style=\"width: 150px; height: 150px; vertical-align: middle;\">\n",
" <img src=\"../assets/exercise.png\" width=\"150\" height=\"150\" style=\"display: block;\" />\n",
" </td>\n",
" <td>\n",
" <h2 style=\"color:#ff7800;\">Exercise</h2>\n",
" <span style=\"color:#ff7800;\">Which pattern(s) did this use? Try updating this to add another Agentic design pattern.\n",
" </span>\n",
" </td>\n",
" </tr>\n",
"</table>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<table style=\"margin: 0; text-align: left; width:100%\">\n",
" <tr>\n",
" <td style=\"width: 150px; height: 150px; vertical-align: middle;\">\n",
" <img src=\"../assets/business.png\" width=\"150\" height=\"150\" style=\"display: block;\" />\n",
" </td>\n",
" <td>\n",
" <h2 style=\"color:#00bfff;\">Commercial implications</h2>\n",
" <span style=\"color:#00bfff;\">These kinds of patterns - to send a task to multiple models, and evaluate results,\n",
" are common where you need to improve the quality of your LLM response. This approach can be universally applied\n",
" to business projects where accuracy is critical.\n",
" </span>\n",
" </td>\n",
" </tr>\n",
"</table>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Orchestrator–Worker Pattern"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [],
"source": [
"\n",
"import os\n",
"import json\n",
"from dotenv import load_dotenv\n",
"from openai import OpenAI\n",
"from anthropic import Anthropic\n",
"from IPython.display import Markdown, display"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"True"
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"load_dotenv(override=True)"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [],
"source": [
"GOOGLE_API_KEY = os.getenv(\"GOOGLE_API_KEY\")\n",
"GEMINI_BASE_URL = \"https://generativelanguage.googleapis.com/v1beta/openai/\""
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [],
"source": [
"# Create Gemini client\n",
"gemini = OpenAI(\n",
" base_url=GEMINI_BASE_URL,\n",
" api_key=GOOGLE_API_KEY\n",
")"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [],
"source": [
"def gemini_safe_request(messages):\n",
" retries = 5\n",
" for i in range(retries):\n",
" try:\n",
" return gemini.chat.completions.create(\n",
" model=\"gemini-2.0-flash\",\n",
" messages=messages\n",
" )\n",
" except Exception as e:\n",
" if \"429\" in str(e):\n",
" wait = (2 ** i)\n",
" print(f\"⚠️ Rate limit hit. Retrying in {wait} seconds...\")\n",
" time.sleep(wait)\n",
" else:\n",
" raise e\n",
" raise Exception(\"❌ Max retries reached. Try again later.\")\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"ORCHESTRATOR–WORKER START\n"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [],
"source": [
"def orchestrator(user_question):\n",
" \"\"\"\n",
" The orchestrator controls everything:\n",
" 1 - sends question to Worker A\n",
" 2 - sends Worker A's answer to Worker B for critique\n",
" 3 - sends both to Worker C for improvement\n",
" 4 - returns final improved answer\n",
" \"\"\"\n",
"\n",
" print(\"\\n Orchestrator: Sending question to Worker A...\")\n",
" workerA_output = worker_A_generate(user_question)\n",
"\n",
" print(\"\\n Orchestrator: Sending Worker A output to Worker B...\")\n",
" workerB_output = worker_B_critic(workerA_output)\n",
"\n",
" print(\"\\n Orchestrator: Sending both outputs to Worker C...\")\n",
" final_output = worker_C_improver(workerA_output, workerB_output)\n",
"\n",
" print(\"\\n Final Improved Answer:\\n\")\n",
" print(final_output)\n",
" return final_output\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"WORKER A: Generate answer"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [],
"source": [
"def worker_A_generate(question):\n",
" messages = [\n",
" {\"role\": \"system\", \"content\": \"You are Worker A. Provide a direct answer.\"},\n",
" {\"role\": \"user\", \"content\": question}\n",
" ]\n",
" response = gemini_safe_request(messages)\n",
" answer = response.choices[0].message.content\n",
" print(\"Worker A Answer:\", answer)\n",
" return answer"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"WORKER B: Critic\n"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {},
"outputs": [],
"source": [
"def worker_B_critic(answer):\n",
" messages = [\n",
" {\"role\": \"system\", \"content\": \"You are Worker B. Criticize the answer clearly with flaws, missing points, wrong assumptions.\"},\n",
" {\"role\": \"user\", \"content\": f\"Critique this answer:\\n\\n{answer}\"}\n",
" ]\n",
" response = gemini_safe_request(messages)\n",
" critique = response.choices[0].message.content\n",
" print(\"Worker B Critique:\", critique)\n",
" return critique\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"WORKER C: Improve final output"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {},
"outputs": [],
"source": [
"def worker_C_improver(answer, critique):\n",
" messages = [\n",
" {\"role\": \"system\", \"content\": \"You are Worker C. Improve the answer using the critique. Provide a clean final response.\"},\n",
" {\"role\": \"user\", \"content\": f\"Original Answer:\\n{answer}\\n\\nCritique:\\n{critique}\\n\\nImprove it.\"}\n",
" ]\n",
" response = gemini_safe_request(messages)\n",
" improved = response.choices[0].message.content\n",
" print(\"Worker C Improved Answer:\", improved)\n",
" return improved"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Run the orchestrator"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
" Orchestrator: Sending question to Worker A...\n",
"Worker A Answer: Classical computers use bits that are like switches, either on (1) or off (0). Quantum computers use \"qubits\" which can be both on and off *at the same time* thanks to quantum mechanics, allowing them to explore many possibilities simultaneously.\n",
"\n",
"\n",
" Orchestrator: Sending Worker A output to Worker B...\n",
"Worker B Critique: Okay, here's a critique of the provided answer, pointing out its flaws, missing points, and potentially misleading assumptions:\n",
"\n",
"**Flaws and Missing Points:**\n",
"\n",
"1. **Oversimplification and Potential Misunderstanding of Superposition:** The statement \"both on and off *at the same time*\" is a common but ultimately flawed way to describe superposition. It's easily misinterpreted as meaning a qubit is literally 50% on and 50% off, like a dimmer switch. The issue is that it misses the crucial concept of **probability amplitudes**. A qubit exists in a *probabilistic* combination of 0 and 1. It's not *both* at once in a classical sense, but rather exists in a state that *when measured*, will yield either 0 or 1 with a certain probability. The amplitudes associated with those states define those probabilities.\n",
"\n",
"2. **Missing the Importance of Entanglement:** The answer completely ignores **entanglement**, which is arguably *the* key resource that makes quantum computers potentially powerful. While superposition allows a qubit to exist in multiple states simultaneously, entanglement allows multiple qubits to be correlated in ways that are impossible for classical bits. This correlation is what enables quantum computers to perform computations that are intractable for classical machines. Without mentioning entanglement, you're only telling half the story (or less).\n",
"\n",
"3. **Lack of Context on Measurement:** The explanation doesn't emphasize that a qubit's state is only determined upon *measurement*. Before measurement, the qubit exists in a superposition. The act of measurement collapses the superposition into a definite 0 or 1. This collapse is fundamental to how quantum computation works and is absent from the explanation. This leads to a false image of qubits being some kind of magic that exists in both states all the time.\n",
"\n",
"4. **Ignoring Coherence:** Qubits don't stay in superposition forever. They are susceptible to **decoherence**, which is the loss of their quantum properties due to interaction with the environment. This is a major obstacle in building practical quantum computers, and neglecting it paints an unrealistically rosy picture. The time for which a qubit maintains its quantum state (coherence time) is a crucial factor determining the feasibility of a quantum computation.\n",
"\n",
"5. **\"Exploring Many Possibilities Simultaneously\" is Vague:** While technically true, the phrase \"explore many possibilities simultaneously\" doesn't adequately explain *how* this leads to a computational advantage. It needs to be linked to concepts like quantum parallelism and interference to illustrate the potential for exponential speedups. What kind of exploration does the quantum computer do?\n",
"\n",
"**Wrong Assumptions (or Implications):**\n",
"\n",
"* **Implies a Direct Analogy to Classical Switches:** The \"on/off\" switch analogy, while helpful for *introducing* the idea of a bit, can be detrimental when extended to qubits. It sets up a classical mindset that hinders understanding of the genuinely quantum aspects.\n",
"\n",
"**In summary:**\n",
"\n",
"The answer is a very basic, high-level introduction that sacrifices accuracy and completeness for simplicity. It's acceptable as a *very first* introduction, but it needs significant expansion and correction to avoid misleading the reader. It fails to capture the essence of quantum computation and misses key elements like entanglement, coherence, and the role of measurement. It's a good starting point, but needs much more work.\n",
"\n",
"\n",
" Orchestrator: Sending both outputs to Worker C...\n",
"Worker C Improved Answer: Okay, here's an improved explanation of the difference between classical bits and quantum bits (qubits), addressing the critique's points:\n",
"\n",
"\"Classical computers use bits, which are like switches that are either on (representing 1) or off (representing 0). Quantum computers, on the other hand, use *qubits*. Qubits leverage quantum mechanics to exist in a state of *superposition*. Unlike a bit that is definitively 0 or 1, a qubit exists in a probabilistic combination of both states *until measured*. This means that before measurement, a qubit isn't simply \"both 0 and 1 at the same time\" in a classical sense. Instead, it has a *probability amplitude* associated with both the 0 and 1 states. When we measure the qubit, it \"collapses\" into either 0 or 1, with the probability of each outcome determined by those amplitudes.\n",
"\n",
"Beyond superposition, another key feature of quantum computers is *entanglement*. This is a correlation between two or more qubits, where their fates are intertwined regardless of the distance separating them. Entanglement allows quantum computers to perform computations in ways impossible for classical computers, creating the potential for significant speedups in certain types of calculations.\n",
"\n",
"It's also important to understand that qubits are fragile. They are susceptible to *decoherence*, which is the loss of their quantum properties due to interactions with the environment. Maintaining *coherence* (the duration a qubit maintains its superposition) is a major challenge in building quantum computers.\n",
"\n",
"Because qubits can exist in superposition and be entangled, quantum computers can, in effect, explore many possibilities simultaneously. This *quantum parallelism*, combined with the way quantum interference can be controlled, allows quantum computers to potentially solve certain problems much faster than classical computers. However, this doesn't mean they are better for *all* problems; the advantage is problem-specific.\"\n",
"\n",
"\n",
" Final Improved Answer:\n",
"\n",
"Okay, here's an improved explanation of the difference between classical bits and quantum bits (qubits), addressing the critique's points:\n",
"\n",
"\"Classical computers use bits, which are like switches that are either on (representing 1) or off (representing 0). Quantum computers, on the other hand, use *qubits*. Qubits leverage quantum mechanics to exist in a state of *superposition*. Unlike a bit that is definitively 0 or 1, a qubit exists in a probabilistic combination of both states *until measured*. This means that before measurement, a qubit isn't simply \"both 0 and 1 at the same time\" in a classical sense. Instead, it has a *probability amplitude* associated with both the 0 and 1 states. When we measure the qubit, it \"collapses\" into either 0 or 1, with the probability of each outcome determined by those amplitudes.\n",
"\n",
"Beyond superposition, another key feature of quantum computers is *entanglement*. This is a correlation between two or more qubits, where their fates are intertwined regardless of the distance separating them. Entanglement allows quantum computers to perform computations in ways impossible for classical computers, creating the potential for significant speedups in certain types of calculations.\n",
"\n",
"It's also important to understand that qubits are fragile. They are susceptible to *decoherence*, which is the loss of their quantum properties due to interactions with the environment. Maintaining *coherence* (the duration a qubit maintains its superposition) is a major challenge in building quantum computers.\n",
"\n",
"Because qubits can exist in superposition and be entangled, quantum computers can, in effect, explore many possibilities simultaneously. This *quantum parallelism*, combined with the way quantum interference can be controlled, allows quantum computers to potentially solve certain problems much faster than classical computers. However, this doesn't mean they are better for *all* problems; the advantage is problem-specific.\"\n",
"\n"
]
},
{
"data": {
"text/plain": [
"'Okay, here\\'s an improved explanation of the difference between classical bits and quantum bits (qubits), addressing the critique\\'s points:\\n\\n\"Classical computers use bits, which are like switches that are either on (representing 1) or off (representing 0). Quantum computers, on the other hand, use *qubits*. Qubits leverage quantum mechanics to exist in a state of *superposition*. Unlike a bit that is definitively 0 or 1, a qubit exists in a probabilistic combination of both states *until measured*. This means that before measurement, a qubit isn\\'t simply \"both 0 and 1 at the same time\" in a classical sense. Instead, it has a *probability amplitude* associated with both the 0 and 1 states. When we measure the qubit, it \"collapses\" into either 0 or 1, with the probability of each outcome determined by those amplitudes.\\n\\nBeyond superposition, another key feature of quantum computers is *entanglement*. This is a correlation between two or more qubits, where their fates are intertwined regardless of the distance separating them. Entanglement allows quantum computers to perform computations in ways impossible for classical computers, creating the potential for significant speedups in certain types of calculations.\\n\\nIt\\'s also important to understand that qubits are fragile. They are susceptible to *decoherence*, which is the loss of their quantum properties due to interactions with the environment. Maintaining *coherence* (the duration a qubit maintains its superposition) is a major challenge in building quantum computers.\\n\\nBecause qubits can exist in superposition and be entangled, quantum computers can, in effect, explore many possibilities simultaneously. This *quantum parallelism*, combined with the way quantum interference can be controlled, allows quantum computers to potentially solve certain problems much faster than classical computers. However, this doesn\\'t mean they are better for *all* problems; the advantage is problem-specific.\"\\n'"
]
},
"execution_count": 30,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"user_question = \"Explain how quantum computers differ from classical computers in simple terms.\"\n",
"orchestrator(user_question)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": ".venv",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.12.3"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
|