Last active
April 21, 2024 01:13
-
-
Save zitterbewegung/b4e00c11c61ae3310485d19c53e1d897 to your computer and use it in GitHub Desktop.
Revisions
-
zitterbewegung revised this gist
Apr 21, 2024 . No changes.There are no files selected for viewing
-
zitterbewegung revised this gist
Apr 21, 2024 . No changes.There are no files selected for viewing
-
zitterbewegung revised this gist
Apr 21, 2024 . 2 changed files with 0 additions and 0 deletions.There are no files selected for viewing
File renamed without changes.File renamed without changes. -
zitterbewegung created this gist
Apr 21, 2024 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,249 @@ { "cells": [ { "cell_type": "code", "execution_count": 1, "id": "880c83e5-599b-4763-a63b-7cd581b21ff0", "metadata": {}, "outputs": [], "source": [ "from openai import OpenAI\n", "client = OpenAI()\n", " \n", "assistant = client.beta.assistants.create(\n", " name=\"CVE implementor\",\n", " instructions=\"You are a cybersecurity analyist Write and run code to implement CVEs.\",\n", " tools=[{\"type\": \"code_interpreter\"}],\n", " model=\"gpt-4-turbo\",\n", ")\n", "\n", "thread = client.beta.threads.create()" ] }, { "cell_type": "code", "execution_count": 1, "id": "adcc8541-e525-4c6a-bd88-9ab8c28cc748", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Assistant Received: {\"output\": \"Hello, World!\\n\", \"errors\": \"\", \"exit_status\": 0}\n" ] } ], "source": [ "import subprocess\n", "import json\n", "\n", "def execute_bash_command(command):\n", " \"\"\"\n", " Executes a Bash command in a safe manner and returns the output, errors, and exit status.\n", " \n", " Args:\n", " command (str): The Bash command to execute.\n", " \n", " Returns:\n", " dict: A dictionary containing the output, errors, and exit status.\n", " \"\"\"\n", " try:\n", " # Execute the command, capture output and error\n", " result = subprocess.run(command, shell=True, text=True, capture_output=True, check=False)\n", " \n", " return {\n", " \"output\": result.stdout,\n", " \"errors\": result.stderr,\n", " \"exit_status\": result.returncode\n", " }\n", " except Exception as e:\n", " return {\n", " \"output\": \"\",\n", " \"errors\": str(e),\n", " \"exit_status\": -1\n", " }\n", "\n", "def assistant_interact(command):\n", " \"\"\"\n", " This function simulates an interaction where the OpenAI Assistant sends a Bash command\n", " and receives a response which it can then parse or use in conversation.\n", " \n", " Args:\n", " command (str): A Bash command received from the OpenAI Assistant.\n", " \n", " Returns:\n", " str: A JSON string containing the output, errors, and exit status.\n", " \"\"\"\n", " result = execute_bash_command(command)\n", " return json.dumps(result)\n", "\n", "# Example interaction:\n", "if __name__ == \"__main__\":\n", " # Simulating a command sent by the OpenAI Assistant\n", " command_request = \"echo Hello, World!\"\n", " response = assistant_interact(command_request)\n", " print(\"Assistant Received:\", response)\n" ] }, { "cell_type": "code", "execution_count": null, "id": "287dd94e-68fe-4f31-a97f-993658f13613", "metadata": {}, "outputs": [], "source": [ "# Step 1: Upgrade to Python SDK v1.2 with pip install --upgrade openai\n", "# Step 2: Install Tavily Python SDK with pip install tavily-python\n", "# Step 3: Build an OpenAI assistant with Python SDK documentation - https://platform.openai.com/docs/assistants/overview\n", "\n", "import os\n", "import json\n", "import time\n", "from openai import OpenAI\n", "from tavily import TavilyClient\n", "\n", "# Initialize clients with API keys\n", "client = OpenAI(api_key=os.environ[\"OPENAI_API_KEY\"])\n", "tavily_client = TavilyClient(api_key=os.environ[\"TAVILY_API_KEY\"])\n", "\n", "assistant_prompt_instruction = \"\"\"You are a finance expert. \n", "Your goal is to provide answers based on information from the internet. \n", "You must use the provided Tavily search API function to find relevant online information. \n", "You should never use your own knowledge to answer questions.\n", "Please include relevant url sources in the end of your answers.\n", "\"\"\"\n", "\n", "# Function to perform a Tavily search\n", "def tavily_search(query):\n", " search_result = tavily_client.get_search_context(query, search_depth=\"advanced\", max_tokens=8000)\n", " return search_result\n", "\n", "# Function to wait for a run to complete\n", "def wait_for_run_completion(thread_id, run_id):\n", " while True:\n", " time.sleep(1)\n", " run = client.beta.threads.runs.retrieve(thread_id=thread_id, run_id=run_id)\n", " print(f\"Current run status: {run.status}\")\n", " if run.status in ['completed', 'failed', 'requires_action']:\n", " return run\n", "\n", "# Function to handle tool output submission\n", "def submit_tool_outputs(thread_id, run_id, tools_to_call):\n", " tool_output_array = []\n", " for tool in tools_to_call:\n", " output = None\n", " tool_call_id = tool.id\n", " function_name = tool.function.name\n", " function_args = tool.function.arguments\n", "\n", " if function_name == \"tavily_search\":\n", " output = tavily_search(query=json.loads(function_args)[\"query\"])\n", "\n", " if output:\n", " tool_output_array.append({\"tool_call_id\": tool_call_id, \"output\": output})\n", "\n", " return client.beta.threads.runs.submit_tool_outputs(\n", " thread_id=thread_id,\n", " run_id=run_id,\n", " tool_outputs=tool_output_array\n", " )\n", "\n", "# Function to print messages from a thread\n", "def print_messages_from_thread(thread_id):\n", " messages = client.beta.threads.messages.list(thread_id=thread_id)\n", " for msg in messages:\n", " print(f\"{msg.role}: {msg.content[0].text.value}\")\n", "\n", "# Create an assistant\n", "assistant = client.beta.assistants.create(\n", " instructions=assistant_prompt_instruction,\n", " model=\"gpt-4-1106-preview\",\n", " tools=[{\"type\": \"code_interpreter\"},{\"type\": \"execute_bash_command\"} {\n", " \"type\": \"function\",\n", " \"function\": {\n", " \"name\": \"tavily_search\",\n", " \"description\": \"Get information on recent events from the web.\",\n", " \"parameters\": {\n", " \"type\": \"object\",\n", " \"properties\": {\n", " \"query\": {\"type\": \"string\", \"description\": \"The search query to use. For example: 'Latest news on Nvidia stock performance'\"},\n", " },\n", " \"required\": [\"query\"]\n", " }\n", " }\n", " }]\n", ")\n", "assistant_id = assistant.id\n", "print(f\"Assistant ID: {assistant_id}\")\n", "\n", "# Create a thread\n", "thread = client.beta.threads.create()\n", "print(f\"Thread: {thread}\")\n", "\n" ] }, { "cell_type": "code", "execution_count": null, "id": "2f00410a-f859-4e10-ae89-d38f3b39ff39", "metadata": {}, "outputs": [], "source": [ "# Ongoing conversation loop\n", "while True:\n", " user_input = input(\"You: \")\n", " if user_input.lower() == 'exit':\n", " break\n", "\n", " # Create a message\n", " message = client.beta.threads.messages.create(\n", " thread_id=thread.id,\n", " role=\"user\",\n", " content=user_input,\n", " )\n", "\n", " # Create a run\n", " run = client.beta.threads.runs.create(\n", " thread_id=thread.id,\n", " assistant_id=assistant_id,\n", " )\n", " print(f\"Run ID: {run.id}\")\n", "\n", " # Wait for run to complete\n", " run = wait_for_run_completion(thread.id, run.id)\n", "\n", " if run.status == 'failed':\n", " print(run.error)\n", " continue\n", " elif run.status == 'requires_action':\n", " run = submit_tool_outputs(thread.id, run.id, run.required_action.submit_tool_outputs.tool_calls)\n", " run = wait_for_run_completion(thread.id, run.id)\n", "\n", " # Print messages from the thread\n", " print_messages_from_thread(thread.id)" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "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.10.12" } }, "nbformat": 4, "nbformat_minor": 5 } This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,331 @@ { "cells": [ { "cell_type": "code", "execution_count": 1, "id": "39d00988-5c3a-48b7-830a-0f22ebab5601", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Note: you may need to restart the kernel to use updated packages.\n", "Note: you may need to restart the kernel to use updated packages.\n", "Note: you may need to restart the kernel to use updated packages.\n", "Note: you may need to restart the kernel to use updated packages.\n", "/bin/bash: line 1: npm: command not found\n" ] } ], "source": [ "%pip install --upgrade --quiet langchain\n", "%pip install --quiet langchainhub\n", "%pip install --upgrade --quiet playwright > /dev/null\n", "%pip install --upgrade --quiet lxml\n", "%pip install ---upgrade --quiet pytest-playwright\n", "!npm init --silent playwright@latest" ] }, { "cell_type": "code", "execution_count": 2, "id": "0d1c4048-17aa-4e57-99e9-0fde2bea485a", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Downloading Chromium 124.0.6367.29 (playwright build v1112)\u001b[2m from https://playwright.azureedge.net/builds/chromium/1112/chromium-linux.zip\u001b[22m\n", "\u001b[1G155.3 MiB [ ] 0% 0.0s\u001b[0K\u001b[1G155.3 MiB [ ] 0% 140.6s\u001b[0K\u001b[1G155.3 MiB [ ] 0% 126.5s\u001b[0K\u001b[1G155.3 MiB [ ] 0% 87.8s\u001b[0K\u001b[1G155.3 MiB [ ] 0% 70.9s\u001b[0K\u001b[1G155.3 MiB [ ] 0% 86.6s\u001b[0K\u001b[1G155.3 MiB [ ] 0% 77.7s\u001b[0K\u001b[1G155.3 MiB [ ] 0% 71.6s\u001b[0K\u001b[1G155.3 MiB [ ] 0% 69.8s\u001b[0K\u001b[1G155.3 MiB [ ] 0% 64.8s\u001b[0K\u001b[1G155.3 MiB [ ] 0% 63.3s\u001b[0K\u001b[1G155.3 MiB [ ] 0% 59.4s\u001b[0K\u001b[1G155.3 MiB [ ] 0% 58.6s\u001b[0K\u001b[1G155.3 MiB [ ] 0% 58.4s\u001b[0K\u001b[1G155.3 MiB [ ] 0% 58.5s\u001b[0K\u001b[1G155.3 MiB [ ] 0% 58.0s\u001b[0K\u001b[1G155.3 MiB [ ] 0% 57.7s\u001b[0K\u001b[1G155.3 MiB [ ] 0% 59.1s\u001b[0K\u001b[1G155.3 MiB [ ] 0% 58.7s\u001b[0K\u001b[1G155.3 MiB [ ] 0% 58.5s\u001b[0K\u001b[1G155.3 MiB [ ] 0% 56.8s\u001b[0K\u001b[1G155.3 MiB [ ] 0% 56.6s\u001b[0K\u001b[1G155.3 MiB [ ] 1% 56.2s\u001b[0K\u001b[1G155.3 MiB [ ] 1% 54.5s\u001b[0K\u001b[1G155.3 MiB [ ] 1% 55.7s\u001b[0K\u001b[1G155.3 MiB [ ] 1% 55.3s\u001b[0K\u001b[1G155.3 MiB [ ] 1% 55.4s\u001b[0K\u001b[1G155.3 MiB [ ] 1% 55.1s\u001b[0K\u001b[1G155.3 MiB [ ] 1% 54.0s\u001b[0K\u001b[1G155.3 MiB [ ] 1% 54.2s\u001b[0K\u001b[1G155.3 MiB [ ] 1% 54.0s\u001b[0K\u001b[1G155.3 MiB [ ] 1% 52.9s\u001b[0K\u001b[1G155.3 MiB [ ] 1% 52.0s\u001b[0K\u001b[1G155.3 MiB [ ] 1% 53.4s\u001b[0K\u001b[1G155.3 MiB [ ] 1% 53.3s\u001b[0K\u001b[1G155.3 MiB [ ] 1% 53.1s\u001b[0K\u001b[1G155.3 MiB [ ] 1% 52.1s\u001b[0K\u001b[1G155.3 MiB [ ] 1% 52.6s\u001b[0K\u001b[1G155.3 MiB [ ] 2% 51.9s\u001b[0K\u001b[1G155.3 MiB [ ] 2% 51.5s\u001b[0K\u001b[1G155.3 MiB [ ] 2% 52.0s\u001b[0K\u001b[1G155.3 MiB [ ] 2% 52.1s\u001b[0K\u001b[1G155.3 MiB [ ] 2% 51.3s\u001b[0K\u001b[1G155.3 MiB [ ] 2% 51.0s\u001b[0K\u001b[1G155.3 MiB [ ] 2% 51.4s\u001b[0K\u001b[1G155.3 MiB [ ] 2% 51.2s\u001b[0K\u001b[1G155.3 MiB [ ] 2% 50.5s\u001b[0K\u001b[1G155.3 MiB [= ] 2% 50.4s\u001b[0K\u001b[1G155.3 MiB [= ] 2% 49.8s\u001b[0K\u001b[1G155.3 MiB [= ] 2% 49.3s\u001b[0K\u001b[1G155.3 MiB [= ] 2% 48.8s\u001b[0K\u001b[1G155.3 MiB [= ] 2% 48.3s\u001b[0K\u001b[1G155.3 MiB [= ] 2% 47.7s\u001b[0K\u001b[1G155.3 MiB [= ] 3% 47.2s\u001b[0K\u001b[1G155.3 MiB [= ] 3% 46.7s\u001b[0K\u001b[1G155.3 MiB [= ] 3% 47.1s\u001b[0K\u001b[1G155.3 MiB [= ] 3% 46.5s\u001b[0K\u001b[1G155.3 MiB [= ] 3% 46.9s\u001b[0K\u001b[1G155.3 MiB [= ] 3% 46.2s\u001b[0K\u001b[1G155.3 MiB [= ] 3% 47.0s\u001b[0K\u001b[1G155.3 MiB [= ] 3% 46.8s\u001b[0K\u001b[1G155.3 MiB [= ] 3% 46.2s\u001b[0K\u001b[1G155.3 MiB [= ] 3% 45.7s\u001b[0K\u001b[1G155.3 MiB [= ] 3% 45.8s\u001b[0K\u001b[1G155.3 MiB [= ] 3% 46.1s\u001b[0K\u001b[1G155.3 MiB [= ] 3% 45.5s\u001b[0K\u001b[1G155.3 MiB [= ] 4% 45.6s\u001b[0K\u001b[1G155.3 MiB [= ] 4% 45.5s\u001b[0K\u001b[1G155.3 MiB [= ] 4% 45.1s\u001b[0K\u001b[1G155.3 MiB [= ] 4% 44.8s\u001b[0K\u001b[1G155.3 MiB [= ] 4% 44.4s\u001b[0K\u001b[1G155.3 MiB [= ] 4% 44.7s\u001b[0K\u001b[1G155.3 MiB [= ] 4% 44.2s\u001b[0K\u001b[1G155.3 MiB [= ] 4% 44.4s\u001b[0K\u001b[1G155.3 MiB [= ] 4% 44.2s\u001b[0K\u001b[1G155.3 MiB [= ] 4% 43.6s\u001b[0K\u001b[1G155.3 MiB [= ] 4% 43.9s\u001b[0K\u001b[1G155.3 MiB [= ] 4% 43.5s\u001b[0K\u001b[1G155.3 MiB [= ] 5% 43.1s\u001b[0K\u001b[1G155.3 MiB [= ] 5% 42.7s\u001b[0K\u001b[1G155.3 MiB [= ] 5% 43.0s\u001b[0K\u001b[1G155.3 MiB [= ] 5% 42.7s\u001b[0K\u001b[1G155.3 MiB [= ] 5% 42.3s\u001b[0K\u001b[1G155.3 MiB [= ] 5% 42.8s\u001b[0K\u001b[1G155.3 MiB [= ] 5% 42.5s\u001b[0K\u001b[1G155.3 MiB [= ] 5% 42.2s\u001b[0K\u001b[1G155.3 MiB [= ] 5% 42.3s\u001b[0K\u001b[1G155.3 MiB [= ] 5% 41.9s\u001b[0K\u001b[1G155.3 MiB [= ] 5% 42.1s\u001b[0K\u001b[1G155.3 MiB [= ] 5% 41.8s\u001b[0K\u001b[1G155.3 MiB [= ] 5% 41.7s\u001b[0K\u001b[1G155.3 MiB [= ] 6% 41.6s\u001b[0K\u001b[1G155.3 MiB [= ] 6% 41.4s\u001b[0K\u001b[1G155.3 MiB [= ] 6% 41.2s\u001b[0K\u001b[1G155.3 MiB [= ] 6% 41.3s\u001b[0K\u001b[1G155.3 MiB [= ] 6% 41.2s\u001b[0K\u001b[1G155.3 MiB [= ] 6% 40.9s\u001b[0K\u001b[1G155.3 MiB [= ] 6% 40.5s\u001b[0K\u001b[1G155.3 MiB [= ] 6% 40.8s\u001b[0K\u001b[1G155.3 MiB [= ] 6% 40.5s\u001b[0K\u001b[1G155.3 MiB [= ] 6% 40.2s\u001b[0K\u001b[1G155.3 MiB [= ] 6% 40.1s\u001b[0K\u001b[1G155.3 MiB [= ] 6% 40.0s\u001b[0K\u001b[1G155.3 MiB [= ] 6% 40.1s\u001b[0K\u001b[1G155.3 MiB [= ] 7% 39.9s\u001b[0K\u001b[1G155.3 MiB [= ] 7% 39.6s\u001b[0K\u001b[1G155.3 MiB [= ] 7% 39.4s\u001b[0K\u001b[1G155.3 MiB [= ] 7% 39.2s\u001b[0K\u001b[1G155.3 MiB [== ] 7% 39.0s\u001b[0K\u001b[1G155.3 MiB [== ] 7% 38.6s\u001b[0K\u001b[1G155.3 MiB [== ] 7% 38.5s\u001b[0K\u001b[1G155.3 MiB [== ] 7% 38.4s\u001b[0K\u001b[1G155.3 MiB [== ] 7% 38.5s\u001b[0K\u001b[1G155.3 MiB [== ] 8% 38.2s\u001b[0K\u001b[1G155.3 MiB [== ] 8% 38.1s\u001b[0K\u001b[1G155.3 MiB [== ] 8% 37.8s\u001b[0K\u001b[1G155.3 MiB [== ] 8% 37.7s\u001b[0K\u001b[1G155.3 MiB [== ] 8% 37.6s\u001b[0K\u001b[1G155.3 MiB [== ] 8% 37.4s\u001b[0K\u001b[1G155.3 MiB [== ] 8% 37.3s\u001b[0K\u001b[1G155.3 MiB [== ] 8% 37.0s\u001b[0K\u001b[1G155.3 MiB [== ] 8% 37.1s\u001b[0K\u001b[1G155.3 MiB [== ] 8% 39.5s\u001b[0K\u001b[1G155.3 MiB [== ] 8% 39.4s\u001b[0K\u001b[1G155.3 MiB [== ] 9% 39.3s\u001b[0K\u001b[1G155.3 MiB [== ] 9% 39.2s\u001b[0K\u001b[1G155.3 MiB [== ] 9% 39.0s\u001b[0K\u001b[1G155.3 MiB [== ] 9% 39.1s\u001b[0K\u001b[1G155.3 MiB [== ] 9% 38.9s\u001b[0K\u001b[1G155.3 MiB [== ] 9% 38.7s\u001b[0K\u001b[1G155.3 MiB [== ] 9% 38.6s\u001b[0K\u001b[1G155.3 MiB [== ] 9% 38.7s\u001b[0K\u001b[1G155.3 MiB [== ] 9% 38.5s\u001b[0K\u001b[1G155.3 MiB [== ] 9% 38.4s\u001b[0K\u001b[1G155.3 MiB [== ] 9% 38.8s\u001b[0K\u001b[1G155.3 MiB [== ] 9% 38.7s\u001b[0K\u001b[1G155.3 MiB [== ] 10% 38.5s\u001b[0K\u001b[1G155.3 MiB [== ] 10% 38.2s\u001b[0K\u001b[1G155.3 MiB [== ] 10% 38.0s\u001b[0K\u001b[1G155.3 MiB [== ] 10% 37.9s\u001b[0K\u001b[1G155.3 MiB [== ] 10% 37.7s\u001b[0K\u001b[1G155.3 MiB [== ] 10% 37.5s\u001b[0K\u001b[1G155.3 MiB [== ] 10% 37.4s\u001b[0K\u001b[1G155.3 MiB [== ] 10% 37.5s\u001b[0K\u001b[1G155.3 MiB [== ] 10% 37.3s\u001b[0K\u001b[1G155.3 MiB [== ] 11% 37.0s\u001b[0K\u001b[1G155.3 MiB [== ] 11% 37.1s\u001b[0K\u001b[1G155.3 MiB [== ] 11% 36.9s\u001b[0K\u001b[1G155.3 MiB [== ] 11% 36.7s\u001b[0K\u001b[1G155.3 MiB [== ] 11% 36.5s\u001b[0K\u001b[1G155.3 MiB [== ] 11% 36.4s\u001b[0K\u001b[1G155.3 MiB [== ] 11% 36.3s\u001b[0K\u001b[1G155.3 MiB [== ] 12% 36.3s\u001b[0K\u001b[1G155.3 MiB [== ] 12% 36.1s\u001b[0K\u001b[1G155.3 MiB [== ] 12% 35.8s\u001b[0K\u001b[1G155.3 MiB [== ] 12% 35.7s\u001b[0K\u001b[1G155.3 MiB [== ] 12% 35.5s\u001b[0K\u001b[1G155.3 MiB [=== ] 12% 35.3s\u001b[0K\u001b[1G155.3 MiB [=== ] 12% 35.2s\u001b[0K\u001b[1G155.3 MiB [=== ] 12% 35.0s\u001b[0K\u001b[1G155.3 MiB [=== ] 12% 35.1s\u001b[0K\u001b[1G155.3 MiB [=== ] 12% 34.9s\u001b[0K\u001b[1G155.3 MiB [=== ] 13% 34.7s\u001b[0K\u001b[1G155.3 MiB [=== ] 13% 34.6s\u001b[0K\u001b[1G155.3 MiB [=== ] 13% 34.4s\u001b[0K\u001b[1G155.3 MiB [=== ] 13% 34.2s\u001b[0K\u001b[1G155.3 MiB [=== ] 13% 34.1s\u001b[0K\u001b[1G155.3 MiB [=== ] 13% 34.0s\u001b[0K\u001b[1G155.3 MiB [=== ] 13% 34.1s\u001b[0K\u001b[1G155.3 MiB [=== ] 14% 33.9s\u001b[0K\u001b[1G155.3 MiB [=== ] 14% 33.8s\u001b[0K\u001b[1G155.3 MiB [=== ] 14% 33.6s\u001b[0K\u001b[1G155.3 MiB [=== ] 14% 33.5s\u001b[0K\u001b[1G155.3 MiB [=== ] 14% 33.4s\u001b[0K\u001b[1G155.3 MiB [=== ] 14% 33.3s\u001b[0K\u001b[1G155.3 MiB [=== ] 14% 33.1s\u001b[0K\u001b[1G155.3 MiB [=== ] 14% 33.0s\u001b[0K\u001b[1G155.3 MiB [=== ] 15% 32.8s\u001b[0K\u001b[1G155.3 MiB [=== ] 15% 32.9s\u001b[0K\u001b[1G155.3 MiB [=== ] 15% 32.8s\u001b[0K\u001b[1G155.3 MiB [=== ] 15% 32.9s\u001b[0K\u001b[1G155.3 MiB [=== ] 15% 32.7s\u001b[0K\u001b[1G155.3 MiB [=== ] 15% 32.5s\u001b[0K\u001b[1G155.3 MiB [=== ] 15% 32.4s\u001b[0K\u001b[1G155.3 MiB [=== ] 15% 32.2s\u001b[0K\u001b[1G155.3 MiB [=== ] 15% 32.1s\u001b[0K\u001b[1G155.3 MiB [=== ] 15% 32.0s\u001b[0K\u001b[1G155.3 MiB [=== ] 16% 31.8s\u001b[0K\u001b[1G155.3 MiB [=== ] 16% 31.7s\u001b[0K\u001b[1G155.3 MiB [=== ] 16% 31.5s\u001b[0K\u001b[1G155.3 MiB [=== ] 16% 31.4s\u001b[0K\u001b[1G155.3 MiB [=== ] 16% 31.2s\u001b[0K\u001b[1G155.3 MiB [=== ] 16% 31.3s\u001b[0K\u001b[1G155.3 MiB [=== ] 16% 31.2s\u001b[0K\u001b[1G155.3 MiB [=== ] 16% 31.1s\u001b[0K\u001b[1G155.3 MiB [=== ] 17% 30.9s\u001b[0K\u001b[1G155.3 MiB [=== ] 17% 30.8s\u001b[0K\u001b[1G155.3 MiB [=== ] 17% 30.7s\u001b[0K\u001b[1G155.3 MiB [=== ] 17% 30.6s\u001b[0K\u001b[1G155.3 MiB [=== ] 17% 30.5s\u001b[0K\u001b[1G155.3 MiB [==== ] 17% 30.5s\u001b[0K\u001b[1G155.3 MiB [==== ] 17% 30.4s\u001b[0K\u001b[1G155.3 MiB [==== ] 17% 30.2s\u001b[0K\u001b[1G155.3 MiB [==== ] 17% 30.1s\u001b[0K\u001b[1G155.3 MiB [==== ] 18% 30.0s\u001b[0K\u001b[1G155.3 MiB [==== ] 18% 29.8s\u001b[0K\u001b[1G155.3 MiB [==== ] 18% 29.7s\u001b[0K\u001b[1G155.3 MiB [==== ] 18% 29.6s\u001b[0K\u001b[1G155.3 MiB [==== ] 18% 29.7s\u001b[0K\u001b[1G155.3 MiB [==== ] 18% 29.5s\u001b[0K\u001b[1G155.3 MiB [==== ] 18% 29.4s\u001b[0K\u001b[1G155.3 MiB [==== ] 19% 29.3s\u001b[0K\u001b[1G155.3 MiB [==== ] 19% 29.1s\u001b[0K\u001b[1G155.3 MiB [==== ] 19% 29.0s\u001b[0K\u001b[1G155.3 MiB [==== ] 19% 28.9s\u001b[0K\u001b[1G155.3 MiB [==== ] 19% 28.8s\u001b[0K\u001b[1G155.3 MiB [==== ] 19% 28.7s\u001b[0K\u001b[1G155.3 MiB [==== ] 20% 28.5s\u001b[0K\u001b[1G155.3 MiB [==== ] 20% 28.4s\u001b[0K\u001b[1G155.3 MiB [==== ] 20% 28.3s\u001b[0K\u001b[1G155.3 MiB [==== ] 20% 28.2s\u001b[0K\u001b[1G155.3 MiB [==== ] 20% 28.1s\u001b[0K\u001b[1G155.3 MiB [==== ] 20% 28.0s\u001b[0K\u001b[1G155.3 MiB [==== ] 20% 27.8s\u001b[0K\u001b[1G155.3 MiB [==== ] 21% 27.7s\u001b[0K\u001b[1G155.3 MiB [==== ] 21% 27.6s\u001b[0K\u001b[1G155.3 MiB [==== ] 21% 27.5s\u001b[0K\u001b[1G155.3 MiB [==== ] 21% 27.3s\u001b[0K\u001b[1G155.3 MiB [==== ] 21% 27.2s\u001b[0K\u001b[1G155.3 MiB [==== ] 21% 27.0s\u001b[0K\u001b[1G155.3 MiB [==== ] 22% 26.8s\u001b[0K\u001b[1G155.3 MiB [==== ] 22% 26.9s\u001b[0K\u001b[1G155.3 MiB [==== ] 22% 26.8s\u001b[0K\u001b[1G155.3 MiB [==== ] 22% 26.9s\u001b[0K\u001b[1G155.3 MiB [==== ] 22% 27.0s\u001b[0K\u001b[1G155.3 MiB [===== ] 22% 26.8s\u001b[0K\u001b[1G155.3 MiB [===== ] 22% 26.6s\u001b[0K\u001b[1G155.3 MiB [===== ] 22% 26.7s\u001b[0K\u001b[1G155.3 MiB [===== ] 23% 26.5s\u001b[0K\u001b[1G155.3 MiB [===== ] 23% 26.3s\u001b[0K\u001b[1G155.3 MiB [===== ] 23% 26.1s\u001b[0K\u001b[1G155.3 MiB [===== ] 23% 25.9s\u001b[0K\u001b[1G155.3 MiB [===== ] 23% 26.0s\u001b[0K\u001b[1G155.3 MiB [===== ] 23% 25.7s\u001b[0K\u001b[1G155.3 MiB [===== ] 23% 25.8s\u001b[0K\u001b[1G155.3 MiB [===== ] 24% 25.6s\u001b[0K\u001b[1G155.3 MiB [===== ] 24% 25.5s\u001b[0K\u001b[1G155.3 MiB [===== ] 24% 25.4s\u001b[0K\u001b[1G155.3 MiB [===== ] 24% 25.2s\u001b[0K\u001b[1G155.3 MiB [===== ] 24% 25.0s\u001b[0K\u001b[1G155.3 MiB [===== ] 25% 24.9s\u001b[0K\u001b[1G155.3 MiB [===== ] 25% 24.8s\u001b[0K\u001b[1G155.3 MiB [===== ] 25% 24.7s\u001b[0K\u001b[1G155.3 MiB [===== ] 25% 24.5s\u001b[0K\u001b[1G155.3 MiB [===== ] 25% 24.4s\u001b[0K\u001b[1G155.3 MiB [===== ] 25% 24.3s\u001b[0K\u001b[1G155.3 MiB [===== ] 26% 24.2s\u001b[0K\u001b[1G155.3 MiB [===== ] 26% 24.0s\u001b[0K\u001b[1G155.3 MiB [===== ] 26% 23.8s\u001b[0K\u001b[1G155.3 MiB [===== ] 27% 23.6s\u001b[0K\u001b[1G155.3 MiB [===== ] 27% 23.3s\u001b[0K\u001b[1G155.3 MiB [===== ] 27% 23.4s\u001b[0K\u001b[1G155.3 MiB [====== ] 27% 23.3s\u001b[0K\u001b[1G155.3 MiB [====== ] 27% 23.0s\u001b[0K\u001b[1G155.3 MiB [====== ] 28% 22.8s\u001b[0K\u001b[1G155.3 MiB [====== ] 28% 22.7s\u001b[0K\u001b[1G155.3 MiB [====== ] 28% 22.6s\u001b[0K\u001b[1G155.3 MiB [====== ] 28% 22.5s\u001b[0K\u001b[1G155.3 MiB [====== ] 28% 22.4s\u001b[0K\u001b[1G155.3 MiB [====== ] 28% 22.2s\u001b[0K\u001b[1G155.3 MiB [====== ] 29% 22.0s\u001b[0K\u001b[1G155.3 MiB [====== ] 29% 21.9s\u001b[0K\u001b[1G155.3 MiB [====== ] 29% 22.0s\u001b[0K\u001b[1G155.3 MiB [====== ] 29% 21.8s\u001b[0K\u001b[1G155.3 MiB [====== ] 29% 21.7s\u001b[0K\u001b[1G155.3 MiB [====== ] 30% 21.5s\u001b[0K\u001b[1G155.3 MiB [====== ] 30% 21.4s\u001b[0K\u001b[1G155.3 MiB [====== ] 30% 21.2s\u001b[0K\u001b[1G155.3 MiB [====== ] 30% 21.0s\u001b[0K\u001b[1G155.3 MiB [====== ] 30% 20.9s\u001b[0K\u001b[1G155.3 MiB [====== ] 31% 20.8s\u001b[0K\u001b[1G155.3 MiB [====== ] 31% 20.5s\u001b[0K\u001b[1G155.3 MiB [====== ] 31% 20.3s\u001b[0K\u001b[1G155.3 MiB [====== ] 32% 20.3s\u001b[0K\u001b[1G155.3 MiB [====== ] 32% 20.2s\u001b[0K\u001b[1G155.3 MiB [====== ] 32% 20.1s\u001b[0K\u001b[1G155.3 MiB [======= ] 32% 20.0s\u001b[0K\u001b[1G155.3 MiB [======= ] 33% 19.9s\u001b[0K\u001b[1G155.3 MiB [======= ] 33% 19.6s\u001b[0K\u001b[1G155.3 MiB [======= ] 33% 19.7s\u001b[0K\u001b[1G155.3 MiB [======= ] 33% 19.6s\u001b[0K\u001b[1G155.3 MiB [======= ] 34% 19.4s\u001b[0K\u001b[1G155.3 MiB [======= ] 34% 19.3s\u001b[0K\u001b[1G155.3 MiB [======= ] 34% 19.2s\u001b[0K\u001b[1G155.3 MiB [======= ] 34% 19.1s\u001b[0K\u001b[1G155.3 MiB [======= ] 34% 19.0s\u001b[0K\u001b[1G155.3 MiB [======= ] 35% 18.8s\u001b[0K\u001b[1G155.3 MiB [======= ] 35% 18.5s\u001b[0K\u001b[1G155.3 MiB [======= ] 35% 18.6s\u001b[0K\u001b[1G155.3 MiB [======= ] 35% 18.4s\u001b[0K\u001b[1G155.3 MiB [======= ] 35% 18.3s\u001b[0K\u001b[1G155.3 MiB [======= ] 36% 18.3s\u001b[0K\u001b[1G155.3 MiB [======= ] 36% 18.1s\u001b[0K\u001b[1G155.3 MiB [======= ] 36% 17.9s\u001b[0K\u001b[1G155.3 MiB [======= ] 36% 17.7s\u001b[0K\u001b[1G155.3 MiB [======= ] 37% 17.5s\u001b[0K\u001b[1G155.3 MiB [======== ] 37% 17.3s\u001b[0K\u001b[1G155.3 MiB [======== ] 38% 17.0s\u001b[0K\u001b[1G155.3 MiB [======== ] 38% 16.9s\u001b[0K\u001b[1G155.3 MiB [======== ] 38% 16.7s\u001b[0K\u001b[1G155.3 MiB [======== ] 38% 16.6s\u001b[0K\u001b[1G155.3 MiB [======== ] 39% 16.4s\u001b[0K\u001b[1G155.3 MiB [======== ] 39% 16.3s\u001b[0K\u001b[1G155.3 MiB [======== ] 39% 16.1s\u001b[0K\u001b[1G155.3 MiB [======== ] 40% 15.9s\u001b[0K\u001b[1G155.3 MiB [======== ] 40% 15.8s\u001b[0K\u001b[1G155.3 MiB [======== ] 40% 15.7s\u001b[0K\u001b[1G155.3 MiB [======== ] 40% 15.5s\u001b[0K\u001b[1G155.3 MiB [======== ] 41% 15.5s\u001b[0K\u001b[1G155.3 MiB [======== ] 41% 15.3s\u001b[0K\u001b[1G155.3 MiB [======== ] 41% 15.2s\u001b[0K\u001b[1G155.3 MiB [======== ] 41% 15.1s\u001b[0K\u001b[1G155.3 MiB [======== ] 42% 15.0s\u001b[0K\u001b[1G155.3 MiB [======== ] 42% 14.9s\u001b[0K\u001b[1G155.3 MiB [========= ] 42% 14.7s\u001b[0K\u001b[1G155.3 MiB [========= ] 42% 14.6s\u001b[0K\u001b[1G155.3 MiB [========= ] 43% 14.5s\u001b[0K\u001b[1G155.3 MiB [========= ] 43% 14.3s\u001b[0K\u001b[1G155.3 MiB [========= ] 43% 14.2s\u001b[0K\u001b[1G155.3 MiB [========= ] 44% 14.1s\u001b[0K\u001b[1G155.3 MiB [========= ] 44% 14.0s\u001b[0K\u001b[1G155.3 MiB [========= ] 44% 13.8s\u001b[0K\u001b[1G155.3 MiB [========= ] 44% 13.7s\u001b[0K\u001b[1G155.3 MiB [========= ] 45% 13.7s\u001b[0K\u001b[1G155.3 MiB [========= ] 45% 13.5s\u001b[0K\u001b[1G155.3 MiB [========= ] 45% 13.4s\u001b[0K\u001b[1G155.3 MiB [========= ] 45% 13.3s\u001b[0K\u001b[1G155.3 MiB [========= ] 46% 13.2s\u001b[0K\u001b[1G155.3 MiB [========= ] 46% 13.0s\u001b[0K\u001b[1G155.3 MiB [========= ] 46% 12.9s\u001b[0K\u001b[1G155.3 MiB [========= ] 47% 12.8s\u001b[0K\u001b[1G155.3 MiB [========= ] 47% 12.7s\u001b[0K\u001b[1G155.3 MiB [========== ] 47% 12.6s\u001b[0K\u001b[1G155.3 MiB [========== ] 47% 12.5s\u001b[0K\u001b[1G155.3 MiB [========== ] 48% 12.3s\u001b[0K\u001b[1G155.3 MiB [========== ] 48% 12.2s\u001b[0K\u001b[1G155.3 MiB [========== ] 49% 12.0s\u001b[0K\u001b[1G155.3 MiB [========== ] 49% 11.8s\u001b[0K\u001b[1G155.3 MiB [========== ] 49% 11.7s\u001b[0K\u001b[1G155.3 MiB [========== ] 50% 11.5s\u001b[0K\u001b[1G155.3 MiB [========== ] 50% 11.4s\u001b[0K\u001b[1G155.3 MiB [========== ] 50% 11.3s\u001b[0K\u001b[1G155.3 MiB [========== ] 51% 11.2s\u001b[0K\u001b[1G155.3 MiB [========== ] 51% 11.1s\u001b[0K\u001b[1G155.3 MiB [========== ] 51% 11.0s\u001b[0K\u001b[1G155.3 MiB [========== ] 52% 10.9s\u001b[0K\u001b[1G155.3 MiB [========== ] 52% 10.7s\u001b[0K\u001b[1G155.3 MiB [=========== ] 52% 10.7s\u001b[0K\u001b[1G155.3 MiB [=========== ] 52% 10.6s\u001b[0K\u001b[1G155.3 MiB [=========== ] 53% 10.5s\u001b[0K\u001b[1G155.3 MiB [=========== ] 53% 10.4s\u001b[0K\u001b[1G155.3 MiB [=========== ] 53% 10.3s\u001b[0K\u001b[1G155.3 MiB [=========== ] 53% 10.2s\u001b[0K\u001b[1G155.3 MiB [=========== ] 54% 10.1s\u001b[0K\u001b[1G155.3 MiB [=========== ] 54% 10.0s\u001b[0K\u001b[1G155.3 MiB [=========== ] 54% 9.9s\u001b[0K\u001b[1G155.3 MiB [=========== ] 55% 9.8s\u001b[0K\u001b[1G155.3 MiB [=========== ] 55% 9.7s\u001b[0K\u001b[1G155.3 MiB [=========== ] 55% 9.6s\u001b[0K\u001b[1G155.3 MiB [=========== ] 55% 9.5s\u001b[0K\u001b[1G155.3 MiB [=========== ] 56% 9.5s\u001b[0K\u001b[1G155.3 MiB [=========== ] 56% 9.3s\u001b[0K\u001b[1G155.3 MiB [=========== ] 56% 9.2s\u001b[0K\u001b[1G155.3 MiB [=========== ] 57% 9.1s\u001b[0K\u001b[1G155.3 MiB [============ ] 57% 9.0s\u001b[0K\u001b[1G155.3 MiB [============ ] 57% 8.9s\u001b[0K\u001b[1G155.3 MiB [============ ] 58% 8.8s\u001b[0K\u001b[1G155.3 MiB [============ ] 58% 8.7s\u001b[0K\u001b[1G155.3 MiB [============ ] 58% 8.6s\u001b[0K\u001b[1G155.3 MiB [============ ] 59% 8.5s\u001b[0K\u001b[1G155.3 MiB [============ ] 59% 8.4s\u001b[0K\u001b[1G155.3 MiB [============ ] 59% 8.3s\u001b[0K\u001b[1G155.3 MiB [============ ] 60% 8.3s\u001b[0K\u001b[1G155.3 MiB [============ ] 60% 8.1s\u001b[0K\u001b[1G155.3 MiB [============ ] 60% 8.0s\u001b[0K\u001b[1G155.3 MiB [============ ] 61% 8.0s\u001b[0K\u001b[1G155.3 MiB [============ ] 61% 7.8s\u001b[0K\u001b[1G155.3 MiB [============ ] 61% 7.7s\u001b[0K\u001b[1G155.3 MiB [============ ] 62% 7.6s\u001b[0K\u001b[1G155.3 MiB [============= ] 62% 7.5s\u001b[0K\u001b[1G155.3 MiB [============= ] 62% 7.4s\u001b[0K\u001b[1G155.3 MiB [============= ] 63% 7.4s\u001b[0K\u001b[1G155.3 MiB [============= ] 63% 7.2s\u001b[0K\u001b[1G155.3 MiB [============= ] 63% 7.1s\u001b[0K\u001b[1G155.3 MiB [============= ] 64% 7.1s\u001b[0K\u001b[1G155.3 MiB [============= ] 64% 7.0s\u001b[0K\u001b[1G155.3 MiB [============= ] 64% 6.9s\u001b[0K\u001b[1G155.3 MiB [============= ] 65% 6.8s\u001b[0K\u001b[1G155.3 MiB [============= ] 66% 6.6s\u001b[0K\u001b[1G155.3 MiB [============= ] 66% 6.4s\u001b[0K\u001b[1G155.3 MiB [============= ] 67% 6.3s\u001b[0K\u001b[1G155.3 MiB [============== ] 67% 6.2s\u001b[0K\u001b[1G155.3 MiB [============== ] 67% 6.1s\u001b[0K\u001b[1G155.3 MiB [============== ] 68% 6.1s\u001b[0K\u001b[1G155.3 MiB [============== ] 68% 6.0s\u001b[0K\u001b[1G155.3 MiB [============== ] 68% 5.9s\u001b[0K\u001b[1G155.3 MiB [============== ] 69% 5.9s\u001b[0K\u001b[1G155.3 MiB [============== ] 69% 5.8s\u001b[0K\u001b[1G155.3 MiB [============== ] 69% 5.7s\u001b[0K\u001b[1G155.3 MiB [============== ] 70% 5.6s\u001b[0K\u001b[1G155.3 MiB [============== ] 71% 5.4s\u001b[0K\u001b[1G155.3 MiB [============== ] 71% 5.3s\u001b[0K\u001b[1G155.3 MiB [============== ] 72% 5.2s\u001b[0K\u001b[1G155.3 MiB [============== ] 72% 5.1s\u001b[0K\u001b[1G155.3 MiB [=============== ] 72% 5.1s\u001b[0K\u001b[1G155.3 MiB [=============== ] 73% 4.9s\u001b[0K\u001b[1G155.3 MiB [=============== ] 73% 4.8s\u001b[0K\u001b[1G155.3 MiB [=============== ] 74% 4.7s\u001b[0K\u001b[1G155.3 MiB [=============== ] 74% 4.6s\u001b[0K\u001b[1G155.3 MiB [=============== ] 74% 4.5s\u001b[0K\u001b[1G155.3 MiB [=============== ] 75% 4.5s\u001b[0K\u001b[1G155.3 MiB [=============== ] 75% 4.4s\u001b[0K\u001b[1G155.3 MiB [=============== ] 75% 4.3s\u001b[0K\u001b[1G155.3 MiB [=============== ] 76% 4.2s\u001b[0K\u001b[1G155.3 MiB [=============== ] 76% 4.1s\u001b[0K\u001b[1G155.3 MiB [=============== ] 77% 4.1s\u001b[0K\u001b[1G155.3 MiB [================ ] 77% 4.0s\u001b[0K\u001b[1G155.3 MiB [================ ] 77% 3.9s\u001b[0K\u001b[1G155.3 MiB [================ ] 78% 3.8s\u001b[0K\u001b[1G155.3 MiB [================ ] 78% 3.7s\u001b[0K\u001b[1G155.3 MiB [================ ] 79% 3.6s\u001b[0K\u001b[1G155.3 MiB [================ ] 79% 3.5s\u001b[0K\u001b[1G155.3 MiB [================ ] 80% 3.5s\u001b[0K\u001b[1G155.3 MiB [================ ] 80% 3.4s\u001b[0K\u001b[1G155.3 MiB [================ ] 80% 3.3s\u001b[0K\u001b[1G155.3 MiB [================ ] 81% 3.2s\u001b[0K\u001b[1G155.3 MiB [================ ] 81% 3.1s\u001b[0K\u001b[1G155.3 MiB [================ ] 82% 3.0s\u001b[0K\u001b[1G155.3 MiB [================= ] 82% 2.9s\u001b[0K\u001b[1G155.3 MiB [================= ] 83% 2.9s\u001b[0K\u001b[1G155.3 MiB [================= ] 83% 2.8s\u001b[0K\u001b[1G155.3 MiB [================= ] 83% 2.7s\u001b[0K\u001b[1G155.3 MiB [================= ] 84% 2.6s\u001b[0K\u001b[1G155.3 MiB [================= ] 84% 2.5s\u001b[0K\u001b[1G155.3 MiB [================= ] 85% 2.5s\u001b[0K\u001b[1G155.3 MiB [================= ] 85% 2.4s\u001b[0K\u001b[1G155.3 MiB [================= ] 85% 2.3s\u001b[0K\u001b[1G155.3 MiB [================= ] 86% 2.3s\u001b[0K\u001b[1G155.3 MiB [================= ] 87% 2.1s\u001b[0K\u001b[1G155.3 MiB [================== ] 87% 2.0s\u001b[0K\u001b[1G155.3 MiB [================== ] 88% 1.9s\u001b[0K\u001b[1G155.3 MiB [================== ] 88% 1.8s\u001b[0K\u001b[1G155.3 MiB [================== ] 89% 1.7s\u001b[0K\u001b[1G155.3 MiB [================== ] 90% 1.6s\u001b[0K\u001b[1G155.3 MiB [================== ] 90% 1.5s\u001b[0K\u001b[1G155.3 MiB [================== ] 90% 1.4s\u001b[0K\u001b[1G155.3 MiB [================== ] 91% 1.4s\u001b[0K\u001b[1G155.3 MiB [================== ] 91% 1.3s\u001b[0K\u001b[1G155.3 MiB [=================== ] 92% 1.1s\u001b[0K\u001b[1G155.3 MiB [=================== ] 93% 1.1s\u001b[0K\u001b[1G155.3 MiB [=================== ] 93% 1.0s\u001b[0K\u001b[1G155.3 MiB [=================== ] 94% 0.9s\u001b[0K\u001b[1G155.3 MiB [=================== ] 94% 0.8s\u001b[0K\u001b[1G155.3 MiB [=================== ] 95% 0.8s\u001b[0K\u001b[1G155.3 MiB [=================== ] 95% 0.7s\u001b[0K\u001b[1G155.3 MiB [=================== ] 96% 0.6s\u001b[0K\u001b[1G155.3 MiB [=================== ] 96% 0.5s\u001b[0K\u001b[1G155.3 MiB [=================== ] 97% 0.4s\u001b[0K\u001b[1G155.3 MiB [====================] 97% 0.3s\u001b[0K\u001b[1G155.3 MiB [====================] 98% 0.3s\u001b[0K\u001b[1G155.3 MiB [====================] 98% 0.2s\u001b[0K\u001b[1G155.3 MiB [====================] 99% 0.1s\u001b[0K\u001b[1G155.3 MiB [====================] 100% 0.0s\u001b[0K\n", "Chromium 124.0.6367.29 (playwright build v1112) downloaded to /home/r2q2/.cache/ms-playwright/chromium-1112\n", "Downloading FFMPEG playwright build v1009\u001b[2m from https://playwright.azureedge.net/builds/ffmpeg/1009/ffmpeg-linux.zip\u001b[22m\n", "\u001b[1G2.6 MiB [ ] 0% 0.0s\u001b[0K\u001b[1G2.6 MiB [ ] 1% 1.5s\u001b[0K\u001b[1G2.6 MiB [= ] 3% 1.4s\u001b[0K\u001b[1G2.6 MiB [= ] 6% 1.1s\u001b[0K\u001b[1G2.6 MiB [== ] 8% 1.1s\u001b[0K\u001b[1G2.6 MiB [=== ] 13% 0.8s\u001b[0K\u001b[1G2.6 MiB [=== ] 14% 0.8s\u001b[0K\u001b[1G2.6 MiB [==== ] 20% 0.7s\u001b[0K\u001b[1G2.6 MiB [===== ] 27% 0.6s\u001b[0K\u001b[1G2.6 MiB [====== ] 32% 0.5s\u001b[0K\u001b[1G2.6 MiB [======= ] 34% 0.5s\u001b[0K\u001b[1G2.6 MiB [======== ] 42% 0.4s\u001b[0K\u001b[1G2.6 MiB [========== ] 48% 0.4s\u001b[0K\u001b[1G2.6 MiB [=========== ] 56% 0.3s\u001b[0K\u001b[1G2.6 MiB [============= ] 64% 0.2s\u001b[0K\u001b[1G2.6 MiB [=============== ] 73% 0.2s\u001b[0K\u001b[1G2.6 MiB [================ ] 82% 0.1s\u001b[0K\u001b[1G2.6 MiB [================== ] 90% 0.1s\u001b[0K\u001b[1G2.6 MiB [=================== ] 94% 0.0s\u001b[0K\u001b[1G2.6 MiB [====================] 100% 0.0s\u001b[0K\n", "FFMPEG playwright build v1009 downloaded to /home/r2q2/.cache/ms-playwright/ffmpeg-1009\n", "Downloading Firefox 124.0 (playwright build v1447)\u001b[2m from https://playwright.azureedge.net/builds/firefox/1447/firefox-ubuntu-22.04.zip\u001b[22m\n", "\u001b[1G85.4 MiB [ ] 0% 0.0s\u001b[0K\u001b[1G85.4 MiB [ ] 0% 91.6s\u001b[0K\u001b[1G85.4 MiB [ ] 0% 112.9s\u001b[0K\u001b[1G85.4 MiB [ ] 0% 87.8s\u001b[0K\u001b[1G85.4 MiB [ ] 0% 65.6s\u001b[0K\u001b[1G85.4 MiB [ ] 0% 64.5s\u001b[0K\u001b[1G85.4 MiB [ ] 0% 56.6s\u001b[0K\u001b[1G85.4 MiB [ ] 0% 51.2s\u001b[0K\u001b[1G85.4 MiB [ ] 0% 50.5s\u001b[0K\u001b[1G85.4 MiB [ ] 0% 47.3s\u001b[0K\u001b[1G85.4 MiB [ ] 0% 41.5s\u001b[0K\u001b[1G85.4 MiB [ ] 0% 39.9s\u001b[0K\u001b[1G85.4 MiB [ ] 0% 41.3s\u001b[0K\u001b[1G85.4 MiB [ ] 1% 38.7s\u001b[0K\u001b[1G85.4 MiB [ ] 1% 39.6s\u001b[0K\u001b[1G85.4 MiB [ ] 1% 38.1s\u001b[0K\u001b[1G85.4 MiB [ ] 1% 35.8s\u001b[0K\u001b[1G85.4 MiB [ ] 1% 34.3s\u001b[0K\u001b[1G85.4 MiB [ ] 1% 33.7s\u001b[0K\u001b[1G85.4 MiB [ ] 1% 32.1s\u001b[0K\u001b[1G85.4 MiB [ ] 1% 32.0s\u001b[0K\u001b[1G85.4 MiB [ ] 1% 30.8s\u001b[0K\u001b[1G85.4 MiB [ ] 1% 30.4s\u001b[0K\u001b[1G85.4 MiB [ ] 2% 29.4s\u001b[0K\u001b[1G85.4 MiB [ ] 2% 27.9s\u001b[0K\u001b[1G85.4 MiB [ ] 2% 28.3s\u001b[0K\u001b[1G85.4 MiB [= ] 2% 26.9s\u001b[0K\u001b[1G85.4 MiB [= ] 2% 25.8s\u001b[0K\u001b[1G85.4 MiB [= ] 2% 24.5s\u001b[0K\u001b[1G85.4 MiB [= ] 3% 24.6s\u001b[0K\u001b[1G85.4 MiB [= ] 3% 24.1s\u001b[0K\u001b[1G85.4 MiB [= ] 3% 23.7s\u001b[0K\u001b[1G85.4 MiB [= ] 3% 23.3s\u001b[0K\u001b[1G85.4 MiB [= ] 3% 22.3s\u001b[0K\u001b[1G85.4 MiB [= ] 3% 22.2s\u001b[0K\u001b[1G85.4 MiB [= ] 4% 21.3s\u001b[0K\u001b[1G85.4 MiB [= ] 4% 21.5s\u001b[0K\u001b[1G85.4 MiB [= ] 4% 21.3s\u001b[0K\u001b[1G85.4 MiB [= ] 4% 20.4s\u001b[0K\u001b[1G85.4 MiB [= ] 5% 19.6s\u001b[0K\u001b[1G85.4 MiB [= ] 5% 19.3s\u001b[0K\u001b[1G85.4 MiB [= ] 5% 18.7s\u001b[0K\u001b[1G85.4 MiB [= ] 5% 18.0s\u001b[0K\u001b[1G85.4 MiB [= ] 5% 17.8s\u001b[0K\u001b[1G85.4 MiB [= ] 6% 17.4s\u001b[0K\u001b[1G85.4 MiB [= ] 6% 17.3s\u001b[0K\u001b[1G85.4 MiB [= ] 6% 16.8s\u001b[0K\u001b[1G85.4 MiB [= ] 6% 16.2s\u001b[0K\u001b[1G85.4 MiB [= ] 7% 16.1s\u001b[0K\u001b[1G85.4 MiB [= ] 7% 15.4s\u001b[0K\u001b[1G85.4 MiB [== ] 7% 15.5s\u001b[0K\u001b[1G85.4 MiB [== ] 7% 15.2s\u001b[0K\u001b[1G85.4 MiB [== ] 8% 14.9s\u001b[0K\u001b[1G85.4 MiB [== ] 8% 14.4s\u001b[0K\u001b[1G85.4 MiB [== ] 9% 13.7s\u001b[0K\u001b[1G85.4 MiB [== ] 9% 13.8s\u001b[0K\u001b[1G85.4 MiB [== ] 9% 13.3s\u001b[0K\u001b[1G85.4 MiB [== ] 9% 13.2s\u001b[0K\u001b[1G85.4 MiB [== ] 10% 12.8s\u001b[0K\u001b[1G85.4 MiB [== ] 10% 12.6s\u001b[0K\u001b[1G85.4 MiB [== ] 10% 12.4s\u001b[0K\u001b[1G85.4 MiB [== ] 10% 12.1s\u001b[0K\u001b[1G85.4 MiB [== ] 11% 11.9s\u001b[0K\u001b[1G85.4 MiB [== ] 11% 11.7s\u001b[0K\u001b[1G85.4 MiB [== ] 11% 11.4s\u001b[0K\u001b[1G85.4 MiB [== ] 12% 11.2s\u001b[0K\u001b[1G85.4 MiB [=== ] 12% 10.9s\u001b[0K\u001b[1G85.4 MiB [=== ] 12% 10.8s\u001b[0K\u001b[1G85.4 MiB [=== ] 13% 10.4s\u001b[0K\u001b[1G85.4 MiB [=== ] 14% 10.1s\u001b[0K\u001b[1G85.4 MiB [=== ] 14% 10.0s\u001b[0K\u001b[1G85.4 MiB [=== ] 14% 9.8s\u001b[0K\u001b[1G85.4 MiB [=== ] 15% 9.6s\u001b[0K\u001b[1G85.4 MiB [=== ] 15% 9.3s\u001b[0K\u001b[1G85.4 MiB [=== ] 15% 9.2s\u001b[0K\u001b[1G85.4 MiB [=== ] 16% 9.3s\u001b[0K\u001b[1G85.4 MiB [=== ] 16% 8.9s\u001b[0K\u001b[1G85.4 MiB [=== ] 16% 8.8s\u001b[0K\u001b[1G85.4 MiB [=== ] 17% 8.8s\u001b[0K\u001b[1G85.4 MiB [==== ] 17% 8.6s\u001b[0K\u001b[1G85.4 MiB [==== ] 17% 8.8s\u001b[0K\u001b[1G85.4 MiB [==== ] 18% 8.8s\u001b[0K\u001b[1G85.4 MiB [==== ] 18% 9.1s\u001b[0K\u001b[1G85.4 MiB [==== ] 19% 8.6s\u001b[0K\u001b[1G85.4 MiB [==== ] 19% 8.7s\u001b[0K\u001b[1G85.4 MiB [==== ] 19% 8.9s\u001b[0K\u001b[1G85.4 MiB [==== ] 19% 9.7s\u001b[0K\u001b[1G85.4 MiB [==== ] 20% 9.7s\u001b[0K\u001b[1G85.4 MiB [==== ] 21% 9.3s\u001b[0K\u001b[1G85.4 MiB [==== ] 21% 9.6s\u001b[0K\u001b[1G85.4 MiB [==== ] 22% 9.6s\u001b[0K\u001b[1G85.4 MiB [===== ] 22% 9.6s\u001b[0K\u001b[1G85.4 MiB [===== ] 23% 9.6s\u001b[0K\u001b[1G85.4 MiB [===== ] 24% 9.6s\u001b[0K\u001b[1G85.4 MiB [===== ] 24% 10.0s\u001b[0K\u001b[1G85.4 MiB [===== ] 25% 9.6s\u001b[0K\u001b[1G85.4 MiB [===== ] 26% 9.6s\u001b[0K\u001b[1G85.4 MiB [===== ] 26% 9.7s\u001b[0K\u001b[1G85.4 MiB [===== ] 26% 10.1s\u001b[0K\u001b[1G85.4 MiB [===== ] 27% 9.9s\u001b[0K\u001b[1G85.4 MiB [===== ] 27% 10.0s\u001b[0K\u001b[1G85.4 MiB [===== ] 27% 10.1s\u001b[0K\u001b[1G85.4 MiB [====== ] 27% 10.1s\u001b[0K\u001b[1G85.4 MiB [====== ] 27% 10.2s\u001b[0K\u001b[1G85.4 MiB [====== ] 27% 10.7s\u001b[0K\u001b[1G85.4 MiB [====== ] 28% 10.5s\u001b[0K\u001b[1G85.4 MiB [====== ] 28% 10.6s\u001b[0K\u001b[1G85.4 MiB [====== ] 28% 10.7s\u001b[0K\u001b[1G85.4 MiB [====== ] 29% 10.6s\u001b[0K\u001b[1G85.4 MiB [====== ] 29% 10.5s\u001b[0K\u001b[1G85.4 MiB [====== ] 29% 10.6s\u001b[0K\u001b[1G85.4 MiB [====== ] 30% 10.6s\u001b[0K\u001b[1G85.4 MiB [====== ] 30% 10.7s\u001b[0K\u001b[1G85.4 MiB [====== ] 30% 10.6s\u001b[0K\u001b[1G85.4 MiB [====== ] 31% 10.5s\u001b[0K\u001b[1G85.4 MiB [====== ] 31% 10.4s\u001b[0K\u001b[1G85.4 MiB [====== ] 31% 10.3s\u001b[0K\u001b[1G85.4 MiB [====== ] 32% 10.3s\u001b[0K\u001b[1G85.4 MiB [======= ] 32% 10.2s\u001b[0K\u001b[1G85.4 MiB [======= ] 33% 10.1s\u001b[0K\u001b[1G85.4 MiB [======= ] 33% 10.0s\u001b[0K\u001b[1G85.4 MiB [======= ] 33% 9.9s\u001b[0K\u001b[1G85.4 MiB [======= ] 34% 9.9s\u001b[0K\u001b[1G85.4 MiB [======= ] 34% 9.8s\u001b[0K\u001b[1G85.4 MiB [======= ] 34% 9.7s\u001b[0K\u001b[1G85.4 MiB [======= ] 35% 9.7s\u001b[0K\u001b[1G85.4 MiB [======= ] 35% 9.6s\u001b[0K\u001b[1G85.4 MiB [======= ] 35% 9.5s\u001b[0K\u001b[1G85.4 MiB [======= ] 36% 9.5s\u001b[0K\u001b[1G85.4 MiB [======= ] 36% 9.4s\u001b[0K\u001b[1G85.4 MiB [======= ] 36% 9.5s\u001b[0K\u001b[1G85.4 MiB [======= ] 36% 9.4s\u001b[0K\u001b[1G85.4 MiB [======= ] 36% 9.5s\u001b[0K\u001b[1G85.4 MiB [======= ] 37% 9.5s\u001b[0K\u001b[1G85.4 MiB [======= ] 37% 9.4s\u001b[0K\u001b[1G85.4 MiB [======== ] 37% 9.4s\u001b[0K\u001b[1G85.4 MiB [======== ] 38% 9.3s\u001b[0K\u001b[1G85.4 MiB [======== ] 38% 9.2s\u001b[0K\u001b[1G85.4 MiB [======== ] 38% 9.1s\u001b[0K\u001b[1G85.4 MiB [======== ] 39% 9.1s\u001b[0K\u001b[1G85.4 MiB [======== ] 39% 9.0s\u001b[0K\u001b[1G85.4 MiB [======== ] 40% 8.9s\u001b[0K\u001b[1G85.4 MiB [======== ] 40% 8.8s\u001b[0K\u001b[1G85.4 MiB [======== ] 41% 8.7s\u001b[0K\u001b[1G85.4 MiB [======== ] 41% 8.6s\u001b[0K\u001b[1G85.4 MiB [======== ] 41% 8.5s\u001b[0K\u001b[1G85.4 MiB [======== ] 42% 8.5s\u001b[0K\u001b[1G85.4 MiB [========= ] 42% 8.4s\u001b[0K\u001b[1G85.4 MiB [========= ] 42% 8.3s\u001b[0K\u001b[1G85.4 MiB [========= ] 43% 8.3s\u001b[0K\u001b[1G85.4 MiB [========= ] 43% 8.2s\u001b[0K\u001b[1G85.4 MiB [========= ] 44% 8.1s\u001b[0K\u001b[1G85.4 MiB [========= ] 44% 8.0s\u001b[0K\u001b[1G85.4 MiB [========= ] 45% 7.9s\u001b[0K\u001b[1G85.4 MiB [========= ] 45% 7.8s\u001b[0K\u001b[1G85.4 MiB [========= ] 46% 7.7s\u001b[0K\u001b[1G85.4 MiB [========= ] 46% 7.6s\u001b[0K\u001b[1G85.4 MiB [========= ] 47% 7.5s\u001b[0K\u001b[1G85.4 MiB [========== ] 47% 7.4s\u001b[0K\u001b[1G85.4 MiB [========== ] 48% 7.3s\u001b[0K\u001b[1G85.4 MiB [========== ] 48% 7.2s\u001b[0K\u001b[1G85.4 MiB [========== ] 49% 7.1s\u001b[0K\u001b[1G85.4 MiB [========== ] 50% 7.0s\u001b[0K\u001b[1G85.4 MiB [========== ] 50% 6.9s\u001b[0K\u001b[1G85.4 MiB [========== ] 51% 6.9s\u001b[0K\u001b[1G85.4 MiB [========== ] 51% 6.8s\u001b[0K\u001b[1G85.4 MiB [========== ] 51% 6.7s\u001b[0K\u001b[1G85.4 MiB [========== ] 52% 6.6s\u001b[0K\u001b[1G85.4 MiB [=========== ] 52% 6.6s\u001b[0K\u001b[1G85.4 MiB [=========== ] 53% 6.5s\u001b[0K\u001b[1G85.4 MiB [=========== ] 53% 6.4s\u001b[0K\u001b[1G85.4 MiB [=========== ] 54% 6.3s\u001b[0K\u001b[1G85.4 MiB [=========== ] 54% 6.2s\u001b[0K\u001b[1G85.4 MiB [=========== ] 55% 6.2s\u001b[0K\u001b[1G85.4 MiB [=========== ] 55% 6.1s\u001b[0K\u001b[1G85.4 MiB [=========== ] 55% 6.0s\u001b[0K\u001b[1G85.4 MiB [=========== ] 56% 6.0s\u001b[0K\u001b[1G85.4 MiB [=========== ] 56% 5.9s\u001b[0K\u001b[1G85.4 MiB [=========== ] 57% 5.8s\u001b[0K\u001b[1G85.4 MiB [=========== ] 57% 5.9s\u001b[0K\u001b[1G85.4 MiB [=========== ] 57% 5.8s\u001b[0K\u001b[1G85.4 MiB [============ ] 57% 5.7s\u001b[0K\u001b[1G85.4 MiB [============ ] 57% 5.8s\u001b[0K\u001b[1G85.4 MiB [============ ] 58% 5.8s\u001b[0K\u001b[1G85.4 MiB [============ ] 58% 5.7s\u001b[0K\u001b[1G85.4 MiB [============ ] 58% 5.6s\u001b[0K\u001b[1G85.4 MiB [============ ] 59% 5.6s\u001b[0K\u001b[1G85.4 MiB [============ ] 59% 5.5s\u001b[0K\u001b[1G85.4 MiB [============ ] 60% 5.4s\u001b[0K\u001b[1G85.4 MiB [============ ] 61% 5.3s\u001b[0K\u001b[1G85.4 MiB [============ ] 61% 5.4s\u001b[0K\u001b[1G85.4 MiB [============ ] 61% 5.3s\u001b[0K\u001b[1G85.4 MiB [============ ] 61% 5.2s\u001b[0K\u001b[1G85.4 MiB [============ ] 62% 5.2s\u001b[0K\u001b[1G85.4 MiB [============ ] 62% 5.1s\u001b[0K\u001b[1G85.4 MiB [============= ] 62% 5.1s\u001b[0K\u001b[1G85.4 MiB [============= ] 62% 5.0s\u001b[0K\u001b[1G85.4 MiB [============= ] 63% 5.0s\u001b[0K\u001b[1G85.4 MiB [============= ] 63% 4.9s\u001b[0K\u001b[1G85.4 MiB [============= ] 64% 4.9s\u001b[0K\u001b[1G85.4 MiB [============= ] 64% 4.8s\u001b[0K\u001b[1G85.4 MiB [============= ] 65% 4.7s\u001b[0K\u001b[1G85.4 MiB [============= ] 65% 4.6s\u001b[0K\u001b[1G85.4 MiB [============= ] 66% 4.6s\u001b[0K\u001b[1G85.4 MiB [============= ] 66% 4.5s\u001b[0K\u001b[1G85.4 MiB [============= ] 67% 4.4s\u001b[0K\u001b[1G85.4 MiB [============== ] 67% 4.3s\u001b[0K\u001b[1G85.4 MiB [============== ] 68% 4.3s\u001b[0K\u001b[1G85.4 MiB [============== ] 68% 4.2s\u001b[0K\u001b[1G85.4 MiB [============== ] 69% 4.1s\u001b[0K\u001b[1G85.4 MiB [============== ] 69% 4.0s\u001b[0K\u001b[1G85.4 MiB [============== ] 70% 4.0s\u001b[0K\u001b[1G85.4 MiB [============== ] 70% 3.9s\u001b[0K\u001b[1G85.4 MiB [============== ] 71% 3.8s\u001b[0K\u001b[1G85.4 MiB [============== ] 71% 3.7s\u001b[0K\u001b[1G85.4 MiB [============== ] 72% 3.7s\u001b[0K\u001b[1G85.4 MiB [=============== ] 72% 3.6s\u001b[0K\u001b[1G85.4 MiB [=============== ] 73% 3.6s\u001b[0K\u001b[1G85.4 MiB [=============== ] 73% 3.5s\u001b[0K\u001b[1G85.4 MiB [=============== ] 74% 3.4s\u001b[0K\u001b[1G85.4 MiB [=============== ] 74% 3.3s\u001b[0K\u001b[1G85.4 MiB [=============== ] 75% 3.3s\u001b[0K\u001b[1G85.4 MiB [=============== ] 75% 3.2s\u001b[0K\u001b[1G85.4 MiB [=============== ] 76% 3.1s\u001b[0K\u001b[1G85.4 MiB [=============== ] 76% 3.0s\u001b[0K\u001b[1G85.4 MiB [=============== ] 77% 3.0s\u001b[0K\u001b[1G85.4 MiB [================ ] 77% 2.9s\u001b[0K\u001b[1G85.4 MiB [================ ] 78% 2.9s\u001b[0K\u001b[1G85.4 MiB [================ ] 78% 2.8s\u001b[0K\u001b[1G85.4 MiB [================ ] 79% 2.7s\u001b[0K\u001b[1G85.4 MiB [================ ] 80% 2.6s\u001b[0K\u001b[1G85.4 MiB [================ ] 80% 2.5s\u001b[0K\u001b[1G85.4 MiB [================ ] 81% 2.5s\u001b[0K\u001b[1G85.4 MiB [================ ] 81% 2.4s\u001b[0K\u001b[1G85.4 MiB [================ ] 82% 2.3s\u001b[0K\u001b[1G85.4 MiB [================= ] 82% 2.3s\u001b[0K\u001b[1G85.4 MiB [================= ] 83% 2.2s\u001b[0K\u001b[1G85.4 MiB [================= ] 83% 2.1s\u001b[0K\u001b[1G85.4 MiB [================= ] 84% 2.1s\u001b[0K\u001b[1G85.4 MiB [================= ] 84% 2.0s\u001b[0K\u001b[1G85.4 MiB [================= ] 85% 2.0s\u001b[0K\u001b[1G85.4 MiB [================= ] 85% 1.9s\u001b[0K\u001b[1G85.4 MiB [================= ] 85% 1.8s\u001b[0K\u001b[1G85.4 MiB [================= ] 86% 1.8s\u001b[0K\u001b[1G85.4 MiB [================= ] 86% 1.7s\u001b[0K\u001b[1G85.4 MiB [================= ] 87% 1.7s\u001b[0K\u001b[1G85.4 MiB [================== ] 87% 1.6s\u001b[0K\u001b[1G85.4 MiB [================== ] 88% 1.6s\u001b[0K\u001b[1G85.4 MiB [================== ] 88% 1.5s\u001b[0K\u001b[1G85.4 MiB [================== ] 88% 1.4s\u001b[0K\u001b[1G85.4 MiB [================== ] 89% 1.4s\u001b[0K\u001b[1G85.4 MiB [================== ] 89% 1.3s\u001b[0K\u001b[1G85.4 MiB [================== ] 90% 1.3s\u001b[0K\u001b[1G85.4 MiB [================== ] 90% 1.2s\u001b[0K\u001b[1G85.4 MiB [================== ] 91% 1.2s\u001b[0K\u001b[1G85.4 MiB [================== ] 91% 1.1s\u001b[0K\u001b[1G85.4 MiB [================== ] 92% 1.0s\u001b[0K\u001b[1G85.4 MiB [=================== ] 92% 0.9s\u001b[0K\u001b[1G85.4 MiB [=================== ] 93% 0.9s\u001b[0K\u001b[1G85.4 MiB [=================== ] 93% 0.8s\u001b[0K\u001b[1G85.4 MiB [=================== ] 94% 0.8s\u001b[0K\u001b[1G85.4 MiB [=================== ] 94% 0.7s\u001b[0K\u001b[1G85.4 MiB [=================== ] 95% 0.6s\u001b[0K\u001b[1G85.4 MiB [=================== ] 95% 0.5s\u001b[0K\u001b[1G85.4 MiB [=================== ] 96% 0.5s\u001b[0K\u001b[1G85.4 MiB [=================== ] 96% 0.4s\u001b[0K\u001b[1G85.4 MiB [=================== ] 97% 0.4s\u001b[0K\u001b[1G85.4 MiB [=================== ] 97% 0.3s\u001b[0K\u001b[1G85.4 MiB [====================] 97% 0.3s\u001b[0K\u001b[1G85.4 MiB [====================] 98% 0.2s\u001b[0K\u001b[1G85.4 MiB [====================] 98% 0.1s\u001b[0K\u001b[1G85.4 MiB [====================] 99% 0.1s\u001b[0K\u001b[1G85.4 MiB [====================] 99% 0.0s\u001b[0K\u001b[1G85.4 MiB [====================] 100% 0.0s\u001b[0K\n", "Firefox 124.0 (playwright build v1447) downloaded to /home/r2q2/.cache/ms-playwright/firefox-1447\n", "Downloading Webkit 17.4 (playwright build v1992)\u001b[2m from https://playwright.azureedge.net/builds/webkit/1992/webkit-ubuntu-22.04.zip\u001b[22m\n", "\u001b[1G86.5 MiB [ ] 0% 0.0s\u001b[0K\u001b[1G86.5 MiB [ ] 0% 31.7s\u001b[0K\u001b[1G86.5 MiB [ ] 0% 62.4s\u001b[0K\u001b[1G86.5 MiB [ ] 0% 39.9s\u001b[0K\u001b[1G86.5 MiB [ ] 0% 53.9s\u001b[0K\u001b[1G86.5 MiB [ ] 0% 44.9s\u001b[0K\u001b[1G86.5 MiB [ ] 0% 40.2s\u001b[0K\u001b[1G86.5 MiB [ ] 0% 37.1s\u001b[0K\u001b[1G86.5 MiB [ ] 0% 34.8s\u001b[0K\u001b[1G86.5 MiB [ ] 0% 32.5s\u001b[0K\u001b[1G86.5 MiB [ ] 1% 30.3s\u001b[0K\u001b[1G86.5 MiB [ ] 1% 30.4s\u001b[0K\u001b[1G86.5 MiB [ ] 1% 29.2s\u001b[0K\u001b[1G86.5 MiB [ ] 1% 27.9s\u001b[0K\u001b[1G86.5 MiB [ ] 1% 28.2s\u001b[0K\u001b[1G86.5 MiB [ ] 1% 28.0s\u001b[0K\u001b[1G86.5 MiB [ ] 1% 26.8s\u001b[0K\u001b[1G86.5 MiB [ ] 1% 26.2s\u001b[0K\u001b[1G86.5 MiB [ ] 2% 25.1s\u001b[0K\u001b[1G86.5 MiB [ ] 2% 24.0s\u001b[0K\u001b[1G86.5 MiB [= ] 2% 23.7s\u001b[0K\u001b[1G86.5 MiB [= ] 2% 22.3s\u001b[0K\u001b[1G86.5 MiB [= ] 2% 22.8s\u001b[0K\u001b[1G86.5 MiB [= ] 3% 21.5s\u001b[0K\u001b[1G86.5 MiB [= ] 3% 21.8s\u001b[0K\u001b[1G86.5 MiB [= ] 3% 20.6s\u001b[0K\u001b[1G86.5 MiB [= ] 3% 21.1s\u001b[0K\u001b[1G86.5 MiB [= ] 3% 20.3s\u001b[0K\u001b[1G86.5 MiB [= ] 4% 19.9s\u001b[0K\u001b[1G86.5 MiB [= ] 4% 19.1s\u001b[0K\u001b[1G86.5 MiB [= ] 4% 18.5s\u001b[0K\u001b[1G86.5 MiB [= ] 4% 18.4s\u001b[0K\u001b[1G86.5 MiB [= ] 4% 18.3s\u001b[0K\u001b[1G86.5 MiB [= ] 5% 17.8s\u001b[0K\u001b[1G86.5 MiB [= ] 5% 17.3s\u001b[0K\u001b[1G86.5 MiB [= ] 5% 17.1s\u001b[0K\u001b[1G86.5 MiB [= ] 5% 16.6s\u001b[0K\u001b[1G86.5 MiB [= ] 6% 16.2s\u001b[0K\u001b[1G86.5 MiB [= ] 6% 15.9s\u001b[0K\u001b[1G86.5 MiB [= ] 6% 16.0s\u001b[0K\u001b[1G86.5 MiB [= ] 6% 15.5s\u001b[0K\u001b[1G86.5 MiB [= ] 6% 15.3s\u001b[0K\u001b[1G86.5 MiB [= ] 7% 14.8s\u001b[0K\u001b[1G86.5 MiB [== ] 7% 14.3s\u001b[0K\u001b[1G86.5 MiB [== ] 8% 13.6s\u001b[0K\u001b[1G86.5 MiB [== ] 8% 13.0s\u001b[0K\u001b[1G86.5 MiB [== ] 8% 13.2s\u001b[0K\u001b[1G86.5 MiB [== ] 9% 12.7s\u001b[0K\u001b[1G86.5 MiB [== ] 9% 12.3s\u001b[0K\u001b[1G86.5 MiB [== ] 10% 11.8s\u001b[0K\u001b[1G86.5 MiB [== ] 11% 11.3s\u001b[0K\u001b[1G86.5 MiB [== ] 11% 10.9s\u001b[0K\u001b[1G86.5 MiB [== ] 11% 10.8s\u001b[0K\u001b[1G86.5 MiB [== ] 12% 10.4s\u001b[0K\u001b[1G86.5 MiB [=== ] 12% 10.2s\u001b[0K\u001b[1G86.5 MiB [=== ] 13% 10.0s\u001b[0K\u001b[1G86.5 MiB [=== ] 13% 9.8s\u001b[0K\u001b[1G86.5 MiB [=== ] 13% 9.7s\u001b[0K\u001b[1G86.5 MiB [=== ] 14% 9.3s\u001b[0K\u001b[1G86.5 MiB [=== ] 14% 9.2s\u001b[0K\u001b[1G86.5 MiB [=== ] 15% 8.9s\u001b[0K\u001b[1G86.5 MiB [=== ] 15% 8.6s\u001b[0K\u001b[1G86.5 MiB [=== ] 16% 8.5s\u001b[0K\u001b[1G86.5 MiB [=== ] 16% 8.4s\u001b[0K\u001b[1G86.5 MiB [=== ] 17% 8.1s\u001b[0K\u001b[1G86.5 MiB [==== ] 17% 8.0s\u001b[0K\u001b[1G86.5 MiB [==== ] 18% 7.9s\u001b[0K\u001b[1G86.5 MiB [==== ] 18% 7.8s\u001b[0K\u001b[1G86.5 MiB [==== ] 18% 7.7s\u001b[0K\u001b[1G86.5 MiB [==== ] 19% 7.5s\u001b[0K\u001b[1G86.5 MiB [==== ] 20% 7.3s\u001b[0K\u001b[1G86.5 MiB [==== ] 20% 7.2s\u001b[0K\u001b[1G86.5 MiB [==== ] 21% 7.0s\u001b[0K\u001b[1G86.5 MiB [==== ] 21% 6.8s\u001b[0K\u001b[1G86.5 MiB [===== ] 22% 6.6s\u001b[0K\u001b[1G86.5 MiB [===== ] 22% 6.5s\u001b[0K\u001b[1G86.5 MiB [===== ] 23% 6.3s\u001b[0K\u001b[1G86.5 MiB [===== ] 24% 6.2s\u001b[0K\u001b[1G86.5 MiB [===== ] 25% 6.0s\u001b[0K\u001b[1G86.5 MiB [===== ] 25% 5.9s\u001b[0K\u001b[1G86.5 MiB [===== ] 26% 5.7s\u001b[0K\u001b[1G86.5 MiB [===== ] 27% 5.6s\u001b[0K\u001b[1G86.5 MiB [====== ] 27% 5.5s\u001b[0K\u001b[1G86.5 MiB [====== ] 28% 5.3s\u001b[0K\u001b[1G86.5 MiB [====== ] 29% 5.2s\u001b[0K\u001b[1G86.5 MiB [====== ] 30% 5.0s\u001b[0K\u001b[1G86.5 MiB [====== ] 30% 4.9s\u001b[0K\u001b[1G86.5 MiB [====== ] 31% 4.9s\u001b[0K\u001b[1G86.5 MiB [====== ] 31% 4.8s\u001b[0K\u001b[1G86.5 MiB [======= ] 33% 4.5s\u001b[0K\u001b[1G86.5 MiB [======= ] 34% 4.4s\u001b[0K\u001b[1G86.5 MiB [======= ] 35% 4.3s\u001b[0K\u001b[1G86.5 MiB [======= ] 35% 4.2s\u001b[0K\u001b[1G86.5 MiB [======= ] 36% 4.1s\u001b[0K\u001b[1G86.5 MiB [======= ] 37% 4.0s\u001b[0K\u001b[1G86.5 MiB [======== ] 37% 3.9s\u001b[0K\u001b[1G86.5 MiB [======== ] 38% 3.8s\u001b[0K\u001b[1G86.5 MiB [======== ] 39% 3.7s\u001b[0K\u001b[1G86.5 MiB [======== ] 40% 3.7s\u001b[0K\u001b[1G86.5 MiB [======== ] 40% 3.6s\u001b[0K\u001b[1G86.5 MiB [======== ] 41% 3.5s\u001b[0K\u001b[1G86.5 MiB [======== ] 42% 3.4s\u001b[0K\u001b[1G86.5 MiB [========= ] 42% 3.4s\u001b[0K\u001b[1G86.5 MiB [========= ] 43% 3.3s\u001b[0K\u001b[1G86.5 MiB [========= ] 44% 3.2s\u001b[0K\u001b[1G86.5 MiB [========= ] 45% 3.1s\u001b[0K\u001b[1G86.5 MiB [========= ] 46% 3.1s\u001b[0K\u001b[1G86.5 MiB [========= ] 46% 3.0s\u001b[0K\u001b[1G86.5 MiB [========= ] 47% 3.0s\u001b[0K\u001b[1G86.5 MiB [========== ] 48% 2.9s\u001b[0K\u001b[1G86.5 MiB [========== ] 49% 2.8s\u001b[0K\u001b[1G86.5 MiB [========== ] 51% 2.7s\u001b[0K\u001b[1G86.5 MiB [=========== ] 52% 2.6s\u001b[0K\u001b[1G86.5 MiB [=========== ] 53% 2.5s\u001b[0K\u001b[1G86.5 MiB [=========== ] 54% 2.5s\u001b[0K\u001b[1G86.5 MiB [=========== ] 56% 2.4s\u001b[0K\u001b[1G86.5 MiB [=========== ] 57% 2.3s\u001b[0K\u001b[1G86.5 MiB [============ ] 57% 2.3s\u001b[0K\u001b[1G86.5 MiB [============ ] 58% 2.2s\u001b[0K\u001b[1G86.5 MiB [============ ] 59% 2.2s\u001b[0K\u001b[1G86.5 MiB [============ ] 60% 2.2s\u001b[0K\u001b[1G86.5 MiB [============ ] 61% 2.1s\u001b[0K\u001b[1G86.5 MiB [============ ] 62% 2.1s\u001b[0K\u001b[1G86.5 MiB [============= ] 63% 2.0s\u001b[0K\u001b[1G86.5 MiB [============= ] 64% 2.0s\u001b[0K\u001b[1G86.5 MiB [============= ] 65% 1.9s\u001b[0K\u001b[1G86.5 MiB [============= ] 66% 1.8s\u001b[0K\u001b[1G86.5 MiB [============= ] 67% 1.8s\u001b[0K\u001b[1G86.5 MiB [============== ] 67% 1.8s\u001b[0K\u001b[1G86.5 MiB [============== ] 68% 1.7s\u001b[0K\u001b[1G86.5 MiB [============== ] 69% 1.7s\u001b[0K\u001b[1G86.5 MiB [============== ] 69% 1.6s\u001b[0K\u001b[1G86.5 MiB [============== ] 70% 1.6s\u001b[0K\u001b[1G86.5 MiB [============== ] 71% 1.5s\u001b[0K\u001b[1G86.5 MiB [============== ] 72% 1.5s\u001b[0K\u001b[1G86.5 MiB [=============== ] 72% 1.4s\u001b[0K\u001b[1G86.5 MiB [=============== ] 73% 1.4s\u001b[0K\u001b[1G86.5 MiB [=============== ] 74% 1.3s\u001b[0K\u001b[1G86.5 MiB [=============== ] 75% 1.3s\u001b[0K\u001b[1G86.5 MiB [=============== ] 76% 1.2s\u001b[0K\u001b[1G86.5 MiB [=============== ] 77% 1.2s\u001b[0K\u001b[1G86.5 MiB [================ ] 77% 1.2s\u001b[0K\u001b[1G86.5 MiB [================ ] 78% 1.1s\u001b[0K\u001b[1G86.5 MiB [================ ] 79% 1.1s\u001b[0K\u001b[1G86.5 MiB [================ ] 79% 1.0s\u001b[0K\u001b[1G86.5 MiB [================ ] 80% 1.0s\u001b[0K\u001b[1G86.5 MiB [================ ] 81% 1.0s\u001b[0K\u001b[1G86.5 MiB [================ ] 81% 0.9s\u001b[0K\u001b[1G86.5 MiB [================= ] 82% 0.9s\u001b[0K\u001b[1G86.5 MiB [================= ] 83% 0.9s\u001b[0K\u001b[1G86.5 MiB [================= ] 84% 0.8s\u001b[0K\u001b[1G86.5 MiB [================= ] 85% 0.8s\u001b[0K\u001b[1G86.5 MiB [================= ] 86% 0.7s\u001b[0K\u001b[1G86.5 MiB [================= ] 87% 0.7s\u001b[0K\u001b[1G86.5 MiB [================== ] 87% 0.6s\u001b[0K\u001b[1G86.5 MiB [================== ] 88% 0.6s\u001b[0K\u001b[1G86.5 MiB [================== ] 89% 0.5s\u001b[0K\u001b[1G86.5 MiB [================== ] 90% 0.5s\u001b[0K\u001b[1G86.5 MiB [================== ] 91% 0.5s\u001b[0K\u001b[1G86.5 MiB [=================== ] 92% 0.4s\u001b[0K\u001b[1G86.5 MiB [=================== ] 93% 0.3s\u001b[0K\u001b[1G86.5 MiB [=================== ] 94% 0.3s\u001b[0K\u001b[1G86.5 MiB [=================== ] 95% 0.2s\u001b[0K\u001b[1G86.5 MiB [=================== ] 96% 0.2s\u001b[0K\u001b[1G86.5 MiB [=================== ] 97% 0.1s\u001b[0K\u001b[1G86.5 MiB [====================] 98% 0.1s\u001b[0K\u001b[1G86.5 MiB [====================] 99% 0.0s\u001b[0K\u001b[1G86.5 MiB [====================] 100% 0.0s\u001b[0K\n", "Webkit 17.4 (playwright build v1992) downloaded to /home/r2q2/.cache/ms-playwright/webkit-1992\n", "Playwright Host validation warning: \n", "╔══════════════════════════════════════════════════════╗\n", "║ Host system is missing dependencies to run browsers. ║\n", "║ Missing libraries: ║\n", "║ libgstcodecparsers-1.0.so.0 ║\n", "║ libflite.so.1 ║\n", "║ libflite_usenglish.so.1 ║\n", "║ libflite_cmu_grapheme_lang.so.1 ║\n", "║ libflite_cmu_grapheme_lex.so.1 ║\n", "║ libflite_cmu_indic_lang.so.1 ║\n", "║ libflite_cmu_indic_lex.so.1 ║\n", "║ libflite_cmulex.so.1 ║\n", "║ libflite_cmu_time_awb.so.1 ║\n", "║ libflite_cmu_us_awb.so.1 ║\n", "║ libflite_cmu_us_kal16.so.1 ║\n", "║ libflite_cmu_us_kal.so.1 ║\n", "║ libflite_cmu_us_rms.so.1 ║\n", "║ libflite_cmu_us_slt.so.1 ║\n", "║ libx264.so ║\n", "╚══════════════════════════════════════════════════════╝\n", " at validateDependenciesLinux \u001b[90m(/home/r2q2/tonei/\u001b[39m.venv/lib/python3.10/site-packages/playwright/driver/package/lib/server/registry/dependencies.js:216:9\u001b[90m)\u001b[39m\n", "\u001b[90m at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\u001b[39m\n", " at async Registry._validateHostRequirements \u001b[90m(/home/r2q2/tonei/\u001b[39m.venv/lib/python3.10/site-packages/playwright/driver/package/lib/server/registry/index.js:587:43\u001b[90m)\u001b[39m\n", " at async Registry._validateHostRequirementsForExecutableIfNeeded \u001b[90m(/home/r2q2/tonei/\u001b[39m.venv/lib/python3.10/site-packages/playwright/driver/package/lib/server/registry/index.js:685:7\u001b[90m)\u001b[39m\n", " at async Registry.validateHostRequirementsForExecutablesIfNeeded \u001b[90m(/home/r2q2/tonei/\u001b[39m.venv/lib/python3.10/site-packages/playwright/driver/package/lib/server/registry/index.js:674:43\u001b[90m)\u001b[39m\n", " at async t.<anonymous> \u001b[90m(/home/r2q2/tonei/\u001b[39m.venv/lib/python3.10/site-packages/playwright/driver/package/lib/cli/program.js:119:7\u001b[90m)\u001b[39m\n" ] } ], "source": [ "!playwright install" ] }, { "cell_type": "raw", "id": "d3769cb9-bb5d-4c40-a5c7-8b6e00547baf", "metadata": {}, "source": [ "In this section, we describe our LLM agent that can exploit vulnerabilities. Our agent consists of a:\n", "\n", "1. base LLM,\n", "2. prompt,\n", "3. agent framework, and\n", "4. tools.\n", "We show a system diagram in Figure 1.\n", "\n", "We vary the base LLM in our evaluation, but note that only GPT-4 is capable of exploiting vulnerabilities in our dataset. Every other method fails.\n", "\n", "We use the ReAct agent framework as implemented in LangChain. For the OpenAI models, we use the Assistants API.\n", "\n", "We give the agent access to tools, including access to:\n", "\n", "1. web browsing elements (retrieving HTML, clicking on elements, etc.),\n", "2. a terminal,\n", "3. web search results,\n", "4. file creation and editing, and\n", "5. a code interpreter." ] }, { "cell_type": "code", "execution_count": 2, "id": "5693e427-e9db-429b-b2ff-a5df375c4b34", "metadata": {}, "outputs": [], "source": [ "from langchain import hub\n", "from langchain.agents import AgentExecutor, create_react_agent\n", "from langchain_community.tools.tavily_search import TavilySearchResults\n", "from langchain_openai import OpenAI\n", "from langchain.agents import Tool\n", "from langchain_experimental.utilities import PythonREPL\n", "from langchain_community.tools import ShellTool\n", "# If this is your first time using playwright, you'll have to install a browser executable.\n", "# Running `playwright install` by default installs a chromium browser executable.\n", "# playwright install\n", "from langchain_community.agent_toolkits import PlayWrightBrowserToolkit\n", "\n", "from langchain_community.tools.playwright.utils import (\n", " create_async_playwright_browser, # A synchronous browser is available, though it isn't compatible with jupyter.\\n\", },\n", ")\n", "# This import is required only for jupyter notebooks, since they have their own eventloop\n", "import nest_asyncio\n" ] }, { "cell_type": "markdown", "id": "9ca83b7a-2943-4687-957c-04f06b9daea5", "metadata": {}, "source": [ "# Tools" ] }, { "cell_type": "code", "execution_count": 4, "id": "2799406b-be9a-4b8c-8ddb-799ddf29e2c7", "metadata": {}, "outputs": [ { "ename": "Error", "evalue": "BrowserType.launch: Executable doesn't exist at /home/r2q2/.cache/ms-playwright/chromium-1112/chrome-linux/chrome\n╔════════════════════════════════════════════════════════════╗\n║ Looks like Playwright was just installed or updated. ║\n║ Please run the following command to download new browsers: ║\n║ ║\n║ playwright install ║\n║ ║\n║ <3 Playwright Team ║\n╚════════════════════════════════════════════════════════════╝", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mError\u001b[0m Traceback (most recent call last)", "Cell \u001b[0;32mIn[4], line 5\u001b[0m\n\u001b[1;32m 1\u001b[0m tools \u001b[38;5;241m=\u001b[39m []\n\u001b[1;32m 3\u001b[0m nest_asyncio\u001b[38;5;241m.\u001b[39mapply()\n\u001b[0;32m----> 5\u001b[0m async_browser \u001b[38;5;241m=\u001b[39m \u001b[43mcreate_async_playwright_browser\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 6\u001b[0m toolkit \u001b[38;5;241m=\u001b[39m PlayWrightBrowserToolkit\u001b[38;5;241m.\u001b[39mfrom_browser(async_browser\u001b[38;5;241m=\u001b[39masync_browser)\n\u001b[1;32m 7\u001b[0m tools\u001b[38;5;241m.\u001b[39mappend(toolkit\u001b[38;5;241m.\u001b[39mget_tools())\n", "File \u001b[0;32m~/tonei/.venv/lib/python3.10/site-packages/langchain_community/tools/playwright/utils.py:69\u001b[0m, in \u001b[0;36mcreate_async_playwright_browser\u001b[0;34m(headless, args)\u001b[0m\n\u001b[1;32m 66\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mplaywright\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01masync_api\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m async_playwright\n\u001b[1;32m 68\u001b[0m browser \u001b[38;5;241m=\u001b[39m run_async(async_playwright()\u001b[38;5;241m.\u001b[39mstart())\n\u001b[0;32m---> 69\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mrun_async\u001b[49m\u001b[43m(\u001b[49m\u001b[43mbrowser\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mchromium\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mlaunch\u001b[49m\u001b[43m(\u001b[49m\u001b[43mheadless\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mheadless\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43margs\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\n", "File \u001b[0;32m~/tonei/.venv/lib/python3.10/site-packages/langchain_community/tools/playwright/utils.py:104\u001b[0m, in \u001b[0;36mrun_async\u001b[0;34m(coro)\u001b[0m\n\u001b[1;32m 95\u001b[0m \u001b[38;5;250m\u001b[39m\u001b[38;5;124;03m\"\"\"Run an async coroutine.\u001b[39;00m\n\u001b[1;32m 96\u001b[0m \n\u001b[1;32m 97\u001b[0m \u001b[38;5;124;03mArgs:\u001b[39;00m\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 101\u001b[0m \u001b[38;5;124;03m T: The result of the coroutine.\u001b[39;00m\n\u001b[1;32m 102\u001b[0m \u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m 103\u001b[0m event_loop \u001b[38;5;241m=\u001b[39m asyncio\u001b[38;5;241m.\u001b[39mget_event_loop()\n\u001b[0;32m--> 104\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mevent_loop\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mrun_until_complete\u001b[49m\u001b[43m(\u001b[49m\u001b[43mcoro\u001b[49m\u001b[43m)\u001b[49m\n", "File \u001b[0;32m~/tonei/.venv/lib/python3.10/site-packages/nest_asyncio.py:98\u001b[0m, in \u001b[0;36m_patch_loop.<locals>.run_until_complete\u001b[0;34m(self, future)\u001b[0m\n\u001b[1;32m 95\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m f\u001b[38;5;241m.\u001b[39mdone():\n\u001b[1;32m 96\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mRuntimeError\u001b[39;00m(\n\u001b[1;32m 97\u001b[0m \u001b[38;5;124m'\u001b[39m\u001b[38;5;124mEvent loop stopped before Future completed.\u001b[39m\u001b[38;5;124m'\u001b[39m)\n\u001b[0;32m---> 98\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mf\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mresult\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n", "File \u001b[0;32m/usr/lib/python3.10/asyncio/futures.py:201\u001b[0m, in \u001b[0;36mFuture.result\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 199\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m__log_traceback \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mFalse\u001b[39;00m\n\u001b[1;32m 200\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_exception \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[0;32m--> 201\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_exception\u001b[38;5;241m.\u001b[39mwith_traceback(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_exception_tb)\n\u001b[1;32m 202\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_result\n", "File \u001b[0;32m/usr/lib/python3.10/asyncio/tasks.py:232\u001b[0m, in \u001b[0;36mTask.__step\u001b[0;34m(***failed resolving arguments***)\u001b[0m\n\u001b[1;32m 228\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[1;32m 229\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m exc \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[1;32m 230\u001b[0m \u001b[38;5;66;03m# We use the `send` method directly, because coroutines\u001b[39;00m\n\u001b[1;32m 231\u001b[0m \u001b[38;5;66;03m# don't have `__iter__` and `__next__` methods.\u001b[39;00m\n\u001b[0;32m--> 232\u001b[0m result \u001b[38;5;241m=\u001b[39m \u001b[43mcoro\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43msend\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43;01mNone\u001b[39;49;00m\u001b[43m)\u001b[49m\n\u001b[1;32m 233\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 234\u001b[0m result \u001b[38;5;241m=\u001b[39m coro\u001b[38;5;241m.\u001b[39mthrow(exc)\n", "File \u001b[0;32m~/tonei/.venv/lib/python3.10/site-packages/playwright/async_api/_generated.py:13882\u001b[0m, in \u001b[0;36mBrowserType.launch\u001b[0;34m(self, executable_path, channel, args, ignore_default_args, handle_sigint, handle_sigterm, handle_sighup, timeout, env, headless, devtools, proxy, downloads_path, slow_mo, traces_dir, chromium_sandbox, firefox_user_prefs)\u001b[0m\n\u001b[1;32m 13767\u001b[0m \u001b[38;5;28;01masync\u001b[39;00m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mlaunch\u001b[39m(\n\u001b[1;32m 13768\u001b[0m \u001b[38;5;28mself\u001b[39m,\n\u001b[1;32m 13769\u001b[0m \u001b[38;5;241m*\u001b[39m,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 13790\u001b[0m ] \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[1;32m 13791\u001b[0m ) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mBrowser\u001b[39m\u001b[38;5;124m\"\u001b[39m:\n\u001b[1;32m 13792\u001b[0m \u001b[38;5;250m \u001b[39m\u001b[38;5;124;03m\"\"\"BrowserType.launch\u001b[39;00m\n\u001b[1;32m 13793\u001b[0m \n\u001b[1;32m 13794\u001b[0m \u001b[38;5;124;03m Returns the browser instance.\u001b[39;00m\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 13878\u001b[0m \u001b[38;5;124;03m Browser\u001b[39;00m\n\u001b[1;32m 13879\u001b[0m \u001b[38;5;124;03m \"\"\"\u001b[39;00m\n\u001b[1;32m 13881\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m mapping\u001b[38;5;241m.\u001b[39mfrom_impl(\n\u001b[0;32m> 13882\u001b[0m \u001b[38;5;28;01mawait\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_impl_obj\u001b[38;5;241m.\u001b[39mlaunch(\n\u001b[1;32m 13883\u001b[0m executablePath\u001b[38;5;241m=\u001b[39mexecutable_path,\n\u001b[1;32m 13884\u001b[0m channel\u001b[38;5;241m=\u001b[39mchannel,\n\u001b[1;32m 13885\u001b[0m args\u001b[38;5;241m=\u001b[39mmapping\u001b[38;5;241m.\u001b[39mto_impl(args),\n\u001b[1;32m 13886\u001b[0m ignoreDefaultArgs\u001b[38;5;241m=\u001b[39mmapping\u001b[38;5;241m.\u001b[39mto_impl(ignore_default_args),\n\u001b[1;32m 13887\u001b[0m handleSIGINT\u001b[38;5;241m=\u001b[39mhandle_sigint,\n\u001b[1;32m 13888\u001b[0m handleSIGTERM\u001b[38;5;241m=\u001b[39mhandle_sigterm,\n\u001b[1;32m 13889\u001b[0m handleSIGHUP\u001b[38;5;241m=\u001b[39mhandle_sighup,\n\u001b[1;32m 13890\u001b[0m timeout\u001b[38;5;241m=\u001b[39mtimeout,\n\u001b[1;32m 13891\u001b[0m env\u001b[38;5;241m=\u001b[39mmapping\u001b[38;5;241m.\u001b[39mto_impl(env),\n\u001b[1;32m 13892\u001b[0m headless\u001b[38;5;241m=\u001b[39mheadless,\n\u001b[1;32m 13893\u001b[0m devtools\u001b[38;5;241m=\u001b[39mdevtools,\n\u001b[1;32m 13894\u001b[0m proxy\u001b[38;5;241m=\u001b[39mproxy,\n\u001b[1;32m 13895\u001b[0m downloadsPath\u001b[38;5;241m=\u001b[39mdownloads_path,\n\u001b[1;32m 13896\u001b[0m slowMo\u001b[38;5;241m=\u001b[39mslow_mo,\n\u001b[1;32m 13897\u001b[0m tracesDir\u001b[38;5;241m=\u001b[39mtraces_dir,\n\u001b[1;32m 13898\u001b[0m chromiumSandbox\u001b[38;5;241m=\u001b[39mchromium_sandbox,\n\u001b[1;32m 13899\u001b[0m firefoxUserPrefs\u001b[38;5;241m=\u001b[39mmapping\u001b[38;5;241m.\u001b[39mto_impl(firefox_user_prefs),\n\u001b[1;32m 13900\u001b[0m )\n\u001b[1;32m 13901\u001b[0m )\n", "File \u001b[0;32m~/tonei/.venv/lib/python3.10/site-packages/playwright/_impl/_browser_type.py:94\u001b[0m, in \u001b[0;36mBrowserType.launch\u001b[0;34m(self, executablePath, channel, args, ignoreDefaultArgs, handleSIGINT, handleSIGTERM, handleSIGHUP, timeout, env, headless, devtools, proxy, downloadsPath, slowMo, tracesDir, chromiumSandbox, firefoxUserPrefs)\u001b[0m\n\u001b[1;32m 91\u001b[0m params \u001b[38;5;241m=\u001b[39m locals_to_params(\u001b[38;5;28mlocals\u001b[39m())\n\u001b[1;32m 92\u001b[0m normalize_launch_params(params)\n\u001b[1;32m 93\u001b[0m browser \u001b[38;5;241m=\u001b[39m cast(\n\u001b[0;32m---> 94\u001b[0m Browser, from_channel(\u001b[38;5;28;01mawait\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_channel\u001b[38;5;241m.\u001b[39msend(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mlaunch\u001b[39m\u001b[38;5;124m\"\u001b[39m, params))\n\u001b[1;32m 95\u001b[0m )\n\u001b[1;32m 96\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_did_launch_browser(browser)\n\u001b[1;32m 97\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m browser\n", "File \u001b[0;32m~/tonei/.venv/lib/python3.10/site-packages/playwright/_impl/_connection.py:59\u001b[0m, in \u001b[0;36mChannel.send\u001b[0;34m(self, method, params)\u001b[0m\n\u001b[1;32m 58\u001b[0m \u001b[38;5;28;01masync\u001b[39;00m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21msend\u001b[39m(\u001b[38;5;28mself\u001b[39m, method: \u001b[38;5;28mstr\u001b[39m, params: Dict \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m Any:\n\u001b[0;32m---> 59\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;01mawait\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_connection\u001b[38;5;241m.\u001b[39mwrap_api_call(\n\u001b[1;32m 60\u001b[0m \u001b[38;5;28;01mlambda\u001b[39;00m: \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39minner_send(method, params, \u001b[38;5;28;01mFalse\u001b[39;00m)\n\u001b[1;32m 61\u001b[0m )\n", "File \u001b[0;32m~/tonei/.venv/lib/python3.10/site-packages/playwright/_impl/_connection.py:513\u001b[0m, in \u001b[0;36mConnection.wrap_api_call\u001b[0;34m(self, cb, is_internal)\u001b[0m\n\u001b[1;32m 511\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;01mawait\u001b[39;00m cb()\n\u001b[1;32m 512\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mException\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m error:\n\u001b[0;32m--> 513\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m rewrite_error(error, \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;132;01m{\u001b[39;00mparsed_st[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mapiName\u001b[39m\u001b[38;5;124m'\u001b[39m]\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m: \u001b[39m\u001b[38;5;132;01m{\u001b[39;00merror\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m\"\u001b[39m) \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[1;32m 514\u001b[0m \u001b[38;5;28;01mfinally\u001b[39;00m:\n\u001b[1;32m 515\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_api_zone\u001b[38;5;241m.\u001b[39mset(\u001b[38;5;28;01mNone\u001b[39;00m)\n", "\u001b[0;31mError\u001b[0m: BrowserType.launch: Executable doesn't exist at /home/r2q2/.cache/ms-playwright/chromium-1112/chrome-linux/chrome\n╔════════════════════════════════════════════════════════════╗\n║ Looks like Playwright was just installed or updated. ║\n║ Please run the following command to download new browsers: ║\n║ ║\n║ playwright install ║\n║ ║\n║ <3 Playwright Team ║\n╚════════════════════════════════════════════════════════════╝" ] } ], "source": [ "tools = []\n", "\n", "nest_asyncio.apply()\n", "\n", "async_browser = create_async_playwright_browser()\n", "toolkit = PlayWrightBrowserToolkit.from_browser(async_browser=async_browser)\n", "tools.append(toolkit.get_tools())\n" ] }, { "cell_type": "code", "execution_count": 7, "id": "d78b0047-67c4-4982-8abd-1d4248407397", "metadata": {}, "outputs": [], "source": [ "\n", "shell_tool = ShellTool()\n", "\n", "shell_tool.description = shell_tool.description + f\"args {shell_tool.args}\".replace(\n", " \"{\", \"{{\"\n", ").replace(\"}\", \"}}\")\n", "self_ask_with_search = initialize_agent(\n", " [shell_tool], llm, agent=AgentType.CHAT_ZERO_SHOT_REACT_DESCRIPTION, verbose=True\n", ")\n", "self_ask_with_search.run(\n", " \"Download the langchain.com webpage and grep for all urls. Return only a sorted list of them. Be sure to use double quotes.\"\n", ")\n", "tools.append(shell_tool)" ] }, { "cell_type": "code", "execution_count": 3, "id": "eb6fe7cb-1203-4d8b-aa95-491eb0fa8abc", "metadata": {}, "outputs": [], "source": [ "tools.append([TavilySearchResults(max_results=1))" ] }, { "cell_type": "code", "execution_count": null, "id": "9e97afa2-32c8-436a-a876-15130085dc0d", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 9, "id": "611a9a02-b85b-4d94-922e-3567088d8d67", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[CopyFileTool(root_dir='/tmp/tmppf02o4_b'),\n", " DeleteFileTool(root_dir='/tmp/tmppf02o4_b'),\n", " FileSearchTool(root_dir='/tmp/tmppf02o4_b'),\n", " MoveFileTool(root_dir='/tmp/tmppf02o4_b'),\n", " ReadFileTool(root_dir='/tmp/tmppf02o4_b'),\n", " WriteFileTool(root_dir='/tmp/tmppf02o4_b'),\n", " ListDirectoryTool(root_dir='/tmp/tmppf02o4_b')]" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from tempfile import TemporaryDirectory\n", "\n", "from langchain_community.agent_toolkits import FileManagementToolkit\n", "\n", "# We'll make a temporary directory to avoid clutter\n", "working_directory = TemporaryDirectory()\n", "toolkit = FileManagementToolkit(\n", " root_dir=str(working_directory.name)\n", ") # If you don't provide a root_dir, operations will default to the current working directory\n", "toolkit.get_tools()\n", "tools.extend(toolkit)" ] }, { "cell_type": "code", "execution_count": 1, "id": "ff327c5c-0a0d-43e7-ad2f-d27c97a2d845", "metadata": {}, "outputs": [], "source": [ "import getpass\n", "import os\n", "\n", "# os.environ[\"LANGCHAIN_TRACING_V2\"] = \"true\"\n", "# os.environ[\"LANGCHAIN_API_KEY\"] = getpass.getpass()" ] }, { "cell_type": "code", "execution_count": 8, "id": "6958d839-c555-4b5d-9640-a3da1b2e9672", "metadata": {}, "outputs": [], "source": [ "# Get the prompt to use - you can modify this!\n", "prompt = hub.pull(\"hwchase17/react\") #prompt is probably broken into system and user as well for this" ] }, { "cell_type": "code", "execution_count": null, "id": "0744628c-121e-4c87-b5c5-5a72fcea05da", "metadata": {}, "outputs": [], "source": [ "# Choose the LLM to use\n", "llm = OpenAI()\n", "\n", "# Construct the ReAct agent\n", "agent = create_react_agent(llm, tools, prompt)" ] }, { "cell_type": "code", "execution_count": null, "id": "115ebc53-7f10-43fd-a3a4-662c8bb050a4", "metadata": {}, "outputs": [], "source": [ "# Create an agent executor by passing in the agent and tools\n", "agent_executor = AgentExecutor(agent=agent, tools=tools, verbose=True)" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "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.10.12" } }, "nbformat": 4, "nbformat_minor": 5 }