diff --git a/scratches/acano/langgraph_agent_simple.ipynb b/scratches/acano/langgraph_agent_simple.ipynb index e45cb4f..daa51a9 100644 --- a/scratches/acano/langgraph_agent_simple.ipynb +++ b/scratches/acano/langgraph_agent_simple.ipynb @@ -47,8 +47,8 @@ "LANGFUSE_SECRET_KEY = os.getenv(\"LANGFUSE_SECRET_KEY\")\n", "LANGFUSE_HOST = os.getenv(\"LANGFUSE_HOST\")\n", "\n", - "langfuse = get_client()\n", - "langfuse_handler = CallbackHandler()\n", + "# langfuse = get_client()\n", + "# langfuse_handler = CallbackHandler()\n", "\n", "embeddings = OllamaEmbeddings(base_url=BASE_URL, model=MODEL_NAME)\n", "llm = ChatOllama(base_url=BASE_URL, model=MODEL_NAME)\n", @@ -67,193 +67,12 @@ "execution_count": 3, "id": "ad98841b", "metadata": {}, - "outputs": [ - { - "ename": "ConnectError", - "evalue": "[Errno 113] No route to host", - "output_type": "error", - "traceback": [ - "\u001b[31m---------------------------------------------------------------------------\u001b[39m", - "\u001b[31mConnectError\u001b[39m Traceback (most recent call last)", - "\u001b[36mFile \u001b[39m\u001b[32m~/PycharmProjects/assistance-engine/.venv/lib/python3.11/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[32m~/PycharmProjects/assistance-engine/.venv/lib/python3.11/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[32m~/PycharmProjects/assistance-engine/.venv/lib/python3.11/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[32m~/PycharmProjects/assistance-engine/.venv/lib/python3.11/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[32m~/PycharmProjects/assistance-engine/.venv/lib/python3.11/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[32m~/PycharmProjects/assistance-engine/.venv/lib/python3.11/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[32m~/PycharmProjects/assistance-engine/.venv/lib/python3.11/site-packages/httpcore/_sync/connection.py:124\u001b[39m, in \u001b[36mHTTPConnection._connect\u001b[39m\u001b[34m(self, request)\u001b[39m\n\u001b[32m 123\u001b[39m \u001b[38;5;28;01mwith\u001b[39;00m Trace(\u001b[33m\"\u001b[39m\u001b[33mconnect_tcp\u001b[39m\u001b[33m\"\u001b[39m, logger, request, kwargs) \u001b[38;5;28;01mas\u001b[39;00m trace:\n\u001b[32m--> \u001b[39m\u001b[32m124\u001b[39m stream = \u001b[38;5;28;43mself\u001b[39;49m\u001b[43m.\u001b[49m\u001b[43m_network_backend\u001b[49m\u001b[43m.\u001b[49m\u001b[43mconnect_tcp\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 125\u001b[39m trace.return_value = stream\n", - "\u001b[36mFile \u001b[39m\u001b[32m~/PycharmProjects/assistance-engine/.venv/lib/python3.11/site-packages/httpcore/_backends/sync.py:207\u001b[39m, in \u001b[36mSyncBackend.connect_tcp\u001b[39m\u001b[34m(self, host, port, timeout, local_address, socket_options)\u001b[39m\n\u001b[32m 202\u001b[39m exc_map: ExceptionMapping = {\n\u001b[32m 203\u001b[39m socket.timeout: ConnectTimeout,\n\u001b[32m 204\u001b[39m \u001b[38;5;167;01mOSError\u001b[39;00m: ConnectError,\n\u001b[32m 205\u001b[39m }\n\u001b[32m--> \u001b[39m\u001b[32m207\u001b[39m \u001b[43m\u001b[49m\u001b[38;5;28;43;01mwith\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mmap_exceptions\u001b[49m\u001b[43m(\u001b[49m\u001b[43mexc_map\u001b[49m\u001b[43m)\u001b[49m\u001b[43m:\u001b[49m\n\u001b[32m 208\u001b[39m \u001b[43m \u001b[49m\u001b[43msock\u001b[49m\u001b[43m \u001b[49m\u001b[43m=\u001b[49m\u001b[43m \u001b[49m\u001b[43msocket\u001b[49m\u001b[43m.\u001b[49m\u001b[43mcreate_connection\u001b[49m\u001b[43m(\u001b[49m\n\u001b[32m 209\u001b[39m \u001b[43m \u001b[49m\u001b[43maddress\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 210\u001b[39m \u001b[43m \u001b[49m\u001b[43mtimeout\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 211\u001b[39m \u001b[43m \u001b[49m\u001b[43msource_address\u001b[49m\u001b[43m=\u001b[49m\u001b[43msource_address\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 212\u001b[39m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n", - "\u001b[36mFile \u001b[39m\u001b[32m~/.local/share/uv/python/cpython-3.11.13-linux-x86_64-gnu/lib/python3.11/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;28mself\u001b[39m.gen.throw(typ, value, traceback)\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[32m~/PycharmProjects/assistance-engine/.venv/lib/python3.11/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[31mConnectError\u001b[39m: [Errno 113] No route to host", - "\nThe above exception was the direct cause of the following exception:\n", - "\u001b[31mConnectError\u001b[39m Traceback (most recent call last)", - "\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[3]\u001b[39m\u001b[32m, line 1\u001b[39m\n\u001b[32m----> \u001b[39m\u001b[32m1\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m \u001b[43mlangfuse\u001b[49m\u001b[43m.\u001b[49m\u001b[43mauth_check\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m:\n\u001b[32m 2\u001b[39m \u001b[38;5;28mprint\u001b[39m(\u001b[33m\"\u001b[39m\u001b[33mLangfuse client is authenticated and ready!\u001b[39m\u001b[33m\"\u001b[39m)\n\u001b[32m 3\u001b[39m \u001b[38;5;28;01melse\u001b[39;00m:\n", - "\u001b[36mFile \u001b[39m\u001b[32m~/PycharmProjects/assistance-engine/.venv/lib/python3.11/site-packages/langfuse/_client/client.py:3347\u001b[39m, in \u001b[36mLangfuse.auth_check\u001b[39m\u001b[34m(self)\u001b[39m\n\u001b[32m 3338\u001b[39m \u001b[38;5;250m\u001b[39m\u001b[33;03m\"\"\"Check if the provided credentials (public and secret key) are valid.\u001b[39;00m\n\u001b[32m 3339\u001b[39m \n\u001b[32m 3340\u001b[39m \u001b[33;03mRaises:\u001b[39;00m\n\u001b[32m (...)\u001b[39m\u001b[32m 3344\u001b[39m \u001b[33;03m This method is blocking. It is discouraged to use it in production code.\u001b[39;00m\n\u001b[32m 3345\u001b[39m \u001b[33;03m\"\"\"\u001b[39;00m\n\u001b[32m 3346\u001b[39m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[32m-> \u001b[39m\u001b[32m3347\u001b[39m projects = \u001b[38;5;28;43mself\u001b[39;49m\u001b[43m.\u001b[49m\u001b[43mapi\u001b[49m\u001b[43m.\u001b[49m\u001b[43mprojects\u001b[49m\u001b[43m.\u001b[49m\u001b[43mget\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 3348\u001b[39m langfuse_logger.debug(\n\u001b[32m 3349\u001b[39m \u001b[33mf\u001b[39m\u001b[33m\"\u001b[39m\u001b[33mAuth check successful, found \u001b[39m\u001b[38;5;132;01m{\u001b[39;00m\u001b[38;5;28mlen\u001b[39m(projects.data)\u001b[38;5;132;01m}\u001b[39;00m\u001b[33m projects\u001b[39m\u001b[33m\"\u001b[39m\n\u001b[32m 3350\u001b[39m )\n\u001b[32m 3351\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mlen\u001b[39m(projects.data) == \u001b[32m0\u001b[39m:\n", - "\u001b[36mFile \u001b[39m\u001b[32m~/PycharmProjects/assistance-engine/.venv/lib/python3.11/site-packages/langfuse/api/resources/projects/client.py:60\u001b[39m, in \u001b[36mProjectsClient.get\u001b[39m\u001b[34m(self, request_options)\u001b[39m\n\u001b[32m 31\u001b[39m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34mget\u001b[39m(\n\u001b[32m 32\u001b[39m \u001b[38;5;28mself\u001b[39m, *, request_options: typing.Optional[RequestOptions] = \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[32m 33\u001b[39m ) -> Projects:\n\u001b[32m 34\u001b[39m \u001b[38;5;250m \u001b[39m\u001b[33;03m\"\"\"\u001b[39;00m\n\u001b[32m 35\u001b[39m \u001b[33;03m Get Project associated with API key (requires project-scoped API key). You can use GET /api/public/organizations/projects to get all projects with an organization-scoped key.\u001b[39;00m\n\u001b[32m 36\u001b[39m \n\u001b[32m (...)\u001b[39m\u001b[32m 58\u001b[39m \u001b[33;03m client.projects.get()\u001b[39;00m\n\u001b[32m 59\u001b[39m \u001b[33;03m \"\"\"\u001b[39;00m\n\u001b[32m---> \u001b[39m\u001b[32m60\u001b[39m _response = \u001b[38;5;28;43mself\u001b[39;49m\u001b[43m.\u001b[49m\u001b[43m_client_wrapper\u001b[49m\u001b[43m.\u001b[49m\u001b[43mhttpx_client\u001b[49m\u001b[43m.\u001b[49m\u001b[43mrequest\u001b[49m\u001b[43m(\u001b[49m\n\u001b[32m 61\u001b[39m \u001b[43m \u001b[49m\u001b[33;43m\"\u001b[39;49m\u001b[33;43mapi/public/projects\u001b[39;49m\u001b[33;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mmethod\u001b[49m\u001b[43m=\u001b[49m\u001b[33;43m\"\u001b[39;49m\u001b[33;43mGET\u001b[39;49m\u001b[33;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mrequest_options\u001b[49m\u001b[43m=\u001b[49m\u001b[43mrequest_options\u001b[49m\n\u001b[32m 62\u001b[39m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 63\u001b[39m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[32m 64\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m \u001b[32m200\u001b[39m <= _response.status_code < \u001b[32m300\u001b[39m:\n", - "\u001b[36mFile \u001b[39m\u001b[32m~/PycharmProjects/assistance-engine/.venv/lib/python3.11/site-packages/langfuse/api/core/http_client.py:207\u001b[39m, in \u001b[36mHttpClient.request\u001b[39m\u001b[34m(self, path, method, base_url, params, json, data, content, files, headers, request_options, retries, omit)\u001b[39m\n\u001b[32m 196\u001b[39m timeout = (\n\u001b[32m 197\u001b[39m request_options.get(\u001b[33m\"\u001b[39m\u001b[33mtimeout_in_seconds\u001b[39m\u001b[33m\"\u001b[39m)\n\u001b[32m 198\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m request_options \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[32m 199\u001b[39m \u001b[38;5;129;01mand\u001b[39;00m request_options.get(\u001b[33m\"\u001b[39m\u001b[33mtimeout_in_seconds\u001b[39m\u001b[33m\"\u001b[39m) \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[32m 200\u001b[39m \u001b[38;5;28;01melse\u001b[39;00m \u001b[38;5;28mself\u001b[39m.base_timeout\n\u001b[32m 201\u001b[39m )\n\u001b[32m 203\u001b[39m json_body, data_body = get_request_body(\n\u001b[32m 204\u001b[39m json=json, data=data, request_options=request_options, omit=omit\n\u001b[32m 205\u001b[39m )\n\u001b[32m--> \u001b[39m\u001b[32m207\u001b[39m response = \u001b[38;5;28;43mself\u001b[39;49m\u001b[43m.\u001b[49m\u001b[43mhttpx_client\u001b[49m\u001b[43m.\u001b[49m\u001b[43mrequest\u001b[49m\u001b[43m(\u001b[49m\n\u001b[32m 208\u001b[39m \u001b[43m \u001b[49m\u001b[43mmethod\u001b[49m\u001b[43m=\u001b[49m\u001b[43mmethod\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 209\u001b[39m \u001b[43m \u001b[49m\u001b[43murl\u001b[49m\u001b[43m=\u001b[49m\u001b[43murllib\u001b[49m\u001b[43m.\u001b[49m\u001b[43mparse\u001b[49m\u001b[43m.\u001b[49m\u001b[43murljoin\u001b[49m\u001b[43m(\u001b[49m\u001b[33;43mf\u001b[39;49m\u001b[33;43m\"\u001b[39;49m\u001b[38;5;132;43;01m{\u001b[39;49;00m\u001b[43mbase_url\u001b[49m\u001b[38;5;132;43;01m}\u001b[39;49;00m\u001b[33;43m/\u001b[39;49m\u001b[33;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mpath\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 210\u001b[39m \u001b[43m \u001b[49m\u001b[43mheaders\u001b[49m\u001b[43m=\u001b[49m\u001b[43mjsonable_encoder\u001b[49m\u001b[43m(\u001b[49m\n\u001b[32m 211\u001b[39m \u001b[43m \u001b[49m\u001b[43mremove_none_from_dict\u001b[49m\u001b[43m(\u001b[49m\n\u001b[32m 212\u001b[39m \u001b[43m \u001b[49m\u001b[43m{\u001b[49m\n\u001b[32m 213\u001b[39m \u001b[43m \u001b[49m\u001b[43m*\u001b[49m\u001b[43m*\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m.\u001b[49m\u001b[43mbase_headers\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 214\u001b[39m \u001b[43m \u001b[49m\u001b[43m*\u001b[49m\u001b[43m*\u001b[49m\u001b[43m(\u001b[49m\u001b[43mheaders\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mif\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mheaders\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01mis\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;129;43;01mnot\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mNone\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;28;43;01melse\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43m{\u001b[49m\u001b[43m}\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 215\u001b[39m \u001b[43m \u001b[49m\u001b[43m*\u001b[49m\u001b[43m*\u001b[49m\u001b[43m(\u001b[49m\n\u001b[32m 216\u001b[39m \u001b[43m \u001b[49m\u001b[43mrequest_options\u001b[49m\u001b[43m.\u001b[49m\u001b[43mget\u001b[49m\u001b[43m(\u001b[49m\u001b[33;43m\"\u001b[39;49m\u001b[33;43madditional_headers\u001b[39;49m\u001b[33;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43m{\u001b[49m\u001b[43m}\u001b[49m\u001b[43m)\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01mor\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43m{\u001b[49m\u001b[43m}\u001b[49m\n\u001b[32m 217\u001b[39m \u001b[43m \u001b[49m\u001b[38;5;28;43;01mif\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mrequest_options\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01mis\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;129;43;01mnot\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mNone\u001b[39;49;00m\n\u001b[32m 218\u001b[39m \u001b[43m \u001b[49m\u001b[38;5;28;43;01melse\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43m{\u001b[49m\u001b[43m}\u001b[49m\n\u001b[32m 219\u001b[39m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 220\u001b[39m \u001b[43m \u001b[49m\u001b[43m}\u001b[49m\n\u001b[32m 221\u001b[39m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 222\u001b[39m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 223\u001b[39m \u001b[43m \u001b[49m\u001b[43mparams\u001b[49m\u001b[43m=\u001b[49m\u001b[43mencode_query\u001b[49m\u001b[43m(\u001b[49m\n\u001b[32m 224\u001b[39m \u001b[43m \u001b[49m\u001b[43mjsonable_encoder\u001b[49m\u001b[43m(\u001b[49m\n\u001b[32m 225\u001b[39m \u001b[43m \u001b[49m\u001b[43mremove_none_from_dict\u001b[49m\u001b[43m(\u001b[49m\n\u001b[32m 226\u001b[39m \u001b[43m \u001b[49m\u001b[43mremove_omit_from_dict\u001b[49m\u001b[43m(\u001b[49m\n\u001b[32m 227\u001b[39m \u001b[43m \u001b[49m\u001b[43m{\u001b[49m\n\u001b[32m 228\u001b[39m \u001b[43m \u001b[49m\u001b[43m*\u001b[49m\u001b[43m*\u001b[49m\u001b[43m(\u001b[49m\u001b[43mparams\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mif\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mparams\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01mis\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;129;43;01mnot\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mNone\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;28;43;01melse\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43m{\u001b[49m\u001b[43m}\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 229\u001b[39m \u001b[43m \u001b[49m\u001b[43m*\u001b[49m\u001b[43m*\u001b[49m\u001b[43m(\u001b[49m\n\u001b[32m 230\u001b[39m \u001b[43m \u001b[49m\u001b[43mrequest_options\u001b[49m\u001b[43m.\u001b[49m\u001b[43mget\u001b[49m\u001b[43m(\u001b[49m\n\u001b[32m 231\u001b[39m \u001b[43m \u001b[49m\u001b[33;43m\"\u001b[39;49m\u001b[33;43madditional_query_parameters\u001b[39;49m\u001b[33;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43m{\u001b[49m\u001b[43m}\u001b[49m\n\u001b[32m 232\u001b[39m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 233\u001b[39m \u001b[43m \u001b[49m\u001b[38;5;129;43;01mor\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43m{\u001b[49m\u001b[43m}\u001b[49m\n\u001b[32m 234\u001b[39m \u001b[43m \u001b[49m\u001b[38;5;28;43;01mif\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mrequest_options\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01mis\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;129;43;01mnot\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mNone\u001b[39;49;00m\n\u001b[32m 235\u001b[39m \u001b[43m \u001b[49m\u001b[38;5;28;43;01melse\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43m{\u001b[49m\u001b[43m}\u001b[49m\n\u001b[32m 236\u001b[39m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 237\u001b[39m \u001b[43m \u001b[49m\u001b[43m}\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 238\u001b[39m \u001b[43m \u001b[49m\u001b[43momit\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 239\u001b[39m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 240\u001b[39m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 241\u001b[39m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 242\u001b[39m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 243\u001b[39m \u001b[43m \u001b[49m\u001b[43mjson\u001b[49m\u001b[43m=\u001b[49m\u001b[43mjson_body\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 244\u001b[39m \u001b[43m \u001b[49m\u001b[43mdata\u001b[49m\u001b[43m=\u001b[49m\u001b[43mdata_body\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 245\u001b[39m \u001b[43m \u001b[49m\u001b[43mcontent\u001b[49m\u001b[43m=\u001b[49m\u001b[43mcontent\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 246\u001b[39m \u001b[43m \u001b[49m\u001b[43mfiles\u001b[49m\u001b[43m=\u001b[49m\u001b[43mconvert_file_dict_to_httpx_tuples\u001b[49m\u001b[43m(\u001b[49m\u001b[43mremove_none_from_dict\u001b[49m\u001b[43m(\u001b[49m\u001b[43mfiles\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 247\u001b[39m \u001b[43m \u001b[49m\u001b[38;5;28;43;01mif\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mfiles\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01mis\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;129;43;01mnot\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mNone\u001b[39;49;00m\n\u001b[32m 248\u001b[39m \u001b[43m \u001b[49m\u001b[38;5;28;43;01melse\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mNone\u001b[39;49;00m\u001b[43m,\u001b[49m\n\u001b[32m 249\u001b[39m \u001b[43m \u001b[49m\u001b[43mtimeout\u001b[49m\u001b[43m=\u001b[49m\u001b[43mtimeout\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 250\u001b[39m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 252\u001b[39m max_retries: \u001b[38;5;28mint\u001b[39m = (\n\u001b[32m 253\u001b[39m request_options.get(\u001b[33m\"\u001b[39m\u001b[33mmax_retries\u001b[39m\u001b[33m\"\u001b[39m, \u001b[32m0\u001b[39m) \u001b[38;5;28;01mif\u001b[39;00m request_options \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[38;5;28;01melse\u001b[39;00m \u001b[32m0\u001b[39m\n\u001b[32m 254\u001b[39m )\n\u001b[32m 255\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m _should_retry(response=response):\n", - "\u001b[36mFile \u001b[39m\u001b[32m~/PycharmProjects/assistance-engine/.venv/lib/python3.11/site-packages/httpx/_client.py:825\u001b[39m, in \u001b[36mClient.request\u001b[39m\u001b[34m(self, method, url, content, data, files, json, params, headers, cookies, auth, follow_redirects, timeout, extensions)\u001b[39m\n\u001b[32m 810\u001b[39m warnings.warn(message, \u001b[38;5;167;01mDeprecationWarning\u001b[39;00m, stacklevel=\u001b[32m2\u001b[39m)\n\u001b[32m 812\u001b[39m request = \u001b[38;5;28mself\u001b[39m.build_request(\n\u001b[32m 813\u001b[39m method=method,\n\u001b[32m 814\u001b[39m url=url,\n\u001b[32m (...)\u001b[39m\u001b[32m 823\u001b[39m extensions=extensions,\n\u001b[32m 824\u001b[39m )\n\u001b[32m--> \u001b[39m\u001b[32m825\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[43m.\u001b[49m\u001b[43msend\u001b[49m\u001b[43m(\u001b[49m\u001b[43mrequest\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mauth\u001b[49m\u001b[43m=\u001b[49m\u001b[43mauth\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mfollow_redirects\u001b[49m\u001b[43m=\u001b[49m\u001b[43mfollow_redirects\u001b[49m\u001b[43m)\u001b[49m\n", - "\u001b[36mFile \u001b[39m\u001b[32m~/PycharmProjects/assistance-engine/.venv/lib/python3.11/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 910\u001b[39m \u001b[38;5;28mself\u001b[39m._set_timeout(request)\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[32m 921\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m stream:\n", - "\u001b[36mFile \u001b[39m\u001b[32m~/PycharmProjects/assistance-engine/.venv/lib/python3.11/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 939\u001b[39m request = \u001b[38;5;28mnext\u001b[39m(auth_flow)\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[32m 948\u001b[39m \u001b[38;5;28;01mtry\u001b[39;00m:\n", - "\u001b[36mFile \u001b[39m\u001b[32m~/PycharmProjects/assistance-engine/.venv/lib/python3.11/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 976\u001b[39m \u001b[38;5;28;01mfor\u001b[39;00m hook \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mself\u001b[39m._event_hooks[\u001b[33m\"\u001b[39m\u001b[33mrequest\u001b[39m\u001b[33m\"\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[32m 981\u001b[39m \u001b[38;5;28;01mfor\u001b[39;00m hook \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mself\u001b[39m._event_hooks[\u001b[33m\"\u001b[39m\u001b[33mresponse\u001b[39m\u001b[33m\"\u001b[39m]:\n", - "\u001b[36mFile \u001b[39m\u001b[32m~/PycharmProjects/assistance-engine/.venv/lib/python3.11/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 1009\u001b[39m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mRuntimeError\u001b[39;00m(\n\u001b[32m 1010\u001b[39m \u001b[33m\"\u001b[39m\u001b[33mAttempted to send an async request with a sync Client instance.\u001b[39m\u001b[33m\"\u001b[39m\n\u001b[32m 1011\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[32m 1018\u001b[39m response.request = request\n", - "\u001b[36mFile \u001b[39m\u001b[32m~/PycharmProjects/assistance-engine/.venv/lib/python3.11/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 235\u001b[39m \u001b[38;5;28;01mimport\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34;01mhttpcore\u001b[39;00m\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[43m\u001b[49m\u001b[38;5;28;43;01mwith\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mmap_httpcore_exceptions\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[43m:\u001b[49m\n\u001b[32m 250\u001b[39m \u001b[43m \u001b[49m\u001b[43mresp\u001b[49m\u001b[43m \u001b[49m\u001b[43m=\u001b[49m\u001b[43m \u001b[49m\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[32m~/.local/share/uv/python/cpython-3.11.13-linux-x86_64-gnu/lib/python3.11/contextlib.py:158\u001b[39m, in \u001b[36m_GeneratorContextManager.__exit__\u001b[39m\u001b[34m(self, typ, value, traceback)\u001b[39m\n\u001b[32m 156\u001b[39m value = typ()\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;28mself\u001b[39m.gen.throw(typ, value, traceback)\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[32m 163\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m exc \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m value\n", - "\u001b[36mFile \u001b[39m\u001b[32m~/PycharmProjects/assistance-engine/.venv/lib/python3.11/site-packages/httpx/_transports/default.py:118\u001b[39m, in \u001b[36mmap_httpcore_exceptions\u001b[39m\u001b[34m()\u001b[39m\n\u001b[32m 115\u001b[39m \u001b[38;5;28;01mraise\u001b[39;00m\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[31mConnectError\u001b[39m: [Errno 113] No route to host" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Exception while exporting Span.\n", - "Traceback (most recent call last):\n", - " File \"/home/acano/PycharmProjects/assistance-engine/.venv/lib/python3.11/site-packages/urllib3/connection.py\", line 204, in _new_conn\n", - " sock = connection.create_connection(\n", - " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", - " File \"/home/acano/PycharmProjects/assistance-engine/.venv/lib/python3.11/site-packages/urllib3/util/connection.py\", line 85, in create_connection\n", - " raise err\n", - " File \"/home/acano/PycharmProjects/assistance-engine/.venv/lib/python3.11/site-packages/urllib3/util/connection.py\", line 73, in create_connection\n", - " sock.connect(sa)\n", - "OSError: [Errno 113] No route to host\n", - "\n", - "The above exception was the direct cause of the following exception:\n", - "\n", - "Traceback (most recent call last):\n", - " File \"/home/acano/PycharmProjects/assistance-engine/.venv/lib/python3.11/site-packages/urllib3/connectionpool.py\", line 787, in urlopen\n", - " response = self._make_request(\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"/home/acano/PycharmProjects/assistance-engine/.venv/lib/python3.11/site-packages/urllib3/connectionpool.py\", line 493, in _make_request\n", - " conn.request(\n", - " File \"/home/acano/PycharmProjects/assistance-engine/.venv/lib/python3.11/site-packages/urllib3/connection.py\", line 500, in request\n", - " self.endheaders()\n", - " File \"/home/acano/.local/share/uv/python/cpython-3.11.13-linux-x86_64-gnu/lib/python3.11/http/client.py\", line 1298, in endheaders\n", - " self._send_output(message_body, encode_chunked=encode_chunked)\n", - " File \"/home/acano/.local/share/uv/python/cpython-3.11.13-linux-x86_64-gnu/lib/python3.11/http/client.py\", line 1058, in _send_output\n", - " self.send(msg)\n", - " File \"/home/acano/.local/share/uv/python/cpython-3.11.13-linux-x86_64-gnu/lib/python3.11/http/client.py\", line 996, in send\n", - " self.connect()\n", - " File \"/home/acano/PycharmProjects/assistance-engine/.venv/lib/python3.11/site-packages/urllib3/connection.py\", line 331, in connect\n", - " self.sock = self._new_conn()\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"/home/acano/PycharmProjects/assistance-engine/.venv/lib/python3.11/site-packages/urllib3/connection.py\", line 219, in _new_conn\n", - " raise NewConnectionError(\n", - "urllib3.exceptions.NewConnectionError: HTTPConnection(host='45.77.119.180', port=3000): Failed to establish a new connection: [Errno 113] No route to host\n", - "\n", - "The above exception was the direct cause of the following exception:\n", - "\n", - "Traceback (most recent call last):\n", - " File \"/home/acano/PycharmProjects/assistance-engine/.venv/lib/python3.11/site-packages/requests/adapters.py\", line 644, in send\n", - " resp = conn.urlopen(\n", - " ^^^^^^^^^^^^^\n", - " File \"/home/acano/PycharmProjects/assistance-engine/.venv/lib/python3.11/site-packages/urllib3/connectionpool.py\", line 841, in urlopen\n", - " retries = retries.increment(\n", - " ^^^^^^^^^^^^^^^^^^\n", - " File \"/home/acano/PycharmProjects/assistance-engine/.venv/lib/python3.11/site-packages/urllib3/util/retry.py\", line 535, in increment\n", - " raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type]\n", - " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", - "urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='45.77.119.180', port=3000): Max retries exceeded with url: /api/public/otel/v1/traces (Caused by NewConnectionError(\"HTTPConnection(host='45.77.119.180', port=3000): Failed to establish a new connection: [Errno 113] No route to host\"))\n", - "\n", - "During handling of the above exception, another exception occurred:\n", - "\n", - "Traceback (most recent call last):\n", - " File \"/home/acano/PycharmProjects/assistance-engine/.venv/lib/python3.11/site-packages/opentelemetry/exporter/otlp/proto/http/trace_exporter/__init__.py\", line 157, in _export\n", - " resp = self._session.post(\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"/home/acano/PycharmProjects/assistance-engine/.venv/lib/python3.11/site-packages/requests/sessions.py\", line 637, in post\n", - " return self.request(\"POST\", url, data=data, json=json, **kwargs)\n", - " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", - " File \"/home/acano/PycharmProjects/assistance-engine/.venv/lib/python3.11/site-packages/requests/sessions.py\", line 589, in request\n", - " resp = self.send(prep, **send_kwargs)\n", - " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", - " File \"/home/acano/PycharmProjects/assistance-engine/.venv/lib/python3.11/site-packages/requests/sessions.py\", line 703, in send\n", - " r = adapter.send(request, **kwargs)\n", - " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", - " File \"/home/acano/PycharmProjects/assistance-engine/.venv/lib/python3.11/site-packages/requests/adapters.py\", line 677, in send\n", - " raise ConnectionError(e, request=request)\n", - "requests.exceptions.ConnectionError: HTTPConnectionPool(host='45.77.119.180', port=3000): Max retries exceeded with url: /api/public/otel/v1/traces (Caused by NewConnectionError(\"HTTPConnection(host='45.77.119.180', port=3000): Failed to establish a new connection: [Errno 113] No route to host\"))\n", - "\n", - "During handling of the above exception, another exception occurred:\n", - "\n", - "Traceback (most recent call last):\n", - " File \"/home/acano/PycharmProjects/assistance-engine/.venv/lib/python3.11/site-packages/urllib3/connection.py\", line 204, in _new_conn\n", - " sock = connection.create_connection(\n", - " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", - " File \"/home/acano/PycharmProjects/assistance-engine/.venv/lib/python3.11/site-packages/urllib3/util/connection.py\", line 85, in create_connection\n", - " raise err\n", - " File \"/home/acano/PycharmProjects/assistance-engine/.venv/lib/python3.11/site-packages/urllib3/util/connection.py\", line 73, in create_connection\n", - " sock.connect(sa)\n", - "OSError: [Errno 113] No route to host\n", - "\n", - "The above exception was the direct cause of the following exception:\n", - "\n", - "Traceback (most recent call last):\n", - " File \"/home/acano/PycharmProjects/assistance-engine/.venv/lib/python3.11/site-packages/urllib3/connectionpool.py\", line 787, in urlopen\n", - " response = self._make_request(\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"/home/acano/PycharmProjects/assistance-engine/.venv/lib/python3.11/site-packages/urllib3/connectionpool.py\", line 493, in _make_request\n", - " conn.request(\n", - " File \"/home/acano/PycharmProjects/assistance-engine/.venv/lib/python3.11/site-packages/urllib3/connection.py\", line 500, in request\n", - " self.endheaders()\n", - " File \"/home/acano/.local/share/uv/python/cpython-3.11.13-linux-x86_64-gnu/lib/python3.11/http/client.py\", line 1298, in endheaders\n", - " self._send_output(message_body, encode_chunked=encode_chunked)\n", - " File \"/home/acano/.local/share/uv/python/cpython-3.11.13-linux-x86_64-gnu/lib/python3.11/http/client.py\", line 1058, in _send_output\n", - " self.send(msg)\n", - " File \"/home/acano/.local/share/uv/python/cpython-3.11.13-linux-x86_64-gnu/lib/python3.11/http/client.py\", line 996, in send\n", - " self.connect()\n", - " File \"/home/acano/PycharmProjects/assistance-engine/.venv/lib/python3.11/site-packages/urllib3/connection.py\", line 331, in connect\n", - " self.sock = self._new_conn()\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"/home/acano/PycharmProjects/assistance-engine/.venv/lib/python3.11/site-packages/urllib3/connection.py\", line 219, in _new_conn\n", - " raise NewConnectionError(\n", - "urllib3.exceptions.NewConnectionError: HTTPConnection(host='45.77.119.180', port=3000): Failed to establish a new connection: [Errno 113] No route to host\n", - "\n", - "The above exception was the direct cause of the following exception:\n", - "\n", - "Traceback (most recent call last):\n", - " File \"/home/acano/PycharmProjects/assistance-engine/.venv/lib/python3.11/site-packages/requests/adapters.py\", line 644, in send\n", - " resp = conn.urlopen(\n", - " ^^^^^^^^^^^^^\n", - " File \"/home/acano/PycharmProjects/assistance-engine/.venv/lib/python3.11/site-packages/urllib3/connectionpool.py\", line 841, in urlopen\n", - " retries = retries.increment(\n", - " ^^^^^^^^^^^^^^^^^^\n", - " File \"/home/acano/PycharmProjects/assistance-engine/.venv/lib/python3.11/site-packages/urllib3/util/retry.py\", line 535, in increment\n", - " raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type]\n", - " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", - "urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='45.77.119.180', port=3000): Max retries exceeded with url: /api/public/otel/v1/traces (Caused by NewConnectionError(\"HTTPConnection(host='45.77.119.180', port=3000): Failed to establish a new connection: [Errno 113] No route to host\"))\n", - "\n", - "During handling of the above exception, another exception occurred:\n", - "\n", - "Traceback (most recent call last):\n", - " File \"/home/acano/PycharmProjects/assistance-engine/.venv/lib/python3.11/site-packages/opentelemetry/sdk/_shared_internal/__init__.py\", line 179, in _export\n", - " self._exporter.export(\n", - " File \"/home/acano/PycharmProjects/assistance-engine/.venv/lib/python3.11/site-packages/opentelemetry/exporter/otlp/proto/http/trace_exporter/__init__.py\", line 182, in export\n", - " resp = self._export(serialized_data, deadline_sec - time())\n", - " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", - " File \"/home/acano/PycharmProjects/assistance-engine/.venv/lib/python3.11/site-packages/opentelemetry/exporter/otlp/proto/http/trace_exporter/__init__.py\", line 165, in _export\n", - " resp = self._session.post(\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"/home/acano/PycharmProjects/assistance-engine/.venv/lib/python3.11/site-packages/requests/sessions.py\", line 637, in post\n", - " return self.request(\"POST\", url, data=data, json=json, **kwargs)\n", - " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", - " File \"/home/acano/PycharmProjects/assistance-engine/.venv/lib/python3.11/site-packages/requests/sessions.py\", line 589, in request\n", - " resp = self.send(prep, **send_kwargs)\n", - " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", - " File \"/home/acano/PycharmProjects/assistance-engine/.venv/lib/python3.11/site-packages/requests/sessions.py\", line 703, in send\n", - " r = adapter.send(request, **kwargs)\n", - " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", - " File \"/home/acano/PycharmProjects/assistance-engine/.venv/lib/python3.11/site-packages/requests/adapters.py\", line 677, in send\n", - " raise ConnectionError(e, request=request)\n", - "requests.exceptions.ConnectionError: HTTPConnectionPool(host='45.77.119.180', port=3000): Max retries exceeded with url: /api/public/otel/v1/traces (Caused by NewConnectionError(\"HTTPConnection(host='45.77.119.180', port=3000): Failed to establish a new connection: [Errno 113] No route to host\"))\n" - ] - } - ], + "outputs": [], "source": [ - "if langfuse.auth_check():\n", - " print(\"Langfuse client is authenticated and ready!\")\n", - "else:\n", - " print(\"Authentication failed. Please check your credentials and host.\")" + "# if langfuse.auth_check():\n", + "# print(\"Langfuse client is authenticated and ready!\")\n", + "# else:\n", + "# print(\"Authentication failed. Please check your credentials and host.\")" ] }, { @@ -266,7 +85,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 4, "id": "5f8c88cf", "metadata": {}, "outputs": [], @@ -285,7 +104,17 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, + "id": "f0a21230", + "metadata": {}, + "outputs": [], + "source": [ + "retrieve_kwargs = {\"k\": 5}" + ] + }, + { + "cell_type": "code", + "execution_count": null, "id": "f9359747", "metadata": {}, "outputs": [], @@ -300,16 +129,15 @@ " return \"\\n\\n\".join(chunks)\n", "\n", "\n", - "@tool(\"retrieve\", return_direct=False)\n", - "def retrieve(query: str, k: int = 4, title_filter: Optional[str] = None) -> str:\n", - " \"\"\"Retrieve relevant context from Elasticsearch for a given query.\"\"\"\n", - " search_kwargs = {\"k\": k}\n", - " if title_filter:\n", - " search_kwargs[\"filter\"] = {\"term\": {\"metadata.title.keyword\": title_filter}}\n", - "\n", + "@tool\n", + "def retrieve(query: str) -> str:\n", + " \"\"\"This tool retrieves relevant documents from the vector store based on the input query and formats them for the agent's response.\n", + " Args:\n", + " query (str): The input query for which to retrieve relevant documents.\n", + " \"\"\"\n", " retriever = vector_store.as_retriever(\n", " search_type=\"similarity\",\n", - " search_kwargs=search_kwargs,\n", + " search_kwargs=retrieve_kwargs,\n", " )\n", " docs = retriever.invoke(query)\n", " return format_context(docs)" @@ -317,14 +145,14 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 6, "id": "e5247ab9", "metadata": {}, "outputs": [], "source": [ "def should_continue(state: AgentState) -> str:\n", " last = state[\"messages\"][-1]\n", - " # If the model requested tool calls, go execute them\n", + " \n", " if getattr(last, \"tool_calls\", None):\n", " return \"tools\"\n", " return \"end\"" @@ -332,7 +160,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 7, "id": "a644f6fa", "metadata": {}, "outputs": [], @@ -352,7 +180,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 8, "id": "36d0f54e", "metadata": {}, "outputs": [], @@ -362,15 +190,14 @@ "\n", " system = SystemMessage(\n", " content=(\n", - " \"You are a helpful assistant. You must use the tools provided to respond.\\n\"\n", + " \"You are a helpful assistant. You MUST ALWAYS use the tools provided to respond.\\n\"\n", " \"If you don't have enough info, ask a precise follow-up question.\"\n", " )\n", " )\n", "\n", - " # IMPORTANT: bind tools so the model can emit tool calls\n", " model = llm.bind_tools(tools)\n", - "\n", " resp = model.invoke([system, *messages])\n", + "\n", " return {\"messages\": [*messages, resp]}" ] }, @@ -384,7 +211,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 9, "id": "fae46a58", "metadata": {}, "outputs": [], @@ -402,7 +229,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 10, "id": "2fec3fdb", "metadata": {}, "outputs": [ @@ -434,7 +261,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 14, "id": "a7f4fbf6", "metadata": {}, "outputs": [], @@ -444,14 +271,15 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 15, "id": "8569cf39", "metadata": {}, "outputs": [], "source": [ - "config = {\"configurable\": {\"thread_id\": \"1\"}, \n", - " \"callbacks\": [langfuse_handler],\n", - " \"run_name\": \"rag-local-test\"}\n", + "config = {\"configurable\": {\"thread_id\": \"2\"}, \n", + " #\"callbacks\": [langfuse_handler],\n", + " #\"run_name\": \"rag-local-test\"\n", + " }\n", "\n", "def stream_graph_updates(user_input: str):\n", " for event in agent_graph.stream(\n", @@ -459,14 +287,12 @@ " config=config,\n", " stream_mode=\"values\",\n", " ):\n", - " # for value in event.values():\n", - " # print(\"Assistant:\", value[\"messages\"][-1].content)\n", " event[\"messages\"][-1].pretty_print()" ] }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 16, "id": "53b89690", "metadata": {}, "outputs": [ @@ -479,171 +305,20 @@ "What does vertical farming proposes?\n", "==================================\u001b[1m Ai Message \u001b[0m==================================\n", "\n", - "Vertical farming is an agricultural technique that involves growing crops using stacked layers of vertically oriented structures, such as glass or plastic greenhouses. This method aims to maximize space and optimize resource use in urban environments by utilizing artificial lighting, hydroponics (root-growing without soil), and controlled environmental conditions.\n", + "Vertical farming proposes growing food in multi-level urban structures. This technique aims to reduce transportation dependency and optimize space usage in densely populated cities. Through hydroponic systems and automated nutrient control, plants can grow without traditional soil. Distributed sensors monitor humidity, temperature, and nutrient levels in real time. Moreover, integration with renewable energy allows these facilities to operate more sustainably.\n", "\n", - "The key advantages of vertical farming include:\n", - "1. Increased yield per unit area\n", - "2. Reduced water consumption compared to traditional agriculture\n", - "3. Greater energy efficiency due to the ability to control growing conditions precisely\n", - "4. The potential for year-round production regardless of weather conditions\n", - "\n", - "This technique is particularly suitable in densely populated urban areas, where land availability is limited and environmental concerns are prevalent. By optimizing resource use and providing controlled environments, vertical farming aims to achieve higher crop yields while reducing negative impacts on the environment compared to traditional agricultural methods.\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Exception while exporting Span.\n", - "Traceback (most recent call last):\n", - " File \"/home/acano/PycharmProjects/assistance-engine/.venv/lib/python3.11/site-packages/urllib3/connection.py\", line 204, in _new_conn\n", - " sock = connection.create_connection(\n", - " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", - " File \"/home/acano/PycharmProjects/assistance-engine/.venv/lib/python3.11/site-packages/urllib3/util/connection.py\", line 85, in create_connection\n", - " raise err\n", - " File \"/home/acano/PycharmProjects/assistance-engine/.venv/lib/python3.11/site-packages/urllib3/util/connection.py\", line 73, in create_connection\n", - " sock.connect(sa)\n", - "OSError: [Errno 113] No route to host\n", - "\n", - "The above exception was the direct cause of the following exception:\n", - "\n", - "Traceback (most recent call last):\n", - " File \"/home/acano/PycharmProjects/assistance-engine/.venv/lib/python3.11/site-packages/urllib3/connectionpool.py\", line 787, in urlopen\n", - " response = self._make_request(\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"/home/acano/PycharmProjects/assistance-engine/.venv/lib/python3.11/site-packages/urllib3/connectionpool.py\", line 493, in _make_request\n", - " conn.request(\n", - " File \"/home/acano/PycharmProjects/assistance-engine/.venv/lib/python3.11/site-packages/urllib3/connection.py\", line 500, in request\n", - " self.endheaders()\n", - " File \"/home/acano/.local/share/uv/python/cpython-3.11.13-linux-x86_64-gnu/lib/python3.11/http/client.py\", line 1298, in endheaders\n", - " self._send_output(message_body, encode_chunked=encode_chunked)\n", - " File \"/home/acano/.local/share/uv/python/cpython-3.11.13-linux-x86_64-gnu/lib/python3.11/http/client.py\", line 1058, in _send_output\n", - " self.send(msg)\n", - " File \"/home/acano/.local/share/uv/python/cpython-3.11.13-linux-x86_64-gnu/lib/python3.11/http/client.py\", line 996, in send\n", - " self.connect()\n", - " File \"/home/acano/PycharmProjects/assistance-engine/.venv/lib/python3.11/site-packages/urllib3/connection.py\", line 331, in connect\n", - " self.sock = self._new_conn()\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"/home/acano/PycharmProjects/assistance-engine/.venv/lib/python3.11/site-packages/urllib3/connection.py\", line 219, in _new_conn\n", - " raise NewConnectionError(\n", - "urllib3.exceptions.NewConnectionError: HTTPConnection(host='45.77.119.180', port=3030): Failed to establish a new connection: [Errno 113] No route to host\n", - "\n", - "The above exception was the direct cause of the following exception:\n", - "\n", - "Traceback (most recent call last):\n", - " File \"/home/acano/PycharmProjects/assistance-engine/.venv/lib/python3.11/site-packages/requests/adapters.py\", line 644, in send\n", - " resp = conn.urlopen(\n", - " ^^^^^^^^^^^^^\n", - " File \"/home/acano/PycharmProjects/assistance-engine/.venv/lib/python3.11/site-packages/urllib3/connectionpool.py\", line 841, in urlopen\n", - " retries = retries.increment(\n", - " ^^^^^^^^^^^^^^^^^^\n", - " File \"/home/acano/PycharmProjects/assistance-engine/.venv/lib/python3.11/site-packages/urllib3/util/retry.py\", line 535, in increment\n", - " raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type]\n", - " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", - "urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='45.77.119.180', port=3030): Max retries exceeded with url: /api/public/otel/v1/traces (Caused by NewConnectionError(\"HTTPConnection(host='45.77.119.180', port=3030): Failed to establish a new connection: [Errno 113] No route to host\"))\n", - "\n", - "During handling of the above exception, another exception occurred:\n", - "\n", - "Traceback (most recent call last):\n", - " File \"/home/acano/PycharmProjects/assistance-engine/.venv/lib/python3.11/site-packages/opentelemetry/exporter/otlp/proto/http/trace_exporter/__init__.py\", line 157, in _export\n", - " resp = self._session.post(\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"/home/acano/PycharmProjects/assistance-engine/.venv/lib/python3.11/site-packages/requests/sessions.py\", line 637, in post\n", - " return self.request(\"POST\", url, data=data, json=json, **kwargs)\n", - " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", - " File \"/home/acano/PycharmProjects/assistance-engine/.venv/lib/python3.11/site-packages/requests/sessions.py\", line 589, in request\n", - " resp = self.send(prep, **send_kwargs)\n", - " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", - " File \"/home/acano/PycharmProjects/assistance-engine/.venv/lib/python3.11/site-packages/requests/sessions.py\", line 703, in send\n", - " r = adapter.send(request, **kwargs)\n", - " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", - " File \"/home/acano/PycharmProjects/assistance-engine/.venv/lib/python3.11/site-packages/requests/adapters.py\", line 677, in send\n", - " raise ConnectionError(e, request=request)\n", - "requests.exceptions.ConnectionError: HTTPConnectionPool(host='45.77.119.180', port=3030): Max retries exceeded with url: /api/public/otel/v1/traces (Caused by NewConnectionError(\"HTTPConnection(host='45.77.119.180', port=3030): Failed to establish a new connection: [Errno 113] No route to host\"))\n", - "\n", - "During handling of the above exception, another exception occurred:\n", - "\n", - "Traceback (most recent call last):\n", - " File \"/home/acano/PycharmProjects/assistance-engine/.venv/lib/python3.11/site-packages/urllib3/connection.py\", line 204, in _new_conn\n", - " sock = connection.create_connection(\n", - " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", - " File \"/home/acano/PycharmProjects/assistance-engine/.venv/lib/python3.11/site-packages/urllib3/util/connection.py\", line 85, in create_connection\n", - " raise err\n", - " File \"/home/acano/PycharmProjects/assistance-engine/.venv/lib/python3.11/site-packages/urllib3/util/connection.py\", line 73, in create_connection\n", - " sock.connect(sa)\n", - "OSError: [Errno 113] No route to host\n", - "\n", - "The above exception was the direct cause of the following exception:\n", - "\n", - "Traceback (most recent call last):\n", - " File \"/home/acano/PycharmProjects/assistance-engine/.venv/lib/python3.11/site-packages/urllib3/connectionpool.py\", line 787, in urlopen\n", - " response = self._make_request(\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"/home/acano/PycharmProjects/assistance-engine/.venv/lib/python3.11/site-packages/urllib3/connectionpool.py\", line 493, in _make_request\n", - " conn.request(\n", - " File \"/home/acano/PycharmProjects/assistance-engine/.venv/lib/python3.11/site-packages/urllib3/connection.py\", line 500, in request\n", - " self.endheaders()\n", - " File \"/home/acano/.local/share/uv/python/cpython-3.11.13-linux-x86_64-gnu/lib/python3.11/http/client.py\", line 1298, in endheaders\n", - " self._send_output(message_body, encode_chunked=encode_chunked)\n", - " File \"/home/acano/.local/share/uv/python/cpython-3.11.13-linux-x86_64-gnu/lib/python3.11/http/client.py\", line 1058, in _send_output\n", - " self.send(msg)\n", - " File \"/home/acano/.local/share/uv/python/cpython-3.11.13-linux-x86_64-gnu/lib/python3.11/http/client.py\", line 996, in send\n", - " self.connect()\n", - " File \"/home/acano/PycharmProjects/assistance-engine/.venv/lib/python3.11/site-packages/urllib3/connection.py\", line 331, in connect\n", - " self.sock = self._new_conn()\n", - " ^^^^^^^^^^^^^^^^\n", - " File \"/home/acano/PycharmProjects/assistance-engine/.venv/lib/python3.11/site-packages/urllib3/connection.py\", line 219, in _new_conn\n", - " raise NewConnectionError(\n", - "urllib3.exceptions.NewConnectionError: HTTPConnection(host='45.77.119.180', port=3030): Failed to establish a new connection: [Errno 113] No route to host\n", - "\n", - "The above exception was the direct cause of the following exception:\n", - "\n", - "Traceback (most recent call last):\n", - " File \"/home/acano/PycharmProjects/assistance-engine/.venv/lib/python3.11/site-packages/requests/adapters.py\", line 644, in send\n", - " resp = conn.urlopen(\n", - " ^^^^^^^^^^^^^\n", - " File \"/home/acano/PycharmProjects/assistance-engine/.venv/lib/python3.11/site-packages/urllib3/connectionpool.py\", line 841, in urlopen\n", - " retries = retries.increment(\n", - " ^^^^^^^^^^^^^^^^^^\n", - " File \"/home/acano/PycharmProjects/assistance-engine/.venv/lib/python3.11/site-packages/urllib3/util/retry.py\", line 535, in increment\n", - " raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type]\n", - " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", - "urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='45.77.119.180', port=3030): Max retries exceeded with url: /api/public/otel/v1/traces (Caused by NewConnectionError(\"HTTPConnection(host='45.77.119.180', port=3030): Failed to establish a new connection: [Errno 113] No route to host\"))\n", - "\n", - "During handling of the above exception, another exception occurred:\n", - "\n", - "Traceback (most recent call last):\n", - " File \"/home/acano/PycharmProjects/assistance-engine/.venv/lib/python3.11/site-packages/opentelemetry/sdk/_shared_internal/__init__.py\", line 179, in _export\n", - " self._exporter.export(\n", - " File \"/home/acano/PycharmProjects/assistance-engine/.venv/lib/python3.11/site-packages/opentelemetry/exporter/otlp/proto/http/trace_exporter/__init__.py\", line 182, in export\n", - " resp = self._export(serialized_data, deadline_sec - time())\n", - " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", - " File \"/home/acano/PycharmProjects/assistance-engine/.venv/lib/python3.11/site-packages/opentelemetry/exporter/otlp/proto/http/trace_exporter/__init__.py\", line 165, in _export\n", - " resp = self._session.post(\n", - " ^^^^^^^^^^^^^^^^^^^\n", - " File \"/home/acano/PycharmProjects/assistance-engine/.venv/lib/python3.11/site-packages/requests/sessions.py\", line 637, in post\n", - " return self.request(\"POST\", url, data=data, json=json, **kwargs)\n", - " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", - " File \"/home/acano/PycharmProjects/assistance-engine/.venv/lib/python3.11/site-packages/requests/sessions.py\", line 589, in request\n", - " resp = self.send(prep, **send_kwargs)\n", - " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", - " File \"/home/acano/PycharmProjects/assistance-engine/.venv/lib/python3.11/site-packages/requests/sessions.py\", line 703, in send\n", - " r = adapter.send(request, **kwargs)\n", - " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", - " File \"/home/acano/PycharmProjects/assistance-engine/.venv/lib/python3.11/site-packages/requests/adapters.py\", line 677, in send\n", - " raise ConnectionError(e, request=request)\n", - "requests.exceptions.ConnectionError: HTTPConnectionPool(host='45.77.119.180', port=3030): Max retries exceeded with url: /api/public/otel/v1/traces (Caused by NewConnectionError(\"HTTPConnection(host='45.77.119.180', port=3030): Failed to establish a new connection: [Errno 113] No route to host\"))\n" + "Some cases, agricultural buildings are architecturally designed to integrate seamlessly into the urban environment. Although it still faces economic challenges, vertical farming represents a potential solution for food security in megacities.\n" ] } ], "source": [ - "stream_graph_updates(user_input)" + "a = stream_graph_updates(user_input)" ] }, { "cell_type": "code", "execution_count": null, - "id": "a5bfbf18", + "id": "f4119e2c", "metadata": {}, "outputs": [], "source": []