{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {},
   "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>text</th>\n",
       "      <th>true_label</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>Tổng thống Mỹ Joe Biden cùng một số thành viên...</td>\n",
       "      <td>khac</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>Chủ nghĩa cộng sản đã gây ra quá nhiều đau khổ...</td>\n",
       "      <td>phan_dong</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>- Mẹ. Sáng sớm ngày ra đã chảy máu là đen lắm ...</td>\n",
       "      <td>thu_ghet</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>Một lúc sau đi ra, tôi không thể tin được khi ...</td>\n",
       "      <td>khieu_dam</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>Hàng nghìn người reo hò, vỗ tay nồng nhiệt và ...</td>\n",
       "      <td>khac</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>195</th>\n",
       "      <td>Thùy Trang cắn môi hai mắt lúng liếng nhìn Min...</td>\n",
       "      <td>khieu_dam</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>196</th>\n",
       "      <td>Thứ hai, Bộ Y Tế ra chỉ thị huy động khẩn cấp ...</td>\n",
       "      <td>khac</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>197</th>\n",
       "      <td>Kết thúc triều đại Nguyễn Phú Trọng bằng sự nắ...</td>\n",
       "      <td>phan_dong</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>198</th>\n",
       "      <td>Đ .M ĐỒ LÙN NGU ! TAO BẢO TRƯỚC KHI ĐI PHẢI TẮ...</td>\n",
       "      <td>thu_ghet</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>199</th>\n",
       "      <td>Tôi bắt đầu liếm, cô ấy rên nhẹ rồi ngậm ngay ...</td>\n",
       "      <td>khieu_dam</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>199 rows × 2 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "                                                  text true_label\n",
       "0    Tổng thống Mỹ Joe Biden cùng một số thành viên...       khac\n",
       "1    Chủ nghĩa cộng sản đã gây ra quá nhiều đau khổ...  phan_dong\n",
       "2    - Mẹ. Sáng sớm ngày ra đã chảy máu là đen lắm ...   thu_ghet\n",
       "3    Một lúc sau đi ra, tôi không thể tin được khi ...  khieu_dam\n",
       "4    Hàng nghìn người reo hò, vỗ tay nồng nhiệt và ...       khac\n",
       "..                                                 ...        ...\n",
       "195  Thùy Trang cắn môi hai mắt lúng liếng nhìn Min...  khieu_dam\n",
       "196  Thứ hai, Bộ Y Tế ra chỉ thị huy động khẩn cấp ...       khac\n",
       "197  Kết thúc triều đại Nguyễn Phú Trọng bằng sự nắ...  phan_dong\n",
       "198  Đ .M ĐỒ LÙN NGU ! TAO BẢO TRƯỚC KHI ĐI PHẢI TẮ...   thu_ghet\n",
       "199  Tôi bắt đầu liếm, cô ấy rên nhẹ rồi ngậm ngay ...  khieu_dam\n",
       "\n",
       "[199 rows x 2 columns]"
      ]
     },
     "execution_count": 40,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import pandas as pd \n",
    "\n",
    "data_frame = pd.read_excel(\"../data/test_set.xlsx\")\n",
    "data_frame = data_frame.dropna()\n",
    "data_frame"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<Axes: xlabel='true_label', ylabel='count'>"
      ]
     },
     "execution_count": 41,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "[encoded data, 14504 characters]",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import seaborn as sns\n",
    "\n",
    "sns.countplot(x='true_label', data=data_frame)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "import requests\n",
    "import json\n",
    "\n",
    "def get_label(text):\n",
    "    # URL của API\n",
    "    url = \"http://10.84.5.155:8001/text-classify\"\n",
    "\n",
    "    # Dữ liệu sẽ được gửi dưới dạng JSON\n",
    "    data = {\n",
    "        \"paragraph\": text\n",
    "    }\n",
    "\n",
    "    # Gửi yêu cầu POST tới API\n",
    "    response = requests.post(url, headers={\"Content-Type\": \"application/json\"}, data=json.dumps(data))\n",
    "\n",
    "    # In ra kết quả trả về từ API\n",
    "    if response.status_code == 200:\n",
    "        # print(\"Response from API:\", response.json())\n",
    "        pass\n",
    "    else:\n",
    "        print(\"text: \\n\", text)\n",
    "        print(\"Failed to call API:\", response.status_code, response.text)\n",
    "\n",
    "    labels = ''\n",
    "    for res in response.json():\n",
    "        labels += f'{res[\"label\"]}, '\n",
    "    # print(labels)\n",
    "\n",
    "    return labels"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "text_test = \"\"\"Mỗi chúng ta khi sinh ra đời chúng ta không thể tự lựa chọn cha mẹ hay số phận cho chính mình được. Tạo hóa cho mỗi con người một số phận khác nhau. Có những người vừa sinh ra đã gặp nhiều may mắn hạnh phúc có ba mẹ yêu thương, sinh ra trong một gia đình giàu có sung túc. Ngược lại có những người vừa sinh ra đã thiệt thòi bởi hoàn cảnh của gia đình khó khăn, hoặc bị ba mẹ bỏ rơi không cha không mẹ, có những người sinh ra đã không được khỏe mạnh bằng chúng bạn của mình, thiệt thòi hơn các bạn rất nhiều. Nhưng dù trong hoàn cảnh nào thì những con người chúng ta đều cố gắng vươn lên trong cuộc sống. Có những người dù bị thiệt thòi trong cuộc sống nhưng họ không vì thế mà buông xuôi cuộc đời mình mà luôn cố gắng vươn lên trong cuộc sống để không thua kém bạn bè. Những con người đó thật sự là tấm gương sáng để cho chúng ta noi theo, thái độ sống tích cực của họ.\n",
    "\n",
    "\n",
    "\n",
    "Trong xã hội của chúng ta còn nhiều con người chịu nhiều thiệt thòi đó họ không đầu hàng số phận không chấp nhận mình sẽ là gánh nặng của gia đình và xã hội họ cố gắng vươn lên trong cuộc sống của chính mình quả là một điều thật sự đáng ngưỡng mộ. Như thầy giáo Nguyễn Ngọc Kí một con người đã chịu rất nhiều trong cuộc sống khi sinh ra đã bị liệt hai tay. Nhưng bằng nghị lực phi thường của mình thầy đã cố gắng học viết chữ bằng chân. Những ngày đầu tập viết những nét chữ viết bằng tay còn khó khăn thì những nét chữ bằng chân vô cùng khó. Nhưng thầy Nguyễn Ngọc Kí vẫn kiên nhẫn tập viết mỗi ngày để rồi thầy có thể theo đuổi sự nghiệp học hành của mình. Rồi thầy Nguyễn Ngọc Kí đã thi đỗ đại học rồi trở thành một thầy giáo. Một thầy giáo dạy giỏi viết chữ bằng chân. Đó chính là một nỗ lực phi thường của mỗi con người.\n",
    "\n",
    "Những con người thiệt thòi, khi họ sinh ra đã không được lành lặn nhưng chính nhờ ý chí, nghị lực sống phi thường của mình mà họ đã vươn lên trở thành những con người thành đạt không hề thua kém những người lành lặn. Thậm chí, nhiều bạn trẻ khỏe mạnh lành lặn nhưng sự nỗ lực trong cuộc sống lại không. Họ để cho những thói hư tật xấu trong cuộc sống cám dỗ mình rồi trở thành những kẻ tội phạm gây ra những tội ác ghê rợn. Những bạn trẻ này thật sự là gánh nặng của xã hội, họ thật sự không biết tận dụng những lợi thế mà cuộc sống, tạo hóa đã ban tặng cho mình sống hoài sống phí tuổi trẻ tương lai của mình. Trong khi đó nhiều người vừa sinh ra do những ảnh hưởng của chất độc màu da cam, hoặc do tạo hóa nên khi vừa chào đời họ đã thiệt thòi, nhưng họ vẫn luôn sống có ích, có ước mơ hoài bão của mình.\n",
    "\n",
    "ADVERTISING\n",
    "\n",
    "\n",
    "\n",
    "\n",
    "\n",
    "Cái đáng quý nhất của mỗi con người này chính là nghị lực sống kiên cường, phi thường của họ. Dù cuộc sống có nhiều khắc nghiệt nhưng họ vẫn vươn lên trong cuộc sống với những ước mơ, hoài bão vô cùng lớn lao. Những con người này thường phải nỗ lực gấp hai, ba lần thậm chí mười lần so với người khỏe mạnh bình thường nhưng họ lại tạo ra những kỳ tích mà người khỏe mạnh bình thường cũng không làm được. Dù tạo hóa không công bằng với họ nhưng họ không trông chờ vào lòng từ bi, thương hại của người khác mà luôn chủ động trong cuộc sống của mình. Thậm chí họ còn tạo nên nhiều thành công khiến cho người khác phải nể phục. Họ sinh ra có thể thiếu đi một bộ phận nào đó trên cơ thể nhưng bằng bàn tay khối óc của mình họ đã kiên cường vươn lên trong cuộc sống. Họ quyết khẳng định vị trí của mình không làm gánh nặng cho gia đình và xã hội.\n",
    "\n",
    "Chính trái tim khối óc, ý chí của con người đã chiến thắng mọi thứ trong cuộc sống. Những con người có nghị lực sống thì không có khó khăn nào có thể làm họ gục ngã.\n",
    "\n",
    "Dàn ý Viết văn bản nghị luận về một vấn đề xã hội\n",
    "A. Mở đoạn: Nêu  hiện tượng trong đề bài:\n",
    "\n",
    "- Giới thiệu thẳng vào vấn đề mà đề bài yêu cầu (1 câu)\n",
    "\n",
    "VD: Bạo lự học đường đang là một vấn đề gây bức xúc dư luận và làm xấu hình ảnh trường học.\n",
    "\n",
    "B. Thân bài:\n",
    "\n",
    "Giải thích vấn đề: Giải thích ngắn gọn nội hện tượng xã hội được đưa ra trong đề bài. (1 đến 2 câu)\n",
    "\n",
    "VD: Bạo lực học đường là những hành vi thô bạo, dùng bạo lực để giải quyết các vấn đề giữa các bạn hạc sinh , xâm phạm đến than thể, xúc phạm danh dự và làm tổn thương tinh thần của bạn. \n",
    "Bàn luận về vấn đề: (5 – 7 câu)\n",
    "\n",
    "+ Nêu thực trạng cụ thể của hiện tượng (Để làm gì? Vì sao?)\n",
    "\n",
    "VD: Bạo lực học đường ngày nay càng gia tăng, hình thức biểu hiện ngày càng phức tạp (đánh bằng nắm đấm, thước, gậy, ghế, dao…; bêu rếu, dọa nạt, chửi bới, tung clip hành hung bạn lên các trạng mạng xã hội); tính chất sự việc ngày càng nghiêm trọng , thậm chí dẫn đến chết người.\n",
    "\n",
    "+ Nêu nguyên nhân đẫn đến hiện tượng\n",
    "\n",
    "VD: Có nhiều nguyên dân dẫn đến bạo lựu học đường, có thể kể đến nguyên nhân trực tiếp là do mâu thuẫn, xích mích, thích thể hiện cái tôi, bị bạn bè kích động, rủ rê lôi kéo. Nguyên nhân gián tiếp là do thiếu kĩ năng sống, không có kĩ năng giải quyết mâu thuẫn, gia đình và nhà trường chưa giáo dục nghiêm minh, triệt để, các biện pháp kỉ luật chưa đủ sức răn đe.\n",
    "\n",
    "+ Trình bày hậu quả (đối với các hiện tượng tiêu cực)/ kết quả (đối với các hiện tượng tích cực)\n",
    "\n",
    "VD: Gây tổn thương cả về thể xác và tinh thần, ảnh hưởng nghiêm trọng đến danh dự, nhân phẩm của nạn nhân.\"\"\""
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'khac, khac, khac, khac, khac, khac, khac, khac, khac, khac, khac, khac, khac, khac, khac, khac, khac, khac, khac, khac, thu_ghet, thu_ghet, khac, khac, '"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "get_label(text_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'khac, khac, khac, khac, khac, khac, khac, khac, khac, khac, khac, khac, khac, khac, khac, khac, khac, khac, khac, khac, thu_ghet, thu_ghet, khac, khac, '"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "get_label(text_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'khac, khac, khac, khac, khac, khac, khac, khac, khac, khac, khac, khac, khac, khac, khac, khac, khac, khac, khac, khac, thu_ghet, thu_ghet, khac, khac, '"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "get_label(text_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'khac, khac, khac, khac, khac, khac, khac, khac, khac, khac, khac, khac, khac, khac, khac, khac, khac, khac, khac, khac, thu_ghet, thu_ghet, khac, khac, '"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "get_label(text_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 60,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Duyệt qua từng dòng của DataFrame và cập nhật cột 'ai_return'\n",
    "for index, row in data_frame.iterrows():\n",
    "    text = row['text']\n",
    "    ai_labels = get_label(text)\n",
    "    data_frame.at[index, 'phobert_best_21-08-2024_08h58m.pth'] = ai_labels\n",
    "    if str(row['true_label']) in str(row['phobert_best_21-08-2024_08h58m.pth']):\n",
    "        data_frame.at[index, 'phobert_best_21-08-2024_08h58m_score'] = 1\n",
    "    else:\n",
    "        data_frame.at[index, 'phobert_best_21-08-2024_08h58m_score'] = 0"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 69,
   "metadata": {},
   "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>text</th>\n",
       "      <th>true_label</th>\n",
       "      <th>phobert_best_21-08-2024_08h58m.pth</th>\n",
       "      <th>phobert_best_21-08-2024_08h58m_score</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>Tổng thống Mỹ Joe Biden cùng một số thành viên...</td>\n",
       "      <td>khac</td>\n",
       "      <td>khac,</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>Chủ nghĩa cộng sản đã gây ra quá nhiều đau khổ...</td>\n",
       "      <td>phan_dong</td>\n",
       "      <td>khac,</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>- Mẹ. Sáng sớm ngày ra đã chảy máu là đen lắm ...</td>\n",
       "      <td>thu_ghet</td>\n",
       "      <td>thu_ghet,</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>Một lúc sau đi ra, tôi không thể tin được khi ...</td>\n",
       "      <td>khieu_dam</td>\n",
       "      <td>khieu_dam, khieu_dam,</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>Hàng nghìn người reo hò, vỗ tay nồng nhiệt và ...</td>\n",
       "      <td>khac</td>\n",
       "      <td>thu_ghet,</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>195</th>\n",
       "      <td>Thùy Trang cắn môi hai mắt lúng liếng nhìn Min...</td>\n",
       "      <td>khieu_dam</td>\n",
       "      <td>thu_ghet, khieu_dam,</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>196</th>\n",
       "      <td>Thứ hai, Bộ Y Tế ra chỉ thị huy động khẩn cấp ...</td>\n",
       "      <td>khac</td>\n",
       "      <td>khac,</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>197</th>\n",
       "      <td>Kết thúc triều đại Nguyễn Phú Trọng bằng sự nắ...</td>\n",
       "      <td>phan_dong</td>\n",
       "      <td>phan_dong,</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>198</th>\n",
       "      <td>Đ .M ĐỒ LÙN NGU ! TAO BẢO TRƯỚC KHI ĐI PHẢI TẮ...</td>\n",
       "      <td>thu_ghet</td>\n",
       "      <td>thu_ghet,</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>199</th>\n",
       "      <td>Tôi bắt đầu liếm, cô ấy rên nhẹ rồi ngậm ngay ...</td>\n",
       "      <td>khieu_dam</td>\n",
       "      <td>khac, khieu_dam,</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>199 rows × 4 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "                                                  text true_label  \\\n",
       "0    Tổng thống Mỹ Joe Biden cùng một số thành viên...       khac   \n",
       "1    Chủ nghĩa cộng sản đã gây ra quá nhiều đau khổ...  phan_dong   \n",
       "2    - Mẹ. Sáng sớm ngày ra đã chảy máu là đen lắm ...   thu_ghet   \n",
       "3    Một lúc sau đi ra, tôi không thể tin được khi ...  khieu_dam   \n",
       "4    Hàng nghìn người reo hò, vỗ tay nồng nhiệt và ...       khac   \n",
       "..                                                 ...        ...   \n",
       "195  Thùy Trang cắn môi hai mắt lúng liếng nhìn Min...  khieu_dam   \n",
       "196  Thứ hai, Bộ Y Tế ra chỉ thị huy động khẩn cấp ...       khac   \n",
       "197  Kết thúc triều đại Nguyễn Phú Trọng bằng sự nắ...  phan_dong   \n",
       "198  Đ .M ĐỒ LÙN NGU ! TAO BẢO TRƯỚC KHI ĐI PHẢI TẮ...   thu_ghet   \n",
       "199  Tôi bắt đầu liếm, cô ấy rên nhẹ rồi ngậm ngay ...  khieu_dam   \n",
       "\n",
       "    phobert_best_21-08-2024_08h58m.pth  phobert_best_21-08-2024_08h58m_score  \n",
       "0                               khac,                                    1.0  \n",
       "1                               khac,                                    0.0  \n",
       "2                           thu_ghet,                                    1.0  \n",
       "3               khieu_dam, khieu_dam,                                    1.0  \n",
       "4                           thu_ghet,                                    0.0  \n",
       "..                                 ...                                   ...  \n",
       "195              thu_ghet, khieu_dam,                                    1.0  \n",
       "196                             khac,                                    1.0  \n",
       "197                        phan_dong,                                    1.0  \n",
       "198                         thu_ghet,                                    1.0  \n",
       "199                  khac, khieu_dam,                                    1.0  \n",
       "\n",
       "[199 rows x 4 columns]"
      ]
     },
     "execution_count": 69,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data_frame.to_excel(\"../data/test_set_result.xlsx\")\n",
    "data_frame"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 66,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "np.float64(0.7336683417085427)"
      ]
     },
     "execution_count": 66,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "total = data_frame['phobert_best_21-08-2024_08h58m_score'].sum()\n",
    "acc = total / data_frame.shape[0]\n",
    "acc"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Add data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [],
   "source": [
    "import requests\n",
    "import json\n",
    "\n",
    "def add_data(text, label):\n",
    "    # URL của API\n",
    "    url = \"http://10.3.2.100:8008/add-data\"\n",
    "\n",
    "    # Dữ liệu sẽ được gửi dưới dạng JSON\n",
    "    data = {\n",
    "        \"paragraph\": text,\n",
    "        \"label\": label\n",
    "    }\n",
    "\n",
    "    # Gửi yêu cầu POST tới API\n",
    "    response = requests.post(url, headers={\"Content-Type\": \"application/json\"}, data=json.dumps(data))\n",
    "\n",
    "    # In ra kết quả trả về từ API\n",
    "    if response.status_code == 200:\n",
    "        print(\"Response from API:\", response.json())\n",
    "    else:\n",
    "        print(\"Failed to call API:\", response.status_code, response.text)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [],
   "source": [
    "text = \"csv\"\n",
    "label = \"khac\""
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Response from API: {'paragraph': 'csv', 'label': 'khac'}\n"
     ]
    }
   ],
   "source": [
    "add_data(text, label)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Training"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [],
   "source": [
    "import requests\n",
    "import json\n",
    "\n",
    "def start_training(pretrain):\n",
    "    # URL của API\n",
    "    url = \"http://10.3.2.100:8000/start-training\"\n",
    "\n",
    "    # Dữ liệu sẽ được gửi dưới dạng JSON\n",
    "    data = {\n",
    "        \"pretrain\": pretrain,\n",
    "    }\n",
    "\n",
    "    # Gửi yêu cầu POST tới API\n",
    "    response = requests.post(url, headers={\"Content-Type\": \"application/json\"}, data=json.dumps(data))\n",
    "\n",
    "    # In ra kết quả trả về từ API\n",
    "    if response.status_code == 200:\n",
    "        print(\"Response from API:\", response.json())\n",
    "    else:\n",
    "        print(\"Failed to call API:\", response.status_code, response.text)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Response from API: {'status': 'Training started', 'message': 'Tracking and visualizing metrics on TensorBoard UI: http://server_ip:6006/'}\n"
     ]
    }
   ],
   "source": [
    "start_training(\"latest\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Stop training"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [],
   "source": [
    "import requests\n",
    "import json\n",
    "\n",
    "def stop_training():\n",
    "    # URL của API\n",
    "    url = \"http://10.3.2.100:8000/stop-training\"\n",
    "\n",
    "    # Dữ liệu sẽ được gửi dưới dạng JSON\n",
    "\n",
    "    # Gửi yêu cầu POST tới API\n",
    "    response = requests.post(url)\n",
    "\n",
    "    # In ra kết quả trả về từ API\n",
    "    if response.status_code == 200:\n",
    "        print(\"Response from API:\", response.json())\n",
    "    else:\n",
    "        print(\"Failed to call API:\", response.status_code, response.text)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Response from API: {'status': 'Training stopped', 'message': 'VRam GPU are released'}\n"
     ]
    }
   ],
   "source": [
    "stop_training()"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "text_moderation",
   "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.11.9"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
