diff --git "a/2_lab2.ipynb" "b/2_lab2.ipynb"
new file mode 100644--- /dev/null
+++ "b/2_lab2.ipynb"
@@ -0,0 +1,2696 @@
+{
+ "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",
+ " 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",
+ " | \n",
+ "
\n",
+ "
"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {},
+ "outputs": [
+ {
+ "ename": "TypeError",
+ "evalue": "str expected, not NoneType",
+ "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[3]\u001b[39m\u001b[32m, line 12\u001b[39m\n\u001b[32m 8\u001b[39m \u001b[38;5;28;01mfrom\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34;01mIPython\u001b[39;00m\u001b[34;01m.\u001b[39;00m\u001b[34;01mdisplay\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;28;01mimport\u001b[39;00m Markdown, display\n\u001b[32m 10\u001b[39m \u001b[38;5;66;03m# HTTPS_PROXY=http://192.168.170.200:8080\u001b[39;00m\n\u001b[32m 11\u001b[39m \u001b[38;5;66;03m# HTTP_PROXY=http://192.168.170.200:8080\u001b[39;00m\n\u001b[32m---> \u001b[39m\u001b[32m12\u001b[39m \u001b[43mos\u001b[49m\u001b[43m.\u001b[49m\u001b[43menviron\u001b[49m\u001b[43m[\u001b[49m\u001b[33;43m\"\u001b[39;49m\u001b[33;43mHTTPS_PROXY\u001b[39;49m\u001b[33;43m\"\u001b[39;49m\u001b[43m]\u001b[49m = os.getenv(\u001b[33m'\u001b[39m\u001b[33mHTTPS_PROXY\u001b[39m\u001b[33m'\u001b[39m)\n",
+ "\u001b[36mFile \u001b[39m\u001b[32m:719\u001b[39m, in \u001b[36m__setitem__\u001b[39m\u001b[34m(self, key, value)\u001b[39m\n",
+ "\u001b[36mFile \u001b[39m\u001b[32m:779\u001b[39m, in \u001b[36mcheck_str\u001b[39m\u001b[34m(value)\u001b[39m\n",
+ "\u001b[31mTypeError\u001b[39m: str expected, not NoneType"
+ ]
+ }
+ ],
+ "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\n",
+ "\n",
+ "# HTTPS_PROXY=http://192.168.170.200:8080\n",
+ "# HTTP_PROXY=http://192.168.170.200:8080\n",
+ "os.environ[\"HTTPS_PROXY\"] = os.getenv('HTTPS_PROXY')\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "True"
+ ]
+ },
+ "execution_count": 2,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# Always remember to do this!\n",
+ "load_dotenv(override=True)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "OpenAI API Key exists and begins sk-proj-\n",
+ "Anthropic API Key exists and begins sk-ant-\n",
+ "Google API Key exists and begins AI\n",
+ "DeepSeek API Key exists and begins sk-\n",
+ "Groq API Key exists and begins gsk_\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": 4,
+ "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": 5,
+ "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": 5,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "messages"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {},
+ "outputs": [
+ {
+ "ename": "APITimeoutError",
+ "evalue": "Request timed out.",
+ "output_type": "error",
+ "traceback": [
+ "\u001b[31m---------------------------------------------------------------------------\u001b[39m",
+ "\u001b[31mConnectTimeout\u001b[39m Traceback (most recent call last)",
+ "\u001b[36mFile \u001b[39m\u001b[32mc:\\Users\\n.piermattei\\projects\\agents\\.venv\\Lib\\site-packages\\httpx\\_transports\\default.py:101\u001b[39m, in \u001b[36mmap_httpcore_exceptions\u001b[39m\u001b[34m()\u001b[39m\n\u001b[32m 100\u001b[39m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[32m--> \u001b[39m\u001b[32m101\u001b[39m \u001b[38;5;28;01myield\u001b[39;00m\n\u001b[32m 102\u001b[39m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mException\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m exc:\n",
+ "\u001b[36mFile \u001b[39m\u001b[32mc:\\Users\\n.piermattei\\projects\\agents\\.venv\\Lib\\site-packages\\httpx\\_transports\\default.py:250\u001b[39m, in \u001b[36mHTTPTransport.handle_request\u001b[39m\u001b[34m(self, request)\u001b[39m\n\u001b[32m 249\u001b[39m \u001b[38;5;28;01mwith\u001b[39;00m map_httpcore_exceptions():\n\u001b[32m--> \u001b[39m\u001b[32m250\u001b[39m resp = \u001b[38;5;28;43mself\u001b[39;49m\u001b[43m.\u001b[49m\u001b[43m_pool\u001b[49m\u001b[43m.\u001b[49m\u001b[43mhandle_request\u001b[49m\u001b[43m(\u001b[49m\u001b[43mreq\u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 252\u001b[39m \u001b[38;5;28;01massert\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(resp.stream, typing.Iterable)\n",
+ "\u001b[36mFile \u001b[39m\u001b[32mc:\\Users\\n.piermattei\\projects\\agents\\.venv\\Lib\\site-packages\\httpcore\\_sync\\connection_pool.py:256\u001b[39m, in \u001b[36mConnectionPool.handle_request\u001b[39m\u001b[34m(self, request)\u001b[39m\n\u001b[32m 255\u001b[39m \u001b[38;5;28mself\u001b[39m._close_connections(closing)\n\u001b[32m--> \u001b[39m\u001b[32m256\u001b[39m \u001b[38;5;28;01mraise\u001b[39;00m exc \u001b[38;5;28;01mfrom\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[32m 258\u001b[39m \u001b[38;5;66;03m# Return the response. Note that in this case we still have to manage\u001b[39;00m\n\u001b[32m 259\u001b[39m \u001b[38;5;66;03m# the point at which the response is closed.\u001b[39;00m\n",
+ "\u001b[36mFile \u001b[39m\u001b[32mc:\\Users\\n.piermattei\\projects\\agents\\.venv\\Lib\\site-packages\\httpcore\\_sync\\connection_pool.py:236\u001b[39m, in \u001b[36mConnectionPool.handle_request\u001b[39m\u001b[34m(self, request)\u001b[39m\n\u001b[32m 234\u001b[39m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[32m 235\u001b[39m \u001b[38;5;66;03m# Send the request on the assigned connection.\u001b[39;00m\n\u001b[32m--> \u001b[39m\u001b[32m236\u001b[39m response = \u001b[43mconnection\u001b[49m\u001b[43m.\u001b[49m\u001b[43mhandle_request\u001b[49m\u001b[43m(\u001b[49m\n\u001b[32m 237\u001b[39m \u001b[43m \u001b[49m\u001b[43mpool_request\u001b[49m\u001b[43m.\u001b[49m\u001b[43mrequest\u001b[49m\n\u001b[32m 238\u001b[39m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 239\u001b[39m \u001b[38;5;28;01mexcept\u001b[39;00m ConnectionNotAvailable:\n\u001b[32m 240\u001b[39m \u001b[38;5;66;03m# In some cases a connection may initially be available to\u001b[39;00m\n\u001b[32m 241\u001b[39m \u001b[38;5;66;03m# handle a request, but then become unavailable.\u001b[39;00m\n\u001b[32m 242\u001b[39m \u001b[38;5;66;03m#\u001b[39;00m\n\u001b[32m 243\u001b[39m \u001b[38;5;66;03m# In this case we clear the connection and try again.\u001b[39;00m\n",
+ "\u001b[36mFile \u001b[39m\u001b[32mc:\\Users\\n.piermattei\\projects\\agents\\.venv\\Lib\\site-packages\\httpcore\\_sync\\connection.py:101\u001b[39m, in \u001b[36mHTTPConnection.handle_request\u001b[39m\u001b[34m(self, request)\u001b[39m\n\u001b[32m 100\u001b[39m \u001b[38;5;28mself\u001b[39m._connect_failed = \u001b[38;5;28;01mTrue\u001b[39;00m\n\u001b[32m--> \u001b[39m\u001b[32m101\u001b[39m \u001b[38;5;28;01mraise\u001b[39;00m exc\n\u001b[32m 103\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m._connection.handle_request(request)\n",
+ "\u001b[36mFile \u001b[39m\u001b[32mc:\\Users\\n.piermattei\\projects\\agents\\.venv\\Lib\\site-packages\\httpcore\\_sync\\connection.py:78\u001b[39m, in \u001b[36mHTTPConnection.handle_request\u001b[39m\u001b[34m(self, request)\u001b[39m\n\u001b[32m 77\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m._connection \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[32m---> \u001b[39m\u001b[32m78\u001b[39m stream = \u001b[38;5;28;43mself\u001b[39;49m\u001b[43m.\u001b[49m\u001b[43m_connect\u001b[49m\u001b[43m(\u001b[49m\u001b[43mrequest\u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 80\u001b[39m ssl_object = stream.get_extra_info(\u001b[33m\"\u001b[39m\u001b[33mssl_object\u001b[39m\u001b[33m\"\u001b[39m)\n",
+ "\u001b[36mFile \u001b[39m\u001b[32mc:\\Users\\n.piermattei\\projects\\agents\\.venv\\Lib\\site-packages\\httpcore\\_sync\\connection.py:156\u001b[39m, in \u001b[36mHTTPConnection._connect\u001b[39m\u001b[34m(self, request)\u001b[39m\n\u001b[32m 155\u001b[39m \u001b[38;5;28;01mwith\u001b[39;00m Trace(\u001b[33m\"\u001b[39m\u001b[33mstart_tls\u001b[39m\u001b[33m\"\u001b[39m, logger, request, kwargs) \u001b[38;5;28;01mas\u001b[39;00m trace:\n\u001b[32m--> \u001b[39m\u001b[32m156\u001b[39m stream = \u001b[43mstream\u001b[49m\u001b[43m.\u001b[49m\u001b[43mstart_tls\u001b[49m\u001b[43m(\u001b[49m\u001b[43m*\u001b[49m\u001b[43m*\u001b[49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 157\u001b[39m trace.return_value = stream\n",
+ "\u001b[36mFile \u001b[39m\u001b[32mc:\\Users\\n.piermattei\\projects\\agents\\.venv\\Lib\\site-packages\\httpcore\\_backends\\sync.py:154\u001b[39m, in \u001b[36mSyncStream.start_tls\u001b[39m\u001b[34m(self, ssl_context, server_hostname, timeout)\u001b[39m\n\u001b[32m 150\u001b[39m exc_map: ExceptionMapping = {\n\u001b[32m 151\u001b[39m socket.timeout: ConnectTimeout,\n\u001b[32m 152\u001b[39m \u001b[38;5;167;01mOSError\u001b[39;00m: ConnectError,\n\u001b[32m 153\u001b[39m }\n\u001b[32m--> \u001b[39m\u001b[32m154\u001b[39m \u001b[38;5;28;01mwith\u001b[39;00m map_exceptions(exc_map):\n\u001b[32m 155\u001b[39m \u001b[38;5;28;01mtry\u001b[39;00m:\n",
+ "\u001b[36mFile \u001b[39m\u001b[32m~\\AppData\\Roaming\\uv\\python\\cpython-3.12.11-windows-x86_64-none\\Lib\\contextlib.py:158\u001b[39m, in \u001b[36m_GeneratorContextManager.__exit__\u001b[39m\u001b[34m(self, typ, value, traceback)\u001b[39m\n\u001b[32m 157\u001b[39m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[32m--> \u001b[39m\u001b[32m158\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[43m.\u001b[49m\u001b[43mgen\u001b[49m\u001b[43m.\u001b[49m\u001b[43mthrow\u001b[49m\u001b[43m(\u001b[49m\u001b[43mvalue\u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 159\u001b[39m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mStopIteration\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m exc:\n\u001b[32m 160\u001b[39m \u001b[38;5;66;03m# Suppress StopIteration *unless* it's the same exception that\u001b[39;00m\n\u001b[32m 161\u001b[39m \u001b[38;5;66;03m# was passed to throw(). This prevents a StopIteration\u001b[39;00m\n\u001b[32m 162\u001b[39m \u001b[38;5;66;03m# raised inside the \"with\" statement from being suppressed.\u001b[39;00m\n",
+ "\u001b[36mFile \u001b[39m\u001b[32mc:\\Users\\n.piermattei\\projects\\agents\\.venv\\Lib\\site-packages\\httpcore\\_exceptions.py:14\u001b[39m, in \u001b[36mmap_exceptions\u001b[39m\u001b[34m(map)\u001b[39m\n\u001b[32m 13\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(exc, from_exc):\n\u001b[32m---> \u001b[39m\u001b[32m14\u001b[39m \u001b[38;5;28;01mraise\u001b[39;00m to_exc(exc) \u001b[38;5;28;01mfrom\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34;01mexc\u001b[39;00m\n\u001b[32m 15\u001b[39m \u001b[38;5;28;01mraise\u001b[39;00m\n",
+ "\u001b[31mConnectTimeout\u001b[39m: _ssl.c:993: The handshake operation timed out",
+ "\nThe above exception was the direct cause of the following exception:\n",
+ "\u001b[31mConnectTimeout\u001b[39m Traceback (most recent call last)",
+ "\u001b[36mFile \u001b[39m\u001b[32mc:\\Users\\n.piermattei\\projects\\agents\\.venv\\Lib\\site-packages\\openai\\_base_client.py:972\u001b[39m, in \u001b[36mSyncAPIClient.request\u001b[39m\u001b[34m(self, cast_to, options, stream, stream_cls)\u001b[39m\n\u001b[32m 971\u001b[39m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[32m--> \u001b[39m\u001b[32m972\u001b[39m response = \u001b[38;5;28;43mself\u001b[39;49m\u001b[43m.\u001b[49m\u001b[43m_client\u001b[49m\u001b[43m.\u001b[49m\u001b[43msend\u001b[49m\u001b[43m(\u001b[49m\n\u001b[32m 973\u001b[39m \u001b[43m \u001b[49m\u001b[43mrequest\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 974\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;43mself\u001b[39;49m\u001b[43m.\u001b[49m\u001b[43m_should_stream_response_body\u001b[49m\u001b[43m(\u001b[49m\u001b[43mrequest\u001b[49m\u001b[43m=\u001b[49m\u001b[43mrequest\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 975\u001b[39m \u001b[43m \u001b[49m\u001b[43m*\u001b[49m\u001b[43m*\u001b[49m\u001b[43mkwargs\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 976\u001b[39m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 977\u001b[39m \u001b[38;5;28;01mexcept\u001b[39;00m httpx.TimeoutException \u001b[38;5;28;01mas\u001b[39;00m err:\n",
+ "\u001b[36mFile \u001b[39m\u001b[32mc:\\Users\\n.piermattei\\projects\\agents\\.venv\\Lib\\site-packages\\httpx\\_client.py:914\u001b[39m, in \u001b[36mClient.send\u001b[39m\u001b[34m(self, request, stream, auth, follow_redirects)\u001b[39m\n\u001b[32m 912\u001b[39m auth = \u001b[38;5;28mself\u001b[39m._build_request_auth(request, auth)\n\u001b[32m--> \u001b[39m\u001b[32m914\u001b[39m response = \u001b[38;5;28;43mself\u001b[39;49m\u001b[43m.\u001b[49m\u001b[43m_send_handling_auth\u001b[49m\u001b[43m(\u001b[49m\n\u001b[32m 915\u001b[39m \u001b[43m \u001b[49m\u001b[43mrequest\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 916\u001b[39m \u001b[43m \u001b[49m\u001b[43mauth\u001b[49m\u001b[43m=\u001b[49m\u001b[43mauth\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 917\u001b[39m \u001b[43m \u001b[49m\u001b[43mfollow_redirects\u001b[49m\u001b[43m=\u001b[49m\u001b[43mfollow_redirects\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 918\u001b[39m \u001b[43m \u001b[49m\u001b[43mhistory\u001b[49m\u001b[43m=\u001b[49m\u001b[43m[\u001b[49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 919\u001b[39m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 920\u001b[39m \u001b[38;5;28;01mtry\u001b[39;00m:\n",
+ "\u001b[36mFile \u001b[39m\u001b[32mc:\\Users\\n.piermattei\\projects\\agents\\.venv\\Lib\\site-packages\\httpx\\_client.py:942\u001b[39m, in \u001b[36mClient._send_handling_auth\u001b[39m\u001b[34m(self, request, auth, follow_redirects, history)\u001b[39m\n\u001b[32m 941\u001b[39m \u001b[38;5;28;01mwhile\u001b[39;00m \u001b[38;5;28;01mTrue\u001b[39;00m:\n\u001b[32m--> \u001b[39m\u001b[32m942\u001b[39m response = \u001b[38;5;28;43mself\u001b[39;49m\u001b[43m.\u001b[49m\u001b[43m_send_handling_redirects\u001b[49m\u001b[43m(\u001b[49m\n\u001b[32m 943\u001b[39m \u001b[43m \u001b[49m\u001b[43mrequest\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 944\u001b[39m \u001b[43m \u001b[49m\u001b[43mfollow_redirects\u001b[49m\u001b[43m=\u001b[49m\u001b[43mfollow_redirects\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 945\u001b[39m \u001b[43m \u001b[49m\u001b[43mhistory\u001b[49m\u001b[43m=\u001b[49m\u001b[43mhistory\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 946\u001b[39m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 947\u001b[39m \u001b[38;5;28;01mtry\u001b[39;00m:\n",
+ "\u001b[36mFile \u001b[39m\u001b[32mc:\\Users\\n.piermattei\\projects\\agents\\.venv\\Lib\\site-packages\\httpx\\_client.py:979\u001b[39m, in \u001b[36mClient._send_handling_redirects\u001b[39m\u001b[34m(self, request, follow_redirects, history)\u001b[39m\n\u001b[32m 977\u001b[39m hook(request)\n\u001b[32m--> \u001b[39m\u001b[32m979\u001b[39m response = \u001b[38;5;28;43mself\u001b[39;49m\u001b[43m.\u001b[49m\u001b[43m_send_single_request\u001b[49m\u001b[43m(\u001b[49m\u001b[43mrequest\u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 980\u001b[39m \u001b[38;5;28;01mtry\u001b[39;00m:\n",
+ "\u001b[36mFile \u001b[39m\u001b[32mc:\\Users\\n.piermattei\\projects\\agents\\.venv\\Lib\\site-packages\\httpx\\_client.py:1014\u001b[39m, in \u001b[36mClient._send_single_request\u001b[39m\u001b[34m(self, request)\u001b[39m\n\u001b[32m 1013\u001b[39m \u001b[38;5;28;01mwith\u001b[39;00m request_context(request=request):\n\u001b[32m-> \u001b[39m\u001b[32m1014\u001b[39m response = \u001b[43mtransport\u001b[49m\u001b[43m.\u001b[49m\u001b[43mhandle_request\u001b[49m\u001b[43m(\u001b[49m\u001b[43mrequest\u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 1016\u001b[39m \u001b[38;5;28;01massert\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(response.stream, SyncByteStream)\n",
+ "\u001b[36mFile \u001b[39m\u001b[32mc:\\Users\\n.piermattei\\projects\\agents\\.venv\\Lib\\site-packages\\httpx\\_transports\\default.py:249\u001b[39m, in \u001b[36mHTTPTransport.handle_request\u001b[39m\u001b[34m(self, request)\u001b[39m\n\u001b[32m 237\u001b[39m req = httpcore.Request(\n\u001b[32m 238\u001b[39m method=request.method,\n\u001b[32m 239\u001b[39m url=httpcore.URL(\n\u001b[32m (...)\u001b[39m\u001b[32m 247\u001b[39m extensions=request.extensions,\n\u001b[32m 248\u001b[39m )\n\u001b[32m--> \u001b[39m\u001b[32m249\u001b[39m \u001b[38;5;28;01mwith\u001b[39;00m map_httpcore_exceptions():\n\u001b[32m 250\u001b[39m resp = \u001b[38;5;28mself\u001b[39m._pool.handle_request(req)\n",
+ "\u001b[36mFile \u001b[39m\u001b[32m~\\AppData\\Roaming\\uv\\python\\cpython-3.12.11-windows-x86_64-none\\Lib\\contextlib.py:158\u001b[39m, in \u001b[36m_GeneratorContextManager.__exit__\u001b[39m\u001b[34m(self, typ, value, traceback)\u001b[39m\n\u001b[32m 157\u001b[39m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[32m--> \u001b[39m\u001b[32m158\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[43m.\u001b[49m\u001b[43mgen\u001b[49m\u001b[43m.\u001b[49m\u001b[43mthrow\u001b[49m\u001b[43m(\u001b[49m\u001b[43mvalue\u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 159\u001b[39m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mStopIteration\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m exc:\n\u001b[32m 160\u001b[39m \u001b[38;5;66;03m# Suppress StopIteration *unless* it's the same exception that\u001b[39;00m\n\u001b[32m 161\u001b[39m \u001b[38;5;66;03m# was passed to throw(). This prevents a StopIteration\u001b[39;00m\n\u001b[32m 162\u001b[39m \u001b[38;5;66;03m# raised inside the \"with\" statement from being suppressed.\u001b[39;00m\n",
+ "\u001b[36mFile \u001b[39m\u001b[32mc:\\Users\\n.piermattei\\projects\\agents\\.venv\\Lib\\site-packages\\httpx\\_transports\\default.py:118\u001b[39m, in \u001b[36mmap_httpcore_exceptions\u001b[39m\u001b[34m()\u001b[39m\n\u001b[32m 117\u001b[39m message = \u001b[38;5;28mstr\u001b[39m(exc)\n\u001b[32m--> \u001b[39m\u001b[32m118\u001b[39m \u001b[38;5;28;01mraise\u001b[39;00m mapped_exc(message) \u001b[38;5;28;01mfrom\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34;01mexc\u001b[39;00m\n",
+ "\u001b[31mConnectTimeout\u001b[39m: _ssl.c:993: The handshake operation timed out",
+ "\nThe above exception was the direct cause of the following exception:\n",
+ "\u001b[31mAPITimeoutError\u001b[39m Traceback (most recent call last)",
+ "\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[6]\u001b[39m\u001b[32m, line 2\u001b[39m\n\u001b[32m 1\u001b[39m openai = OpenAI()\n\u001b[32m----> \u001b[39m\u001b[32m2\u001b[39m response = \u001b[43mopenai\u001b[49m\u001b[43m.\u001b[49m\u001b[43mchat\u001b[49m\u001b[43m.\u001b[49m\u001b[43mcompletions\u001b[49m\u001b[43m.\u001b[49m\u001b[43mcreate\u001b[49m\u001b[43m(\u001b[49m\n\u001b[32m 3\u001b[39m \u001b[43m \u001b[49m\u001b[43mmodel\u001b[49m\u001b[43m=\u001b[49m\u001b[33;43m\"\u001b[39;49m\u001b[33;43mgpt-4o-mini\u001b[39;49m\u001b[33;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[32m 4\u001b[39m \u001b[43m \u001b[49m\u001b[43mmessages\u001b[49m\u001b[43m=\u001b[49m\u001b[43mmessages\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 5\u001b[39m \u001b[43m)\u001b[49m\n\u001b[32m 6\u001b[39m question = response.choices[\u001b[32m0\u001b[39m].message.content\n\u001b[32m 7\u001b[39m \u001b[38;5;28mprint\u001b[39m(question)\n",
+ "\u001b[36mFile \u001b[39m\u001b[32mc:\\Users\\n.piermattei\\projects\\agents\\.venv\\Lib\\site-packages\\openai\\_utils\\_utils.py:287\u001b[39m, in \u001b[36mrequired_args..inner..wrapper\u001b[39m\u001b[34m(*args, **kwargs)\u001b[39m\n\u001b[32m 285\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 286\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[32m287\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[32mc:\\Users\\n.piermattei\\projects\\agents\\.venv\\Lib\\site-packages\\openai\\resources\\chat\\completions\\completions.py:925\u001b[39m, in \u001b[36mCompletions.create\u001b[39m\u001b[34m(self, messages, model, audio, frequency_penalty, function_call, functions, logit_bias, logprobs, max_completion_tokens, max_tokens, metadata, modalities, n, parallel_tool_calls, prediction, presence_penalty, reasoning_effort, response_format, seed, service_tier, stop, store, stream, stream_options, temperature, tool_choice, tools, top_logprobs, top_p, user, web_search_options, extra_headers, extra_query, extra_body, timeout)\u001b[39m\n\u001b[32m 882\u001b[39m \u001b[38;5;129m@required_args\u001b[39m([\u001b[33m\"\u001b[39m\u001b[33mmessages\u001b[39m\u001b[33m\"\u001b[39m, \u001b[33m\"\u001b[39m\u001b[33mmodel\u001b[39m\u001b[33m\"\u001b[39m], [\u001b[33m\"\u001b[39m\u001b[33mmessages\u001b[39m\u001b[33m\"\u001b[39m, \u001b[33m\"\u001b[39m\u001b[33mmodel\u001b[39m\u001b[33m\"\u001b[39m, \u001b[33m\"\u001b[39m\u001b[33mstream\u001b[39m\u001b[33m\"\u001b[39m])\n\u001b[32m 883\u001b[39m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34mcreate\u001b[39m(\n\u001b[32m 884\u001b[39m \u001b[38;5;28mself\u001b[39m,\n\u001b[32m (...)\u001b[39m\u001b[32m 922\u001b[39m timeout: \u001b[38;5;28mfloat\u001b[39m | httpx.Timeout | \u001b[38;5;28;01mNone\u001b[39;00m | NotGiven = NOT_GIVEN,\n\u001b[32m 923\u001b[39m ) -> ChatCompletion | Stream[ChatCompletionChunk]:\n\u001b[32m 924\u001b[39m validate_response_format(response_format)\n\u001b[32m--> \u001b[39m\u001b[32m925\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 926\u001b[39m \u001b[43m \u001b[49m\u001b[33;43m\"\u001b[39;49m\u001b[33;43m/chat/completions\u001b[39;49m\u001b[33;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[32m 927\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 928\u001b[39m \u001b[43m \u001b[49m\u001b[43m{\u001b[49m\n\u001b[32m 929\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 930\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 931\u001b[39m \u001b[43m \u001b[49m\u001b[33;43m\"\u001b[39;49m\u001b[33;43maudio\u001b[39;49m\u001b[33;43m\"\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43maudio\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 932\u001b[39m \u001b[43m \u001b[49m\u001b[33;43m\"\u001b[39;49m\u001b[33;43mfrequency_penalty\u001b[39;49m\u001b[33;43m\"\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43mfrequency_penalty\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 933\u001b[39m \u001b[43m \u001b[49m\u001b[33;43m\"\u001b[39;49m\u001b[33;43mfunction_call\u001b[39;49m\u001b[33;43m\"\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43mfunction_call\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 934\u001b[39m \u001b[43m \u001b[49m\u001b[33;43m\"\u001b[39;49m\u001b[33;43mfunctions\u001b[39;49m\u001b[33;43m\"\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43mfunctions\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 935\u001b[39m \u001b[43m \u001b[49m\u001b[33;43m\"\u001b[39;49m\u001b[33;43mlogit_bias\u001b[39;49m\u001b[33;43m\"\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43mlogit_bias\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 936\u001b[39m \u001b[43m \u001b[49m\u001b[33;43m\"\u001b[39;49m\u001b[33;43mlogprobs\u001b[39;49m\u001b[33;43m\"\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43mlogprobs\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 937\u001b[39m \u001b[43m \u001b[49m\u001b[33;43m\"\u001b[39;49m\u001b[33;43mmax_completion_tokens\u001b[39;49m\u001b[33;43m\"\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43mmax_completion_tokens\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 938\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 939\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 940\u001b[39m \u001b[43m \u001b[49m\u001b[33;43m\"\u001b[39;49m\u001b[33;43mmodalities\u001b[39;49m\u001b[33;43m\"\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43mmodalities\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 941\u001b[39m \u001b[43m \u001b[49m\u001b[33;43m\"\u001b[39;49m\u001b[33;43mn\u001b[39;49m\u001b[33;43m\"\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43mn\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 942\u001b[39m \u001b[43m \u001b[49m\u001b[33;43m\"\u001b[39;49m\u001b[33;43mparallel_tool_calls\u001b[39;49m\u001b[33;43m\"\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43mparallel_tool_calls\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 943\u001b[39m \u001b[43m \u001b[49m\u001b[33;43m\"\u001b[39;49m\u001b[33;43mprediction\u001b[39;49m\u001b[33;43m\"\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43mprediction\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 944\u001b[39m \u001b[43m \u001b[49m\u001b[33;43m\"\u001b[39;49m\u001b[33;43mpresence_penalty\u001b[39;49m\u001b[33;43m\"\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43mpresence_penalty\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 945\u001b[39m \u001b[43m \u001b[49m\u001b[33;43m\"\u001b[39;49m\u001b[33;43mreasoning_effort\u001b[39;49m\u001b[33;43m\"\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43mreasoning_effort\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 946\u001b[39m \u001b[43m \u001b[49m\u001b[33;43m\"\u001b[39;49m\u001b[33;43mresponse_format\u001b[39;49m\u001b[33;43m\"\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43mresponse_format\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 947\u001b[39m \u001b[43m \u001b[49m\u001b[33;43m\"\u001b[39;49m\u001b[33;43mseed\u001b[39;49m\u001b[33;43m\"\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43mseed\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 948\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 949\u001b[39m \u001b[43m \u001b[49m\u001b[33;43m\"\u001b[39;49m\u001b[33;43mstop\u001b[39;49m\u001b[33;43m\"\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43mstop\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 950\u001b[39m \u001b[43m \u001b[49m\u001b[33;43m\"\u001b[39;49m\u001b[33;43mstore\u001b[39;49m\u001b[33;43m\"\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43mstore\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 951\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 952\u001b[39m \u001b[43m \u001b[49m\u001b[33;43m\"\u001b[39;49m\u001b[33;43mstream_options\u001b[39;49m\u001b[33;43m\"\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43mstream_options\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 953\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 954\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 955\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 956\u001b[39m \u001b[43m \u001b[49m\u001b[33;43m\"\u001b[39;49m\u001b[33;43mtop_logprobs\u001b[39;49m\u001b[33;43m\"\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43mtop_logprobs\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 957\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 958\u001b[39m \u001b[43m \u001b[49m\u001b[33;43m\"\u001b[39;49m\u001b[33;43muser\u001b[39;49m\u001b[33;43m\"\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43muser\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 959\u001b[39m \u001b[43m \u001b[49m\u001b[33;43m\"\u001b[39;49m\u001b[33;43mweb_search_options\u001b[39;49m\u001b[33;43m\"\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43mweb_search_options\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 960\u001b[39m \u001b[43m \u001b[49m\u001b[43m}\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 961\u001b[39m \u001b[43m \u001b[49m\u001b[43mcompletion_create_params\u001b[49m\u001b[43m.\u001b[49m\u001b[43mCompletionCreateParamsStreaming\u001b[49m\n\u001b[32m 962\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 963\u001b[39m \u001b[43m \u001b[49m\u001b[38;5;28;43;01melse\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mcompletion_create_params\u001b[49m\u001b[43m.\u001b[49m\u001b[43mCompletionCreateParamsNonStreaming\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 964\u001b[39m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 965\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 966\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 967\u001b[39m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 968\u001b[39m \u001b[43m \u001b[49m\u001b[43mcast_to\u001b[49m\u001b[43m=\u001b[49m\u001b[43mChatCompletion\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 969\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 970\u001b[39m \u001b[43m \u001b[49m\u001b[43mstream_cls\u001b[49m\u001b[43m=\u001b[49m\u001b[43mStream\u001b[49m\u001b[43m[\u001b[49m\u001b[43mChatCompletionChunk\u001b[49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 971\u001b[39m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n",
+ "\u001b[36mFile \u001b[39m\u001b[32mc:\\Users\\n.piermattei\\projects\\agents\\.venv\\Lib\\site-packages\\openai\\_base_client.py:1249\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 1235\u001b[39m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34mpost\u001b[39m(\n\u001b[32m 1236\u001b[39m \u001b[38;5;28mself\u001b[39m,\n\u001b[32m 1237\u001b[39m path: \u001b[38;5;28mstr\u001b[39m,\n\u001b[32m (...)\u001b[39m\u001b[32m 1244\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 1245\u001b[39m ) -> ResponseT | _StreamT:\n\u001b[32m 1246\u001b[39m opts = FinalRequestOptions.construct(\n\u001b[32m 1247\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 1248\u001b[39m )\n\u001b[32m-> \u001b[39m\u001b[32m1249\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[32mc:\\Users\\n.piermattei\\projects\\agents\\.venv\\Lib\\site-packages\\openai\\_base_client.py:990\u001b[39m, in \u001b[36mSyncAPIClient.request\u001b[39m\u001b[34m(self, cast_to, options, stream, stream_cls)\u001b[39m\n\u001b[32m 987\u001b[39m \u001b[38;5;28;01mcontinue\u001b[39;00m\n\u001b[32m 989\u001b[39m log.debug(\u001b[33m\"\u001b[39m\u001b[33mRaising timeout error\u001b[39m\u001b[33m\"\u001b[39m)\n\u001b[32m--> \u001b[39m\u001b[32m990\u001b[39m \u001b[38;5;28;01mraise\u001b[39;00m APITimeoutError(request=request) \u001b[38;5;28;01mfrom\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34;01merr\u001b[39;00m\n\u001b[32m 991\u001b[39m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mException\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m err:\n\u001b[32m 992\u001b[39m log.debug(\u001b[33m\"\u001b[39m\u001b[33mEncountered Exception\u001b[39m\u001b[33m\"\u001b[39m, exc_info=\u001b[38;5;28;01mTrue\u001b[39;00m)\n",
+ "\u001b[31mAPITimeoutError\u001b[39m: Request timed out."
+ ]
+ }
+ ],
+ "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": 27,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "competitors = []\n",
+ "answers = []\n",
+ "messages = [{\"role\": \"user\", \"content\": question}]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 28,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/markdown": [
+ "Designing an ethical framework for autonomous AI systems that balances innovation with societal values requires a multi-faceted approach. Here are key steps to consider:\n",
+ "\n",
+ "### 1. **Stakeholder Engagement**\n",
+ " - **Identify Stakeholders**: Engage with a diverse group of stakeholders, including technologists, ethicists, policymakers, industry leaders, labor organizations, and the affected communities.\n",
+ " - **Collaborative Dialogue**: Facilitate discussions that incorporate various perspectives, particularly focusing on marginalized communities that may be disproportionately affected by AI systems.\n",
+ "\n",
+ "### 2. **Core Ethical Principles**\n",
+ " - **Fairness**: Ensure that AI systems do not perpetuate bias. Develop guidelines that require regular audits and transparency in AI algorithms to promote fairness in outcomes, especially in hiring or resource allocation.\n",
+ " - **Accountability**: Designate clear responsibilities for AI decision-making. Establish accountability mechanisms for both developers and organizations deploying AI systems.\n",
+ " - **Privacy Protection**: Implement robust privacy standards that prioritize user data protection and consent, minimizing surveillance and data collection to what is necessary for functionality.\n",
+ " - **Transparency**: Mandate explainability in AI systems to help users understand how decisions are made, fostering trust and enabling informed choices.\n",
+ " - **Beneficence and Nonmaleficence**: Systems should be designed to benefit society and avoid harm, with clear protocols for intervention when they are shown to cause detrimental effects.\n",
+ "\n",
+ "### 3. **Balancing Innovation and Responsibility**\n",
+ " - **Innovation-Friendly Regulation**: Establish adaptive regulatory frameworks that encourage innovation while ensuring ethical deployment. This can include sandbox environments for experimentation under regulatory oversight.\n",
+ " - **Support for Displaced Workers**: Create transition programs such as reskilling and upskilling initiatives to aid workers in moving towards new roles created by AI. Collaborate with industry to identify future workforce needs.\n",
+ " - **Public Benefit Considerations**: Encourage the development of AI technologies that prioritize public good, such as applications in healthcare, education, and environmental sustainability.\n",
+ "\n",
+ "### 4. **Monitoring and Evaluation**\n",
+ " - **Continuous Assessment**: Develop metrics to continually assess the impact of AI systems on job displacement and privacy. This will include feedback loops for early identification of negative outcomes that need addressing.\n",
+ " - **Adaptive Learning Processes**: Design the framework with mechanisms to adapt based on emerging challenges and opportunities in the AI landscape, ensuring that it remains relevant and effective over time.\n",
+ "\n",
+ "### 5. **Education and Awareness**\n",
+ " - **Public Awareness Campaigns**: Promote understanding of AI technologies and their implications on society, empowering individuals to engage with the technology and contribute to ethical discussions.\n",
+ " - **Ethics Training for Developers**: Include ethics as a core component of technical training for AI developers, ensuring that they understand the societal implications of their work.\n",
+ "\n",
+ "### 6. **Global Considerations**\n",
+ " - **International Cooperation**: Collaborate with international bodies to harmonize ethical standards across borders, acknowledging that AI technologies and their impacts are often global in nature.\n",
+ " - **Cultural Sensitivity**: Recognize and respect cultural differences in ethical standards, adapting frameworks to be applicable in various sociocultural contexts.\n",
+ "\n",
+ "### Conclusion\n",
+ "Building an ethical framework for autonomous AI systems is a complex and ongoing challenge that requires active participation, flexible structures, and a commitment to prioritizing human values. By incorporating these elements, we can help ensure that innovation in AI contributes positively to society, aligning with ethical principles while mitigating risks related to job displacement and privacy."
+ ],
+ "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": 29,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/markdown": [
+ "# Designing an Ethical Framework for Autonomous AI Systems\n",
+ "\n",
+ "I would approach this challenge through a multi-layered framework that balances innovation with societal wellbeing:\n",
+ "\n",
+ "## Foundational Principles\n",
+ "- **Human-centered design**: AI systems should augment human capabilities rather than simply replace them\n",
+ "- **Distributed benefits**: Economic gains from automation should benefit society broadly\n",
+ "- **Transparency**: Clear documentation of system capabilities and limitations\n",
+ "- **Accountability**: Clear lines of responsibility for AI decisions\n",
+ "\n",
+ "## For Job Displacement Concerns\n",
+ "- Implement gradual transition pathways with reskilling programs\n",
+ "- Establish metrics for measuring both economic efficiency and job quality\n",
+ "- Require impact assessments before deploying automation in sensitive sectors\n",
+ "- Explore shared prosperity mechanisms (profit-sharing, reduced work hours)\n",
+ "\n",
+ "## For Privacy Protection\n",
+ "- Design for data minimization and purpose limitation\n",
+ "- Create tiered consent models based on data sensitivity\n",
+ "- Enable meaningful user control over personal data\n",
+ "- Establish regular privacy audits by independent entities\n",
+ "\n",
+ "The most challenging aspect is balancing stakeholder interests. This requires inclusive governance with representation from industry, civil society, affected workers, and technical experts to continuously evaluate and evolve the framework as technologies and social needs change."
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "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": 30,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/markdown": [
+ "Designing an ethical framework for autonomous AI systems is a complex undertaking that requires a multi-faceted approach. Here's a breakdown of how I would approach it, considering job displacement and privacy:\n",
+ "\n",
+ "**I. Foundational Principles and Values:**\n",
+ "\n",
+ "* **Human-Centered Design:** Prioritize human well-being, dignity, and agency in all aspects of AI development and deployment. AI should augment, not replace, human capabilities whenever possible.\n",
+ "* **Beneficence & Non-Maleficence:** AI systems should strive to do good and avoid causing harm, both intentional and unintentional. This requires thorough risk assessment and mitigation strategies.\n",
+ "* **Justice & Fairness:** AI systems should not perpetuate or exacerbate existing societal inequalities. Bias detection and mitigation are crucial, ensuring fair outcomes across demographic groups.\n",
+ "* **Transparency & Explainability:** AI systems should be understandable and their decision-making processes, where appropriate, should be explainable to relevant stakeholders. Black boxes erode trust and accountability.\n",
+ "* **Accountability & Responsibility:** Clear lines of responsibility must be established for AI systems, including developers, deployers, and operators. Mechanisms for redress and accountability must be in place when harm occurs.\n",
+ "* **Privacy & Data Security:** Data privacy should be a core design principle. Employ techniques like differential privacy, anonymization, and secure data storage to protect individual privacy.\n",
+ "* **Sustainability:** Consider the environmental impact of AI systems, including energy consumption and resource usage. Promote sustainable AI development practices.\n",
+ "\n",
+ "**II. Addressing Job Displacement:**\n",
+ "\n",
+ "1. **Anticipatory Planning & Transition Support:**\n",
+ " * **Identify at-risk sectors and roles:** Proactively analyze the potential impacts of AI on different industries and job categories.\n",
+ " * **Invest in education and retraining:** Provide accessible and affordable training programs to equip workers with the skills needed for emerging roles in the AI-driven economy. Focus on skills that complement AI, such as critical thinking, creativity, and emotional intelligence.\n",
+ " * **Explore alternative economic models:** Consider policies like universal basic income (UBI), guaranteed minimum income, or job guarantee programs to provide a safety net for those displaced by automation.\n",
+ " * **Promote lifelong learning:** Foster a culture of continuous learning to enable workers to adapt to evolving job requirements.\n",
+ "\n",
+ "2. **Human-AI Collaboration:**\n",
+ " * **Design AI for augmentation:** Prioritize AI systems that enhance human capabilities and enable workers to be more productive and efficient, rather than completely replacing them.\n",
+ " * **Focus on human oversight:** Maintain human oversight and control over critical AI decision-making processes, especially in areas with high stakes or ethical implications.\n",
+ " * **Promote skill development in AI-related fields:** Encourage education and training in areas like AI development, data science, and AI ethics.\n",
+ "\n",
+ "3. **Social Safety Nets & Economic Adjustments:**\n",
+ " * **Strengthen social security systems:** Ensure that social security systems are adequate to support an aging population and those displaced by automation.\n",
+ " * **Reform tax policies:** Consider tax policies that incentivize companies to invest in training and upskilling their workforce, rather than simply replacing them with AI.\n",
+ " * **Explore shorter workweeks:** As AI increases productivity, consider reducing the standard workweek to allow for greater work-life balance and job sharing.\n",
+ "\n",
+ "**III. Mitigating Privacy Concerns:**\n",
+ "\n",
+ "1. **Privacy by Design:**\n",
+ " * **Data minimization:** Collect only the data that is strictly necessary for the intended purpose of the AI system.\n",
+ " * **Data anonymization and pseudonymization:** Employ techniques to protect the identity of individuals whose data is being used.\n",
+ " * **Differential privacy:** Add noise to data to protect individual privacy while still allowing for accurate statistical analysis.\n",
+ " * **Data security:** Implement robust security measures to protect data from unauthorized access, use, or disclosure.\n",
+ "\n",
+ "2. **Transparency and Control:**\n",
+ " * **User consent and control:** Provide users with clear and understandable information about how their data is being collected, used, and shared. Give them control over their data and the ability to opt out of data collection.\n",
+ " * **Data auditability:** Implement mechanisms to track how data is being used and ensure compliance with privacy policies.\n",
+ " * **Explainable AI for privacy:** Develop techniques to explain how AI systems are using personal data and ensure that they are not making discriminatory or biased decisions.\n",
+ "\n",
+ "3. **Regulatory Frameworks and Oversight:**\n",
+ " * **Strong data protection laws:** Implement and enforce comprehensive data protection laws that protect individual privacy. GDPR is a good example, but needs adaptation for AI-specific challenges.\n",
+ " * **Independent regulatory bodies:** Establish independent regulatory bodies to oversee the development and deployment of AI systems and ensure compliance with ethical and legal standards.\n",
+ " * **AI impact assessments:** Require AI developers to conduct impact assessments to identify and mitigate potential privacy risks.\n",
+ "\n",
+ "**IV. Implementation and Governance:**\n",
+ "\n",
+ "* **Multi-Stakeholder Engagement:** Involve diverse perspectives in the development and implementation of ethical frameworks, including AI developers, ethicists, policymakers, civil society organizations, and the public.\n",
+ "* **Iterative Development:** The ethical framework should be a living document that is regularly reviewed and updated to reflect changes in technology and societal values.\n",
+ "* **Education and Training:** Provide training to AI developers, policymakers, and the public on ethical considerations related to AI.\n",
+ "* **International Cooperation:** Foster international collaboration to develop common ethical standards for AI.\n",
+ "* **Auditing and Monitoring:** Implement mechanisms to audit and monitor AI systems to ensure compliance with ethical principles and legal requirements.\n",
+ "\n",
+ "**V. Key Considerations for specific AI Applications:**\n",
+ "\n",
+ "* **Healthcare:** Focus on patient privacy, data security, and ensuring equitable access to AI-powered healthcare.\n",
+ "* **Finance:** Address potential biases in AI-driven credit scoring and loan applications. Ensure transparency in algorithmic trading.\n",
+ "* **Criminal Justice:** Focus on fairness, accuracy, and transparency in AI-powered predictive policing and risk assessment tools. Mitigate potential for discriminatory outcomes.\n",
+ "* **Autonomous Vehicles:** Prioritize safety, accountability in case of accidents, and addressing ethical dilemmas in accident scenarios.\n",
+ "\n",
+ "**Challenges and Trade-offs:**\n",
+ "\n",
+ "* **Balancing innovation and regulation:** Finding the right balance between fostering innovation and ensuring ethical and responsible AI development is a constant challenge.\n",
+ "* **Defining \"fairness\" and \"bias\":** Defining these concepts in a way that is both technically feasible and ethically sound is difficult.\n",
+ "* **Enforcing ethical standards:** Enforcing ethical standards for AI development and deployment can be challenging, especially in a rapidly evolving technological landscape.\n",
+ "* **Global harmonization:** Achieving global harmonization of ethical standards for AI is difficult due to differing cultural values and legal frameworks.\n",
+ "\n",
+ "By implementing these principles and strategies, we can create an ethical framework for autonomous AI systems that balances innovation with societal values, mitigating the risks of job displacement and privacy violations while maximizing the benefits of this transformative technology. It's an ongoing process of learning, adaptation, and collaboration.\n"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "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": 31,
+ "metadata": {},
+ "outputs": [
+ {
+ "ename": "APIStatusError",
+ "evalue": "Error code: 402 - {'error': {'message': 'Insufficient Balance', 'type': 'unknown_error', 'param': None, 'code': 'invalid_request_error'}}",
+ "output_type": "error",
+ "traceback": [
+ "\u001b[31m---------------------------------------------------------------------------\u001b[39m",
+ "\u001b[31mAPIStatusError\u001b[39m Traceback (most recent call last)",
+ "\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[31]\u001b[39m\u001b[32m, line 4\u001b[39m\n\u001b[32m 1\u001b[39m deepseek = OpenAI(api_key=deepseek_api_key, base_url=\u001b[33m\"\u001b[39m\u001b[33mhttps://api.deepseek.com/v1\u001b[39m\u001b[33m\"\u001b[39m)\n\u001b[32m 2\u001b[39m model_name = \u001b[33m\"\u001b[39m\u001b[33mdeepseek-chat\u001b[39m\u001b[33m\"\u001b[39m\n\u001b[32m----> \u001b[39m\u001b[32m4\u001b[39m response = \u001b[43mdeepseek\u001b[49m\u001b[43m.\u001b[49m\u001b[43mchat\u001b[49m\u001b[43m.\u001b[49m\u001b[43mcompletions\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\n\u001b[32m 5\u001b[39m answer = response.choices[\u001b[32m0\u001b[39m].message.content\n\u001b[32m 7\u001b[39m display(Markdown(answer))\n",
+ "\u001b[36mFile \u001b[39m\u001b[32mc:\\Users\\n.piermattei\\projects\\agents\\.venv\\Lib\\site-packages\\openai\\_utils\\_utils.py:287\u001b[39m, in \u001b[36mrequired_args..inner..wrapper\u001b[39m\u001b[34m(*args, **kwargs)\u001b[39m\n\u001b[32m 285\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 286\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[32m287\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[32mc:\\Users\\n.piermattei\\projects\\agents\\.venv\\Lib\\site-packages\\openai\\resources\\chat\\completions\\completions.py:925\u001b[39m, in \u001b[36mCompletions.create\u001b[39m\u001b[34m(self, messages, model, audio, frequency_penalty, function_call, functions, logit_bias, logprobs, max_completion_tokens, max_tokens, metadata, modalities, n, parallel_tool_calls, prediction, presence_penalty, reasoning_effort, response_format, seed, service_tier, stop, store, stream, stream_options, temperature, tool_choice, tools, top_logprobs, top_p, user, web_search_options, extra_headers, extra_query, extra_body, timeout)\u001b[39m\n\u001b[32m 882\u001b[39m \u001b[38;5;129m@required_args\u001b[39m([\u001b[33m\"\u001b[39m\u001b[33mmessages\u001b[39m\u001b[33m\"\u001b[39m, \u001b[33m\"\u001b[39m\u001b[33mmodel\u001b[39m\u001b[33m\"\u001b[39m], [\u001b[33m\"\u001b[39m\u001b[33mmessages\u001b[39m\u001b[33m\"\u001b[39m, \u001b[33m\"\u001b[39m\u001b[33mmodel\u001b[39m\u001b[33m\"\u001b[39m, \u001b[33m\"\u001b[39m\u001b[33mstream\u001b[39m\u001b[33m\"\u001b[39m])\n\u001b[32m 883\u001b[39m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34mcreate\u001b[39m(\n\u001b[32m 884\u001b[39m \u001b[38;5;28mself\u001b[39m,\n\u001b[32m (...)\u001b[39m\u001b[32m 922\u001b[39m timeout: \u001b[38;5;28mfloat\u001b[39m | httpx.Timeout | \u001b[38;5;28;01mNone\u001b[39;00m | NotGiven = NOT_GIVEN,\n\u001b[32m 923\u001b[39m ) -> ChatCompletion | Stream[ChatCompletionChunk]:\n\u001b[32m 924\u001b[39m validate_response_format(response_format)\n\u001b[32m--> \u001b[39m\u001b[32m925\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 926\u001b[39m \u001b[43m \u001b[49m\u001b[33;43m\"\u001b[39;49m\u001b[33;43m/chat/completions\u001b[39;49m\u001b[33;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[32m 927\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 928\u001b[39m \u001b[43m \u001b[49m\u001b[43m{\u001b[49m\n\u001b[32m 929\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 930\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 931\u001b[39m \u001b[43m \u001b[49m\u001b[33;43m\"\u001b[39;49m\u001b[33;43maudio\u001b[39;49m\u001b[33;43m\"\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43maudio\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 932\u001b[39m \u001b[43m \u001b[49m\u001b[33;43m\"\u001b[39;49m\u001b[33;43mfrequency_penalty\u001b[39;49m\u001b[33;43m\"\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43mfrequency_penalty\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 933\u001b[39m \u001b[43m \u001b[49m\u001b[33;43m\"\u001b[39;49m\u001b[33;43mfunction_call\u001b[39;49m\u001b[33;43m\"\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43mfunction_call\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 934\u001b[39m \u001b[43m \u001b[49m\u001b[33;43m\"\u001b[39;49m\u001b[33;43mfunctions\u001b[39;49m\u001b[33;43m\"\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43mfunctions\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 935\u001b[39m \u001b[43m \u001b[49m\u001b[33;43m\"\u001b[39;49m\u001b[33;43mlogit_bias\u001b[39;49m\u001b[33;43m\"\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43mlogit_bias\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 936\u001b[39m \u001b[43m \u001b[49m\u001b[33;43m\"\u001b[39;49m\u001b[33;43mlogprobs\u001b[39;49m\u001b[33;43m\"\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43mlogprobs\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 937\u001b[39m \u001b[43m \u001b[49m\u001b[33;43m\"\u001b[39;49m\u001b[33;43mmax_completion_tokens\u001b[39;49m\u001b[33;43m\"\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43mmax_completion_tokens\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 938\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 939\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 940\u001b[39m \u001b[43m \u001b[49m\u001b[33;43m\"\u001b[39;49m\u001b[33;43mmodalities\u001b[39;49m\u001b[33;43m\"\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43mmodalities\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 941\u001b[39m \u001b[43m \u001b[49m\u001b[33;43m\"\u001b[39;49m\u001b[33;43mn\u001b[39;49m\u001b[33;43m\"\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43mn\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 942\u001b[39m \u001b[43m \u001b[49m\u001b[33;43m\"\u001b[39;49m\u001b[33;43mparallel_tool_calls\u001b[39;49m\u001b[33;43m\"\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43mparallel_tool_calls\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 943\u001b[39m \u001b[43m \u001b[49m\u001b[33;43m\"\u001b[39;49m\u001b[33;43mprediction\u001b[39;49m\u001b[33;43m\"\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43mprediction\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 944\u001b[39m \u001b[43m \u001b[49m\u001b[33;43m\"\u001b[39;49m\u001b[33;43mpresence_penalty\u001b[39;49m\u001b[33;43m\"\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43mpresence_penalty\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 945\u001b[39m \u001b[43m \u001b[49m\u001b[33;43m\"\u001b[39;49m\u001b[33;43mreasoning_effort\u001b[39;49m\u001b[33;43m\"\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43mreasoning_effort\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 946\u001b[39m \u001b[43m \u001b[49m\u001b[33;43m\"\u001b[39;49m\u001b[33;43mresponse_format\u001b[39;49m\u001b[33;43m\"\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43mresponse_format\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 947\u001b[39m \u001b[43m \u001b[49m\u001b[33;43m\"\u001b[39;49m\u001b[33;43mseed\u001b[39;49m\u001b[33;43m\"\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43mseed\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 948\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 949\u001b[39m \u001b[43m \u001b[49m\u001b[33;43m\"\u001b[39;49m\u001b[33;43mstop\u001b[39;49m\u001b[33;43m\"\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43mstop\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 950\u001b[39m \u001b[43m \u001b[49m\u001b[33;43m\"\u001b[39;49m\u001b[33;43mstore\u001b[39;49m\u001b[33;43m\"\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43mstore\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 951\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 952\u001b[39m \u001b[43m \u001b[49m\u001b[33;43m\"\u001b[39;49m\u001b[33;43mstream_options\u001b[39;49m\u001b[33;43m\"\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43mstream_options\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 953\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 954\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 955\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 956\u001b[39m \u001b[43m \u001b[49m\u001b[33;43m\"\u001b[39;49m\u001b[33;43mtop_logprobs\u001b[39;49m\u001b[33;43m\"\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43mtop_logprobs\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 957\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 958\u001b[39m \u001b[43m \u001b[49m\u001b[33;43m\"\u001b[39;49m\u001b[33;43muser\u001b[39;49m\u001b[33;43m\"\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43muser\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 959\u001b[39m \u001b[43m \u001b[49m\u001b[33;43m\"\u001b[39;49m\u001b[33;43mweb_search_options\u001b[39;49m\u001b[33;43m\"\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43mweb_search_options\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 960\u001b[39m \u001b[43m \u001b[49m\u001b[43m}\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 961\u001b[39m \u001b[43m \u001b[49m\u001b[43mcompletion_create_params\u001b[49m\u001b[43m.\u001b[49m\u001b[43mCompletionCreateParamsStreaming\u001b[49m\n\u001b[32m 962\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 963\u001b[39m \u001b[43m \u001b[49m\u001b[38;5;28;43;01melse\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mcompletion_create_params\u001b[49m\u001b[43m.\u001b[49m\u001b[43mCompletionCreateParamsNonStreaming\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 964\u001b[39m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 965\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 966\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 967\u001b[39m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 968\u001b[39m \u001b[43m \u001b[49m\u001b[43mcast_to\u001b[49m\u001b[43m=\u001b[49m\u001b[43mChatCompletion\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 969\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 970\u001b[39m \u001b[43m \u001b[49m\u001b[43mstream_cls\u001b[49m\u001b[43m=\u001b[49m\u001b[43mStream\u001b[49m\u001b[43m[\u001b[49m\u001b[43mChatCompletionChunk\u001b[49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 971\u001b[39m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n",
+ "\u001b[36mFile \u001b[39m\u001b[32mc:\\Users\\n.piermattei\\projects\\agents\\.venv\\Lib\\site-packages\\openai\\_base_client.py:1249\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 1235\u001b[39m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34mpost\u001b[39m(\n\u001b[32m 1236\u001b[39m \u001b[38;5;28mself\u001b[39m,\n\u001b[32m 1237\u001b[39m path: \u001b[38;5;28mstr\u001b[39m,\n\u001b[32m (...)\u001b[39m\u001b[32m 1244\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 1245\u001b[39m ) -> ResponseT | _StreamT:\n\u001b[32m 1246\u001b[39m opts = FinalRequestOptions.construct(\n\u001b[32m 1247\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 1248\u001b[39m )\n\u001b[32m-> \u001b[39m\u001b[32m1249\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[32mc:\\Users\\n.piermattei\\projects\\agents\\.venv\\Lib\\site-packages\\openai\\_base_client.py:1037\u001b[39m, in \u001b[36mSyncAPIClient.request\u001b[39m\u001b[34m(self, cast_to, options, stream, stream_cls)\u001b[39m\n\u001b[32m 1034\u001b[39m err.response.read()\n\u001b[32m 1036\u001b[39m log.debug(\u001b[33m\"\u001b[39m\u001b[33mRe-raising status error\u001b[39m\u001b[33m\"\u001b[39m)\n\u001b[32m-> \u001b[39m\u001b[32m1037\u001b[39m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;28mself\u001b[39m._make_status_error_from_response(err.response) \u001b[38;5;28;01mfrom\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[32m 1039\u001b[39m \u001b[38;5;28;01mbreak\u001b[39;00m\n\u001b[32m 1041\u001b[39m \u001b[38;5;28;01massert\u001b[39;00m response \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m, \u001b[33m\"\u001b[39m\u001b[33mcould not resolve response (should never happen)\u001b[39m\u001b[33m\"\u001b[39m\n",
+ "\u001b[31mAPIStatusError\u001b[39m: Error code: 402 - {'error': {'message': 'Insufficient Balance', 'type': 'unknown_error', 'param': None, 'code': 'invalid_request_error'}}"
+ ]
+ }
+ ],
+ "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": 32,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/markdown": [
+ "Designing an ethical framework for autonomous AI systems requires a multidisciplinary approach that balances innovation with societal values. Here's a comprehensive framework that addresses potential job displacement and privacy concerns:\n",
+ "\n",
+ "**Principles:**\n",
+ "\n",
+ "1. **Responsible Innovation**: Encourage innovation while considering the potential consequences of AI on society, including job displacement and privacy concerns.\n",
+ "2. **Human-centered Design**: Design AI systems that prioritize human well-being, dignity, and safety, while promoting transparency, explainability, and accountability.\n",
+ "3. **Transparency and Explainability**: Ensure that AI decision-making processes are transparent and explainable to stakeholders, including users, regulators, and the broader public.\n",
+ "4. **Fairness and Non-discrimination**: Develop AI systems that are fair, unbiased, and respectful of human rights, avoiding discrimination and promoting inclusivity.\n",
+ "5. **Privacy and Data Protection**: Implement robust data protection measures to safeguard individual privacy, ensuring that AI systems collect, process, and use data in a responsible and secure manner.\n",
+ "6. **Accountability and Liability**: Establish clear lines of accountability and liability for AI-related decisions and actions, including measures for addressing errors, biases, or harm caused by AI systems.\n",
+ "7. **Continuous Monitoring and Evaluation**: Regularly assess and evaluate AI systems to identify potential risks, biases, and areas for improvement, and implement corrective measures as needed.\n",
+ "\n",
+ "**Framework Components:**\n",
+ "\n",
+ "1. **Stakeholder Engagement**: Establish a multi-stakeholder dialogue involving industry leaders, policymakers, academia, civil society, and the public to ensure that AI development and deployment are aligned with societal values and concerns.\n",
+ "2. **Regulatory Frameworks**: Develop and implement regulatory frameworks that address AI-related issues, such as data protection, privacy, and accountability, while promoting innovation and competitiveness.\n",
+ "3. **AI Literacy and Education**: Promote AI literacy and education among the general public, policymakers, and industry professionals to ensure that AI is developed and used responsibly.\n",
+ "4. **Job Displacement Mitigation**: Implement strategies to mitigate job displacement, such as upskilling and reskilling programs, education and training initiatives, and social safety nets to support workers who may be displaced by automation.\n",
+ "5. **Privacy and Data Protection Guidelines**: Establish guidelines for AI system design and development that prioritize data protection, privacy, and security, including measures for data anonymization, encryption, and access control.\n",
+ "6. **AI System Testing and Validation**: Develop and implement rigorous testing and validation protocols to ensure that AI systems are reliable, accurate, and unbiased, and that they prioritize human safety and well-being.\n",
+ "7. **Incident Response and Management**: Establish incident response and management plans to address AI-related errors, biases, or harm, and provide remedies and compensation to affected individuals or communities.\n",
+ "\n",
+ "**Implementation Roadmap:**\n",
+ "\n",
+ "1. **Short-term (0-2 years)**: Establish stakeholder engagement, develop regulatory frameworks, and promote AI literacy and education.\n",
+ "2. **Medium-term (2-5 years)**: Implement job displacement mitigation strategies, develop and implement privacy and data protection guidelines, and establish AI system testing and validation protocols.\n",
+ "3. **Long-term (5-10 years)**: Continuously monitor and evaluate AI systems, refine the ethical framework, and address emerging challenges and concerns.\n",
+ "\n",
+ "**Key Challenges and Opportunities:**\n",
+ "\n",
+ "1. **Addressing Job Displacement**: Developing effective strategies to mitigate job displacement and ensure that workers have the skills and support needed to adapt to an AI-driven economy.\n",
+ "2. **Balancing Innovation and Regulation**: Finding the right balance between promoting innovation and ensuring that AI systems are developed and used responsibly.\n",
+ "3. **Ensuring Transparency and Explainability**: Developing methods to explain AI decision-making processes and ensure that AI systems are transparent and accountable.\n",
+ "4. **Addressing Bias and Discrimination**: Developing AI systems that are fair, unbiased, and respectful of human rights, and promoting inclusivity and diversity in AI development and deployment.\n",
+ "\n",
+ "By following this framework, we can develop autonomous AI systems that balance innovation with societal values, prioritize human well-being and dignity, and address potential job displacement and privacy concerns."
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "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",
+ " 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",
+ " | \n",
+ "
\n",
+ "
"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "\u001b[?2026h\u001b[?25l\u001b[1Gpulling manifest ⠋ \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[1Gpulling manifest ⠙ \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[1Gpulling manifest ⠹ \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[1Gpulling manifest ⠸ \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[1Gpulling manifest ⠼ \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[1Gpulling manifest ⠴ \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[1Gpulling manifest ⠦ \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[1Gpulling manifest ⠧ \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[1Gpulling manifest ⠇ \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[1Gpulling manifest ⠏ \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[1Gpulling manifest ⠋ \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[1Gpulling manifest ⠙ \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[1Gpulling manifest ⠹ \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[1Gpulling manifest ⠸ \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[1Gpulling manifest ⠼ \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 0% ▕ ▏ 547 KB/2.0 GB \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 0% ▕ ▏ 8.0 MB/2.0 GB \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 1% ▕ ▏ 13 MB/2.0 GB \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 1% ▕ ▏ 23 MB/2.0 GB \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 2% ▕ ▏ 32 MB/2.0 GB \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 2% ��� ▏ 38 MB/2.0 GB \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 2% ▕ ▏ 49 MB/2.0 GB \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 3% ▕ ▏ 59 MB/2.0 GB \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 3% ▕ ▏ 64 MB/2.0 GB \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 4% ▕ ▏ 75 MB/2.0 GB \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 4% ▕ ▏ 86 MB/2.0 GB 85 MB/s 22s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 4% ▕ ▏ 89 MB/2.0 GB 85 MB/s 22s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 5% ▕ ▏ 101 MB/2.0 GB 85 MB/s 22s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 6% ▕ ▏ 111 MB/2.0 GB 85 MB/s 22s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 6% ▕█ ▏ 117 MB/2.0 GB 85 MB/s 22s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 6% ▕█ ▏ 127 MB/2.0 GB 85 MB/s 22s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 7% ▕█ ▏ 137 MB/2.0 GB 85 MB/s 21s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 7% ▕█ ▏ 142 MB/2.0 GB 85 MB/s 21s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 8% ▕█ ▏ 152 MB/2.0 GB 85 MB/s 21s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 8% ▕█ ▏ 162 MB/2.0 GB 85 MB/s 21s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 8% ▕█ ▏ 168 MB/2.0 GB 85 MB/s 21s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 9% ▕█ ▏ 177 MB/2.0 GB 86 MB/s 21s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 9% ▕█ ▏ 187 MB/2.0 GB 86 MB/s 21s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 10% ▕█ ▏ 193 MB/2.0 GB 86 MB/s 21s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 10% ▕█ ▏ 205 MB/2.0 GB 86 MB/s 21s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 11% ▕█ ▏ 217 MB/2.0 GB 86 MB/s 20s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 11% ▕█ ▏ 222 MB/2.0 GB 86 MB/s 20s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 12% ▕██ ▏ 233 MB/2.0 GB 86 MB/s 20s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 12% ▕██ ▏ 244 MB/2.0 GB 86 MB/s 20s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 12% ▕██ ▏ 250 MB/2.0 GB 86 MB/s 20s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 13% ▕██ ▏ 261 MB/2.0 GB 86 MB/s 20s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 13% ▕██ ▏ 272 MB/2.0 GB 88 MB/s 19s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 14% ▕██ ▏ 277 MB/2.0 GB 88 MB/s 19s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 14% ▕██ ▏ 290 MB/2.0 GB 88 MB/s 19s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 15% ▕██ ▏ 300 MB/2.0 GB 88 MB/s 19s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 15% ▕██ ▏ 305 MB/2.0 GB 88 MB/s 19s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 16% ▕██ ▏ 317 MB/2.0 GB 88 MB/s 19s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 16% ▕██ ▏ 329 MB/2.0 GB 88 MB/s 19s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 17% ▕██ ▏ 335 MB/2.0 GB 88 MB/s 18s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 17% ▕███ ▏ 347 MB/2.0 GB 88 MB/s 18s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 18% ▕███ ▏ 356 MB/2.0 GB 88 MB/s 18s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 18% ▕███ ▏ 363 MB/2.0 GB 90 MB/s 18s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 18% ▕███ ▏ 373 MB/2.0 GB 90 MB/s 18s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 19% ▕███ ▏ 384 MB/2.0 GB 90 MB/s 18s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 19% ▕███ ▏ 390 MB/2.0 GB 90 MB/s 17s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 20% ▕███ ▏ 399 MB/2.0 GB 90 MB/s 17s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 20% ▕███ ▏ 411 MB/2.0 GB 90 MB/s 17s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 21% ▕███ ▏ 415 MB/2.0 GB 90 MB/s 17s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 21% ▕███ ▏ 425 MB/2.0 GB 90 MB/s 17s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 21% ▕███ ▏ 433 MB/2.0 GB 90 MB/s 17s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 22% ▕███ ▏ 439 MB/2.0 GB 90 MB/s 17s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 22% ▕████ ▏ 450 MB/2.0 GB 90 MB/s 17s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 23% ▕████ ▏ 460 MB/2.0 GB 90 MB/s 17s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 23% ▕████ ▏ 466 MB/2.0 GB 90 MB/s 17s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 24% ▕████ ▏ 478 MB/2.0 GB 90 MB/s 17s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 24% ▕████ ▏ 486 MB/2.0 GB 90 MB/s 17s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 24% ▕████ ▏ 492 MB/2.0 GB 90 MB/s 16s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 25% ▕████ ▏ 503 MB/2.0 GB 90 MB/s 16s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 25% ▕████ ▏ 510 MB/2.0 GB 90 MB/s 16s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 26% ▕████ ▏ 516 MB/2.0 GB 90 MB/s 16s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 26% ▕████ ▏ 525 MB/2.0 GB 90 MB/s 16s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 27% ▕████ ▏ 535 MB/2.0 GB 89 MB/s 16s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 27% ▕████ ▏ 540 MB/2.0 GB 89 MB/s 16s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 27% ▕████ ▏ 551 MB/2.0 GB 89 MB/s 16s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 28% ▕████ ▏ 560 MB/2.0 GB 89 MB/s 16s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 28% ▕█████ ▏ 565 MB/2.0 GB 89 MB/s 16s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 28% ▕█████ ▏ 575 MB/2.0 GB 89 MB/s 16s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 29% ▕█████ ▏ 583 MB/2.0 GB 89 MB/s 16s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 29% ▕█████ ▏ 589 MB/2.0 GB 89 MB/s 16s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 30% ▕█████ ▏ 599 MB/2.0 GB 89 MB/s 15s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 30% ▕█████ ▏ 610 MB/2.0 GB 89 MB/s 15s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 30% ▕█████ ▏ 614 MB/2.0 GB 89 MB/s 15s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 31% ▕█████ ▏ 621 MB/2.0 GB 88 MB/s 15s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 31% ▕█████ ▏ 632 MB/2.0 GB 88 MB/s 15s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 32% ▕█████ ▏ 637 MB/2.0 GB 88 MB/s 15s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 32% ▕█████ ▏ 647 MB/2.0 GB 88 MB/s 15s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 33% ▕█████ ▏ 657 MB/2.0 GB 88 MB/s 15s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 33% ▕█████ ▏ 662 MB/2.0 GB 88 MB/s 15s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 33% ▕█████ ▏ 672 MB/2.0 GB 88 MB/s 15s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 34% ▕██████ ▏ 682 MB/2.0 GB 88 MB/s 15s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 34% ▕██████ ▏ 687 MB/2.0 GB 88 MB/s 15s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 34% ▕██████ ▏ 696 MB/2.0 GB 88 MB/s 14s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 35% ▕██████ ▏ 704 MB/2.0 GB 87 MB/s 15s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 35% ▕██████ ▏ 710 MB/2.0 GB 87 MB/s 14s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 36% ▕██████ ▏ 720 MB/2.0 GB 87 MB/s 14s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 36% ▕██████ ▏ 731 MB/2.0 GB 87 MB/s 14s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 36% ▕██████ ▏ 735 MB/2.0 GB 87 MB/s 14s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 37% ▕██████ ▏ 746 MB/2.0 GB 87 MB/s 14s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 37% ▕██████ ▏ 756 MB/2.0 GB 87 MB/s 14s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 38% ▕██████ ▏ 761 MB/2.0 GB 87 MB/s 14s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 38% ▕██████ ▏ 771 MB/2.0 GB 87 MB/s 14s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 39% ▕██████ ▏ 781 MB/2.0 GB 87 MB/s 14s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 39% ▕███████ ▏ 785 MB/2.0 GB 87 MB/s 14s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 39% ▕███████ ▏ 796 MB/2.0 GB 87 MB/s 14s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 40% ▕███████ ▏ 806 MB/2.0 GB 87 MB/s 13s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 40% ▕███████ ▏ 812 MB/2.0 GB 87 MB/s 13s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 41% ▕███████ ▏ 820 MB/2.0 GB 87 MB/s 13s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 41% ▕███████ ▏ 828 MB/2.0 GB 87 MB/s 13s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 41% ▕███████ ▏ 835 MB/2.0 GB 87 MB/s 13s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 42% ▕███████ ▏ 844 MB/2.0 GB 87 MB/s 13s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 42% ▕███████ ▏ 853 MB/2.0 GB 87 MB/s 13s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 42% ▕███████ ▏ 857 MB/2.0 GB 87 MB/s 13s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 43% ▕███████ ▏ 865 MB/2.0 GB 86 MB/s 13s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 43% ▕███████ ▏ 873 MB/2.0 GB 86 MB/s 13s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 43% ▕███████ ▏ 877 MB/2.0 GB 86 MB/s 13s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 44% ▕███████ ▏ 883 MB/2.0 GB 86 MB/s 13s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 44% ▕███████ ▏ 889 MB/2.0 GB 86 MB/s 13s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 44% ▕███████ ▏ 891 MB/2.0 GB 86 MB/s 13s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 44% ▕███████ ▏ 897 MB/2.0 GB 86 MB/s 12s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 45% ▕████████ ▏ 903 MB/2.0 GB 86 MB/s 12s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 45% ▕████████ ▏ 905 MB/2.0 GB 86 MB/s 12s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 45% ▕████████ ▏ 917 MB/2.0 GB 86 MB/s 12s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 46% ▕████████ ▏ 928 MB/2.0 GB 84 MB/s 12s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 46% ▕████████ ▏ 934 MB/2.0 GB 84 MB/s 12s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 47% ▕████████ ▏ 944 MB/2.0 GB 84 MB/s 12s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 47% ▕████████ ▏ 957 MB/2.0 GB 84 MB/s 12s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 48% ▕████████ ▏ 963 MB/2.0 GB 84 MB/s 12s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 48% ▕████████ ▏ 973 MB/2.0 GB 84 MB/s 12s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 49% ▕████████ ▏ 985 MB/2.0 GB 84 MB/s 12s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 49% ▕████████ ▏ 990 MB/2.0 GB 84 MB/s 12s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 50% ▕████████ ▏ 1.0 GB/2.0 GB 84 MB/s 12s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 50% ▕█████████ ▏ 1.0 GB/2.0 GB 84 MB/s 11s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 50% ▕█████████ ▏ 1.0 GB/2.0 GB 84 MB/s 11s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 51% ▕█████████ ▏ 1.0 GB/2.0 GB 84 MB/s 11s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 52% ▕█████████ ▏ 1.0 GB/2.0 GB 84 MB/s 11s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 52% ▕█████████ ▏ 1.0 GB/2.0 GB 84 MB/s 11s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 52% ▕█████████ ▏ 1.1 GB/2.0 GB 84 MB/s 11s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 53% ▕█████████ ▏ 1.1 GB/2.0 GB 84 MB/s 11s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 53% ▕█████████ ▏ 1.1 GB/2.0 GB 84 MB/s 11s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 53% ▕█████████ ▏ 1.1 GB/2.0 GB 84 MB/s 11s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 54% ▕█████████ ▏ 1.1 GB/2.0 GB 84 MB/s 11s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 54% ▕█████████ ▏ 1.1 GB/2.0 GB 84 MB/s 10s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 55% ▕█████████ ▏ 1.1 GB/2.0 GB 84 MB/s 10s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 55% ▕█████████ ▏ 1.1 GB/2.0 GB 83 MB/s 10s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 56% ▕██████████ ▏ 1.1 GB/2.0 GB 83 MB/s 10s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 56% ▕██████████ ▏ 1.1 GB/2.0 GB 83 MB/s 10s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 57% ▕██████████ ▏ 1.1 GB/2.0 GB 83 MB/s 10s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 57% ▕██████████ ▏ 1.1 GB/2.0 GB 83 MB/s 10s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 57% ▕██████████ ▏ 1.2 GB/2.0 GB 83 MB/s 10s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 58% ▕██████████ ▏ 1.2 GB/2.0 GB 83 MB/s 10s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 58% ▕██████████ ▏ 1.2 GB/2.0 GB 83 MB/s 10s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 59% ▕██████████ ▏ 1.2 GB/2.0 GB 83 MB/s 9s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 59% ▕██████████ ▏ 1.2 GB/2.0 GB 83 MB/s 9s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 60% ▕██████████ ▏ 1.2 GB/2.0 GB 83 MB/s 9s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 60% ▕██████████ ▏ 1.2 GB/2.0 GB 83 MB/s 9s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 61% ▕██████████ ▏ 1.2 GB/2.0 GB 83 MB/s 9s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 61% ▕██████████ ▏ 1.2 GB/2.0 GB 83 MB/s 9s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 62% ▕███████████ ▏ 1.2 GB/2.0 GB 83 MB/s 9s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 62% ▕███████████ ▏ 1.3 GB/2.0 GB 83 MB/s 9s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 62% ▕███████████ ▏ 1.3 GB/2.0 GB 83 MB/s 9s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 63% ▕███████████ ▏ 1.3 GB/2.0 GB 83 MB/s 8s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 63% ▕███████████ ▏ 1.3 GB/2.0 GB 83 MB/s 8s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 63% ▕███████████ ▏ 1.3 GB/2.0 GB 83 MB/s 8s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 63% ▕███████████ ▏ 1.3 GB/2.0 GB 82 MB/s 9s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 63% ▕███████████ ▏ 1.3 GB/2.0 GB 82 MB/s 9s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 63% ▕███████████ ▏ 1.3 GB/2.0 GB 82 MB/s 9s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 64% ▕███████████ ▏ 1.3 GB/2.0 GB 82 MB/s 8s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 64% ▕███████████ ▏ 1.3 GB/2.0 GB 82 MB/s 8s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 64% ▕███████████ ▏ 1.3 GB/2.0 GB 82 MB/s 8s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 64% ▕███████████ ▏ 1.3 GB/2.0 GB 82 MB/s 8s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 64% ▕███████████ ▏ 1.3 GB/2.0 GB 82 MB/s 8s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 64% ▕███████████ ▏ 1.3 GB/2.0 GB 82 MB/s 8s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 65% ▕███████████ ▏ 1.3 GB/2.0 GB 82 MB/s 8s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 66% ▕███████████ ▏ 1.3 GB/2.0 GB 78 MB/s 8s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 66% ▕███████████ ▏ 1.3 GB/2.0 GB 78 MB/s 8s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 66% ▕███████████ ▏ 1.3 GB/2.0 GB 78 MB/s 8s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 67% ▕████████████ ▏ 1.4 GB/2.0 GB 78 MB/s 8s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 67% ▕████████████ ▏ 1.4 GB/2.0 GB 78 MB/s 8s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 68% ▕████████████ ▏ 1.4 GB/2.0 GB 78 MB/s 8s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 68% ▕████████████ ▏ 1.4 GB/2.0 GB 78 MB/s 8s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 68% ▕████████████ ▏ 1.4 GB/2.0 GB 78 MB/s 8s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 69% ▕████████████ ▏ 1.4 GB/2.0 GB 78 MB/s 8s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 69% ▕████████████ ▏ 1.4 GB/2.0 GB 78 MB/s 7s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 69% ▕████████████ ▏ 1.4 GB/2.0 GB 78 MB/s 7s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 70% ▕████████████ ▏ 1.4 GB/2.0 GB 78 MB/s 7s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 70% ▕████████████ ▏ 1.4 GB/2.0 GB 78 MB/s 7s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 71% ▕████████████ ▏ 1.4 GB/2.0 GB 78 MB/s 7s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 71% ▕████████████ ▏ 1.4 GB/2.0 GB 78 MB/s 7s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 71% ▕████████████ ▏ 1.4 GB/2.0 GB 78 MB/s 7s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 72% ▕████████████ ▏ 1.4 GB/2.0 GB 78 MB/s 7s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 72% ▕████████████ ▏ 1.5 GB/2.0 GB 78 MB/s 7s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 72% ▕█████████████ ▏ 1.5 GB/2.0 GB 78 MB/s 7s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 73% ▕█████████████ ▏ 1.5 GB/2.0 GB 78 MB/s 7s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 73% ▕█████████████ ▏ 1.5 GB/2.0 GB 78 MB/s 6s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 73% ▕█████████████ ▏ 1.5 GB/2.0 GB 76 MB/s 6s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 74% ▕█████████████ ▏ 1.5 GB/2.0 GB 76 MB/s 6s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 74% ▕█████████████ ▏ 1.5 GB/2.0 GB 76 MB/s 6s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 75% ▕█████████████ ▏ 1.5 GB/2.0 GB 76 MB/s 6s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 75% ▕█████████████ ▏ 1.5 GB/2.0 GB 76 MB/s 6s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 76% ▕█████████████ ▏ 1.5 GB/2.0 GB 76 MB/s 6s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 76% ▕█████████████ ▏ 1.5 GB/2.0 GB 76 MB/s 6s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 76% ▕█████████████ ▏ 1.5 GB/2.0 GB 76 MB/s 6s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 76% ▕█████████████ ▏ 1.5 GB/2.0 GB 76 MB/s 6s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 76% ▕█████████████ ▏ 1.5 GB/2.0 GB 76 MB/s 6s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 77% ▕█████████████ ▏ 1.5 GB/2.0 GB 76 MB/s 6s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 77% ▕█████████████ ▏ 1.6 GB/2.0 GB 76 MB/s 6s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 78% ▕██████████████ ▏ 1.6 GB/2.0 GB 76 MB/s 5s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 78% ▕██████████████ ▏ 1.6 GB/2.0 GB 76 MB/s 5s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 79% ▕██████████████ ▏ 1.6 GB/2.0 GB 76 MB/s 5s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 79% ▕██████████████ ▏ 1.6 GB/2.0 GB 76 MB/s 5s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 79% ▕██████████████ ▏ 1.6 GB/2.0 GB 76 MB/s 5s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 80% ▕██████████████ ▏ 1.6 GB/2.0 GB 76 MB/s 5s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 81% ▕██████████████ ▏ 1.6 GB/2.0 GB 76 MB/s 5s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 81% ▕██████████████ ▏ 1.6 GB/2.0 GB 76 MB/s 5s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 81% ▕██████████████ ▏ 1.6 GB/2.0 GB 79 MB/s 4s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 82% ▕██████████████ ▏ 1.7 GB/2.0 GB 79 MB/s 4s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 82% ▕██████████████ ▏ 1.7 GB/2.0 GB 79 MB/s 4s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 83% ▕██████████████ ▏ 1.7 GB/2.0 GB 79 MB/s 4s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 83% ▕███████████████ ▏ 1.7 GB/2.0 GB 79 MB/s 4s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 84% ▕███████████████ ▏ 1.7 GB/2.0 GB 79 MB/s 4s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 84% ▕███████████████ ▏ 1.7 GB/2.0 GB 79 MB/s 4s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 84% ▕███████████████ ▏ 1.7 GB/2.0 GB 79 MB/s 4s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 84% ▕███████████████ ▏ 1.7 GB/2.0 GB 79 MB/s 4s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 84% ▕███████████████ ▏ 1.7 GB/2.0 GB 79 MB/s 4s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 84% ▕███████████████ ▏ 1.7 GB/2.0 GB 75 MB/s 4s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 84% ▕███████████████ ▏ 1.7 GB/2.0 GB 75 MB/s 4s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 85% ▕███████████████ ▏ 1.7 GB/2.0 GB 75 MB/s 4s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 85% ▕███████████████ ▏ 1.7 GB/2.0 GB 75 MB/s 4s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 85% ▕███████████████ ▏ 1.7 GB/2.0 GB 75 MB/s 4s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 85% ▕███████████████ ▏ 1.7 GB/2.0 GB 75 MB/s 3s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 86% ▕███████████████ ▏ 1.7 GB/2.0 GB 75 MB/s 3s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 86% ▕███████████████ ▏ 1.7 GB/2.0 GB 75 MB/s 3s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 87% ▕███████████████ ▏ 1.8 GB/2.0 GB 75 MB/s 3s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 87% ▕███████████████ ▏ 1.8 GB/2.0 GB 75 MB/s 3s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 88% ▕███████████████ ▏ 1.8 GB/2.0 GB 75 MB/s 3s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 88% ▕███████████████ ▏ 1.8 GB/2.0 GB 73 MB/s 3s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 89% ▕███████████████ ▏ 1.8 GB/2.0 GB 73 MB/s 3s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 89% ▕████████████████ ▏ 1.8 GB/2.0 GB 73 MB/s 3s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 90% ▕████████████████ ▏ 1.8 GB/2.0 GB 73 MB/s 2s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 90% ▕████████████████ ▏ 1.8 GB/2.0 GB 73 MB/s 2s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 90% ▕████████████████ ▏ 1.8 GB/2.0 GB 73 MB/s 2s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 91% ▕████████████████ ▏ 1.8 GB/2.0 GB 73 MB/s 2s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 91% ▕████████████████ ▏ 1.8 GB/2.0 GB 73 MB/s 2s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 92% ▕████████████████ ▏ 1.9 GB/2.0 GB 73 MB/s 2s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 92% ▕████████████████ ▏ 1.9 GB/2.0 GB 73 MB/s 2s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 93% ▕████████████████ ▏ 1.9 GB/2.0 GB 73 MB/s 1s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 93% ▕████████████████ ▏ 1.9 GB/2.0 GB 73 MB/s 1s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 94% ▕████████████████ ▏ 1.9 GB/2.0 GB 73 MB/s 1s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 94% ▕████████████████ ▏ 1.9 GB/2.0 GB 73 MB/s 1s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 95% ▕█████████████████ ▏ 1.9 GB/2.0 GB 73 MB/s 1s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 95% ▕█████████████████ ▏ 1.9 GB/2.0 GB 73 MB/s 1s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 96% ▕█████████████████ ▏ 1.9 GB/2.0 GB 73 MB/s 1s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 96% ▕█████████████████ ▏ 1.9 GB/2.0 GB 73 MB/s 1s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 97% ▕█████████████████ ▏ 2.0 GB/2.0 GB 73 MB/s 0s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 97% ▕█████████████████ ▏ 2.0 GB/2.0 GB 73 MB/s 0s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 98% ▕█████████████████ ▏ 2.0 GB/2.0 GB 77 MB/s 0s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 98% ▕█████████████████ ▏ 2.0 GB/2.0 GB 77 MB/s 0s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 99% ▕█████████████████ ▏ 2.0 GB/2.0 GB 77 MB/s 0s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 99% ▕█████████████████ ▏ 2.0 GB/2.0 GB 77 MB/s 0s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 99% ▕█████████████████ ▏ 2.0 GB/2.0 GB 77 MB/s 0s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 99% ▕█████████████████ ▏ 2.0 GB/2.0 GB 77 MB/s 0s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 99% ▕█████████████████ ▏ 2.0 GB/2.0 GB 77 MB/s 0s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕█████████████████ ▏ 2.0 GB/2.0 GB 77 MB/s 0s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕█████████████████ ▏ 2.0 GB/2.0 GB 77 MB/s 0s\u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕█████████���████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕█████████���████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\n",
+ "pulling 56bb8bd477a5: 100% ▕██████████████████▏ 96 B \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\n",
+ "pulling 56bb8bd477a5: 100% ▕██████████████████▏ 96 B \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\n",
+ "pulling 56bb8bd477a5: 100% ▕██████████████████▏ 96 B \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\n",
+ "pulling 56bb8bd477a5: 100% ▕██████████████████▏ 96 B \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\n",
+ "pulling 56bb8bd477a5: 100% ▕██████████████████▏ 96 B \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\n",
+ "pulling 56bb8bd477a5: 100% ▕██████████████████▏ 96 B \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\n",
+ "pulling 56bb8bd477a5: 100% ▕██████████████████▏ 96 B \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\n",
+ "pulling 56bb8bd477a5: 100% ▕██████████████████▏ 96 B \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\n",
+ "pulling 56bb8bd477a5: 100% ▕██████████████████▏ 96 B \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\n",
+ "pulling 56bb8bd477a5: 100% ▕██████████████████▏ 96 B \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\n",
+ "pulling 56bb8bd477a5: 100% ▕██████████████████▏ 96 B \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\n",
+ "pulling 56bb8bd477a5: 100% ▕██████████████████▏ 96 B \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\n",
+ "pulling 56bb8bd477a5: 100% ▕██████████████████▏ 96 B \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\n",
+ "pulling 56bb8bd477a5: 100% ▕██████████████████▏ 96 B \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\n",
+ "pulling 56bb8bd477a5: 100% ▕██████████████████▏ 96 B \u001b[K\n",
+ "pulling 34bb5ab01051: 100% ▕██████████████████▏ 561 B \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\n",
+ "pulling 56bb8bd477a5: 100% ▕██████████████████▏ 96 B \u001b[K\n",
+ "pulling 34bb5ab01051: 100% ▕██████████████████▏ 561 B \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\n",
+ "pulling 56bb8bd477a5: 100% ▕██████████████████▏ 96 B \u001b[K\n",
+ "pulling 34bb5ab01051: 100% ▕██████████████████▏ 561 B \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\n",
+ "pulling 56bb8bd477a5: 100% ▕██████████████████▏ 96 B \u001b[K\n",
+ "pulling 34bb5ab01051: 100% ▕██████████████████▏ 561 B \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\n",
+ "pulling 56bb8bd477a5: 100% ▕██████████████████▏ 96 B \u001b[K\n",
+ "pulling 34bb5ab01051: 100% ▕██████████████████▏ 561 B \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\n",
+ "pulling 56bb8bd477a5: 100% ▕██████████████████▏ 96 B \u001b[K\n",
+ "pulling 34bb5ab01051: 100% ▕██████████████████▏ 561 B \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\n",
+ "pulling 56bb8bd477a5: 100% ▕██████████████████▏ 96 B \u001b[K\n",
+ "pulling 34bb5ab01051: 100% ▕██████████████████▏ 561 B \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\n",
+ "pulling 56bb8bd477a5: 100% ▕██████████████████▏ 96 B \u001b[K\n",
+ "pulling 34bb5ab01051: 100% ▕██████████████████▏ 561 B \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\n",
+ "pulling 56bb8bd477a5: 100% ▕██████████████████▏ 96 B \u001b[K\n",
+ "pulling 34bb5ab01051: 100% ▕██████████████████▏ 561 B \u001b[K\n",
+ "verifying sha256 digest ⠋ \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\n",
+ "pulling 56bb8bd477a5: 100% ▕██████████████████▏ 96 B \u001b[K\n",
+ "pulling 34bb5ab01051: 100% ▕██████████████████▏ 561 B \u001b[K\n",
+ "verifying sha256 digest ⠙ \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\n",
+ "pulling 56bb8bd477a5: 100% ▕██████████████████▏ 96 B \u001b[K\n",
+ "pulling 34bb5ab01051: 100% ▕██████████████████▏ 561 B \u001b[K\n",
+ "verifying sha256 digest ⠹ \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\n",
+ "pulling 56bb8bd477a5: 100% ▕██████████████████▏ 96 B \u001b[K\n",
+ "pulling 34bb5ab01051: 100% ▕██████████████████▏ 561 B \u001b[K\n",
+ "verifying sha256 digest ⠸ \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\n",
+ "pulling 56bb8bd477a5: 100% ▕██████████████████▏ 96 B \u001b[K\n",
+ "pulling 34bb5ab01051: 100% ▕██████████████████▏ 561 B \u001b[K\n",
+ "verifying sha256 digest ⠼ \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\n",
+ "pulling 56bb8bd477a5: 100% ▕██████████████████▏ 96 B \u001b[K\n",
+ "pulling 34bb5ab01051: 100% ▕██████████████████▏ 561 B \u001b[K\n",
+ "verifying sha256 digest ⠴ \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\n",
+ "pulling 56bb8bd477a5: 100% ▕██████████████████▏ 96 B \u001b[K\n",
+ "pulling 34bb5ab01051: 100% ▕██████████████████▏ 561 B \u001b[K\n",
+ "verifying sha256 digest ⠦ \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\n",
+ "pulling 56bb8bd477a5: 100% ▕██████████████████▏ 96 B \u001b[K\n",
+ "pulling 34bb5ab01051: 100% ▕██████████████████▏ 561 B \u001b[K\n",
+ "verifying sha256 digest ⠧ \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\n",
+ "pulling 56bb8bd477a5: 100% ▕██████████████████▏ 96 B \u001b[K\n",
+ "pulling 34bb5ab01051: 100% ▕██████████████████▏ 561 B \u001b[K\n",
+ "verifying sha256 digest ⠇ \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\n",
+ "pulling 56bb8bd477a5: 100% ▕██████████████████▏ 96 B \u001b[K\n",
+ "pulling 34bb5ab01051: 100% ▕██████████████████▏ 561 B \u001b[K\n",
+ "verifying sha256 digest ⠏ \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\n",
+ "pulling 56bb8bd477a5: 100% ▕██████████████████▏ 96 B \u001b[K\n",
+ "pulling 34bb5ab01051: 100% ▕██████████████████▏ 561 B \u001b[K\n",
+ "verifying sha256 digest ⠋ \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\n",
+ "pulling 56bb8bd477a5: 100% ▕██████████████████▏ 96 B \u001b[K\n",
+ "pulling 34bb5ab01051: 100% ▕██████████████████▏ 561 B \u001b[K\n",
+ "verifying sha256 digest ⠙ \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\n",
+ "pulling 56bb8bd477a5: 100% ▕██████████████████▏ 96 B \u001b[K\n",
+ "pulling 34bb5ab01051: 100% ▕██████████████████▏ 561 B \u001b[K\n",
+ "verifying sha256 digest ⠹ \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\n",
+ "pulling 56bb8bd477a5: 100% ▕██████████████████▏ 96 B \u001b[K\n",
+ "pulling 34bb5ab01051: 100% ▕██████████████████▏ 561 B \u001b[K\n",
+ "verifying sha256 digest ⠸ \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\n",
+ "pulling 56bb8bd477a5: 100% ▕██████████████████▏ 96 B \u001b[K\n",
+ "pulling 34bb5ab01051: 100% ▕██████████████████▏ 561 B \u001b[K\n",
+ "verifying sha256 digest ⠼ \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\n",
+ "pulling 56bb8bd477a5: 100% ▕██████████████████▏ 96 B \u001b[K\n",
+ "pulling 34bb5ab01051: 100% ▕██████████████████▏ 561 B \u001b[K\n",
+ "verifying sha256 digest ⠴ \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\n",
+ "pulling 56bb8bd477a5: 100% ▕██████████████████▏ 96 B \u001b[K\n",
+ "pulling 34bb5ab01051: 100% ▕██████████████████▏ 561 B \u001b[K\n",
+ "verifying sha256 digest ⠦ \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\n",
+ "pulling 56bb8bd477a5: 100% ▕██████████████████▏ 96 B \u001b[K\n",
+ "pulling 34bb5ab01051: 100% ▕██████████████████▏ 561 B \u001b[K\n",
+ "verifying sha256 digest ⠧ \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\n",
+ "pulling 56bb8bd477a5: 100% ▕██████████████████▏ 96 B \u001b[K\n",
+ "pulling 34bb5ab01051: 100% ▕██████████████████▏ 561 B \u001b[K\n",
+ "verifying sha256 digest ⠇ \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\n",
+ "pulling 56bb8bd477a5: 100% ▕██████████████████▏ 96 B \u001b[K\n",
+ "pulling 34bb5ab01051: 100% ▕██████████████████▏ 561 B \u001b[K\n",
+ "verifying sha256 digest ⠏ \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\n",
+ "pulling 56bb8bd477a5: 100% ▕██████████████████▏ 96 B \u001b[K\n",
+ "pulling 34bb5ab01051: 100% ▕██████████████████▏ 561 B \u001b[K\n",
+ "verifying sha256 digest ⠋ \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕█████████████████��▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\n",
+ "pulling 56bb8bd477a5: 100% ▕██████████████████▏ 96 B \u001b[K\n",
+ "pulling 34bb5ab01051: 100% ▕██████████████████▏ 561 B \u001b[K\n",
+ "verifying sha256 digest ⠙ \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\n",
+ "pulling 56bb8bd477a5: 100% ▕██████████████████▏ 96 B \u001b[K\n",
+ "pulling 34bb5ab01051: 100% ▕██████████████████▏ 561 B \u001b[K\n",
+ "verifying sha256 digest ⠹ \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\n",
+ "pulling 56bb8bd477a5: 100% ▕██████████████████▏ 96 B \u001b[K\n",
+ "pulling 34bb5ab01051: 100% ▕██████████████████▏ 561 B \u001b[K\n",
+ "verifying sha256 digest ⠸ \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\n",
+ "pulling 56bb8bd477a5: 100% ▕██████████████████▏ 96 B \u001b[K\n",
+ "pulling 34bb5ab01051: 100% ▕██████████████████▏ 561 B \u001b[K\n",
+ "verifying sha256 digest ⠼ \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\n",
+ "pulling 56bb8bd477a5: 100% ▕██████████████████▏ 96 B \u001b[K\n",
+ "pulling 34bb5ab01051: 100% ▕██████████████████▏ 561 B \u001b[K\n",
+ "verifying sha256 digest ⠴ \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕████████████��█████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\n",
+ "pulling 56bb8bd477a5: 100% ▕██████████████████▏ 96 B \u001b[K\n",
+ "pulling 34bb5ab01051: 100% ▕██████████████████▏ 561 B \u001b[K\n",
+ "verifying sha256 digest ⠦ \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\n",
+ "pulling 56bb8bd477a5: 100% ▕██████████████████▏ 96 B \u001b[K\n",
+ "pulling 34bb5ab01051: 100% ▕██████████████████▏ 561 B \u001b[K\n",
+ "verifying sha256 digest ⠧ \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\n",
+ "pulling 56bb8bd477a5: 100% ▕██████████████████▏ 96 B \u001b[K\n",
+ "pulling 34bb5ab01051: 100% ▕██████████████████▏ 561 B \u001b[K\n",
+ "verifying sha256 digest ⠇ \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\n",
+ "pulling 56bb8bd477a5: 100% ▕██████████████████▏ 96 B \u001b[K\n",
+ "pulling 34bb5ab01051: 100% ▕██████████████████▏ 561 B \u001b[K\n",
+ "verifying sha256 digest ⠏ \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\n",
+ "pulling 56bb8bd477a5: 100% ▕██████████████████▏ 96 B \u001b[K\n",
+ "pulling 34bb5ab01051: 100% ▕██████████████████▏ 561 B \u001b[K\n",
+ "verifying sha256 digest ⠋ \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕███████��██████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\n",
+ "pulling 56bb8bd477a5: 100% ▕██████████████████▏ 96 B \u001b[K\n",
+ "pulling 34bb5ab01051: 100% ▕██████████████████▏ 561 B \u001b[K\n",
+ "verifying sha256 digest ⠙ \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\n",
+ "pulling 56bb8bd477a5: 100% ▕██████████████████▏ 96 B \u001b[K\n",
+ "pulling 34bb5ab01051: 100% ▕██████████████████▏ 561 B \u001b[K\n",
+ "verifying sha256 digest ⠹ \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\n",
+ "pulling 56bb8bd477a5: 100% ▕██████████████████▏ 96 B \u001b[K\n",
+ "pulling 34bb5ab01051: 100% ▕██████████████████▏ 561 B \u001b[K\n",
+ "verifying sha256 digest ⠸ \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\n",
+ "pulling 56bb8bd477a5: 100% ▕██████████████████▏ 96 B \u001b[K\n",
+ "pulling 34bb5ab01051: 100% ▕██████████████████▏ 561 B \u001b[K\n",
+ "verifying sha256 digest ⠼ \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\n",
+ "pulling 56bb8bd477a5: 100% ▕██████████████████▏ 96 B \u001b[K\n",
+ "pulling 34bb5ab01051: 100% ▕██████████████████▏ 561 B \u001b[K\n",
+ "verifying sha256 digest ⠴ \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██��███████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\n",
+ "pulling 56bb8bd477a5: 100% ▕██████████████████▏ 96 B \u001b[K\n",
+ "pulling 34bb5ab01051: 100% ▕██████████████████▏ 561 B \u001b[K\n",
+ "verifying sha256 digest ⠦ \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\n",
+ "pulling 56bb8bd477a5: 100% ▕██████████████████▏ 96 B \u001b[K\n",
+ "pulling 34bb5ab01051: 100% ▕██████████████████▏ 561 B \u001b[K\n",
+ "verifying sha256 digest ⠧ \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\n",
+ "pulling 56bb8bd477a5: 100% ▕██████████████████▏ 96 B \u001b[K\n",
+ "pulling 34bb5ab01051: 100% ▕██████████████████▏ 561 B \u001b[K\n",
+ "verifying sha256 digest ⠇ \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\n",
+ "pulling 56bb8bd477a5: 100% ▕██████████████████▏ 96 B \u001b[K\n",
+ "pulling 34bb5ab01051: 100% ▕██████████████████▏ 561 B \u001b[K\n",
+ "verifying sha256 digest ⠏ \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\n",
+ "pulling 56bb8bd477a5: 100% ▕██████████████████▏ 96 B \u001b[K\n",
+ "pulling 34bb5ab01051: 100% ▕██████████████████▏ 561 B \u001b[K\n",
+ "verifying sha256 digest ⠋ \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\n",
+ "pulling 56bb8bd477a5: 100% ▕██████████████████▏ 96 B \u001b[K\n",
+ "pulling 34bb5ab01051: 100% ▕██████████████████▏ 561 B \u001b[K\n",
+ "verifying sha256 digest ⠙ \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\n",
+ "pulling 56bb8bd477a5: 100% ▕██████████████████▏ 96 B \u001b[K\n",
+ "pulling 34bb5ab01051: 100% ▕██████████████████▏ 561 B \u001b[K\n",
+ "verifying sha256 digest ⠹ \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\n",
+ "pulling 56bb8bd477a5: 100% ▕██████████████████▏ 96 B \u001b[K\n",
+ "pulling 34bb5ab01051: 100% ▕██████████████████▏ 561 B \u001b[K\n",
+ "verifying sha256 digest ⠸ \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\n",
+ "pulling 56bb8bd477a5: 100% ▕██████████████████▏ 96 B \u001b[K\n",
+ "pulling 34bb5ab01051: 100% ▕██████████████████▏ 561 B \u001b[K\n",
+ "verifying sha256 digest ⠼ \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\n",
+ "pulling 56bb8bd477a5: 100% ▕██████████████████▏ 96 B \u001b[K\n",
+ "pulling 34bb5ab01051: 100% ▕██████████████████▏ 561 B \u001b[K\n",
+ "verifying sha256 digest ⠴ \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\n",
+ "pulling 56bb8bd477a5: 100% ▕██████████████████▏ 96 B \u001b[K\n",
+ "pulling 34bb5ab01051: 100% ▕██████████████████▏ 561 B \u001b[K\n",
+ "verifying sha256 digest ⠦ \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\n",
+ "pulling 56bb8bd477a5: 100% ▕██████████████████▏ 96 B \u001b[K\n",
+ "pulling 34bb5ab01051: 100% ▕██████████████████▏ 561 B \u001b[K\n",
+ "verifying sha256 digest ⠧ \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\n",
+ "pulling 56bb8bd477a5: 100% ▕██████████████████▏ 96 B \u001b[K\n",
+ "pulling 34bb5ab01051: 100% ▕██████████████████▏ 561 B \u001b[K\n",
+ "verifying sha256 digest ⠇ \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\n",
+ "pulling 56bb8bd477a5: 100% ▕██████████████████▏ 96 B \u001b[K\n",
+ "pulling 34bb5ab01051: 100% ▕██████████████████▏ 561 B \u001b[K\n",
+ "verifying sha256 digest ⠏ \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\n",
+ "pulling 56bb8bd477a5: 100% ▕██████████████████▏ 96 B \u001b[K\n",
+ "pulling 34bb5ab01051: 100% ▕██████████████████▏ 561 B \u001b[K\n",
+ "verifying sha256 digest ⠋ \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\n",
+ "pulling 56bb8bd477a5: 100% ▕██████████████████▏ 96 B \u001b[K\n",
+ "pulling 34bb5ab01051: 100% ▕██████████████████▏ 561 B \u001b[K\n",
+ "verifying sha256 digest ⠙ \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\n",
+ "pulling 56bb8bd477a5: 100% ▕██████████████████▏ 96 B \u001b[K\n",
+ "pulling 34bb5ab01051: 100% ▕██████████████████▏ 561 B \u001b[K\n",
+ "verifying sha256 digest ⠹ \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\n",
+ "pulling 56bb8bd477a5: 100% ▕██████████████████▏ 96 B \u001b[K\n",
+ "pulling 34bb5ab01051: 100% ▕██████████████████▏ 561 B \u001b[K\n",
+ "verifying sha256 digest ⠸ \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\n",
+ "pulling 56bb8bd477a5: 100% ▕██████████████████▏ 96 B \u001b[K\n",
+ "pulling 34bb5ab01051: 100% ▕██████████████████▏ 561 B \u001b[K\n",
+ "verifying sha256 digest ⠼ \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\n",
+ "pulling 56bb8bd477a5: 100% ▕██████████████████▏ 96 B \u001b[K\n",
+ "pulling 34bb5ab01051: 100% ▕██████████████████▏ 561 B \u001b[K\n",
+ "verifying sha256 digest ⠴ \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\n",
+ "pulling 56bb8bd477a5: 100% ▕██████████████████▏ 96 B \u001b[K\n",
+ "pulling 34bb5ab01051: 100% ▕██████████████████▏ 561 B \u001b[K\n",
+ "verifying sha256 digest ⠦ \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\n",
+ "pulling 56bb8bd477a5: 100% ▕██████████████████▏ 96 B \u001b[K\n",
+ "pulling 34bb5ab01051: 100% ▕██████████████████▏ 561 B \u001b[K\n",
+ "verifying sha256 digest ⠧ \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\n",
+ "pulling 56bb8bd477a5: 100% ▕██████████████████▏ 96 B \u001b[K\n",
+ "pulling 34bb5ab01051: 100% ▕██████████████████▏ 561 B \u001b[K\n",
+ "verifying sha256 digest ⠇ \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\n",
+ "pulling 56bb8bd477a5: 100% ▕██████████████████▏ 96 B \u001b[K\n",
+ "pulling 34bb5ab01051: 100% ▕██████████████████▏ 561 B \u001b[K\n",
+ "verifying sha256 digest ⠏ \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\n",
+ "pulling 56bb8bd477a5: 100% ▕██████████████████▏ 96 B \u001b[K\n",
+ "pulling 34bb5ab01051: 100% ▕██████████████████▏ 561 B \u001b[K\n",
+ "verifying sha256 digest ⠋ \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\n",
+ "pulling 56bb8bd477a5: 100% ▕██████████████████▏ 96 B \u001b[K\n",
+ "pulling 34bb5ab01051: 100% ▕██████████████████▏ 561 B \u001b[K\n",
+ "verifying sha256 digest ⠙ \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\n",
+ "pulling 56bb8bd477a5: 100% ▕██████████████████▏ 96 B \u001b[K\n",
+ "pulling 34bb5ab01051: 100% ▕██████████████████▏ 561 B \u001b[K\n",
+ "verifying sha256 digest ⠹ \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\n",
+ "pulling 56bb8bd477a5: 100% ▕██████████████████▏ 96 B \u001b[K\n",
+ "pulling 34bb5ab01051: 100% ▕██████████████████▏ 561 B \u001b[K\n",
+ "verifying sha256 digest ⠸ \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\n",
+ "pulling 56bb8bd477a5: 100% ▕██████████████████▏ 96 B \u001b[K\n",
+ "pulling 34bb5ab01051: 100% ▕██████████████████▏ 561 B \u001b[K\n",
+ "verifying sha256 digest ⠼ \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\n",
+ "pulling 56bb8bd477a5: 100% ▕██████████████████▏ 96 B \u001b[K\n",
+ "pulling 34bb5ab01051: 100% ▕██████████████████▏ 561 B \u001b[K\n",
+ "verifying sha256 digest ⠴ \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\n",
+ "pulling 56bb8bd477a5: 100% ▕██████████████████▏ 96 B \u001b[K\n",
+ "pulling 34bb5ab01051: 100% ▕██████████████████▏ 561 B \u001b[K\n",
+ "verifying sha256 digest ⠦ \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\n",
+ "pulling 56bb8bd477a5: 100% ▕██████████████████▏ 96 B \u001b[K\n",
+ "pulling 34bb5ab01051: 100% ▕██████████████████▏ 561 B \u001b[K\n",
+ "verifying sha256 digest ⠧ \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\n",
+ "pulling 56bb8bd477a5: 100% ▕██████████████████▏ 96 B \u001b[K\n",
+ "pulling 34bb5ab01051: 100% ▕██████████████████▏ 561 B \u001b[K\n",
+ "verifying sha256 digest ⠇ \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\n",
+ "pulling 56bb8bd477a5: 100% ▕██████████████████▏ 96 B \u001b[K\n",
+ "pulling 34bb5ab01051: 100% ▕██████████████████▏ 561 B \u001b[K\n",
+ "verifying sha256 digest ⠏ \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\n",
+ "pulling 56bb8bd477a5: 100% ▕██████████████████▏ 96 B \u001b[K\n",
+ "pulling 34bb5ab01051: 100% ▕██████████████████▏ 561 B \u001b[K\n",
+ "verifying sha256 digest ⠋ \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\n",
+ "pulling 56bb8bd477a5: 100% ▕██████████████████▏ 96 B \u001b[K\n",
+ "pulling 34bb5ab01051: 100% ▕██████████████████▏ 561 B \u001b[K\n",
+ "verifying sha256 digest ⠙ \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\n",
+ "pulling 56bb8bd477a5: 100% ▕██████████████████▏ 96 B \u001b[K\n",
+ "pulling 34bb5ab01051: 100% ▕██████████████████▏ 561 B \u001b[K\n",
+ "verifying sha256 digest ⠹ \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\n",
+ "pulling 56bb8bd477a5: 100% ▕██████████████████▏ 96 B \u001b[K\n",
+ "pulling 34bb5ab01051: 100% ▕██████████████████▏ 561 B \u001b[K\n",
+ "verifying sha256 digest ⠸ \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\n",
+ "pulling 56bb8bd477a5: 100% ▕██████████████████▏ 96 B \u001b[K\n",
+ "pulling 34bb5ab01051: 100% ▕██████████████████▏ 561 B \u001b[K\n",
+ "verifying sha256 digest ⠼ \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\n",
+ "pulling 56bb8bd477a5: 100% ▕██████████████████▏ 96 B \u001b[K\n",
+ "pulling 34bb5ab01051: 100% ▕██████████████████▏ 561 B \u001b[K\n",
+ "verifying sha256 digest ⠴ \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\n",
+ "pulling 56bb8bd477a5: 100% ▕██████████████████▏ 96 B \u001b[K\n",
+ "pulling 34bb5ab01051: 100% ▕██████████████████▏ 561 B \u001b[K\n",
+ "verifying sha256 digest ⠦ \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\n",
+ "pulling 56bb8bd477a5: 100% ▕██████████████████▏ 96 B \u001b[K\n",
+ "pulling 34bb5ab01051: 100% ▕██████████████████▏ 561 B \u001b[K\n",
+ "verifying sha256 digest ⠧ \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\n",
+ "pulling 56bb8bd477a5: 100% ▕██████████████████▏ 96 B \u001b[K\n",
+ "pulling 34bb5ab01051: 100% ▕██████████████████▏ 561 B \u001b[K\n",
+ "verifying sha256 digest ⠇ \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\n",
+ "pulling 56bb8bd477a5: 100% ▕██████████████████▏ 96 B \u001b[K\n",
+ "pulling 34bb5ab01051: 100% ▕██████████████████▏ 561 B \u001b[K\n",
+ "verifying sha256 digest ⠏ \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\n",
+ "pulling 56bb8bd477a5: 100% ▕██████████████████▏ 96 B \u001b[K\n",
+ "pulling 34bb5ab01051: 100% ▕██████████████████▏ 561 B \u001b[K\n",
+ "verifying sha256 digest ⠋ \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\n",
+ "pulling 56bb8bd477a5: 100% ▕██████████████████▏ 96 B \u001b[K\n",
+ "pulling 34bb5ab01051: 100% ▕██████████████████▏ 561 B \u001b[K\n",
+ "verifying sha256 digest ⠙ \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\n",
+ "pulling 56bb8bd477a5: 100% ▕██████████████████▏ 96 B \u001b[K\n",
+ "pulling 34bb5ab01051: 100% ▕██████████████████▏ 561 B \u001b[K\n",
+ "verifying sha256 digest ⠹ \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\n",
+ "pulling 56bb8bd477a5: 100% ▕██████████████████▏ 96 B \u001b[K\n",
+ "pulling 34bb5ab01051: 100% ▕██████████████████▏ 561 B \u001b[K\n",
+ "verifying sha256 digest ⠸ \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\n",
+ "pulling 56bb8bd477a5: 100% ▕██████████████████▏ 96 B \u001b[K\n",
+ "pulling 34bb5ab01051: 100% ▕██████████████████▏ 561 B \u001b[K\n",
+ "verifying sha256 digest ⠼ \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\n",
+ "pulling 56bb8bd477a5: 100% ▕██████████████████▏ 96 B \u001b[K\n",
+ "pulling 34bb5ab01051: 100% ▕██████████████████▏ 561 B \u001b[K\n",
+ "verifying sha256 digest ⠴ \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\n",
+ "pulling 56bb8bd477a5: 100% ▕██████████████████▏ 96 B \u001b[K\n",
+ "pulling 34bb5ab01051: 100% ▕██████████████████▏ 561 B \u001b[K\n",
+ "verifying sha256 digest ⠦ \u001b[K\u001b[?25h\u001b[?2026l\u001b[?2026h\u001b[?25l\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[1Gpulling manifest \u001b[K\n",
+ "pulling dde5aa3fc5ff: 100% ▕██████████████████▏ 2.0 GB \u001b[K\n",
+ "pulling 966de95ca8a6: 100% ▕██████████████████▏ 1.4 KB \u001b[K\n",
+ "pulling fcc5a6bec9da: 100% ▕██████████████████▏ 7.7 KB \u001b[K\n",
+ "pulling a70ff7e570d9: 100% ▕██████████████████▏ 6.0 KB \u001b[K\n",
+ "pulling 56bb8bd477a5: 100% ▕██████████████████▏ 96 B \u001b[K\n",
+ "pulling 34bb5ab01051: 100% ▕██████████████████▏ 561 B \u001b[K\n",
+ "verifying sha256 digest \u001b[K\n",
+ "writing manifest \u001b[K\n",
+ "success \u001b[K\u001b[?25h\u001b[?2026l\n"
+ ]
+ }
+ ],
+ "source": [
+ "!ollama pull llama3.2"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 33,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/markdown": [
+ "Designing an ethical framework for autonomous AI systems requires a multi-faceted approach that considers both technical and societal aspects. Here's a step-by-step guide to help balance innovation with societal values, focusing on potential job displacement and privacy concerns:\n",
+ "\n",
+ "1. **Establish a multidisciplinary team**: Gather experts in AI development, ethics, sociology, psychology, law, and relevant fields. This diverse team will provide a comprehensive understanding of both technical capabilities and social implications.\n",
+ "2. **Define key principles and objectives**: Identify core values and goals for the AI system, such as:\n",
+ "\t* Respect for human rights and dignity\n",
+ "\t* Transparency and accountability\n",
+ "\t* Fairness and non-discrimination\n",
+ "\t* Privacy protection\n",
+ "\t* Safety and security\n",
+ "\t* Socio-economic benefits and impact reduction\n",
+ "3. **Analyze potential job displacement risks**: Consider ways to mitigate negative impacts on employment, such as:\n",
+ "\t* Upskilling and reskilling programs for affected workers\n",
+ "\t* Encouraging entrepreneurship and innovation in AI-related industries\n",
+ "\t* Implementing policies to promote inclusive growth and social safety nets\n",
+ "4. **Develop robust privacy safeguards**:\n",
+ "\t* Establish robust data protection regulations and standards\n",
+ "\t* Implement anonymization techniques and de-identification methods\n",
+ "\t* Ensure transparency about data collection, storage, and processing practices\n",
+ "5. **Implement transparent decision-making mechanisms**: Develop transparent algorithms and explainable AI (XAI) models to facilitate understanding of AI-driven decisions.\n",
+ "6. **Foster public engagement and participatory processes**:\n",
+ "\t* Conduct regular public consultations and deliberations on AI-related issues\n",
+ "\t* Encourage citizen participation in decision-making through platforms like participatory budgeting or crowdsourced feedback mechanisms\n",
+ "7. **Establish mechanisms for accountability and redress**: Develop processes for addressing AI-related complaints, investigations, and rectification of injustices.\n",
+ "8. **Develop standards and guidelines for AI development**:\n",
+ "\t* Establish industry-wide standards for ethics and transparency in AI development\n",
+ "\t* Promote the development of formal design principles and evaluation frameworks\n",
+ "9. **Monitor and evaluate the impact of AI on society**: Continuously assess the effectiveness of current regulations, policies, and technological interventions.\n",
+ "10. **Stay adaptable and evolve**: Be prepared to revise and refine your framework as new challenges arise, regulatory landscapes change, or societal attitudes shift.\n",
+ "\n",
+ "Additionally, consider the following:\n",
+ "\n",
+ "1. Emphasize diversity, equity, and inclusion in AI development teams\n",
+ "2. Engage with global standards organizations, governments, and international organizations on AI-related issues\n",
+ "3. Support research into the social implications of AI to better understand these challenges\n",
+ "\n",
+ "By taking a holistic approach that balances technical excellence with societal values and needs, you can create an ethical framework for autonomous AI systems that promotes sustainable development and responsible innovation."
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "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": 34,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "['gpt-4o-mini', 'claude-3-7-sonnet-latest', 'gemini-2.0-flash', 'llama-3.3-70b-versatile', 'llama3.2']\n",
+ "['Designing an ethical framework for autonomous AI systems that balances innovation with societal values requires a multi-faceted approach. Here are key steps to consider:\\n\\n### 1. **Stakeholder Engagement**\\n - **Identify Stakeholders**: Engage with a diverse group of stakeholders, including technologists, ethicists, policymakers, industry leaders, labor organizations, and the affected communities.\\n - **Collaborative Dialogue**: Facilitate discussions that incorporate various perspectives, particularly focusing on marginalized communities that may be disproportionately affected by AI systems.\\n\\n### 2. **Core Ethical Principles**\\n - **Fairness**: Ensure that AI systems do not perpetuate bias. Develop guidelines that require regular audits and transparency in AI algorithms to promote fairness in outcomes, especially in hiring or resource allocation.\\n - **Accountability**: Designate clear responsibilities for AI decision-making. Establish accountability mechanisms for both developers and organizations deploying AI systems.\\n - **Privacy Protection**: Implement robust privacy standards that prioritize user data protection and consent, minimizing surveillance and data collection to what is necessary for functionality.\\n - **Transparency**: Mandate explainability in AI systems to help users understand how decisions are made, fostering trust and enabling informed choices.\\n - **Beneficence and Nonmaleficence**: Systems should be designed to benefit society and avoid harm, with clear protocols for intervention when they are shown to cause detrimental effects.\\n\\n### 3. **Balancing Innovation and Responsibility**\\n - **Innovation-Friendly Regulation**: Establish adaptive regulatory frameworks that encourage innovation while ensuring ethical deployment. This can include sandbox environments for experimentation under regulatory oversight.\\n - **Support for Displaced Workers**: Create transition programs such as reskilling and upskilling initiatives to aid workers in moving towards new roles created by AI. Collaborate with industry to identify future workforce needs.\\n - **Public Benefit Considerations**: Encourage the development of AI technologies that prioritize public good, such as applications in healthcare, education, and environmental sustainability.\\n\\n### 4. **Monitoring and Evaluation**\\n - **Continuous Assessment**: Develop metrics to continually assess the impact of AI systems on job displacement and privacy. This will include feedback loops for early identification of negative outcomes that need addressing.\\n - **Adaptive Learning Processes**: Design the framework with mechanisms to adapt based on emerging challenges and opportunities in the AI landscape, ensuring that it remains relevant and effective over time.\\n\\n### 5. **Education and Awareness**\\n - **Public Awareness Campaigns**: Promote understanding of AI technologies and their implications on society, empowering individuals to engage with the technology and contribute to ethical discussions.\\n - **Ethics Training for Developers**: Include ethics as a core component of technical training for AI developers, ensuring that they understand the societal implications of their work.\\n\\n### 6. **Global Considerations**\\n - **International Cooperation**: Collaborate with international bodies to harmonize ethical standards across borders, acknowledging that AI technologies and their impacts are often global in nature.\\n - **Cultural Sensitivity**: Recognize and respect cultural differences in ethical standards, adapting frameworks to be applicable in various sociocultural contexts.\\n\\n### Conclusion\\nBuilding an ethical framework for autonomous AI systems is a complex and ongoing challenge that requires active participation, flexible structures, and a commitment to prioritizing human values. By incorporating these elements, we can help ensure that innovation in AI contributes positively to society, aligning with ethical principles while mitigating risks related to job displacement and privacy.', '# Designing an Ethical Framework for Autonomous AI Systems\\n\\nI would approach this challenge through a multi-layered framework that balances innovation with societal wellbeing:\\n\\n## Foundational Principles\\n- **Human-centered design**: AI systems should augment human capabilities rather than simply replace them\\n- **Distributed benefits**: Economic gains from automation should benefit society broadly\\n- **Transparency**: Clear documentation of system capabilities and limitations\\n- **Accountability**: Clear lines of responsibility for AI decisions\\n\\n## For Job Displacement Concerns\\n- Implement gradual transition pathways with reskilling programs\\n- Establish metrics for measuring both economic efficiency and job quality\\n- Require impact assessments before deploying automation in sensitive sectors\\n- Explore shared prosperity mechanisms (profit-sharing, reduced work hours)\\n\\n## For Privacy Protection\\n- Design for data minimization and purpose limitation\\n- Create tiered consent models based on data sensitivity\\n- Enable meaningful user control over personal data\\n- Establish regular privacy audits by independent entities\\n\\nThe most challenging aspect is balancing stakeholder interests. This requires inclusive governance with representation from industry, civil society, affected workers, and technical experts to continuously evaluate and evolve the framework as technologies and social needs change.', 'Designing an ethical framework for autonomous AI systems is a complex undertaking that requires a multi-faceted approach. Here\\'s a breakdown of how I would approach it, considering job displacement and privacy:\\n\\n**I. Foundational Principles and Values:**\\n\\n* **Human-Centered Design:** Prioritize human well-being, dignity, and agency in all aspects of AI development and deployment. AI should augment, not replace, human capabilities whenever possible.\\n* **Beneficence & Non-Maleficence:** AI systems should strive to do good and avoid causing harm, both intentional and unintentional. This requires thorough risk assessment and mitigation strategies.\\n* **Justice & Fairness:** AI systems should not perpetuate or exacerbate existing societal inequalities. Bias detection and mitigation are crucial, ensuring fair outcomes across demographic groups.\\n* **Transparency & Explainability:** AI systems should be understandable and their decision-making processes, where appropriate, should be explainable to relevant stakeholders. Black boxes erode trust and accountability.\\n* **Accountability & Responsibility:** Clear lines of responsibility must be established for AI systems, including developers, deployers, and operators. Mechanisms for redress and accountability must be in place when harm occurs.\\n* **Privacy & Data Security:** Data privacy should be a core design principle. Employ techniques like differential privacy, anonymization, and secure data storage to protect individual privacy.\\n* **Sustainability:** Consider the environmental impact of AI systems, including energy consumption and resource usage. Promote sustainable AI development practices.\\n\\n**II. Addressing Job Displacement:**\\n\\n1. **Anticipatory Planning & Transition Support:**\\n * **Identify at-risk sectors and roles:** Proactively analyze the potential impacts of AI on different industries and job categories.\\n * **Invest in education and retraining:** Provide accessible and affordable training programs to equip workers with the skills needed for emerging roles in the AI-driven economy. Focus on skills that complement AI, such as critical thinking, creativity, and emotional intelligence.\\n * **Explore alternative economic models:** Consider policies like universal basic income (UBI), guaranteed minimum income, or job guarantee programs to provide a safety net for those displaced by automation.\\n * **Promote lifelong learning:** Foster a culture of continuous learning to enable workers to adapt to evolving job requirements.\\n\\n2. **Human-AI Collaboration:**\\n * **Design AI for augmentation:** Prioritize AI systems that enhance human capabilities and enable workers to be more productive and efficient, rather than completely replacing them.\\n * **Focus on human oversight:** Maintain human oversight and control over critical AI decision-making processes, especially in areas with high stakes or ethical implications.\\n * **Promote skill development in AI-related fields:** Encourage education and training in areas like AI development, data science, and AI ethics.\\n\\n3. **Social Safety Nets & Economic Adjustments:**\\n * **Strengthen social security systems:** Ensure that social security systems are adequate to support an aging population and those displaced by automation.\\n * **Reform tax policies:** Consider tax policies that incentivize companies to invest in training and upskilling their workforce, rather than simply replacing them with AI.\\n * **Explore shorter workweeks:** As AI increases productivity, consider reducing the standard workweek to allow for greater work-life balance and job sharing.\\n\\n**III. Mitigating Privacy Concerns:**\\n\\n1. **Privacy by Design:**\\n * **Data minimization:** Collect only the data that is strictly necessary for the intended purpose of the AI system.\\n * **Data anonymization and pseudonymization:** Employ techniques to protect the identity of individuals whose data is being used.\\n * **Differential privacy:** Add noise to data to protect individual privacy while still allowing for accurate statistical analysis.\\n * **Data security:** Implement robust security measures to protect data from unauthorized access, use, or disclosure.\\n\\n2. **Transparency and Control:**\\n * **User consent and control:** Provide users with clear and understandable information about how their data is being collected, used, and shared. Give them control over their data and the ability to opt out of data collection.\\n * **Data auditability:** Implement mechanisms to track how data is being used and ensure compliance with privacy policies.\\n * **Explainable AI for privacy:** Develop techniques to explain how AI systems are using personal data and ensure that they are not making discriminatory or biased decisions.\\n\\n3. **Regulatory Frameworks and Oversight:**\\n * **Strong data protection laws:** Implement and enforce comprehensive data protection laws that protect individual privacy. GDPR is a good example, but needs adaptation for AI-specific challenges.\\n * **Independent regulatory bodies:** Establish independent regulatory bodies to oversee the development and deployment of AI systems and ensure compliance with ethical and legal standards.\\n * **AI impact assessments:** Require AI developers to conduct impact assessments to identify and mitigate potential privacy risks.\\n\\n**IV. Implementation and Governance:**\\n\\n* **Multi-Stakeholder Engagement:** Involve diverse perspectives in the development and implementation of ethical frameworks, including AI developers, ethicists, policymakers, civil society organizations, and the public.\\n* **Iterative Development:** The ethical framework should be a living document that is regularly reviewed and updated to reflect changes in technology and societal values.\\n* **Education and Training:** Provide training to AI developers, policymakers, and the public on ethical considerations related to AI.\\n* **International Cooperation:** Foster international collaboration to develop common ethical standards for AI.\\n* **Auditing and Monitoring:** Implement mechanisms to audit and monitor AI systems to ensure compliance with ethical principles and legal requirements.\\n\\n**V. Key Considerations for specific AI Applications:**\\n\\n* **Healthcare:** Focus on patient privacy, data security, and ensuring equitable access to AI-powered healthcare.\\n* **Finance:** Address potential biases in AI-driven credit scoring and loan applications. Ensure transparency in algorithmic trading.\\n* **Criminal Justice:** Focus on fairness, accuracy, and transparency in AI-powered predictive policing and risk assessment tools. Mitigate potential for discriminatory outcomes.\\n* **Autonomous Vehicles:** Prioritize safety, accountability in case of accidents, and addressing ethical dilemmas in accident scenarios.\\n\\n**Challenges and Trade-offs:**\\n\\n* **Balancing innovation and regulation:** Finding the right balance between fostering innovation and ensuring ethical and responsible AI development is a constant challenge.\\n* **Defining \"fairness\" and \"bias\":** Defining these concepts in a way that is both technically feasible and ethically sound is difficult.\\n* **Enforcing ethical standards:** Enforcing ethical standards for AI development and deployment can be challenging, especially in a rapidly evolving technological landscape.\\n* **Global harmonization:** Achieving global harmonization of ethical standards for AI is difficult due to differing cultural values and legal frameworks.\\n\\nBy implementing these principles and strategies, we can create an ethical framework for autonomous AI systems that balances innovation with societal values, mitigating the risks of job displacement and privacy violations while maximizing the benefits of this transformative technology. It\\'s an ongoing process of learning, adaptation, and collaboration.\\n', \"Designing an ethical framework for autonomous AI systems requires a multidisciplinary approach that balances innovation with societal values. Here's a comprehensive framework that addresses potential job displacement and privacy concerns:\\n\\n**Principles:**\\n\\n1. **Responsible Innovation**: Encourage innovation while considering the potential consequences of AI on society, including job displacement and privacy concerns.\\n2. **Human-centered Design**: Design AI systems that prioritize human well-being, dignity, and safety, while promoting transparency, explainability, and accountability.\\n3. **Transparency and Explainability**: Ensure that AI decision-making processes are transparent and explainable to stakeholders, including users, regulators, and the broader public.\\n4. **Fairness and Non-discrimination**: Develop AI systems that are fair, unbiased, and respectful of human rights, avoiding discrimination and promoting inclusivity.\\n5. **Privacy and Data Protection**: Implement robust data protection measures to safeguard individual privacy, ensuring that AI systems collect, process, and use data in a responsible and secure manner.\\n6. **Accountability and Liability**: Establish clear lines of accountability and liability for AI-related decisions and actions, including measures for addressing errors, biases, or harm caused by AI systems.\\n7. **Continuous Monitoring and Evaluation**: Regularly assess and evaluate AI systems to identify potential risks, biases, and areas for improvement, and implement corrective measures as needed.\\n\\n**Framework Components:**\\n\\n1. **Stakeholder Engagement**: Establish a multi-stakeholder dialogue involving industry leaders, policymakers, academia, civil society, and the public to ensure that AI development and deployment are aligned with societal values and concerns.\\n2. **Regulatory Frameworks**: Develop and implement regulatory frameworks that address AI-related issues, such as data protection, privacy, and accountability, while promoting innovation and competitiveness.\\n3. **AI Literacy and Education**: Promote AI literacy and education among the general public, policymakers, and industry professionals to ensure that AI is developed and used responsibly.\\n4. **Job Displacement Mitigation**: Implement strategies to mitigate job displacement, such as upskilling and reskilling programs, education and training initiatives, and social safety nets to support workers who may be displaced by automation.\\n5. **Privacy and Data Protection Guidelines**: Establish guidelines for AI system design and development that prioritize data protection, privacy, and security, including measures for data anonymization, encryption, and access control.\\n6. **AI System Testing and Validation**: Develop and implement rigorous testing and validation protocols to ensure that AI systems are reliable, accurate, and unbiased, and that they prioritize human safety and well-being.\\n7. **Incident Response and Management**: Establish incident response and management plans to address AI-related errors, biases, or harm, and provide remedies and compensation to affected individuals or communities.\\n\\n**Implementation Roadmap:**\\n\\n1. **Short-term (0-2 years)**: Establish stakeholder engagement, develop regulatory frameworks, and promote AI literacy and education.\\n2. **Medium-term (2-5 years)**: Implement job displacement mitigation strategies, develop and implement privacy and data protection guidelines, and establish AI system testing and validation protocols.\\n3. **Long-term (5-10 years)**: Continuously monitor and evaluate AI systems, refine the ethical framework, and address emerging challenges and concerns.\\n\\n**Key Challenges and Opportunities:**\\n\\n1. **Addressing Job Displacement**: Developing effective strategies to mitigate job displacement and ensure that workers have the skills and support needed to adapt to an AI-driven economy.\\n2. **Balancing Innovation and Regulation**: Finding the right balance between promoting innovation and ensuring that AI systems are developed and used responsibly.\\n3. **Ensuring Transparency and Explainability**: Developing methods to explain AI decision-making processes and ensure that AI systems are transparent and accountable.\\n4. **Addressing Bias and Discrimination**: Developing AI systems that are fair, unbiased, and respectful of human rights, and promoting inclusivity and diversity in AI development and deployment.\\n\\nBy following this framework, we can develop autonomous AI systems that balance innovation with societal values, prioritize human well-being and dignity, and address potential job displacement and privacy concerns.\", \"Designing an ethical framework for autonomous AI systems requires a multi-faceted approach that considers both technical and societal aspects. Here's a step-by-step guide to help balance innovation with societal values, focusing on potential job displacement and privacy concerns:\\n\\n1. **Establish a multidisciplinary team**: Gather experts in AI development, ethics, sociology, psychology, law, and relevant fields. This diverse team will provide a comprehensive understanding of both technical capabilities and social implications.\\n2. **Define key principles and objectives**: Identify core values and goals for the AI system, such as:\\n\\t* Respect for human rights and dignity\\n\\t* Transparency and accountability\\n\\t* Fairness and non-discrimination\\n\\t* Privacy protection\\n\\t* Safety and security\\n\\t* Socio-economic benefits and impact reduction\\n3. **Analyze potential job displacement risks**: Consider ways to mitigate negative impacts on employment, such as:\\n\\t* Upskilling and reskilling programs for affected workers\\n\\t* Encouraging entrepreneurship and innovation in AI-related industries\\n\\t* Implementing policies to promote inclusive growth and social safety nets\\n4. **Develop robust privacy safeguards**:\\n\\t* Establish robust data protection regulations and standards\\n\\t* Implement anonymization techniques and de-identification methods\\n\\t* Ensure transparency about data collection, storage, and processing practices\\n5. **Implement transparent decision-making mechanisms**: Develop transparent algorithms and explainable AI (XAI) models to facilitate understanding of AI-driven decisions.\\n6. **Foster public engagement and participatory processes**:\\n\\t* Conduct regular public consultations and deliberations on AI-related issues\\n\\t* Encourage citizen participation in decision-making through platforms like participatory budgeting or crowdsourced feedback mechanisms\\n7. **Establish mechanisms for accountability and redress**: Develop processes for addressing AI-related complaints, investigations, and rectification of injustices.\\n8. **Develop standards and guidelines for AI development**:\\n\\t* Establish industry-wide standards for ethics and transparency in AI development\\n\\t* Promote the development of formal design principles and evaluation frameworks\\n9. **Monitor and evaluate the impact of AI on society**: Continuously assess the effectiveness of current regulations, policies, and technological interventions.\\n10. **Stay adaptable and evolve**: Be prepared to revise and refine your framework as new challenges arise, regulatory landscapes change, or societal attitudes shift.\\n\\nAdditionally, consider the following:\\n\\n1. Emphasize diversity, equity, and inclusion in AI development teams\\n2. Engage with global standards organizations, governments, and international organizations on AI-related issues\\n3. Support research into the social implications of AI to better understand these challenges\\n\\nBy taking a holistic approach that balances technical excellence with societal values and needs, you can create an ethical framework for autonomous AI systems that promotes sustainable development and responsible innovation.\"]\n"
+ ]
+ }
+ ],
+ "source": [
+ "# So where are we?\n",
+ "\n",
+ "print(competitors)\n",
+ "print(answers)\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 35,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Competitor: gpt-4o-mini\n",
+ "\n",
+ "Designing an ethical framework for autonomous AI systems that balances innovation with societal values requires a multi-faceted approach. Here are key steps to consider:\n",
+ "\n",
+ "### 1. **Stakeholder Engagement**\n",
+ " - **Identify Stakeholders**: Engage with a diverse group of stakeholders, including technologists, ethicists, policymakers, industry leaders, labor organizations, and the affected communities.\n",
+ " - **Collaborative Dialogue**: Facilitate discussions that incorporate various perspectives, particularly focusing on marginalized communities that may be disproportionately affected by AI systems.\n",
+ "\n",
+ "### 2. **Core Ethical Principles**\n",
+ " - **Fairness**: Ensure that AI systems do not perpetuate bias. Develop guidelines that require regular audits and transparency in AI algorithms to promote fairness in outcomes, especially in hiring or resource allocation.\n",
+ " - **Accountability**: Designate clear responsibilities for AI decision-making. Establish accountability mechanisms for both developers and organizations deploying AI systems.\n",
+ " - **Privacy Protection**: Implement robust privacy standards that prioritize user data protection and consent, minimizing surveillance and data collection to what is necessary for functionality.\n",
+ " - **Transparency**: Mandate explainability in AI systems to help users understand how decisions are made, fostering trust and enabling informed choices.\n",
+ " - **Beneficence and Nonmaleficence**: Systems should be designed to benefit society and avoid harm, with clear protocols for intervention when they are shown to cause detrimental effects.\n",
+ "\n",
+ "### 3. **Balancing Innovation and Responsibility**\n",
+ " - **Innovation-Friendly Regulation**: Establish adaptive regulatory frameworks that encourage innovation while ensuring ethical deployment. This can include sandbox environments for experimentation under regulatory oversight.\n",
+ " - **Support for Displaced Workers**: Create transition programs such as reskilling and upskilling initiatives to aid workers in moving towards new roles created by AI. Collaborate with industry to identify future workforce needs.\n",
+ " - **Public Benefit Considerations**: Encourage the development of AI technologies that prioritize public good, such as applications in healthcare, education, and environmental sustainability.\n",
+ "\n",
+ "### 4. **Monitoring and Evaluation**\n",
+ " - **Continuous Assessment**: Develop metrics to continually assess the impact of AI systems on job displacement and privacy. This will include feedback loops for early identification of negative outcomes that need addressing.\n",
+ " - **Adaptive Learning Processes**: Design the framework with mechanisms to adapt based on emerging challenges and opportunities in the AI landscape, ensuring that it remains relevant and effective over time.\n",
+ "\n",
+ "### 5. **Education and Awareness**\n",
+ " - **Public Awareness Campaigns**: Promote understanding of AI technologies and their implications on society, empowering individuals to engage with the technology and contribute to ethical discussions.\n",
+ " - **Ethics Training for Developers**: Include ethics as a core component of technical training for AI developers, ensuring that they understand the societal implications of their work.\n",
+ "\n",
+ "### 6. **Global Considerations**\n",
+ " - **International Cooperation**: Collaborate with international bodies to harmonize ethical standards across borders, acknowledging that AI technologies and their impacts are often global in nature.\n",
+ " - **Cultural Sensitivity**: Recognize and respect cultural differences in ethical standards, adapting frameworks to be applicable in various sociocultural contexts.\n",
+ "\n",
+ "### Conclusion\n",
+ "Building an ethical framework for autonomous AI systems is a complex and ongoing challenge that requires active participation, flexible structures, and a commitment to prioritizing human values. By incorporating these elements, we can help ensure that innovation in AI contributes positively to society, aligning with ethical principles while mitigating risks related to job displacement and privacy.\n",
+ "Competitor: claude-3-7-sonnet-latest\n",
+ "\n",
+ "# Designing an Ethical Framework for Autonomous AI Systems\n",
+ "\n",
+ "I would approach this challenge through a multi-layered framework that balances innovation with societal wellbeing:\n",
+ "\n",
+ "## Foundational Principles\n",
+ "- **Human-centered design**: AI systems should augment human capabilities rather than simply replace them\n",
+ "- **Distributed benefits**: Economic gains from automation should benefit society broadly\n",
+ "- **Transparency**: Clear documentation of system capabilities and limitations\n",
+ "- **Accountability**: Clear lines of responsibility for AI decisions\n",
+ "\n",
+ "## For Job Displacement Concerns\n",
+ "- Implement gradual transition pathways with reskilling programs\n",
+ "- Establish metrics for measuring both economic efficiency and job quality\n",
+ "- Require impact assessments before deploying automation in sensitive sectors\n",
+ "- Explore shared prosperity mechanisms (profit-sharing, reduced work hours)\n",
+ "\n",
+ "## For Privacy Protection\n",
+ "- Design for data minimization and purpose limitation\n",
+ "- Create tiered consent models based on data sensitivity\n",
+ "- Enable meaningful user control over personal data\n",
+ "- Establish regular privacy audits by independent entities\n",
+ "\n",
+ "The most challenging aspect is balancing stakeholder interests. This requires inclusive governance with representation from industry, civil society, affected workers, and technical experts to continuously evaluate and evolve the framework as technologies and social needs change.\n",
+ "Competitor: gemini-2.0-flash\n",
+ "\n",
+ "Designing an ethical framework for autonomous AI systems is a complex undertaking that requires a multi-faceted approach. Here's a breakdown of how I would approach it, considering job displacement and privacy:\n",
+ "\n",
+ "**I. Foundational Principles and Values:**\n",
+ "\n",
+ "* **Human-Centered Design:** Prioritize human well-being, dignity, and agency in all aspects of AI development and deployment. AI should augment, not replace, human capabilities whenever possible.\n",
+ "* **Beneficence & Non-Maleficence:** AI systems should strive to do good and avoid causing harm, both intentional and unintentional. This requires thorough risk assessment and mitigation strategies.\n",
+ "* **Justice & Fairness:** AI systems should not perpetuate or exacerbate existing societal inequalities. Bias detection and mitigation are crucial, ensuring fair outcomes across demographic groups.\n",
+ "* **Transparency & Explainability:** AI systems should be understandable and their decision-making processes, where appropriate, should be explainable to relevant stakeholders. Black boxes erode trust and accountability.\n",
+ "* **Accountability & Responsibility:** Clear lines of responsibility must be established for AI systems, including developers, deployers, and operators. Mechanisms for redress and accountability must be in place when harm occurs.\n",
+ "* **Privacy & Data Security:** Data privacy should be a core design principle. Employ techniques like differential privacy, anonymization, and secure data storage to protect individual privacy.\n",
+ "* **Sustainability:** Consider the environmental impact of AI systems, including energy consumption and resource usage. Promote sustainable AI development practices.\n",
+ "\n",
+ "**II. Addressing Job Displacement:**\n",
+ "\n",
+ "1. **Anticipatory Planning & Transition Support:**\n",
+ " * **Identify at-risk sectors and roles:** Proactively analyze the potential impacts of AI on different industries and job categories.\n",
+ " * **Invest in education and retraining:** Provide accessible and affordable training programs to equip workers with the skills needed for emerging roles in the AI-driven economy. Focus on skills that complement AI, such as critical thinking, creativity, and emotional intelligence.\n",
+ " * **Explore alternative economic models:** Consider policies like universal basic income (UBI), guaranteed minimum income, or job guarantee programs to provide a safety net for those displaced by automation.\n",
+ " * **Promote lifelong learning:** Foster a culture of continuous learning to enable workers to adapt to evolving job requirements.\n",
+ "\n",
+ "2. **Human-AI Collaboration:**\n",
+ " * **Design AI for augmentation:** Prioritize AI systems that enhance human capabilities and enable workers to be more productive and efficient, rather than completely replacing them.\n",
+ " * **Focus on human oversight:** Maintain human oversight and control over critical AI decision-making processes, especially in areas with high stakes or ethical implications.\n",
+ " * **Promote skill development in AI-related fields:** Encourage education and training in areas like AI development, data science, and AI ethics.\n",
+ "\n",
+ "3. **Social Safety Nets & Economic Adjustments:**\n",
+ " * **Strengthen social security systems:** Ensure that social security systems are adequate to support an aging population and those displaced by automation.\n",
+ " * **Reform tax policies:** Consider tax policies that incentivize companies to invest in training and upskilling their workforce, rather than simply replacing them with AI.\n",
+ " * **Explore shorter workweeks:** As AI increases productivity, consider reducing the standard workweek to allow for greater work-life balance and job sharing.\n",
+ "\n",
+ "**III. Mitigating Privacy Concerns:**\n",
+ "\n",
+ "1. **Privacy by Design:**\n",
+ " * **Data minimization:** Collect only the data that is strictly necessary for the intended purpose of the AI system.\n",
+ " * **Data anonymization and pseudonymization:** Employ techniques to protect the identity of individuals whose data is being used.\n",
+ " * **Differential privacy:** Add noise to data to protect individual privacy while still allowing for accurate statistical analysis.\n",
+ " * **Data security:** Implement robust security measures to protect data from unauthorized access, use, or disclosure.\n",
+ "\n",
+ "2. **Transparency and Control:**\n",
+ " * **User consent and control:** Provide users with clear and understandable information about how their data is being collected, used, and shared. Give them control over their data and the ability to opt out of data collection.\n",
+ " * **Data auditability:** Implement mechanisms to track how data is being used and ensure compliance with privacy policies.\n",
+ " * **Explainable AI for privacy:** Develop techniques to explain how AI systems are using personal data and ensure that they are not making discriminatory or biased decisions.\n",
+ "\n",
+ "3. **Regulatory Frameworks and Oversight:**\n",
+ " * **Strong data protection laws:** Implement and enforce comprehensive data protection laws that protect individual privacy. GDPR is a good example, but needs adaptation for AI-specific challenges.\n",
+ " * **Independent regulatory bodies:** Establish independent regulatory bodies to oversee the development and deployment of AI systems and ensure compliance with ethical and legal standards.\n",
+ " * **AI impact assessments:** Require AI developers to conduct impact assessments to identify and mitigate potential privacy risks.\n",
+ "\n",
+ "**IV. Implementation and Governance:**\n",
+ "\n",
+ "* **Multi-Stakeholder Engagement:** Involve diverse perspectives in the development and implementation of ethical frameworks, including AI developers, ethicists, policymakers, civil society organizations, and the public.\n",
+ "* **Iterative Development:** The ethical framework should be a living document that is regularly reviewed and updated to reflect changes in technology and societal values.\n",
+ "* **Education and Training:** Provide training to AI developers, policymakers, and the public on ethical considerations related to AI.\n",
+ "* **International Cooperation:** Foster international collaboration to develop common ethical standards for AI.\n",
+ "* **Auditing and Monitoring:** Implement mechanisms to audit and monitor AI systems to ensure compliance with ethical principles and legal requirements.\n",
+ "\n",
+ "**V. Key Considerations for specific AI Applications:**\n",
+ "\n",
+ "* **Healthcare:** Focus on patient privacy, data security, and ensuring equitable access to AI-powered healthcare.\n",
+ "* **Finance:** Address potential biases in AI-driven credit scoring and loan applications. Ensure transparency in algorithmic trading.\n",
+ "* **Criminal Justice:** Focus on fairness, accuracy, and transparency in AI-powered predictive policing and risk assessment tools. Mitigate potential for discriminatory outcomes.\n",
+ "* **Autonomous Vehicles:** Prioritize safety, accountability in case of accidents, and addressing ethical dilemmas in accident scenarios.\n",
+ "\n",
+ "**Challenges and Trade-offs:**\n",
+ "\n",
+ "* **Balancing innovation and regulation:** Finding the right balance between fostering innovation and ensuring ethical and responsible AI development is a constant challenge.\n",
+ "* **Defining \"fairness\" and \"bias\":** Defining these concepts in a way that is both technically feasible and ethically sound is difficult.\n",
+ "* **Enforcing ethical standards:** Enforcing ethical standards for AI development and deployment can be challenging, especially in a rapidly evolving technological landscape.\n",
+ "* **Global harmonization:** Achieving global harmonization of ethical standards for AI is difficult due to differing cultural values and legal frameworks.\n",
+ "\n",
+ "By implementing these principles and strategies, we can create an ethical framework for autonomous AI systems that balances innovation with societal values, mitigating the risks of job displacement and privacy violations while maximizing the benefits of this transformative technology. It's an ongoing process of learning, adaptation, and collaboration.\n",
+ "\n",
+ "Competitor: llama-3.3-70b-versatile\n",
+ "\n",
+ "Designing an ethical framework for autonomous AI systems requires a multidisciplinary approach that balances innovation with societal values. Here's a comprehensive framework that addresses potential job displacement and privacy concerns:\n",
+ "\n",
+ "**Principles:**\n",
+ "\n",
+ "1. **Responsible Innovation**: Encourage innovation while considering the potential consequences of AI on society, including job displacement and privacy concerns.\n",
+ "2. **Human-centered Design**: Design AI systems that prioritize human well-being, dignity, and safety, while promoting transparency, explainability, and accountability.\n",
+ "3. **Transparency and Explainability**: Ensure that AI decision-making processes are transparent and explainable to stakeholders, including users, regulators, and the broader public.\n",
+ "4. **Fairness and Non-discrimination**: Develop AI systems that are fair, unbiased, and respectful of human rights, avoiding discrimination and promoting inclusivity.\n",
+ "5. **Privacy and Data Protection**: Implement robust data protection measures to safeguard individual privacy, ensuring that AI systems collect, process, and use data in a responsible and secure manner.\n",
+ "6. **Accountability and Liability**: Establish clear lines of accountability and liability for AI-related decisions and actions, including measures for addressing errors, biases, or harm caused by AI systems.\n",
+ "7. **Continuous Monitoring and Evaluation**: Regularly assess and evaluate AI systems to identify potential risks, biases, and areas for improvement, and implement corrective measures as needed.\n",
+ "\n",
+ "**Framework Components:**\n",
+ "\n",
+ "1. **Stakeholder Engagement**: Establish a multi-stakeholder dialogue involving industry leaders, policymakers, academia, civil society, and the public to ensure that AI development and deployment are aligned with societal values and concerns.\n",
+ "2. **Regulatory Frameworks**: Develop and implement regulatory frameworks that address AI-related issues, such as data protection, privacy, and accountability, while promoting innovation and competitiveness.\n",
+ "3. **AI Literacy and Education**: Promote AI literacy and education among the general public, policymakers, and industry professionals to ensure that AI is developed and used responsibly.\n",
+ "4. **Job Displacement Mitigation**: Implement strategies to mitigate job displacement, such as upskilling and reskilling programs, education and training initiatives, and social safety nets to support workers who may be displaced by automation.\n",
+ "5. **Privacy and Data Protection Guidelines**: Establish guidelines for AI system design and development that prioritize data protection, privacy, and security, including measures for data anonymization, encryption, and access control.\n",
+ "6. **AI System Testing and Validation**: Develop and implement rigorous testing and validation protocols to ensure that AI systems are reliable, accurate, and unbiased, and that they prioritize human safety and well-being.\n",
+ "7. **Incident Response and Management**: Establish incident response and management plans to address AI-related errors, biases, or harm, and provide remedies and compensation to affected individuals or communities.\n",
+ "\n",
+ "**Implementation Roadmap:**\n",
+ "\n",
+ "1. **Short-term (0-2 years)**: Establish stakeholder engagement, develop regulatory frameworks, and promote AI literacy and education.\n",
+ "2. **Medium-term (2-5 years)**: Implement job displacement mitigation strategies, develop and implement privacy and data protection guidelines, and establish AI system testing and validation protocols.\n",
+ "3. **Long-term (5-10 years)**: Continuously monitor and evaluate AI systems, refine the ethical framework, and address emerging challenges and concerns.\n",
+ "\n",
+ "**Key Challenges and Opportunities:**\n",
+ "\n",
+ "1. **Addressing Job Displacement**: Developing effective strategies to mitigate job displacement and ensure that workers have the skills and support needed to adapt to an AI-driven economy.\n",
+ "2. **Balancing Innovation and Regulation**: Finding the right balance between promoting innovation and ensuring that AI systems are developed and used responsibly.\n",
+ "3. **Ensuring Transparency and Explainability**: Developing methods to explain AI decision-making processes and ensure that AI systems are transparent and accountable.\n",
+ "4. **Addressing Bias and Discrimination**: Developing AI systems that are fair, unbiased, and respectful of human rights, and promoting inclusivity and diversity in AI development and deployment.\n",
+ "\n",
+ "By following this framework, we can develop autonomous AI systems that balance innovation with societal values, prioritize human well-being and dignity, and address potential job displacement and privacy concerns.\n",
+ "Competitor: llama3.2\n",
+ "\n",
+ "Designing an ethical framework for autonomous AI systems requires a multi-faceted approach that considers both technical and societal aspects. Here's a step-by-step guide to help balance innovation with societal values, focusing on potential job displacement and privacy concerns:\n",
+ "\n",
+ "1. **Establish a multidisciplinary team**: Gather experts in AI development, ethics, sociology, psychology, law, and relevant fields. This diverse team will provide a comprehensive understanding of both technical capabilities and social implications.\n",
+ "2. **Define key principles and objectives**: Identify core values and goals for the AI system, such as:\n",
+ "\t* Respect for human rights and dignity\n",
+ "\t* Transparency and accountability\n",
+ "\t* Fairness and non-discrimination\n",
+ "\t* Privacy protection\n",
+ "\t* Safety and security\n",
+ "\t* Socio-economic benefits and impact reduction\n",
+ "3. **Analyze potential job displacement risks**: Consider ways to mitigate negative impacts on employment, such as:\n",
+ "\t* Upskilling and reskilling programs for affected workers\n",
+ "\t* Encouraging entrepreneurship and innovation in AI-related industries\n",
+ "\t* Implementing policies to promote inclusive growth and social safety nets\n",
+ "4. **Develop robust privacy safeguards**:\n",
+ "\t* Establish robust data protection regulations and standards\n",
+ "\t* Implement anonymization techniques and de-identification methods\n",
+ "\t* Ensure transparency about data collection, storage, and processing practices\n",
+ "5. **Implement transparent decision-making mechanisms**: Develop transparent algorithms and explainable AI (XAI) models to facilitate understanding of AI-driven decisions.\n",
+ "6. **Foster public engagement and participatory processes**:\n",
+ "\t* Conduct regular public consultations and deliberations on AI-related issues\n",
+ "\t* Encourage citizen participation in decision-making through platforms like participatory budgeting or crowdsourced feedback mechanisms\n",
+ "7. **Establish mechanisms for accountability and redress**: Develop processes for addressing AI-related complaints, investigations, and rectification of injustices.\n",
+ "8. **Develop standards and guidelines for AI development**:\n",
+ "\t* Establish industry-wide standards for ethics and transparency in AI development\n",
+ "\t* Promote the development of formal design principles and evaluation frameworks\n",
+ "9. **Monitor and evaluate the impact of AI on society**: Continuously assess the effectiveness of current regulations, policies, and technological interventions.\n",
+ "10. **Stay adaptable and evolve**: Be prepared to revise and refine your framework as new challenges arise, regulatory landscapes change, or societal attitudes shift.\n",
+ "\n",
+ "Additionally, consider the following:\n",
+ "\n",
+ "1. Emphasize diversity, equity, and inclusion in AI development teams\n",
+ "2. Engage with global standards organizations, governments, and international organizations on AI-related issues\n",
+ "3. Support research into the social implications of AI to better understand these challenges\n",
+ "\n",
+ "By taking a holistic approach that balances technical excellence with societal values and needs, you can create an ethical framework for autonomous AI systems that promotes sustainable development and responsible innovation.\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": 36,
+ "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": 37,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "# Response from competitor 1\n",
+ "\n",
+ "Designing an ethical framework for autonomous AI systems that balances innovation with societal values requires a multi-faceted approach. Here are key steps to consider:\n",
+ "\n",
+ "### 1. **Stakeholder Engagement**\n",
+ " - **Identify Stakeholders**: Engage with a diverse group of stakeholders, including technologists, ethicists, policymakers, industry leaders, labor organizations, and the affected communities.\n",
+ " - **Collaborative Dialogue**: Facilitate discussions that incorporate various perspectives, particularly focusing on marginalized communities that may be disproportionately affected by AI systems.\n",
+ "\n",
+ "### 2. **Core Ethical Principles**\n",
+ " - **Fairness**: Ensure that AI systems do not perpetuate bias. Develop guidelines that require regular audits and transparency in AI algorithms to promote fairness in outcomes, especially in hiring or resource allocation.\n",
+ " - **Accountability**: Designate clear responsibilities for AI decision-making. Establish accountability mechanisms for both developers and organizations deploying AI systems.\n",
+ " - **Privacy Protection**: Implement robust privacy standards that prioritize user data protection and consent, minimizing surveillance and data collection to what is necessary for functionality.\n",
+ " - **Transparency**: Mandate explainability in AI systems to help users understand how decisions are made, fostering trust and enabling informed choices.\n",
+ " - **Beneficence and Nonmaleficence**: Systems should be designed to benefit society and avoid harm, with clear protocols for intervention when they are shown to cause detrimental effects.\n",
+ "\n",
+ "### 3. **Balancing Innovation and Responsibility**\n",
+ " - **Innovation-Friendly Regulation**: Establish adaptive regulatory frameworks that encourage innovation while ensuring ethical deployment. This can include sandbox environments for experimentation under regulatory oversight.\n",
+ " - **Support for Displaced Workers**: Create transition programs such as reskilling and upskilling initiatives to aid workers in moving towards new roles created by AI. Collaborate with industry to identify future workforce needs.\n",
+ " - **Public Benefit Considerations**: Encourage the development of AI technologies that prioritize public good, such as applications in healthcare, education, and environmental sustainability.\n",
+ "\n",
+ "### 4. **Monitoring and Evaluation**\n",
+ " - **Continuous Assessment**: Develop metrics to continually assess the impact of AI systems on job displacement and privacy. This will include feedback loops for early identification of negative outcomes that need addressing.\n",
+ " - **Adaptive Learning Processes**: Design the framework with mechanisms to adapt based on emerging challenges and opportunities in the AI landscape, ensuring that it remains relevant and effective over time.\n",
+ "\n",
+ "### 5. **Education and Awareness**\n",
+ " - **Public Awareness Campaigns**: Promote understanding of AI technologies and their implications on society, empowering individuals to engage with the technology and contribute to ethical discussions.\n",
+ " - **Ethics Training for Developers**: Include ethics as a core component of technical training for AI developers, ensuring that they understand the societal implications of their work.\n",
+ "\n",
+ "### 6. **Global Considerations**\n",
+ " - **International Cooperation**: Collaborate with international bodies to harmonize ethical standards across borders, acknowledging that AI technologies and their impacts are often global in nature.\n",
+ " - **Cultural Sensitivity**: Recognize and respect cultural differences in ethical standards, adapting frameworks to be applicable in various sociocultural contexts.\n",
+ "\n",
+ "### Conclusion\n",
+ "Building an ethical framework for autonomous AI systems is a complex and ongoing challenge that requires active participation, flexible structures, and a commitment to prioritizing human values. By incorporating these elements, we can help ensure that innovation in AI contributes positively to society, aligning with ethical principles while mitigating risks related to job displacement and privacy.\n",
+ "\n",
+ "# Response from competitor 2\n",
+ "\n",
+ "# Designing an Ethical Framework for Autonomous AI Systems\n",
+ "\n",
+ "I would approach this challenge through a multi-layered framework that balances innovation with societal wellbeing:\n",
+ "\n",
+ "## Foundational Principles\n",
+ "- **Human-centered design**: AI systems should augment human capabilities rather than simply replace them\n",
+ "- **Distributed benefits**: Economic gains from automation should benefit society broadly\n",
+ "- **Transparency**: Clear documentation of system capabilities and limitations\n",
+ "- **Accountability**: Clear lines of responsibility for AI decisions\n",
+ "\n",
+ "## For Job Displacement Concerns\n",
+ "- Implement gradual transition pathways with reskilling programs\n",
+ "- Establish metrics for measuring both economic efficiency and job quality\n",
+ "- Require impact assessments before deploying automation in sensitive sectors\n",
+ "- Explore shared prosperity mechanisms (profit-sharing, reduced work hours)\n",
+ "\n",
+ "## For Privacy Protection\n",
+ "- Design for data minimization and purpose limitation\n",
+ "- Create tiered consent models based on data sensitivity\n",
+ "- Enable meaningful user control over personal data\n",
+ "- Establish regular privacy audits by independent entities\n",
+ "\n",
+ "The most challenging aspect is balancing stakeholder interests. This requires inclusive governance with representation from industry, civil society, affected workers, and technical experts to continuously evaluate and evolve the framework as technologies and social needs change.\n",
+ "\n",
+ "# Response from competitor 3\n",
+ "\n",
+ "Designing an ethical framework for autonomous AI systems is a complex undertaking that requires a multi-faceted approach. Here's a breakdown of how I would approach it, considering job displacement and privacy:\n",
+ "\n",
+ "**I. Foundational Principles and Values:**\n",
+ "\n",
+ "* **Human-Centered Design:** Prioritize human well-being, dignity, and agency in all aspects of AI development and deployment. AI should augment, not replace, human capabilities whenever possible.\n",
+ "* **Beneficence & Non-Maleficence:** AI systems should strive to do good and avoid causing harm, both intentional and unintentional. This requires thorough risk assessment and mitigation strategies.\n",
+ "* **Justice & Fairness:** AI systems should not perpetuate or exacerbate existing societal inequalities. Bias detection and mitigation are crucial, ensuring fair outcomes across demographic groups.\n",
+ "* **Transparency & Explainability:** AI systems should be understandable and their decision-making processes, where appropriate, should be explainable to relevant stakeholders. Black boxes erode trust and accountability.\n",
+ "* **Accountability & Responsibility:** Clear lines of responsibility must be established for AI systems, including developers, deployers, and operators. Mechanisms for redress and accountability must be in place when harm occurs.\n",
+ "* **Privacy & Data Security:** Data privacy should be a core design principle. Employ techniques like differential privacy, anonymization, and secure data storage to protect individual privacy.\n",
+ "* **Sustainability:** Consider the environmental impact of AI systems, including energy consumption and resource usage. Promote sustainable AI development practices.\n",
+ "\n",
+ "**II. Addressing Job Displacement:**\n",
+ "\n",
+ "1. **Anticipatory Planning & Transition Support:**\n",
+ " * **Identify at-risk sectors and roles:** Proactively analyze the potential impacts of AI on different industries and job categories.\n",
+ " * **Invest in education and retraining:** Provide accessible and affordable training programs to equip workers with the skills needed for emerging roles in the AI-driven economy. Focus on skills that complement AI, such as critical thinking, creativity, and emotional intelligence.\n",
+ " * **Explore alternative economic models:** Consider policies like universal basic income (UBI), guaranteed minimum income, or job guarantee programs to provide a safety net for those displaced by automation.\n",
+ " * **Promote lifelong learning:** Foster a culture of continuous learning to enable workers to adapt to evolving job requirements.\n",
+ "\n",
+ "2. **Human-AI Collaboration:**\n",
+ " * **Design AI for augmentation:** Prioritize AI systems that enhance human capabilities and enable workers to be more productive and efficient, rather than completely replacing them.\n",
+ " * **Focus on human oversight:** Maintain human oversight and control over critical AI decision-making processes, especially in areas with high stakes or ethical implications.\n",
+ " * **Promote skill development in AI-related fields:** Encourage education and training in areas like AI development, data science, and AI ethics.\n",
+ "\n",
+ "3. **Social Safety Nets & Economic Adjustments:**\n",
+ " * **Strengthen social security systems:** Ensure that social security systems are adequate to support an aging population and those displaced by automation.\n",
+ " * **Reform tax policies:** Consider tax policies that incentivize companies to invest in training and upskilling their workforce, rather than simply replacing them with AI.\n",
+ " * **Explore shorter workweeks:** As AI increases productivity, consider reducing the standard workweek to allow for greater work-life balance and job sharing.\n",
+ "\n",
+ "**III. Mitigating Privacy Concerns:**\n",
+ "\n",
+ "1. **Privacy by Design:**\n",
+ " * **Data minimization:** Collect only the data that is strictly necessary for the intended purpose of the AI system.\n",
+ " * **Data anonymization and pseudonymization:** Employ techniques to protect the identity of individuals whose data is being used.\n",
+ " * **Differential privacy:** Add noise to data to protect individual privacy while still allowing for accurate statistical analysis.\n",
+ " * **Data security:** Implement robust security measures to protect data from unauthorized access, use, or disclosure.\n",
+ "\n",
+ "2. **Transparency and Control:**\n",
+ " * **User consent and control:** Provide users with clear and understandable information about how their data is being collected, used, and shared. Give them control over their data and the ability to opt out of data collection.\n",
+ " * **Data auditability:** Implement mechanisms to track how data is being used and ensure compliance with privacy policies.\n",
+ " * **Explainable AI for privacy:** Develop techniques to explain how AI systems are using personal data and ensure that they are not making discriminatory or biased decisions.\n",
+ "\n",
+ "3. **Regulatory Frameworks and Oversight:**\n",
+ " * **Strong data protection laws:** Implement and enforce comprehensive data protection laws that protect individual privacy. GDPR is a good example, but needs adaptation for AI-specific challenges.\n",
+ " * **Independent regulatory bodies:** Establish independent regulatory bodies to oversee the development and deployment of AI systems and ensure compliance with ethical and legal standards.\n",
+ " * **AI impact assessments:** Require AI developers to conduct impact assessments to identify and mitigate potential privacy risks.\n",
+ "\n",
+ "**IV. Implementation and Governance:**\n",
+ "\n",
+ "* **Multi-Stakeholder Engagement:** Involve diverse perspectives in the development and implementation of ethical frameworks, including AI developers, ethicists, policymakers, civil society organizations, and the public.\n",
+ "* **Iterative Development:** The ethical framework should be a living document that is regularly reviewed and updated to reflect changes in technology and societal values.\n",
+ "* **Education and Training:** Provide training to AI developers, policymakers, and the public on ethical considerations related to AI.\n",
+ "* **International Cooperation:** Foster international collaboration to develop common ethical standards for AI.\n",
+ "* **Auditing and Monitoring:** Implement mechanisms to audit and monitor AI systems to ensure compliance with ethical principles and legal requirements.\n",
+ "\n",
+ "**V. Key Considerations for specific AI Applications:**\n",
+ "\n",
+ "* **Healthcare:** Focus on patient privacy, data security, and ensuring equitable access to AI-powered healthcare.\n",
+ "* **Finance:** Address potential biases in AI-driven credit scoring and loan applications. Ensure transparency in algorithmic trading.\n",
+ "* **Criminal Justice:** Focus on fairness, accuracy, and transparency in AI-powered predictive policing and risk assessment tools. Mitigate potential for discriminatory outcomes.\n",
+ "* **Autonomous Vehicles:** Prioritize safety, accountability in case of accidents, and addressing ethical dilemmas in accident scenarios.\n",
+ "\n",
+ "**Challenges and Trade-offs:**\n",
+ "\n",
+ "* **Balancing innovation and regulation:** Finding the right balance between fostering innovation and ensuring ethical and responsible AI development is a constant challenge.\n",
+ "* **Defining \"fairness\" and \"bias\":** Defining these concepts in a way that is both technically feasible and ethically sound is difficult.\n",
+ "* **Enforcing ethical standards:** Enforcing ethical standards for AI development and deployment can be challenging, especially in a rapidly evolving technological landscape.\n",
+ "* **Global harmonization:** Achieving global harmonization of ethical standards for AI is difficult due to differing cultural values and legal frameworks.\n",
+ "\n",
+ "By implementing these principles and strategies, we can create an ethical framework for autonomous AI systems that balances innovation with societal values, mitigating the risks of job displacement and privacy violations while maximizing the benefits of this transformative technology. It's an ongoing process of learning, adaptation, and collaboration.\n",
+ "\n",
+ "\n",
+ "# Response from competitor 4\n",
+ "\n",
+ "Designing an ethical framework for autonomous AI systems requires a multidisciplinary approach that balances innovation with societal values. Here's a comprehensive framework that addresses potential job displacement and privacy concerns:\n",
+ "\n",
+ "**Principles:**\n",
+ "\n",
+ "1. **Responsible Innovation**: Encourage innovation while considering the potential consequences of AI on society, including job displacement and privacy concerns.\n",
+ "2. **Human-centered Design**: Design AI systems that prioritize human well-being, dignity, and safety, while promoting transparency, explainability, and accountability.\n",
+ "3. **Transparency and Explainability**: Ensure that AI decision-making processes are transparent and explainable to stakeholders, including users, regulators, and the broader public.\n",
+ "4. **Fairness and Non-discrimination**: Develop AI systems that are fair, unbiased, and respectful of human rights, avoiding discrimination and promoting inclusivity.\n",
+ "5. **Privacy and Data Protection**: Implement robust data protection measures to safeguard individual privacy, ensuring that AI systems collect, process, and use data in a responsible and secure manner.\n",
+ "6. **Accountability and Liability**: Establish clear lines of accountability and liability for AI-related decisions and actions, including measures for addressing errors, biases, or harm caused by AI systems.\n",
+ "7. **Continuous Monitoring and Evaluation**: Regularly assess and evaluate AI systems to identify potential risks, biases, and areas for improvement, and implement corrective measures as needed.\n",
+ "\n",
+ "**Framework Components:**\n",
+ "\n",
+ "1. **Stakeholder Engagement**: Establish a multi-stakeholder dialogue involving industry leaders, policymakers, academia, civil society, and the public to ensure that AI development and deployment are aligned with societal values and concerns.\n",
+ "2. **Regulatory Frameworks**: Develop and implement regulatory frameworks that address AI-related issues, such as data protection, privacy, and accountability, while promoting innovation and competitiveness.\n",
+ "3. **AI Literacy and Education**: Promote AI literacy and education among the general public, policymakers, and industry professionals to ensure that AI is developed and used responsibly.\n",
+ "4. **Job Displacement Mitigation**: Implement strategies to mitigate job displacement, such as upskilling and reskilling programs, education and training initiatives, and social safety nets to support workers who may be displaced by automation.\n",
+ "5. **Privacy and Data Protection Guidelines**: Establish guidelines for AI system design and development that prioritize data protection, privacy, and security, including measures for data anonymization, encryption, and access control.\n",
+ "6. **AI System Testing and Validation**: Develop and implement rigorous testing and validation protocols to ensure that AI systems are reliable, accurate, and unbiased, and that they prioritize human safety and well-being.\n",
+ "7. **Incident Response and Management**: Establish incident response and management plans to address AI-related errors, biases, or harm, and provide remedies and compensation to affected individuals or communities.\n",
+ "\n",
+ "**Implementation Roadmap:**\n",
+ "\n",
+ "1. **Short-term (0-2 years)**: Establish stakeholder engagement, develop regulatory frameworks, and promote AI literacy and education.\n",
+ "2. **Medium-term (2-5 years)**: Implement job displacement mitigation strategies, develop and implement privacy and data protection guidelines, and establish AI system testing and validation protocols.\n",
+ "3. **Long-term (5-10 years)**: Continuously monitor and evaluate AI systems, refine the ethical framework, and address emerging challenges and concerns.\n",
+ "\n",
+ "**Key Challenges and Opportunities:**\n",
+ "\n",
+ "1. **Addressing Job Displacement**: Developing effective strategies to mitigate job displacement and ensure that workers have the skills and support needed to adapt to an AI-driven economy.\n",
+ "2. **Balancing Innovation and Regulation**: Finding the right balance between promoting innovation and ensuring that AI systems are developed and used responsibly.\n",
+ "3. **Ensuring Transparency and Explainability**: Developing methods to explain AI decision-making processes and ensure that AI systems are transparent and accountable.\n",
+ "4. **Addressing Bias and Discrimination**: Developing AI systems that are fair, unbiased, and respectful of human rights, and promoting inclusivity and diversity in AI development and deployment.\n",
+ "\n",
+ "By following this framework, we can develop autonomous AI systems that balance innovation with societal values, prioritize human well-being and dignity, and address potential job displacement and privacy concerns.\n",
+ "\n",
+ "# Response from competitor 5\n",
+ "\n",
+ "Designing an ethical framework for autonomous AI systems requires a multi-faceted approach that considers both technical and societal aspects. Here's a step-by-step guide to help balance innovation with societal values, focusing on potential job displacement and privacy concerns:\n",
+ "\n",
+ "1. **Establish a multidisciplinary team**: Gather experts in AI development, ethics, sociology, psychology, law, and relevant fields. This diverse team will provide a comprehensive understanding of both technical capabilities and social implications.\n",
+ "2. **Define key principles and objectives**: Identify core values and goals for the AI system, such as:\n",
+ "\t* Respect for human rights and dignity\n",
+ "\t* Transparency and accountability\n",
+ "\t* Fairness and non-discrimination\n",
+ "\t* Privacy protection\n",
+ "\t* Safety and security\n",
+ "\t* Socio-economic benefits and impact reduction\n",
+ "3. **Analyze potential job displacement risks**: Consider ways to mitigate negative impacts on employment, such as:\n",
+ "\t* Upskilling and reskilling programs for affected workers\n",
+ "\t* Encouraging entrepreneurship and innovation in AI-related industries\n",
+ "\t* Implementing policies to promote inclusive growth and social safety nets\n",
+ "4. **Develop robust privacy safeguards**:\n",
+ "\t* Establish robust data protection regulations and standards\n",
+ "\t* Implement anonymization techniques and de-identification methods\n",
+ "\t* Ensure transparency about data collection, storage, and processing practices\n",
+ "5. **Implement transparent decision-making mechanisms**: Develop transparent algorithms and explainable AI (XAI) models to facilitate understanding of AI-driven decisions.\n",
+ "6. **Foster public engagement and participatory processes**:\n",
+ "\t* Conduct regular public consultations and deliberations on AI-related issues\n",
+ "\t* Encourage citizen participation in decision-making through platforms like participatory budgeting or crowdsourced feedback mechanisms\n",
+ "7. **Establish mechanisms for accountability and redress**: Develop processes for addressing AI-related complaints, investigations, and rectification of injustices.\n",
+ "8. **Develop standards and guidelines for AI development**:\n",
+ "\t* Establish industry-wide standards for ethics and transparency in AI development\n",
+ "\t* Promote the development of formal design principles and evaluation frameworks\n",
+ "9. **Monitor and evaluate the impact of AI on society**: Continuously assess the effectiveness of current regulations, policies, and technological interventions.\n",
+ "10. **Stay adaptable and evolve**: Be prepared to revise and refine your framework as new challenges arise, regulatory landscapes change, or societal attitudes shift.\n",
+ "\n",
+ "Additionally, consider the following:\n",
+ "\n",
+ "1. Emphasize diversity, equity, and inclusion in AI development teams\n",
+ "2. Engage with global standards organizations, governments, and international organizations on AI-related issues\n",
+ "3. Support research into the social implications of AI to better understand these challenges\n",
+ "\n",
+ "By taking a holistic approach that balances technical excellence with societal values and needs, you can create an ethical framework for autonomous AI systems that promotes sustainable development and responsible innovation.\n",
+ "\n",
+ "\n"
+ ]
+ }
+ ],
+ "source": [
+ "print(together)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 38,
+ "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": 39,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "You are judging a competition between 5 competitors.\n",
+ "Each model has been given this question:\n",
+ "\n",
+ "How would you approach designing an ethical framework for autonomous AI systems that balances innovation with societal values, particularly in the context of potential job displacement and privacy concerns?\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 an ethical framework for autonomous AI systems that balances innovation with societal values requires a multi-faceted approach. Here are key steps to consider:\n",
+ "\n",
+ "### 1. **Stakeholder Engagement**\n",
+ " - **Identify Stakeholders**: Engage with a diverse group of stakeholders, including technologists, ethicists, policymakers, industry leaders, labor organizations, and the affected communities.\n",
+ " - **Collaborative Dialogue**: Facilitate discussions that incorporate various perspectives, particularly focusing on marginalized communities that may be disproportionately affected by AI systems.\n",
+ "\n",
+ "### 2. **Core Ethical Principles**\n",
+ " - **Fairness**: Ensure that AI systems do not perpetuate bias. Develop guidelines that require regular audits and transparency in AI algorithms to promote fairness in outcomes, especially in hiring or resource allocation.\n",
+ " - **Accountability**: Designate clear responsibilities for AI decision-making. Establish accountability mechanisms for both developers and organizations deploying AI systems.\n",
+ " - **Privacy Protection**: Implement robust privacy standards that prioritize user data protection and consent, minimizing surveillance and data collection to what is necessary for functionality.\n",
+ " - **Transparency**: Mandate explainability in AI systems to help users understand how decisions are made, fostering trust and enabling informed choices.\n",
+ " - **Beneficence and Nonmaleficence**: Systems should be designed to benefit society and avoid harm, with clear protocols for intervention when they are shown to cause detrimental effects.\n",
+ "\n",
+ "### 3. **Balancing Innovation and Responsibility**\n",
+ " - **Innovation-Friendly Regulation**: Establish adaptive regulatory frameworks that encourage innovation while ensuring ethical deployment. This can include sandbox environments for experimentation under regulatory oversight.\n",
+ " - **Support for Displaced Workers**: Create transition programs such as reskilling and upskilling initiatives to aid workers in moving towards new roles created by AI. Collaborate with industry to identify future workforce needs.\n",
+ " - **Public Benefit Considerations**: Encourage the development of AI technologies that prioritize public good, such as applications in healthcare, education, and environmental sustainability.\n",
+ "\n",
+ "### 4. **Monitoring and Evaluation**\n",
+ " - **Continuous Assessment**: Develop metrics to continually assess the impact of AI systems on job displacement and privacy. This will include feedback loops for early identification of negative outcomes that need addressing.\n",
+ " - **Adaptive Learning Processes**: Design the framework with mechanisms to adapt based on emerging challenges and opportunities in the AI landscape, ensuring that it remains relevant and effective over time.\n",
+ "\n",
+ "### 5. **Education and Awareness**\n",
+ " - **Public Awareness Campaigns**: Promote understanding of AI technologies and their implications on society, empowering individuals to engage with the technology and contribute to ethical discussions.\n",
+ " - **Ethics Training for Developers**: Include ethics as a core component of technical training for AI developers, ensuring that they understand the societal implications of their work.\n",
+ "\n",
+ "### 6. **Global Considerations**\n",
+ " - **International Cooperation**: Collaborate with international bodies to harmonize ethical standards across borders, acknowledging that AI technologies and their impacts are often global in nature.\n",
+ " - **Cultural Sensitivity**: Recognize and respect cultural differences in ethical standards, adapting frameworks to be applicable in various sociocultural contexts.\n",
+ "\n",
+ "### Conclusion\n",
+ "Building an ethical framework for autonomous AI systems is a complex and ongoing challenge that requires active participation, flexible structures, and a commitment to prioritizing human values. By incorporating these elements, we can help ensure that innovation in AI contributes positively to society, aligning with ethical principles while mitigating risks related to job displacement and privacy.\n",
+ "\n",
+ "# Response from competitor 2\n",
+ "\n",
+ "# Designing an Ethical Framework for Autonomous AI Systems\n",
+ "\n",
+ "I would approach this challenge through a multi-layered framework that balances innovation with societal wellbeing:\n",
+ "\n",
+ "## Foundational Principles\n",
+ "- **Human-centered design**: AI systems should augment human capabilities rather than simply replace them\n",
+ "- **Distributed benefits**: Economic gains from automation should benefit society broadly\n",
+ "- **Transparency**: Clear documentation of system capabilities and limitations\n",
+ "- **Accountability**: Clear lines of responsibility for AI decisions\n",
+ "\n",
+ "## For Job Displacement Concerns\n",
+ "- Implement gradual transition pathways with reskilling programs\n",
+ "- Establish metrics for measuring both economic efficiency and job quality\n",
+ "- Require impact assessments before deploying automation in sensitive sectors\n",
+ "- Explore shared prosperity mechanisms (profit-sharing, reduced work hours)\n",
+ "\n",
+ "## For Privacy Protection\n",
+ "- Design for data minimization and purpose limitation\n",
+ "- Create tiered consent models based on data sensitivity\n",
+ "- Enable meaningful user control over personal data\n",
+ "- Establish regular privacy audits by independent entities\n",
+ "\n",
+ "The most challenging aspect is balancing stakeholder interests. This requires inclusive governance with representation from industry, civil society, affected workers, and technical experts to continuously evaluate and evolve the framework as technologies and social needs change.\n",
+ "\n",
+ "# Response from competitor 3\n",
+ "\n",
+ "Designing an ethical framework for autonomous AI systems is a complex undertaking that requires a multi-faceted approach. Here's a breakdown of how I would approach it, considering job displacement and privacy:\n",
+ "\n",
+ "**I. Foundational Principles and Values:**\n",
+ "\n",
+ "* **Human-Centered Design:** Prioritize human well-being, dignity, and agency in all aspects of AI development and deployment. AI should augment, not replace, human capabilities whenever possible.\n",
+ "* **Beneficence & Non-Maleficence:** AI systems should strive to do good and avoid causing harm, both intentional and unintentional. This requires thorough risk assessment and mitigation strategies.\n",
+ "* **Justice & Fairness:** AI systems should not perpetuate or exacerbate existing societal inequalities. Bias detection and mitigation are crucial, ensuring fair outcomes across demographic groups.\n",
+ "* **Transparency & Explainability:** AI systems should be understandable and their decision-making processes, where appropriate, should be explainable to relevant stakeholders. Black boxes erode trust and accountability.\n",
+ "* **Accountability & Responsibility:** Clear lines of responsibility must be established for AI systems, including developers, deployers, and operators. Mechanisms for redress and accountability must be in place when harm occurs.\n",
+ "* **Privacy & Data Security:** Data privacy should be a core design principle. Employ techniques like differential privacy, anonymization, and secure data storage to protect individual privacy.\n",
+ "* **Sustainability:** Consider the environmental impact of AI systems, including energy consumption and resource usage. Promote sustainable AI development practices.\n",
+ "\n",
+ "**II. Addressing Job Displacement:**\n",
+ "\n",
+ "1. **Anticipatory Planning & Transition Support:**\n",
+ " * **Identify at-risk sectors and roles:** Proactively analyze the potential impacts of AI on different industries and job categories.\n",
+ " * **Invest in education and retraining:** Provide accessible and affordable training programs to equip workers with the skills needed for emerging roles in the AI-driven economy. Focus on skills that complement AI, such as critical thinking, creativity, and emotional intelligence.\n",
+ " * **Explore alternative economic models:** Consider policies like universal basic income (UBI), guaranteed minimum income, or job guarantee programs to provide a safety net for those displaced by automation.\n",
+ " * **Promote lifelong learning:** Foster a culture of continuous learning to enable workers to adapt to evolving job requirements.\n",
+ "\n",
+ "2. **Human-AI Collaboration:**\n",
+ " * **Design AI for augmentation:** Prioritize AI systems that enhance human capabilities and enable workers to be more productive and efficient, rather than completely replacing them.\n",
+ " * **Focus on human oversight:** Maintain human oversight and control over critical AI decision-making processes, especially in areas with high stakes or ethical implications.\n",
+ " * **Promote skill development in AI-related fields:** Encourage education and training in areas like AI development, data science, and AI ethics.\n",
+ "\n",
+ "3. **Social Safety Nets & Economic Adjustments:**\n",
+ " * **Strengthen social security systems:** Ensure that social security systems are adequate to support an aging population and those displaced by automation.\n",
+ " * **Reform tax policies:** Consider tax policies that incentivize companies to invest in training and upskilling their workforce, rather than simply replacing them with AI.\n",
+ " * **Explore shorter workweeks:** As AI increases productivity, consider reducing the standard workweek to allow for greater work-life balance and job sharing.\n",
+ "\n",
+ "**III. Mitigating Privacy Concerns:**\n",
+ "\n",
+ "1. **Privacy by Design:**\n",
+ " * **Data minimization:** Collect only the data that is strictly necessary for the intended purpose of the AI system.\n",
+ " * **Data anonymization and pseudonymization:** Employ techniques to protect the identity of individuals whose data is being used.\n",
+ " * **Differential privacy:** Add noise to data to protect individual privacy while still allowing for accurate statistical analysis.\n",
+ " * **Data security:** Implement robust security measures to protect data from unauthorized access, use, or disclosure.\n",
+ "\n",
+ "2. **Transparency and Control:**\n",
+ " * **User consent and control:** Provide users with clear and understandable information about how their data is being collected, used, and shared. Give them control over their data and the ability to opt out of data collection.\n",
+ " * **Data auditability:** Implement mechanisms to track how data is being used and ensure compliance with privacy policies.\n",
+ " * **Explainable AI for privacy:** Develop techniques to explain how AI systems are using personal data and ensure that they are not making discriminatory or biased decisions.\n",
+ "\n",
+ "3. **Regulatory Frameworks and Oversight:**\n",
+ " * **Strong data protection laws:** Implement and enforce comprehensive data protection laws that protect individual privacy. GDPR is a good example, but needs adaptation for AI-specific challenges.\n",
+ " * **Independent regulatory bodies:** Establish independent regulatory bodies to oversee the development and deployment of AI systems and ensure compliance with ethical and legal standards.\n",
+ " * **AI impact assessments:** Require AI developers to conduct impact assessments to identify and mitigate potential privacy risks.\n",
+ "\n",
+ "**IV. Implementation and Governance:**\n",
+ "\n",
+ "* **Multi-Stakeholder Engagement:** Involve diverse perspectives in the development and implementation of ethical frameworks, including AI developers, ethicists, policymakers, civil society organizations, and the public.\n",
+ "* **Iterative Development:** The ethical framework should be a living document that is regularly reviewed and updated to reflect changes in technology and societal values.\n",
+ "* **Education and Training:** Provide training to AI developers, policymakers, and the public on ethical considerations related to AI.\n",
+ "* **International Cooperation:** Foster international collaboration to develop common ethical standards for AI.\n",
+ "* **Auditing and Monitoring:** Implement mechanisms to audit and monitor AI systems to ensure compliance with ethical principles and legal requirements.\n",
+ "\n",
+ "**V. Key Considerations for specific AI Applications:**\n",
+ "\n",
+ "* **Healthcare:** Focus on patient privacy, data security, and ensuring equitable access to AI-powered healthcare.\n",
+ "* **Finance:** Address potential biases in AI-driven credit scoring and loan applications. Ensure transparency in algorithmic trading.\n",
+ "* **Criminal Justice:** Focus on fairness, accuracy, and transparency in AI-powered predictive policing and risk assessment tools. Mitigate potential for discriminatory outcomes.\n",
+ "* **Autonomous Vehicles:** Prioritize safety, accountability in case of accidents, and addressing ethical dilemmas in accident scenarios.\n",
+ "\n",
+ "**Challenges and Trade-offs:**\n",
+ "\n",
+ "* **Balancing innovation and regulation:** Finding the right balance between fostering innovation and ensuring ethical and responsible AI development is a constant challenge.\n",
+ "* **Defining \"fairness\" and \"bias\":** Defining these concepts in a way that is both technically feasible and ethically sound is difficult.\n",
+ "* **Enforcing ethical standards:** Enforcing ethical standards for AI development and deployment can be challenging, especially in a rapidly evolving technological landscape.\n",
+ "* **Global harmonization:** Achieving global harmonization of ethical standards for AI is difficult due to differing cultural values and legal frameworks.\n",
+ "\n",
+ "By implementing these principles and strategies, we can create an ethical framework for autonomous AI systems that balances innovation with societal values, mitigating the risks of job displacement and privacy violations while maximizing the benefits of this transformative technology. It's an ongoing process of learning, adaptation, and collaboration.\n",
+ "\n",
+ "\n",
+ "# Response from competitor 4\n",
+ "\n",
+ "Designing an ethical framework for autonomous AI systems requires a multidisciplinary approach that balances innovation with societal values. Here's a comprehensive framework that addresses potential job displacement and privacy concerns:\n",
+ "\n",
+ "**Principles:**\n",
+ "\n",
+ "1. **Responsible Innovation**: Encourage innovation while considering the potential consequences of AI on society, including job displacement and privacy concerns.\n",
+ "2. **Human-centered Design**: Design AI systems that prioritize human well-being, dignity, and safety, while promoting transparency, explainability, and accountability.\n",
+ "3. **Transparency and Explainability**: Ensure that AI decision-making processes are transparent and explainable to stakeholders, including users, regulators, and the broader public.\n",
+ "4. **Fairness and Non-discrimination**: Develop AI systems that are fair, unbiased, and respectful of human rights, avoiding discrimination and promoting inclusivity.\n",
+ "5. **Privacy and Data Protection**: Implement robust data protection measures to safeguard individual privacy, ensuring that AI systems collect, process, and use data in a responsible and secure manner.\n",
+ "6. **Accountability and Liability**: Establish clear lines of accountability and liability for AI-related decisions and actions, including measures for addressing errors, biases, or harm caused by AI systems.\n",
+ "7. **Continuous Monitoring and Evaluation**: Regularly assess and evaluate AI systems to identify potential risks, biases, and areas for improvement, and implement corrective measures as needed.\n",
+ "\n",
+ "**Framework Components:**\n",
+ "\n",
+ "1. **Stakeholder Engagement**: Establish a multi-stakeholder dialogue involving industry leaders, policymakers, academia, civil society, and the public to ensure that AI development and deployment are aligned with societal values and concerns.\n",
+ "2. **Regulatory Frameworks**: Develop and implement regulatory frameworks that address AI-related issues, such as data protection, privacy, and accountability, while promoting innovation and competitiveness.\n",
+ "3. **AI Literacy and Education**: Promote AI literacy and education among the general public, policymakers, and industry professionals to ensure that AI is developed and used responsibly.\n",
+ "4. **Job Displacement Mitigation**: Implement strategies to mitigate job displacement, such as upskilling and reskilling programs, education and training initiatives, and social safety nets to support workers who may be displaced by automation.\n",
+ "5. **Privacy and Data Protection Guidelines**: Establish guidelines for AI system design and development that prioritize data protection, privacy, and security, including measures for data anonymization, encryption, and access control.\n",
+ "6. **AI System Testing and Validation**: Develop and implement rigorous testing and validation protocols to ensure that AI systems are reliable, accurate, and unbiased, and that they prioritize human safety and well-being.\n",
+ "7. **Incident Response and Management**: Establish incident response and management plans to address AI-related errors, biases, or harm, and provide remedies and compensation to affected individuals or communities.\n",
+ "\n",
+ "**Implementation Roadmap:**\n",
+ "\n",
+ "1. **Short-term (0-2 years)**: Establish stakeholder engagement, develop regulatory frameworks, and promote AI literacy and education.\n",
+ "2. **Medium-term (2-5 years)**: Implement job displacement mitigation strategies, develop and implement privacy and data protection guidelines, and establish AI system testing and validation protocols.\n",
+ "3. **Long-term (5-10 years)**: Continuously monitor and evaluate AI systems, refine the ethical framework, and address emerging challenges and concerns.\n",
+ "\n",
+ "**Key Challenges and Opportunities:**\n",
+ "\n",
+ "1. **Addressing Job Displacement**: Developing effective strategies to mitigate job displacement and ensure that workers have the skills and support needed to adapt to an AI-driven economy.\n",
+ "2. **Balancing Innovation and Regulation**: Finding the right balance between promoting innovation and ensuring that AI systems are developed and used responsibly.\n",
+ "3. **Ensuring Transparency and Explainability**: Developing methods to explain AI decision-making processes and ensure that AI systems are transparent and accountable.\n",
+ "4. **Addressing Bias and Discrimination**: Developing AI systems that are fair, unbiased, and respectful of human rights, and promoting inclusivity and diversity in AI development and deployment.\n",
+ "\n",
+ "By following this framework, we can develop autonomous AI systems that balance innovation with societal values, prioritize human well-being and dignity, and address potential job displacement and privacy concerns.\n",
+ "\n",
+ "# Response from competitor 5\n",
+ "\n",
+ "Designing an ethical framework for autonomous AI systems requires a multi-faceted approach that considers both technical and societal aspects. Here's a step-by-step guide to help balance innovation with societal values, focusing on potential job displacement and privacy concerns:\n",
+ "\n",
+ "1. **Establish a multidisciplinary team**: Gather experts in AI development, ethics, sociology, psychology, law, and relevant fields. This diverse team will provide a comprehensive understanding of both technical capabilities and social implications.\n",
+ "2. **Define key principles and objectives**: Identify core values and goals for the AI system, such as:\n",
+ "\t* Respect for human rights and dignity\n",
+ "\t* Transparency and accountability\n",
+ "\t* Fairness and non-discrimination\n",
+ "\t* Privacy protection\n",
+ "\t* Safety and security\n",
+ "\t* Socio-economic benefits and impact reduction\n",
+ "3. **Analyze potential job displacement risks**: Consider ways to mitigate negative impacts on employment, such as:\n",
+ "\t* Upskilling and reskilling programs for affected workers\n",
+ "\t* Encouraging entrepreneurship and innovation in AI-related industries\n",
+ "\t* Implementing policies to promote inclusive growth and social safety nets\n",
+ "4. **Develop robust privacy safeguards**:\n",
+ "\t* Establish robust data protection regulations and standards\n",
+ "\t* Implement anonymization techniques and de-identification methods\n",
+ "\t* Ensure transparency about data collection, storage, and processing practices\n",
+ "5. **Implement transparent decision-making mechanisms**: Develop transparent algorithms and explainable AI (XAI) models to facilitate understanding of AI-driven decisions.\n",
+ "6. **Foster public engagement and participatory processes**:\n",
+ "\t* Conduct regular public consultations and deliberations on AI-related issues\n",
+ "\t* Encourage citizen participation in decision-making through platforms like participatory budgeting or crowdsourced feedback mechanisms\n",
+ "7. **Establish mechanisms for accountability and redress**: Develop processes for addressing AI-related complaints, investigations, and rectification of injustices.\n",
+ "8. **Develop standards and guidelines for AI development**:\n",
+ "\t* Establish industry-wide standards for ethics and transparency in AI development\n",
+ "\t* Promote the development of formal design principles and evaluation frameworks\n",
+ "9. **Monitor and evaluate the impact of AI on society**: Continuously assess the effectiveness of current regulations, policies, and technological interventions.\n",
+ "10. **Stay adaptable and evolve**: Be prepared to revise and refine your framework as new challenges arise, regulatory landscapes change, or societal attitudes shift.\n",
+ "\n",
+ "Additionally, consider the following:\n",
+ "\n",
+ "1. Emphasize diversity, equity, and inclusion in AI development teams\n",
+ "2. Engage with global standards organizations, governments, and international organizations on AI-related issues\n",
+ "3. Support research into the social implications of AI to better understand these challenges\n",
+ "\n",
+ "By taking a holistic approach that balances technical excellence with societal values and needs, you can create an ethical framework for autonomous AI systems that promotes sustainable development and responsible innovation.\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": 40,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "judge_messages = [{\"role\": \"user\", \"content\": judge}]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 42,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "{\"results\": [1, 2, 3, 4, 5]}\n"
+ ]
+ }
+ ],
+ "source": [
+ "# Judgement time!\n",
+ "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=judge_messages)\n",
+ "\n",
+ "results = response.choices[0].message.content\n",
+ "print(results)\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 43,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Rank 1: gpt-4o-mini\n",
+ "Rank 2: claude-3-7-sonnet-latest\n",
+ "Rank 3: gemini-2.0-flash\n",
+ "Rank 4: llama-3.3-70b-versatile\n",
+ "Rank 5: llama3.2\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",
+ " Exercise\n",
+ " Which pattern(s) did this use? Try updating this to add another Agentic design pattern.\n",
+ " \n",
+ " | \n",
+ "
\n",
+ "
"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "\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",
+ " | \n",
+ "
\n",
+ "
"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "agents",
+ "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.11"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 2
+}