{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Select Preference Data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-05-26T00:11:04.757824Z",
     "start_time": "2024-05-26T00:11:04.555293Z"
    },
    "execution": {
     "iopub.execute_input": "2024-07-18T05:20:06.091140Z",
     "iopub.status.busy": "2024-07-18T05:20:06.090985Z",
     "iopub.status.idle": "2024-07-18T05:20:06.241899Z",
     "shell.execute_reply": "2024-07-18T05:20:06.240749Z",
     "shell.execute_reply.started": "2024-07-18T05:20:06.091122Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Update available: 1.68.0 -> 1.68.1, run `tailscale update` or `tailscale set --auto-update` to update\n"
     ]
    }
   ],
   "source": [
    "# setup tailscale if you haven't\n",
    "# https://tailscale.com/kb/1031/install-linux\n",
    "!sudo tailscale up --accept-routes=true\n",
    "\n",
    "# setup autoload\n",
    "%load_ext autoreload\n",
    "%autoreload 2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-05-26T00:11:08.392310Z",
     "start_time": "2024-05-26T00:11:04.759383Z"
    },
    "execution": {
     "iopub.execute_input": "2024-07-18T05:20:06.242656Z",
     "iopub.status.busy": "2024-07-18T05:20:06.242506Z",
     "iopub.status.idle": "2024-07-18T05:20:09.339462Z",
     "shell.execute_reply": "2024-07-18T05:20:09.338918Z",
     "shell.execute_reply.started": "2024-07-18T05:20:06.242641Z"
    }
   },
   "outputs": [],
   "source": [
    "# pip install psycopg2-binary\n",
    "# make sure sqlalchemy is >=2\n",
    "import ast\n",
    "import json\n",
    "from urllib.parse import quote\n",
    "\n",
    "import boto3\n",
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "import sqlalchemy\n",
    "import tqdm\n",
    "from botocore.exceptions import ClientError\n",
    "from preference_helper import *\n",
    "from preference_helper import get_preferfence_counts\n",
    "from suno_utils.audio import Audio\n",
    "from suno_utils.utils.s3 import open_from_s3\n",
    "\n",
    "pd.set_option(\"display.max_rows\", 500)\n",
    "pd.set_option(\"display.max_columns\", 500)\n",
    "pd.set_option(\"display.width\", 1000)\n",
    "\n",
    "\n",
    "def get_secret():\n",
    "    secret_name = \"rds!cluster-a3b66c33-40a7-47dd-bd6e-32b1c17c9124\"\n",
    "    region_name = \"us-east-2\"\n",
    "    # Create a Secrets Manager client\n",
    "    session = boto3.session.Session()\n",
    "    client = session.client(service_name=\"secretsmanager\", region_name=region_name)\n",
    "    try:\n",
    "        get_secret_value_response = client.get_secret_value(SecretId=secret_name)\n",
    "    except ClientError as e:\n",
    "        raise e\n",
    "    secret = get_secret_value_response[\"SecretString\"]\n",
    "    return json.loads(secret)\n",
    "\n",
    "\n",
    "my_secrets = get_secret()\n",
    "\n",
    "# engine = sqlalchemy.create_engine(\"postgresql://tony:123@localhost/mydatabase\")\n",
    "# alternative...\n",
    "engine = sqlalchemy.create_engine(\n",
    "    \"postgresql://postgres:%s@suno-main-pgdb-prod-analytics.cnfvffydbwvc.us-east-2.rds.amazonaws.com/suno_main\"\n",
    "    % quote(my_secrets[\"password\"])\n",
    ")\n",
    "# connection = engine.raw_connection()\n",
    "\n",
    "# !pip install snowflake\n",
    "import snowflake.connector\n",
    "from snowflake.core import Root\n",
    "from snowflake.snowpark import Session\n",
    "\n",
    "snow_password_path = \"/home/tony/.aws/snow_pw.txt\"\n",
    "with open(snow_password_path, \"r\") as fp:\n",
    "    snow_password = fp.readlines()[0].strip()\n",
    "\n",
    "CONNECTION_PARAMETERS = {\n",
    "    \"account\": \"fu90569.us-east-2.aws\",\n",
    "    \"user\": \"TONY\",\n",
    "    \"password\": snow_password,\n",
    "    \"role\": \"ACCOUNTADMIN\",\n",
    "    \"database\": \"SUNO_PROD\",\n",
    "    \"warehouse\": \"SUNO_PROD_X_SMAL\",\n",
    "    \"schema\": \"PROD\",\n",
    "}"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Validate some info"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-05-26T00:11:08.550447Z",
     "start_time": "2024-05-26T00:11:08.397196Z"
    },
    "execution": {
     "iopub.execute_input": "2024-07-18T05:20:09.340424Z",
     "iopub.status.busy": "2024-07-18T05:20:09.340173Z",
     "iopub.status.idle": "2024-07-18T05:20:09.357810Z",
     "shell.execute_reply": "2024-07-18T05:20:09.357374Z",
     "shell.execute_reply.started": "2024-07-18T05:20:09.340405Z"
    }
   },
   "outputs": [],
   "source": [
    "# cutoff_date = \"2024-05-24 05:14:04\" # v3.5 early\n",
    "# cutoff_date = \"2024-05-30 02:03:11\" # v3.5 - 6\n",
    "# cutoff_date = \"2024-06-02 01:55:17\"\n",
    "# cutoff_date = \"2024-06-04 13:21:36\"\n",
    "# cutoff_date = \"2024-06-12 13:00:00\"  # v3.5 extend\n",
    "cutoff_date = \"2024-06-18 00:00:00\"  # user feedback out\n",
    "# cutoff_date = \"2024-06-24 16:34:00\"  # current time\n",
    "# 2 cutoff_date = \"2024-06-26 03:50:00\"  # s-11 out\n",
    "# cutoff_date = \"2024-06-27 03:50:00\"  # s-8 out\n",
    "# cutoff_date = \"2024-06-27 03:50:00\"  # s-12 out\n",
    "# cutoff_date = \" 2024-06-29 03:00:00\"  # s-13 end\n",
    "# cutoff_date = \"2024-07-01 05:00:00\"  # s-14 out\n",
    "# cutoff_date = \"2024-07-05 03:10:00\"  # s-14 out\n",
    "# cutoff_date = \"2024-07-10 04:10:00\"  # ft-1 out\n",
    "# cutoff_date = \"2024-07-10 14:45:00\"  # no-top-p out\n",
    "# cutoff_date = \"2024-07-10 19:35:00\"  # 2h ft end ~ 4hr difference\n",
    "# cutoff_date = \"2024-07-11 23:35:00\"  # v4 first test\n",
    "# cutoff_date = \"2024-07-13 04:30:00\"  # s-18/19 out\n",
    "# cutoff_date = \"2024-07-14 04:45:00\"  # ft-2 out\n",
    "# cutoff_date = \"2024-07-15 12:45:00\"  # test"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-05-26T00:11:09.349857Z",
     "start_time": "2024-05-26T00:11:08.551408Z"
    },
    "execution": {
     "iopub.execute_input": "2024-07-18T05:20:09.358552Z",
     "iopub.status.busy": "2024-07-18T05:20:09.358409Z",
     "iopub.status.idle": "2024-07-18T05:20:09.660765Z",
     "shell.execute_reply": "2024-07-18T05:20:09.660090Z",
     "shell.execute_reply.started": "2024-07-18T05:20:09.358537Z"
    }
   },
   "outputs": [],
   "source": [
    "df_all_tables = pd.read_sql_query(\n",
    "    \"SELECT table_name FROM information_schema.tables WHERE table_schema = 'public'\",\n",
    "    engine,\n",
    ")\n",
    "# should have all the basic table names here\n",
    "assert df_all_tables[\"table_name\"].nunique() >= 61"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Query the DB"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-05-26T00:11:16.899029Z",
     "start_time": "2024-05-26T00:11:09.351909Z"
    },
    "execution": {
     "iopub.execute_input": "2024-07-18T05:20:09.661749Z",
     "iopub.status.busy": "2024-07-18T05:20:09.661581Z",
     "iopub.status.idle": "2024-07-18T05:22:29.477685Z",
     "shell.execute_reply": "2024-07-18T05:22:29.477085Z",
     "shell.execute_reply.started": "2024-07-18T05:20:09.661731Z"
    }
   },
   "outputs": [],
   "source": [
    "# bots_generatedclipextra\n",
    "# 'clip_id', 'created_at', 'updated_at', 'download_audio_count', 'download_video_count', 'share_count', 'is_public_approved', 'inferred_language', 'download_audio_wav_count\n",
    "# these are all the logged actions in the prod db\n",
    "query = f\"\"\"\n",
    "SELECT * FROM bots_generatedclipextra\n",
    "WHERE updated_at>='{cutoff_date}'\n",
    "\"\"\"\n",
    "bots_action_df = pd.read_sql_query(query, engine)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-05-26T00:12:13.867775Z",
     "start_time": "2024-05-26T00:11:16.900416Z"
    },
    "execution": {
     "iopub.execute_input": "2024-07-18T05:22:29.479620Z",
     "iopub.status.busy": "2024-07-18T05:22:29.479372Z",
     "iopub.status.idle": "2024-07-18T05:42:05.878954Z",
     "shell.execute_reply": "2024-07-18T05:42:05.878386Z",
     "shell.execute_reply.started": "2024-07-18T05:22:29.479602Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "120,373,118 rows\n"
     ]
    }
   ],
   "source": [
    "# ~ 4 min...X.x\n",
    "# bots_userreaction\n",
    "# 'id', 'play_count', 'skip_count', 'flagged', 'flagged_reason', 'reaction_type', 'updated_at', 'clip_id', 'user_id', 'feedback_reason'\n",
    "# this turns out to be much smaller ~ 570k\n",
    "query = f\"\"\"\n",
    "SELECT * FROM bots_userreaction\n",
    "WHERE updated_at>='{cutoff_date}' AND play_count>0\n",
    "\"\"\"\n",
    "reaction_df = pd.read_sql_query(query, engine)\n",
    "print(f\"{reaction_df.shape[0]:,} rows\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-05-26T00:12:14.002431Z",
     "start_time": "2024-05-26T00:12:13.869298Z"
    },
    "execution": {
     "iopub.execute_input": "2024-07-18T05:42:05.879823Z",
     "iopub.status.busy": "2024-07-18T05:42:05.879664Z",
     "iopub.status.idle": "2024-07-18T05:42:08.927131Z",
     "shell.execute_reply": "2024-07-18T05:42:08.926568Z",
     "shell.execute_reply.started": "2024-07-18T05:42:05.879806Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "number of upvoates: 7,268,906 rows\n",
      "number of flagged reports: 208,915 rows\n",
      "reaction_type\n",
      "L    0.55706\n",
      "D    0.44294\n",
      "Name: proportion, dtype: float64\n"
     ]
    }
   ],
   "source": [
    "upvoted_df = reaction_df[reaction_df[\"reaction_type\"] == \"L\"].copy()\n",
    "print(f\"number of upvoates: {upvoted_df.shape[0]:,} rows\")\n",
    "upvoted_ids = upvoted_df[\"clip_id\"]\n",
    "\n",
    "flagged_df = reaction_df[reaction_df[\"flagged\"]].copy()\n",
    "print(f\"number of flagged reports: {flagged_df.shape[0]:,} rows\")\n",
    "flagged_ids = flagged_df[\"clip_id\"]\n",
    "\n",
    "# check basic reaction -- the rate should be very low\n",
    "print(reaction_df.tail(n=10000)[\"reaction_type\"].value_counts(normalize=True))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-05-26T00:12:14.504607Z",
     "start_time": "2024-05-26T00:12:14.296331Z"
    },
    "execution": {
     "iopub.execute_input": "2024-07-18T05:42:08.928009Z",
     "iopub.status.busy": "2024-07-18T05:42:08.927846Z",
     "iopub.status.idle": "2024-07-18T11:17:32.936538Z",
     "shell.execute_reply": "2024-07-18T11:17:32.935880Z",
     "shell.execute_reply.started": "2024-07-18T05:42:08.927993Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "124,396,063 rows\n"
     ]
    }
   ],
   "source": [
    "# these are continues, ~ 1,485k (much more than likes) ~ takes 3.5 mins\n",
    "# columns are:\n",
    "# 'id', 'created_at', 'updated_at', 'time_used', 'metadata', 'user_id',\n",
    "#        'status', 'discord_message_id', 'prompt_id', 'request_id',\n",
    "#        'is_generated', 's3_id', 'upvote_count', 'batch_index', 'model_name',\n",
    "#        'prompt_text', 'daily_theme_id', 'is_deleted', 'image_s3_id',\n",
    "#        'is_public', 'dislike_count', 'flag_count', 'play_count', 'skip_count',\n",
    "#        'title', 'is_public_approved', 'slug'\n",
    "\n",
    "# find all the complete clips -- this query takes ~ 10 sec\n",
    "# query = \"\"\"\n",
    "# SELECT COUNT(*) FROM bots_generatedclip\n",
    "# \"\"\"\n",
    "# clip_counts = pd.read_sql_query(query, engine)\n",
    "# all_total_clip_counts = clip_counts[\"count\"][0]\n",
    "# print(f\"all version total clips: {all_total_clip_counts}\")\n",
    "\n",
    "# query = \"\"\"\n",
    "# SELECT COUNT(*) FROM bots_generatedclip\n",
    "# WHERE status='complete' AND model_name::text LIKE '%%v3%%'\n",
    "# \"\"\"\n",
    "# clip_counts = pd.read_sql_query(query, engine)\n",
    "# all_total_clip_counts = clip_counts[\"count\"][0]\n",
    "# print(f\"v3 version total clips: {all_total_clip_counts}\")\n",
    "\n",
    "# ~ 1h 25 mins...or, 3 days takes ~ 15 mins\n",
    "# NOTE that we need to query everything cause contact / continue can come from another model\n",
    "\n",
    "# TODO: query only v3 here....\n",
    "# This is still a lot...we will have to do this in steps very soon\n",
    "# Some data eng required, disk is much cheaper\n",
    "# the generated clips table has play count issues (we need to read it without filtering on playcounts)\n",
    "# AND model_name::text LIKE '%%v3%%' AND play_count>=1\n",
    "# AND model_name::text LIKE '%%v3p5%%'\n",
    "query = f\"\"\"\n",
    "SELECT * FROM bots_generatedclip\n",
    "WHERE status='complete' AND created_at>='{cutoff_date}'\n",
    "\"\"\"\n",
    "total_clip_df = pd.read_sql_query(query, engine)\n",
    "print(f\"{total_clip_df.shape[0]:,} rows\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-05-26T00:22:56.476914Z",
     "start_time": "2024-05-26T00:22:06.973099Z"
    },
    "execution": {
     "iopub.execute_input": "2024-07-18T11:17:32.937419Z",
     "iopub.status.busy": "2024-07-18T11:17:32.937261Z"
    }
   },
   "outputs": [],
   "source": [
    "# get playlists\n",
    "query = f\"\"\"\n",
    "SELECT * FROM bots_playlistclip\n",
    "WHERE updated_at>='{cutoff_date}'\n",
    "\"\"\"\n",
    "playlist_clip_df = pd.read_sql_query(query, engine)\n",
    "print(f\"{playlist_clip_df.shape[0]:,} playlists updated\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "query = \"\"\"\n",
    "SELECT *\n",
    "FROM auth_user_groups\n",
    "\"\"\"\n",
    "auth_user_df = pd.read_sql_query(query, engine)\n",
    "print(\"authenticated users\", auth_user_df.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "query = f\"\"\"\n",
    "SELECT * FROM bots_discordinfo\n",
    "WHERE subscription_status IN ('active', 'past_due')\n",
    "\"\"\"\n",
    "df_discord_info = pd.read_sql_query(\n",
    "    query,\n",
    "    engine,\n",
    ")\n",
    "# current active subscribers?\n",
    "print(df_discord_info[\"subscription_status\"].value_counts())\n",
    "# this is probably the right way to figure out the pro user group\n",
    "pro_users = set(df_discord_info[\"user_id\"].unique())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# filter on versions\n",
    "# clip_df = total_clip_df[\n",
    "#     ((total_clip_df[\"model_name\"].str.contains(\"v3\")) | (total_clip_df[\"model_name\"].str.contains(\"v4\")))  # or v3...\n",
    "#     & (total_clip_df[\"created_at\"] >= \"2024-02-20\")\n",
    "# ].copy()\n",
    "clip_df = total_clip_df.copy()\n",
    "# print(f\"total v3 selected fraction = {clip_df.shape[0] / all_total_clip_counts}\")\n",
    "total_clip_counts = clip_df.shape[0]\n",
    "print(f\"total clips: {total_clip_counts}\")\n",
    "# check the number of audio uploads\n",
    "upload_clip_df = total_clip_df[total_clip_df[\"s3_id\"].str.startswith(\"m_\")].copy()\n",
    "print(\"total uploads:\", (total_clip_df[\"model_name\"] == \"\").sum(), upload_clip_df.shape)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Proceed with feature engineering and cleaning up"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-07-18T13:57:30.716351Z",
     "iopub.status.busy": "2024-07-18T13:57:30.715956Z",
     "iopub.status.idle": "2024-07-18T13:57:37.103756Z",
     "shell.execute_reply": "2024-07-18T13:57:37.103127Z",
     "shell.execute_reply.started": "2024-07-18T13:57:30.716332Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Pro reactions fraction by category:\n",
      "False: 68.29%\n",
      "True: 31.71%\n",
      "Pro generation fraction by category:\n",
      "False: 61.86%\n",
      "True: 38.14%\n",
      "pro users with generations 189494\n"
     ]
    }
   ],
   "source": [
    "# this is very interesting....\n",
    "# reaction check\n",
    "reaction_df[\"is_pro_user\"] = reaction_df[\"user_id\"].isin(pro_users)\n",
    "pro_reactions_frac = reaction_df[\"is_pro_user\"].value_counts(normalize=True)\n",
    "print(\"Pro reactions fraction by category:\")\n",
    "for category, fraction in pro_reactions_frac.items():\n",
    "    print(f\"{category}: {fraction:.2%}\")\n",
    "# clip check\n",
    "clip_df[\"is_pro_user\"] = clip_df[\"user_id\"].isin(pro_users)\n",
    "pro_gen_frac = clip_df[\"is_pro_user\"].value_counts(normalize=True)\n",
    "print(\"Pro generation fraction by category:\")\n",
    "for category, fraction in pro_gen_frac.items():\n",
    "    print(f\"{category}: {fraction:.2%}\")\n",
    "print(\n",
    "    \"pro users with generations\", clip_df[\"user_id\"][clip_df[\"is_pro_user\"]].nunique()\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-05-26T00:23:12.019778Z",
     "start_time": "2024-05-26T00:22:57.637371Z"
    },
    "execution": {
     "iopub.execute_input": "2024-07-18T13:57:37.105046Z",
     "iopub.status.busy": "2024-07-18T13:57:37.104879Z",
     "iopub.status.idle": "2024-07-18T13:59:28.288762Z",
     "shell.execute_reply": "2024-07-18T13:59:28.288145Z",
     "shell.execute_reply.started": "2024-07-18T13:57:37.105029Z"
    }
   },
   "outputs": [],
   "source": [
    "# add clip is in playlist feature\n",
    "# check if a clip is in a playlist\n",
    "clip_df[\"is_in_playlist\"] = clip_df[\"id\"].isin(playlist_clip_df[\"clip_id\"].unique())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-07-18T13:59:28.289695Z",
     "iopub.status.busy": "2024-07-18T13:59:28.289535Z",
     "iopub.status.idle": "2024-07-18T14:01:56.186426Z",
     "shell.execute_reply": "2024-07-18T14:01:56.185505Z",
     "shell.execute_reply.started": "2024-07-18T13:59:28.289679Z"
    }
   },
   "outputs": [],
   "source": [
    "def parse_parent_id(x):\n",
    "    \"\"\"Find out a clip's parent id.\"\"\"\n",
    "    if \"history\" not in x:\n",
    "        return None\n",
    "    out = x.get(\"history\", [])\n",
    "    if not isinstance(out, list) or len(out) == 0:\n",
    "        return None\n",
    "    # take the last one cause we continue off the children?\n",
    "    out = out[-1]\n",
    "    if isinstance(out, dict):\n",
    "        # this is the continued info, which is a dict with id and continue_at\n",
    "        return out[\"id\"]\n",
    "    else:\n",
    "        return None\n",
    "\n",
    "\n",
    "def parse_duration(x):\n",
    "    \"\"\"Find out a clip's duration.\"\"\"\n",
    "    if \"duration\" not in x:\n",
    "        return None\n",
    "    return x.get(\"duration\")\n",
    "\n",
    "\n",
    "def parse_source(x):\n",
    "    \"\"\"Find out a clip's source (web/ios).\"\"\"\n",
    "    if \"source\" not in x:\n",
    "        return None\n",
    "    return x.get(\"source\")\n",
    "\n",
    "\n",
    "def parse_metadata_for_basics(x):\n",
    "    \"\"\"Parse the metadata for basics.\"\"\"\n",
    "    parent_id = parse_parent_id(x)\n",
    "    duration = parse_duration(x)\n",
    "    source = parse_source(x)\n",
    "    return parent_id, duration, source\n",
    "\n",
    "\n",
    "clip_df[[\"continued_parent\", \"duration\", \"source\"]] = pd.DataFrame(\n",
    "    clip_df[\"metadata\"].map(parse_metadata_for_basics).tolist(), index=clip_df.index\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-05-26T00:23:17.912428Z",
     "start_time": "2024-05-26T00:23:12.021726Z"
    },
    "execution": {
     "iopub.execute_input": "2024-07-18T14:01:56.200841Z",
     "iopub.status.busy": "2024-07-18T14:01:56.187435Z",
     "iopub.status.idle": "2024-07-18T14:02:38.898583Z",
     "shell.execute_reply": "2024-07-18T14:02:38.897893Z",
     "shell.execute_reply.started": "2024-07-18T14:01:56.200794Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "clips that have children: 10762698 \n",
      " clips that are parents: 2027714 \n",
      " Average continues from clip =  5.31\n"
     ]
    }
   ],
   "source": [
    "clip_history_df = clip_df[~clip_df[\"continued_parent\"].isna()].copy()\n",
    "continued_ids = clip_history_df[\"id\"]\n",
    "# these are the direct parent's ids -- not grandparents\n",
    "has_continued_children_ids = clip_history_df[\"continued_parent\"]\n",
    "print(\n",
    "    \"clips that have children:\",\n",
    "    len(has_continued_children_ids),\n",
    "    \"\\n clips that are parents:\",\n",
    "    has_continued_children_ids.nunique(),\n",
    "    \"\\n\",\n",
    "    \"Average continues from clip = \",\n",
    "    round(\n",
    "        len(has_continued_children_ids) / len(has_continued_children_ids.unique()), 2\n",
    "    ),\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-05-26T00:23:22.092835Z",
     "start_time": "2024-05-26T00:23:17.914456Z"
    },
    "execution": {
     "iopub.execute_input": "2024-07-18T14:02:38.901376Z",
     "iopub.status.busy": "2024-07-18T14:02:38.899960Z",
     "iopub.status.idle": "2024-07-18T14:04:53.443026Z",
     "shell.execute_reply": "2024-07-18T14:04:53.442213Z",
     "shell.execute_reply.started": "2024-07-18T14:02:38.901346Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "total uploads: 0\n",
      "Clips without request id (concat, uploads...) frac = 0.00000\n"
     ]
    }
   ],
   "source": [
    "print(\"total uploads:\", (clip_df[\"model_name\"] == \"\").sum())\n",
    "# the nans are concats, we want to drop them for now\n",
    "concated_clips = clip_df[clip_df[\"request_id\"].isna()].copy()\n",
    "# need to kick them out...\n",
    "clip_df = clip_df[~clip_df[\"request_id\"].isna()]\n",
    "print(\n",
    "    f\"Clips without request id (concat, uploads...) frac = {concated_clips.shape[0] / total_clip_counts:.5f}\"\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-05-26T00:23:22.833148Z",
     "start_time": "2024-05-26T00:23:22.094796Z"
    },
    "execution": {
     "iopub.execute_input": "2024-07-18T14:04:53.444328Z",
     "iopub.status.busy": "2024-07-18T14:04:53.443959Z",
     "iopub.status.idle": "2024-07-18T14:05:05.645967Z",
     "shell.execute_reply": "2024-07-18T14:05:05.645348Z",
     "shell.execute_reply.started": "2024-07-18T14:04:53.444307Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "chirp-v3p5-engine-s-8 --> 0.80222\n",
      "chirp-v3-engine-i --> 0.05216\n",
      "chirp-v3p5-engine-upload-4 --> 0.05026\n",
      "chirp-v3p5-engine-ft-1 --> 0.02768\n",
      "chirp-v3p5-engine-ft --> 0.02275\n",
      "chirp-v3p5-engine-s-14 --> 0.01072\n",
      "chirp-v3p5-engine-upload --> 0.00817\n",
      "chirp-v2-xxl-alpha --> 0.00623\n",
      "chirp-v3p5-engine-t-1 --> 0.00516\n",
      "chirp-v3p5-engine-s-8-no-top-p --> 0.00487\n",
      "chirp-v3p5-engine-upload-2 --> 0.00271\n",
      "chirp-v3p5-engine-s-12 --> 0.00202\n",
      "chirp-v3p5-engine-s-13 --> 0.00124\n",
      "chirp-v3p5-engine-t --> 0.00111\n",
      "chirp-v3p5-engine-s-19 --> 0.00098\n",
      "chirp-v3p5-engine-s-18 --> 0.00098\n",
      "chirp-v3p5-engine-ft-2 --> 0.00075\n"
     ]
    }
   ],
   "source": [
    "# check the model conts\n",
    "value_counts = clip_df[\"model_name\"].value_counts()\n",
    "total_count = value_counts.sum()\n",
    "for model_name, count in value_counts.items():\n",
    "    model_fraction = round(count / total_count, 5)\n",
    "    print(f\"{model_name} --> {model_fraction:.5f}\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-05-26T00:23:26.317699Z",
     "start_time": "2024-05-26T00:23:22.835074Z"
    },
    "execution": {
     "iopub.execute_input": "2024-07-18T14:05:05.646874Z",
     "iopub.status.busy": "2024-07-18T14:05:05.646713Z",
     "iopub.status.idle": "2024-07-18T14:05:46.121756Z",
     "shell.execute_reply": "2024-07-18T14:05:46.120872Z",
     "shell.execute_reply.started": "2024-07-18T14:05:05.646856Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "pre-filter model type clip_df shape: (91606274, 31)\n",
      "post-filter model type clip_df shape: (91606274, 31)\n"
     ]
    }
   ],
   "source": [
    "print(\"pre-filter model type clip_df shape:\", clip_df.shape)\n",
    "clip_df = clip_df[\n",
    "    clip_df[\"model_name\"].isin(\n",
    "        [\n",
    "            \"chirp-v2-xxl-alpha\",\n",
    "            \"chirp-v3-engine-i\",\n",
    "            \"chirp-v3p5-engine-d\",\n",
    "            \"chirp-v3p5-engine-s\",\n",
    "            \"chirp-v3p5-engine-s-8\",\n",
    "            \"chirp-v3p5-engine-s-12\",\n",
    "            \"chirp-v3p5-engine-s-13\",\n",
    "            \"chirp-v3p5-engine-s-14\",\n",
    "            \"chirp-v3p5-engine-s-15\",\n",
    "            \"chirp-v3p5-engine-s-18\",\n",
    "            \"chirp-v3p5-engine-s-19\",\n",
    "            \"chirp-v3p5-engine-ft\",\n",
    "            \"chirp-v3p5-engine-ft-1\",\n",
    "            \"chirp-v3p5-engine-ft-2\",\n",
    "            \"chirp-v3p5-engine-s-8-no-top-p\",\n",
    "            \"chirp-v3p5-engine-t\",\n",
    "            \"chirp-v3p5-engine-t-1\",\n",
    "            \"\",\n",
    "            \"chirp-v3p5-engine-upload\",\n",
    "            \"chirp-v3p5-engine-upload-2\",\n",
    "            \"chirp-v3p5-engine-upload-4\",\n",
    "        ]\n",
    "    )\n",
    "]\n",
    "print(\"post-filter model type clip_df shape:\", clip_df.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-05-26T00:23:26.994407Z",
     "start_time": "2024-05-26T00:23:26.319359Z"
    },
    "execution": {
     "iopub.execute_input": "2024-07-18T14:05:46.122884Z",
     "iopub.status.busy": "2024-07-18T14:05:46.122706Z",
     "iopub.status.idle": "2024-07-18T14:05:57.981002Z",
     "shell.execute_reply": "2024-07-18T14:05:57.974982Z",
     "shell.execute_reply.started": "2024-07-18T14:05:46.122865Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "model_name\n",
      "chirp-v3p5-engine-s-8             73488518\n",
      "chirp-v3-engine-i                  4777932\n",
      "chirp-v3p5-engine-upload-4         4603921\n",
      "chirp-v3p5-engine-ft-1             2535582\n",
      "chirp-v3p5-engine-ft               2084192\n",
      "chirp-v3p5-engine-s-14              982174\n",
      "chirp-v3p5-engine-upload            747995\n",
      "chirp-v2-xxl-alpha                  571015\n",
      "chirp-v3p5-engine-t-1               472442\n",
      "chirp-v3p5-engine-s-8-no-top-p      445752\n",
      "chirp-v3p5-engine-upload-2          247950\n",
      "chirp-v3p5-engine-s-12              184937\n",
      "chirp-v3p5-engine-s-13              113466\n",
      "chirp-v3p5-engine-t                 102090\n",
      "chirp-v3p5-engine-s-19               89895\n",
      "chirp-v3p5-engine-s-18               89825\n",
      "chirp-v3p5-engine-ft-2               68588\n",
      "Name: count, dtype: int64\n"
     ]
    }
   ],
   "source": [
    "print(clip_df[\"model_name\"].value_counts())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-05-26T00:23:33.488829Z",
     "start_time": "2024-05-26T00:23:27.161663Z"
    },
    "execution": {
     "iopub.execute_input": "2024-07-18T14:05:57.982141Z",
     "iopub.status.busy": "2024-07-18T14:05:57.981958Z",
     "iopub.status.idle": "2024-07-18T14:06:07.853988Z",
     "shell.execute_reply": "2024-07-18T14:06:07.853416Z",
     "shell.execute_reply.started": "2024-07-18T14:05:57.982123Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "concat reactions: 0 unique concat clips: 0\n"
     ]
    }
   ],
   "source": [
    "# ~ only 1 min :)\n",
    "# find all the concact clip reactions\n",
    "concat_reaction_df = reaction_df[\n",
    "    reaction_df[\"clip_id\"].isin(concated_clips[\"id\"])\n",
    "].copy()\n",
    "print(\n",
    "    \"concat reactions:\",\n",
    "    concat_reaction_df.shape[0],\n",
    "    \"unique concat clips:\",\n",
    "    concat_reaction_df[\"clip_id\"].nunique(),\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-07-18T14:06:07.854903Z",
     "iopub.status.busy": "2024-07-18T14:06:07.854743Z",
     "iopub.status.idle": "2024-07-18T14:06:07.879749Z",
     "shell.execute_reply": "2024-07-18T14:06:07.879029Z",
     "shell.execute_reply.started": "2024-07-18T14:06:07.854885Z"
    }
   },
   "outputs": [],
   "source": [
    "concat_reaction_df[\"upvote_count\"] = concat_reaction_df[\"reaction_type\"] == \"L\"\n",
    "concat_reaction_df[\"dislike_count\"] = concat_reaction_df[\"reaction_type\"] == \"D\""
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-05-26T00:23:34.169887Z",
     "start_time": "2024-05-26T00:23:33.491114Z"
    },
    "execution": {
     "iopub.execute_input": "2024-07-18T14:06:07.883640Z",
     "iopub.status.busy": "2024-07-18T14:06:07.880401Z",
     "iopub.status.idle": "2024-07-18T14:06:07.945118Z",
     "shell.execute_reply": "2024-07-18T14:06:07.944504Z",
     "shell.execute_reply.started": "2024-07-18T14:06:07.883604Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "total concats (0, 34)\n",
      "check \n",
      "        reaction_play_count  reaction_upvote_count  reaction_dislike_count\n",
      "count                  0.0                    0.0                     0.0\n",
      "mean                   NaN                    NaN                     NaN\n",
      "std                    NaN                    NaN                     NaN\n",
      "min                    NaN                    NaN                     NaN\n",
      "25%                    NaN                    NaN                     NaN\n",
      "50%                    NaN                    NaN                     NaN\n",
      "75%                    NaN                    NaN                     NaN\n",
      "max                    NaN                    NaN                     NaN\n"
     ]
    }
   ],
   "source": [
    "concat_total_reaction_df_sum = concat_reaction_df.groupby(\"clip_id\")[\n",
    "    [\"play_count\", \"upvote_count\", \"dislike_count\"]\n",
    "].sum()\n",
    "concat_total_reaction_df_sum_df = concat_total_reaction_df_sum.reset_index().rename(\n",
    "    columns={\n",
    "        \"clip_id\": \"id\",\n",
    "        \"play_count\": \"reaction_play_count\",\n",
    "        \"upvote_count\": \"reaction_upvote_count\",\n",
    "        \"dislike_count\": \"reaction_dislike_count\",\n",
    "    }\n",
    ")\n",
    "concated_clips = concated_clips.merge(\n",
    "    concat_total_reaction_df_sum_df, on=\"id\", how=\"left\"\n",
    ")\n",
    "\n",
    "print(\"total concats\", concated_clips.shape)\n",
    "print(\n",
    "    \"check \\n\",\n",
    "    concated_clips[\n",
    "        [\"reaction_play_count\", \"reaction_upvote_count\", \"reaction_dislike_count\"]\n",
    "    ].describe(),\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-07-18T14:06:07.945988Z",
     "iopub.status.busy": "2024-07-18T14:06:07.945829Z",
     "iopub.status.idle": "2024-07-18T14:06:08.000952Z",
     "shell.execute_reply": "2024-07-18T14:06:08.000532Z",
     "shell.execute_reply.started": "2024-07-18T14:06:07.945971Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "check \n",
      "        reaction_play_count  reaction_upvote_count  reaction_dislike_count\n",
      "count                  0.0                    0.0                     0.0\n",
      "mean                   NaN                    NaN                     NaN\n",
      "std                    NaN                    NaN                     NaN\n",
      "min                    NaN                    NaN                     NaN\n",
      "25%                    NaN                    NaN                     NaN\n",
      "50%                    NaN                    NaN                     NaN\n",
      "75%                    NaN                    NaN                     NaN\n",
      "max                    NaN                    NaN                     NaN\n"
     ]
    }
   ],
   "source": [
    "print(\n",
    "    \"check \\n\",\n",
    "    concated_clips[\n",
    "        [\"reaction_play_count\", \"reaction_upvote_count\", \"reaction_dislike_count\"]\n",
    "    ].describe(),\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-07-18T14:06:08.003033Z",
     "iopub.status.busy": "2024-07-18T14:06:08.001807Z",
     "iopub.status.idle": "2024-07-18T14:06:08.043517Z",
     "shell.execute_reply": "2024-07-18T14:06:08.042946Z",
     "shell.execute_reply.started": "2024-07-18T14:06:08.003008Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Concats without reaction play count 0\n",
      "total concats with plays 0\n"
     ]
    }
   ],
   "source": [
    "# TODO: why so many clips are concats without plays??? -- oh probably they concat multiple times?\n",
    "print(\"Concats without reaction play count\", concated_clips.shape[0])\n",
    "concated_clips = concated_clips[concated_clips[\"reaction_play_count\"] > 0]\n",
    "print(\"total concats with plays\", concated_clips.shape[0])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-05-26T00:23:38.974479Z",
     "start_time": "2024-05-26T00:23:34.385507Z"
    },
    "execution": {
     "iopub.execute_input": "2024-07-18T14:06:08.046043Z",
     "iopub.status.busy": "2024-07-18T14:06:08.045809Z",
     "iopub.status.idle": "2024-07-18T14:06:08.117986Z",
     "shell.execute_reply": "2024-07-18T14:06:08.117206Z",
     "shell.execute_reply.started": "2024-07-18T14:06:08.046026Z"
    }
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "0it [00:00, ?it/s]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "total concat unique clips are: 0 with error: 0, duplicate 0 \n",
      " uploads are in concats 0 frac 0.000\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\n"
     ]
    }
   ],
   "source": [
    "# this is each clip. and the mapped start time of the clip\n",
    "# for a clip in the concat history, we want to know which part it is starting / ending\n",
    "concat_clips_ids = {}\n",
    "history_error_counter = 0\n",
    "history_duplicate_error_counter = 0\n",
    "for _, row in tqdm.tqdm(concated_clips.iterrows()):\n",
    "    if concat_history_clips := row[\"metadata\"].get(\"concat_history\"):\n",
    "        total_duration = row[\"metadata\"].get(\"duration\", 0)\n",
    "        if total_duration == 0:\n",
    "            print(row[\"metadata\"], row[\"model_name\"])\n",
    "            continue\n",
    "        start_s = 0\n",
    "        for history_clip in concat_history_clips:\n",
    "            if isinstance(history_clip, dict) and \"id\" in history_clip:\n",
    "                # the other key is `continue_at`\n",
    "                if history_clip[\"id\"]:\n",
    "                    # in case a clip ends up in multiple concats, we need to choose the optimal one\n",
    "                    if history_clip[\"id\"] in concat_clips_ids:\n",
    "                        # keep the highest upvote clip\n",
    "                        if (\n",
    "                            row[\"reaction_upvote_count\"]\n",
    "                            < concat_clips_ids[history_clip[\"id\"]][\"concat_likes\"]\n",
    "                        ):\n",
    "                            continue\n",
    "                        # then keep the highest play count clip\n",
    "                        if (\n",
    "                            row[\"reaction_play_count\"]\n",
    "                            < concat_clips_ids[history_clip[\"id\"]][\"concat_play_counts\"]\n",
    "                        ):\n",
    "                            continue\n",
    "                        # multi-seed to concats\n",
    "                        history_duplicate_error_counter += 1\n",
    "                    concat_clips_ids[history_clip[\"id\"]] = {\n",
    "                        \"total_start_s\": start_s,\n",
    "                        \"total_clip_s\": total_duration,\n",
    "                        \"concat_play_counts\": row[\"reaction_play_count\"],\n",
    "                        \"concat_in_playlist\": row[\"is_in_playlist\"],\n",
    "                        \"concat_likes\": row[\"reaction_upvote_count\"],\n",
    "                        \"concat_dislikes\": row[\"reaction_dislike_count\"],\n",
    "                    }\n",
    "                else:\n",
    "                    history_error_counter += 1\n",
    "                try:\n",
    "                    # but we always update the start_s -- but keep the relative orders\n",
    "                    if history_clip[\"continue_at\"] is None:\n",
    "                        # we need to go back and fetch the duration\n",
    "                        if history_clip[\"id\"] in clip_df[\"id\"]:\n",
    "                            start_s += clip_df[clip_df[\"id\"] == history_clip[\"id\"]][\n",
    "                                \"duration\"\n",
    "                            ].iloc[0]\n",
    "                        else:\n",
    "                            # This is wrong but what can we do...\n",
    "                            # this clip isn't kept in the query\n",
    "                            start_s = 0\n",
    "                    else:\n",
    "                        start_s += history_clip[\"continue_at\"]\n",
    "                except:\n",
    "                    print(history_clip)\n",
    "                    raise\n",
    "\n",
    "n_unique_uploads_in_concats = len(\n",
    "    set(i for i in concat_clips_ids if i.startswith(\"m_\"))\n",
    ")\n",
    "print(\n",
    "    \"total concat unique clips are:\",\n",
    "    len(concat_clips_ids),\n",
    "    f\"with error: {history_error_counter}, duplicate {history_duplicate_error_counter}\",\n",
    "    \"\\n\",\n",
    "    \"uploads are in concats\",\n",
    "    n_unique_uploads_in_concats,\n",
    "    \"frac\",\n",
    "    f\"{n_unique_uploads_in_concats / upload_clip_df.shape[0]:.3f}\",\n",
    ")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Features"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-05-26T00:23:40.236690Z",
     "start_time": "2024-05-26T00:23:39.995713Z"
    },
    "execution": {
     "iopub.execute_input": "2024-07-18T14:06:08.119105Z",
     "iopub.status.busy": "2024-07-18T14:06:08.118923Z",
     "iopub.status.idle": "2024-07-18T14:06:15.195019Z",
     "shell.execute_reply": "2024-07-18T14:06:15.184526Z",
     "shell.execute_reply.started": "2024-07-18T14:06:08.119086Z"
    }
   },
   "outputs": [],
   "source": [
    "# set user number of clips generated\n",
    "clip_df[\"user_n_clips\"] = clip_df[\"user_id\"].map(clip_df[\"user_id\"].value_counts())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-05-26T00:23:44.826860Z",
     "start_time": "2024-05-26T00:23:40.238330Z"
    },
    "execution": {
     "iopub.execute_input": "2024-07-18T14:06:15.196065Z",
     "iopub.status.busy": "2024-07-18T14:06:15.195853Z",
     "iopub.status.idle": "2024-07-18T14:07:50.930598Z",
     "shell.execute_reply": "2024-07-18T14:07:50.926853Z",
     "shell.execute_reply.started": "2024-07-18T14:06:15.196045Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "has upvoted upvoted\n",
      "False    86818728\n",
      "True      4787546\n",
      "Name: count, dtype: int64 upvoted\n",
      "False    0.947738\n",
      "True     0.052262\n",
      "Name: proportion, dtype: float64 upvote_count\n",
      "False    0.947095\n",
      "True     0.052905\n",
      "Name: proportion, dtype: float64\n"
     ]
    }
   ],
   "source": [
    "# add upvoted column\n",
    "clip_df[\"upvoted\"] = clip_df[\"id\"].isin(upvoted_ids)\n",
    "print(\n",
    "    \"has upvoted\",\n",
    "    clip_df[\"upvoted\"].value_counts(),\n",
    "    clip_df[\"upvoted\"].value_counts(normalize=True),\n",
    "    (clip_df[\"upvote_count\"] >= 1).value_counts(normalize=True),\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-05-26T00:23:48.404433Z",
     "start_time": "2024-05-26T00:23:44.857788Z"
    },
    "execution": {
     "iopub.execute_input": "2024-07-18T14:07:50.931995Z",
     "iopub.status.busy": "2024-07-18T14:07:50.931445Z",
     "iopub.status.idle": "2024-07-18T14:09:42.332595Z",
     "shell.execute_reply": "2024-07-18T14:09:42.331979Z",
     "shell.execute_reply.started": "2024-07-18T14:07:50.931965Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "total downvoted (4465978,) has downvoted downvoted\n",
      "False    88376271\n",
      "True      3230003\n",
      "Name: count, dtype: int64 downvoted\n",
      "False    0.96474\n",
      "True     0.03526\n",
      "Name: proportion, dtype: float64 dislike_count\n",
      "False    0.96286\n",
      "True     0.03714\n",
      "Name: proportion, dtype: float64\n"
     ]
    }
   ],
   "source": [
    "disliked_ids = reaction_df[reaction_df[\"reaction_type\"] == \"D\"][\"clip_id\"].unique()\n",
    "\n",
    "clip_df[\"downvoted\"] = clip_df[\"id\"].isin(disliked_ids)\n",
    "print(\n",
    "    \"total downvoted\",\n",
    "    disliked_ids.shape,\n",
    "    \"has downvoted\",\n",
    "    clip_df[\"downvoted\"].value_counts(),\n",
    "    clip_df[\"downvoted\"].value_counts(normalize=True),\n",
    "    (clip_df[\"dislike_count\"] >= 1).value_counts(normalize=True),\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-05-26T00:23:56.590022Z",
     "start_time": "2024-05-26T00:23:48.405668Z"
    },
    "execution": {
     "iopub.execute_input": "2024-07-18T14:09:42.333600Z",
     "iopub.status.busy": "2024-07-18T14:09:42.333421Z",
     "iopub.status.idle": "2024-07-18T14:12:01.527483Z",
     "shell.execute_reply": "2024-07-18T14:12:01.524787Z",
     "shell.execute_reply.started": "2024-07-18T14:09:42.333581Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "has has_continued has_continued\n",
      "False    90778687\n",
      "True       827587\n",
      "Name: count, dtype: int64 has_continued\n",
      "False    0.990966\n",
      "True     0.009034\n",
      "Name: proportion, dtype: float64\n"
     ]
    }
   ],
   "source": [
    "# add continued column -- uuid and str are not compatible X.x\n",
    "clip_df[\"has_continued\"] = (\n",
    "    clip_df[\"id\"].astype(str).isin(set(list(has_continued_children_ids)))\n",
    ")\n",
    "print(\n",
    "    \"has has_continued\",\n",
    "    clip_df[\"has_continued\"].value_counts(),\n",
    "    clip_df[\"has_continued\"].value_counts(normalize=True),\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-05-26T00:24:04.704306Z",
     "start_time": "2024-05-26T00:23:56.591353Z"
    },
    "execution": {
     "iopub.execute_input": "2024-07-18T14:12:01.529380Z",
     "iopub.status.busy": "2024-07-18T14:12:01.528211Z",
     "iopub.status.idle": "2024-07-18T14:13:36.759248Z",
     "shell.execute_reply": "2024-07-18T14:13:36.755273Z",
     "shell.execute_reply.started": "2024-07-18T14:12:01.529348Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "is part of a concat part_of_concat\n",
      "False    91606274\n",
      "Name: count, dtype: int64 part_of_concat\n",
      "False    1.0\n",
      "Name: proportion, dtype: float64 \n",
      " model countdowns Series([], Name: proportion, dtype: float64)\n"
     ]
    }
   ],
   "source": [
    "# add concat column\n",
    "clip_df[\"part_of_concat\"] = clip_df[\"id\"].astype(str).isin(concat_clips_ids)\n",
    "print(\n",
    "    \"is part of a concat\",\n",
    "    clip_df[\"part_of_concat\"].value_counts(),\n",
    "    clip_df[\"part_of_concat\"].value_counts(normalize=True),\n",
    "    \"\\n\",\n",
    "    \"model countdowns\",\n",
    "    clip_df[clip_df[\"part_of_concat\"]][\"model_name\"].value_counts(normalize=True),\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-05-26T00:24:09.954233Z",
     "start_time": "2024-05-26T00:24:04.705554Z"
    },
    "execution": {
     "iopub.execute_input": "2024-07-18T14:13:36.764591Z",
     "iopub.status.busy": "2024-07-18T14:13:36.764223Z",
     "iopub.status.idle": "2024-07-18T14:14:58.896642Z",
     "shell.execute_reply": "2024-07-18T14:14:58.891749Z",
     "shell.execute_reply.started": "2024-07-18T14:13:36.764570Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "has has_action has_action\n",
      "False    91018807\n",
      "True       587467\n",
      "Name: count, dtype: int64 has_action\n",
      "False    0.993587\n",
      "True     0.006413\n",
      "Name: proportion, dtype: float64\n"
     ]
    }
   ],
   "source": [
    "# verify bots action are all non-empty\n",
    "action_mask = (\n",
    "    bots_action_df[\"download_audio_count\"]\n",
    "    + bots_action_df[\"download_video_count\"]\n",
    "    + bots_action_df[\"download_audio_wav_count\"]\n",
    "    # + bots_action_df[\"share_count\"] # will remove share cause it can be negative, just can be...\n",
    ") >= 1\n",
    "has_action_ids = set(i for i in bots_action_df[action_mask][\"clip_id\"].unique())\n",
    "clip_df[\"has_action\"] = clip_df[\"id\"].isin(has_action_ids)\n",
    "print(\n",
    "    \"has has_action\",\n",
    "    clip_df[\"has_action\"].value_counts(),\n",
    "    clip_df[\"has_action\"].value_counts(normalize=True),\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-05-26T00:24:14.579841Z",
     "start_time": "2024-05-26T00:24:09.955568Z"
    },
    "execution": {
     "iopub.execute_input": "2024-07-18T14:14:58.898303Z",
     "iopub.status.busy": "2024-07-18T14:14:58.897764Z",
     "iopub.status.idle": "2024-07-18T14:16:10.546803Z",
     "shell.execute_reply": "2024-07-18T14:16:10.546186Z",
     "shell.execute_reply.started": "2024-07-18T14:14:58.898281Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "has flagged flagged\n",
      "False    91455429\n",
      "True       150845\n",
      "Name: count, dtype: int64 flagged\n",
      "False    0.998353\n",
      "True     0.001647\n",
      "Name: proportion, dtype: float64\n"
     ]
    }
   ],
   "source": [
    "# add downvoted column\n",
    "clip_df[\"flagged\"] = clip_df[\"id\"].isin(flagged_ids)\n",
    "print(\n",
    "    \"has flagged\",\n",
    "    clip_df[\"flagged\"].value_counts(),\n",
    "    clip_df[\"flagged\"].value_counts(normalize=True),\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-07-18T14:16:10.547837Z",
     "iopub.status.busy": "2024-07-18T14:16:10.547659Z",
     "iopub.status.idle": "2024-07-18T14:16:11.671704Z",
     "shell.execute_reply": "2024-07-18T14:16:11.671026Z",
     "shell.execute_reply.started": "2024-07-18T14:16:10.547818Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "has deleted deleted\n",
      "False    75146519\n",
      "True     16459755\n",
      "Name: count, dtype: int64 deleted\n",
      "False    0.820321\n",
      "True     0.179679\n",
      "Name: proportion, dtype: float64\n"
     ]
    }
   ],
   "source": [
    "clip_df[\"deleted\"] = clip_df[\"is_deleted\"]\n",
    "print(\n",
    "    \"has deleted\",\n",
    "    clip_df[\"deleted\"].value_counts(),\n",
    "    clip_df[\"deleted\"].value_counts(normalize=True),\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-05-26T00:24:15.382315Z",
     "start_time": "2024-05-26T00:24:14.581073Z"
    },
    "execution": {
     "iopub.execute_input": "2024-07-18T14:16:11.672664Z",
     "iopub.status.busy": "2024-07-18T14:16:11.672505Z",
     "iopub.status.idle": "2024-07-18T14:16:25.182539Z",
     "shell.execute_reply": "2024-07-18T14:16:25.180494Z",
     "shell.execute_reply.started": "2024-07-18T14:16:11.672647Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "total_clips, 91606274, total preference, 4865593, \n",
      "    must be pos 5180408, def not neg 72137743,\n",
      "    must be neg 19468531.\n",
      "    \n"
     ]
    }
   ],
   "source": [
    "# This is probably the most important cell of this notebook -- what are good labels, and not having good label makes it a bad label\n",
    "must_be_positive_mask = (\n",
    "    (clip_df[\"upvoted\"]) | (clip_df[\"has_action\"]) | (clip_df[\"part_of_concat\"])\n",
    ")\n",
    "must_be_not_negative_mask = (\n",
    "    (~clip_df[\"downvoted\"]) & (~clip_df[\"deleted\"]) & (~clip_df[\"flagged\"])\n",
    ")\n",
    "must_be_negative_mask = (\n",
    "    (clip_df[\"downvoted\"]) | (clip_df[\"deleted\"]) | (clip_df[\"flagged\"])\n",
    ")\n",
    "mask = must_be_positive_mask & must_be_not_negative_mask\n",
    "print(\n",
    "    f\"\"\"total_clips, {clip_df.shape[0]}, total preference, {sum(mask)}, \n",
    "    must be pos {sum(must_be_positive_mask)}, def not neg {sum(must_be_not_negative_mask)},\n",
    "    must be neg {sum(must_be_negative_mask)}.\n",
    "    \"\"\"\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-05-26T00:24:31.095990Z",
     "start_time": "2024-05-26T00:24:15.383572Z"
    },
    "execution": {
     "iopub.execute_input": "2024-07-18T14:16:25.187879Z",
     "iopub.status.busy": "2024-07-18T14:16:25.183206Z"
    }
   },
   "outputs": [],
   "source": [
    "total_unique_requests = clip_df[\"request_id\"].nunique()\n",
    "liked_requests = clip_df[mask][\"request_id\"].unique()  # requests with at least 1 like\n",
    "unliked_requests = clip_df[~mask][\"request_id\"].unique()  # requests without like\n",
    "has_liked_requests = set(liked_requests).intersection(\n",
    "    set(unliked_requests)\n",
    ")  # the request must have 1 like and one without like\n",
    "print(\"liked\", len(liked_requests), \"not liked\", len(unliked_requests))\n",
    "print(\n",
    "    f\"{len(has_liked_requests)} requests have preference paired generations, {len(has_liked_requests) / total_unique_requests:.3f}\"\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# introduce a negative preference count\n",
    "has_disliked_half_requests = clip_df[must_be_negative_mask][\n",
    "    \"request_id\"\n",
    "].unique()  # requests with at least 1 dislike\n",
    "not_have_disliked_requests = clip_df[~must_be_negative_mask][\n",
    "    \"request_id\"\n",
    "].unique()  # request without dislike\n",
    "has_disliked_requests = set(has_disliked_half_requests).intersection(\n",
    "    set(not_have_disliked_requests)\n",
    ")  # the request must have 1 dislike and one without dislike\n",
    "print(\n",
    "    \"disliked\",\n",
    "    len(has_disliked_half_requests),\n",
    "    \"not disliked\",\n",
    "    len(not_have_disliked_requests),\n",
    ")\n",
    "print(\n",
    "    f\"{len(has_disliked_requests)} requests have preference paired generations, {len(has_disliked_requests) / total_unique_requests:.3f}\"\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-05-26T00:24:31.099372Z",
     "start_time": "2024-05-26T00:24:31.097244Z"
    }
   },
   "outputs": [],
   "source": [
    "requests = has_liked_requests.union(has_disliked_requests)\n",
    "print(\n",
    "    f\"total selected pairs of requests {len(requests)}, {len(requests) / total_unique_requests:.3f}\"\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-05-26T00:24:31.239254Z",
     "start_time": "2024-05-26T00:24:31.100389Z"
    }
   },
   "outputs": [],
   "source": [
    "# this used to be a terrible bug...X.x\n",
    "assert mask.shape[0] == clip_df.shape[0]\n",
    "clip_df[\"pos_preference\"] = mask\n",
    "clip_df[\"neg_preference\"] = must_be_negative_mask\n",
    "clip_df[\"diff_preference\"] = clip_df[\"pos_preference\"].astype(int) - clip_df[\n",
    "    \"neg_preference\"\n",
    "].astype(int)\n",
    "clip_df[\"diff_preference\"].value_counts()\n",
    "# clip_df[\"preference\"] = mask"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-05-26T00:24:37.322031Z",
     "start_time": "2024-05-26T00:24:31.240829Z"
    }
   },
   "outputs": [],
   "source": [
    "# creation of interesting_clips\n",
    "interesting_clips = clip_df[clip_df[\"request_id\"].isin(requests)].copy()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "interesting_clips = interesting_clips.sort_values(\n",
    "    by=[\"request_id\", \"diff_preference\"]\n",
    ").reset_index()\n",
    "interesting_clips[\n",
    "    [\"request_id\", \"pos_preference\", \"neg_preference\", \"diff_preference\"]\n",
    "].head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# this is a mix now\n",
    "interesting_clips[\"diff_preference\"].value_counts()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "diff_series = interesting_clips[\"diff_preference\"].diff()\n",
    "print(\n",
    "    diff_series[1::2].value_counts()\n",
    ")  # 1 is pos, not neg pair or nothing, neg; 2 is pos / neg (hence the larger difference)\n",
    "# there are only two values for this positive pair\n",
    "assert diff_series[1::2].nunique() == 2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "interesting_clips[\"preference\"] = interesting_clips.index % 2 == 1\n",
    "interesting_clips[\"preference\"].value_counts()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-05-26T00:24:38.960130Z",
     "start_time": "2024-05-26T00:24:37.323369Z"
    }
   },
   "outputs": [],
   "source": [
    "# get df of requests -- let's move on!\n",
    "print(interesting_clips[\"request_id\"].nunique(), interesting_clips[\"id\"].nunique())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-05-26T00:24:43.156873Z",
     "start_time": "2024-05-26T00:24:38.961258Z"
    }
   },
   "outputs": [],
   "source": [
    "# some validations\n",
    "assert interesting_clips[interesting_clips[\"request_id\"].isna()].shape[0] == 0\n",
    "check_df = interesting_clips.groupby(\"request_id\")[\"id\"].nunique()\n",
    "check_df[check_df.values != 2]\n",
    "assert check_df[check_df.values != 2].shape[0] == 0"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-05-26T00:24:43.164669Z",
     "start_time": "2024-05-26T00:24:43.158223Z"
    }
   },
   "outputs": [],
   "source": [
    "# validation...\n",
    "# TODO: refactor this with above into a func\n",
    "# interesting_clips_must_be_positive_mask = (\n",
    "#     (interesting_clips[\"upvoted\"] == True)\n",
    "#     | (interesting_clips[\"has_action\"] == True)\n",
    "#     | (interesting_clips[\"part_of_concat\"] == True)\n",
    "# )\n",
    "# interesting_clips_must_be_not_negative_mask = (\n",
    "#     interesting_clips[\"downvoted\"] == False\n",
    "# ) & (interesting_clips[\"deleted\"] == False)\n",
    "# interesting_clips_mask = (\n",
    "#     interesting_clips_must_be_positive_mask\n",
    "#     & interesting_clips_must_be_not_negative_mask\n",
    "# )\n",
    "# assert interesting_clips_mask.eq(interesting_clips[\"preference\"]).all()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-05-26T00:24:43.332222Z",
     "start_time": "2024-05-26T00:24:43.166461Z"
    }
   },
   "outputs": [],
   "source": [
    "# # listen to some pairs\n",
    "# test_requests = interesting_clips[\"request_id\"].sample(10)\n",
    "\n",
    "# for i in range(1):\n",
    "#     rows = interesting_clips[interesting_clips[\"request_id\"] == test_requests.iloc[i]]\n",
    "#     assert rows.shape[0] == 2\n",
    "#     # Audio.from_s3(f\"s3://suno-data-uploads/studio/uploads/{row['s3_id']}.mp3\").play()\n",
    "#     # sort by likes\n",
    "#     rows = rows.sort_values(\"upvoted\", ascending=True)\n",
    "#     print(rows.iloc[0][\"prompt_text\"])\n",
    "#     print(rows.iloc[0][\"metadata\"])\n",
    "#     for _, row in rows.iterrows():\n",
    "#         print(row[\"id\"], row[\"preference\"], row[\"upvoted\"])\n",
    "#         Audio.from_s3(\n",
    "#             f\"s3://suno-data-uploads/studio/uploads/{row['s3_id']}.mp3\"\n",
    "#         ).play()\n",
    "#         with open_from_s3(\n",
    "#             f\"s3://suno-data-uploads/studio/uploads/{row['s3_id']}.npz\", as_binary=True\n",
    "#         ) as f:\n",
    "#             # read numpy array\n",
    "#             npz_a = np.load(f)\n",
    "#             if \"v1_raw\" in npz_a:\n",
    "#                 a = np.load(f)[\"v1_raw\"]\n",
    "#             elif \"v3.0_raw\" in npz_a:\n",
    "#                 a = np.load(f)[\"v3.0_raw\"]\n",
    "#             else:\n",
    "#                 print(\"npz_a\", npz_a)\n",
    "#                 raise ValueError\n",
    "#             print(a.shape)\n",
    "#     print()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Further cuts and selections"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-05-26T00:24:43.562167Z",
     "start_time": "2024-05-26T00:24:43.333784Z"
    }
   },
   "outputs": [],
   "source": [
    "# interesting_clips[\"has_gpt_prompt\"] = interesting_clips[\"metadata\"].apply(\n",
    "#     lambda x: ast.literal_eval(str(x)).get(\"gpt_description_prompt\", None) is not None\n",
    "# )\n",
    "# print(len(interesting_clips))\n",
    "# interesting_clips = interesting_clips[~interesting_clips[\"has_gpt_prompt\"]]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 210,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-05-26T00:24:43.737067Z",
     "start_time": "2024-05-26T00:24:43.563216Z"
    },
    "execution": {
     "iopub.execute_input": "2024-07-19T03:58:07.214273Z",
     "iopub.status.busy": "2024-07-19T03:58:07.214107Z",
     "iopub.status.idle": "2024-07-19T03:58:27.531909Z",
     "shell.execute_reply": "2024-07-19T03:58:27.531269Z",
     "shell.execute_reply.started": "2024-07-19T03:58:07.214255Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Total selected interesting pairs 9571510\n",
      "Total selected requests 4785755\n",
      "batch index and preference: batch_index  preference\n",
      "0            True          2405924\n",
      "             False         2379831\n",
      "1            False         2405924\n",
      "             True          2379831\n",
      "Name: count, dtype: int64\n",
      "time validation 2024-06-18 00:00:04.725892+00:00 2024-07-18 05:40:18.265753+00:00 \n",
      " MIN_TIME 2024-06-18 00:00:00.509030+00:00 \n",
      " MAX_TIME 2024-07-18 05:41:39.562682+00:00\n"
     ]
    }
   ],
   "source": [
    "print(f\"Total selected interesting pairs {len(interesting_clips)}\")\n",
    "print(f\"Total selected requests {interesting_clips['request_id'].nunique()}\")\n",
    "print(\n",
    "    f\"batch index and preference: {interesting_clips.groupby('batch_index')['preference'].value_counts()}\"\n",
    ")\n",
    "print(\n",
    "    \"time validation\",\n",
    "    interesting_clips[\"created_at\"].min(),\n",
    "    interesting_clips[\"created_at\"].max(),\n",
    "    \"\\n MIN_TIME\",\n",
    "    clip_df[\"created_at\"].min(),\n",
    "    \"\\n MAX_TIME\",\n",
    "    clip_df[\"created_at\"].max(),\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 211,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-05-26T00:24:50.674838Z",
     "start_time": "2024-05-26T00:24:46.366677Z"
    },
    "execution": {
     "iopub.execute_input": "2024-07-19T03:58:27.533264Z",
     "iopub.status.busy": "2024-07-19T03:58:27.533087Z",
     "iopub.status.idle": "2024-07-19T03:59:32.595599Z",
     "shell.execute_reply": "2024-07-19T03:59:32.594906Z",
     "shell.execute_reply.started": "2024-07-19T03:58:27.533246Z"
    }
   },
   "outputs": [],
   "source": [
    "# make sure that the clips are ordered by request and preference -- negative, positive\n",
    "interesting_clips = interesting_clips.sort_values(by=[\"request_id\", \"preference\"])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 215,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-05-26T00:24:51.600621Z",
     "start_time": "2024-05-26T00:24:50.676186Z"
    },
    "execution": {
     "iopub.execute_input": "2024-07-19T04:03:25.511398Z",
     "iopub.status.busy": "2024-07-19T04:03:25.510987Z",
     "iopub.status.idle": "2024-07-19T04:04:04.718070Z",
     "shell.execute_reply": "2024-07-19T04:04:04.717431Z",
     "shell.execute_reply.started": "2024-07-19T04:03:25.511375Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Check positive model fraction\n",
      "model_name\n",
      "chirp-v2-xxl-alpha                0.028913\n",
      "chirp-v3-engine-i                 0.041598\n",
      "chirp-v3p5-engine-ft              0.042924\n",
      "chirp-v3p5-engine-ft-1            0.049404\n",
      "chirp-v3p5-engine-ft-2            0.048449\n",
      "chirp-v3p5-engine-s-12            0.019185\n",
      "chirp-v3p5-engine-s-13            0.019495\n",
      "chirp-v3p5-engine-s-14            0.021320\n",
      "chirp-v3p5-engine-s-18            0.059750\n",
      "chirp-v3p5-engine-s-19            0.060471\n",
      "chirp-v3p5-engine-s-8             0.053237\n",
      "chirp-v3p5-engine-s-8-no-top-p    0.057162\n",
      "chirp-v3p5-engine-t               0.046400\n",
      "chirp-v3p5-engine-t-1             0.045870\n",
      "chirp-v3p5-engine-upload          0.052221\n",
      "chirp-v3p5-engine-upload-2        0.058032\n",
      "chirp-v3p5-engine-upload-4        0.064570\n",
      "Name: count, dtype: float64\n",
      "Check negative model fraction\n",
      "model_name\n",
      "chirp-v2-xxl-alpha                0.028913\n",
      "chirp-v3-engine-i                 0.041598\n",
      "chirp-v3p5-engine-ft              0.043401\n",
      "chirp-v3p5-engine-ft-1            0.049913\n",
      "chirp-v3p5-engine-ft-2            0.066265\n",
      "chirp-v3p5-engine-s-12            0.021791\n",
      "chirp-v3p5-engine-s-13            0.021716\n",
      "chirp-v3p5-engine-s-14            0.020541\n",
      "chirp-v3p5-engine-s-18            0.060106\n",
      "chirp-v3p5-engine-s-19            0.059447\n",
      "chirp-v3p5-engine-s-8             0.053099\n",
      "chirp-v3p5-engine-s-8-no-top-p    0.061826\n",
      "chirp-v3p5-engine-t               0.092281\n",
      "chirp-v3p5-engine-t-1             0.045870\n",
      "chirp-v3p5-engine-upload          0.053298\n",
      "chirp-v3p5-engine-upload-2        0.073704\n",
      "chirp-v3p5-engine-upload-4        0.063550\n",
      "Name: count, dtype: float64\n"
     ]
    }
   ],
   "source": [
    "print(\"Check positive model fraction\")\n",
    "print(\n",
    "    interesting_clips[interesting_clips[\"preference\"]][\"model_name\"].value_counts()\n",
    "    / clip_df[\"model_name\"].value_counts()\n",
    ")\n",
    "print(\"Check negative model fraction\")\n",
    "print(\n",
    "    interesting_clips[~interesting_clips[\"preference\"]][\"model_name\"].value_counts()\n",
    "    / clip_df[\"model_name\"].value_counts()\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 209,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-05-26T00:24:56.302599Z",
     "start_time": "2024-05-26T00:24:51.601863Z"
    },
    "execution": {
     "iopub.execute_input": "2024-07-19T03:56:45.048329Z",
     "iopub.status.busy": "2024-07-19T03:56:45.048154Z",
     "iopub.status.idle": "2024-07-19T03:58:07.213257Z",
     "shell.execute_reply": "2024-07-19T03:58:07.212562Z",
     "shell.execute_reply.started": "2024-07-19T03:56:45.048312Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "chirp-v3-engine-i_win_over_chirp-v3-engine-i, win ratio 1.000, counts 198754\n",
      "chirp-v3p5-engine-ft-1_win_over_chirp-v3p5-engine-ft, win ratio 0.686, counts 1828\n",
      "chirp-v3p5-engine-ft-1_win_over_chirp-v3p5-engine-ft-1, win ratio 1.000, counts 118850\n",
      "chirp-v3p5-engine-ft-1_win_over_chirp-v3p5-engine-ft-2, win ratio 0.495, counts 1664\n",
      "chirp-v3p5-engine-ft-1_win_over_chirp-v3p5-engine-s-8, win ratio 0.361, counts 2926\n",
      "chirp-v3p5-engine-ft-2_win_over_chirp-v3p5-engine-ft-1, win ratio 0.505, counts 1695\n",
      "chirp-v3p5-engine-ft-2_win_over_chirp-v3p5-engine-s-8, win ratio 0.361, counts 1628\n",
      "chirp-v3p5-engine-ft_win_over_chirp-v3p5-engine-ft, win ratio 1.000, counts 88625\n",
      "chirp-v3p5-engine-ft_win_over_chirp-v3p5-engine-ft-1, win ratio 0.314, counts 836\n",
      "chirp-v3p5-engine-s-12_win_over_chirp-v3p5-engine-s-8, win ratio 0.468, counts 3548\n",
      "chirp-v3p5-engine-s-13_win_over_chirp-v3p5-engine-s-8, win ratio 0.473, counts 2212\n",
      "chirp-v3p5-engine-s-14_win_over_chirp-v3p5-engine-s-8, win ratio 0.509, counts 20940\n",
      "chirp-v3p5-engine-s-18_win_over_chirp-v3p5-engine-s-8, win ratio 0.499, counts 5367\n",
      "chirp-v3p5-engine-s-19_win_over_chirp-v3p5-engine-s-8, win ratio 0.504, counts 5436\n",
      "chirp-v3p5-engine-s-8-no-top-p_win_over_chirp-v3p5-engine-s-8, win ratio 0.480, counts 25480\n",
      "chirp-v3p5-engine-s-8_win_over_chirp-v3p5-engine-ft, win ratio 1.000, counts 2\n",
      "chirp-v3p5-engine-s-8_win_over_chirp-v3p5-engine-ft-1, win ratio 0.639, counts 5177\n",
      "chirp-v3p5-engine-s-8_win_over_chirp-v3p5-engine-ft-2, win ratio 0.639, counts 2881\n",
      "chirp-v3p5-engine-s-8_win_over_chirp-v3p5-engine-s-12, win ratio 0.532, counts 4030\n",
      "chirp-v3p5-engine-s-8_win_over_chirp-v3p5-engine-s-13, win ratio 0.527, counts 2464\n",
      "chirp-v3p5-engine-s-8_win_over_chirp-v3p5-engine-s-14, win ratio 0.491, counts 20175\n",
      "chirp-v3p5-engine-s-8_win_over_chirp-v3p5-engine-s-18, win ratio 0.501, counts 5399\n",
      "chirp-v3p5-engine-s-8_win_over_chirp-v3p5-engine-s-19, win ratio 0.496, counts 5344\n",
      "chirp-v3p5-engine-s-8_win_over_chirp-v3p5-engine-s-8, win ratio 1.000, counts 3829873\n",
      "chirp-v3p5-engine-s-8_win_over_chirp-v3p5-engine-s-8-no-top-p, win ratio 0.520, counts 27559\n",
      "chirp-v3p5-engine-s-8_win_over_chirp-v3p5-engine-t, win ratio 0.665, counts 9421\n",
      "chirp-v3p5-engine-t-1_win_over_chirp-v3p5-engine-t-1, win ratio 1.000, counts 21671\n",
      "chirp-v3p5-engine-t_win_over_chirp-v3p5-engine-s-8, win ratio 0.335, counts 4737\n",
      "chirp-v3p5-engine-upload-2_win_over_chirp-v3p5-engine-upload, win ratio 0.529, counts 1293\n",
      "chirp-v3p5-engine-upload-2_win_over_chirp-v3p5-engine-upload-4, win ratio 0.433, counts 13096\n",
      "chirp-v3p5-engine-upload-4_win_over_chirp-v3p5-engine-upload, win ratio 0.581, counts 2367\n",
      "chirp-v3p5-engine-upload-4_win_over_chirp-v3p5-engine-upload-2, win ratio 0.567, counts 17125\n",
      "chirp-v3p5-engine-upload-4_win_over_chirp-v3p5-engine-upload-4, win ratio 1.000, counts 277781\n",
      "chirp-v3p5-engine-upload_win_over_chirp-v3p5-engine-upload, win ratio 1.000, counts 36207\n",
      "chirp-v3p5-engine-upload_win_over_chirp-v3p5-engine-upload-2, win ratio 0.471, counts 1150\n",
      "chirp-v3p5-engine-upload_win_over_chirp-v3p5-engine-upload-4, win ratio 0.419, counts 1704\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<Figure size 640x480 with 0 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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65YrfeMc6r9OQ2SUAbd411vek4iIiIhIftBHECL3uSXvZX8GNMDDLeBStIGNv94ou3wl/XzoFo3B8abdsEPPp39lKFsa7OzMrNsM5puS0BcuXj+26oGc57b3EGzckn5udJEc4mKTKX2Zt4uzGderOaTERURERETykTLQIveRS9Hwxy7b6rZump4NbtscllQ189qU9CxvUXf44ntIM8Fzg6zbDHop/c8fv0r/09MDureHb9YYGPRi+lnScfHpm4MlJcOQJ260PX8BXnor/dxnb0/462/4aiVU8ocXn7IeZ9Ls9PaVH0g/hmv1j3DwSPoHAR8M+sf5ViIiIiJyR5iUP80zBdAi95FTZ2D0O7btnrjpSzOFXNI3AJs/DabPSz+/OSkJqleGyWOgvN+t+3nzJaj8gJlv18D/Pkovq1EZprwG9W46Hsu1cPpzzMtC4GpM+g7bT/SAof2sj7WC9HOpl3wDqzeBwZB+JvWi/6Ufa/WBje+FiIiIiMi/zWA2m823riYi9wLThUr5PYW7rm3JLA6tFhEREblPbDQtz+8pZGvz6YB8G7tVuWP5NvadpBy+iIiIiIiIiA0UQIuIiIiIiIjYQM9Ai4iIiIiIFAA6Bzrv9A6KiIiIiIiI2EAZaBERERERkQLAhG2nuUj2lIEWERERERERsYEy0CIiIiIiIgVAmvKneaZ3UERERERERMQGCqBFREREREREbKAl3CIiIiIiIgWAjrHKO72DIiIiIiIiIjZQBlpERERERKQAMCl/mmd6B0VERERERERsoABaRERERERExAZawi0iIiIiIlIApJkN+T2F+54y0CIiIiIiIiI2UAZaRERERESkAEhT/jTP9A6KiIiIiIiI2EAZaBERERERkQLAZFb+NK/0DoqIiIiIiIjYQAG0iIiIiIiIiA20hFtERERERKQA0CZiead3UERERERERMQGykCLiIiIiIgUAGlmQ35P4b6nDLSIiIiIiIiIDRRAi4iIiIiIiNhAS7hFREREREQKAJPyp3mmAFrkPtK2ZK38nsJdZ+fikt9TuKtMCQn5PQURERERuU0KoEVERERERAqANLMy0Hmld1BERERERETEBspAi4iIiIiIFAAmdIxVXikDLSIiIiIiImIDBdAiIiIiIiIiNtASbhERERERkQJAm4jlnd5BERERERERERsoAy0iIiIiIlIApCl/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zJbvdnB4e1tGfjiYspVLcjUqlk5PPYSd0Y7P3gmxajNlzWgABlQdCaTvjP3Dkl9pP6gFU9eO4ffvd+FSxJlOQx7CycWRL2estrS9HHGVL6atYsC4Hrzz/cv8sWoP/jXK0H5QC376eivH9/wNgIurM0uPvcsv327nzJHzJMYlUb5aaR7u14y4qwkse/ubvL9RIiIiIpIvFECLyD3Dr0opRi8calPdjGOsTCYzb3SfweB3+tDlmYdxcnHk2O5TzHhqAedyWL6dYfaIxZw6GErbAc0ZNL4XAMf3/M30IR9x6B/HY30+9Xtir8TReWgbhk7rawmql01eYamTFJ/E+k9/oVazKjTtWg9HF0eiwi/z0/KtfDF1JeF/3XpOIiIiIneDScdY5ZnBfPNDgyJyT2tj1yu/p3DX2bm45PcU7ipTQkJ+T0FERETuoo2m5fk9hWwN3jUw38b+uO7ifBv7TlIGWkREREREpABI0zFWeaZNxERERERERERsoABaRERERERExAZawi0iIiIiIlIA6BzovNM7KCIiIiIiImIDZaBFREREREQKAJM2EcszZaBFREREREREbKAMtIiIiIiISAFgQhnovFIGWkRERERERMQGCqBFREREREREbKAl3CIiIiIiIgWANhHLO2WgRURERERERGygDLSIiIiIiEgBYDIrf5pXegdFREREREREbKAAWkRERERERMQGWsItIiIiIiJSAGgTsbxTBlpERERERETEBspAi4iIiIiIFAAmlIHOK2WgRURERERERGygDLSIiIiIiEgBoGeg804ZaBEREREREREbKIAWERERERERsYGWcIuIiIiIiBQAWsKdd8pAi4iIiIiIiNhAGWgREREREZECQBnovFMGWkRERERERMQGCqBFREREREREbKAl3CJyTzElJOT3FETkP87oWTS/p3BXpUVfzu8piMg9Sku4804ZaBEREREREREbKAMtIiIiIiJSAJhQBjqvlIEWERERERERsYEy0CIiIiIiIgWAnoHOO2WgRURERERERGygAFpERERERETEBlrCLSIiIiIiUgBoCXfeKQMtIiIiIiIiYgNloEVERERERAoAZaDzThloERERERERERsogBYRERERERGxgZZwi4iIiIiIFABawp13ykCLiIiIiIiI2EAZaBERERERkQLArAx0nikDLSIiIiIiImIDZaBF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4p3lL+DqUYhv5m6g/sM1rOqH/x3JkV3p50RvXbcv0xwq1CgDwM4fD2V55FXLng1ITkyxBPYiInJ3KYAWERGRAsOvSilGzQu2qe6AoFeJiI/CZDLzRp85DB7fgy5DHsLJ2YHj+04z87nFnPsr5+XbbkVd8S3tCUDwmz0yXd/4xR+WADq3Crk6U79NDXZsPEh8TMKtG4iISJ4ZzDc/zCMi97Q2dr3yewoiIvc9o2fR/J7CXZUWnXmpt4j8ezaaluf3FLJV6duJt650lxzv8Ua+jX0n2eX3BERERERERETuB1rCLSIiIiIiUhBo7XGeKQMtIiIiIiIiYgMF0CIiIiIiIiI20BJuERERERGRAsBsNuT3FO57ykCLiIiIiIiI2EAZaBERERERkQJABxjnnTLQIiIiIiIiIjZQBlpERERERKQA0DPQeacMtIiIiIiIiIgNFECLiIiIiIiI2EBLuEVERERERAoCLeHOM2WgRURERERERGygDLSIiIiIiEgBoGOs8k4ZaBEREREREREbKIAWERERERERsYGWcIuIiIiIiBQEWsKdZ8pAi4iIiIiIiNhAGWgREREREZECwKxjrPJMGWgRERERERERGygDLSIiIiIiUhDoGeg8UwZaRERERERExAYKoEVERERERERsoCXcIiIiIiIiBYA2Ecs7ZaBFREREREREbKAMtIiIiIiISEGgTcTyTBloERERERERERsoAy0iIiIFijkuIb+nICIi9ykF0CIiIiIiIgWCNhHLKy3hFhEREREREbGBMtAiIiIiIiIFgTYRyzNloEVERERERERsoAy0iIiIiIhIQaAMdJ4pAy0iIiIiIiJiAwXQIiIiIiIiIjbQEm4REREREZGCwKxjrPJKGWgRERERERERGygDLSIiIiIiUgCYtYlYnikDLSIiIiIiImIDBdAiIiIiIiIiNtASbhERERERkYJAS7jzTBloERERERERERsoAy0iIiIiIlIQ6BirPFMGWkRERERERMQGCqBFRERERETknrFz506GDh1KkyZNCAgIYNOmTVbXzWYz7733Hk2aNKFmzZoMHDiQ06dP37LfZcuW0apVK2rUqEGvXr04cOBAruemAFpERERERKQAMJjz7ys34uPjCQgI4M0338zy+oIFC/jss8946623+Prrr3FxcSE4OJikpKRs+1y7di2TJ0/m2Wef5bvv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j4+3BMxFihShRYsWloC5cuXKOg9aRERERETkXmNWnJZXuQqgt2zZQqFChWjatKklYK5atWqWO0aKiIiIiIiI/JfkKoD+6quvqF69Okaj8daVRURERERE5N6hTcTyLFcBdK1ate7WPERERERERETuaVp7LSIiIiIiImKDO3IOtIiIiIiIiNzbdA503ikDLSIiIiIiImIDZaBFREREREQKAmWg80wZaBEREREREREbKAMtIiIiIiJSAOgZ6LxTBlpERERERETEBgqgRURERERERGygJdwiIiIiIiIFgZZw55ky0CIiIiIiIiI2UAZaRERERESkIFAGOs+UgRYRERERERGxgQJoERERERERERtoCbeIiIiIiEgBoHOg804ZaBEREREREREbKIAWERERERERsYECaBEREREREREb6BloERERERGRgkDPQOeZMtAiIiIiIiIiNlAALSIiIiIiImIDLeEWEREREREpAHSMVd4pAy0iIiIiIiJiA2WgRURERERECgJloPNMAbSI3FN8t3rk9xTuKrv/+P+5LrxULr+ncNfZJaXm9xTuKvP+o/k9hbvOlJSY31O4q+wf8M/vKdxVz21Yk99TuOtmVaiS31MQkWxoCbeIiIiIiIiIDZSBFhERERERKQj+2wvh/hXKQIuIiIiIiIjYQBloERERERGRAkDHWOWdMtAiIiIiIiIiNlAALSIiIiIiImIDLeEWEREREREpCLSEO8+UgRYRERERERGxgTLQIiIiIiIiBYA2Ecs7ZaBFREREREREbKAMtIiIiIiISEGgDHSeKYAWERERERGRe0arVq04f/58pvLHH3+cN998M1N5SEgIr776qlWZo6MjBw8evONzUwAtIiIiIiIi94xvvvmGtLQ0y+sTJ04waNAg2rVrl20bV1dX1q9fb3ltMBjuytwUQIuIiIiIiBQE98kSbk9PT6vXH330EX5+ftSvXz/bNgaDAR8fn7s9NQXQIiIiIiIicnclJyeTnJxsVebo6Iijo+Mt261cuZJBgwblmFWOj4+nZcuWmEwmqlatyksvvUTFihXvyNxvpgBaRERERESkAMjPY6zmz5/P3LlzrcqGDx/Oc889l2O7TZs2ERMTQ7du3bKtU758eSZNmkRAQAAxMTF88skn9OnThzVr1lC8ePE7Mv8MCqBFRERERETkrnr66acZNGiQVdmtss8A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rwJ1AxN9mNvIpkkMXzBQ6TonNp99bwNoG+da+HbpAJXqFm5jJZFIMdN/E/ymdkevoS2hqamOsNvP8dN3uxH5JKHEa+gb6cLcyggA8OU33ZWOn9x3QyGAbtnFFZ36eMtf13WphbousvHTCTGpCgG0QCBAmx4N8fDOC4V2xEZIsX2JatMY/ueiBk1L2ciSEXNFOLihABf+liAvF6hdX4DPJgthXrvkwFVdU7a69qNgCYIvSpEnls2p9mwrQOfPRDC2VDzfyk6AayckSE8B9AwAj9ZCdB0iW5H7TTmZUty/JkWDJgJo6zKApv8AM9DlJpAW95eYiKqcTsJ+ld2Ed878ilFlN+GdEr7nf7livq5T2U1454QVODy1KpIGK+/n/L6RFqg+h7w6UqtrX9lNeKfGH/+nspvwzi13cK7sJlA5nJTsKb1SJfEaVfp2ge/KrbVfVdq9KxInWxARERERERGpgEO4iYiIiIiIPgTv90C4/wQz0EREREREREQqYAaaiIiIiIjoA8BtrMqPGWgiIiIiIiIiFTCAJiIiIiIiIlIBh3ATERERERF9CDiEu9yYgSYiIiIiIiJSATPQREREREREHwCBlCno8mIGmoiIiIiIiEgFzEATERERERF9CJiALjdmoImIiIiIiIhUwACaiIiIiIiISAUcwk1ERERERPQBEHAId7kxA01ERERERESkAmagiYiIiIiIPgTMQJcbM9BEREREREREKmAATURERERERKQCDuEmIiIiIiL6AHARsfJjBpqIiIiIiIhIBcxAExERERERfQiYgS43ZqCJiIiIiIiIVMAAmoiIiIiIiEgFHMJNRERERET0AeAiYuXHDDQRERERERGRCpiBJiIiIiIi+hAwA11uzEATERERERERqYAZaCKqUuKap1R2E6hcgiu7Ae+cpLIbQFSK/EePK7sJ79RyB+fKbsI7J2jiVtlNeKek125XdhM+WJwDXX7MQBMRERERERGpgAE0ERERERERkQo4hJuIiIiIiOhDIOUY7vJiBpqIiIiIiIhIBcxAExERERERfQC4iFj5MQNNREREREREVcaqVavg6Oio8NW1a9cSzzl69Ci6du0KNzc3+Pr64ty5c++kbcxAExERERERUZVSr149bNq0Sf5aJBIVW/fWrVuYPHkyvv76a7Rr1w6HDh3C2LFjsW/fPtSvX79C28UMNBER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DufP3H/zEiq58O89GJvowaets7zMwFAbrdo3QMChm/K50ETVDTPQRERERERVhJG5Iby7uqlU99LZB8jJkc1hHjisFQDA1s4MANCxqztcG9oAAHZsuiA/59sfeqOhVx10bjZHXnborxvo1ssL8376DHu3X0F+vgSffNYMyUkZ+GvHFYV7NvOpD/t6FgAAkZoQdnUt5Pe+ciEUTx7FAQAunLmPe7dfYPKMXrCxM0NaahZ8+3hDKBJiy6zdZf6+UAVhArrcGEATEREREVURNs61MHXWxyrVHfLxCuS83Mbqi5HtFI517eUp///XA+iiZGeJ8c2YPzBqUhcMHNYKAoEAIYHPsPbn40hNyVKo69POCZ17eMhf13OsiXqOssx1fFyaPICWSKSY8fUO+I/viN6fNoGmphpC70dhydy/8YLDt6kaE0ilHAhPVF10Evar7CYQERHROyZooloGurqSXrtd2U14p05K9lR2E4rVoe38Srv36bPfV9q9KxLnQBMRERERERGpgAE0ERERERERkQo4B5qIiIiIiOgDIODk3XJjBpqIiIiIiIhIBcxAExERERERfQi4fnS5MQNNREREREREpAIG0EREREREREQq4BBuIiIiIiKiD4BAUtktqP6YgSYiIiIiIiJSATPQREREREREHwIuIlZuzEATERERERERqYABNBEREREREZEKOISbiIiIiIjoQ8AR3OXGDDQRERERERGRCpiBJiIiIiIi+gAIuIhYuTEDTURERERERKQCZqCJiIiIiIg+BMxAlxsz0EREREREREQqYABNREREREREpAIO4SYiIiIiIvoQSCq7AdUfM9BEREREREREKmAGmoiIiIiI6APAbazKjxloIiIiIiIiIhUwgCYiIiIiIiJSAYdwExERERERfQg4hLvcmIEmIiIiIiIiUgEz0ERERERERB8CZqDLjQE0EREREVEV8qy7fmU34Z3SatqisptA9NYYQBMREREREX0IJJXdANWsW7cOJ06cwOPHj6GlpQVPT09MmTIF9vb2xZ6zb98+TJs2TaFMQ0MDt2/frtC2MYAmIiIiIiKiKuPatWsYNGgQ3NzcUFBQgJ9++gl+fn74559/oKOjU+x5enp6OHbsmPy1QCCo8LYxgCYiIiIiIqIq4/fff1d4vXDhQjRv3hx3795F48aNiz1PIBDAzMzsnbaNATQRERER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gSYiIiIiIiJSATPQREREREREHwLJ+7OdVGVhBpqIiIiIiIhIBcxAExERERERfQg4B7rcmIEmIiIiIiIiUgEDaCIiIiIiIiIVcAg3ERERERHRB0DKRcTKjRloIiIiIiIiIhUwA01ERERERPQh4CJi5cYMNBEREREREZEKGEATERERERERqYBDuImIiIiIiD4EEg7hLi9moImIiIiIiIhUwAw0ERERERHRh0DKbazKixloIiIiIiIiIhUwA01ERERERPQBkHIOdLkxA01ERERERESkAgbQRERERERERCrgEG4iIiIiIqIPARcRKzdmoImIiIiIiIhUwAw0ERERERHRB4CLiJUfM9BERERERERU5Wzfvh3t27eHm5sb+vXrh5CQkBLrHz16FF27doWbmxt8fX1x7ty5Cm8TA2giIiIiIiKqUo4cOYIFCxZg7Nix2L9/P5ycnODn54fExMQi69+6dQuTJ09G3759ceDAAXTo0AFjx45FWFhYhbaLATQREREREdGHQCqpvK8y2rRpEz799FN88sknqFu3LmbPng0tLS389ddfRdbfsmULWrVqheHDh8PBwQGTJk1CgwYNsG3btvJ+1xQwgCYiIiIiIqJ3SiwWIyMjQ+FLLBYXW/fu3bto0aKFvEwoFKJFixYIDAws8pygoCA0b95coczHxwdBQUEV1geAi4gRVSsnJXsquwlEREREVE1V5mfJVatWYfXq1Qpl48aNw/jx45XqJicno6CgACYmJgrlJiYmePz4cZHXT0hIgKmpqVL9hISEcrZcEQNoIiIiIiIieqdGjhyJYcOGKZRpaGhUUmveHgNoIiIiIiIieqc0NDRUDphr1KgBkUiktGBYYmKiUpa5kKmpqVK2uaT6b4tzoImIiIiIiKjK0NDQgIuLC65cuSIvk0gkuHLlCjw9PYs8x8PDAwEBAQplly9fhoeHR4W2jTwrxNMAAGmmSURBVAE0ERERERERVSnDhg3D7t27sX//foSHh2PWrFnIzs5Gnz59AADffvstli1bJq8/dOhQXLhwARs3bkR4eDhWrVqFO3fuYPDgwRXaLg7hJiIiIiIioiqle/fuSEpKwsqVKxEfHw9nZ2ds2LBBPiQ7OjoaQuGrfLCXlxeWLl2Kn3/+GT/99BPq1KmDX375BfXr16/QdgmkUqm0Qq9IRERERERE9B7iEG4iIiIiIiIi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Dtq1awcjI/UfJ+3s7Go7HhFRreEINxERERG9kJ2dHRQKhcbSsDJl57hEjIhkxwaaiIiIiF4oMzOzyp9t0aJFDSYhIhKLDTQRERERVdmmTZugVCoxePBgtePR0dG4d+8exo0bJygZEVHN4xIxIiIiIqqyH374Aba2thrH27Zti++//15AIiKi2sMGmoiIiIiqLDc3F5aWlhrHLSwskJubKyAREVHtYQNNRERERFVmZWWFc+fOaRxPTExE06ZNBSQiIqo9fI0VEREREVXZkCFDsGzZMhQWFsLDwwMAcPr0aaxcuRKjR48WnI6IqGZxiRgRERERVVlJSQlCQ0MRGRmJZ8+eAQBMTEwwZswYTJkyRXA6IqKaxQaaiIiIiF5Zfn4+rly5grp166JVq1YwNjYWHYmIqMaxgSYiIiIiIiKqAi4RIyIiIiIiIqoCNtBEREREREREVcAGmoiIiIiIiKgK2EATERERERERVQEbaCIiIqqymzdv4u2334afn5/oKERERLWODTQRERERERFRFbCBJiIiIiIiIqoCI9EBiIiISE6ZmZlYv349Tpw4gfv378PCwgLdunXDlClTYG1trfbZ27dvY/Pmzfjvf/+LnJwcGBsbw9LSEu7u7pgzZw7Mzc1Vny0oKMCOHTuwb98+XL16FQqFAvb29vDz80OvXr1qu0wiItIjbKCJiIhI665evYpPPvkE9+7dw7///W+0bdsWly9fxp49e/B///d/2LlzJ9566y0AwJMnTzB06FBkZmaia9eu6N27N549e4abN29i37598PPzUzXQBQUF8PPzQ0JCAuzt7TF48GA8e/YMx48fx6RJk7Bw4UIMGzZMZOlERCQxNtBERESkdYsWLcK9e/ewZMkSfPTRR6rjO3bswJIlS/DFF18gIiICAHD69GncvHkTI0eOREBAgNq/Jz8/H3Xq1FF9v379eiQkJGDSpEmYOnUqFAoFACAvLw8jR47EihUr4OnpiWbNmtVClUREpG/4DDQRERFpVVZWFuLj49GmTRv4+PionRs6dChsbW3x66+/Ijs7W+1c3bp1Nf5dpqamMDY2BgAUFxcjKioKb775plrzDABmZmaYPHkynj17hsOHD9dAVURERLwDTURERFqWnJwMAHB3d1drcgHAwMAA7u7uSE9PR3JyMqysrODu7g5LS0ts3rwZKSkp6NGjBzp16oTWrVur/d9fvXoVf/31F5o2bYqwsDCN/9179+4BANLT02uwOiIi0mdsoImIiEir8vLyAABNmjSp9LylpaXa58zNzbFr1y6sW7cO//d//4fjx48DAKysrDB27Fj4+voCAB48eAAAuHz5Mi5fvvzc//0nT55opQ4iIqKK2EATERGRVpmZmQEA7ty5U+n53Nxctc8BgLW1NVasWIHi4mKkpqbi5MmTiIyMxJIlS9CwYUN4eXmpPt+nTx+sW7euhqsgIiLSxGegiYiISKvs7e0BAGfPnkVJSYnauZKSEpw9e1btc+UZGBjA3t4eY8eOxerVqwEAx44dAwC0bt0aZmZmuHTpEp49e1aTJRAREVWKDTQRERFplbW1NTp37ozLly8jOjpa7dwPP/yAK1euwMPDA1ZWVgBKR7Iru1tddszExAQAYGRkpHrdVUhISKVNdFpaGu7evavtkoiIiAAAipKKl4aJiIiInuPmzZvo1asXmjZtiq5du1b6GVtbW/Tu3RuffPIJHjx4gJ49e6JNmza4fPkyjh07BgsLC7X3QIeHh2PlypVwc3NDq1at0KhRI9y4cUN153nHjh1wdHQEUPoe6AkTJuDUqVN488030bFjRyiVSty6dQtpaWlISUnBDz/8ABcXl1r5/wcREekXNtBERERUZWUN9It06tQJkZGRyMzMRFhYGE6cOIH79++jcePGePfddzFlyhS0aNFC9fkrV67g+++/x9mzZ5GVlYXHjx+jWbNm6NixI8aMGYM2bdqo/fuLiooQHR2NvXv3Ii0tDQUFBWjSpAlat26NXr16YeDAgahfv36N1E9ERPqNDTQRERERERFRFfAZaCIiIiIiIqIqYANNREREREREVAVsoImIiIiIiIiqgA00ERERERERURWwgSYiIiIiIiKqAjbQRERERERERFXABpqIiIiIiIioCthAExEREREREVUBG2giIiIiIiKiKmADTURERERERFQFbKCJiIiIiIiIqoANNBEREREREVEVsIEmIiIiIiIiqoL/H+EJVm8UwkAJAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 1000x800 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "get_preferfence_counts(interesting_clips)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-05-26T00:24:56.305431Z",
     "start_time": "2024-05-26T00:24:56.303928Z"
    }
   },
   "outputs": [],
   "source": [
    "# top_user_df = interesting_clips.groupby([\"user_id\"]).filter(lambda x: len(x) > 500)\n",
    "# get_preferfence_counts(top_user_df)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 212,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-05-26T00:24:57.443236Z",
     "start_time": "2024-05-26T00:24:56.306473Z"
    },
    "execution": {
     "iopub.execute_input": "2024-07-19T03:59:35.071981Z",
     "iopub.status.busy": "2024-07-19T03:59:35.071636Z",
     "iopub.status.idle": "2024-07-19T03:59:37.657869Z",
     "shell.execute_reply": "2024-07-19T03:59:37.657245Z",
     "shell.execute_reply.started": "2024-07-19T03:59:35.071961Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjoAAAGxCAYAAABr1xxGAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8fJSN1AAAACXBIWXMAAA9hAAAPYQGoP6dpAAAzKElEQVR4nO3df3RT9eH/8VcSqEhBqC0UcU4Fjin2BxQYlVLprOAPHEpb2+kWOrs6BOuGFV2nfhwr4FIRp9T5E1wpUEUU6tRV3YqyOZYPIKezUssPZax2oJTwsy1SSfL9Yx/zXVdE0qa96fX5OIdzet/33txXc7L15X2/k1h8Pp9PAAAAJmQ1OgAAAEBXoegAAADTougAAADTougAAADTougAAADTougAAADTougAAADTougAAADTougAAADTougAAADT6mV0gFDhdh8TX4YBAEDPYLFIkZH9v/Y4is7/8flE0QEAwGSYugIAAKZF0QEAAKZF0QEAAKZF0QEAAKZF0QEAAKbV4991tXv3bhUUFPi3//GPf+g3v/mNJk+ebGAqAAAQCiw+n3neVN3c3Ky0tDS988476tu3b0DnHjjA5+gAANBTWCxSVNTXf46Oqaau3n77bU2YMCHgkgMAAMzJ8KKzZcsWzZo1SykpKbLb7aqqqmp3THl5udLS0hQfH6+srCzV1NSc8rHeeOMNTZ06tasjAwCAHsLwotPS0iK73a558+adcn9lZaWcTqfy8/NVUVGhmJgY5eXlye12tzmuqalJ1dXVSk1N7Y7YAACgBzC86KSmpqqgoEBTpkw55f7S0lJlZ2crMzNTI0aMUFFRkfr06aO1a9e2Oa6qqkoTJ07UWWed1R2xAQBAD2B40Tmd1tZW1dbWKjk52T9mtVqVnJys6urqNse++eabTFsBAIA2QrroHDp0SB6PR5GRkW3GIyMjdeDAAf/2sWPHVFNTo5SUlO6OCAAAQliP/xwdSerfv7/+9re/GR2jHavVIqvV0uHzvV6fvF7e8w4AQEeFdNGJiIiQzWZrt/DY7XYrKirKoFRnxmq1aMDAvupl6/hNs5Mer44cbqHsAADQQSFddMLCwhQbGyuXy+X/pGOv1yuXyyWHw2FwutOzWi3qZbNqzupqfbS/KeDzRwzupyU3JcpqtVB0AADoIMOLTnNzs+rr6/3bDQ0Nqqur04ABAzR06FDl5uaqsLBQcXFxSkhIUFlZmY4fP66MjAwDU5+5j/Y3qXbvUaNjAADwjWR40dm2bZtycnL8206nU5KUnp6u4uJiTZ06VQcPHlRJSYkaGxs1cuRILVu2LOSnrgAAgPEMLzpJSUnasWPHaY9xOBwhP1UFAABCT0i/vRwAAKAzKDoAAMC0KDoAAMC0KDoAAMC0KDoAAMC0KDoAAMC0KDoAAMC0KDoAAMC0KDoAAMC0KDoAAMC0KDoAAMC0KDoAAMC0KDoAAMC0KDoAAMC0KDoAAMC0KDoAAMC0KDoAAMC0KDoAAMC0KDoAAMC0KDoAAMC0KDoAAMC0KDoAAMC0KDoAAMC0KDoAAMC0KDoAAMC0KDoAAMC0KDoAAMC0KDoAAMC0KDoAAMC0KDoAAMC0KDoAAMC0KDoAAMC0KDoAAMC0KDoAAMC0ehkdIBg++eQT3XfffXK73bLZbHrxxRfVt29fo2MBAACDmaLo3Hvvvbrzzjs1btw4HT58WGFhYUZHAgAAIaDHF51du3apV69eGjdunCRp4MCBxgYCAAAhw/A1Olu2bNGsWbOUkpIiu92uqqqqdseUl5crLS1N8fHxysrKUk1NjX/fP//5T/Xt21ezZs1Senq6nn766e6MDwAAQpjhRaelpUV2u13z5s075f7Kyko5nU7l5+eroqJCMTExysvLk9vtliSdPHlSW7du1bx58/Tiiy9q48aN2rhxY3f+CgAAIEQZXnRSU1NVUFCgKVOmnHJ/aWmpsrOzlZmZqREjRqioqEh9+vTR2rVrJUnR0dGKi4vTeeedp7CwMKWmpqqurq47fwUAABCiDC86p9Pa2qra2lolJyf7x6xWq5KTk1VdXS1Jio+Pl9vt1pEjR+T1evXee+9p+PDhRkUGAAAhJKQXIx86dEgej0eRkZFtxiMjI7V7925JUq9evVRQUCCHwyGfz6eJEyfqiiuuMCIuAAAIMSFddM5UamqqUlNTjY4BAABCTEhPXUVERMhms/kXHn/J7XYrKirKoFQAAKCnCOmiExYWptjYWLlcLv+Y1+uVy+VSYmKigckAAEBPYPjUVXNzs+rr6/3bDQ0Nqqur04ABAzR06FDl5uaqsLBQcXFxSkhIUFlZmY4fP66MjAwDU4c+q9Uiq9XS4fO9Xp+8Xl8QEwEA0P0MLzrbtm1TTk6Of9vpdEqS0tPTVVxcrKlTp+rgwYMqKSlRY2OjRo4cqWXLljF1dRpWq0UDBvZVL1vHb9id9Hh15HALZQcA0KMZXnSSkpK0Y8eO0x7jcDjkcDi6KVHPZ7Va1Mtm1ZzV1fpof1PA548Y3E9LbkqU1Wqh6AAAejTDiw66zkf7m1S796jRMQAAMExIL0YGAADoDIoOAAAwLYoOAAAwLYoOAAAwLYoOAAAwLYoOAAAwLYoOAAAwLYoOAAAwLYoOAAAwLYoOAAAwLYoOAAAwLYoOAAAwLYoOAAAwLYoOAAAwLYoOAAAwLYoOAAAwLYoOAAAwLYoOAAAwLYoOAAAwLYoOAAAwLYoOAAAwLYoOAAAwLYoOAAAwLYoOAAAwLYoOAAAwLYoOAAAwLYoOAAAwLYoOAAAwLYoOAAAwLYoOAAAwLYoOAAAwLYoOAAAwLYoOAAAwLYoOAAAwrV5GBwiGtLQ0hYeHy2q16pxzztHKlSuNjgQAAEKAKYqOJK1evVrh4eFGxwAAACGEqSsAAGBahhedLVu2aNasWUpJSZHdbldVVVW7Y8rLy5WWlqb4+HhlZWWppqam3TEzZsxQZmamXn311e6IDQAAegDDi05LS4vsdrvmzZt3yv2VlZVyOp3Kz89XRUWFYmJilJeXJ7fb7T/mhRde0Lp16/TUU0/pmWee0fbt27srPgAACGGGF53U1FQVFBRoypQpp9xfWlqq7OxsZWZmasSIESoqKlKfPn20du1a/zHR0dGSpMGDB2vSpEn68MMPuyU7AAAIbYYXndNpbW1VbW2tkpOT/WNWq1XJycmqrq6W9O87Qk1NTZKk5uZmbdq0SSNGjDAkLwAACC0h/a6rQ4cOyePxKDIyss14ZGSkdu/eLUlyu93Kz8+XJHm9XmVlZSkhIaHbswIAgNAT0kXnTFxwwQUsQAYAAKcU0lNXERERstlsbRYeS/++ixMVFWVQKgAA0FOEdNEJCwtTbGysXC6Xf8zr9crlcikxMdHAZAAAoCcwfOqqublZ9fX1/u2GhgbV1dVpwIABGjp0qHJzc1VYWKi4uDglJCSorKxMx48fV0ZGhoGpAQBAT2B40dm2bZtycnL8206nU5KUnp6u4uJiTZ06VQcPHlRJSYkaGxs1cuRILVu2jKkrAADwtQwvOklJSdqxY8dpj3E4HHI4HN2UCAAAmEVIr9EBAADoDIoOAAAwLYoOAAAwLYoOAAAwLYoOAAAwLYoOAAAwLYoOAAAwLYoOAAAwLYoOAAAwLYoOAAAwLYoOAAAwLYoOAAAwLYoOAAAwraAUnaNHjwbjYQAAAIIq4KLz7LPPqrKy0r89Z84cJSUl6fLLL9f27duDGg4AAKAzAi46q1ev1pAhQyRJGzdu1N/+9jctXbpUkyZN0qJFi4IeEAAAoKN6BXrCgQMHdN5550mS3nnnHV177bVKSUnR+eefr+zs7KAHBAAA6KiA7+icc8452rdvnyTp3Xff1YQJEyRJPp9PHo8nuOkAAAA6IeA7OldddZXuvvtuXXjhhTp8+LAmTZokSaqrq9OFF14Y9IAAAAAdFXDRuffee3X++edr3759uueeexQeHi5Jamxs1A9+8IOgBwQAAOiogItO7969lZeX1278lltuCUYeAACAoAm46EjS7t27tWrVKn388ceSpOHDh8vhcGjYsGFBDQcAANAZAS9GfuuttzRt2jTV1tYqJiZGMTEx+vDDDzVt2jS99dZbXZERAACgQwK+o/Pwww9r5syZmjNnTpvxkpISPfzww7r66quDFg4AAKAzAr6j09jYqOnTp7cbv/7669XY2BiMTAAAAEERcNEZP3683nvvvXbjW7du1bhx44ISCgAAIBgCnrpKS0vT4sWLVVtbq1GjRkmS3n//fb355pv66U9/qvXr1/uPvfLKK4OXFAAAIEABF52ioiJJ0vPPP6/nn3/+lPskyWKxqK6urpPxAAAAOi7gosM3lAMAgJ4i4DU6AAAAPcUZ3dFZsWKFvv/97+uss87SihUrTntsTk5OUIIBAAB01hkVneXLl2vatGk666yztHz58q88zmKxUHQAAEDIOKOi8/bbb5/yZwAAgFDGGh0AAGBaZ3RHx+l0nvED3nvvvR0O0xnHjx/X1KlTdc0116iwsNCQDAAAILScUdH58MMPz+jBLBZLp8J0xtNPP+3/AEMAAADpDIvOypUruzpHp+zZs0e7d+/WFVdcoV27dhkdBwAAhIiA1+gcO3ZMhw8fbjd++PBhNTU1BRxgy5YtmjVrllJSUmS321VVVdXumPLycqWlpSk+Pl5ZWVmqqalps/+hhx7SXXfdFfC1AQCAuQVcdAoKCvSHP/yh3fgbb7yhgoKCgAO0tLTIbrdr3rx5p9xfWVkpp9Op/Px8VVRUKCYmRnl5eXK73ZKkqqoqXXTRRbr44osDvjYAADC3gL8Coqam5pQLjsePH6/HHnss4ACpqalKTU39yv2lpaXKzs5WZmampH9/n9aGDRu0du1azZw5U++//74qKyv11ltvqbm5WSdPnlR4eLjuuOOOgLMAAABzCbjotLa26uTJk+3GT548qc8//zwoof7zWrW1tbrtttv8Y1arVcnJyaqurpYkzZ07V3PnzpUkrVu3Trt27aLkAAAASR2YuoqPj9eaNWvaja9evVqxsbFBCfWlQ4cOyePxKDIyss14ZGSkDhw4ENRrAQAA8wn4js6dd96p3Nxcbd++XRMmTJAkuVwuffDBB/rd734X9ICByMjIMPT6AAAgtAR8R2fs2LF68cUXNWTIEL3xxht6++239e1vf1uvvvqqxo0bF9RwERERstls/oXHX3K73YqKigrqtQAAgPkEfEdHkkaOHKlHHnkk2FnaCQsLU2xsrFwulyZPnixJ8nq9crlccjgcXX59AADQs3Wo6ARTc3Oz6uvr/dsNDQ2qq6vTgAEDNHToUOXm5qqwsFBxcXFKSEhQWVmZjh8/zjQVAAD4WoYXnW3btiknJ8e//eX3aqWnp6u4uFhTp07VwYMHVVJSosbGRo0cOVLLli1j6goAAHwtw4tOUlKSduzYcdpjHA4HU1UAACBgZ7QYefv27fJ6vV2dBQAAIKjOqOikp6fr0KFDkqQrr7zS/zMAAEAoO6Oic84556ihoUGS9K9//Us+n69LQwEAAATDGa3Rueqqq+RwODRo0CBZLBZlZmbKaj11R1q/fn1QAwIAAHTUGRWdBQsWaMqUKaqvr9fChQuVlZWl8PDwrs4GAADQKWf8rqtJkyZJkmpra5WTk6N+/fp1WSgAAIBgCPjt5V9+zo0kffrpp5KkIUOGBC8RAABAkARcdLxer5588kmVlpaqpaVFkhQeHq7c3FzNnj37K9fuAAAAdLeAi86jjz6ql19+WXPnztWYMWMkSVu3btVvf/tbtba2qqCgIOghAQAAOiLgolNRUaGFCxfqyiuv9I/FxMQoOjpaRUVFFB0AABAyAp5nOnLkiIYNG9ZufNiwYTpy5EhQQgEAAARDwEUnJiZG5eXl7cbLy8sVExMTlFAAAADBEPDU1T333KPbbrtNf/vb3zR69GhJ0t///nft27dPS5cuDXY+AACADgv4js748eP15ptvasqUKTp27JiOHTumKVOm6M0339S4ceO6IiMAAECHBHxHR5Kio6NZdAwAAEIeH3oDAABMi6IDAABMi6IDAABMK6Ci4/P5tHfvXp04caKr8gAAAARNwEXnqquu0r59+7oqDwAAQNAEVHSsVqsuvPBCHT58uIviAAAABE/Aa3Tmzp2rRYsWaefOnV2RBwAAIGgC/hydwsJCHT9+XDfccIN69+6tPn36tNm/efPmoIUDAADojICLzn333dcVOQAAAIIu4KKTnp7eFTkAAACCrkOfo1NfX69HH31Ud911l9xutyTpz3/+s3bt2hXUcAAAAJ0RcNHZvHmzpk2bppqaGv3xj39US0uLJGnHjh16/PHHgx4QAACgowIuOo888ojuvPNOlZaWqnfv3v7xyy67TH//+9+DmQ0AAKBTAi46O3fu1OTJk9uNn3vuuTp06FBQQgEAAARDwEWnf//+amxsbDdeV1en6OjooIQCAAAIhoCLznXXXafFixersbFRFotFXq9XW7du1UMPPaTp06d3QUQAAICOCbjoFBQUaNiwYfrud7+rlpYWXXfddXI4HEpMTNTs2bO7IiMAAECHBPw5OmFhYVq4cKFuv/127dq1S83Nzbr00kt10UUXdUE8AACAjgu46Hxp6NChOu+88yRJFoslaIEAAACCpUNF56WXXlJZWZn27NkjSbrooov0ox/9SFlZWcHMdkaOHj2qW265RR6PRx6PRzk5OcrOzu72HAAAIPQEXHSWLFmi5cuXy+FwaPTo0ZKkv//97/r1r3+tvXv3as6cOcHOeFrh4eEqLy/X2WefrZaWFn3ve9/TlClTFBER0a05AABA6Am46LzwwgtasGCBvve97/nHrrzyStntdi1YsKDbi47NZtPZZ58tSWptbZUk+Xy+bs0AAABCU8Dvujp58qTi4uLajcfGxsrj8QQcYMuWLZo1a5ZSUlJkt9tVVVXV7pjy8nKlpaUpPj5eWVlZqqmpabP/6NGjuv7665Wamqq8vDyde+65AecAAADmE3DRueGGG/TCCy+0G1+zZo2mTZsWcICWlhbZ7XbNmzfvlPsrKyvldDqVn5+viooKxcTEKC8vz/9lopJ0zjnn6NVXX9X69ev12muv6cCBAwHnAAAA5nNGU1dOp9P/s8Vi0UsvvaSNGzdq1KhRkqSamhrt3bu3Qx8YmJqaqtTU1K/cX1paquzsbGVmZkqSioqKtGHDBq1du1YzZ85sc2xUVJRiYmL03nvv6Zprrgk4CwAAMJczKjoffvhhm+3Y2FhJUn19vSRp4MCBGjhwoHbt2hXUcK2traqtrdVtt93mH7NarUpOTlZ1dbUk6cCBA+rTp4/69eunY8eO6b333tPNN98c1BwAAKBnOqOis3Llyq7OcUqHDh2Sx+NRZGRkm/HIyEjt3r1bkrR371498MAD8vl88vl8cjgcstvtRsQFAAAhpsMfGBgqEhIS9Pvf/97oGAAAIAQFXHROnDihlStXatOmTXK73e3eyl1RURG0cBEREbLZbG0WHkuS2+1WVFRU0K4DAADMKeCic99992njxo26+uqrlZCQ0KVf/xAWFqbY2Fi5XC5NnjxZkuT1euVyueRwOLrsugAAwBwCLjobNmzQs88+q7FjxwYlQHNzs39RsyQ1NDSorq5OAwYM0NChQ5Wbm6vCwkLFxcUpISFBZWVlOn78uDIyMoJyfQAAYF4BF53o6GiFh4cHLcC2bduUk5Pj3/7yrezp6ekqLi7W1KlTdfDgQZWUlKixsVEjR47UsmXLmLoCAABfK+CiU1hYqMWLF6uoqEjnn39+pwMkJSVpx44dpz3G4XAwVQUAAAIWcNGJj4/XiRMnNHnyZPXp00e9e/dus3/z5s1BCwcAANAZARedu+66S/v371dBQYGioqK6dDEyAABAZwRcdKqrq/Xiiy8qJiamK/IAAAAETcBf6jls2DB9/vnnXZEFAAAgqAIuOnPnzlVxcbE2bdqkQ4cOqampqc0/AACAUBHw1NWtt94qSbrlllvajPt8PlksFtXV1QUlGAAAQGcFXHRWrFjRFTkAAACCLuCiM378+K7IAQAAEHQBF50tW7acdv93vvOdDocBAAAIpoCLzowZM9qN/edn6bBGBwAAhIpO39H54osvVFdXpyVLlqigoCBowQAAADor4KLTv3//dmMTJ05U7969VVxcrHXr1gUlGAAAQGcF/Dk6XyUyMlL/+Mc/gvVwAAAAnRbwHZ3t27e3G9u/f7+WLl3K10IAAICQEnDRmT59uiwWi3w+X5vx0aNH68EHHwxaMAAAgM4KuOisX7++zbbVatW5556rs846K2ihAAAAgiHgonP++ed3RQ4AAICgC7joSJLL5ZLL5ZLb7ZbX622zz+l0BiUYAABAZwVcdH7729/qiSeeUFxcnAYNGtTmwwIBAABCScBFZ/Xq1XI6nZo+fXoXxAEAAAiegD9H54svvtCYMWO6IgsAAEBQBVx0brzxRr322mtdkQUAACCoAp66OnHihNasWSOXyyW73a5evdo+xL333hu0cAAAAJ0RcNHZsWOH/xOQd+7c2WYfC5MBAEAoCbjorFy5sityAAAABF3QvtQTAAAg1FB0AACAaVF0AACAaVF0AACAaVF0AACAaVF0AACAaVF0AACAaVF0AACAaVF0AACAaVF0AACAafX4orNv3z7NmDFDU6dO1bRp0/TGG28YHQkAAISIgL/rKtTYbDbdd999GjlypBobG5WRkaHU1FT17dvX6GgAAMBgPb7oDB48WIMHD5YkDRo0SBERETpy5AhFpwezWi2yWi0dOtfr9cnr9QU5EQCgpzK86GzZskXPPfectm3bpsbGRj3xxBOaPHlym2PKy8v13HPPqbGxUTExMXrggQeUkJDQ7rG2bdsmr9er8847r7viI8isVosGDOyrXraOzaqe9Hh15HALZQcAICkEik5LS4vsdrsyMzN1xx13tNtfWVkpp9OpoqIijRo1SmVlZcrLy9Obb76pyMhI/3GHDx9WYWGhFixY0J3xEWRWq0W9bFbNWV2tj/Y3BXTuiMH9tOSmRFmtFooOAEBSCBSd1NRUpaamfuX+0tJSZWdnKzMzU5JUVFSkDRs2aO3atZo5c6YkqbW1Vfn5+frJT36iMWPGdEtudK2P9jepdu9Ro2MAAHq4kH7XVWtrq2pra5WcnOwfs1qtSk5OVnV1tSTJ5/PpF7/4hS677DJNnz7doKQAACAUhXTROXTokDweT5spKkmKjIzUgQMHJElbt25VZWWlqqqqdMMNN+iGG27Qjh07jIgLAABCjOFTV501btw4bd++3egYAAAgBIX0HZ2IiAjZbDa53e424263W1FRUQalAgAAPUVIF52wsDDFxsbK5XL5x7xer1wulxITEw1MBgAAegLDp66am5tVX1/v325oaFBdXZ0GDBigoUOHKjc3V4WFhYqLi1NCQoLKysp0/PhxZWRkGJgaAAD0BIYXnW3btiknJ8e/7XQ6JUnp6ekqLi7W1KlTdfDgQZWUlKixsVEjR47UsmXLmLoCAABfy/Cik5SU9LXvknI4HHI4HN2UCAAAmEVIr9EBAADoDIoOAAAwLYoOAAAwLYoOAAAwLYoOAAAwLYoOAAAwLYoOAAAwLYoOAAAwLYoOAAAwLYoOAAAwLYoOAAAwLYoOAAAwLYoOAAAwLYoOAAAwLYoOAAAwLYoOAAAwLYoOAAAwLYoOAAAwLYoOAAAwLYoOAAAwLYoOAAAwLYoOAAAwLYoOAAAwLYoOAAAwLYoOAAAwLYoOAAAwLYoOAAAwrV5GBwDMxGq1yGq1dOhcr9cnr9cX5EQA8M1G0QGCxGq1aMDAvupl69iN0pMer44cbqHsAEAQUXSAILFaLepls2rO6mp9tL8poHNHDO6nJTclymq1UHQAIIgoOkCQfbS/SbV7jxodAwAgig4AdW5tkcT6IgChi6IDfMN1dm2RxPoiAKGLogN8w3VmbZHE+iIAoc0URSc/P1+bN2/WhAkTVFJSYnQcoEdibREAMzLFBwbm5OTooYceMjoGAAAIMaYoOklJSQoPDzc6BgAACDGGF50tW7Zo1qxZSklJkd1uV1VVVbtjysvLlZaWpvj4eGVlZammpsaApAAAoKcxvOi0tLTIbrdr3rx5p9xfWVkpp9Op/Px8VVRUKCYmRnl5eXK73d2cFAAA9DSGF53U1FQVFBRoypQpp9xfWlqq7OxsZWZmasSIESoqKlKfPn20du3abk4KAAB6GsOLzum0traqtrZWycnJ/jGr1ark5GRVV1cbmAwAAPQEIV10Dh06JI/Ho8jIyDbjkZGROnDggH/7lltu0Zw5c/TnP/9ZkyZNogQBAABJJvkcneXLlxsdAQAAhKCQvqMTEREhm83WbuGx2+1WVFSUQakAAEBPEdJFJywsTLGxsXK5XP4xr9crl8ulxMREA5MBAICewPCpq+bmZtXX1/u3GxoaVFdXpwEDBmjo0KHKzc1VYWGh4uLilJCQoLKyMh0/flwZGRkGpgYAAD2B4UVn27ZtysnJ8W87nU5JUnp6uoqLizV16lQdPHhQJSUlamxs1MiRI7Vs2TKmrgAAwNcyvOgkJSVpx44dpz3G4XDI4XB0UyIAAGAWIb1GBwAAoDMoOgAAwLQoOgAAwLQoOgAAwLQoOgAAwLQoOgAAwLQMf3s5AHSG1WqR1Wrp0Ller09ery/IiRDKeL1881B0APRYVqtFAwb2VS9bx25On/R4deRwC3+8viF4vXwzUXQA9FhWq0W9bFbNWV2tj/Y3BXTuiMH9tOSmRFmtFv5wfUPwevlmougA6PE+2t+k2r1HjY6BHoLXyzcLi5EBAIBpcUcHAAzCwlig61F0AMAALIwFugdFBwAMwMJYoHtQdADAQCyMBboWi5EBAIBpUXQAAIBpMXUFAAhIZ94tJvGOMXQvig4A4Ix19t1iEu8YQ/ei6AAAzlhn3i0m8Y4xdD+KDgAgYLxbDD0Fi5EBAIBpUXQAAIBpUXQAAIBpUXQAAIBpUXQAAIBpUXQAAIBpUXQAAIBpUXQAAIBpUXQAAIBpUXQAAIBpUXQAAIBpUXQAAIBpUXQAAIBpUXQAAIBpmaLovPPOO7r66qt11VVX6aWXXjI6DgAACBG9jA7QWSdPnlRxcbFWrFihfv36KSMjQ5MnT1ZERITR0QAAgMF6/B2dmpoajRgxQtHR0QoPD9ekSZO0ceNGo2MBAIAQYHjR2bJli2bNmqWUlBTZ7XZVVVW1O6a8vFxpaWmKj49XVlaWampq/Pv279+v6Oho/3Z0dLQ+++yzbskOAABCm+FFp6WlRXa7XfPmzTvl/srKSjmdTuXn56uiokIxMTHKy8uT2+3u5qQAAKCnMXyNTmpqqlJTU79yf2lpqbKzs5WZmSlJKioq0oYNG7R27VrNnDlTgwcPbnMH57PPPlNCQkKX5wYAoLtYrRZZrZYOn+/1+uT1+gy5fmev3VmGF53TaW1tVW1trW677Tb/mNVqVXJysqqrqyVJCQkJ2rVrlz777DP169dPf/nLX3T77bcbFRkAgKCyWi0aMLCvetk6Pglz0uPVkcMtHSocnb1+Z64dDCFddA4dOiSPx6PIyMg245GRkdq9e7ckqVevXiosLFROTo68Xq9uvfVW3nEFADANq9WiXjar5qyu1kf7mwI+f8TgflpyU6KsVkuHi05Hr9/ZawdDSBedM3XllVfqyiuvNDoGAABd5qP9Tarde/Qbe/2OMnwx8ulERETIZrO1W3jsdrsVFRVlUCoAANBThHTRCQsLU2xsrFwul3/M6/XK5XIpMTHRwGQAAKAnMHzqqrm5WfX19f7thoYG1dXVacCAARo6dKhyc3NVWFiouLg4JSQkqKysTMePH1dGRoaBqQEAQE9geNHZtm2bcnJy/NtOp1OSlJ6eruLiYk2dOlUHDx5USUmJGhsbNXLkSC1btoypKwAA8LUMLzpJSUnasWPHaY9xOBxyOBzdlAgAAJhFSK/RAQAA6AyKDgAAMC2KDgAAMC2KDgAAMC2KDgAAMC2KDgAAMC2KDgAAMC2KDgAAMC3DPzAwVFgsXfO4Z4fZ1O+swJ/ms8Ns/p87ms3Ia3dWR7KHQu4vc/TE7LxejNFTs/N66X5GP+eh9ryd6eNZfD6fL7iXBgAACA1MXQEAANOi6AAAANOi6AAAANOi6AAAANOi6AAAANOi6AAAANOi6AAAANOi6AAAANOi6AAAANOi6HSR8vJypaWlKT4+XllZWaqpqTE6kqk888wzyszMVGJioiZMmKDbb79du3fvNjqW6T377LOy2+168MEHjY5iOp999pnuvvtuJSUlKSEhQdOmTdMHH3xgdCxT8Xg8euyxx5SWlqaEhARNnjxZTzzxhPiCgM7bsmWLZs2apZSUFNntdlVVVbXZ7/P5tGTJEqWkpCghIUG33HKL9uzZ0y3ZKDpdoLKyUk6nU/n5+aqoqFBMTIzy8vLkdruNjmYamzdv1g9/+EOtWbNGpaWlOnnypPLy8tTS0mJ0NNOqqanR6tWrZbfbjY5iOkeOHNHNN9+s3r17a+nSpfrDH/6gwsJCDRgwwOhoprJ06VK98MIL+uUvf6nKykrdfffdWrZsmVauXGl0tB6vpaVFdrtd8+bNO+X+pUuXauXKlfrVr36lNWvW6Oyzz1ZeXp5OnDjR9eF8CLobb7zRV1RU5N/2eDy+lJQU3zPPPGNgKnNzu92+Sy65xLd582ajo5hSU1OT76qrrvJt3LjR53A4fAsXLjQ6kqk8/PDDvptvvtnoGKY3c+ZM37333ttm7I477vDNnTvXoETmdMkll/j+9Kc/+be9Xq9v4sSJvmXLlvnHjh496ouLi/O9/vrrXZ6HOzpB1traqtraWiUnJ/vHrFarkpOTVV1dbWAyczt27Jgk8V/AXWT+/PlKTU1t87pG8Lz99tuKi4vTz372M02YMEHTp0/XmjVrjI5lOomJifrf//1f/eMf/5Akbd++XVu3btWkSZMMTmZuDQ0NamxsbPP/H/3799eoUaO65e9i4N/3jtM6dOiQPB6PIiMj24xHRkayhqSLeL1e/frXv9aYMWN0ySWXGB3HdP7whz/oww8/1Msvv2x0FNP65JNP9MILLyg3N1ezZs3SBx98oIULF6p3795KT083Op5pzJw5U01NTbr22mtls9nk8XhUUFCg66+/3uhoptbY2ChJp/y7eODAgS6/PkUHPV5RUZF27dql559/3ugoprNv3z49+OCD+t3vfqezzjrL6Dim5fP5FBcXp7vuukuSdOmll2rXrl1avXo1RSeI3njjDb322mt65JFHNGLECNXV1cnpdGrw4ME8zyZG0QmyiIgI2Wy2dguP3W63oqKiDEplXvPnz9eGDRu0atUqDRkyxOg4plNbWyu3262MjAz/mMfj0ZYtW1ReXq4PPvhANpvNwITmMGjQIA0fPrzN2LBhw/TWW28ZlMicFi1apJkzZ+q6666TJNntdu3du1fPPPMMRacLDRo0SNK//w4OHjzYP+52uxUTE9Pl12eNTpCFhYUpNjZWLpfLP+b1euVyuZSYmGhgMnPx+XyaP3++/vSnP6msrEwXXHCB0ZFM6bLLLtNrr72mV155xf8vLi5O06ZN0yuvvELJCZIxY8b41418ac+ePTr//PMNSmROn3/+uSwWS5sxm83G28u72Le+9S0NGjSozd/FpqYmvf/++93yd5E7Ol0gNzdXhYWFiouLU0JCgsrKynT8+PE2/1WMzikqKtLrr7+uJ598UuHh4f454P79+6tPnz4GpzOPfv36tVv31LdvXw0cOJD1UEH0ox/9SDfffLOefvppXXvttaqpqdGaNWs0f/58o6OZyhVXXKGnn35aQ4cO9U9dlZaWKjMz0+hoPV5zc7Pq6+v92w0NDaqrq9OAAQM0dOhQ5eTk6KmnntKFF16ob33rW1qyZIkGDx6syZMnd3k2i48q2yVWrVql5557To2NjRo5cqT+53/+R6NGjTI6lml81We5OJ1OCmUXmzFjhmJiYnT//fcbHcVU3nnnHf3mN7/Rnj179K1vfUu5ubnKzs42OpapNDU1acmSJaqqqvJPo1x33XXKz89XWFiY0fF6tE2bNiknJ6fdeHp6uoqLi+Xz+VRSUqI1a9bo6NGjGjt2rObNm6eLL764y7NRdAAAgGmxRgcAAJgWRQcAAJgWRQcAAJgWRQcAAJgWRQcAAJgWRQcAAJgWRQcAAJgWRQcAAJgWRQdAOzNmzNCDDz5odAw/n8+nBx54QOPHj5fdblddXd0Znbdu3TqNGzfOv/3444/rhhtuOKNz//vYX/ziF7r99tv926H2HAE4Nb7rCkDI+8tf/qKKigqtWLFCF1xwgSIiIjr0OD/+8Y/lcDg6dO7999//jfvyR7vdrieeeKJbvo8I6CoUHQDdwuPxyGKxyGoN/EbyJ598okGDBmnMmDGdyhAeHq7w8PAOndu/f/9OXRuAMZi6AkLUjBkztHDhQi1atEjjx4/XxIkT9fjjj/v3NzQ0tJvGOXr0qOx2uzZt2iTp31+0Z7fb9e6772r69OlKSEhQTk6O3G63/vznP+vaa6/VmDFjNHfuXB0/frzN9T0ej+bPn6+xY8cqKSlJjz32WJs7Gq2trXrooYd0+eWXa/To0crKyvJfV/r/00br16/X1KlTFR8fr717957yd928ebNuvPFGxcXFKSUlRYsXL9bJkycl/XvKaMGCBdq7d6/sdrvS0tK+8jlbt26dvvvd72rUqFHKz8/X4cOH2+z/7+moTZs26cYbb9To0aM1btw43XTTTfrXv/51ysf+76mr/7ZhwwaNHTtWr776qiRp3759mjNnjsaNG6fx48dr9uzZamho+Mrz/9vLL7+s6667zv+c/Oc3me/du1ezZ89WYmKixowZozlz5ujAgQOnzfrggw9qxowZ/u2ve319+Tzn5+d/7fMOhDKKDhDCKioq1LdvX61Zs0b33HOPnnjiCW3cuDHgx/ntb3+rBx54QKtXr9ann36qO++8UytWrNAjjzyiZ599Vn/961+1cuXKdte22Wx66aWXdP/992v58uV66aWX/Pvnz5+v6upqPfroo3r11Vd1zTXX6NZbb9WePXv8x3z++edaunSpFi5cqNdff12RkZHtsn322WeaOXOm4uPj9fvf/16/+tWv9PLLL+upp56S9O8po5/97GcaMmSI/vrXv+rll18+5e/4/vvv6/7779cPf/hDvfLKK0pKSvI/xqmcPHlS+fn5+s53vqNXX31VL774or7//e/LYrEE8tRKkl577TXdddddWrx4sa6//np98cUXysvLU3h4uMrLy/XCCy+ob9++uvXWW9Xa2vq1j/f8889r/vz5ys7O1muvvaYnn3xS3/72tyVJXq9Xt99+u44cOaKVK1eqtLRUn3zyiQoKCgLOfbrX15fPs9PpPO3zDoQ6pq6AEGa323XHHXdIki666CKtWrVKLpdLEydODOhx7rzzTo0dO1aSdOONN+qRRx5RVVWVLrjgAknS1VdfrU2bNmnmzJn+c8477zzdd999slgsGjZsmHbu3Knly5crOztbe/fu1bp16/TOO+8oOjpakpSXl6d3331X69at01133SVJ+uKLL/SrX/1KMTExX5nt+eef15AhQ/TLX/5SFotFw4cP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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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AAD4g89F56abbtKsWbNUXl4ui8Uit9utLVu26JlnntHw4cPrISIAAEDd+Fx0MjMz1bFjR/3ud79TVVWVbrrpJqWkpKhHjx6655576iMjAABAnfh8H53Q0FDNmDFD9957r3bu3KnKykr95je/4SGfAAAg6PhcdH7Wvn17tWvXTpJksVj8FggAAMBf6nTDwLfeeks333yzYmNjFRsbq5tvvllvvfWWv7MBAACcF5/P6MyePVuLFy9WSkqKunfvLkn64osv9PTTT2v//v2aOHGivzMCAADUic9FZ9myZXryySd18803e8cGDBggu92uJ598kqIDAACChs+Xrk6fPq2YmJha49HR0XK5XH4JBQAA4A8+F51hw4Zp2bJltcZXrFihoUOH+iUUAACAP5zTpaucnBzv1xaLRW+99ZbWr1+vbt26SZKKi4u1f/9+bhgIAACCyjkVna+++qrGcnR0tCSprKxMktSyZUu1bNlSO3fu9HM8AACAujunorNkyZL6zgEAAOB3dbqPDgAAQEPg88fLf/zxRy1ZskQbNmyQ0+mUx+OpsT4/P99v4QAAAM6Hz0Xn4Ycf1vr163XDDTcoLi6Oxz8AAICg5XPRWbt2rebNm6devXrVRx4AAAC/8XmOTps2bRQWFlYfWQAAAPzK56KTlZWlWbNmad++ffWRBwAAwG98vnQVGxurH3/8UQMHDlSTJk3UqFGjGus3btzot3C+OHnypIYMGaIbb7xRWVlZAckAAACCi89FZ/LkyTp48KAyMzMVERERNJOR586d671TMwAAgFSHolNUVKQ333xTUVFR9ZGnTvbs2aPdu3fruuuu4+7MAADAy+c5Oh07dtSpU6f8FmDTpk0aP368EhMTZbfbVVhYWGubvLw8JScnKzY2VqNHj1ZxcXGN9c8884wmT57st0wAAMAMPhedKVOmaObMmdqwYYOOHDmiioqKGn98VVVVJbvdrmnTpp1xfUFBgXJycpSRkaH8/HxFRUUpPT1dTqdTklRYWKirrrpKV199tc+vDQAAzObzpas//vGPkqQ777yzxrjH45HFYlFpaalPx0tKSlJSUtIvrl+0aJHGjBmjUaNGSZKys7O1du1arVy5UuPGjdOXX36pgoICffTRR6qsrNTp06cVFhamCRMm+PbGAACAcXwuOq+//np95Dij6upqlZSU6O677/aOWa1WJSQk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tSwWvx7O65JQm5o19v3bfEmozft1XbMF8rXPV12yB0Pun3M0xOz8vARGQ83Oz8uFF+jvebB93871eBaPx+Px70v7prKyUmVlZZKk4cOHa+rUqYqPj1eLFi3Uvn17FRQUeD82HhcXp9zcXK1evVqrV6/mrA4AADirgBedDRs2KDU1tdb4iBEjNHPmTEnS0qVLtXDhQpWXl6tr16569NFH1a1btwsdFQAANDABLzoAAAD1JagnIwMAAJwPig4AADAWRQcAABiLogMAAIxF0QEAAMai6AAAAGNRdAAAgLEoOgAAwFgUnXqSl5en5ORkxcbGavTo0SouLg50JKO89tprGjVqlHr06KF+/frp3nvv1e7duwMdy3jz5s2T3W7XU089Fegoxvnhhx90//33Kz4+XnFxcRo6dKi2bt0a6FhGcblcevHFF5WcnKy4uDgNHDhQr7zyirhv7vnbtGmTxo8fr8TERNntdhUWFtZY7/F4NHv2bCUmJiouLk533nmn9uzZc0GyUXTqQUFBgXJycpSRkaH8/HxFRUUpPT291lPYUXcbN27Uf/zHf2jFihVatGiRTp8+rfT0dFVVVQU6mrGKi4u1fPly2e32QEcxzrFjx3T77berUaNGmj9/vj744ANlZWWpRYsWgY5mlPnz52vZsmV6/PHHVVBQoPvvv18LFizQkiVLAh2twauqqpLdbte0adPOuH7+/PlasmSJnnjiCa1YsUKXXHKJ0tPT9eOPP9Z/OA/87tZbb/VkZ2d7l10ulycxMdHz2muvBTCV2ZxOp6dLly6ejRs3BjqKkSoqKjzXX3+9Z/369Z6UlBTPjBkzAh3JKM8995zn9ttvD3QM440bN84zderUGmMTJkzwTJkyJUCJzNSlSxfPxx9/7F12u92e/v37exYsWOAdO378uCcmJsbz/vvv13sezuj4WXV1tUpKSpSQkOAds1qtSkhIUFFRUQCTme3EiROSxL+A68n06dOVlJRU4+ca/rNmzRrFxMTovvvuU79+/TR8+HCtWLEi0LGM06NHD/3P//yPvv32W0nS9u3btWXLFl177bUBTma2vXv3qry8vMb/P5o3b65u3bpdkN+LIfX+CheZI0eOyOVyKTw8vMZ4eHg4c0jqidvt1tNPP62ePXuqS5cugY5jnA8++EBfffWV3n777UBHMdZ3332nZcuWKS0tTePHj9fWrVs1Y8YMNWrUSCNGjAh0PGOMGzdOFRUVGjx4sGw2m1wulzIzM3XLLbcEOprRysvLJemMvxcPHTpU769P0UGDl52drZ07d+qNN94IdBTjHDhwQE899ZT+8pe/qHHjxoGOYyyPx6OYmBhNnjxZkvSb3/xGO3fu1PLlyyk6frR69Wq99957ev7559W5c2eVlpYqJydHrVu35vtsMIqOn7Vq1Uo2m63WxGOn06mIiIgApTLX9OnTtXbtWi1dulRt27YNdBzjlJSUyOl0auTIkd4xl8ulTZs2KS8vT1u3bpXNZgtgQjNERkaqU6dONcY6duyojz76KECJzPTss89q3LhxuummmyRJdrtd+/fv12uvvUbRqUeRkZGS/vF7sHXr1t5xp9OpqKioen995uj4WWhoqKKjo+VwOLxjbrdbDodDPXr0CGAys3g8Hk2fPl0ff/yxcnNzdeWVVwY6kpH69u2r9957T++88473T0xMjIYOHap33nmHkuMnPXv29M4b+dmePXt0+eWXByiRmU6dOiWLxVJjzGaz8fHyenbFFVcoMjKyxu/FiooKffnllxfk9yJndOpBWlqasrKyFBMTo7i4OOXm5urkyZM1/lWM85Odna33339ff/7znxUWFua9Bty8eXM1adIkwOnM0axZs1rznpo2baqWLVsyH8qP7rjjDt1+++2aO3euBg8erOLiYq1YsULTp08PdDSjXHfddZo7d67at2/vvXS1aNEijRo1KtDRGrzKykqVlZV5l/fu3avS0lK1aNFC7du3V2pqql599VV16NBBV1xxhWbPnq3WrVtr4MCB9Z7N4qHK1oulS5dq4cKFKi8vV9euXfXoo4+qW7dugY5ljF+6l0tOTg6Fsp6NHTtWUVFReuSRRwIdxSiffvqp/vSnP2nPnj264oorlJaWpjFjxgQ6llEqKio0e/ZsFRYWei+j3HTTTcrIyFBoaGig4zVoGzZsUGpqaq3xESNGaObMmfJ4PJozZ45WrFih48ePq1evXpo2bZquvvrqes9G0QEAAMZijg4AADAWRQcAABiLogMAAIxF0QEAAMai6AAAAGNRdAAAgLEoOgAAwFgUHQAAYCyKDoA6GTt2rJ566qlAx/DyeDx67LHH1KdPH9ntdpWWltbaZtWqVerdu7d3+aWXXtKwYcO8yw899JDuvffeC5IXwIVB0QFghP/+7/9Wfn6+5s6dq3Xr1unf//3ff3Wfu+66S4sXL67/cEEkOTn5onvPuLjxUE8AQcPlcslischq9f3fYN99950iIyPVs2fPc94nLCxMYWFhPr8WgIaDMzpAAzZ27FjNmDFDzz77rPr06aP+/fvrpZde8q7fu3dvrcs4x48fl91u14YNGyT942F8drtdn332mYYPH664uDilpqbK6XTq73//uwYPHqyePXtqypQpOnnyZI3Xd7lcmj59unr16qX4+Hi9+OKL+ufH51VXV+uZZ57Rb3/7W3Xv3l2jR4/2vq70/y8lffLJJxoyZIhiY2O1f//+M77XjRs36tZbb1VMTIwSExM1a9YsnT59WtI/Ljk9+eST2r9/v+x2u5KTk8/p+/evl67+VXFxsfr27at58+Z5v3ePPPKI+vbtq549eyo1NVXbt28/p9eSpDVr1mjUqFGKjY1VfHy8MjIyvOuOHTumBx98UNdcc426deumP/7xj9qzZ89Zsy5evLjGe/350tvChQuVmJio+Ph4ZWdn66effpL0j5+Xffv2KScnR3a7/RcfjguYhKIDNHD5+flq2rSpVqxYoQceeECvvPKK1q9f7/NxXn75ZT322GNavny5vv/+e02aNEmvv/66nn/+ec2bN0/r1q3TkiVLar22zWbTW2+9pUceeUSLFy/WW2+95V0/ffp0FRUV6YUXXtC7776rG2+8sdYv8FOnTmn+/PmaMWOG3n//fYWHh9fK9sMPP2jcuHGKjY3VX//6Vz3xxBN6++239eqrr0qSHnnkEd13331q27at1q1bp7ffftvn9/+vHA6H7rrrLmVmZmrcuHGSpIkTJ8rpdGr+/PlatWqVoqOjdccdd+jo0aO/ery1a9dqwoQJSkpK0jvvvKPc3FzFxcV51z/00EPatm2bXn31Vb355pvyeDwaN26ct6Scqw0bNqisrEy5ubmaOXOm8vPzlZ+fL+kfZalt27a67777tG7dOq1bt86nYwMNEZeugAbObrdrwoQJkqSrrrpKS5culcPhUP/+/X06zqRJk9SrVy9J0q233qrnn39ehYWFuvLKKyVJN9xwgzZs2OD9pS9J7dq108MPPyyLxaKOHTvq66+/1uLFizVmzBjt379fq1at0qeffqo2bdpIktLT0/XZZ59p1apVmjx5siTpp59+0hNPPKGoqKhfzPbGG2+obdu2evzxx2WxWNSpUyf98MMPmjVrljIyMtS8eXOFhYXJZrMpMjLSp/d9Jh9//LEefPBBPfXUUxoyZIgkafPmzSouLpbD4VBoaKgkKSsrS4WFhfroo4902223nfWYc+fO1ZAhQ3Tfffd5x35+z3v27NGaNWu0bNky76W3WbNm6Xe/+50KCws1ePDgc87eokULPf7447LZbOrUqZOSkpLkcDg0ZswYtWzZUjabTWFhYX75PgENAUUHaOD+9fJDZGSknE7neR0nPDxcl1xyibfkSFJERIS2bt1aY59u3brJYrF4l7t3765FixbJ5XLp66+/lsvl0o033lhjn+rqarVs2dK73KhRo1+9hLJr1y716NGjxmv16tVLVVVV+v7779W+fXuf3uvZFBcXa+3atZozZ44GDhzoHd+xY4eqqqoUHx9fY/tTp06prKzsV49bWlqq0aNHn3Hdrl27FBISom7dunnHWrVqpauvvlq7du3yKX/nzp1ls9m8y5GRkfr66699OgZgEooO0MCFhNT8z9hisXjnyfw8qfef5838PK/lbMexWCxnPK7b7T7nXFVVVbLZbFq5cmWNX7yS1LRpU+/XTZo0qVFgAu3KK69Uy5Yt9fbbbyspKUmNGjWSJFVWVioyMrLW5TtJat68+a8et0mTJueV65//Xn92pr/Ls/08ABcj5ugABrvsssskSeXl5d6xM91fpq6Ki4trLH/55Zfq0KGDbDabunbtKpfLpcOHD6tDhw41/vh62aRTp04qKiqq8Qt7y5YtCgsLU9u2bf3yXn7WqlUr5ebmqqysTJMmTfLOkYmOjtahQ4dks9lqvZ+fv89n06VLFzkcjjOu69Spk06fPq0vv/zSO3bkyBF9++236ty5s6R//F0eOnSoxvegLn+XjRo18qmwAg0dRQcwWJMmTdS9e3fNmzdPu3bt0saNG/Xiiy/67fj79+9XTk6Odu/erffff19Lly5VamqqJOnqq6/W0KFD9eCDD+pvf/ubvvvuOxUXF+u1117T2rVrfXqdP/zhD/r+++/15JNPateuXSosLNRLL72ktLS0On0U/deEh4crNzdXu3fv1pQpU3T69GklJCSoe/fuysjI0Lp167R371797//+r1544YVal/TOZMKECfrggw80Z84c7dq1Szt27PB+muuqq67SgAED9Nhjj2nz5s3avn27HnjgAbVp00YDBgyQJMXHx+vw4cOaP3++ysrKlJeXp88++8zn93b55Zdr06ZN+uGHH3T48GGf9wcaGooOYLinn35aLpdLI0eO1NNPP61Jkyb57djDhw/XqVOnNHr0aE2fPl2pqak1JuXm5ORo+PDhmjlzpgYPHqx7771XW7duVbt27Xx6nTZt2mjevHkqLi7WsGHD9MQTT+jWW2/VPffc47f38q8iIyOVm5urHTt26P7775fb7da8efN0zTXXaOrUqbrxxhs1efJk7du3TxEREb96vPj4eM2ePVtr1qzRsGHDdMcdd9QoSDk5OYqOjtb48eN12223yePxaN68ed5LZ506ddK0adP0xhtvaNiwYSouLtZdd93l8/u67777tG/fPg0cOFD9+vXzeX+gobF4uHgLAAAMxRkdAABgLD51BQB+cNNNN/3iXZ2zs7N1yy23XOBEACQuXQGAX+zbt+8XP7ofHh6uZs2aXeBEACSKDgAAMBhzdAAAgLEoOgAAwFgUHQAAYCyKDgAAMBZFBwAAGIuiAwAAjEXRAQAAxvp/i7vQb25okXgAAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/tony/anaconda3/envs/suno_env/lib/python3.10/site-packages/matplotlib/axes/_axes.py:6862: RuntimeWarning: Converting input from bool to <class 'numpy.uint8'> for compatibility.\n",
      "  m, bins = np.histogram(x[i], bins, weights=w[i], **hist_kwargs)\n"
     ]
    },
    {
     "data": {
      "image/png": "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Va1a1duzAQAAlEmJLxh4++23S5J27Nih+Ph4XX311V4bCgAAwA6Wr4ycnJzs+frw4cOSpJCQEPsmAgAAsInl0CksLNTrr7+uefPmKS8vT5JUtWpVJSQk6JFHHvnDc3cAAACuNMuh89JLL2nlypUaPny4mjdvLklKT0/Xq6++qgsXLigpKcn2IQEAAErDcuisXr1a48ePV8eOHT1rYWFhqlevnsaMGUPoAACAcsPycaaTJ0+qcePGxdYbN26skydP2jIUAACAHSyHTlhYmJYsWVJsfcmSJQoLC7NlKAAAADtYPnT15JNP6uGHH9bXX3+tqKgoSdK3336rQ4cOac6cOXbPBwAAUGqW9+i0atVK69atU+fOnXX69GmdPn1anTt31rp169SyZUtvzAgAAFAqlvfoSFK9evU46RgAAJR7XPQGAAAYi9ABAADGInQAAICxLIWO2+1Wdna2zp8/7615AAAAbGM5dLp06aJDhw55ax4AAADbWAodPz8/NWrUSCdOnPDSOAAAAPaxfI7O8OHDNWXKFO3atcsb8wAAANjG8nV0Ro4cqbNnz+ree+9VQECAgoKCity/ZcsW24YDAAAoC8uh8/TTT3tjDgAAANtZDp2ePXt6Yw4AAADbleo6Ovv379dLL72kYcOGyeVySZI+//xz7d6929bhAAAAysJy6GzZskUxMTHKzMzUxx9/rLy8PEnSDz/8oFdeecX2AQEAAErLcuhMmzZNQ4cO1bx58xQQEOBZv/XWW/Xtt9/aORsAAECZWA6dXbt2qVOnTsXWa9WqpePHj9syFAAAgB0sh061atWUk5NTbD0rK0v16tWzZSgAAAA7WA6d7t27a+rUqcrJyZHD4VBhYaHS09M1efJkxcbGemFEAACA0rEcOklJSWrcuLHuuOMO5eXlqXv37oqLi1N0dLQeeeQRb8wIAABQKpavoxMYGKjx48dr8ODB2r17t86cOaObb75Z119/vRfGAwAAKD3LofObBg0aqH79+pIkh8Nh20AAAAB2KdUFA1esWKEePXooIiJCERER6tGjh1asWGH3bAAAAGVieY/O9OnTNX/+fMXFxSkqKkqS9O2332rixInKzs7WE088YfeMAAAApWI5dJYuXapx48apR48enrWOHTvK6XRq3LhxhA4AACg3LB+6ys/PV3h4eLH1pk2bqqCgwJahAAAA7GA5dO69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H13LJTk5maD0sv79+yssLEzPPPOMr0cxyqeffqoXX3xR+/bt07XXXquEhAT169fP12MZJTc3V9OnT1dqaqrnMEr37t01ZMgQBQYG+nq8Cm3z5s2Kj48vtt6zZ09NmjRJbrdbM2bMUEpKik6dOqUWLVpo9OjRuuGGG7w+G6EDAACMxTk6AADAWIQOAAAwFqEDAACMRegAAABjEToAAMBYhA4AADAWoQMAAIxF6AAAAGMROgBs079/f02YMMHXY3i43W7985//VKtWreR0OpWVlVXsMatWrVLLli19MN3FleQ97NChg+bPn++57XQ6lZqa6uXJgIqJz7oCYKwvvvhCq1ev1sKFC3XdddepZs2axR7TrVs3tW/f3gfT2eerr75S9erVfT0GUC4ROgDKtYKCAjkcDvn5Wd8BfeDAAdWpU0fNmzf/w8cEBQVV+A+CrVOnjq9HAMotDl0Bhunfv7/Gjx+vKVOmqFWrVmrbtq1eeeUVz/0HDx4sdhjn1KlTcjqd2rx5s6T/fECf0+nUl19+qdjYWEVGRio+Pl4ul0uff/65unbtqubNm2v48OE6e/ZskdcvKCjQ2LFj1aJFC91yyy16+eWX9fuP1Ltw4YImT56s2267TVFRUerbt6/ndaX/fyhpw4YN6tatmyIiIpSdnX3R73XLli3q06ePwsPD1a5dO02dOlX5+fmSpKeeekrjxo1Tdna2nE6nOnTocNFt/Pehq507d6p///6Kjo5W8+bN1atXL23fvv2y7/tv20lNTVWXLl0UERGhxMREHTp0yPOYp556SoMHDy7yvAkTJqh///6W3sP/9t+Hrg4fPqxhw4apVatWioqKUq9evbRt27bLfg+AiQgdwECrV69WlSpVlJKSoieffFKvvfaaNm3aZHk7r776qv75z39q2bJlOnz4sIYOHaqFCxdq2rRpmj17tr766istWrSo2Gv7+/trxYoVeuaZZzR//nytWLHCc//YsWOVkZGhl156Se+//77uvvtuPfjgg9q3b5/nMefOndOcOXM0fvx4rVmzRsHBwcVmO3LkiAYOHKiIiAi99957ev7557Vy5UrNnDlTkvTMM8/o8ccfV0hIiL766iutXLmyRN/ziBEjFBISopUrV2rVqlV66KGHFBAQUKLnnjt3TjNnztTkyZO1dOlSnTp1SklJSSV67u9d7j28lDNnziguLk5HjhzR66+/rvfee08PPvigCgsLLc8BmIBDV4CBnE6nHn30UUnS9ddfr8WLFystLU1t27a1tJ2hQ4eqRYsWkqQ+ffpo2rRpSk1N1XXXXSdJuuuuu7R582YNHDjQ85z69evr6aeflsPhUOPGjbVr1y7Nnz9f/fr1U3Z2tlatWqVPP/1U9erVkyQlJibqyy+/1KpVqzRs2DBJ0q+//qrnn39eYWFhfzjb22+/rZCQED333HNyOBwKDQ3VkSNHNHXqVA0ZMkTVqlVT1apV5e/vb+nQTnZ2thITExUaGup5/0rq119/1XPPPadmzZpJkiZNmqRu3bopMzNTkZGRJd7Opd7Dy1mzZo1++eUXrVy5UjVq1JAkNWrUqMSvDZiGPTqAgZxOZ5HbderUkcvlKtN2goODddVVV3kiR5Jq166tX375pchzmjVrJofD4bkdFRWln376SQUFBdq1a5cKCgp09913Kzo62vNn69at2r9/v+c5AQEBxb6H/7Znzx5FR0cXea0WLVooLy9Phw8ftvy9/iYhIUHPPvusBgwYoNmzZxeZ63IqVaqkiIgIz+3Q0FBdc8012rNnj6UZLvUeXk5WVpZuvvlmT+QAf3bs0QEMVKlS0f+0HQ6H5xyP307q/f05H7+d13Kp7Tgcjotu18ohkby8PPn7++udd96Rv79/kfuqVKni+TooKKjID/or6bHHHlOPHj30+eef64svvtCMGTP00ksvqXPnzmXe9u//Ofzmj9770qroJ1YDdmOPDvAnU6tWLUlSTk6OZ+1i15cprczMzCK3t23bpkaNGsnf319NmjRRQUGBfvnlFzVq1KjIH6u/ORQaGqqMjIwi4ZCenq6qVasqJCSkTN/DDTfcoAEDBmju3Lnq0qWL3nnnnRI9Lz8/X999953n9t69e3Xq1CnPYbBatWoVed+li7/3l3oPL+e3E81PnDhRopkB0xE6wJ9MUFCQoqKiNHv2bO3Zs0dbtmzRyy+/bNv2s7OzlZycrL1792rNmjVavHix4uPjJf0nIGJiYvSPf/xDH3/8sQ4cOKDMzEzNmjVLn332maXXeeCBB3T48GGNGzdOe/bsUWpqql555RUlJCSU6lfRpf+cTDx27Fht3rxZP//8s9LT07V9+3ZPqFxOQECAxo0bp23btum7777TqFGjFBUV5Tk/59Zbb9V3332nd999V/v27dOMGTO0e/fuYtu51Ht4Od27d1ft2rU1ZMgQpaen68CBA1q/fr0yMjJK/kYABuHQFfAnNHHiRD3zzDPq1auXbrjhBj355JP6+9//bsu2Y2Njde7cOfXt21f+/v6Kj4/Xfffd57k/OTlZM2fO1KRJk3T06FHVqFFDUVFRuuOOOyy9Tr169TR79mxNmTJFKSkpqlGjhvr06aNHHnmk1LP7+fnpxIkTGjlypI4dO6aaNWuqS5cuevzxx0v0/KCgID300EMaPny4jhw5opYtWxa5yvFtt92mwYMH64UXXtD58+fVu3dvxcbGateuXUW2c7n38FICAwM1d+5cTZ48WQMHDlRBQYFCQ0M1evTokr8RgEEc7ktdnAEAUCKrVq3SxIkT9c033/h6FAC/w6ErAABgLA5dAUAJPPjgg0pPT7/ofQ8//LDq1q17hScCUBIcugKAEjhy5IjOnTt30fuqV6/OdWuAcorQAQAAxuIcHQAAYCxCBwAAGIvQAQAAxiJ0AACAsQgdAABgLEIHAAAYi9ABAADGInQAAICx/h+htubKktu+mgAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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ABBIPA463333nUJCQnTWWWdJkrZs2aK3335b3bt315gxY7xeIAAAQH15/Opq6tSp+vzzzyVJBQUFGjt2rL766is98cQTeuaZZ7xeIAAAQH15HHR27dql+Ph4SdK7776ryMhILVu2TI8++qhWrlzp9QLRMJXn1WFuHQBAU+Pxq6uysjI1b95ckrRu3ToNGDBAktS1a1cVFBR4tzrUW3Xz6kjMrQMAaFrqNY/OsmXL1K9fP61bt0533nmnJOngwYPq0KGDl8tDfVWdV0cSc+sAAJocj4POH/7wB91+++168cUXNXz4cEVFRUmSPv74Y9crLQQO5tUBADRlHged5ORkff755zp+/Ljat2/v2j569Gi1atWqliMBAAAaV73m0bHb7W4hR5LOPfdcrxQEAADgLR4HnQEDBigkpOaROx999FGDCgIAAPAWj4POjTfe6Pa5rKxM27Zt02effabx48d7rTAAAICGanDQqbB06VJt3bq1wQXB9+z2/06f5HQaRmABACzL4wkDa9K3b1+9//773jodfKDy3DphYW0UFtZG7Tu0ZhJBAIBl1aszcnXee+895tEJcFXn1mFeHQCA1XkcdIYPH+7WGdkYo0OHDunw4cOaPn26V4uDbzC3DgCgqfA46AwaNMjtc0hIiM4880z16tVL3bp181phAAAADeVx0Ln99tt9UQcAAIDXea2PDoJX5VFYEiOxAADWQdBpwljhHABgdQSdJowVzgEAVlenoLN9+3ZFRkbKZvPatDsIIIzCAgBYVZ2SS1pamoqKiiRJAwcOdP0eAAAgkNUp6LRr10779++XJH377bcyhlcaVme32xQa+vMvZk4GAASrOr26GjJkiNLT09WxY0eFhIRo5MiRNb7GYvXy4FZdB2U6JwMAglWdgs6sWbM0ePBg5efna/bs2Ro1apTatGnj69rgBywTAQCwkjqPuurbt68kKScnRxkZGWrbtq3PioL/0UEZAGAFHg8vz8zMdP3++++/lySdddZZ3qsIAADASzwOOk6nU3/961+1aNEilZSUSJLatGmjcePG6dZbb230IejHjh3T2LFjVV5ervLycmVkZGj06NGNWkNTwOzJAIBg5HHQeeKJJ/Tmm29q6tSp6tmzpyTpyy+/1DPPPKPS0lJNmTLF60XWpk2bNlq6dKlatWqlkpISXXPNNRo8eLDCwsIatQ6rYvZk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ZcoURUZGntZHp23btl4rDvBE5Xl1unVsw6SCAADPg87NN98sSRo7dqzbdmOMQkJClJub65XCAG9gUkEAaNo8Djovv/yyL+oAGgUdlgGgafE46PTq1csXdQA+RYdlAGiaPA462dnZte6/5JJL6l0M4Ct0WAaApsnjoHPDDTectq3yXDr00UEgo8MyADQtDX6ic+rUKeXm5uqpp57SlClTvFYY0FjosAwA1uVx0DnjjDNO23b55ZerWbNmmjNnjlasWOGVwgAAABrK40U9axIeHq49e/Z463QAAAAN5vETne3bt5+27eDBg3rhhRdYFgIAAAQUj4PO8OHDFRIS4hqOWyEhIUEPPvig1woDAABoKI+DzkcffeT22Waz6cwzz1SLFi28VhTgT1UnFawO8+0AQHDwOOicc845vqij3r777jv98Y9/VGFhoex2u2677TZdddVV/i4LQaimSQXLnUZ2W4jbNiYaBIDg4HHQkaSsrCxlZWWpsLBQTqfTbV9mZqZXCqsru92u++67T9HR0SooKNCIESOUmpqq1q1b//LBQCXVTSrYz9FRd18RxUSDABCkPA46zzzzjJ599lnFxsaqY8eObpMF+kOnTp3UqVMnSVLHjh0VFhamo0ePEnRQb1UnFaxuGxMNAkBw8DjoLFu2TJmZmRo+fLhXCsjOztaLL76orVu3qqCgQM8++6wGDRrk1mbp0qV68cUXVVBQoKioKD3wwAOKj48/7Vxbt26V0+nU2Wef7ZXagNow0SAABD6P59E5deqUevbs6bUCSkpK5HA4NH369Gr3r1q1SpmZmZo8ebJWrlypqKgojR8/XoWFhW7tjhw5omnTpmnmzJleqw0AAAQ3j4POddddp7fffttrBaSmpmrKlCkaPHhwtfsXLVqk0aNHa+TIkerevbtmzJihli1bavny5a42paWlmjx5sm655RavhjAAABDcPH51dfLkSb3++uvKysqSw+FQaKj7Ke69916vFVdaWqqcnBxNnDjRtc1msyklJUUbN26UJBljdM899+jSSy/12us0AABgDR4HnR07drhmQN65c6fbPm93TC4qKlJ5ebnCw8PdtoeHhysvL0+S9OWXX2rVqlVyOBxavXq1JGnu3LlyOBxerQX4JVXn32HIOQD4n8dBZ8mSJb6oo96SkpKqXZYCaCw1zb/DkHMA8L96zaPTWMLCwmS3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89VXX5nRo0ebMWPGuPaXlZWZa665xowdO9Zs27bNrFmzxiQnJ5vHHnvMH18p4G3evNn079/fDBs2zMyePdu1nfvsHUeOHDH9+/c399xzj9m8ebPJz883//73v80333zjarNgwQJz8cUXmw8//NDk5uaaSZMmmQEDBpiffvrJ1Wb8+PHm2muvNZs2bTLZ2dlm8ODB5q677vLHVwpIzz33nOnVq5f517/+Zfbt22feffddk5CQYBYvXuxqw3323Jo1a8zjjz9uPvjgAxMZGWk+/PBDt/3euKc//vijSUlJMVOnTjU7d+40//znP018fLxZtmxZg+sn6PjAddddZ2bMmOH6XF5ebnr37m0WLFjgx6qCV2FhoYmMjDRffPGFMcaYY8eOmZiYGPPuu++62uzevdtERkaajRs3GmN+/g8zKirKFBQUuNq88sorpmfPnubkyZONWn+gO378uBkyZIhZu3atSU9PdwUd7rP3PPLII+b666+vcb/T6TSXX365WbhwoWvbsWPHTGxsrPnnP/9pjPnvvd+yZYurzSeffGIcDof5/vvvfVd8EJkwYYK599573bbdfvvtZurUqcYY7rM3VA063rqnS5cuNZdcconbz41HHnnEXHHFFQ2umVdXXlZaWqqcnBylpKS4ttlsNqWkpGjjxo1+rCx4/fjjj5Kk9u3bS5K2bt2qU6dOud3jbt26qUuXLtq0aZMkadOmTYqMjFRERISrTe/evXX8+HHt3r278YoPAjNnzlRqaqrb/ZS4z9708ccfKzY2VnfccYcuu+wyDR8+XK+//rpr//79+1VQUOB2r8844wz16NHD9XNj48aNateuneLi4lxtUlJSZLPZeDX+fxITE/X5559rz549kn5+FfLll1+qb9++krjPvuCte7pp0yYlJSWpefPmrja9e/fWnj17dPTo0QbVGNqgo3GaoqIilZeXKzw83G17eHj4af1M8MucTqceeugh9ezZU5GRkZKkQ4cOqVmzZmrXrp1b2/DwcBUUFLjaVP7HV5Lrc0UbSO+88462bdumN99887R93Gfv2bdvn1599VWNGzdOkyZN0ldffaXZs2erWbNmSktLc92r6n5uVPSJOnTokM4880y3/aGhoWrfvj33+v9MmDBBx48f11VXXSW73a7y8nJNmTJF1157rSRxn33AW/f00KFDOvfcc93aVPwsOXTokOt/dOuDoIOANmPGDO3atUuvvPKKv0uxnO+++04PPvig/vd//1ctWrTwdzmWZoxRbGys7rrrLknSRRddpF27dmnZsmVKS0vzc3XW8e677+rtt9/WY489pu7duys3N1eZmZnq1KkT97kJ49WVl4WFhclut6uwsNBte2Fh4Wn/54vazZw5U2vWrNHixYt11llnubZHRETo1KlTOnbsmFv7wsJCdezY0dWm6uigis8VbZq6nJwcFRYWasSIEbrooot00UUX6YsvvtCSJUt00UUXcZ+9qGPHjurWrZvbtq5du+rAgQOu/ZJq/bkRERGhw4cPu+0vKyvT0aNHudf/Z+7cuZowYYKuvvpqORwODR8+XDfeeKMWLFggifvsC966p7X9LGnov50EHS9r3ry5YmJilJWV5drmdDqVlZWlxMREP1YWPIwxmjlzpj788EMtXrxY5513ntv+2NhYNWvWzO0e5+Xl6cCBA0pISJAkJSQkaOfOnW7/8a1bt05t27ZV9+7dG+V7BLpLL71Ub7/9tv7+97+7fsXGxmrYsGGu33OfvaNnz56ufiMV9u7dq3POOUeSdO6556pjx45u9/r48ePavHmz6+dGYmKijh07pq1bt7rafP7553I6nYqPj2+EbxH4fvrpJ4WEhLhts9vtruHl3Gfv89Y9TUhI0IYNG3Tq1ClXm3Xr1unCCy9s0GsrSQwv94V33nnHxMbGmhUrVpjdu3ebBx54wCQlJbmNTEHNpk+fbi6++GKzfv16c/DgQdevEydOuNr8+c9/Nv369TNZWVnmq6++MmPGjKl22PNNN91kcnNzzaeffmouvfRShj3/gsqjrozhPnvL5s2bzUUXXWSee+45s3fvXvOPf/zD9OjRw7z11luuNgsWLDBJSUlm9erVZvv27ebWW2+tdoju8OHDzebNm82GDRvMkCFDmvSw56qmTZtm+vTp4xpe/sEHH5jk5GQzd+5cVxvus+eOHz9utm3bZrZt22YiIyPNokWLzLZt28y3335rjPHOPT127JhJSUkxd999t9m5c6d55513TI8ePRheHsiWLFli+vXrZ2JiYsx1111nNm3a5O+SgkZkZGS1v5YvX+5q89NPP5m//OUv5pJLLjE9evQwkydPNgcPHnQ7z/79+83NN99s4uPjTXJyspkzZ445depUY3+doFI16HCfvefjjz8211xzjYmNjTVXXnmlee2119z2O51O8+STT5qUlBQTGxtrbrzxRpOXl+fWpqioyNx1110mISHB9OzZ09xzzz3m+PHjjfk1AtqPP/5oZs+ebfr162fi4uLMwIEDzeOPP+42ZJn77LnPP/+82p/J06ZNM8Z4757m5uaa66+/3sTGxpo+ffp4bUqWEGMqTRkJAABgIfTRAQAAlkXQAQAAlkXQAQAAlkXQAQAAlkXQAQAAlkXQAQAAlkXQAQAAlkXQAQAAlkXQASzqhhtu0IMPPujvMlyMMXrggQfUq1cvORwO5ebmNnoNr732mlJTUxUVFaWXXnqp0a8fyBwOh1avXi1J2r9/v9/+jABvC/V3AQCahk8//VQrV67Uyy+/rPPOO09hYWGNev3jx49r1qxZuueeezRkyBCdccYZjXr9YHL22Wfrs88+a/Q/I8AXCDoA6qy8vFwhISGy2Tx/GLxv3z517NhRPXv29GpNpaWlat68+S+2O3DggE6dOqXU1FR16tSp3tc7deqUmjVrVu/jg4HdblfHjh39XQbgFby6Anzohhtu0OzZszV37lz16tVLl19+uZ5++mnX/upeERw7dkwOh0Pr16+XJK1fv14Oh0P//ve/NXz4cMXHxysjI0OFhYX65JNPdNVVV6lnz56aOnWqTpw44Xb98vJyzZw5UxdffLGSk5P15JNPqvLydqWlpXr44YfVp08fJSQkaNSoUa7rStKKFSuUlJSkjz76SEOHDlVcXJwOHDhQ7Xf94osvdN111yk2Nla9e/fWo48+qrKyMknSPffco1mzZunAgQNyOBwaMGBAteeouN7q1as1ZMgQxcXFafz48fruu+9cbZ5++mn96le/0htvvKEBAwYoPj7edd/uv/9+XXrpperZs6cyMjK0fft213mHDRsmSRo0aJAcDof2798vSVq9erXS0tIUFxengQMH6plnnnHVLf38SueVV17RpEmTlJCQoPnz59f5uDfeeEOTJ09Wjx49NGTIEH300Udu33fXrl2aOHGievbsqcTERP3mN79Rfn6+a/8bb7yhq666SnFxcbryyiu1dOlStz+7mTNnqnfv3oqLi1P//v21YMGCau9rhTfffFNXX321689o5syZ1bar+vey4u/gmjVrNGzYMMXFxWn06NHauXOn65hvv/1WkyZN0iWXXKKEhARdffXV+uSTT2qtB2gUXlkaFEC10tPTTc+ePc3TTz9t9uzZY1auXGkcDof57LPPjDHG7Nu3z0RGRppt27a5jjl69KiJjIw0n3/+uTHmvysHjx492mzYsMHk5OSYwYMHm/T0dHPTTTeZnJwck52dbXr16uW22m96erpJSEgws2fPNl9//bV56623TI8ePdxWzb7//vvNmDFjTHZ2tvnmm2/MwoULTWxsrNmzZ48xxpjly5ebmJgYM2bMGPPll1+ar7/+2pSUlJz2Pb///nvTo0cP85e//MXs3r3bfPjhhyY5OdnMmzfPGGPMsWPHzDPPPGP69u1rDh48aAoLC6u9XxXXGzFihPnPf/5jvvrqK3PdddeZMWPGuNrMmzfPJCQkmPHjx5ucnByTm5trjDFm7NixZuLEiWbLli1mz549Zs6cOaZXr16mqKjInDhxwqxbt85ERkaazZs3m4MHD5qysjKTnZ1tevbsaVasWGHy8/PNZ599Zvr372+efvpp1/UiIyPNZZddZt58802Tn59vvv322zof17dvX/P222+bvXv3mlmzZpmEhARTVFTkume9evUyt99+u9myZYvJy8szb775pvn666+NMca89dZb5vLLLzfvv/++yc/PN++//77p1auXWbFihTHGmIULF5rU1FSTnZ1t9u/fb7Kzs83bb79d49/FpUuXmri4OPPSSy+ZvLw8s3nzZrNo0SK3ej/88ENjzOl/Lyv+Dl511VXms88+M9u3bzcTJ040/fv3N6WlpcYYYyZMmGDGjRtntm/fbvLz883HH39svvjiixrrARoLQQfwofT0dHP99de7bRs5cqR55JFHjDGeBZ1169a52ixYsMBERkaa/Px817YHHnjA3HTTTW7Xvuqqq4zT6XRte+SRR8xVV11ljDHm22+/NdHR0eb77793q+/GG280jz32mDHm5+ARGRnpChM1efzxx80VV1zhdq2//e1vJiEhwZSXlxtjjFm0aJHp379/reepuN6mTZtc23bv3u0KKMb8HHRiYmLcwlJF8Dh58qTb+QYNGmSWLVtmjDFm27ZtJjIy0uzbt8/tu86fP9/tmL///e/m8ssvd32OjIw0Dz74oFubuh73xBNPuD4XFxebyMhI88knnxhjjHnsscfMgAEDXEGhqkGDBp0WXJ599llX6Js1a5bJyMhwu+e16d27t3n88cdr3F+XoPPOO++42hcVFZn4+HjXtmuuucYt6AGBgj46gI85HA63zx07dlRhYWGDzhMeHq5WrVrpvPPOc22LiIjQV1995XZMjx49FBIS4vqckJCgRYsWqby8XDt37lR5ebmuvPJKt2NKS0vVoUMH1+dmzZqd9h2q+vrrr5WYmOh2rYsvvlglJSX6/vvv1aVLlzp/z9DQUMXFxbk+d+vWTe3atdPXX3/tek3VpUsXnXnmma42O3bsUElJiZKTk93O9dNPP7m9Cqpq+/bt+s9//uN6HSX9/Lrv5MmTOnHihFq1aiVJio2Nrddxle9b69at1bZtWx0+fFiSlJubq6SkpGr7+5SUlCg/P1/333+/HnjgAdf2srIyVyfqtLQ03XTTTbryyivVp08f9evXT7179672exYWFurgwYO67LLLarwXdZGQkOD6fYcOHXThhRcqLy9PkpSRkaG//OUv+uyzz5SSkqIhQ4YoKiqqQdcDvIGgA/hYaKj7f2YhISGufjIVnXpNpX4zlft51HSekJCQas/rdDrrXFdJSYnsdruWL18uu93utq9169au37ds2dItwASCiiBRobi4WB07dtSSJUtOa1vb6KqSkhL97ne/05AhQ07b16JFC9fvK98PT46rGmIq/xm1bNmy1rokadasWerRo4fbvoq/MzExMfroo4/06aefat26dbrzzjuVkpKiefPm1VqTr4waNUq9e/fWmjVrtHbtWj3//POaNm2abrjhBp9fG6gNQQfwo4qnEgUFBa5t3py7ZMuWLW6fN2/erPPPP192u13R0dEqLy/X4cOHlZSU1KDrdOvWTe+//76MMa5Q9OWXX6pNmzY666yzPDpXWVmZtm7d6np6k5eXp2PHjqlbt241HhMTE6NDhw7Jbrfr3HPPrfO1LrroIu3Zs0fnn3++RzXW97jKHA6HVq5cWe0oroiICHXq1En79u3TtddeW+M52rZtq6FDh2ro0KG64oordPPNN+vIkSNuT+Qq2p1zzjnKysrSpZdeWu+aN23a5Ho6d/ToUe3du1ddu3Z17T/77LN1/fXX6/rrr9djjz2m119/naADvyPoAH7UsmVLJSQk6Pnnn9e5556rwsJCPfnkk147/4EDB5SZmakxY8Zo27Zt+tvf/qZp06ZJki688EINGzZMf/zjH3XPPfcoOjpaRUVFysrKksPhUL9+/ep8nd/85jdavHixZs2apd/+9rfas2ePnn76aY0bN87joejNmjXTrFmz9Kc//Ul2u12zZs1SQkKCK/hUJyUlRQkJCZo8ebLuvvtuXXDBBTp48KA++eQTDRo0yO1VWGWTJ0/WpEmT1KVLF11xxRWy2Wzavn27du7cqSlTptR4vfoeV9lvf/tbLVmyRHfddZcmTJigM844Q5s2bVJ8fLy6du2qO+64Q7Nnz9YZZ5yhPn36qLS0VFu3btWxY8c0btw4LVq0SB07dlR0dLRsNpvee+89dezYUe3atav2er/73e80ffp0hYeHq2/fviouLtZ//vMfj4LIX//6V4WFhSk8PFxPPPGEwsLCNGjQIEnSgw8+qL59++qCCy7QsWPHtH79+lrDKdBYCDqAnz300EO6//77NWLECF144YW6++67ddNNN3nl3MOHD9dPP/2kUaNGyW63KyMjQ2PGjHHtz8zM1HPPPac5c+bo4MGD6tChgxISEjwKOZLUuXNnPf/885o7d65ef/11dejQQdddd51uvfVWj2tu2bKlbrnlFk2dOlU//PCDkpKSfnGG55CQED3//PN68sknde+996qoqEgRERFKSkpSREREjcf16dNH8+fP17PPPqsXXnhBoaGh6tq1q0aNGlXr9ep7XGVhYWFavHixHnnkEd1www2y2WyKjo7WxRdfLOnnV0EtW7bUiy++qLlz56p169aKjIzUjTfeKElq06aNFi5cqG+++UY2m01xcXF6/vnnawyWaWlpOnnypF566SXNnTtXHTp0OK1/1i+ZOnWqHnzwQe3du1fR0dF67rnnXHMYOZ1OzZw5U99//73atm2rPn366N577/Xo/IAvhJjKnQMAwI9WrFihhx56SBs2bPB3Kahk/fr1ysjIUHZ2do1PjIBAxYSBAADAsgg6AADAsnh1BQAALIsnOgAAwLIIOgAAwLIIOgAAwLIIOgAAwLIIOgAAwLIIOgAAwLIIOgAAwLIIOgAAwLL+P/vp08fl0nwtAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.hist(interesting_clips[\"dislike_count\"], bins=np.linspace(0, 10, 30))\n",
    "plt.yscale(\"log\")\n",
    "plt.xlabel(\"number of dislike_count\")\n",
    "plt.ylabel(\"number of clips\")\n",
    "plt.show()\n",
    "plt.hist(interesting_clips[\"upvote_count\"], bins=np.linspace(0, 10, 30))\n",
    "plt.yscale(\"log\")\n",
    "plt.xlabel(\"number of like_count\")\n",
    "plt.ylabel(\"number of clips\")\n",
    "plt.show()\n",
    "plt.hist(interesting_clips[\"is_public\"], bins=np.linspace(0, 10, 30))\n",
    "plt.yscale(\"log\")\n",
    "plt.xlabel(\"number of is_public\")\n",
    "plt.ylabel(\"number of clips\")\n",
    "plt.show()\n",
    "plt.hist(interesting_clips[\"user_id\"].value_counts(), bins=np.linspace(0, 1000, 100))\n",
    "plt.yscale(\"log\")\n",
    "plt.xlabel(\"number of preferences clips\")\n",
    "plt.ylabel(\"number of users\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-05-26T00:24:58.153310Z",
     "start_time": "2024-05-26T00:24:57.858363Z"
    }
   },
   "outputs": [],
   "source": [
    "# FUCK THIS FOR NOW\n",
    "# MAX_PREFERENCE_PER_USER = 400\n",
    "# grouped_interesting_clips = interesting_clips.groupby([\"user_id\"])\n",
    "# user_top_df = (\n",
    "#     interesting_clips.sort_values(\n",
    "#         [\"preference\", \"upvote_count\", \"part_of_concat\", \"is_in_playlist\"], ascending=False\n",
    "#     )\n",
    "#     .groupby(\"user_id\")\n",
    "#     .head(MAX_PREFERENCE_PER_USER)\n",
    "# )\n",
    "# print(user_top_df.shape, interesting_clips.shape)\n",
    "\n",
    "# user_top_requests = user_top_df[\"request_id\"].unique()\n",
    "# user_intersting_clips = interesting_clips[\n",
    "#     interesting_clips[\"request_id\"].isin(user_top_requests)\n",
    "# ].copy()\n",
    "# print(user_intersting_clips.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 207,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-05-26T00:24:58.890520Z",
     "start_time": "2024-05-26T00:24:58.154350Z"
    },
    "execution": {
     "iopub.execute_input": "2024-07-19T03:55:03.827001Z",
     "iopub.status.busy": "2024-07-19T03:55:03.826650Z",
     "iopub.status.idle": "2024-07-19T03:55:23.551194Z",
     "shell.execute_reply": "2024-07-19T03:55:23.550481Z",
     "shell.execute_reply.started": "2024-07-19T03:55:03.826981Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(9140982, 44)\n"
     ]
    }
   ],
   "source": [
    "user_intersting_clips = interesting_clips[\n",
    "    interesting_clips[\"model_name\"].str.contains(\"v3p5\")  # general 3.5\n",
    "    # interesting_clips[\"model_name\"].str.contains(\"upload\")  # only uploads\n",
    "].copy()\n",
    "print(user_intersting_clips.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-05-26T00:24:59.204547Z",
     "start_time": "2024-05-26T00:24:58.891851Z"
    }
   },
   "outputs": [],
   "source": [
    "plt.hist(user_intersting_clips[\"user_id\"].value_counts(), bins=np.linspace(0, 802, 100))\n",
    "plt.yscale(\"log\")\n",
    "plt.xlabel(\"number of preferences\")\n",
    "plt.ylabel(\"number of users\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-05-26T00:24:59.207707Z",
     "start_time": "2024-05-26T00:24:59.205659Z"
    }
   },
   "outputs": [],
   "source": [
    "print(\n",
    "    \"finally\",\n",
    "    user_intersting_clips.shape[0],\n",
    "    \"requests\",\n",
    "    user_intersting_clips.shape[0] / 2,\n",
    "    \"frac\",\n",
    "    user_intersting_clips.shape[0] / total_clip_counts,\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-05-26T00:24:59.496996Z",
     "start_time": "2024-05-26T00:24:59.208750Z"
    }
   },
   "outputs": [],
   "source": [
    "user_intersting_clips.describe()\n",
    "# 214202\n",
    "# 608730\n",
    "# 1376250\n",
    "# 4625842"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-05-26T00:24:59.685498Z",
     "start_time": "2024-05-26T00:24:59.498024Z"
    }
   },
   "outputs": [],
   "source": [
    "print(\n",
    "    \"time validation\",\n",
    "    user_intersting_clips[\"created_at\"].min(),\n",
    "    user_intersting_clips[\"created_at\"].max(),\n",
    ")\n",
    "print(\n",
    "    \"time validation\",\n",
    "    user_intersting_clips[\n",
    "        user_intersting_clips[\"model_name\"] == \"chirp-v3p5-engine-s-18\"\n",
    "    ][\"created_at\"].max(),\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-05-26T00:25:00.171091Z",
     "start_time": "2024-05-26T00:24:59.901340Z"
    }
   },
   "outputs": [],
   "source": [
    "# v3 launch test time  # 2024-04-03 07:47:01.770988+00:00 t1\n",
    "# v3.5 launch time: 2024-05-19 05:21:54\n",
    "# latest exp time: '2024-05-29 04:01:39'\n",
    "date_cut = \"2024-06-04 15:21:36\""
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-05-26T00:25:00.484734Z",
     "start_time": "2024-05-26T00:25:00.377280Z"
    }
   },
   "outputs": [],
   "source": [
    "# def parse_for_tag(x):\n",
    "#     if \"tags\" not in x:\n",
    "#         return \"\"\n",
    "#     out = x.get(\"tags\", \"\")\n",
    "#     return out.lower() if out else \"\"\n",
    "\n",
    "# def parse_for_one_box(x):\n",
    "#     if \"gpt_description_prompt\" not in x:\n",
    "#         return False\n",
    "#     out = x.get(\"gpt_description_prompt\", \"\")\n",
    "#     return out != None\n",
    "# user_intersting_clips[\"tags\"] = user_intersting_clips[\"metadata\"].apply(parse_for_tag)\n",
    "# user_intersting_clips[\"is_onebox\"] = user_intersting_clips[\"metadata\"].apply(parse_for_one_box)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-05-26T00:25:00.893917Z",
     "start_time": "2024-05-26T00:25:00.485775Z"
    }
   },
   "outputs": [],
   "source": [
    "# user_compare_mask = (\n",
    "#     user_intersting_clips[\"created_at\"] >= date_cut\n",
    "# ) # & (user_intersting_clips[\"is_pro_user\"] == True)\n",
    "user_compare_mask = (\n",
    "    (user_intersting_clips[\"created_at\"] >= date_cut)\n",
    "    & (\n",
    "        user_intersting_clips[\"model_name\"].isin(\n",
    "            [\n",
    "                #                 \"chirp-v3-engine-d\",\n",
    "                #                 \"chirp-v3-engine-i\",\n",
    "                #                 \"chirp-v3-engine-i-tp\",\n",
    "                #                 \"chirp-v3-engine-s\",\n",
    "                # \"chirp-v3p5-engine-d\",\n",
    "                # \"chirp-v3p5-engine-s\",\n",
    "                # \"chirp-v3p5-engine-s-2\",\n",
    "                # \"chirp-v3p5-engine-s-3\",\n",
    "                # \"chirp-v3p5-engine-s-4\",\n",
    "                # \"chirp-v3p5-engine-s-5\",\n",
    "                # \"chirp-v3p5-engine-s-6\",\n",
    "                # \"chirp-v3p5-engine-s-7\",\n",
    "                \"chirp-v3p5-engine-s-2\",\n",
    "                \"chirp-v3p5-engine-s-8\",\n",
    "                \"chirp-v3p5-engine-s-11\",\n",
    "                \"chirp-v3p5-engine-s-12\",\n",
    "                \"chirp-v3p5-engine-s-13\",\n",
    "                \"chirp-v3p5-engine-s-14\",\n",
    "                \"chirp-v3p5-engine-s-15\",\n",
    "                \"chirp-v3p5-engine-s-18\",\n",
    "                \"chirp-v3p5-engine-s-19\",\n",
    "                \"chirp-v3p5-engine-s-8-no-top-p\",\n",
    "                \"chirp-v3p5-engine-upload\",\n",
    "                \"chirp-v3p5-engine-upload-1\",\n",
    "                \"chirp-v3p5-engine-upload-2\",\n",
    "                \"chirp-v3p5-engine-upload-3\",\n",
    "                \"chirp-v3p5-engine-upload-4\",\n",
    "                \"chirp-v3p5-engine-ft\",\n",
    "                \"chirp-v3p5-engine-ft-1\",\n",
    "                \"chirp-v3p5-engine-ft-2\",\n",
    "                \"chirp-v3p5-engine-t\",\n",
    "                \"chirp-v3p5-engine-t-1\",\n",
    "            ]\n",
    "        )\n",
    "    )\n",
    "    # & (user_intersting_clips[\"is_pro_user\"] == True)\n",
    "    # & (user_intersting_clips[\"is_onebox\"] == True)\n",
    ")\n",
    "# user_compare_mask = (user_intersting_clips[\"created_at\"] >= date_cut) & (\n",
    "#     user_intersting_clips[\"tags\"].apply(lambda x: not \"pop\" in x.lower())\n",
    "# )\n",
    "# # this is fucked up sometimes one box doesn't give prompt to one generation\n",
    "extra_compare_mask = user_intersting_clips[user_compare_mask][\"request_id\"].isin(\n",
    "    user_intersting_clips[user_compare_mask][\"request_id\"]\n",
    "    .value_counts()\n",
    "    .index[user_intersting_clips[user_compare_mask][\"request_id\"].value_counts() == 2]\n",
    ")\n",
    "\n",
    "user_compare_mask = user_compare_mask & extra_compare_mask\n",
    "\n",
    "# for _, row in user_intersting_clips[user_intersting_clips[\"request_id\"].astype(str) == \"87c45d24-68ae-45dd-b5b7-92cd70bd0ab5\"].iterrows():\n",
    "#     print(row[\"metadata\"])\n",
    "\n",
    "# for _, row in user_intersting_clips[user_intersting_clips[\"request_id\"].astype(str) == \"fa86f07f-4476-406f-b756-7166e0b08679\"].iterrows():\n",
    "#     print(row[\"metadata\"])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-05-26T00:25:01.140472Z",
     "start_time": "2024-05-26T00:25:00.895575Z"
    }
   },
   "outputs": [],
   "source": [
    "user_intersting_clips_3p5 = (\n",
    "    user_intersting_clips[user_compare_mask].reset_index().copy()\n",
    ")\n",
    "\n",
    "\n",
    "def parse_inference_exp(x):\n",
    "    # print(x)\n",
    "    if \"param_experiment\" not in x:\n",
    "        return \"\"\n",
    "    out = x.get(\"param_experiment\", \"\")\n",
    "    if out:\n",
    "        return \"_\" + out\n",
    "    return \"\"\n",
    "\n",
    "\n",
    "user_intersting_clips_3p5[\"model_name\"] = user_intersting_clips_3p5[\n",
    "    \"model_name\"\n",
    "] + user_intersting_clips_3p5[\"metadata\"].apply(parse_inference_exp)\n",
    "user_intersting_clips_3p5 = user_intersting_clips_3p5.sort_values(\n",
    "    by=[\"request_id\", \"preference\"]\n",
    ")\n",
    "print(user_intersting_clips_3p5.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-05-26T00:25:01.522500Z",
     "start_time": "2024-05-26T00:25:01.521140Z"
    }
   },
   "outputs": [],
   "source": [
    "# %load_ext autoreload\n",
    "# %autoreload 2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-05-26T00:25:02.009450Z",
     "start_time": "2024-05-26T00:25:01.523515Z"
    }
   },
   "outputs": [],
   "source": [
    "get_preferfence_counts(user_intersting_clips_3p5)\n",
    "#     user_intersting_clips[user_compare_mask]\n",
    "# )"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-05-26T00:25:02.332947Z",
     "start_time": "2024-05-26T00:25:02.010694Z"
    }
   },
   "outputs": [],
   "source": [
    "print(\"first gen\")\n",
    "first_gen_slice_df = user_intersting_clips_3p5[\n",
    "    (user_intersting_clips_3p5[\"continued_parent\"].isna())\n",
    "].copy()\n",
    "if first_gen_slice_df.shape[0] > 0:\n",
    "    get_preferfence_counts(\n",
    "        user_intersting_clips_3p5[\n",
    "            (user_intersting_clips_3p5[\"continued_parent\"].isna())\n",
    "        ],\n",
    "        title_name=\"first generation\",\n",
    "    )"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-05-26T00:25:02.574659Z",
     "start_time": "2024-05-26T00:25:02.334214Z"
    }
   },
   "outputs": [],
   "source": [
    "print(\"continue\")\n",
    "get_preferfence_counts(\n",
    "    user_intersting_clips_3p5[(~user_intersting_clips_3p5[\"continued_parent\"].isna())],\n",
    "    \"is continue\",\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "user_intersting_clips_3p5[\n",
    "    user_intersting_clips_3p5[\"model_name\"]\n",
    "    == \"chirp-v3p5-engine-s_cfg_tags_max_steps_none\"\n",
    "]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Clean up SHIT\n",
    "\n",
    "to get the right play conts, we need the right df..."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-05-26T00:25:07.682737Z",
     "start_time": "2024-05-26T00:25:02.593456Z"
    }
   },
   "outputs": [],
   "source": [
    "# ~ only 1 min :)\n",
    "partial_reaction_df = reaction_df[\n",
    "    reaction_df[\"clip_id\"].isin(user_intersting_clips[\"id\"])\n",
    "].copy()\n",
    "print(partial_reaction_df.shape)\n",
    "total_play_reaction_df_sum = partial_reaction_df.groupby(\"clip_id\")[\"play_count\"].sum()\n",
    "total_play_reaction_df_sum_df = total_play_reaction_df_sum.reset_index().rename(\n",
    "    columns={\"clip_id\": \"id\", \"play_count\": \"reaction_play_count\"}\n",
    ")\n",
    "user_intersting_clips = user_intersting_clips.merge(\n",
    "    total_play_reaction_df_sum_df, on=\"id\", how=\"left\"\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-05-26T00:25:07.781022Z",
     "start_time": "2024-05-26T00:25:07.684000Z"
    }
   },
   "outputs": [],
   "source": [
    "partial_reaction_df_pro = reaction_df[\n",
    "    (reaction_df[\"clip_id\"].isin(user_intersting_clips[\"id\"]))\n",
    "    & (reaction_df[\"is_pro_user\"])\n",
    "].copy()\n",
    "print(partial_reaction_df_pro.shape)\n",
    "total_play_reaction_df_sum_pro = partial_reaction_df_pro.groupby(\"clip_id\")[\n",
    "    \"play_count\"\n",
    "].sum()\n",
    "total_play_reaction_df_sum_pro_df = total_play_reaction_df_sum_pro.reset_index().rename(\n",
    "    columns={\"clip_id\": \"id\", \"play_count\": \"reaction_pro_play_count\"}\n",
    ")\n",
    "user_intersting_clips = user_intersting_clips.merge(\n",
    "    total_play_reaction_df_sum_pro_df, on=\"id\", how=\"left\"\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "(\n",
    "    user_intersting_clips[\"reaction_play_count\"]\n",
    "    - user_intersting_clips[\"reaction_pro_play_count\"]\n",
    ").describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# user_intersting_clips[\n",
    "#     (\n",
    "#         user_intersting_clips[\"reaction_play_count\"]\n",
    "#         - user_intersting_clips[\"reaction_pro_play_count\"]\n",
    "#     )\n",
    "#     >= 5\n",
    "# ][\"user_id\"].value_counts()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-05-26T00:25:08.095035Z",
     "start_time": "2024-05-26T00:25:07.782738Z"
    }
   },
   "outputs": [],
   "source": [
    "def unpack_dict(x):\n",
    "    if v := concat_clips_ids.get(str(x)):\n",
    "        return v\n",
    "    else:\n",
    "        return {\n",
    "            \"total_start_s\": None,\n",
    "            \"total_clip_s\": None,\n",
    "            \"concat_play_counts\": None,\n",
    "            \"concat_in_playlist\": None,\n",
    "            \"concat_likes\": None,\n",
    "            \"concat_dislikes\": None,\n",
    "        }\n",
    "\n",
    "\n",
    "extra_cols = user_intersting_clips[\"id\"].apply(unpack_dict)\n",
    "extra_cols_df = pd.DataFrame.from_records(extra_cols.values, index=extra_cols.index)\n",
    "user_intersting_clips[\n",
    "    [\n",
    "        \"total_start_s\",\n",
    "        \"total_clip_s\",\n",
    "        \"concat_play_counts\",\n",
    "        \"concat_in_playlist\",\n",
    "        \"concat_likes\",\n",
    "        \"concat_dislikes\",\n",
    "    ]\n",
    "] = extra_cols_df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-05-26T00:25:08.361849Z",
     "start_time": "2024-05-26T00:25:08.199583Z"
    }
   },
   "outputs": [],
   "source": [
    "# too_much_data_mask = (\n",
    "#     (user_intersting_clips[\"preference\"] == False)\n",
    "#     & (\n",
    "#         (user_intersting_clips[\"dislike_count\"] >= 1) # single play is super catchy\n",
    "#         | (user_intersting_clips[\"flag_count\"] >= 1) # or the concat play is super catchy\n",
    "#     )\n",
    "# )\n",
    "# too_much_data_mask.sum() / ((user_intersting_clips[\"preference\"] == True).sum())\n",
    "too_much_data_mask = (\n",
    "    (user_intersting_clips[\"preference\"])\n",
    "    & (\n",
    "        (\n",
    "            user_intersting_clips[\"reaction_play_count\"] >= 2\n",
    "        )  # single play is super catchy\n",
    "        | (\n",
    "            user_intersting_clips[\"concat_play_counts\"] >= 2\n",
    "        )  # or the concat play is super catchy\n",
    "    )\n",
    "    & (user_intersting_clips[\"user_n_clips\"] >= 10)\n",
    "    # & (user_intersting_clips[\"continued_parent\"].isna())\n",
    ")\n",
    "too_much_data_mask.sum() / ((user_intersting_clips[\"preference\"]).sum())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-05-26T00:25:08.523643Z",
     "start_time": "2024-05-26T00:25:08.367348Z"
    }
   },
   "outputs": [],
   "source": [
    "final_good_enough_requests = user_intersting_clips[too_much_data_mask][\n",
    "    \"request_id\"\n",
    "].unique()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-05-26T00:25:08.703927Z",
     "start_time": "2024-05-26T00:25:08.525193Z"
    }
   },
   "outputs": [],
   "source": [
    "final_interesting_clips = user_intersting_clips[\n",
    "    user_intersting_clips[\"request_id\"].isin(set(final_good_enough_requests))\n",
    "].copy()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "final_interesting_clips[final_interesting_clips[\"preference\"]][\n",
    "    \"model_name\"\n",
    "].value_counts()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-05-26T00:25:08.884389Z",
     "start_time": "2024-05-26T00:25:08.705530Z"
    }
   },
   "outputs": [],
   "source": [
    "print(final_interesting_clips.groupby(\"batch_index\")[\"preference\"].value_counts())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-05-26T00:25:09.198504Z",
     "start_time": "2024-05-26T00:25:08.885507Z"
    }
   },
   "outputs": [],
   "source": [
    "assert (\n",
    "    final_interesting_clips[final_interesting_clips[\"request_id\"].isna()].shape[0] == 0\n",
    ")\n",
    "check_df = final_interesting_clips.groupby(\"request_id\")[\"id\"].nunique()\n",
    "check_df[check_df.values != 2]\n",
    "assert check_df[check_df.values != 2].shape[0] == 0"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 158,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-07-19T03:11:51.955207Z",
     "iopub.status.busy": "2024-07-19T03:11:51.954765Z",
     "iopub.status.idle": "2024-07-19T03:11:55.069178Z",
     "shell.execute_reply": "2024-07-19T03:11:55.068595Z",
     "shell.execute_reply.started": "2024-07-19T03:11:51.955186Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(154513, 52)"
      ]
     },
     "execution_count": 158,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "final_interesting_clips[\n",
    "    final_interesting_clips[\"model_name\"] == \"chirp-v3p5-engine-ft-1\"\n",
    "].shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 159,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-05-26T00:36:45.167690Z",
     "start_time": "2024-05-26T00:36:45.164768Z"
    },
    "execution": {
     "iopub.execute_input": "2024-07-19T03:11:55.831390Z",
     "iopub.status.busy": "2024-07-19T03:11:55.831027Z",
     "iopub.status.idle": "2024-07-19T03:12:07.971387Z",
     "shell.execute_reply": "2024-07-19T03:12:07.970746Z",
     "shell.execute_reply.started": "2024-07-19T03:11:55.831370Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "done (6015864, 52)\n"
     ]
    }
   ],
   "source": [
    "# final_interesting_clips[final_interesting_clips[\"model_name\"] == \"chirp-v3p5-engine-ft-1\"].to_csv(\n",
    "#      \"/home/tony/Data/Preference/13b_v0/interesting_clips_ft_1_20240718.csv\", index=False\n",
    "# )\n",
    "# final_interesting_clips[final_interesting_clips[\"model_name\"] == \"chirp-v3p5-engine-upload\"].to_csv(\n",
    "#      \"/home/tony/Data/Preference/13b_v0/interesting_clips_20240623_extend.csv\", index=False\n",
    "# )\n",
    "print(\"done\", final_interesting_clips.shape)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# For faster processing once"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-05-26T00:25:10.265241Z",
     "start_time": "2024-05-26T00:25:09.934743Z"
    }
   },
   "outputs": [],
   "source": [
    "print(\"total unique users\", clip_df[\"user_id\"].nunique())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-05-26T00:26:43.409660Z",
     "start_time": "2024-05-26T00:25:10.266379Z"
    }
   },
   "outputs": [],
   "source": [
    "# This can take a while cause we have a lot of users...\n",
    "# query = \"\"\"\n",
    "# SELECT *\n",
    "# FROM auth_user\n",
    "# \"\"\"\n",
    "# user_df = pd.read_sql_query(query, engine)\n",
    "# user_df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-05-26T00:26:43.423857Z",
     "start_time": "2024-05-26T00:26:43.411248Z"
    }
   },
   "outputs": [],
   "source": [
    "test_user_id = 4688272\n",
    "print(\n",
    "    clip_df[clip_df[\"user_id\"] == test_user_id][\"created_at\"]\n",
    "    .apply(lambda x: str(x)[:10])\n",
    "    .value_counts()\n",
    ")\n",
    "print(clip_df[clip_df[\"user_id\"] == test_user_id].shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-05-26T00:26:43.803559Z",
     "start_time": "2024-05-26T00:26:43.622922Z"
    }
   },
   "outputs": [],
   "source": [
    "user_intersting_clips[user_intersting_clips[\"user_n_clips\"] > 10000][\"user_id\"].unique()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-05-26T00:26:45.770044Z",
     "start_time": "2024-05-26T00:26:44.912085Z"
    }
   },
   "outputs": [],
   "source": [
    "# # wtf is going on with these requests\n",
    "# print(total_clip_df[total_clip_df[\"model_name\"] == \"chirp-v3-0\"].shape)\n",
    "# print(\n",
    "#     total_clip_df[total_clip_df[\"model_name\"] == \"chirp-v3-0\"][\"user_id\"].value_counts()\n",
    "# )"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-05-26T00:26:46.088296Z",
     "start_time": "2024-05-26T00:26:45.772102Z"
    }
   },
   "outputs": [],
   "source": [
    "query = \"\"\"\n",
    "SELECT *\n",
    "FROM auth_user\n",
    "WHERE id=27205089\n",
    "\"\"\"\n",
    "# 3 keenan\n",
    "# 6 martin\n",
    "# 8 tony -- that's me!\n",
    "# 186417 georg\n",
    "test_user_df = pd.read_sql_query(query, engine)\n",
    "test_user_df"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Find some weird generations"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-05-26T00:27:00.130778Z",
     "start_time": "2024-05-26T00:26:46.089923Z"
    }
   },
   "outputs": [],
   "source": [
    "no_reaction_clip_df = total_clip_df[\n",
    "    ~total_clip_df[\"id\"].isin(reaction_df[\"clip_id\"])\n",
    "].copy()\n",
    "print(no_reaction_clip_df.shape)\n",
    "print(no_reaction_clip_df.shape[0] / total_clip_df.shape[0])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-05-26T00:27:01.185878Z",
     "start_time": "2024-05-26T00:27:00.132882Z"
    }
   },
   "outputs": [],
   "source": [
    "min_generations_for_no_reaction = 20\n",
    "inspection_date_cut = \"2024-05-10\"\n",
    "# inspection_date_cut = \"2024-06-18\"\n",
    "no_reaction_clip_df[\"no_reaction_count\"] = no_reaction_clip_df.groupby(\"user_id\")[\n",
    "    \"user_id\"\n",
    "].transform(\"count\")\n",
    "no_reaction_clip_df[\"is_pro_user\"] = no_reaction_clip_df[\"user_id\"].isin(pro_users)\n",
    "no_reaction_clip_df[\"user_id\"].nunique()\n",
    "bot_user_mask = (\n",
    "    (no_reaction_clip_df[\"no_reaction_count\"] >= min_generations_for_no_reaction)\n",
    "    & (no_reaction_clip_df[\"created_at\"] >= inspection_date_cut)\n",
    "    # & (no_reaction_clip_df[\"is_pro_user\"] == True)\n",
    ")\n",
    "sub_total_clip_df = total_clip_df[\n",
    "    total_clip_df[\"user_id\"].isin(\n",
    "        no_reaction_clip_df[bot_user_mask][\"user_id\"].unique()\n",
    "    )\n",
    "].copy()\n",
    "sub_total_clip_df[\"is_pro_user\"] = sub_total_clip_df[\"user_id\"].isin(pro_users)\n",
    "print(no_reaction_clip_df[bot_user_mask].shape[0] / sub_total_clip_df.shape[0])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-05-26T00:27:02.022423Z",
     "start_time": "2024-05-26T00:27:01.187814Z"
    }
   },
   "outputs": [],
   "source": [
    "sub_total_clip_df[\"gen_count\"] = sub_total_clip_df.groupby(\"user_id\")[\n",
    "    \"user_id\"\n",
    "].transform(\"count\")\n",
    "user_id_no_reaction_dict = no_reaction_clip_df.set_index(\"user_id\")[\n",
    "    \"no_reaction_count\"\n",
    "].to_dict()\n",
    "user_id_total_dict = (\n",
    "    sub_total_clip_df[~sub_total_clip_df[\"is_pro_user\"]]\n",
    "    .set_index(\"user_id\")[\"gen_count\"]\n",
    "    .to_dict()\n",
    ")\n",
    "pro_user_id_total_dict = (\n",
    "    sub_total_clip_df[sub_total_clip_df[\"is_pro_user\"]]\n",
    "    .set_index(\"user_id\")[\"gen_count\"]\n",
    "    .to_dict()\n",
    ")\n",
    "\n",
    "user_ratio_dict = {}\n",
    "pro_user_ratio_dict = {}\n",
    "for user_id, total_gen in user_id_total_dict.items():\n",
    "    user_ratio = user_id_no_reaction_dict.get(user_id, 0) / total_gen\n",
    "    user_ratio_dict[user_id] = user_ratio\n",
    "for user_id, total_gen in pro_user_id_total_dict.items():\n",
    "    user_ratio = user_id_no_reaction_dict.get(user_id, 0) / total_gen\n",
    "    pro_user_ratio_dict[user_id] = user_ratio"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 152,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-05-26T00:27:02.191083Z",
     "start_time": "2024-05-26T00:27:02.024409Z"
    },
    "execution": {
     "iopub.execute_input": "2024-07-19T02:53:17.957136Z",
     "iopub.status.busy": "2024-07-19T02:53:17.956682Z",
     "iopub.status.idle": "2024-07-19T02:53:19.714530Z",
     "shell.execute_reply": "2024-07-19T02:53:19.713910Z",
     "shell.execute_reply.started": "2024-07-19T02:53:17.957112Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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FoMOERERmSwGHSIiIjJZDDpERERkshh0iIiIyGQx6BAREZHJ4vDy4kYizZppWUPE5ezJRERkKhh0ihPOnkxERMUMg05xwtmTiYiomGHQKYY4ezIRERUX7IxMREREJotBh4iIiEwWgw4RERGZLAYdIiIiMlnsjEw5ca4dIiIyEQw6pIpz7RARkQnROeiEhYXB1tYWzZs3BwDMmTMHW7Zswfvvv4+ffvoJlStXNnSNJk0iASQSzYO681pvUJxrh4iITIjOfXSWL18OS0tLAMCFCxewceNGfPnllyhbtiyCg4MNXqApk0iAkpIUWKc/1vivZMZTmCEzX2vLnmtH3T+k5RKAiIiIChmdW3QeP36M6tWrAwAOHjyItm3bonfv3vD09ES/fv0MXqApk0gkkKYnQPHfX5rDg005SKo1yEpGREREpDWdW3RKliyJFy9eAABOnDgBHx8fAIClpSVSU1MNWlyxkZaUa+tJVgtKckFXSEREVCTp3KLj4+ODb775BnXr1sW9e/fg5+cHALh58yb75xAREVGhonOLzrRp0+Dh4YHnz59j0aJFsLW1BQBcvXoV/v7+Bi+QiIiISF86tehkZGTg119/xWeffYYKFSqorAsMDDRoYURERETvSqcWHTMzM6xevRoZGRnGqoeIiIjIYHS+dNWkSROcOXPGGLUQERERGZTOnZGbNWuGn376Cf/99x+cnZ1hZWWlsr5Vq1YGK46IiIjoXegcdIKCggAAISEhOdZJJBJERka+e1VEREREBqBz0Ll+/box6iAiIiIyuHe6qWdqaqrydhBUzGhxh3OAdzknIqKCpXPQyczMxPLly7F582bExcVh//79qFq1KhYsWIDKlSujZ8+exqiTChMt73AO8C7nRERUsHQOOj///DN27NiBL7/8ElOnTlUul8vlWLduHYNOcaDNHc4B3uWciIgKnM7Dy//44w/MmDEDH330EaRvXLdwdHTEnTt3DFocFW6a7nDOu5wTEVFhoHPQefLkCapVq5ZjuRCCEwkSERFRoaJz0Hn//fdx9uzZHMv37duHunXrGqQoIiIiIkPQuY/OyJEjMWnSJDx58gRCCBw4cAB3797Fjh07sGLFCmPUSERERKQXnVt0WrdujeXLlyM8PBxWVlZYtGgRbt++jeXLl6Np06bGqJGIiIhIL3rNo9OwYUO1MyMTERERFSY6B51Hjx5BIpGgQoUKAICIiAjs2rUL77//Pnr37m3wAqmI02JiQU4qSERExqLzpasJEybg1KlTAIDY2FgMGDAAly9fxvz587FkyRKDF0hF2BsTC1qn5/6vpCQFEklBF0tERKZI5xadmzdvws3NDQCwd+9eyOVybN68GcePH8e0adMwatQogxdJRZQ2EwtyUkEiIjIinYNORkYGLCwsAAAnT55Ey5YtAQC1atVCbGysYasjk5A9saA6bMghIiJj0msenc2bN+Ps2bM4efIkmjVrBgB4+vQpypYta+j6iIiIiPSmc9D54osv8Ntvv6Ffv37w9/eHk5MTAODQoUPKS1pEREREhYHOl64aN26MU6dOITExEWXKlFEu79WrF6ysrAxaHBEREdG70GseHZlMphJyAKBKlSoGKYiIiIjIUHQOOi1btoREw1jgv//++50KIiIiIjIUnYPOp59+qvI4IyMD165dw/HjxzF48GCDFUZERET0rt456GTbsGEDrly58s4FERERERmKzqOuctOsWTPs37/fULsjIiIiemcGCzr79u3jPDpERERUqOh86apLly4qnZGFEHj27BmeP3+OadOmGbQ4KiZ4408iIjISnYNO69atVR5LJBLY2dnBy8sLtWvXNlhhVEy8ceNPIPckozAvjWRYMewQEZFOdA46he2mnQkJCRgwYAAyMzORmZmJ/v37o1evXgVdFmmLN/4kIiIj0mvCwMLE2toaGzZsgJWVFZKTk9GxY0e0adMGtra2BV0a6YA3/iQiImMwWGfkgiKTyZS3nkhLSwMAfusnIiIiAIUg6Jw5cwbDhw+Hr68vHB0dcfDgwRzbbNiwAS1btoSrqyt69uyJiIgIlfUJCQn46KOP4Ofnh8GDB8POzi6/yiciIqJCTKugc/36dSgUCqMUkJycDEdHx1xHbO3ZswfBwcH4/PPPERYWBicnJwwePBhxcXHKbUqXLo2dO3fi77//xq5du/Ds2TOj1EpERERFi1ZBp2vXroiPjwcAtGrVSvn/huDn54dx48ahTZs2ateHhISgV69e6N69O95//30EBQWhRIkS2LZtW45tHRwc4OTkhLNnzxqsPiIiIiq6tAo6pUuXxoMHDwAADx8+zLc+MGlpabh69Sp8fHyUy6RSKXx8fHDhwgUAwLNnz5CYmNWJ9dWrVzh79ixq1qyZL/URERFR4abVqKu2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Va4SzGyaQvFf/lwCouKHQYeIyITkeSlFi8sb2k5iqG0Li8bRRP+rx1CXgDjxHr2NQYeIiFRo0zpUGFtYOPEeqcOgQ0REahW1eXs48R6pw6BDRERFg6FuokrFCoMOEREVekV6wjzOaFygGHSIiKjQK6oT5hXpgGYiGHSIiKjIKGoT5hXVgGZKGHSIiIiMrKgFNFPCoENERMUL+8wUKww6RESknyIYGNhnpvhh0CEiIp0V1cDAPjPFD4MOERHprKgHBvaZKT4YdIiISG8MDFTY8WYfREREZLIYdIiIiMhkMegQERGRyWLQISIiIpPFoENEREQmi0GHiIiITBaDDhEREZksBh0iIiIyWQw6REREZLIYdIiIiMhkMegQERGRyWLQISIiIpPFoENEREQmi0GHiIiITBaDDhEREZksBh0iIiIyWQw6REREZLIYdIiIiMhkMegQERGRyWLQISIiIpPFoENEREQmi0GHiIiITBaDDhEREZksBh0iIiIyWQw6REREZLIYdIiIiMhkMegQERGRyWLQISIiIpPFoENEREQmi0GHiIiITBaDDhEREZksBh0iIiIyWQw6REREZLLMCroAkyeRQCKRqF+Vz6UQEREVNww6RqSABKmZCohMhdr1MoWAVT7XREREVJww6BiJRCJBhkIg6nkyUl69UruNHcqihhD5XBkREVHxwaBjZBkZCqTl0qKTnstyIiIiMgx2RiYiIiKTxaBDREREJotBh4iIiEwWgw4RERGZLAYdIiIiMlkMOkRERGSyGHSIiIjIZDHoEBERkcli0CEiIiKTxaBDREREJotBh4iIiEwWgw4RERGZLAYdIiIiMlm8e/n/SCTG2anU3BIyc0u1q6VmFoBECqmZRa7baLtdYdumMNbEugvfNoWxJtZd+LYpjDWxbi23MbdU/oE19N9ZbfcnEUIIw740ERERUeHAS1dERERkshh0iIiIyGQx6BAREZHJYtAhIiIik8WgQ0RERCaLQYeIiIhMFoMOERERmSwGHSIiIjJZDDpERERkshh0iIiIyGQx6LyDDRs2oGXLlnB1dUXPnj0RERGhcfu9e/eiffv2cHV1RadOnXDkyJF8qrRo0+U8b9myBR9//DEaNWqERo0aYcCAAXm+L5RF15/nbLt374ajoyNGjhxp5ApNh67nOiEhAUFBQfD19YWLiwvatWvHzw8t6Hqe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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.hist(\n",
    "    user_ratio_dict.values(), bins=np.linspace(0, 1, 50), alpha=0.5, label=\"free user\"\n",
    ")\n",
    "plt.hist(\n",
    "    pro_user_ratio_dict.values(),\n",
    "    bins=np.linspace(0, 1, 50),\n",
    "    alpha=0.5,\n",
    "    label=\"pro user\",\n",
    ")\n",
    "plt.xlabel(\n",
    "    f\"fraction of generations (min {min_generations_for_no_reaction}) that have no actions\"\n",
    ")\n",
    "plt.ylabel(\"number of users\")\n",
    "plt.yscale(\"log\")\n",
    "plt.legend()\n",
    "plt.title(f\"Potential bots since {max(cutoff_date, inspection_date_cut)}\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 153,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-05-26T00:27:02.229332Z",
     "start_time": "2024-05-26T00:27:02.192457Z"
    },
    "execution": {
     "iopub.execute_input": "2024-07-19T02:53:23.234710Z",
     "iopub.status.busy": "2024-07-19T02:53:23.234341Z",
     "iopub.status.idle": "2024-07-19T02:53:23.278428Z",
     "shell.execute_reply": "2024-07-19T02:53:23.277844Z",
     "shell.execute_reply.started": "2024-07-19T02:53:23.234690Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "36170\n",
      "5786\n"
     ]
    }
   ],
   "source": [
    "super_bad_user_id = set()\n",
    "for user_id, user_ratio in user_ratio_dict.items():\n",
    "    if user_ratio >= 0.99:\n",
    "        super_bad_user_id.add(user_id)\n",
    "print(len(super_bad_user_id))\n",
    "super_bad_pro_user_id = set()\n",
    "for user_id, user_ratio in pro_user_ratio_dict.items():\n",
    "    if user_ratio >= 0.99:\n",
    "        super_bad_pro_user_id.add(user_id)\n",
    "print(len(super_bad_pro_user_id))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 154,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-07-19T02:53:24.231549Z",
     "iopub.status.busy": "2024-07-19T02:53:24.231112Z",
     "iopub.status.idle": "2024-07-19T02:53:24.255753Z",
     "shell.execute_reply": "2024-07-19T02:53:24.255198Z",
     "shell.execute_reply.started": "2024-07-19T02:53:24.231525Z"
    }
   },
   "outputs": [],
   "source": [
    "from datetime import datetime\n",
    "\n",
    "curr_date = datetime.today().strftime(\"%Y_%m_%d\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 155,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-07-19T02:53:32.495402Z",
     "iopub.status.busy": "2024-07-19T02:53:32.495021Z",
     "iopub.status.idle": "2024-07-19T02:53:32.564084Z",
     "shell.execute_reply": "2024-07-19T02:53:32.563442Z",
     "shell.execute_reply.started": "2024-07-19T02:53:32.495381Z"
    }
   },
   "outputs": [],
   "source": [
    "# with open(f\"/home/tony/Data/bots/bad_user_{curr_date}.json\", \"w\") as fp:\n",
    "#     json.dump(list(super_bad_user_id), fp)\n",
    "# with open(f\"/home/tony/Data/bots/bad_pro_user_{curr_date}.json\", \"w\") as fp:\n",
    "#     json.dump(list(super_bad_pro_user_id), fp)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 156,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-05-26T00:27:02.725735Z",
     "start_time": "2024-05-26T00:27:02.230988Z"
    },
    "execution": {
     "iopub.execute_input": "2024-07-19T02:53:48.756997Z",
     "iopub.status.busy": "2024-07-19T02:53:48.756574Z",
     "iopub.status.idle": "2024-07-19T02:53:53.893900Z",
     "shell.execute_reply": "2024-07-19T02:53:53.893327Z",
     "shell.execute_reply.started": "2024-07-19T02:53:48.756975Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.022037514161521332"
      ]
     },
     "execution_count": 156,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "total_clip_df[total_clip_df[\"user_id\"].isin(super_bad_user_id)].shape[\n",
    "    0\n",
    "] / total_clip_df.shape[0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 157,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-07-19T02:53:53.895131Z",
     "iopub.status.busy": "2024-07-19T02:53:53.894958Z",
     "iopub.status.idle": "2024-07-19T02:54:03.808669Z",
     "shell.execute_reply": "2024-07-19T02:54:03.808093Z",
     "shell.execute_reply.started": "2024-07-19T02:53:53.895112Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.06558797604390422"
      ]
     },
     "execution_count": 157,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "total_clip_df[total_clip_df[\"user_id\"].isin(super_bad_pro_user_id)].shape[\n",
    "    0\n",
    "] / total_clip_df.shape[0]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Alpha testing user selection"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Alpha testing user selection\n",
    "# we focus on the folks who are good good\n",
    "\n",
    "# # 0526 is v2 -- prod\n",
    "# # 0529 is v4 -- still good IMO, more data\n",
    "# early_v3p5_data = pd.read_csv(\"/home/tony/Data/Preference/13b_v0/interesting_clips_20240529.csv\")\n",
    "\n",
    "# print(\"uqniue users for vp5\", early_v3p5_data[\"user_id\"].nunique())\n",
    "\n",
    "# early_v3_data = pd.read_csv(\"/home/tony/Data/Preference/7b_v0_interesting_clips.csv\")\n",
    "\n",
    "# print(\"uqniue users for v3\", early_v3_data[\"user_id\"].nunique())\n",
    "\n",
    "# early_v2_data = pd.read_csv(\"/home/tony/Data/Preference/3b_v0_interesting_clips.csv\")\n",
    "\n",
    "# print(\"uqniue users for v2\", early_v2_data[\"user_id\"].nunique())\n",
    "\n",
    "# intersection_user_ids_super = set(early_v3p5_data[\"user_id\"].unique()).intersection(set(early_v3_data[\"user_id\"].unique())).intersection(set(early_v2_data[\"user_id\"].unique()))\n",
    "\n",
    "# intersection_user_ids_v3_on = set(early_v3p5_data[\"user_id\"].unique()).intersection(set(early_v3_data[\"user_id\"].unique())).difference(intersection_user_ids_super)\n",
    "\n",
    "# print(len(intersection_user_ids_super), len(intersection_user_ids_v3_on))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# super_user_df = user_df[user_df[\"id\"].isin(intersection_user_ids_super)].copy()\n",
    "# print(super_user_df.shape)\n",
    "# v3_onward_user_df = user_df[user_df[\"id\"].isin(intersection_user_ids_v3_on)].copy()\n",
    "# print(v3_onward_user_df.shape)\n",
    "# super_user_df.to_csv(\"/home/tony/Data/Preference/alpha_users/super_user.csv\", index=False)\n",
    "# v3_onward_user_df.to_csv(\"/home/tony/Data/Preference/alpha_users/v3_onward_user.csv\", index=False)\n",
    "# print(\"Done!!\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-06-21T19:35:17.755108Z",
     "iopub.status.busy": "2024-06-21T19:35:17.754937Z",
     "iopub.status.idle": "2024-06-21T19:35:17.774581Z",
     "shell.execute_reply": "2024-06-21T19:35:17.774106Z",
     "shell.execute_reply.started": "2024-06-21T19:35:17.755091Z"
    }
   },
   "source": [
    "# Snow flake access"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# snow_session = Session.builder.configs(CONNECTION_PARAMETERS).create()\n",
    "\n",
    "# snow_root = Root(snow_session)\n",
    "# snow_schema = snow_root.databases[\"SUNO_PROD\"].schemas[\"PROD\"]\n",
    "# print(snow_schema.name)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# session_query = snow_session.sql(f\"\"\" select *\n",
    "#     from ML_SONG_SUMMARY_INFO\n",
    "#     where song_id in ('7e7da06b-5d1f-4cc9-8e7c-54bb7c9bd3f1')\n",
    "#     and p_date = DATE(SYSDATE() - INTERVAL '1 HOUR')\n",
    "#     order by p_hour desc\n",
    "#     limit 1;\"\"\")\n",
    "# df_snow_test = pd.DataFrame(session_query.collect())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# df_snow_test"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# user_intersting_clips_3p5[\"prompt_text\"]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Express Feedback dataset"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 170,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-07-19T03:30:18.362871Z",
     "iopub.status.busy": "2024-07-19T03:30:18.362511Z",
     "iopub.status.idle": "2024-07-19T03:30:53.851069Z",
     "shell.execute_reply": "2024-07-19T03:30:53.850421Z",
     "shell.execute_reply.started": "2024-07-19T03:30:18.362852Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "39,113 rows\n"
     ]
    }
   ],
   "source": [
    "query = f\"\"\"\n",
    "SELECT * FROM bots_userreaction\n",
    "WHERE updated_at>='{cutoff_date}' AND feedback_reason IS NOT NULL\n",
    "\"\"\"\n",
    "feedback_reaction_df = pd.read_sql_query(query, engine)\n",
    "print(f\"{feedback_reaction_df.shape[0]:,} rows\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 216,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-07-19T04:14:36.806675Z",
     "iopub.status.busy": "2024-07-19T04:14:36.806056Z",
     "iopub.status.idle": "2024-07-19T04:14:37.539316Z",
     "shell.execute_reply": "2024-07-19T04:14:37.538755Z",
     "shell.execute_reply.started": "2024-07-19T04:14:36.806652Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "776"
      ]
     },
     "execution_count": 216,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "feedback_reaction_df[\"user_id\"].nunique()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 171,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-07-19T03:30:53.852344Z",
     "iopub.status.busy": "2024-07-19T03:30:53.852173Z",
     "iopub.status.idle": "2024-07-19T03:30:54.688446Z",
     "shell.execute_reply": "2024-07-19T03:30:54.687801Z",
     "shell.execute_reply.started": "2024-07-19T03:30:53.852326Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(39113, 10)\n",
      "after reemoving no feedback parts (38258, 10)\n"
     ]
    }
   ],
   "source": [
    "print(feedback_reaction_df.shape)\n",
    "feedback_reaction_df = feedback_reaction_df[\n",
    "    feedback_reaction_df[\"feedback_reason\"] != \"\"\n",
    "]\n",
    "print(\"after reemoving no feedback parts\", feedback_reaction_df.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 172,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-07-19T03:30:54.689432Z",
     "iopub.status.busy": "2024-07-19T03:30:54.689258Z",
     "iopub.status.idle": "2024-07-19T03:30:54.752564Z",
     "shell.execute_reply": "2024-07-19T03:30:54.751960Z",
     "shell.execute_reply.started": "2024-07-19T03:30:54.689414Z"
    }
   },
   "outputs": [],
   "source": [
    "bad_audio_quality_ids = list(\n",
    "    str(s)\n",
    "    for s in feedback_reaction_df[\n",
    "        feedback_reaction_df[\"feedback_reason\"].str.contains(\"bad_poor_audio_quality\")\n",
    "    ][\"clip_id\"].unique()\n",
    ")\n",
    "# with open(\n",
    "#     \"/home/tony/Data/Preference/13b_v0/interesting_clips_20240627_feedback_bad_audio_quality_ids.json\",\n",
    "#     \"w\",\n",
    "# ) as fp:\n",
    "#     json.dump(bad_audio_quality_ids, fp)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 173,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-07-19T03:30:54.754014Z",
     "iopub.status.busy": "2024-07-19T03:30:54.753843Z",
     "iopub.status.idle": "2024-07-19T03:30:54.775665Z",
     "shell.execute_reply": "2024-07-19T03:30:54.775161Z",
     "shell.execute_reply.started": "2024-07-19T03:30:54.753998Z"
    }
   },
   "outputs": [],
   "source": [
    "# id_query_str = \",\".join(\"'\" + x + \"'\" for x in bad_audio_quality_ids)\n",
    "\n",
    "# query = f\"\"\"\n",
    "# SELECT * FROM bots_generatedclip\n",
    "# WHERE status='complete' AND id IN ({id_query_str})\n",
    "# \"\"\"\n",
    "# sub_feedback_clip_df = pd.read_sql_query(query, engine)\n",
    "\n",
    "# sub_feedback_request_ids = list(str(s) for s in sub_feedback_clip_df[\"request_id\"].unique())\n",
    "\n",
    "# id_value_counts = sub_feedback_clip_df[\"request_id\"].value_counts()\n",
    "# # Filter to keep only values with a count of 1\n",
    "# unique_request_values = id_value_counts[id_value_counts == 1].reset_index()[\"request_id\"].unique()\n",
    "# print(len(unique_request_values))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 174,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-07-19T03:30:54.776453Z",
     "iopub.status.busy": "2024-07-19T03:30:54.776308Z",
     "iopub.status.idle": "2024-07-19T03:31:54.302995Z",
     "shell.execute_reply": "2024-07-19T03:31:54.302350Z",
     "shell.execute_reply.started": "2024-07-19T03:30:54.776436Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "unique_feedback_clip_ids 38258\n",
      "(37121, 26)\n"
     ]
    }
   ],
   "source": [
    "feedback_clip_ids = feedback_reaction_df[\"clip_id\"].unique()\n",
    "print(\"unique_feedback_clip_ids\", len(feedback_clip_ids))\n",
    "subset_of_clips_df = total_clip_df[total_clip_df[\"id\"].isin(feedback_clip_ids)].copy()\n",
    "print(subset_of_clips_df.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 175,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-07-19T03:31:54.303962Z",
     "iopub.status.busy": "2024-07-19T03:31:54.303802Z",
     "iopub.status.idle": "2024-07-19T03:31:55.147172Z",
     "shell.execute_reply": "2024-07-19T03:31:55.146548Z",
     "shell.execute_reply.started": "2024-07-19T03:31:54.303944Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1137\n"
     ]
    }
   ],
   "source": [
    "missed_feedback_clip_ids = list(\n",
    "    set(x for x in feedback_clip_ids).difference(\n",
    "        set(x for x in subset_of_clips_df[\"id\"].unique())\n",
    "    )\n",
    ")\n",
    "print(len(missed_feedback_clip_ids))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 176,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-07-19T03:31:55.148153Z",
     "iopub.status.busy": "2024-07-19T03:31:55.147983Z",
     "iopub.status.idle": "2024-07-19T03:31:55.171110Z",
     "shell.execute_reply": "2024-07-19T03:31:55.170607Z",
     "shell.execute_reply.started": "2024-07-19T03:31:55.148135Z"
    }
   },
   "outputs": [],
   "source": [
    "# id_query_str = \",\".join(\"'\" + str(x) + \"'\" for x in missed_feedback_clip_ids)\n",
    "# query = f\"\"\"\n",
    "# SELECT * FROM bots_generatedclip\n",
    "# WHERE status='complete' AND id IN ({id_query_str})\n",
    "# \"\"\"\n",
    "# sub_feedback_clip_df = pd.read_sql_query(query, engine)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 177,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-07-19T03:31:55.171937Z",
     "iopub.status.busy": "2024-07-19T03:31:55.171781Z",
     "iopub.status.idle": "2024-07-19T03:31:55.213757Z",
     "shell.execute_reply": "2024-07-19T03:31:55.213222Z",
     "shell.execute_reply.started": "2024-07-19T03:31:55.171920Z"
    }
   },
   "outputs": [],
   "source": [
    "# sub_feedback_clip_df[\"created_at\"]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 178,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-07-19T03:31:55.214616Z",
     "iopub.status.busy": "2024-07-19T03:31:55.214465Z",
     "iopub.status.idle": "2024-07-19T03:33:09.802321Z",
     "shell.execute_reply": "2024-07-19T03:33:09.801668Z",
     "shell.execute_reply.started": "2024-07-19T03:31:55.214599Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "total feedback requets, 24111\n",
      "(34890, 42)\n"
     ]
    }
   ],
   "source": [
    "feedback_requests = subset_of_clips_df[\"request_id\"].unique()\n",
    "print(f\"total feedback requets, {len(feedback_requests)}\")\n",
    "feedback_clip_df = clip_df[clip_df[\"request_id\"].isin(feedback_requests)].copy()\n",
    "print(feedback_clip_df.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 179,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-07-19T03:33:09.804438Z",
     "iopub.status.busy": "2024-07-19T03:33:09.804253Z",
     "iopub.status.idle": "2024-07-19T03:33:10.530580Z",
     "shell.execute_reply": "2024-07-19T03:33:10.529907Z",
     "shell.execute_reply.started": "2024-07-19T03:33:09.804419Z"
    }
   },
   "outputs": [],
   "source": [
    "# missing_requests = set(feedback_requests).difference(clip_df[\"request_id\"].unique())\n",
    "# print(\"missing requests\", len(missing_requests))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 180,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-07-19T03:33:10.531799Z",
     "iopub.status.busy": "2024-07-19T03:33:10.531639Z",
     "iopub.status.idle": "2024-07-19T03:33:10.606857Z",
     "shell.execute_reply": "2024-07-19T03:33:10.606181Z",
     "shell.execute_reply.started": "2024-07-19T03:33:10.531782Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "postive feedbacks 19826, negative feedbacks 18432\n"
     ]
    }
   ],
   "source": [
    "positive_feedback_ids = feedback_reaction_df[\n",
    "    feedback_reaction_df[\"feedback_reason\"] == \"good_quality\"\n",
    "][\"clip_id\"].unique()\n",
    "negative_feedback_ids = feedback_reaction_df[\n",
    "    feedback_reaction_df[\"feedback_reason\"] != \"good_quality\"\n",
    "][\"clip_id\"].unique()\n",
    "print(\n",
    "    f\"postive feedbacks {len(positive_feedback_ids)}, negative feedbacks {len(negative_feedback_ids)}\"\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 181,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-07-19T03:33:10.607873Z",
     "iopub.status.busy": "2024-07-19T03:33:10.607713Z",
     "iopub.status.idle": "2024-07-19T03:33:10.629979Z",
     "shell.execute_reply": "2024-07-19T03:33:10.628687Z",
     "shell.execute_reply.started": "2024-07-19T03:33:10.607858Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "pos_preference\n",
      "False    25591\n",
      "True      9299\n",
      "Name: count, dtype: int64 neg_preference\n",
      "False    24275\n",
      "True     10615\n",
      "Name: count, dtype: int64\n"
     ]
    }
   ],
   "source": [
    "print(\n",
    "    feedback_clip_df[\"pos_preference\"].value_counts(),\n",
    "    feedback_clip_df[\"neg_preference\"].value_counts(),\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 182,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-07-19T03:33:10.630980Z",
     "iopub.status.busy": "2024-07-19T03:33:10.630829Z",
     "iopub.status.idle": "2024-07-19T03:33:10.748491Z",
     "shell.execute_reply": "2024-07-19T03:33:10.747851Z",
     "shell.execute_reply.started": "2024-07-19T03:33:10.630964Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "13501 12329\n"
     ]
    }
   ],
   "source": [
    "# request has a positive\n",
    "# postive_feedback_mask = feedback_clip_df[\"id\"].isin(positive_feedback_ids) & (\n",
    "#     ~feedback_clip_df[\"id\"].isin(negative_feedback_ids)\n",
    "# )\n",
    "postive_feedback_mask = feedback_clip_df[\"id\"].isin(positive_feedback_ids)\n",
    "negative_feedback_mask = feedback_clip_df[\"id\"].isin(negative_feedback_ids)\n",
    "print(sum(postive_feedback_mask), sum(negative_feedback_mask))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 183,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-07-19T03:33:10.749596Z",
     "iopub.status.busy": "2024-07-19T03:33:10.749265Z",
     "iopub.status.idle": "2024-07-19T03:33:10.896023Z",
     "shell.execute_reply": "2024-07-19T03:33:10.895354Z",
     "shell.execute_reply.started": "2024-07-19T03:33:10.749578Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "total unique requets 19666, \n",
      "postive feedbacks requests 10590,non-positive feedback requets 15109, \n",
      "non-negative feedback requets 15099,negative feedbacks requests 9402\n",
      "positive pairs 6033 negative pairs 4835 total pairs 9386\n"
     ]
    }
   ],
   "source": [
    "positive_feedback_requests = set(\n",
    "    feedback_clip_df[postive_feedback_mask][\"request_id\"].unique()\n",
    ")\n",
    "non_positive_feedback_requests = set(\n",
    "    feedback_clip_df[~postive_feedback_mask][\"request_id\"].unique()\n",
    ")\n",
    "non_negative_feedback_requests = set(\n",
    "    feedback_clip_df[~negative_feedback_mask][\"request_id\"].unique()\n",
    ")\n",
    "negative_feedback_requests = set(\n",
    "    feedback_clip_df[negative_feedback_mask][\"request_id\"].unique()\n",
    ")\n",
    "print(\n",
    "    f\"total unique requets {feedback_clip_df['request_id'].nunique()}, \\n\"\n",
    "    f\"postive feedbacks requests {len(positive_feedback_requests)},\"\n",
    "    f\"non-positive feedback requets {len(non_positive_feedback_requests)}, \\n\"\n",
    "    f\"non-negative feedback requets {len(non_negative_feedback_requests)},\"\n",
    "    f\"negative feedbacks requests {len(negative_feedback_requests)}\"\n",
    ")\n",
    "positive_request_pairs = positive_feedback_requests.intersection(\n",
    "    non_positive_feedback_requests\n",
    ")\n",
    "negative_request_pairs = negative_feedback_requests.intersection(\n",
    "    non_negative_feedback_requests\n",
    ")\n",
    "total_feedback_requests = positive_request_pairs.union(negative_request_pairs)\n",
    "print(\n",
    "    f\"positive pairs {len(positive_request_pairs)}\",\n",
    "    f\"negative pairs {len(negative_request_pairs)}\",\n",
    "    f\"total pairs {len(total_feedback_requests)}\",\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 184,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-07-19T03:33:10.897191Z",
     "iopub.status.busy": "2024-07-19T03:33:10.896853Z",
     "iopub.status.idle": "2024-07-19T03:33:10.967536Z",
     "shell.execute_reply": "2024-07-19T03:33:10.966922Z",
     "shell.execute_reply.started": "2024-07-19T03:33:10.897174Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(18772, 42)\n"
     ]
    }
   ],
   "source": [
    "paired_feedback_clip_df = feedback_clip_df[\n",
    "    feedback_clip_df[\"request_id\"].isin(total_feedback_requests)\n",
    "].copy()\n",
    "print(paired_feedback_clip_df.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 185,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-07-19T03:33:10.968681Z",
     "iopub.status.busy": "2024-07-19T03:33:10.968372Z",
     "iopub.status.idle": "2024-07-19T03:33:11.059327Z",
     "shell.execute_reply": "2024-07-19T03:33:11.058685Z",
     "shell.execute_reply.started": "2024-07-19T03:33:10.968664Z"
    }
   },
   "outputs": [],
   "source": [
    "paired_feedback_clip_df[\"pos_feedback\"] = paired_feedback_clip_df[\"id\"].isin(\n",
    "    positive_feedback_ids\n",
    ") & (~paired_feedback_clip_df[\"id\"].isin(negative_feedback_ids))\n",
    "paired_feedback_clip_df[\"neg_feedback\"] = paired_feedback_clip_df[\"id\"].isin(\n",
    "    negative_feedback_ids\n",
    ") & (~paired_feedback_clip_df[\"id\"].isin(positive_feedback_ids))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 186,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-07-19T03:33:11.060463Z",
     "iopub.status.busy": "2024-07-19T03:33:11.060133Z",
     "iopub.status.idle": "2024-07-19T03:33:11.082447Z",
     "shell.execute_reply": "2024-07-19T03:33:11.081919Z",
     "shell.execute_reply.started": "2024-07-19T03:33:11.060445Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(pos_feedback\n",
       " False    12739\n",
       " True      6033\n",
       " Name: count, dtype: int64,\n",
       " neg_feedback\n",
       " False    13937\n",
       " True      4835\n",
       " Name: count, dtype: int64)"
      ]
     },
     "execution_count": 186,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "(\n",
    "    paired_feedback_clip_df[\"pos_feedback\"].value_counts(),\n",
    "    paired_feedback_clip_df[\"neg_feedback\"].value_counts(),\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 187,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-07-19T03:33:11.083496Z",
     "iopub.status.busy": "2024-07-19T03:33:11.083194Z",
     "iopub.status.idle": "2024-07-19T03:33:11.187311Z",
     "shell.execute_reply": "2024-07-19T03:33:11.186728Z",
     "shell.execute_reply.started": "2024-07-19T03:33:11.083479Z"
    }
   },
   "outputs": [],
   "source": [
    "paired_feedback_clip_df = paired_feedback_clip_df.sort_values(\n",
    "    by=[\"request_id\"]\n",
    ").reset_index(drop=True)\n",
    "paired_feedback_clip_df[\"diff_preference\"] = paired_feedback_clip_df[\n",
    "    \"pos_preference\"\n",
    "].astype(int) - paired_feedback_clip_df[\"neg_preference\"].astype(int)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 188,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-07-19T03:33:11.188184Z",
     "iopub.status.busy": "2024-07-19T03:33:11.188030Z",
     "iopub.status.idle": "2024-07-19T03:33:11.208064Z",
     "shell.execute_reply": "2024-07-19T03:33:11.207538Z",
     "shell.execute_reply.started": "2024-07-19T03:33:11.188169Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "diff_preference\n",
       " 0    8831\n",
       " 1    4992\n",
       "-1    4949\n",
       "Name: count, dtype: int64"
      ]
     },
     "execution_count": 188,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "paired_feedback_clip_df[\"diff_preference\"].value_counts()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 189,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-07-19T03:33:11.209163Z",
     "iopub.status.busy": "2024-07-19T03:33:11.208770Z",
     "iopub.status.idle": "2024-07-19T03:33:11.247493Z",
     "shell.execute_reply": "2024-07-19T03:33:11.246929Z",
     "shell.execute_reply.started": "2024-07-19T03:33:11.209146Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "diff_preference\n",
      " 0.0    4770\n",
      "-1.0    1724\n",
      " 1.0    1697\n",
      " 2.0     611\n",
      "-2.0     584\n",
      "Name: count, dtype: int64\n"
     ]
    }
   ],
   "source": [
    "feedback_diff_series = paired_feedback_clip_df[\"diff_preference\"].diff()\n",
    "print(\n",
    "    feedback_diff_series[1::2].value_counts()\n",
    ")  # 1 is pos, not neg pair or nothing, neg; 2 is pos / neg (hence the larger difference)\n",
    "# but this can be wilder...as we didn't filter on requests!"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 190,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-07-19T03:33:11.248451Z",
     "iopub.status.busy": "2024-07-19T03:33:11.248306Z",
     "iopub.status.idle": "2024-07-19T03:33:11.343269Z",
     "shell.execute_reply": "2024-07-19T03:33:11.342645Z",
     "shell.execute_reply.started": "2024-07-19T03:33:11.248437Z"
    }
   },
   "outputs": [],
   "source": [
    "paired_feedback_clip_df = paired_feedback_clip_df.sort_values(\n",
    "    by=[\"request_id\", \"diff_preference\"]\n",
    ").reset_index(drop=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 191,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-07-19T03:33:11.344359Z",
     "iopub.status.busy": "2024-07-19T03:33:11.344041Z",
     "iopub.status.idle": "2024-07-19T03:33:11.364991Z",
     "shell.execute_reply": "2024-07-19T03:33:11.364465Z",
     "shell.execute_reply.started": "2024-07-19T03:33:11.344342Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "preference\n",
       "False    9386\n",
       "True     9386\n",
       "Name: count, dtype: int64"
      ]
     },
     "execution_count": 191,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "paired_feedback_clip_df[\"preference\"] = paired_feedback_clip_df.index % 2 == 1\n",
    "paired_feedback_clip_df[\"preference\"].value_counts()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 192,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-07-19T03:33:11.365799Z",
     "iopub.status.busy": "2024-07-19T03:33:11.365658Z",
     "iopub.status.idle": "2024-07-19T03:33:11.407605Z",
     "shell.execute_reply": "2024-07-19T03:33:11.407077Z",
     "shell.execute_reply.started": "2024-07-19T03:33:11.365785Z"
    }
   },
   "outputs": [],
   "source": [
    "paired_feedback_clip_df[\"diff_feedback\"] = paired_feedback_clip_df[\n",
    "    \"pos_feedback\"\n",
    "].astype(int) - paired_feedback_clip_df[\"neg_feedback\"].astype(int)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 193,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-07-19T03:33:11.408656Z",
     "iopub.status.busy": "2024-07-19T03:33:11.408280Z",
     "iopub.status.idle": "2024-07-19T03:33:11.445883Z",
     "shell.execute_reply": "2024-07-19T03:33:11.445363Z",
     "shell.execute_reply.started": "2024-07-19T03:33:11.408639Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "diff_feedback\n",
       " 0    7904\n",
       " 1    6033\n",
       "-1    4835\n",
       "Name: count, dtype: int64"
      ]
     },
     "execution_count": 193,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "paired_feedback_clip_df[\"diff_feedback\"].value_counts()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 194,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-07-19T03:33:11.446807Z",
     "iopub.status.busy": "2024-07-19T03:33:11.446667Z",
     "iopub.status.idle": "2024-07-19T03:33:11.537911Z",
     "shell.execute_reply": "2024-07-19T03:33:11.537243Z",
     "shell.execute_reply.started": "2024-07-19T03:33:11.446792Z"
    }
   },
   "outputs": [],
   "source": [
    "paired_feedback_clip_df = paired_feedback_clip_df.sort_values(\n",
    "    by=[\"request_id\", \"diff_feedback\"]\n",
    ").reset_index(drop=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 195,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-07-19T03:33:11.539064Z",
     "iopub.status.busy": "2024-07-19T03:33:11.538728Z",
     "iopub.status.idle": "2024-07-19T03:33:11.560995Z",
     "shell.execute_reply": "2024-07-19T03:33:11.560362Z",
     "shell.execute_reply.started": "2024-07-19T03:33:11.539047Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "diff_feedback\n",
      "1.0    7904\n",
      "2.0    1482\n",
      "Name: count, dtype: int64\n"
     ]
    }
   ],
   "source": [
    "feedback_diff_feedback_series = paired_feedback_clip_df[\"diff_feedback\"].diff()\n",
    "\n",
    "print(\n",
    "    feedback_diff_feedback_series[1::2].value_counts()\n",
    ")  # 1 is pos, not neg pair or nothing, neg; 2 is pos / neg (hence the larger difference)\n",
    "# but this can be wilder...as we didn't filter on requests!"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 196,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-07-19T03:33:11.562071Z",
     "iopub.status.busy": "2024-07-19T03:33:11.561757Z",
     "iopub.status.idle": "2024-07-19T03:33:11.598464Z",
     "shell.execute_reply": "2024-07-19T03:33:11.597897Z",
     "shell.execute_reply.started": "2024-07-19T03:33:11.562054Z"
    }
   },
   "outputs": [],
   "source": [
    "paired_feedback_clip_df[\"feedback_preference\"] = paired_feedback_clip_df.index % 2 == 1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 197,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-07-19T03:33:11.601401Z",
     "iopub.status.busy": "2024-07-19T03:33:11.600989Z",
     "iopub.status.idle": "2024-07-19T03:33:11.635074Z",
     "shell.execute_reply": "2024-07-19T03:33:11.634562Z",
     "shell.execute_reply.started": "2024-07-19T03:33:11.601383Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "True     0.691988\n",
       "False    0.308012\n",
       "Name: proportion, dtype: float64"
      ]
     },
     "execution_count": 197,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "(\n",
    "    paired_feedback_clip_df[\"feedback_preference\"]\n",
    "    == paired_feedback_clip_df[\"preference\"]\n",
    ").value_counts(normalize=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 198,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-07-19T03:33:11.636036Z",
     "iopub.status.busy": "2024-07-19T03:33:11.635738Z",
     "iopub.status.idle": "2024-07-19T03:33:11.675502Z",
     "shell.execute_reply": "2024-07-19T03:33:11.674989Z",
     "shell.execute_reply.started": "2024-07-19T03:33:11.636019Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "True     0.812753\n",
       "False    0.187247\n",
       "Name: proportion, dtype: float64"
      ]
     },
     "execution_count": 198,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "(\n",
    "    paired_feedback_clip_df[\"pos_feedback\"] == paired_feedback_clip_df[\"pos_preference\"]\n",
    ").value_counts(normalize=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 199,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-07-19T03:33:11.676332Z",
     "iopub.status.busy": "2024-07-19T03:33:11.676189Z",
     "iopub.status.idle": "2024-07-19T03:33:11.717279Z",
     "shell.execute_reply": "2024-07-19T03:33:11.716764Z",
     "shell.execute_reply.started": "2024-07-19T03:33:11.676317Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "True     0.718623\n",
       "False    0.281377\n",
       "Name: proportion, dtype: float64"
      ]
     },
     "execution_count": 199,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "(\n",
    "    paired_feedback_clip_df[\"neg_feedback\"] == paired_feedback_clip_df[\"neg_preference\"]\n",
    ").value_counts(normalize=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 200,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-07-19T03:33:11.718066Z",
     "iopub.status.busy": "2024-07-19T03:33:11.717917Z",
     "iopub.status.idle": "2024-07-19T03:33:17.045076Z",
     "shell.execute_reply": "2024-07-19T03:33:17.044480Z",
     "shell.execute_reply.started": "2024-07-19T03:33:11.718051Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "3258"
      ]
     },
     "execution_count": 200,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# overlapping with existing?\n",
    "paired_feedback_clip_df[\"request_id\"].isin(\n",
    "    final_interesting_clips[\"request_id\"]\n",
    ").sum() // 2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 206,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-07-19T03:52:54.996025Z",
     "iopub.status.busy": "2024-07-19T03:52:54.995645Z",
     "iopub.status.idle": "2024-07-19T03:52:56.379772Z",
     "shell.execute_reply": "2024-07-19T03:52:56.379049Z",
     "shell.execute_reply.started": "2024-07-19T03:52:54.996006Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(18772, 47)\n"
     ]
    }
   ],
   "source": [
    "# paired_feedback_clip_df.to_csv(\"/home/tony/Data/Preference/13b_v0/interesting_clips_20240719_feedback.csv\", index=False)\n",
    "print(paired_feedback_clip_df.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 202,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-07-19T03:33:17.067742Z",
     "iopub.status.busy": "2024-07-19T03:33:17.067592Z",
     "iopub.status.idle": "2024-07-19T03:33:17.108758Z",
     "shell.execute_reply": "2024-07-19T03:33:17.108167Z",
     "shell.execute_reply.started": "2024-07-19T03:33:17.067726Z"
    }
   },
   "outputs": [],
   "source": [
    "weird_feedback_mask = (paired_feedback_clip_df[\"pos_feedback\"]) & (\n",
    "    paired_feedback_clip_df[\"dislike_count\"] > 0\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 203,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-07-19T03:33:17.109656Z",
     "iopub.status.busy": "2024-07-19T03:33:17.109510Z",
     "iopub.status.idle": "2024-07-19T03:33:17.151504Z",
     "shell.execute_reply": "2024-07-19T03:33:17.150960Z",
     "shell.execute_reply.started": "2024-07-19T03:33:17.109640Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "user_id\n",
       "1467683    116\n",
       "4540475     34\n",
       "171120      22\n",
       "4841498     15\n",
       "1010996     13\n",
       "Name: count, dtype: int64"
      ]
     },
     "execution_count": 203,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "paired_feedback_clip_df[weird_feedback_mask][\"user_id\"].value_counts().head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 204,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-07-19T03:33:17.152569Z",
     "iopub.status.busy": "2024-07-19T03:33:17.152240Z",
     "iopub.status.idle": "2024-07-19T03:33:17.188484Z",
     "shell.execute_reply": "2024-07-19T03:33:17.187912Z",
     "shell.execute_reply.started": "2024-07-19T03:33:17.152552Z"
    }
   },
   "outputs": [],
   "source": [
    "# feedback_reaction_df[feedback_reaction_df[\"clip_id\"].isin(paired_feedback_clip_df[weird_feedback_mask][\"id\"].unique())]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 205,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-07-19T03:33:17.189499Z",
     "iopub.status.busy": "2024-07-19T03:33:17.189200Z",
     "iopub.status.idle": "2024-07-19T03:33:17.270966Z",
     "shell.execute_reply": "2024-07-19T03:33:17.270408Z",
     "shell.execute_reply.started": "2024-07-19T03:33:17.189483Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>created_at</th>\n",
       "      <th>updated_at</th>\n",
       "      <th>time_used</th>\n",
       "      <th>metadata</th>\n",
       "      <th>user_id</th>\n",
       "      <th>status</th>\n",
       "      <th>discord_message_id</th>\n",
       "      <th>prompt_id</th>\n",
       "      <th>request_id</th>\n",
       "      <th>is_generated</th>\n",
       "      <th>s3_id</th>\n",
       "      <th>upvote_count</th>\n",
       "      <th>batch_index</th>\n",
       "      <th>model_name</th>\n",
       "      <th>prompt_text</th>\n",
       "      <th>daily_theme_id</th>\n",
       "      <th>is_deleted</th>\n",
       "      <th>image_s3_id</th>\n",
       "      <th>is_public</th>\n",
       "      <th>dislike_count</th>\n",
       "      <th>flag_count</th>\n",
       "      <th>play_count</th>\n",
       "      <th>skip_count</th>\n",
       "      <th>title</th>\n",
       "      <th>slug</th>\n",
       "      <th>is_pro_user</th>\n",
       "      <th>is_in_playlist</th>\n",
       "      <th>continued_parent</th>\n",
       "      <th>duration</th>\n",
       "      <th>source</th>\n",
       "      <th>user_n_clips</th>\n",
       "      <th>upvoted</th>\n",
       "      <th>downvoted</th>\n",
       "      <th>has_continued</th>\n",
       "      <th>part_of_concat</th>\n",
       "      <th>has_action</th>\n",
       "      <th>flagged</th>\n",
       "      <th>deleted</th>\n",
       "      <th>pos_preference</th>\n",
       "      <th>neg_preference</th>\n",
       "      <th>diff_preference</th>\n",
       "      <th>pos_feedback</th>\n",
       "      <th>neg_feedback</th>\n",
       "      <th>preference</th>\n",
       "      <th>diff_feedback</th>\n",
       "      <th>feedback_preference</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>306</th>\n",
       "      <td>a8fd3fef-e9e1-4f11-b470-cc62a684066f</td>\n",
       "      <td>2024-07-12 09:21:45.752951+00:00</td>\n",
       "      <td>2024-07-12 09:21:45.752957+00:00</td>\n",
       "      <td>244.522501</td>\n",
       "      <td>{'tags': 'Tempo RnB, Arab orchestra background...</td>\n",
       "      <td>4604997</td>\n",
       "      <td>complete</td>\n",
       "      <td>None</td>\n",
       "      <td>None</td>\n",
       "      <td>0471f2a4-ac6e-4090-b7e2-5481f2f33475</td>\n",
       "      <td>True</td>\n",
       "      <td>a8fd3fef-e9e1-4f11-b470-cc62a684066f</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>chirp-v3p5-engine-t</td>\n",
       "      <td>[Instrumental Intro] [Oud Ney Buzuq Qanun Riqq...</td>\n",
       "      <td>None</td>\n",
       "      <td>False</td>\n",
       "      <td>image_a8fd3fef-e9e1-4f11-b470-cc62a684066f</td>\n",
       "      <td>False</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>0</td>\n",
       "      <td>RnB and Arabic vocal instrumental ensemble</td>\n",
       "      <td>None</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>None</td>\n",
       "      <td>240.00</td>\n",
       "      <td>web</td>\n",
       "      <td>924</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>0</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>0</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>307</th>\n",
       "      <td>78883ac3-e802-47dc-8384-01ff8bbc5ef7</td>\n",
       "      <td>2024-07-12 09:21:45.752855+00:00</td>\n",
       "      <td>2024-07-12 09:21:45.752870+00:00</td>\n",
       "      <td>176.367074</td>\n",
       "      <td>{'tags': 'Tempo RnB, Arab orchestra background...</td>\n",
       "      <td>4604997</td>\n",
       "      <td>complete</td>\n",
       "      <td>None</td>\n",
       "      <td>None</td>\n",
       "      <td>0471f2a4-ac6e-4090-b7e2-5481f2f33475</td>\n",
       "      <td>True</td>\n",
       "      <td>78883ac3-e802-47dc-8384-01ff8bbc5ef7</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>chirp-v3p5-engine-s-8</td>\n",
       "      <td>[Instrumental Intro] [Oud Ney Buzuq Qanun Riqq...</td>\n",
       "      <td>None</td>\n",
       "      <td>False</td>\n",
       "      <td>image_78883ac3-e802-47dc-8384-01ff8bbc5ef7</td>\n",
       "      <td>False</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>0</td>\n",
       "      <td>RnB and Arabic vocal instrumental ensemble</td>\n",
       "      <td>None</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>None</td>\n",
       "      <td>178.96</td>\n",
       "      <td>web</td>\n",
       "      <td>924</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>1</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>1</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5252</th>\n",
       "      <td>c5ef134b-359e-42dd-8664-31f57c55296b</td>\n",
       "      <td>2024-07-12 06:51:06.728057+00:00</td>\n",
       "      <td>2024-07-12 06:51:06.728062+00:00</td>\n",
       "      <td>125.578950</td>\n",
       "      <td>{'tags': 'British beat, psychedelic,Energetic,...</td>\n",
       "      <td>198175</td>\n",
       "      <td>complete</td>\n",
       "      <td>None</td>\n",
       "      <td>None</td>\n",
       "      <td>48267a48-519a-44b7-b0dc-c18fcbce8f83</td>\n",
       "      <td>True</td>\n",
       "      <td>c5ef134b-359e-42dd-8664-31f57c55296b</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>chirp-v3p5-engine-s-8</td>\n",
       "      <td>\\n[Instrumental,intro]</td>\n",
       "      <td>None</td>\n",
       "      <td>False</td>\n",
       "      <td>image_c5ef134b-359e-42dd-8664-31f57c55296b</td>\n",
       "      <td>False</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>0</td>\n",
       "      <td>240712-1イントロ</td>\n",
       "      <td>None</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>None</td>\n",
       "      <td>199.64</td>\n",
       "      <td>web</td>\n",
       "      <td>1317</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>0</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>0</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5253</th>\n",
       "      <td>9ae0d499-fe30-4103-b3b9-6f7a60361aae</td>\n",
       "      <td>2024-07-12 06:51:06.727967+00:00</td>\n",
       "      <td>2024-07-12 06:51:06.727979+00:00</td>\n",
       "      <td>203.675873</td>\n",
       "      <td>{'tags': 'British beat, psychedelic,Energetic,...</td>\n",
       "      <td>198175</td>\n",
       "      <td>complete</td>\n",
       "      <td>None</td>\n",
       "      <td>None</td>\n",
       "      <td>48267a48-519a-44b7-b0dc-c18fcbce8f83</td>\n",
       "      <td>True</td>\n",
       "      <td>9ae0d499-fe30-4103-b3b9-6f7a60361aae</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>chirp-v3p5-engine-t</td>\n",
       "      <td>\\n[Instrumental,intro]</td>\n",
       "      <td>None</td>\n",
       "      <td>False</td>\n",
       "      <td>image_9ae0d499-fe30-4103-b3b9-6f7a60361aae</td>\n",
       "      <td>False</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>0</td>\n",
       "      <td>240712-1イントロ</td>\n",
       "      <td>None</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>None</td>\n",
       "      <td>240.00</td>\n",
       "      <td>web</td>\n",
       "      <td>1317</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>1</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>1</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15048</th>\n",
       "      <td>05ac7baa-d795-41de-b717-6a0d6db8d579</td>\n",
       "      <td>2024-07-12 09:37:22.151988+00:00</td>\n",
       "      <td>2024-07-12 09:37:22.151995+00:00</td>\n",
       "      <td>226.555379</td>\n",
       "      <td>{'tags': 'Rhythmic Tempo RnB, Arab orchestra b...</td>\n",
       "      <td>4604997</td>\n",
       "      <td>complete</td>\n",
       "      <td>None</td>\n",
       "      <td>None</td>\n",
       "      <td>ce43412c-2690-423d-9f23-ad7a3120f2d6</td>\n",
       "      <td>True</td>\n",
       "      <td>05ac7baa-d795-41de-b717-6a0d6db8d579</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>chirp-v3p5-engine-t</td>\n",
       "      <td>[Instrumental Intro] [Oud Ney Buzuq Qanun Riqq...</td>\n",
       "      <td>None</td>\n",
       "      <td>False</td>\n",
       "      <td>image_05ac7baa-d795-41de-b717-6a0d6db8d579</td>\n",
       "      <td>False</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>RnB Gipsy band vocal instrumental ensemble</td>\n",
       "      <td>None</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>None</td>\n",
       "      <td>240.00</td>\n",
       "      <td>web</td>\n",
       "      <td>924</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>0</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>0</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15049</th>\n",
       "      <td>8e2ec4b8-f5ff-4b38-bc5a-d392036fd7c0</td>\n",
       "      <td>2024-07-12 09:37:22.151896+00:00</td>\n",
       "      <td>2024-07-12 09:37:22.151908+00:00</td>\n",
       "      <td>135.821390</td>\n",
       "      <td>{'tags': 'Rhythmic Tempo RnB, Arab orchestra b...</td>\n",
       "      <td>4604997</td>\n",
       "      <td>complete</td>\n",
       "      <td>None</td>\n",
       "      <td>None</td>\n",
       "      <td>ce43412c-2690-423d-9f23-ad7a3120f2d6</td>\n",
       "      <td>True</td>\n",
       "      <td>8e2ec4b8-f5ff-4b38-bc5a-d392036fd7c0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>chirp-v3p5-engine-s-8</td>\n",
       "      <td>[Instrumental Intro] [Oud Ney Buzuq Qanun Riqq...</td>\n",
       "      <td>None</td>\n",
       "      <td>False</td>\n",
       "      <td>image_8e2ec4b8-f5ff-4b38-bc5a-d392036fd7c0</td>\n",
       "      <td>False</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>RnB Gipsy band vocal instrumental ensemble</td>\n",
       "      <td>None</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>None</td>\n",
       "      <td>149.32</td>\n",
       "      <td>web</td>\n",
       "      <td>924</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>1</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>1</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16912</th>\n",
       "      <td>23b4eca6-e1e7-4f75-9354-fd4a114f215d</td>\n",
       "      <td>2024-07-12 01:12:10.938674+00:00</td>\n",
       "      <td>2024-07-12 01:12:10.938680+00:00</td>\n",
       "      <td>244.437953</td>\n",
       "      <td>{'tags': 'eerie dark trap metal intense', 'typ...</td>\n",
       "      <td>7098</td>\n",
       "      <td>complete</td>\n",
       "      <td>None</td>\n",
       "      <td>None</td>\n",
       "      <td>e85c1f07-6da7-40e0-975c-717b95e8606c</td>\n",
       "      <td>True</td>\n",
       "      <td>23b4eca6-e1e7-4f75-9354-fd4a114f215d</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>chirp-v3p5-engine-t</td>\n",
       "      <td></td>\n",
       "      <td>None</td>\n",
       "      <td>False</td>\n",
       "      <td>image_23b4eca6-e1e7-4f75-9354-fd4a114f215d</td>\n",
       "      <td>False</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>0</td>\n",
       "      <td>Cryptic Abyss</td>\n",
       "      <td>None</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>None</td>\n",
       "      <td>240.00</td>\n",
       "      <td>web</td>\n",
       "      <td>44</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>0</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>-1</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16913</th>\n",
       "      <td>25635de7-39a0-43c0-989b-aab54a2381dd</td>\n",
       "      <td>2024-07-12 01:12:10.938582+00:00</td>\n",
       "      <td>2024-07-12 01:12:10.938597+00:00</td>\n",
       "      <td>99.766599</td>\n",
       "      <td>{'tags': 'eerie dark trap metal intense', 'typ...</td>\n",
       "      <td>7098</td>\n",
       "      <td>complete</td>\n",
       "      <td>None</td>\n",
       "      <td>None</td>\n",
       "      <td>e85c1f07-6da7-40e0-975c-717b95e8606c</td>\n",
       "      <td>True</td>\n",
       "      <td>25635de7-39a0-43c0-989b-aab54a2381dd</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>chirp-v3p5-engine-s-8</td>\n",
       "      <td></td>\n",
       "      <td>None</td>\n",
       "      <td>False</td>\n",
       "      <td>image_25635de7-39a0-43c0-989b-aab54a2381dd</td>\n",
       "      <td>False</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>0</td>\n",
       "      <td>Cryptic Abyss</td>\n",
       "      <td>None</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>None</td>\n",
       "      <td>141.12</td>\n",
       "      <td>web</td>\n",
       "      <td>44</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>0</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>1</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                                         id                       created_at                       updated_at   time_used                                           metadata  user_id    status discord_message_id prompt_id                            request_id  is_generated                                 s3_id  upvote_count  batch_index             model_name                                        prompt_text daily_theme_id  is_deleted                                 image_s3_id  is_public  dislike_count  flag_count  play_count  skip_count                                       title  slug  is_pro_user  is_in_playlist continued_parent  duration source  user_n_clips  upvoted  downvoted  has_continued  part_of_concat  has_action  flagged  deleted  pos_preference  neg_preference  diff_preference  pos_feedback  neg_feedback  preference  diff_feedback  feedback_preference\n",
       "306    a8fd3fef-e9e1-4f11-b470-cc62a684066f 2024-07-12 09:21:45.752951+00:00 2024-07-12 09:21:45.752957+00:00  244.522501  {'tags': 'Tempo RnB, Arab orchestra background...  4604997  complete               None      None  0471f2a4-ac6e-4090-b7e2-5481f2f33475          True  a8fd3fef-e9e1-4f11-b470-cc62a684066f             0            1    chirp-v3p5-engine-t  [Instrumental Intro] [Oud Ney Buzuq Qanun Riqq...           None       False  image_a8fd3fef-e9e1-4f11-b470-cc62a684066f      False              0           0           2           0  RnB and Arabic vocal instrumental ensemble  None         True           False             None    240.00    web           924    False      False          False           False       False    False    False           False           False                0         False         False       False              0                False\n",
       "307    78883ac3-e802-47dc-8384-01ff8bbc5ef7 2024-07-12 09:21:45.752855+00:00 2024-07-12 09:21:45.752870+00:00  176.367074  {'tags': 'Tempo RnB, Arab orchestra background...  4604997  complete               None      None  0471f2a4-ac6e-4090-b7e2-5481f2f33475          True  78883ac3-e802-47dc-8384-01ff8bbc5ef7             1            0  chirp-v3p5-engine-s-8  [Instrumental Intro] [Oud Ney Buzuq Qanun Riqq...           None       False  image_78883ac3-e802-47dc-8384-01ff8bbc5ef7      False              0           0           2           0  RnB and Arabic vocal instrumental ensemble  None         True           False             None    178.96    web           924     True      False          False           False       False    False    False            True           False                1          True         False        True              1                 True\n",
       "5252   c5ef134b-359e-42dd-8664-31f57c55296b 2024-07-12 06:51:06.728057+00:00 2024-07-12 06:51:06.728062+00:00  125.578950  {'tags': 'British beat, psychedelic,Energetic,...   198175  complete               None      None  48267a48-519a-44b7-b0dc-c18fcbce8f83          True  c5ef134b-359e-42dd-8664-31f57c55296b             0            1  chirp-v3p5-engine-s-8                             \\n[Instrumental,intro]           None       False  image_c5ef134b-359e-42dd-8664-31f57c55296b      False              0           0           2           0                                240712-1イントロ  None         True           False             None    199.64    web          1317    False      False          False           False       False    False    False           False           False                0         False         False       False              0                False\n",
       "5253   9ae0d499-fe30-4103-b3b9-6f7a60361aae 2024-07-12 06:51:06.727967+00:00 2024-07-12 06:51:06.727979+00:00  203.675873  {'tags': 'British beat, psychedelic,Energetic,...   198175  complete               None      None  48267a48-519a-44b7-b0dc-c18fcbce8f83          True  9ae0d499-fe30-4103-b3b9-6f7a60361aae             1            0    chirp-v3p5-engine-t                             \\n[Instrumental,intro]           None       False  image_9ae0d499-fe30-4103-b3b9-6f7a60361aae      False              0           0           3           0                                240712-1イントロ  None         True           False             None    240.00    web          1317     True      False          False           False       False    False    False            True           False                1          True         False        True              1                 True\n",
       "15048  05ac7baa-d795-41de-b717-6a0d6db8d579 2024-07-12 09:37:22.151988+00:00 2024-07-12 09:37:22.151995+00:00  226.555379  {'tags': 'Rhythmic Tempo RnB, Arab orchestra b...  4604997  complete               None      None  ce43412c-2690-423d-9f23-ad7a3120f2d6          True  05ac7baa-d795-41de-b717-6a0d6db8d579             0            1    chirp-v3p5-engine-t  [Instrumental Intro] [Oud Ney Buzuq Qanun Riqq...           None       False  image_05ac7baa-d795-41de-b717-6a0d6db8d579      False              0           0           1           0  RnB Gipsy band vocal instrumental ensemble  None         True           False             None    240.00    web           924    False      False          False           False       False    False    False           False           False                0         False         False       False              0                False\n",
       "15049  8e2ec4b8-f5ff-4b38-bc5a-d392036fd7c0 2024-07-12 09:37:22.151896+00:00 2024-07-12 09:37:22.151908+00:00  135.821390  {'tags': 'Rhythmic Tempo RnB, Arab orchestra b...  4604997  complete               None      None  ce43412c-2690-423d-9f23-ad7a3120f2d6          True  8e2ec4b8-f5ff-4b38-bc5a-d392036fd7c0             1            0  chirp-v3p5-engine-s-8  [Instrumental Intro] [Oud Ney Buzuq Qanun Riqq...           None       False  image_8e2ec4b8-f5ff-4b38-bc5a-d392036fd7c0      False              0           0           1           0  RnB Gipsy band vocal instrumental ensemble  None         True           False             None    149.32    web           924     True      False          False           False       False    False    False            True           False                1          True         False        True              1                 True\n",
       "16912  23b4eca6-e1e7-4f75-9354-fd4a114f215d 2024-07-12 01:12:10.938674+00:00 2024-07-12 01:12:10.938680+00:00  244.437953  {'tags': 'eerie dark trap metal intense', 'typ...     7098  complete               None      None  e85c1f07-6da7-40e0-975c-717b95e8606c          True  23b4eca6-e1e7-4f75-9354-fd4a114f215d             0            1    chirp-v3p5-engine-t                                                              None       False  image_23b4eca6-e1e7-4f75-9354-fd4a114f215d      False              0           0           3           0                               Cryptic Abyss  None         True           False             None    240.00    web            44    False      False          False           False       False    False    False           False           False                0         False          True       False             -1                False\n",
       "16913  25635de7-39a0-43c0-989b-aab54a2381dd 2024-07-12 01:12:10.938582+00:00 2024-07-12 01:12:10.938597+00:00   99.766599  {'tags': 'eerie dark trap metal intense', 'typ...     7098  complete               None      None  e85c1f07-6da7-40e0-975c-717b95e8606c          True  25635de7-39a0-43c0-989b-aab54a2381dd             0            0  chirp-v3p5-engine-s-8                                                              None       False  image_25635de7-39a0-43c0-989b-aab54a2381dd      False              0           0           2           0                               Cryptic Abyss  None         True           False             None    141.12    web            44    False      False          False           False       False    False    False           False           False                0          True         False        True              1                 True"
      ]
     },
     "execution_count": 205,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "my_sub_set_request_ids = paired_feedback_clip_df[\n",
    "    paired_feedback_clip_df[\"model_name\"] == \"chirp-v3p5-engine-t\"\n",
    "][\"request_id\"].unique()\n",
    "paired_feedback_clip_df[\n",
    "    paired_feedback_clip_df[\"request_id\"].isin(my_sub_set_request_ids)\n",
    "]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "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.14"
  },
  "toc": {
   "base_numbering": 1,
   "nav_menu": {},
   "number_sections": true,
   "sideBar": true,
   "skip_h1_title": false,
   "title_cell": "Table of Contents",
   "title_sidebar": "Contents",
   "toc_cell": false,
   "toc_position": {},
   "toc_section_display": true,
   "toc_window_display": false
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
