{ "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": [ "\n", " \n", " \n", " \n", " \n", "
\n", " \n", " \n", "

Important point - please read

\n", " 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, after watching the lecture. Add print statements to understand what's going on, and then come up with your own variations.

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", "
\n", "
" ] }, { "cell_type": "code", "execution_count": 2, "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": 3, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "True" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Always remember to do this!\n", "load_dotenv(override=True)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "OpenAI API Key exists and begins sk-proj-\n", "Anthropic API Key not set (and this is optional)\n", "Google API Key not set (and this is optional)\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": 5, "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": 6, "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": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "messages" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "If you were tasked with designing a society that prioritizes both individual freedom and collective well-being, what principles would you establish to balance these sometimes opposing values, and how would you address potential conflicts that arise?\n" ] } ], "source": [ "openai = OpenAI()\n", "response = openai.chat.completions.create(\n", " model=\"gpt-4o-mini\",\n", " messages=messages,\n", ")\n", "question = response.choices[0].message.content\n", "print(question)\n" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "competitors = []\n", "answers = []\n", "messages = [{\"role\": \"user\", \"content\": question}]" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "Designing a society that harmonizes individual freedom with collective well-being requires a careful and thoughtful approach. Here are some principles and strategies that could effectively balance these values:\n", "\n", "### Principles\n", "\n", "1. **Respect for Autonomy**: Uphold individual rights and freedoms as fundamental. This includes freedom of expression, choice, and personal lifestyle decisions, provided they do not harm others.\n", "\n", "2. **Collective Responsibility**: Foster a culture of interdependence where individuals recognize their role in contributing to the community. This can include civic duties, environmental stewardship, and support for social programs.\n", "\n", "3. **Equitable Resources**: Ensure that all members of society have access to essential resources such as education, healthcare, and economic opportunities. A fair distribution of resources helps to reduce inequalities, enabling individuals to thrive and contribute to collective well-being.\n", "\n", "4. **Participatory Governance**: Create systems of governance that encourage active participation from all members of society. This includes democratic processes and mechanisms for direct involvement in decision-making.\n", "\n", "5. **Conflict Resolution Framework**: Establish clear, fair, and accessible mechanisms for addressing conflicts between individual rights and collective needs. This could involve mediation processes, community forums, and legal avenues that prioritize dialogue and restorative justice.\n", "\n", "6. **Education and Awareness**: Promote education that emphasizes the interconnectedness of individual and collective interests. Encourage critical thinking, empathy, and civic engagement among citizens.\n", "\n", "7. **Flexibility and Adaptability**: Acknowledge that societal needs and norms evolve over time. Institutional flexibility allows for the revision of laws and policies as social dynamics change, helping to maintain balance.\n", "\n", "8. **Sustainability and Long-Term Planning**: Ensure that both individual freedoms and collective well-being are approached with an eye toward sustainability. Environmental, economic, and social policies should consider long-term impacts, benefiting future generations.\n", "\n", "### Addressing Conflicts\n", "\n", "1. **Dialogue and Mediation**: Create spaces for open dialogue where individuals can express their concerns and negotiate compromises. Mediation can help find mutually beneficial solutions that respect both individual freedoms and collective welfare.\n", "\n", "2. **Transparent Policy-making**: Implement transparent processes in governance to maintain public trust. When individuals understand how decisions are made and how they affect their rights and lives, they are more likely to feel invested in collective goals.\n", "\n", "3. **Case-by-Case Assessment**: Recognize that conflicts may require tailored solutions. Establish frameworks to assess conflicts individually, weighing both individual rights and community needs.\n", "\n", "4. **Promotion of Common Goals**: Cultivate a shared vision that aligns individual aspirations with collective goals. Initiatives that focus on common interests, such as community development projects, can foster unity and reduce friction.\n", "\n", "5. **Public Accountability**: Hold institutions accountable for upholding both individual rights and community welfare. Encourage feedback mechanisms that allow citizens to voice concerns about governmental or institutional overreach or neglect.\n", "\n", "6. **Balancing Rights with Responsibilities**: Encourage a social contract model where enjoying rights comes with responsibilities. Individuals should understand their freedom is contingent upon respecting the rights and freedoms of others.\n", "\n", "By embedding these principles into the fabric of society and addressing conflicts thoughtfully, it is possible to create a balanced environment that honors both individual freedoms and collective well-being, allowing for a vibrant and harmonious community." ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# The API we know well\n", "\n", "model_name = \"gpt-4o-mini\"\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": 10, "metadata": {}, "outputs": [ { "ename": "TypeError", "evalue": "\"Could not resolve authentication method. Expected either api_key or auth_token to be set. Or for one of the `X-Api-Key` or `Authorization` headers to be explicitly omitted\"", "output_type": "error", "traceback": [ "\u001b[31m---------------------------------------------------------------------------\u001b[39m", "\u001b[31mTypeError\u001b[39m Traceback (most recent call last)", "\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[10]\u001b[39m\u001b[32m, line 6\u001b[39m\n\u001b[32m 3\u001b[39m model_name = \u001b[33m\"\u001b[39m\u001b[33mclaude-3-7-sonnet-latest\u001b[39m\u001b[33m\"\u001b[39m\n\u001b[32m 5\u001b[39m claude = Anthropic()\n\u001b[32m----> \u001b[39m\u001b[32m6\u001b[39m response = \u001b[43mclaude\u001b[49m\u001b[43m.\u001b[49m\u001b[43mmessages\u001b[49m\u001b[43m.\u001b[49m\u001b[43mcreate\u001b[49m\u001b[43m(\u001b[49m\u001b[43mmodel\u001b[49m\u001b[43m=\u001b[49m\u001b[43mmodel_name\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mmessages\u001b[49m\u001b[43m=\u001b[49m\u001b[43mmessages\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mmax_tokens\u001b[49m\u001b[43m=\u001b[49m\u001b[32;43m1000\u001b[39;49m\u001b[43m)\u001b[49m\n\u001b[32m 7\u001b[39m answer = response.content[\u001b[32m0\u001b[39m].text\n\u001b[32m 9\u001b[39m display(Markdown(answer))\n", "\u001b[36mFile \u001b[39m\u001b[32m~/projects/llm/ed-donner-agents-course-2/.venv/lib/python3.12/site-packages/anthropic/_utils/_utils.py:283\u001b[39m, in \u001b[36mrequired_args..inner..wrapper\u001b[39m\u001b[34m(*args, **kwargs)\u001b[39m\n\u001b[32m 281\u001b[39m msg = \u001b[33mf\u001b[39m\u001b[33m\"\u001b[39m\u001b[33mMissing required argument: \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mquote(missing[\u001b[32m0\u001b[39m])\u001b[38;5;132;01m}\u001b[39;00m\u001b[33m\"\u001b[39m\n\u001b[32m 282\u001b[39m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mTypeError\u001b[39;00m(msg)\n\u001b[32m--> \u001b[39m\u001b[32m283\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mfunc\u001b[49m\u001b[43m(\u001b[49m\u001b[43m*\u001b[49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43m*\u001b[49m\u001b[43m*\u001b[49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n", "\u001b[36mFile \u001b[39m\u001b[32m~/projects/llm/ed-donner-agents-course-2/.venv/lib/python3.12/site-packages/anthropic/resources/messages/messages.py:978\u001b[39m, in \u001b[36mMessages.create\u001b[39m\u001b[34m(self, max_tokens, messages, model, metadata, service_tier, stop_sequences, stream, system, temperature, thinking, tool_choice, tools, top_k, top_p, extra_headers, extra_query, extra_body, timeout)\u001b[39m\n\u001b[32m 971\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m model \u001b[38;5;129;01min\u001b[39;00m DEPRECATED_MODELS:\n\u001b[32m 972\u001b[39m warnings.warn(\n\u001b[32m 973\u001b[39m \u001b[33mf\u001b[39m\u001b[33m\"\u001b[39m\u001b[33mThe model \u001b[39m\u001b[33m'\u001b[39m\u001b[38;5;132;01m{\u001b[39;00mmodel\u001b[38;5;132;01m}\u001b[39;00m\u001b[33m'\u001b[39m\u001b[33m is deprecated and will reach end-of-life on \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mDEPRECATED_MODELS[model]\u001b[38;5;132;01m}\u001b[39;00m\u001b[33m.\u001b[39m\u001b[38;5;130;01m\\n\u001b[39;00m\u001b[33mPlease migrate to a newer model. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information.\u001b[39m\u001b[33m\"\u001b[39m,\n\u001b[32m 974\u001b[39m \u001b[38;5;167;01mDeprecationWarning\u001b[39;00m,\n\u001b[32m 975\u001b[39m stacklevel=\u001b[32m3\u001b[39m,\n\u001b[32m 976\u001b[39m )\n\u001b[32m--> \u001b[39m\u001b[32m978\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[43m.\u001b[49m\u001b[43m_post\u001b[49m\u001b[43m(\u001b[49m\n\u001b[32m 979\u001b[39m \u001b[43m \u001b[49m\u001b[33;43m\"\u001b[39;49m\u001b[33;43m/v1/messages\u001b[39;49m\u001b[33;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[32m 980\u001b[39m \u001b[43m \u001b[49m\u001b[43mbody\u001b[49m\u001b[43m=\u001b[49m\u001b[43mmaybe_transform\u001b[49m\u001b[43m(\u001b[49m\n\u001b[32m 981\u001b[39m \u001b[43m \u001b[49m\u001b[43m{\u001b[49m\n\u001b[32m 982\u001b[39m \u001b[43m \u001b[49m\u001b[33;43m\"\u001b[39;49m\u001b[33;43mmax_tokens\u001b[39;49m\u001b[33;43m\"\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43mmax_tokens\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 983\u001b[39m \u001b[43m \u001b[49m\u001b[33;43m\"\u001b[39;49m\u001b[33;43mmessages\u001b[39;49m\u001b[33;43m\"\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43mmessages\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 984\u001b[39m \u001b[43m \u001b[49m\u001b[33;43m\"\u001b[39;49m\u001b[33;43mmodel\u001b[39;49m\u001b[33;43m\"\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43mmodel\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 985\u001b[39m \u001b[43m \u001b[49m\u001b[33;43m\"\u001b[39;49m\u001b[33;43mmetadata\u001b[39;49m\u001b[33;43m\"\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43mmetadata\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 986\u001b[39m \u001b[43m \u001b[49m\u001b[33;43m\"\u001b[39;49m\u001b[33;43mservice_tier\u001b[39;49m\u001b[33;43m\"\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43mservice_tier\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 987\u001b[39m \u001b[43m \u001b[49m\u001b[33;43m\"\u001b[39;49m\u001b[33;43mstop_sequences\u001b[39;49m\u001b[33;43m\"\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43mstop_sequences\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 988\u001b[39m \u001b[43m \u001b[49m\u001b[33;43m\"\u001b[39;49m\u001b[33;43mstream\u001b[39;49m\u001b[33;43m\"\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43mstream\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 989\u001b[39m \u001b[43m \u001b[49m\u001b[33;43m\"\u001b[39;49m\u001b[33;43msystem\u001b[39;49m\u001b[33;43m\"\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43msystem\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 990\u001b[39m \u001b[43m \u001b[49m\u001b[33;43m\"\u001b[39;49m\u001b[33;43mtemperature\u001b[39;49m\u001b[33;43m\"\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43mtemperature\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 991\u001b[39m \u001b[43m \u001b[49m\u001b[33;43m\"\u001b[39;49m\u001b[33;43mthinking\u001b[39;49m\u001b[33;43m\"\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43mthinking\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 992\u001b[39m \u001b[43m \u001b[49m\u001b[33;43m\"\u001b[39;49m\u001b[33;43mtool_choice\u001b[39;49m\u001b[33;43m\"\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43mtool_choice\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 993\u001b[39m \u001b[43m \u001b[49m\u001b[33;43m\"\u001b[39;49m\u001b[33;43mtools\u001b[39;49m\u001b[33;43m\"\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43mtools\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 994\u001b[39m \u001b[43m \u001b[49m\u001b[33;43m\"\u001b[39;49m\u001b[33;43mtop_k\u001b[39;49m\u001b[33;43m\"\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43mtop_k\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 995\u001b[39m \u001b[43m \u001b[49m\u001b[33;43m\"\u001b[39;49m\u001b[33;43mtop_p\u001b[39;49m\u001b[33;43m\"\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43mtop_p\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 996\u001b[39m \u001b[43m \u001b[49m\u001b[43m}\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 997\u001b[39m \u001b[43m \u001b[49m\u001b[43mmessage_create_params\u001b[49m\u001b[43m.\u001b[49m\u001b[43mMessageCreateParamsStreaming\u001b[49m\n\u001b[32m 998\u001b[39m \u001b[43m \u001b[49m\u001b[38;5;28;43;01mif\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mstream\u001b[49m\n\u001b[32m 999\u001b[39m \u001b[43m \u001b[49m\u001b[38;5;28;43;01melse\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mmessage_create_params\u001b[49m\u001b[43m.\u001b[49m\u001b[43mMessageCreateParamsNonStreaming\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 1000\u001b[39m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 1001\u001b[39m \u001b[43m \u001b[49m\u001b[43moptions\u001b[49m\u001b[43m=\u001b[49m\u001b[43mmake_request_options\u001b[49m\u001b[43m(\u001b[49m\n\u001b[32m 1002\u001b[39m \u001b[43m \u001b[49m\u001b[43mextra_headers\u001b[49m\u001b[43m=\u001b[49m\u001b[43mextra_headers\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mextra_query\u001b[49m\u001b[43m=\u001b[49m\u001b[43mextra_query\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mextra_body\u001b[49m\u001b[43m=\u001b[49m\u001b[43mextra_body\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mtimeout\u001b[49m\u001b[43m=\u001b[49m\u001b[43mtimeout\u001b[49m\n\u001b[32m 1003\u001b[39m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 1004\u001b[39m \u001b[43m \u001b[49m\u001b[43mcast_to\u001b[49m\u001b[43m=\u001b[49m\u001b[43mMessage\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 1005\u001b[39m \u001b[43m \u001b[49m\u001b[43mstream\u001b[49m\u001b[43m=\u001b[49m\u001b[43mstream\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01mor\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mFalse\u001b[39;49;00m\u001b[43m,\u001b[49m\n\u001b[32m 1006\u001b[39m \u001b[43m \u001b[49m\u001b[43mstream_cls\u001b[49m\u001b[43m=\u001b[49m\u001b[43mStream\u001b[49m\u001b[43m[\u001b[49m\u001b[43mRawMessageStreamEvent\u001b[49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 1007\u001b[39m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n", "\u001b[36mFile \u001b[39m\u001b[32m~/projects/llm/ed-donner-agents-course-2/.venv/lib/python3.12/site-packages/anthropic/_base_client.py:1314\u001b[39m, in \u001b[36mSyncAPIClient.post\u001b[39m\u001b[34m(self, path, cast_to, body, options, files, stream, stream_cls)\u001b[39m\n\u001b[32m 1300\u001b[39m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34mpost\u001b[39m(\n\u001b[32m 1301\u001b[39m \u001b[38;5;28mself\u001b[39m,\n\u001b[32m 1302\u001b[39m path: \u001b[38;5;28mstr\u001b[39m,\n\u001b[32m (...)\u001b[39m\u001b[32m 1309\u001b[39m stream_cls: \u001b[38;5;28mtype\u001b[39m[_StreamT] | \u001b[38;5;28;01mNone\u001b[39;00m = \u001b[38;5;28;01mNone\u001b[39;00m,\n\u001b[32m 1310\u001b[39m ) -> ResponseT | _StreamT:\n\u001b[32m 1311\u001b[39m opts = FinalRequestOptions.construct(\n\u001b[32m 1312\u001b[39m method=\u001b[33m\"\u001b[39m\u001b[33mpost\u001b[39m\u001b[33m\"\u001b[39m, url=path, json_data=body, files=to_httpx_files(files), **options\n\u001b[32m 1313\u001b[39m )\n\u001b[32m-> \u001b[39m\u001b[32m1314\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m cast(ResponseT, \u001b[38;5;28;43mself\u001b[39;49m\u001b[43m.\u001b[49m\u001b[43mrequest\u001b[49m\u001b[43m(\u001b[49m\u001b[43mcast_to\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mopts\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mstream\u001b[49m\u001b[43m=\u001b[49m\u001b[43mstream\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mstream_cls\u001b[49m\u001b[43m=\u001b[49m\u001b[43mstream_cls\u001b[49m\u001b[43m)\u001b[49m)\n", "\u001b[36mFile \u001b[39m\u001b[32m~/projects/llm/ed-donner-agents-course-2/.venv/lib/python3.12/site-packages/anthropic/_base_client.py:1023\u001b[39m, in \u001b[36mSyncAPIClient.request\u001b[39m\u001b[34m(self, cast_to, options, stream, stream_cls)\u001b[39m\n\u001b[32m 1020\u001b[39m options = \u001b[38;5;28mself\u001b[39m._prepare_options(options)\n\u001b[32m 1022\u001b[39m remaining_retries = max_retries - retries_taken\n\u001b[32m-> \u001b[39m\u001b[32m1023\u001b[39m request = \u001b[38;5;28;43mself\u001b[39;49m\u001b[43m.\u001b[49m\u001b[43m_build_request\u001b[49m\u001b[43m(\u001b[49m\u001b[43moptions\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mretries_taken\u001b[49m\u001b[43m=\u001b[49m\u001b[43mretries_taken\u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 1024\u001b[39m \u001b[38;5;28mself\u001b[39m._prepare_request(request)\n\u001b[32m 1026\u001b[39m kwargs: HttpxSendArgs = {}\n", "\u001b[36mFile \u001b[39m\u001b[32m~/projects/llm/ed-donner-agents-course-2/.venv/lib/python3.12/site-packages/anthropic/_base_client.py:506\u001b[39m, in \u001b[36mBaseClient._build_request\u001b[39m\u001b[34m(self, options, retries_taken)\u001b[39m\n\u001b[32m 503\u001b[39m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[32m 504\u001b[39m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mRuntimeError\u001b[39;00m(\u001b[33mf\u001b[39m\u001b[33m\"\u001b[39m\u001b[33mUnexpected JSON data type, \u001b[39m\u001b[38;5;132;01m{\u001b[39;00m\u001b[38;5;28mtype\u001b[39m(json_data)\u001b[38;5;132;01m}\u001b[39;00m\u001b[33m, cannot merge with `extra_body`\u001b[39m\u001b[33m\"\u001b[39m)\n\u001b[32m--> \u001b[39m\u001b[32m506\u001b[39m headers = \u001b[38;5;28;43mself\u001b[39;49m\u001b[43m.\u001b[49m\u001b[43m_build_headers\u001b[49m\u001b[43m(\u001b[49m\u001b[43moptions\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mretries_taken\u001b[49m\u001b[43m=\u001b[49m\u001b[43mretries_taken\u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 507\u001b[39m params = _merge_mappings(\u001b[38;5;28mself\u001b[39m.default_query, options.params)\n\u001b[32m 508\u001b[39m content_type = headers.get(\u001b[33m\"\u001b[39m\u001b[33mContent-Type\u001b[39m\u001b[33m\"\u001b[39m)\n", "\u001b[36mFile \u001b[39m\u001b[32m~/projects/llm/ed-donner-agents-course-2/.venv/lib/python3.12/site-packages/anthropic/_base_client.py:447\u001b[39m, in \u001b[36mBaseClient._build_headers\u001b[39m\u001b[34m(self, options, retries_taken)\u001b[39m\n\u001b[32m 437\u001b[39m custom_headers = options.headers \u001b[38;5;129;01mor\u001b[39;00m {}\n\u001b[32m 438\u001b[39m headers_dict = _merge_mappings(\n\u001b[32m 439\u001b[39m {\n\u001b[32m 440\u001b[39m \u001b[33m\"\u001b[39m\u001b[33mx-stainless-timeout\u001b[39m\u001b[33m\"\u001b[39m: \u001b[38;5;28mstr\u001b[39m(options.timeout.read)\n\u001b[32m (...)\u001b[39m\u001b[32m 445\u001b[39m custom_headers,\n\u001b[32m 446\u001b[39m )\n\u001b[32m--> \u001b[39m\u001b[32m447\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[43m.\u001b[49m\u001b[43m_validate_headers\u001b[49m\u001b[43m(\u001b[49m\u001b[43mheaders_dict\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mcustom_headers\u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 449\u001b[39m \u001b[38;5;66;03m# headers are case-insensitive while dictionaries are not.\u001b[39;00m\n\u001b[32m 450\u001b[39m headers = httpx.Headers(headers_dict)\n", "\u001b[36mFile \u001b[39m\u001b[32m~/projects/llm/ed-donner-agents-course-2/.venv/lib/python3.12/site-packages/anthropic/_client.py:196\u001b[39m, in \u001b[36mAnthropic._validate_headers\u001b[39m\u001b[34m(self, headers, custom_headers)\u001b[39m\n\u001b[32m 193\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(custom_headers.get(\u001b[33m\"\u001b[39m\u001b[33mAuthorization\u001b[39m\u001b[33m\"\u001b[39m), Omit):\n\u001b[32m 194\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m\n\u001b[32m--> \u001b[39m\u001b[32m196\u001b[39m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mTypeError\u001b[39;00m(\n\u001b[32m 197\u001b[39m \u001b[33m'\u001b[39m\u001b[33m\"\u001b[39m\u001b[33mCould not resolve authentication method. Expected either api_key or auth_token to be set. Or for one of the `X-Api-Key` or `Authorization` headers to be explicitly omitted\u001b[39m\u001b[33m\"\u001b[39m\u001b[33m'\u001b[39m\n\u001b[32m 198\u001b[39m )\n", "\u001b[31mTypeError\u001b[39m: \"Could not resolve authentication method. Expected either api_key or auth_token to be set. Or for one of the `X-Api-Key` or `Authorization` headers to be explicitly omitted\"" ] } ], "source": [ "# Anthropic has a slightly different API, and Max Tokens is required\n", "\n", "model_name = \"claude-3-7-sonnet-latest\"\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": null, "metadata": {}, "outputs": [], "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": [ "groq = OpenAI(api_key=groq_api_key, base_url=\"https://api.groq.com/openai/v1\")\n", "model_name = \"llama-3.3-70b-versatile\"\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 ` downloads a model locally \n", "`ollama ls` lists all the models you've downloaded \n", "`ollama rm ` deletes the specified model from your downloads" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", " \n", " \n", " \n", " \n", "
\n", " \n", " \n", "

Super important - ignore me at your peril!

\n", " The model called llama3.3 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 llama3.2 or llama3.2:1b and if you want larger, try llama3.1 or smaller variants of Qwen, Gemma, Phi or DeepSeek. See the the Ollama models page for a full list of models and sizes.\n", " \n", "
" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "!ollama pull llama3.2" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "Designing a society that balances individual freedom and collective well-being is indeed a complex task. Let's break down the key principles I'd consider for establishing such a society:\n", "\n", "### Principles\n", "\n", "1. **Human Dignity**: Every individual has intrinsic worth and should be treated with respect and compassion.\n", "\n", "2. **Fundamental Rights**: Certain rights are inalienable, including freedom of speech, thought, religion, assembly, privacy, etc. These are non-negotiable for the concept of individual freedom.\n", "\n", "3. **Rule of Law**: The laws apply equally to all members of society and protect individuals from arbitrary or discriminatory treatment by those in power.\n", "\n", "4. **Egalitarianism with Equity**: All individuals have equal rights before the law, but equity measures ensure that everyone has fair opportunities based on their unique needs.\n", "\n", "5. **Collective Responsibility**: Citizens collectively bear responsibility for maintaining public infrastructure, resources, and environment to protect the common good.\n", "\n", "6. **Social Contract**: The understanding that individuals agree to a set of rules (laws) that benefit society as a whole in exchange for enjoying certain rights and protections.\n", "\n", "7. **Participatory Democracy**: Encourage active participation by all citizens in decision-making processes relevant to their communities or the nation.\n", "\n", "### Addressing Conflicts\n", "\n", "1. **Constitutional Framework**: Establish an inclusive, well-defined constitution that clearly delineates individual rights and responsibilities alongside those of the government.\n", "\n", "2. **Judicial Review**: Implement a strong, independent judiciary with powers to interpret laws and constitution in cases where conflicts arise between individual freedom and collective well-being.\n", "\n", "3. **Ethics Committees/Boards**: Set up ethics boards or committees to handle complex moral dilemmas by considering all viewpoints and suggesting balanced solutions.\n", "\n", "4. **Public Dialogue & Consultation**: Ensure decisions are made through transparent, open dialogue with stakeholders affected by the potential conflict so that public views, concerns, and insights can influence resolution processes.\n", "\n", "5. **Proportionality Principle**: When conflicts arise between individual freedom and collective well-being, laws/regulations should only intrude into individual freedoms in ways proportional to the severity of threats posed on common welfare.\n", "\n", "6. **Education & Awareness**: Educate citizens from an early age on values including both individual rights/freedoms as well as their role/responsibility within the larger collective community.\n", "\n", "### Implementation\n", "\n", "1. **Legal Safeguards**: Enact laws protecting freedoms of expression and thought while also ensuring people cannot exercise these rights to directly harm others or undermine social cohesion.\n", "\n", "2. **Regulated Markets & Economy**: Allow a market economy where individuals can freely participate in entrepreneurial activities while implementing regulations to prevent monopolies and ensure equitable distribution of resources and wealth.\n", "\n", "3. **Public Services**: Provide essential public services like healthcare, education, social security which promote collective well-being without compromising basic individual rights or freedoms.\n", "\n", "4. **Transparency & Accountability**: Ensure government operations are transparent and accountable to avoid potential misuse of powers that could infringe on either individual freedom or collective well-being.\n", "\n", "5. **Community Engagement**: Encourage local communities to resolve minor disputes/conflicts locally through community councils/mediation where possible, reducing the strain on legal system resources.\n", "\n", "### Addressing Conflicting Examples\n", "\n", "1. **Public Health Crisis vs Personal Freedom**:\n", " During pandemics (e.g., COVID-19), governments may impose restrictive measures like lockdowns and mask mandates to protect public health, which restricts individual freedom of movement and expression but prioritizes collective well-being.\n", "\n", "2. **Environmental Protection vs Economic Liberty**:\n", " Regulations on industries to reduce pollution or preserve natural resources might restrict business operations (economic freedoms) for the common good of all citizens who benefit from clean air/water.\n", "\n", "By embedding these principles, we allow for a flexible balance where both individual freedom and collective well-being can thrive, with mechanisms in place to address emerging conflicts as needed." ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "ollama = OpenAI(base_url='http://localhost:11434/v1', api_key='ollama')\n", "model_name = \"devstral:latest\"\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": 12, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "['gpt-4o-mini', 'devstral:latest']\n", "['Designing a society that harmonizes individual freedom with collective well-being requires a careful and thoughtful approach. Here are some principles and strategies that could effectively balance these values:\\n\\n### Principles\\n\\n1. **Respect for Autonomy**: Uphold individual rights and freedoms as fundamental. This includes freedom of expression, choice, and personal lifestyle decisions, provided they do not harm others.\\n\\n2. **Collective Responsibility**: Foster a culture of interdependence where individuals recognize their role in contributing to the community. This can include civic duties, environmental stewardship, and support for social programs.\\n\\n3. **Equitable Resources**: Ensure that all members of society have access to essential resources such as education, healthcare, and economic opportunities. A fair distribution of resources helps to reduce inequalities, enabling individuals to thrive and contribute to collective well-being.\\n\\n4. **Participatory Governance**: Create systems of governance that encourage active participation from all members of society. This includes democratic processes and mechanisms for direct involvement in decision-making.\\n\\n5. **Conflict Resolution Framework**: Establish clear, fair, and accessible mechanisms for addressing conflicts between individual rights and collective needs. This could involve mediation processes, community forums, and legal avenues that prioritize dialogue and restorative justice.\\n\\n6. **Education and Awareness**: Promote education that emphasizes the interconnectedness of individual and collective interests. Encourage critical thinking, empathy, and civic engagement among citizens.\\n\\n7. **Flexibility and Adaptability**: Acknowledge that societal needs and norms evolve over time. Institutional flexibility allows for the revision of laws and policies as social dynamics change, helping to maintain balance.\\n\\n8. **Sustainability and Long-Term Planning**: Ensure that both individual freedoms and collective well-being are approached with an eye toward sustainability. Environmental, economic, and social policies should consider long-term impacts, benefiting future generations.\\n\\n### Addressing Conflicts\\n\\n1. **Dialogue and Mediation**: Create spaces for open dialogue where individuals can express their concerns and negotiate compromises. Mediation can help find mutually beneficial solutions that respect both individual freedoms and collective welfare.\\n\\n2. **Transparent Policy-making**: Implement transparent processes in governance to maintain public trust. When individuals understand how decisions are made and how they affect their rights and lives, they are more likely to feel invested in collective goals.\\n\\n3. **Case-by-Case Assessment**: Recognize that conflicts may require tailored solutions. Establish frameworks to assess conflicts individually, weighing both individual rights and community needs.\\n\\n4. **Promotion of Common Goals**: Cultivate a shared vision that aligns individual aspirations with collective goals. Initiatives that focus on common interests, such as community development projects, can foster unity and reduce friction.\\n\\n5. **Public Accountability**: Hold institutions accountable for upholding both individual rights and community welfare. Encourage feedback mechanisms that allow citizens to voice concerns about governmental or institutional overreach or neglect.\\n\\n6. **Balancing Rights with Responsibilities**: Encourage a social contract model where enjoying rights comes with responsibilities. Individuals should understand their freedom is contingent upon respecting the rights and freedoms of others.\\n\\nBy embedding these principles into the fabric of society and addressing conflicts thoughtfully, it is possible to create a balanced environment that honors both individual freedoms and collective well-being, allowing for a vibrant and harmonious community.', \"Designing a society that balances individual freedom and collective well-being is indeed a complex task. Let's break down the key principles I'd consider for establishing such a society:\\n\\n### Principles\\n\\n1. **Human Dignity**: Every individual has intrinsic worth and should be treated with respect and compassion.\\n\\n2. **Fundamental Rights**: Certain rights are inalienable, including freedom of speech, thought, religion, assembly, privacy, etc. These are non-negotiable for the concept of individual freedom.\\n\\n3. **Rule of Law**: The laws apply equally to all members of society and protect individuals from arbitrary or discriminatory treatment by those in power.\\n\\n4. **Egalitarianism with Equity**: All individuals have equal rights before the law, but equity measures ensure that everyone has fair opportunities based on their unique needs.\\n\\n5. **Collective Responsibility**: Citizens collectively bear responsibility for maintaining public infrastructure, resources, and environment to protect the common good.\\n\\n6. **Social Contract**: The understanding that individuals agree to a set of rules (laws) that benefit society as a whole in exchange for enjoying certain rights and protections.\\n\\n7. **Participatory Democracy**: Encourage active participation by all citizens in decision-making processes relevant to their communities or the nation.\\n\\n### Addressing Conflicts\\n\\n1. **Constitutional Framework**: Establish an inclusive, well-defined constitution that clearly delineates individual rights and responsibilities alongside those of the government.\\n\\n2. **Judicial Review**: Implement a strong, independent judiciary with powers to interpret laws and constitution in cases where conflicts arise between individual freedom and collective well-being.\\n\\n3. **Ethics Committees/Boards**: Set up ethics boards or committees to handle complex moral dilemmas by considering all viewpoints and suggesting balanced solutions.\\n\\n4. **Public Dialogue & Consultation**: Ensure decisions are made through transparent, open dialogue with stakeholders affected by the potential conflict so that public views, concerns, and insights can influence resolution processes.\\n\\n5. **Proportionality Principle**: When conflicts arise between individual freedom and collective well-being, laws/regulations should only intrude into individual freedoms in ways proportional to the severity of threats posed on common welfare.\\n\\n6. **Education & Awareness**: Educate citizens from an early age on values including both individual rights/freedoms as well as their role/responsibility within the larger collective community.\\n\\n### Implementation\\n\\n1. **Legal Safeguards**: Enact laws protecting freedoms of expression and thought while also ensuring people cannot exercise these rights to directly harm others or undermine social cohesion.\\n\\n2. **Regulated Markets & Economy**: Allow a market economy where individuals can freely participate in entrepreneurial activities while implementing regulations to prevent monopolies and ensure equitable distribution of resources and wealth.\\n\\n3. **Public Services**: Provide essential public services like healthcare, education, social security which promote collective well-being without compromising basic individual rights or freedoms.\\n\\n4. **Transparency & Accountability**: Ensure government operations are transparent and accountable to avoid potential misuse of powers that could infringe on either individual freedom or collective well-being.\\n\\n5. **Community Engagement**: Encourage local communities to resolve minor disputes/conflicts locally through community councils/mediation where possible, reducing the strain on legal system resources.\\n\\n### Addressing Conflicting Examples\\n\\n1. **Public Health Crisis vs Personal Freedom**:\\n During pandemics (e.g., COVID-19), governments may impose restrictive measures like lockdowns and mask mandates to protect public health, which restricts individual freedom of movement and expression but prioritizes collective well-being.\\n\\n2. **Environmental Protection vs Economic Liberty**:\\n Regulations on industries to reduce pollution or preserve natural resources might restrict business operations (economic freedoms) for the common good of all citizens who benefit from clean air/water.\\n\\nBy embedding these principles, we allow for a flexible balance where both individual freedom and collective well-being can thrive, with mechanisms in place to address emerging conflicts as needed.\"]\n" ] } ], "source": [ "# So where are we?\n", "\n", "print(competitors)\n", "print(answers)\n" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Competitor: gpt-4o-mini\n", "\n", "Designing a society that harmonizes individual freedom with collective well-being requires a careful and thoughtful approach. Here are some principles and strategies that could effectively balance these values:\n", "\n", "### Principles\n", "\n", "1. **Respect for Autonomy**: Uphold individual rights and freedoms as fundamental. This includes freedom of expression, choice, and personal lifestyle decisions, provided they do not harm others.\n", "\n", "2. **Collective Responsibility**: Foster a culture of interdependence where individuals recognize their role in contributing to the community. This can include civic duties, environmental stewardship, and support for social programs.\n", "\n", "3. **Equitable Resources**: Ensure that all members of society have access to essential resources such as education, healthcare, and economic opportunities. A fair distribution of resources helps to reduce inequalities, enabling individuals to thrive and contribute to collective well-being.\n", "\n", "4. **Participatory Governance**: Create systems of governance that encourage active participation from all members of society. This includes democratic processes and mechanisms for direct involvement in decision-making.\n", "\n", "5. **Conflict Resolution Framework**: Establish clear, fair, and accessible mechanisms for addressing conflicts between individual rights and collective needs. This could involve mediation processes, community forums, and legal avenues that prioritize dialogue and restorative justice.\n", "\n", "6. **Education and Awareness**: Promote education that emphasizes the interconnectedness of individual and collective interests. Encourage critical thinking, empathy, and civic engagement among citizens.\n", "\n", "7. **Flexibility and Adaptability**: Acknowledge that societal needs and norms evolve over time. Institutional flexibility allows for the revision of laws and policies as social dynamics change, helping to maintain balance.\n", "\n", "8. **Sustainability and Long-Term Planning**: Ensure that both individual freedoms and collective well-being are approached with an eye toward sustainability. Environmental, economic, and social policies should consider long-term impacts, benefiting future generations.\n", "\n", "### Addressing Conflicts\n", "\n", "1. **Dialogue and Mediation**: Create spaces for open dialogue where individuals can express their concerns and negotiate compromises. Mediation can help find mutually beneficial solutions that respect both individual freedoms and collective welfare.\n", "\n", "2. **Transparent Policy-making**: Implement transparent processes in governance to maintain public trust. When individuals understand how decisions are made and how they affect their rights and lives, they are more likely to feel invested in collective goals.\n", "\n", "3. **Case-by-Case Assessment**: Recognize that conflicts may require tailored solutions. Establish frameworks to assess conflicts individually, weighing both individual rights and community needs.\n", "\n", "4. **Promotion of Common Goals**: Cultivate a shared vision that aligns individual aspirations with collective goals. Initiatives that focus on common interests, such as community development projects, can foster unity and reduce friction.\n", "\n", "5. **Public Accountability**: Hold institutions accountable for upholding both individual rights and community welfare. Encourage feedback mechanisms that allow citizens to voice concerns about governmental or institutional overreach or neglect.\n", "\n", "6. **Balancing Rights with Responsibilities**: Encourage a social contract model where enjoying rights comes with responsibilities. Individuals should understand their freedom is contingent upon respecting the rights and freedoms of others.\n", "\n", "By embedding these principles into the fabric of society and addressing conflicts thoughtfully, it is possible to create a balanced environment that honors both individual freedoms and collective well-being, allowing for a vibrant and harmonious community.\n", "Competitor: devstral:latest\n", "\n", "Designing a society that balances individual freedom and collective well-being is indeed a complex task. Let's break down the key principles I'd consider for establishing such a society:\n", "\n", "### Principles\n", "\n", "1. **Human Dignity**: Every individual has intrinsic worth and should be treated with respect and compassion.\n", "\n", "2. **Fundamental Rights**: Certain rights are inalienable, including freedom of speech, thought, religion, assembly, privacy, etc. These are non-negotiable for the concept of individual freedom.\n", "\n", "3. **Rule of Law**: The laws apply equally to all members of society and protect individuals from arbitrary or discriminatory treatment by those in power.\n", "\n", "4. **Egalitarianism with Equity**: All individuals have equal rights before the law, but equity measures ensure that everyone has fair opportunities based on their unique needs.\n", "\n", "5. **Collective Responsibility**: Citizens collectively bear responsibility for maintaining public infrastructure, resources, and environment to protect the common good.\n", "\n", "6. **Social Contract**: The understanding that individuals agree to a set of rules (laws) that benefit society as a whole in exchange for enjoying certain rights and protections.\n", "\n", "7. **Participatory Democracy**: Encourage active participation by all citizens in decision-making processes relevant to their communities or the nation.\n", "\n", "### Addressing Conflicts\n", "\n", "1. **Constitutional Framework**: Establish an inclusive, well-defined constitution that clearly delineates individual rights and responsibilities alongside those of the government.\n", "\n", "2. **Judicial Review**: Implement a strong, independent judiciary with powers to interpret laws and constitution in cases where conflicts arise between individual freedom and collective well-being.\n", "\n", "3. **Ethics Committees/Boards**: Set up ethics boards or committees to handle complex moral dilemmas by considering all viewpoints and suggesting balanced solutions.\n", "\n", "4. **Public Dialogue & Consultation**: Ensure decisions are made through transparent, open dialogue with stakeholders affected by the potential conflict so that public views, concerns, and insights can influence resolution processes.\n", "\n", "5. **Proportionality Principle**: When conflicts arise between individual freedom and collective well-being, laws/regulations should only intrude into individual freedoms in ways proportional to the severity of threats posed on common welfare.\n", "\n", "6. **Education & Awareness**: Educate citizens from an early age on values including both individual rights/freedoms as well as their role/responsibility within the larger collective community.\n", "\n", "### Implementation\n", "\n", "1. **Legal Safeguards**: Enact laws protecting freedoms of expression and thought while also ensuring people cannot exercise these rights to directly harm others or undermine social cohesion.\n", "\n", "2. **Regulated Markets & Economy**: Allow a market economy where individuals can freely participate in entrepreneurial activities while implementing regulations to prevent monopolies and ensure equitable distribution of resources and wealth.\n", "\n", "3. **Public Services**: Provide essential public services like healthcare, education, social security which promote collective well-being without compromising basic individual rights or freedoms.\n", "\n", "4. **Transparency & Accountability**: Ensure government operations are transparent and accountable to avoid potential misuse of powers that could infringe on either individual freedom or collective well-being.\n", "\n", "5. **Community Engagement**: Encourage local communities to resolve minor disputes/conflicts locally through community councils/mediation where possible, reducing the strain on legal system resources.\n", "\n", "### Addressing Conflicting Examples\n", "\n", "1. **Public Health Crisis vs Personal Freedom**:\n", " During pandemics (e.g., COVID-19), governments may impose restrictive measures like lockdowns and mask mandates to protect public health, which restricts individual freedom of movement and expression but prioritizes collective well-being.\n", "\n", "2. **Environmental Protection vs Economic Liberty**:\n", " Regulations on industries to reduce pollution or preserve natural resources might restrict business operations (economic freedoms) for the common good of all citizens who benefit from clean air/water.\n", "\n", "By embedding these principles, we allow for a flexible balance where both individual freedom and collective well-being can thrive, with mechanisms in place to address emerging conflicts as needed.\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": 14, "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": 15, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "# Response from competitor 1\n", "\n", "Designing a society that harmonizes individual freedom with collective well-being requires a careful and thoughtful approach. Here are some principles and strategies that could effectively balance these values:\n", "\n", "### Principles\n", "\n", "1. **Respect for Autonomy**: Uphold individual rights and freedoms as fundamental. This includes freedom of expression, choice, and personal lifestyle decisions, provided they do not harm others.\n", "\n", "2. **Collective Responsibility**: Foster a culture of interdependence where individuals recognize their role in contributing to the community. This can include civic duties, environmental stewardship, and support for social programs.\n", "\n", "3. **Equitable Resources**: Ensure that all members of society have access to essential resources such as education, healthcare, and economic opportunities. A fair distribution of resources helps to reduce inequalities, enabling individuals to thrive and contribute to collective well-being.\n", "\n", "4. **Participatory Governance**: Create systems of governance that encourage active participation from all members of society. This includes democratic processes and mechanisms for direct involvement in decision-making.\n", "\n", "5. **Conflict Resolution Framework**: Establish clear, fair, and accessible mechanisms for addressing conflicts between individual rights and collective needs. This could involve mediation processes, community forums, and legal avenues that prioritize dialogue and restorative justice.\n", "\n", "6. **Education and Awareness**: Promote education that emphasizes the interconnectedness of individual and collective interests. Encourage critical thinking, empathy, and civic engagement among citizens.\n", "\n", "7. **Flexibility and Adaptability**: Acknowledge that societal needs and norms evolve over time. Institutional flexibility allows for the revision of laws and policies as social dynamics change, helping to maintain balance.\n", "\n", "8. **Sustainability and Long-Term Planning**: Ensure that both individual freedoms and collective well-being are approached with an eye toward sustainability. Environmental, economic, and social policies should consider long-term impacts, benefiting future generations.\n", "\n", "### Addressing Conflicts\n", "\n", "1. **Dialogue and Mediation**: Create spaces for open dialogue where individuals can express their concerns and negotiate compromises. Mediation can help find mutually beneficial solutions that respect both individual freedoms and collective welfare.\n", "\n", "2. **Transparent Policy-making**: Implement transparent processes in governance to maintain public trust. When individuals understand how decisions are made and how they affect their rights and lives, they are more likely to feel invested in collective goals.\n", "\n", "3. **Case-by-Case Assessment**: Recognize that conflicts may require tailored solutions. Establish frameworks to assess conflicts individually, weighing both individual rights and community needs.\n", "\n", "4. **Promotion of Common Goals**: Cultivate a shared vision that aligns individual aspirations with collective goals. Initiatives that focus on common interests, such as community development projects, can foster unity and reduce friction.\n", "\n", "5. **Public Accountability**: Hold institutions accountable for upholding both individual rights and community welfare. Encourage feedback mechanisms that allow citizens to voice concerns about governmental or institutional overreach or neglect.\n", "\n", "6. **Balancing Rights with Responsibilities**: Encourage a social contract model where enjoying rights comes with responsibilities. Individuals should understand their freedom is contingent upon respecting the rights and freedoms of others.\n", "\n", "By embedding these principles into the fabric of society and addressing conflicts thoughtfully, it is possible to create a balanced environment that honors both individual freedoms and collective well-being, allowing for a vibrant and harmonious community.\n", "\n", "# Response from competitor 2\n", "\n", "Designing a society that balances individual freedom and collective well-being is indeed a complex task. Let's break down the key principles I'd consider for establishing such a society:\n", "\n", "### Principles\n", "\n", "1. **Human Dignity**: Every individual has intrinsic worth and should be treated with respect and compassion.\n", "\n", "2. **Fundamental Rights**: Certain rights are inalienable, including freedom of speech, thought, religion, assembly, privacy, etc. These are non-negotiable for the concept of individual freedom.\n", "\n", "3. **Rule of Law**: The laws apply equally to all members of society and protect individuals from arbitrary or discriminatory treatment by those in power.\n", "\n", "4. **Egalitarianism with Equity**: All individuals have equal rights before the law, but equity measures ensure that everyone has fair opportunities based on their unique needs.\n", "\n", "5. **Collective Responsibility**: Citizens collectively bear responsibility for maintaining public infrastructure, resources, and environment to protect the common good.\n", "\n", "6. **Social Contract**: The understanding that individuals agree to a set of rules (laws) that benefit society as a whole in exchange for enjoying certain rights and protections.\n", "\n", "7. **Participatory Democracy**: Encourage active participation by all citizens in decision-making processes relevant to their communities or the nation.\n", "\n", "### Addressing Conflicts\n", "\n", "1. **Constitutional Framework**: Establish an inclusive, well-defined constitution that clearly delineates individual rights and responsibilities alongside those of the government.\n", "\n", "2. **Judicial Review**: Implement a strong, independent judiciary with powers to interpret laws and constitution in cases where conflicts arise between individual freedom and collective well-being.\n", "\n", "3. **Ethics Committees/Boards**: Set up ethics boards or committees to handle complex moral dilemmas by considering all viewpoints and suggesting balanced solutions.\n", "\n", "4. **Public Dialogue & Consultation**: Ensure decisions are made through transparent, open dialogue with stakeholders affected by the potential conflict so that public views, concerns, and insights can influence resolution processes.\n", "\n", "5. **Proportionality Principle**: When conflicts arise between individual freedom and collective well-being, laws/regulations should only intrude into individual freedoms in ways proportional to the severity of threats posed on common welfare.\n", "\n", "6. **Education & Awareness**: Educate citizens from an early age on values including both individual rights/freedoms as well as their role/responsibility within the larger collective community.\n", "\n", "### Implementation\n", "\n", "1. **Legal Safeguards**: Enact laws protecting freedoms of expression and thought while also ensuring people cannot exercise these rights to directly harm others or undermine social cohesion.\n", "\n", "2. **Regulated Markets & Economy**: Allow a market economy where individuals can freely participate in entrepreneurial activities while implementing regulations to prevent monopolies and ensure equitable distribution of resources and wealth.\n", "\n", "3. **Public Services**: Provide essential public services like healthcare, education, social security which promote collective well-being without compromising basic individual rights or freedoms.\n", "\n", "4. **Transparency & Accountability**: Ensure government operations are transparent and accountable to avoid potential misuse of powers that could infringe on either individual freedom or collective well-being.\n", "\n", "5. **Community Engagement**: Encourage local communities to resolve minor disputes/conflicts locally through community councils/mediation where possible, reducing the strain on legal system resources.\n", "\n", "### Addressing Conflicting Examples\n", "\n", "1. **Public Health Crisis vs Personal Freedom**:\n", " During pandemics (e.g., COVID-19), governments may impose restrictive measures like lockdowns and mask mandates to protect public health, which restricts individual freedom of movement and expression but prioritizes collective well-being.\n", "\n", "2. **Environmental Protection vs Economic Liberty**:\n", " Regulations on industries to reduce pollution or preserve natural resources might restrict business operations (economic freedoms) for the common good of all citizens who benefit from clean air/water.\n", "\n", "By embedding these principles, we allow for a flexible balance where both individual freedom and collective well-being can thrive, with mechanisms in place to address emerging conflicts as needed.\n", "\n", "\n" ] } ], "source": [ "print(together)" ] }, { "cell_type": "code", "execution_count": 16, "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": 17, "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", "If you were tasked with designing a society that prioritizes both individual freedom and collective well-being, what principles would you establish to balance these sometimes opposing values, and how would you address potential conflicts that arise?\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", "Designing a society that harmonizes individual freedom with collective well-being requires a careful and thoughtful approach. Here are some principles and strategies that could effectively balance these values:\n", "\n", "### Principles\n", "\n", "1. **Respect for Autonomy**: Uphold individual rights and freedoms as fundamental. This includes freedom of expression, choice, and personal lifestyle decisions, provided they do not harm others.\n", "\n", "2. **Collective Responsibility**: Foster a culture of interdependence where individuals recognize their role in contributing to the community. This can include civic duties, environmental stewardship, and support for social programs.\n", "\n", "3. **Equitable Resources**: Ensure that all members of society have access to essential resources such as education, healthcare, and economic opportunities. A fair distribution of resources helps to reduce inequalities, enabling individuals to thrive and contribute to collective well-being.\n", "\n", "4. **Participatory Governance**: Create systems of governance that encourage active participation from all members of society. This includes democratic processes and mechanisms for direct involvement in decision-making.\n", "\n", "5. **Conflict Resolution Framework**: Establish clear, fair, and accessible mechanisms for addressing conflicts between individual rights and collective needs. This could involve mediation processes, community forums, and legal avenues that prioritize dialogue and restorative justice.\n", "\n", "6. **Education and Awareness**: Promote education that emphasizes the interconnectedness of individual and collective interests. Encourage critical thinking, empathy, and civic engagement among citizens.\n", "\n", "7. **Flexibility and Adaptability**: Acknowledge that societal needs and norms evolve over time. Institutional flexibility allows for the revision of laws and policies as social dynamics change, helping to maintain balance.\n", "\n", "8. **Sustainability and Long-Term Planning**: Ensure that both individual freedoms and collective well-being are approached with an eye toward sustainability. Environmental, economic, and social policies should consider long-term impacts, benefiting future generations.\n", "\n", "### Addressing Conflicts\n", "\n", "1. **Dialogue and Mediation**: Create spaces for open dialogue where individuals can express their concerns and negotiate compromises. Mediation can help find mutually beneficial solutions that respect both individual freedoms and collective welfare.\n", "\n", "2. **Transparent Policy-making**: Implement transparent processes in governance to maintain public trust. When individuals understand how decisions are made and how they affect their rights and lives, they are more likely to feel invested in collective goals.\n", "\n", "3. **Case-by-Case Assessment**: Recognize that conflicts may require tailored solutions. Establish frameworks to assess conflicts individually, weighing both individual rights and community needs.\n", "\n", "4. **Promotion of Common Goals**: Cultivate a shared vision that aligns individual aspirations with collective goals. Initiatives that focus on common interests, such as community development projects, can foster unity and reduce friction.\n", "\n", "5. **Public Accountability**: Hold institutions accountable for upholding both individual rights and community welfare. Encourage feedback mechanisms that allow citizens to voice concerns about governmental or institutional overreach or neglect.\n", "\n", "6. **Balancing Rights with Responsibilities**: Encourage a social contract model where enjoying rights comes with responsibilities. Individuals should understand their freedom is contingent upon respecting the rights and freedoms of others.\n", "\n", "By embedding these principles into the fabric of society and addressing conflicts thoughtfully, it is possible to create a balanced environment that honors both individual freedoms and collective well-being, allowing for a vibrant and harmonious community.\n", "\n", "# Response from competitor 2\n", "\n", "Designing a society that balances individual freedom and collective well-being is indeed a complex task. Let's break down the key principles I'd consider for establishing such a society:\n", "\n", "### Principles\n", "\n", "1. **Human Dignity**: Every individual has intrinsic worth and should be treated with respect and compassion.\n", "\n", "2. **Fundamental Rights**: Certain rights are inalienable, including freedom of speech, thought, religion, assembly, privacy, etc. These are non-negotiable for the concept of individual freedom.\n", "\n", "3. **Rule of Law**: The laws apply equally to all members of society and protect individuals from arbitrary or discriminatory treatment by those in power.\n", "\n", "4. **Egalitarianism with Equity**: All individuals have equal rights before the law, but equity measures ensure that everyone has fair opportunities based on their unique needs.\n", "\n", "5. **Collective Responsibility**: Citizens collectively bear responsibility for maintaining public infrastructure, resources, and environment to protect the common good.\n", "\n", "6. **Social Contract**: The understanding that individuals agree to a set of rules (laws) that benefit society as a whole in exchange for enjoying certain rights and protections.\n", "\n", "7. **Participatory Democracy**: Encourage active participation by all citizens in decision-making processes relevant to their communities or the nation.\n", "\n", "### Addressing Conflicts\n", "\n", "1. **Constitutional Framework**: Establish an inclusive, well-defined constitution that clearly delineates individual rights and responsibilities alongside those of the government.\n", "\n", "2. **Judicial Review**: Implement a strong, independent judiciary with powers to interpret laws and constitution in cases where conflicts arise between individual freedom and collective well-being.\n", "\n", "3. **Ethics Committees/Boards**: Set up ethics boards or committees to handle complex moral dilemmas by considering all viewpoints and suggesting balanced solutions.\n", "\n", "4. **Public Dialogue & Consultation**: Ensure decisions are made through transparent, open dialogue with stakeholders affected by the potential conflict so that public views, concerns, and insights can influence resolution processes.\n", "\n", "5. **Proportionality Principle**: When conflicts arise between individual freedom and collective well-being, laws/regulations should only intrude into individual freedoms in ways proportional to the severity of threats posed on common welfare.\n", "\n", "6. **Education & Awareness**: Educate citizens from an early age on values including both individual rights/freedoms as well as their role/responsibility within the larger collective community.\n", "\n", "### Implementation\n", "\n", "1. **Legal Safeguards**: Enact laws protecting freedoms of expression and thought while also ensuring people cannot exercise these rights to directly harm others or undermine social cohesion.\n", "\n", "2. **Regulated Markets & Economy**: Allow a market economy where individuals can freely participate in entrepreneurial activities while implementing regulations to prevent monopolies and ensure equitable distribution of resources and wealth.\n", "\n", "3. **Public Services**: Provide essential public services like healthcare, education, social security which promote collective well-being without compromising basic individual rights or freedoms.\n", "\n", "4. **Transparency & Accountability**: Ensure government operations are transparent and accountable to avoid potential misuse of powers that could infringe on either individual freedom or collective well-being.\n", "\n", "5. **Community Engagement**: Encourage local communities to resolve minor disputes/conflicts locally through community councils/mediation where possible, reducing the strain on legal system resources.\n", "\n", "### Addressing Conflicting Examples\n", "\n", "1. **Public Health Crisis vs Personal Freedom**:\n", " During pandemics (e.g., COVID-19), governments may impose restrictive measures like lockdowns and mask mandates to protect public health, which restricts individual freedom of movement and expression but prioritizes collective well-being.\n", "\n", "2. **Environmental Protection vs Economic Liberty**:\n", " Regulations on industries to reduce pollution or preserve natural resources might restrict business operations (economic freedoms) for the common good of all citizens who benefit from clean air/water.\n", "\n", "By embedding these principles, we allow for a flexible balance where both individual freedom and collective well-being can thrive, with mechanisms in place to address emerging conflicts as needed.\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": 20, "metadata": {}, "outputs": [], "source": [ "judge_messages = [{\"role\": \"user\", \"content\": judge}]" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "{\"results\": [\"2\", \"1\"]}\n" ] } ], "source": [ "# Judgement time!\n", "\n", "openai = OpenAI()\n", "response = openai.chat.completions.create(\n", " model=\"o3-mini\",\n", " messages=judge_messages,\n", ")\n", "results = response.choices[0].message.content\n", "print(results)\n" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Rank 1: devstral:latest\n", "Rank 2: gpt-4o-mini\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": [ "\n", " \n", " \n", " \n", " \n", "
\n", " \n", " \n", "

Exercise

\n", " Which pattern(s) did this use? Try updating this to add another Agentic design pattern.\n", " \n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", " \n", " \n", " \n", " \n", "
\n", " \n", " \n", "

Commercial implications

\n", " 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", " \n", "
" ] } ], "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.5" } }, "nbformat": 4, "nbformat_minor": 2 }