diff --git a/DataWise.ipynb b/DataWise.ipynb
new file mode 100644
index 0000000000000000000000000000000000000000..96874f4f31c6b0dc210c3fda0217312513642414
--- /dev/null
+++ b/DataWise.ipynb
@@ -0,0 +1,1295 @@
+{
+  "nbformat": 4,
+  "nbformat_minor": 0,
+  "metadata": {
+    "colab": {
+      "provenance": []
+    },
+    "kernelspec": {
+      "name": "python3",
+      "display_name": "Python 3"
+    },
+    "language_info": {
+      "name": "python"
+    }
+  },
+  "cells": [
+    {
+      "cell_type": "code",
+      "source": [
+        "# Use .ipynb, .py files as applicable\n",
+        "# Please add instructions on installing dependencies and\n",
+        "# the commands to run the project (e.g., `gradio app.py`).\n",
+        "#\n",
+        "# Please include Conda environment.yaml or Python requirements.txt.\n",
+        "#\n",
+        "# Preferably, have a README.md file as well to briefly document\n",
+        "# the project overview along w/ the dependency installations and\n",
+        "# quick start commands."
+      ],
+      "metadata": {
+        "id": "syT7CBDv8Loh"
+      },
+      "execution_count": null,
+      "outputs": []
+    },
+    {
+      "cell_type": "code",
+      "source": [
+        "!pip install -q kaggle\n",
+        "!pip install langchain_core langchain_openai gradio"
+      ],
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "hXMTgTNhokMr",
+        "outputId": "763f10b7-360f-439e-e26b-0cfffec8ec90"
+      },
+      "execution_count": null,
+      "outputs": [
+        {
+          "output_type": "stream",
+          "name": "stdout",
+          "text": [
+            "Collecting langchain_core\n",
+            "  Downloading langchain_core-0.3.8-py3-none-any.whl.metadata (6.3 kB)\n",
+            "Collecting langchain_openai\n",
+            "  Downloading langchain_openai-0.2.1-py3-none-any.whl.metadata (2.6 kB)\n",
+            "Collecting gradio\n",
+            "  Downloading gradio-4.44.1-py3-none-any.whl.metadata (15 kB)\n",
+            "Requirement already satisfied: PyYAML>=5.3 in /usr/local/lib/python3.10/dist-packages (from langchain_core) (6.0.2)\n",
+            "Collecting jsonpatch<2.0,>=1.33 (from langchain_core)\n",
+            "  Downloading jsonpatch-1.33-py2.py3-none-any.whl.metadata (3.0 kB)\n",
+            "Collecting langsmith<0.2.0,>=0.1.125 (from langchain_core)\n",
+            "  Downloading langsmith-0.1.130-py3-none-any.whl.metadata (13 kB)\n",
+            "Requirement already satisfied: packaging<25,>=23.2 in /usr/local/lib/python3.10/dist-packages (from langchain_core) (24.1)\n",
+            "Requirement already satisfied: pydantic<3.0.0,>=2.5.2 in /usr/local/lib/python3.10/dist-packages (from langchain_core) (2.9.2)\n",
+            "Collecting tenacity!=8.4.0,<9.0.0,>=8.1.0 (from langchain_core)\n",
+            "  Downloading tenacity-8.5.0-py3-none-any.whl.metadata (1.2 kB)\n",
+            "Requirement already satisfied: typing-extensions>=4.7 in /usr/local/lib/python3.10/dist-packages (from langchain_core) (4.12.2)\n",
+            "Collecting openai<2.0.0,>=1.40.0 (from langchain_openai)\n",
+            "  Downloading openai-1.51.0-py3-none-any.whl.metadata (24 kB)\n",
+            "Collecting tiktoken<1,>=0.7 (from langchain_openai)\n",
+            "  Downloading tiktoken-0.7.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (6.6 kB)\n",
+            "Collecting aiofiles<24.0,>=22.0 (from gradio)\n",
+            "  Downloading aiofiles-23.2.1-py3-none-any.whl.metadata (9.7 kB)\n",
+            "Requirement already satisfied: anyio<5.0,>=3.0 in /usr/local/lib/python3.10/dist-packages (from gradio) (3.7.1)\n",
+            "Collecting fastapi<1.0 (from gradio)\n",
+            "  Downloading fastapi-0.115.0-py3-none-any.whl.metadata (27 kB)\n",
+            "Collecting ffmpy (from gradio)\n",
+            "  Downloading ffmpy-0.4.0-py3-none-any.whl.metadata (2.9 kB)\n",
+            "Collecting gradio-client==1.3.0 (from gradio)\n",
+            "  Downloading gradio_client-1.3.0-py3-none-any.whl.metadata (7.1 kB)\n",
+            "Collecting httpx>=0.24.1 (from gradio)\n",
+            "  Downloading httpx-0.27.2-py3-none-any.whl.metadata (7.1 kB)\n",
+            "Requirement already satisfied: huggingface-hub>=0.19.3 in /usr/local/lib/python3.10/dist-packages (from gradio) (0.24.7)\n",
+            "Requirement already satisfied: importlib-resources<7.0,>=1.3 in /usr/local/lib/python3.10/dist-packages (from gradio) (6.4.5)\n",
+            "Requirement already satisfied: jinja2<4.0 in /usr/local/lib/python3.10/dist-packages (from gradio) (3.1.4)\n",
+            "Requirement already satisfied: markupsafe~=2.0 in /usr/local/lib/python3.10/dist-packages (from gradio) (2.1.5)\n",
+            "Requirement already satisfied: matplotlib~=3.0 in /usr/local/lib/python3.10/dist-packages (from gradio) (3.7.1)\n",
+            "Requirement already satisfied: numpy<3.0,>=1.0 in /usr/local/lib/python3.10/dist-packages (from gradio) (1.26.4)\n",
+            "Collecting orjson~=3.0 (from gradio)\n",
+            "  Downloading orjson-3.10.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (50 kB)\n",
+            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m50.4/50.4 kB\u001b[0m \u001b[31m4.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+            "\u001b[?25hRequirement already satisfied: pandas<3.0,>=1.0 in /usr/local/lib/python3.10/dist-packages (from gradio) (2.2.2)\n",
+            "Requirement already satisfied: pillow<11.0,>=8.0 in /usr/local/lib/python3.10/dist-packages (from gradio) (10.4.0)\n",
+            "Collecting pydub (from gradio)\n",
+            "  Downloading pydub-0.25.1-py2.py3-none-any.whl.metadata (1.4 kB)\n",
+            "Collecting python-multipart>=0.0.9 (from gradio)\n",
+            "  Downloading python_multipart-0.0.12-py3-none-any.whl.metadata (1.9 kB)\n",
+            "Collecting ruff>=0.2.2 (from gradio)\n",
+            "  Downloading ruff-0.6.8-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (25 kB)\n",
+            "Collecting semantic-version~=2.0 (from gradio)\n",
+            "  Downloading semantic_version-2.10.0-py2.py3-none-any.whl.metadata (9.7 kB)\n",
+            "Collecting tomlkit==0.12.0 (from gradio)\n",
+            "  Downloading tomlkit-0.12.0-py3-none-any.whl.metadata (2.7 kB)\n",
+            "Requirement already satisfied: typer<1.0,>=0.12 in /usr/local/lib/python3.10/dist-packages (from gradio) (0.12.5)\n",
+            "Requirement already satisfied: urllib3~=2.0 in /usr/local/lib/python3.10/dist-packages (from gradio) (2.2.3)\n",
+            "Collecting uvicorn>=0.14.0 (from gradio)\n",
+            "  Downloading uvicorn-0.31.0-py3-none-any.whl.metadata (6.6 kB)\n",
+            "Requirement already satisfied: fsspec in /usr/local/lib/python3.10/dist-packages (from gradio-client==1.3.0->gradio) (2024.6.1)\n",
+            "Collecting websockets<13.0,>=10.0 (from gradio-client==1.3.0->gradio)\n",
+            "  Downloading websockets-12.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (6.6 kB)\n",
+            "Requirement already satisfied: idna>=2.8 in /usr/local/lib/python3.10/dist-packages (from anyio<5.0,>=3.0->gradio) (3.10)\n",
+            "Requirement already satisfied: sniffio>=1.1 in /usr/local/lib/python3.10/dist-packages (from anyio<5.0,>=3.0->gradio) (1.3.1)\n",
+            "Requirement already satisfied: exceptiongroup in /usr/local/lib/python3.10/dist-packages (from anyio<5.0,>=3.0->gradio) (1.2.2)\n",
+            "Collecting starlette<0.39.0,>=0.37.2 (from fastapi<1.0->gradio)\n",
+            "  Downloading starlette-0.38.6-py3-none-any.whl.metadata (6.0 kB)\n",
+            "Requirement already satisfied: certifi in /usr/local/lib/python3.10/dist-packages (from httpx>=0.24.1->gradio) (2024.8.30)\n",
+            "Collecting httpcore==1.* (from httpx>=0.24.1->gradio)\n",
+            "  Downloading httpcore-1.0.6-py3-none-any.whl.metadata (21 kB)\n",
+            "Collecting h11<0.15,>=0.13 (from httpcore==1.*->httpx>=0.24.1->gradio)\n",
+            "  Downloading h11-0.14.0-py3-none-any.whl.metadata (8.2 kB)\n",
+            "Requirement already satisfied: filelock in /usr/local/lib/python3.10/dist-packages (from huggingface-hub>=0.19.3->gradio) (3.16.1)\n",
+            "Requirement already satisfied: requests in /usr/local/lib/python3.10/dist-packages (from huggingface-hub>=0.19.3->gradio) (2.32.3)\n",
+            "Requirement already satisfied: tqdm>=4.42.1 in /usr/local/lib/python3.10/dist-packages (from huggingface-hub>=0.19.3->gradio) (4.66.5)\n",
+            "Collecting jsonpointer>=1.9 (from jsonpatch<2.0,>=1.33->langchain_core)\n",
+            "  Downloading jsonpointer-3.0.0-py2.py3-none-any.whl.metadata (2.3 kB)\n",
+            "Collecting requests-toolbelt<2.0.0,>=1.0.0 (from langsmith<0.2.0,>=0.1.125->langchain_core)\n",
+            "  Downloading requests_toolbelt-1.0.0-py2.py3-none-any.whl.metadata (14 kB)\n",
+            "Requirement already satisfied: contourpy>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib~=3.0->gradio) (1.3.0)\n",
+            "Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.10/dist-packages (from matplotlib~=3.0->gradio) (0.12.1)\n",
+            "Requirement already satisfied: fonttools>=4.22.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib~=3.0->gradio) (4.54.1)\n",
+            "Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib~=3.0->gradio) (1.4.7)\n",
+            "Requirement already satisfied: pyparsing>=2.3.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib~=3.0->gradio) (3.1.4)\n",
+            "Requirement already satisfied: python-dateutil>=2.7 in /usr/local/lib/python3.10/dist-packages (from matplotlib~=3.0->gradio) (2.8.2)\n",
+            "Requirement already satisfied: distro<2,>=1.7.0 in /usr/lib/python3/dist-packages (from openai<2.0.0,>=1.40.0->langchain_openai) (1.7.0)\n",
+            "Collecting jiter<1,>=0.4.0 (from openai<2.0.0,>=1.40.0->langchain_openai)\n",
+            "  Downloading jiter-0.5.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (3.6 kB)\n",
+            "Requirement already satisfied: pytz>=2020.1 in /usr/local/lib/python3.10/dist-packages (from pandas<3.0,>=1.0->gradio) (2024.2)\n",
+            "Requirement already satisfied: tzdata>=2022.7 in /usr/local/lib/python3.10/dist-packages (from pandas<3.0,>=1.0->gradio) (2024.2)\n",
+            "Requirement already satisfied: annotated-types>=0.6.0 in /usr/local/lib/python3.10/dist-packages (from pydantic<3.0.0,>=2.5.2->langchain_core) (0.7.0)\n",
+            "Requirement already satisfied: pydantic-core==2.23.4 in /usr/local/lib/python3.10/dist-packages (from pydantic<3.0.0,>=2.5.2->langchain_core) (2.23.4)\n",
+            "Requirement already satisfied: regex>=2022.1.18 in /usr/local/lib/python3.10/dist-packages (from tiktoken<1,>=0.7->langchain_openai) (2024.9.11)\n",
+            "Requirement already satisfied: click>=8.0.0 in /usr/local/lib/python3.10/dist-packages (from typer<1.0,>=0.12->gradio) (8.1.7)\n",
+            "Requirement already satisfied: shellingham>=1.3.0 in /usr/local/lib/python3.10/dist-packages (from typer<1.0,>=0.12->gradio) (1.5.4)\n",
+            "Requirement already satisfied: rich>=10.11.0 in /usr/local/lib/python3.10/dist-packages (from typer<1.0,>=0.12->gradio) (13.8.1)\n",
+            "Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.10/dist-packages (from python-dateutil>=2.7->matplotlib~=3.0->gradio) (1.16.0)\n",
+            "Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.10/dist-packages (from requests->huggingface-hub>=0.19.3->gradio) (3.3.2)\n",
+            "Requirement already satisfied: markdown-it-py>=2.2.0 in /usr/local/lib/python3.10/dist-packages (from rich>=10.11.0->typer<1.0,>=0.12->gradio) (3.0.0)\n",
+            "Requirement already satisfied: pygments<3.0.0,>=2.13.0 in /usr/local/lib/python3.10/dist-packages (from rich>=10.11.0->typer<1.0,>=0.12->gradio) (2.18.0)\n",
+            "Requirement already satisfied: mdurl~=0.1 in /usr/local/lib/python3.10/dist-packages (from markdown-it-py>=2.2.0->rich>=10.11.0->typer<1.0,>=0.12->gradio) (0.1.2)\n",
+            "Downloading langchain_core-0.3.8-py3-none-any.whl (400 kB)\n",
+            "\u001b[2K   \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m400.9/400.9 kB\u001b[0m \u001b[31m9.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+            "\u001b[?25hDownloading langchain_openai-0.2.1-py3-none-any.whl (49 kB)\n",
+            "\u001b[2K   \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m49.6/49.6 kB\u001b[0m \u001b[31m5.1 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+            "\u001b[?25hDownloading gradio-4.44.1-py3-none-any.whl (18.1 MB)\n",
+            "\u001b[2K   \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m18.1/18.1 MB\u001b[0m \u001b[31m60.9 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+            "\u001b[?25hDownloading gradio_client-1.3.0-py3-none-any.whl (318 kB)\n",
+            "\u001b[2K   \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m318.7/318.7 kB\u001b[0m \u001b[31m30.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+            "\u001b[?25hDownloading tomlkit-0.12.0-py3-none-any.whl (37 kB)\n",
+            "Downloading aiofiles-23.2.1-py3-none-any.whl (15 kB)\n",
+            "Downloading fastapi-0.115.0-py3-none-any.whl (94 kB)\n",
+            "\u001b[2K   \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m94.6/94.6 kB\u001b[0m \u001b[31m11.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+            "\u001b[?25hDownloading httpx-0.27.2-py3-none-any.whl (76 kB)\n",
+            "\u001b[2K   \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m76.4/76.4 kB\u001b[0m \u001b[31m8.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+            "\u001b[?25hDownloading httpcore-1.0.6-py3-none-any.whl (78 kB)\n",
+            "\u001b[2K   \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m78.0/78.0 kB\u001b[0m \u001b[31m7.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+            "\u001b[?25hDownloading jsonpatch-1.33-py2.py3-none-any.whl (12 kB)\n",
+            "Downloading langsmith-0.1.130-py3-none-any.whl (294 kB)\n",
+            "\u001b[2K   \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m294.6/294.6 kB\u001b[0m \u001b[31m27.9 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+            "\u001b[?25hDownloading openai-1.51.0-py3-none-any.whl (383 kB)\n",
+            "\u001b[2K   \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m383.5/383.5 kB\u001b[0m \u001b[31m33.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+            "\u001b[?25hDownloading orjson-3.10.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (141 kB)\n",
+            "\u001b[2K   \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m141.9/141.9 kB\u001b[0m \u001b[31m14.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+            "\u001b[?25hDownloading python_multipart-0.0.12-py3-none-any.whl (23 kB)\n",
+            "Downloading ruff-0.6.8-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (10.9 MB)\n",
+            "\u001b[2K   \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m10.9/10.9 MB\u001b[0m \u001b[31m101.1 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+            "\u001b[?25hDownloading semantic_version-2.10.0-py2.py3-none-any.whl (15 kB)\n",
+            "Downloading tenacity-8.5.0-py3-none-any.whl (28 kB)\n",
+            "Downloading tiktoken-0.7.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.1 MB)\n",
+            "\u001b[2K   \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m1.1/1.1 MB\u001b[0m \u001b[31m57.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+            "\u001b[?25hDownloading uvicorn-0.31.0-py3-none-any.whl (63 kB)\n",
+            "\u001b[2K   \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m63.7/63.7 kB\u001b[0m \u001b[31m7.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+            "\u001b[?25hDownloading ffmpy-0.4.0-py3-none-any.whl (5.8 kB)\n",
+            "Downloading pydub-0.25.1-py2.py3-none-any.whl (32 kB)\n",
+            "Downloading h11-0.14.0-py3-none-any.whl (58 kB)\n",
+            "\u001b[2K   \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m58.3/58.3 kB\u001b[0m \u001b[31m6.1 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+            "\u001b[?25hDownloading jiter-0.5.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (318 kB)\n",
+            "\u001b[2K   \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m318.9/318.9 kB\u001b[0m \u001b[31m30.9 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+            "\u001b[?25hDownloading jsonpointer-3.0.0-py2.py3-none-any.whl (7.6 kB)\n",
+            "Downloading requests_toolbelt-1.0.0-py2.py3-none-any.whl (54 kB)\n",
+            "\u001b[2K   \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m54.5/54.5 kB\u001b[0m \u001b[31m6.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+            "\u001b[?25hDownloading starlette-0.38.6-py3-none-any.whl (71 kB)\n",
+            "\u001b[2K   \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m71.5/71.5 kB\u001b[0m \u001b[31m7.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+            "\u001b[?25hDownloading websockets-12.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (130 kB)\n",
+            "\u001b[2K   \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m130.2/130.2 kB\u001b[0m \u001b[31m13.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+            "\u001b[?25hInstalling collected packages: pydub, websockets, tomlkit, tenacity, semantic-version, ruff, python-multipart, orjson, jsonpointer, jiter, h11, ffmpy, aiofiles, uvicorn, tiktoken, starlette, requests-toolbelt, jsonpatch, httpcore, httpx, fastapi, openai, langsmith, gradio-client, langchain_core, gradio, langchain_openai\n",
+            "  Attempting uninstall: tenacity\n",
+            "    Found existing installation: tenacity 9.0.0\n",
+            "    Uninstalling tenacity-9.0.0:\n",
+            "      Successfully uninstalled tenacity-9.0.0\n",
+            "Successfully installed aiofiles-23.2.1 fastapi-0.115.0 ffmpy-0.4.0 gradio-4.44.1 gradio-client-1.3.0 h11-0.14.0 httpcore-1.0.6 httpx-0.27.2 jiter-0.5.0 jsonpatch-1.33 jsonpointer-3.0.0 langchain_core-0.3.8 langchain_openai-0.2.1 langsmith-0.1.130 openai-1.51.0 orjson-3.10.7 pydub-0.25.1 python-multipart-0.0.12 requests-toolbelt-1.0.0 ruff-0.6.8 semantic-version-2.10.0 starlette-0.38.6 tenacity-8.5.0 tiktoken-0.7.0 tomlkit-0.12.0 uvicorn-0.31.0 websockets-12.0\n"
+          ]
+        }
+      ]
+    },
+    {
+      "cell_type": "code",
+      "source": [
+        "!mkdir ~/.kaggle"
+      ],
+      "metadata": {
+        "id": "uf8A8DnvpHB3"
+      },
+      "execution_count": null,
+      "outputs": []
+    },
+    {
+      "cell_type": "code",
+      "source": [
+        "!cp kaggle.json ~/.kaggle/\n",
+        "!chmod 600 ~/.kaggle/kaggle.json"
+      ],
+      "metadata": {
+        "id": "HydjVIaso2oa"
+      },
+      "execution_count": null,
+      "outputs": []
+    },
+    {
+      "cell_type": "code",
+      "source": [
+        "# !kaggle datasets files kkhandekar/a-to-z-flowers-features-images"
+      ],
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "4ewlj1FuqYGx",
+        "outputId": "39c6dbf8-761f-451f-a658-69f542f221ac"
+      },
+      "execution_count": null,
+      "outputs": [
+        {
+          "output_type": "stream",
+          "name": "stdout",
+          "text": [
+            "Next Page Token = CfDJ8KWOACvMaNFPiIJ818QpJK0FHOFh2VacqfE2xCIj3hVX_ZorwrYCHsjx2sj7jUTZ2F8P2YSL3xfeD594CnyyMHk\n",
+            "name                                          size  creationDate         \n",
+            "-------------------------------------------  -----  -------------------  \n",
+            "FlowerDatabase.csv                             2MB  2021-08-31 04:18:17  \n",
+            "FlowersJPG/content/Flowers/Achillea.jpg       67KB  2021-08-31 04:18:18  \n",
+            "FlowersJPG/content/Flowers/Aconitum.jpg       52KB  2021-08-31 04:18:17  \n",
+            "FlowersJPG/content/Flowers/Agapanthus.jpg     90KB  2021-08-31 04:18:17  \n",
+            "FlowersJPG/content/Flowers/Ageratum.jpg       56KB  2021-08-31 04:18:17  \n",
+            "FlowersJPG/content/Flowers/Ajuga.jpg          30KB  2021-08-31 04:18:17  \n",
+            "FlowersJPG/content/Flowers/Alcea.jpg          82KB  2021-08-31 04:18:17  \n",
+            "FlowersJPG/content/Flowers/Allium.jpg        122KB  2021-08-31 04:18:17  \n",
+            "FlowersJPG/content/Flowers/Alstroemeria.jpg   93KB  2021-08-31 04:18:17  \n",
+            "FlowersJPG/content/Flowers/Amaryllis.jpg      68KB  2021-08-31 04:18:17  \n",
+            "FlowersJPG/content/Flowers/Amsonia.jpg        64KB  2021-08-31 04:18:17  \n",
+            "FlowersJPG/content/Flowers/Anemone.jpg        53KB  2021-08-31 04:18:17  \n",
+            "FlowersJPG/content/Flowers/Anthurium.jpg      81KB  2021-08-31 04:18:17  \n",
+            "FlowersJPG/content/Flowers/Antirrhinum.jpg    36KB  2021-08-31 04:18:18  \n",
+            "FlowersJPG/content/Flowers/Aquilegia.jpg      47KB  2021-08-31 04:18:18  \n",
+            "FlowersJPG/content/Flowers/Asclepias.jpg      73KB  2021-08-31 04:18:18  \n",
+            "FlowersJPG/content/Flowers/Aster.jpg          39KB  2021-08-31 04:18:18  \n",
+            "FlowersJPG/content/Flowers/Astilbe.jpg       100KB  2021-08-31 04:18:17  \n",
+            "FlowersJPG/content/Flowers/Astrantia.jpg      48KB  2021-08-31 04:18:17  \n",
+            "FlowersJPG/content/Flowers/Banksia.jpg        84KB  2021-08-31 04:18:18  \n"
+          ]
+        }
+      ]
+    },
+    {
+      "cell_type": "code",
+      "source": [
+        "!kaggle datasets download kkhandekar/a-to-z-flowers-features-images -f FlowerDatabase.csv"
+      ],
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "MsX5s_Hdqmlb",
+        "outputId": "65fcbdf9-4991-4794-d288-4b05e5b66075"
+      },
+      "execution_count": null,
+      "outputs": [
+        {
+          "output_type": "stream",
+          "name": "stdout",
+          "text": [
+            "Dataset URL: https://www.kaggle.com/datasets/kkhandekar/a-to-z-flowers-features-images\n",
+            "License(s): CC0-1.0\n",
+            "Downloading FlowerDatabase.csv.zip to /content\n",
+            "  0% 0.00/112k [00:00<?, ?B/s]\n",
+            "100% 112k/112k [00:00<00:00, 87.5MB/s]\n"
+          ]
+        }
+      ]
+    },
+    {
+      "cell_type": "code",
+      "source": [
+        "!unzip FlowerDatabase.csv.zip"
+      ],
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "qS7lgRGcrMjt",
+        "outputId": "bf492f0b-79c4-4f71-e4ab-bbd31760e4f6"
+      },
+      "execution_count": null,
+      "outputs": [
+        {
+          "output_type": "stream",
+          "name": "stdout",
+          "text": [
+            "Archive:  FlowerDatabase.csv.zip\n",
+            "  inflating: FlowerDatabase.csv      \n"
+          ]
+        }
+      ]
+    },
+    {
+      "cell_type": "code",
+      "source": [
+        "!rm -rf FlowerDatabase.csv.zip"
+      ],
+      "metadata": {
+        "id": "tgZ38ay6rNd0"
+      },
+      "execution_count": null,
+      "outputs": []
+    },
+    {
+      "cell_type": "code",
+      "source": [
+        "!python --version"
+      ],
+      "metadata": {
+        "id": "7zZ6WEtbBOfz",
+        "outputId": "530bc7d2-cb29-485a-ba9a-bbbafb71e9ad",
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        }
+      },
+      "execution_count": null,
+      "outputs": [
+        {
+          "output_type": "stream",
+          "name": "stdout",
+          "text": [
+            "Python 3.10.12\n"
+          ]
+        }
+      ]
+    },
+    {
+      "cell_type": "code",
+      "source": [
+        "import pandas as pd\n",
+        "\n",
+        "df = pd.read_csv(\"FlowerDatabase.csv\")\n",
+        "df.head(3)"
+      ],
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/",
+          "height": 493
+        },
+        "id": "__H0Mn_QrFsM",
+        "outputId": "3c52a8aa-e58e-4149-a29c-fdf311d3986a"
+      },
+      "execution_count": null,
+      "outputs": [
+        {
+          "output_type": "execute_result",
+          "data": {
+            "text/plain": [
+              "                                          Name  \\\n",
+              "0                            Achillea (Yarrow)   \n",
+              "1     Aconitum (Aconite; Monkshood; Wolfsbane)   \n",
+              "2  Agapanthus (African Lily; Lily of the Nile)   \n",
+              "\n",
+              "                                                Desc          PlantType  \\\n",
+              "0  <p>Achillea, commonly known as Yarrow, is a ge...         Perennials   \n",
+              "1  <p>Aconitum, also known as Aconite, is a genus...         Perennials   \n",
+              "2  <p>Agapanthus is a genus composed of <strong>a...  Bulbs, Perennials   \n",
+              "\n",
+              "                                               Color HardinessZones  \\\n",
+              "0  Yarrow comes in a wide range of colors includi...            3-9   \n",
+              "1  The flowers come in shades of blue, purple, wh...            3-8   \n",
+              "2  These flowers are usually blue, white and purple.           6-11   \n",
+              "\n",
+              "         BloomsIn                                             Height  \\\n",
+              "0  Spring, Summer  This plant usually grows between 30 and 90 cm ...   \n",
+              "1  Autumn, Summer  Aconite is a tall plant that grows from 30 cm ...   \n",
+              "2  Autumn, Summer  Agapanthus range in height from just 20 cm (8 ...   \n",
+              "\n",
+              "                                           SoilNeeds               SunNeeds  \\\n",
+              "0  Achillea will grow best in well drained soil, ...               Full sun   \n",
+              "1  Aconite will perform best in rich, moist and w...  Full sun, Partial sun   \n",
+              "2  Agapanthus grows best in fertile, moist and we...  Full sun, Partial sun   \n",
+              "\n",
+              "  WaterNeeds Maintenance                                     RelatedFlowers  \n",
+              "0        low         low  ['ageratum', 'asters', 'bellis', 'cosmos', 'da...  \n",
+              "1    avarage      medium  ['ageratum', 'asters', 'bellis', 'cosmos', 'da...  \n",
+              "2    avarage         low  ['ageratum', 'asters', 'bellis', 'cosmos', 'da...  "
+            ],
+            "text/html": [
+              "\n",
+              "  <div id=\"df-190bf073-5a08-44f4-9291-f9f1b1fb2878\" class=\"colab-df-container\">\n",
+              "    <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>Name</th>\n",
+              "      <th>Desc</th>\n",
+              "      <th>PlantType</th>\n",
+              "      <th>Color</th>\n",
+              "      <th>HardinessZones</th>\n",
+              "      <th>BloomsIn</th>\n",
+              "      <th>Height</th>\n",
+              "      <th>SoilNeeds</th>\n",
+              "      <th>SunNeeds</th>\n",
+              "      <th>WaterNeeds</th>\n",
+              "      <th>Maintenance</th>\n",
+              "      <th>RelatedFlowers</th>\n",
+              "    </tr>\n",
+              "  </thead>\n",
+              "  <tbody>\n",
+              "    <tr>\n",
+              "      <th>0</th>\n",
+              "      <td>Achillea (Yarrow)</td>\n",
+              "      <td>&lt;p&gt;Achillea, commonly known as Yarrow, is a ge...</td>\n",
+              "      <td>Perennials</td>\n",
+              "      <td>Yarrow comes in a wide range of colors includi...</td>\n",
+              "      <td>3-9</td>\n",
+              "      <td>Spring, Summer</td>\n",
+              "      <td>This plant usually grows between 30 and 90 cm ...</td>\n",
+              "      <td>Achillea will grow best in well drained soil, ...</td>\n",
+              "      <td>Full sun</td>\n",
+              "      <td>low</td>\n",
+              "      <td>low</td>\n",
+              "      <td>['ageratum', 'asters', 'bellis', 'cosmos', 'da...</td>\n",
+              "    </tr>\n",
+              "    <tr>\n",
+              "      <th>1</th>\n",
+              "      <td>Aconitum (Aconite; Monkshood; Wolfsbane)</td>\n",
+              "      <td>&lt;p&gt;Aconitum, also known as Aconite, is a genus...</td>\n",
+              "      <td>Perennials</td>\n",
+              "      <td>The flowers come in shades of blue, purple, wh...</td>\n",
+              "      <td>3-8</td>\n",
+              "      <td>Autumn, Summer</td>\n",
+              "      <td>Aconite is a tall plant that grows from 30 cm ...</td>\n",
+              "      <td>Aconite will perform best in rich, moist and w...</td>\n",
+              "      <td>Full sun, Partial sun</td>\n",
+              "      <td>avarage</td>\n",
+              "      <td>medium</td>\n",
+              "      <td>['ageratum', 'asters', 'bellis', 'cosmos', 'da...</td>\n",
+              "    </tr>\n",
+              "    <tr>\n",
+              "      <th>2</th>\n",
+              "      <td>Agapanthus (African Lily; Lily of the Nile)</td>\n",
+              "      <td>&lt;p&gt;Agapanthus is a genus composed of &lt;strong&gt;a...</td>\n",
+              "      <td>Bulbs, Perennials</td>\n",
+              "      <td>These flowers are usually blue, white and purple.</td>\n",
+              "      <td>6-11</td>\n",
+              "      <td>Autumn, Summer</td>\n",
+              "      <td>Agapanthus range in height from just 20 cm (8 ...</td>\n",
+              "      <td>Agapanthus grows best in fertile, moist and we...</td>\n",
+              "      <td>Full sun, Partial sun</td>\n",
+              "      <td>avarage</td>\n",
+              "      <td>low</td>\n",
+              "      <td>['ageratum', 'asters', 'bellis', 'cosmos', 'da...</td>\n",
+              "    </tr>\n",
+              "  </tbody>\n",
+              "</table>\n",
+              "</div>\n",
+              "    <div class=\"colab-df-buttons\">\n",
+              "\n",
+              "  <div class=\"colab-df-container\">\n",
+              "    <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-190bf073-5a08-44f4-9291-f9f1b1fb2878')\"\n",
+              "            title=\"Convert this dataframe to an interactive table.\"\n",
+              "            style=\"display:none;\">\n",
+              "\n",
+              "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
+              "    <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
+              "  </svg>\n",
+              "    </button>\n",
+              "\n",
+              "  <style>\n",
+              "    .colab-df-container {\n",
+              "      display:flex;\n",
+              "      gap: 12px;\n",
+              "    }\n",
+              "\n",
+              "    .colab-df-convert {\n",
+              "      background-color: #E8F0FE;\n",
+              "      border: none;\n",
+              "      border-radius: 50%;\n",
+              "      cursor: pointer;\n",
+              "      display: none;\n",
+              "      fill: #1967D2;\n",
+              "      height: 32px;\n",
+              "      padding: 0 0 0 0;\n",
+              "      width: 32px;\n",
+              "    }\n",
+              "\n",
+              "    .colab-df-convert:hover {\n",
+              "      background-color: #E2EBFA;\n",
+              "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
+              "      fill: #174EA6;\n",
+              "    }\n",
+              "\n",
+              "    .colab-df-buttons div {\n",
+              "      margin-bottom: 4px;\n",
+              "    }\n",
+              "\n",
+              "    [theme=dark] .colab-df-convert {\n",
+              "      background-color: #3B4455;\n",
+              "      fill: #D2E3FC;\n",
+              "    }\n",
+              "\n",
+              "    [theme=dark] .colab-df-convert:hover {\n",
+              "      background-color: #434B5C;\n",
+              "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
+              "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
+              "      fill: #FFFFFF;\n",
+              "    }\n",
+              "  </style>\n",
+              "\n",
+              "    <script>\n",
+              "      const buttonEl =\n",
+              "        document.querySelector('#df-190bf073-5a08-44f4-9291-f9f1b1fb2878 button.colab-df-convert');\n",
+              "      buttonEl.style.display =\n",
+              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
+              "\n",
+              "      async function convertToInteractive(key) {\n",
+              "        const element = document.querySelector('#df-190bf073-5a08-44f4-9291-f9f1b1fb2878');\n",
+              "        const dataTable =\n",
+              "          await google.colab.kernel.invokeFunction('convertToInteractive',\n",
+              "                                                    [key], {});\n",
+              "        if (!dataTable) return;\n",
+              "\n",
+              "        const docLinkHtml = 'Like what you see? Visit the ' +\n",
+              "          '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
+              "          + ' to learn more about interactive tables.';\n",
+              "        element.innerHTML = '';\n",
+              "        dataTable['output_type'] = 'display_data';\n",
+              "        await google.colab.output.renderOutput(dataTable, element);\n",
+              "        const docLink = document.createElement('div');\n",
+              "        docLink.innerHTML = docLinkHtml;\n",
+              "        element.appendChild(docLink);\n",
+              "      }\n",
+              "    </script>\n",
+              "  </div>\n",
+              "\n",
+              "\n",
+              "<div id=\"df-fb4b029c-3b6d-4cff-9653-4a0f0d680370\">\n",
+              "  <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-fb4b029c-3b6d-4cff-9653-4a0f0d680370')\"\n",
+              "            title=\"Suggest charts\"\n",
+              "            style=\"display:none;\">\n",
+              "\n",
+              "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
+              "     width=\"24px\">\n",
+              "    <g>\n",
+              "        <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
+              "    </g>\n",
+              "</svg>\n",
+              "  </button>\n",
+              "\n",
+              "<style>\n",
+              "  .colab-df-quickchart {\n",
+              "      --bg-color: #E8F0FE;\n",
+              "      --fill-color: #1967D2;\n",
+              "      --hover-bg-color: #E2EBFA;\n",
+              "      --hover-fill-color: #174EA6;\n",
+              "      --disabled-fill-color: #AAA;\n",
+              "      --disabled-bg-color: #DDD;\n",
+              "  }\n",
+              "\n",
+              "  [theme=dark] .colab-df-quickchart {\n",
+              "      --bg-color: #3B4455;\n",
+              "      --fill-color: #D2E3FC;\n",
+              "      --hover-bg-color: #434B5C;\n",
+              "      --hover-fill-color: #FFFFFF;\n",
+              "      --disabled-bg-color: #3B4455;\n",
+              "      --disabled-fill-color: #666;\n",
+              "  }\n",
+              "\n",
+              "  .colab-df-quickchart {\n",
+              "    background-color: var(--bg-color);\n",
+              "    border: none;\n",
+              "    border-radius: 50%;\n",
+              "    cursor: pointer;\n",
+              "    display: none;\n",
+              "    fill: var(--fill-color);\n",
+              "    height: 32px;\n",
+              "    padding: 0;\n",
+              "    width: 32px;\n",
+              "  }\n",
+              "\n",
+              "  .colab-df-quickchart:hover {\n",
+              "    background-color: var(--hover-bg-color);\n",
+              "    box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
+              "    fill: var(--button-hover-fill-color);\n",
+              "  }\n",
+              "\n",
+              "  .colab-df-quickchart-complete:disabled,\n",
+              "  .colab-df-quickchart-complete:disabled:hover {\n",
+              "    background-color: var(--disabled-bg-color);\n",
+              "    fill: var(--disabled-fill-color);\n",
+              "    box-shadow: none;\n",
+              "  }\n",
+              "\n",
+              "  .colab-df-spinner {\n",
+              "    border: 2px solid var(--fill-color);\n",
+              "    border-color: transparent;\n",
+              "    border-bottom-color: var(--fill-color);\n",
+              "    animation:\n",
+              "      spin 1s steps(1) infinite;\n",
+              "  }\n",
+              "\n",
+              "  @keyframes spin {\n",
+              "    0% {\n",
+              "      border-color: transparent;\n",
+              "      border-bottom-color: var(--fill-color);\n",
+              "      border-left-color: var(--fill-color);\n",
+              "    }\n",
+              "    20% {\n",
+              "      border-color: transparent;\n",
+              "      border-left-color: var(--fill-color);\n",
+              "      border-top-color: var(--fill-color);\n",
+              "    }\n",
+              "    30% {\n",
+              "      border-color: transparent;\n",
+              "      border-left-color: var(--fill-color);\n",
+              "      border-top-color: var(--fill-color);\n",
+              "      border-right-color: var(--fill-color);\n",
+              "    }\n",
+              "    40% {\n",
+              "      border-color: transparent;\n",
+              "      border-right-color: var(--fill-color);\n",
+              "      border-top-color: var(--fill-color);\n",
+              "    }\n",
+              "    60% {\n",
+              "      border-color: transparent;\n",
+              "      border-right-color: var(--fill-color);\n",
+              "    }\n",
+              "    80% {\n",
+              "      border-color: transparent;\n",
+              "      border-right-color: var(--fill-color);\n",
+              "      border-bottom-color: var(--fill-color);\n",
+              "    }\n",
+              "    90% {\n",
+              "      border-color: transparent;\n",
+              "      border-bottom-color: var(--fill-color);\n",
+              "    }\n",
+              "  }\n",
+              "</style>\n",
+              "\n",
+              "  <script>\n",
+              "    async function quickchart(key) {\n",
+              "      const quickchartButtonEl =\n",
+              "        document.querySelector('#' + key + ' button');\n",
+              "      quickchartButtonEl.disabled = true;  // To prevent multiple clicks.\n",
+              "      quickchartButtonEl.classList.add('colab-df-spinner');\n",
+              "      try {\n",
+              "        const charts = await google.colab.kernel.invokeFunction(\n",
+              "            'suggestCharts', [key], {});\n",
+              "      } catch (error) {\n",
+              "        console.error('Error during call to suggestCharts:', error);\n",
+              "      }\n",
+              "      quickchartButtonEl.classList.remove('colab-df-spinner');\n",
+              "      quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
+              "    }\n",
+              "    (() => {\n",
+              "      let quickchartButtonEl =\n",
+              "        document.querySelector('#df-fb4b029c-3b6d-4cff-9653-4a0f0d680370 button');\n",
+              "      quickchartButtonEl.style.display =\n",
+              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
+              "    })();\n",
+              "  </script>\n",
+              "</div>\n",
+              "\n",
+              "    </div>\n",
+              "  </div>\n"
+            ],
+            "application/vnd.google.colaboratory.intrinsic+json": {
+              "type": "dataframe",
+              "variable_name": "df",
+              "summary": "{\n  \"name\": \"df\",\n  \"rows\": 223,\n  \"fields\": [\n    {\n      \"column\": \"Name\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 223,\n        \"samples\": [\n          \"Amsonia (Blue Star)\",\n          \"Geranium (Cranesbills)\",\n          \"Kerria (Japanese kerria; Japanese rose)\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Desc\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 223,\n        \"samples\": [\n          \"<p>Amsonia is a genus of <strong>about 20 species</strong> of perennials in the <strong>family Apocynaceae</strong>, mainly native to North America.<br/>\\nAmsonia has star-shaped flowers and multiple leafy stems growing from a semi-woody rootstock. The flowers are tubular at the base, with five sharply pointed petals. Amsonia can be used as a single specimen plant or in mass plantings. These plants look handsome in a perennial garden bed, as a border plant or in a cottage garden. They are also beneficial in attracting bees and hummingbirds to your garden. Not only are they easy to grow, but these plants are easy to care for as well.</p>\",\n          \"<p>Geranium, also known as Cranesbills, is a genus of<strong> more than 400 species</strong> of flowering plants that range in size, shape and color.\\u00a0Geranium belongs to the\\u00a0<strong>Geraniaceae family</strong> and is\\u00a0found widely\\u00a0throughout the temperate regions of the world or in high tropical areas.<br/>\\nMost of these species have fanciful, aromatic foliage and saucer-shaped, radially symmetric flowers with five separate petals. These eye-catching plants are one of the most popular plants today\\u00a0widely used in beds, borders and containers. They are easy to grow and will typically bloom from spring to autumn.</p>\",\n          \"<p>Kerria is a genus of <strong>one species \\u2013\\u00a0Kerria japonica</strong>, in the <strong>family Rosaceae</strong>, found in the East Asia.<br/>\\nKerria japonica is a spring-flowering deciduous shrub that produces 5-petaled, bright yellow flowers and sharply toothed leaves. Although the primary bloom period is spring, it still blooms sporadically\\u00a0throughout the summer, creating\\u00a0a colorful show.</p>\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"PlantType\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 32,\n        \"samples\": [\n          \"Climbers\",\n          \"Annuals, Perennials, Shrubs\",\n          \"Herbs, Perennials, Shrubs\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Color\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 221,\n        \"samples\": [\n          \"The flowers come in shades of red, pink, orange, white and yellow.\",\n          \"The flowers are blue, white and even yellow and pink.\",\n          \"Helenium flowers come in shades of yellow, orange, red and brown.\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"HardinessZones\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 32,\n        \"samples\": [\n          \"13\",\n          \"7-11\",\n          \"8-12\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"BloomsIn\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 12,\n        \"samples\": [\n          \"Spring, Winter\",\n          \"Autumn, Winter\",\n          \"Spring, Summer\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Height\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 221,\n        \"samples\": [\n          \"Lycoris grows up to 60 cm (2 ft) in height.\",\n          \"Nigella grows between 20 cm (8 inches) and 90 cm (3 ft) in height.\",\n          \"Although there are some dwarf species that grow 30-60 cm (1-2 ft) tall, Sunflowers are usually tall plants which can grow up to 3 metres (10 ft) in height.\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"SoilNeeds\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 223,\n        \"samples\": [\n          \"Amsonia prefers rich, moist and well-drained soil. The ideal soil pH is between 6.0 and 7.0.\",\n          \"Geranium will grow in almost any kind of soil. The ideal soil pH should be mildly acidic.\",\n          \"Kerria japonica grows best in moist, well drained and slightly acidic soil.\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"SunNeeds\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 5,\n        \"samples\": [\n          \"Full sun, Partial sun\",\n          \"Full sun, Partial sun, Shade\",\n          \"Partial sun, Shade\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"WaterNeeds\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 2,\n        \"samples\": [\n          \"avarage\",\n          \"low\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Maintenance\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 3,\n        \"samples\": [\n          \"low\",\n          \"medium\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"RelatedFlowers\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 1,\n        \"samples\": [\n          \"['ageratum', 'asters', 'bellis', 'cosmos', 'dahlia', 'echinops', 'felicia', 'gerbera', 'anemone', 'aquilegia', 'clematis', 'delphinium', 'eranthis', 'helleborus', 'nigella', 'ranunculus', 'allium', 'amaryllis', 'galanthus', 'hippeastrum', 'leucojum', 'lycoris', 'narcissus', 'nerine', 'achillea', 'asters', 'bellis', 'cosmos', 'dahlia', 'echinops', 'felicia', 'gerbera', 'clerodendrum', 'hyssopus', 'lavendula', 'monarda', 'nepeta', 'perovskia', 'salvia', 'hibiscus', 'malva', 'agapanthus', 'amaryllis', 'galanthus', 'hippeastrum', 'leucojum', 'lycoris', 'narcissus', 'nerine', 'agapanthus', 'allium', 'galanthus', 'hippeastrum', 'leucojum', 'lycoris', 'narcissus', 'nerine', 'asclepias', 'hoya', 'mandevilla', 'nerium', 'plumeria', 'vinca', 'aconitum', 'aquilegia', 'clematis', 'delphinium', 'eranthis', 'helleborus', 'nigella', 'ranunculus', 'zantedeschia', 'aconitum', 'anemone', 'clematis', 'delphinium', 'eranthis', 'helleborus', 'nigella', 'ranunculus', 'amsonia', 'hoya', 'mandevilla', 'nerium', 'plumeria', 'vinca', 'achillea', 'ageratum', 'bellis', 'cosmos', 'dahlia', 'echinops', 'felicia', 'gerbera', 'bergenia', 'saxifraga', 'eryngium', 'grevillea', 'protea', 'lathyrus', 'lupinus', 'mimosa', 'ulex', 'wisterias', 'achillea', 'ageratum', 'asters', 'cosmos', 'dahlia', 'echinops', 'felicia', 'gerbera', 'astilbe', 'saxifraga', 'myosotis', 'nemophila', 'phacelia', 'pulmonaria', 'gardenia', 'ixora', 'rondeletia', 'datura', 'petunias', 'diascia', 'nemesia', 'verbascum', 'chrysanthemum', 'coreopsis', 'gaillardia', 'gazania', 'gerbera', 'ursinia', 'xanthisma', 'xerochrysum', 'kalmia', 'rhododendron', 'jasione', 'lobelia', 'platycodon', 'gomphrena', 'achillea', 'ageratum', 'asters', 'bellis', 'coreopsis', 'chrysanthemum', 'cosmos', 'dahlia', 'achillea', 'ageratum', 'asters', 'bellis', 'cosmos', 'dahlia', 'echinops', 'felicia', 'fuchsia', 'oenothera', 'lewisia', 'aconitum', 'anemone', 'aquilegia', 'delphinium', 'eranthis', 'helleborus', 'nigella', 'ranunculus', 'ajuga', 'hyssopus', 'lavendula', 'monarda', 'nepeta', 'perovskia', 'salvia', 'hosta', 'hyacinthus', 'muscari', 'ornithogalum', 'polygonatum', 'scilla', 'yucca', 'achillea', 'ageratum', 'asters', 'bellis', 'chrysanthemum', 'cosmos', 'dahlia', 'echinops', 'achillea', 'ageratum', 'asters', 'bellis', 'dahlia', 'echinops', 'felicia', 'gerbera', 'crocus', 'dietes', 'freesia', 'gladiolus', 'iris', 'tigridia', 'watsonia', 'crocosmia', 'dietes', 'freesia', 'gladiolus', 'iris', 'tigridia', 'watsonia', 'primula', 'dracula', 'zygopetalum', 'achillea', 'ageratum', 'asters', 'bellis', 'cosmos', 'echinops', 'felicia', 'gerbera', 'brugmansia', 'petunias', 'aconitum', 'anemone', 'aquilegia', 'clematis', 'eranthis', 'helleborus', 'nigella', 'ranunculus', 'hydrangea', 'gypsophila', 'buddleia', 'nemesia', 'verbascum', 'eschscholzia', 'papaver', 'crocosmia', 'crocus', 'freesia', 'gladiolus', 'iris', 'tigridia', 'watsonia', 'penstemon', 'veronica', 'veronicastrum', 'cymbidium', 'zygopetalum', 'geum', 'kerria', 'potentilla', 'prunus', 'rosa', 'spiraea', 'kalanchoe', 'sedum', 'achillea', 'ageratum', 'asters', 'bellis', 'coreopsis', 'chrysanthemum', 'cosmos', 'dahlia', 'achillea', 'ageratum', 'asters', 'bellis', 'cosmos', 'dahlia', 'felicia', 'gerbera', 'achillea', 'ageratum', 'echinops', 'liatris', 'tanacetum', 'taraxacum', 'xerochrysum', 'obregonia', 'opuntia', 'aconitum', 'anemone', 'aquilegia', 'clematis', 'delphinium', 'helleborus', 'nigella', 'ranunculus', 'kniphofia', 'astrantia', 'iberis', 'fritillaria', 'lilium', 'tricyrtis', 'tulips', 'dicentra', 'papaver', 'echeveria', 'kalanchoe', 'obregonia', 'opuntia', 'quesnelia', 'sedum', 'yucca', 'gentiana', 'achillea', 'ageratum', 'asters', 'bellis', 'cosmos', 'dahlia', 'echinops', 'gerbera', 'jasminum', 'syringa', 'crocosmia', 'crocus', 'dietes', 'gladiolus', 'iris', 'tigridia', 'watsonia', 'erythronium', 'lilium', 'tricyrtis', 'tulips', 'clarkia', 'oenothera', 'achillea', 'ageratum', 'asters', 'bellis', 'centaurea', 'coreopsis', 'chrysanthemum', 'cosmos', 'agapanthus', 'allium', 'amaryllis', 'hippeastrum', 'leucojum', 'lycoris', 'narcissus', 'nerine', 'bouvardia', 'ixora', 'rondeletia', 'achillea', 'ageratum', 'asters', 'bellis', 'coreopsis', 'chrysanthemum', 'cosmos', 'dahlia', 'eustoma', 'pelargonium', 'achillea', 'ageratum', 'asters', 'bellis', 'cosmos', 'dahlia', 'echinops', 'felicia', 'dryas', 'kerria', 'potentilla', 'prunus', 'rosa', 'spiraea', 'crocosmia', 'crocus', 'dietes', 'freesia', 'iris', 'tigridia', 'watsonia', 'sandersonia', 'celosia', 'banksia', 'protea', 'dianthus', 'achillea', 'ageratum', 'asters', 'bellis', 'centaurea', 'coreopsis', 'chrysanthemum', 'cosmos', 'achillea', 'ageratum', 'asters', 'bellis', 'cosmos', 'dahlia', 'echinops', 'felicia', 'aconitum', 'anemone', 'aquilegia', 'clematis', 'delphinium', 'eranthis', 'nigella', 'ranunculus', 'alcea', 'malva', 'agapanthus', 'allium', 'amaryllis', 'galanthus', 'leucojum', 'lycoris', 'narcissus', 'nerine', 'convallaria', 'hyacinthus', 'muscari', 'ornithogalum', 'polygonatum', 'scilla', 'yucca', 'amsonia', 'asclepias', 'mandevilla', 'nerium', 'plumeria', 'vinca', 'convallaria', 'hosta', 'muscari', 'ornithogalum', 'polygonatum', 'scilla', 'yucca', 'deutzia', 'ajuga', 'clerodendrum', 'lavendula', 'monarda', 'nepeta', 'perovskia', 'salvia', 'erysimum', 'crocosmia', 'crocus', 'dietes', 'freesia', 'gladiolus', 'tigridia', 'watsonia', 'bouvardia', 'gardenia', 'rondeletia', 'campanula', 'lobelia', 'platycodon', 'forsythia', 'syringa', 'echeveria', 'sedum', 'calluna', 'rhododendron', 'dryas', 'geum', 'potentilla', 'prunus', 'rosa', 'spiraea', 'eremurus', 'scabiosa', 'valeriana', 'weigela', 'myrtus', 'verbena', 'baptisia', 'lupinus', 'mimosa', 'ulex', 'wisterias', 'ajuga', 'clerodendrum', 'hyssopus', 'monarda', 'nepeta', 'perovskia', 'salvia', 'achillea', 'ageratum', 'asters', 'bellis', 'cosmos', 'dahlia', 'echinops', 'felicia', 'agapanthus', 'allium', 'amaryllis', 'galanthus', 'hippeastrum', 'lycoris', 'narcissus', 'nerine', 'claytonia', 'achillea', 'ageratum', 'asters', 'bellis', 'cosmos', 'dahlia', 'echinops', 'felicia', 'erythronium', 'fritillaria', 'tricyrtis', 'tulips', 'plumbago', 'campanula', 'jasione', 'platycodon', 'baptisia', 'lathyrus', 'mimosa', 'ulex', 'wisterias', 'agapanthus', 'allium', 'amaryllis', 'galanthus', 'hippeastrum', 'leucojum', 'narcissus', 'nerine', 'alcea', 'hibiscus', 'amsonia', 'asclepias', 'hoya', 'nerium', 'plumeria', 'vinca', 'baptisia', 'lathyrus', 'lupinus', 'ulex', 'wisterias', 'ajuga', 'clerodendrum', 'hyssopus', 'lavendula', 'nepeta', 'perovskia', 'salvia', 'convallaria', 'hosta', 'hyacinthus', 'ornithogalum', 'polygonatum', 'scilla', 'yucca', 'borago', 'nemophila', 'phacelia', 'pulmonaria', 'kunzea', 'agapanthus', 'allium', 'amaryllis', 'galanthus', 'hippeastrum', 'leucojum', 'lycoris', 'nerine', 'buddleia', 'diascia', 'verbascum', 'borago', 'myosotis', 'phacelia', 'pulmonaria', 'ajuga', 'clerodendrum', 'hyssopus', 'lavendula', 'monarda', 'perovskia', 'salvia', 'agapanthus', 'allium', 'amaryllis', 'galanthus', 'hippeastrum', 'leucojum', 'lycoris', 'narcissus', 'amsonia', 'asclepias', 'hoya', 'mandevilla', 'plumeria', 'vinca', 'aconitum', 'anemone', 'aquilegia', 'clematis', 'delphinium', 'eranthis', 'helleborus', 'ranunculus', 'epiphyllum', 'opuntia', 'clarkia', 'fuchsia', 'epiphyllum', 'obregonia', 'convallaria', 'hosta', 'hyacinthus', 'muscari', 'polygonatum', 'scilla', 'yucca', 'achillea', 'ageratum', 'asters', 'bellis', 'centaurea', 'coreopsis', 'chrysanthemum', 'cosmos', 'dicentra', 'eschscholzia', 'geranium', 'digitalis', 'veronica', 'veronicastrum', 'ajuga', 'clerodendrum', 'hyssopus', 'lavendula', 'monarda', 'nepeta', 'salvia', 'brugmansia', 'datura', 'borago', 'myosotis', 'nemophila', 'pulmonaria', 'campanula', 'jasione', 'lobelia', 'limonium', 'amsonia', 'asclepias', 'hoya', 'mandevilla', 'nerium', 'vinca', 'convallaria', 'hosta', 'hyacinthus', 'muscari', 'ornithogalum', 'scilla', 'yucca', 'dryas', 'geum', 'kerria', 'prunus', 'rosa', 'spiraea', 'cyclamen', 'banksia', 'grevillea', 'dryas', 'geum', 'kerria', 'potentilla', 'rosa', 'spiraea', 'borago', 'myosotis', 'nemophila', 'phacelia', 'echeveria', 'euphorbia', 'kalanchoe', 'obregonia', 'opuntia', 'sedum', 'yucca', 'aconitum', 'anemone', 'aquilegia', 'clematis', 'delphinium', 'eranthis', 'helleborus', 'nigella', 'calluna', 'kalmia', 'bouvardia', 'gardenia', 'ixora', 'dryas', 'geum', 'kerria', 'potentilla', 'prunus', 'spiraea', 'achillea', 'ageratum', 'asters', 'bellis', 'cosmos', 'dahlia', 'echinops', 'felicia', 'ajuga', 'clerodendrum', 'hyssopus', 'lavendula', 'monarda', 'nepeta', 'perovskia', 'gloriosa', 'astilbe', 'bergenia', 'kolkwitzia', 'valeriana', 'weigela', 'convallaria', 'hosta', 'hyacinthus', 'muscari', 'ornithogalum', 'polygonatum', 'yucca', 'echeveria', 'kalanchoe', 'achillea', 'ageratum', 'asters', 'bellis', 'cosmos', 'dahlia', 'echinops', 'felicia', 'dryas', 'geum', 'kerria', 'potentilla', 'prunus', 'rosa', 'forsythia', 'jasminum', 'achillea', 'ageratum', 'asters', 'bellis', 'cosmos', 'dahlia', 'echinops', 'felicia', 'achillea', 'ageratum', 'asters', 'bellis', 'centaurea', 'coreopsis', 'chrysanthemum', 'cosmos', 'achillea', 'ageratum', 'asters', 'bellis', 'cosmos', 'dahlia', 'echinops', 'felicia', 'crocosmia', 'crocus', 'dietes', 'freesia', 'gladiolus', 'iris', 'watsonia', 'erythronium', 'fritillaria', 'lilium', 'tulips', 'xerophyllum', 'aconitum', 'anemone', 'aquilegia', 'clematis', 'delphinium', 'helleborus', 'nigella', 'ranunculus', 'erythronium', 'fritillaria', 'lilium', 'tricyrtis', 'baptisia', 'lathyrus', 'lupinus', 'mimosa', 'wisterias', 'achillea', 'ageratum', 'asters', 'bellis', 'cosmos', 'dahlia', 'echinops', 'felicia', 'kolkwitzia', 'scabiosa', 'weigela', 'buddleia', 'diascia', 'nemesia', 'lantana', 'digitalis', 'penstemon', 'veronicastrum', 'digitalis', 'penstemon', 'veronica', 'amsonia', 'asclepias', 'hoya', 'mandevilla', 'nerium', 'plumeria', 'crocosmia', 'crocus', 'dietes', 'freesia', 'gladiolus', 'iris', 'tigridia', 'kolkwitzia', 'scabiosa', 'valeriana', 'baptisia', 'lathyrus', 'lupinus', 'mimosa', 'ulex', 'coreopsis', 'cosmos', 'helianthus', 'osteospermum', 'rudbeckia', 'ursinia', 'xerochrysum', 'achillea', 'ageratum', 'asters', 'bellis', 'cosmos', 'dahlia', 'echinops', 'felicia', 'asters', 'bellis', 'coreopsis', 'echinacea', 'gaillardia', 'xeranthemum', 'ursinia', 'trillium', 'convallaria', 'hosta', 'hyacinthus', 'muscari', 'ornithogalum', 'polygonatum', 'scilla', 'anthurium', 'agapanthus', 'allium', 'amaryllis', 'galanthus', 'hippeastrum', 'leucojum', 'lycoris', 'narcissus', 'achillea', 'ageratum', 'asters', 'bellis', 'cosmos', 'dahlia', 'echinops', 'felicia', 'cymbidium', 'dracula']\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
+            }
+          },
+          "metadata": {},
+          "execution_count": 20
+        }
+      ]
+    },
+    {
+      "cell_type": "code",
+      "source": [
+        "df.columns"
+      ],
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "q7uHr3EArj9I",
+        "outputId": "657b7eab-09e9-4558-97dc-589ca00698c5"
+      },
+      "execution_count": null,
+      "outputs": [
+        {
+          "output_type": "execute_result",
+          "data": {
+            "text/plain": [
+              "Index(['Name', 'Desc', 'PlantType', 'Color', 'HardinessZones', 'BloomsIn',\n",
+              "       'Height', 'SoilNeeds', 'SunNeeds', 'WaterNeeds', 'Maintenance',\n",
+              "       'RelatedFlowers'],\n",
+              "      dtype='object')"
+            ]
+          },
+          "metadata": {},
+          "execution_count": 21
+        }
+      ]
+    },
+    {
+      "cell_type": "code",
+      "source": [
+        "df = df.drop(\n",
+        "    [\n",
+        "        'Desc',\n",
+        "        # 'PlantType',\n",
+        "        # 'HardinessZones',\n",
+        "        # 'BloomsIn',\n",
+        "        'SoilNeeds',\n",
+        "        # 'SunNeeds',\n",
+        "        # 'WaterNeeds',\n",
+        "        # 'Maintenance',\n",
+        "        'RelatedFlowers'\n",
+        "    ],\n",
+        "    axis=1,\n",
+        ")\n",
+        "df.tail(3)"
+      ],
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/",
+          "height": 371
+        },
+        "id": "YrYaP7rGrmFa",
+        "outputId": "c7fc0b11-6061-4734-e3be-484dc962b9f0"
+      },
+      "execution_count": null,
+      "outputs": [
+        {
+          "output_type": "execute_result",
+          "data": {
+            "text/plain": [
+              "                                     Name                    PlantType  \\\n",
+              "220  Zephyranthes (Rain Lily; Fairy Lily)   Annuals, Bulbs, Perennials   \n",
+              "221                       Zinnia (Zinnia)  Annuals, Perennials, Shrubs   \n",
+              "222                    Zygopetalum (Zygo)          Annuals, Perennials   \n",
+              "\n",
+              "                                                 Color HardinessZones  \\\n",
+              "220         The flowers may be yellow, pink and white.           7-11   \n",
+              "221  These flowers are known for their vivid colors...           2-11   \n",
+              "222  Zygopetalum has unusually colored flowers in s...           9-11   \n",
+              "\n",
+              "                   BloomsIn  \\\n",
+              "220  Spring, Autumn, Summer   \n",
+              "221          Autumn, Summer   \n",
+              "222  Spring, Autumn, Winter   \n",
+              "\n",
+              "                                                Height               SunNeeds  \\\n",
+              "220   The plant can grow up to 30 cm (1 ft) in height.  Full sun, Partial sun   \n",
+              "221  Zinnias range in size from dwarf species that ...               Full sun   \n",
+              "222  Zygopetalum usually grows to a height of 40 cm...  Full sun, Partial sun   \n",
+              "\n",
+              "    WaterNeeds Maintenance  \n",
+              "220    avarage      medium  \n",
+              "221    avarage         low  \n",
+              "222    avarage      medium  "
+            ],
+            "text/html": [
+              "\n",
+              "  <div id=\"df-d51f0110-606d-4d04-8a2b-10f94605567f\" class=\"colab-df-container\">\n",
+              "    <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>Name</th>\n",
+              "      <th>PlantType</th>\n",
+              "      <th>Color</th>\n",
+              "      <th>HardinessZones</th>\n",
+              "      <th>BloomsIn</th>\n",
+              "      <th>Height</th>\n",
+              "      <th>SunNeeds</th>\n",
+              "      <th>WaterNeeds</th>\n",
+              "      <th>Maintenance</th>\n",
+              "    </tr>\n",
+              "  </thead>\n",
+              "  <tbody>\n",
+              "    <tr>\n",
+              "      <th>220</th>\n",
+              "      <td>Zephyranthes (Rain Lily; Fairy Lily)</td>\n",
+              "      <td>Annuals, Bulbs, Perennials</td>\n",
+              "      <td>The flowers may be yellow, pink and white.</td>\n",
+              "      <td>7-11</td>\n",
+              "      <td>Spring, Autumn, Summer</td>\n",
+              "      <td>The plant can grow up to 30 cm (1 ft) in height.</td>\n",
+              "      <td>Full sun, Partial sun</td>\n",
+              "      <td>avarage</td>\n",
+              "      <td>medium</td>\n",
+              "    </tr>\n",
+              "    <tr>\n",
+              "      <th>221</th>\n",
+              "      <td>Zinnia (Zinnia)</td>\n",
+              "      <td>Annuals, Perennials, Shrubs</td>\n",
+              "      <td>These flowers are known for their vivid colors...</td>\n",
+              "      <td>2-11</td>\n",
+              "      <td>Autumn, Summer</td>\n",
+              "      <td>Zinnias range in size from dwarf species that ...</td>\n",
+              "      <td>Full sun</td>\n",
+              "      <td>avarage</td>\n",
+              "      <td>low</td>\n",
+              "    </tr>\n",
+              "    <tr>\n",
+              "      <th>222</th>\n",
+              "      <td>Zygopetalum (Zygo)</td>\n",
+              "      <td>Annuals, Perennials</td>\n",
+              "      <td>Zygopetalum has unusually colored flowers in s...</td>\n",
+              "      <td>9-11</td>\n",
+              "      <td>Spring, Autumn, Winter</td>\n",
+              "      <td>Zygopetalum usually grows to a height of 40 cm...</td>\n",
+              "      <td>Full sun, Partial sun</td>\n",
+              "      <td>avarage</td>\n",
+              "      <td>medium</td>\n",
+              "    </tr>\n",
+              "  </tbody>\n",
+              "</table>\n",
+              "</div>\n",
+              "    <div class=\"colab-df-buttons\">\n",
+              "\n",
+              "  <div class=\"colab-df-container\">\n",
+              "    <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-d51f0110-606d-4d04-8a2b-10f94605567f')\"\n",
+              "            title=\"Convert this dataframe to an interactive table.\"\n",
+              "            style=\"display:none;\">\n",
+              "\n",
+              "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
+              "    <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
+              "  </svg>\n",
+              "    </button>\n",
+              "\n",
+              "  <style>\n",
+              "    .colab-df-container {\n",
+              "      display:flex;\n",
+              "      gap: 12px;\n",
+              "    }\n",
+              "\n",
+              "    .colab-df-convert {\n",
+              "      background-color: #E8F0FE;\n",
+              "      border: none;\n",
+              "      border-radius: 50%;\n",
+              "      cursor: pointer;\n",
+              "      display: none;\n",
+              "      fill: #1967D2;\n",
+              "      height: 32px;\n",
+              "      padding: 0 0 0 0;\n",
+              "      width: 32px;\n",
+              "    }\n",
+              "\n",
+              "    .colab-df-convert:hover {\n",
+              "      background-color: #E2EBFA;\n",
+              "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
+              "      fill: #174EA6;\n",
+              "    }\n",
+              "\n",
+              "    .colab-df-buttons div {\n",
+              "      margin-bottom: 4px;\n",
+              "    }\n",
+              "\n",
+              "    [theme=dark] .colab-df-convert {\n",
+              "      background-color: #3B4455;\n",
+              "      fill: #D2E3FC;\n",
+              "    }\n",
+              "\n",
+              "    [theme=dark] .colab-df-convert:hover {\n",
+              "      background-color: #434B5C;\n",
+              "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
+              "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
+              "      fill: #FFFFFF;\n",
+              "    }\n",
+              "  </style>\n",
+              "\n",
+              "    <script>\n",
+              "      const buttonEl =\n",
+              "        document.querySelector('#df-d51f0110-606d-4d04-8a2b-10f94605567f button.colab-df-convert');\n",
+              "      buttonEl.style.display =\n",
+              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
+              "\n",
+              "      async function convertToInteractive(key) {\n",
+              "        const element = document.querySelector('#df-d51f0110-606d-4d04-8a2b-10f94605567f');\n",
+              "        const dataTable =\n",
+              "          await google.colab.kernel.invokeFunction('convertToInteractive',\n",
+              "                                                    [key], {});\n",
+              "        if (!dataTable) return;\n",
+              "\n",
+              "        const docLinkHtml = 'Like what you see? Visit the ' +\n",
+              "          '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
+              "          + ' to learn more about interactive tables.';\n",
+              "        element.innerHTML = '';\n",
+              "        dataTable['output_type'] = 'display_data';\n",
+              "        await google.colab.output.renderOutput(dataTable, element);\n",
+              "        const docLink = document.createElement('div');\n",
+              "        docLink.innerHTML = docLinkHtml;\n",
+              "        element.appendChild(docLink);\n",
+              "      }\n",
+              "    </script>\n",
+              "  </div>\n",
+              "\n",
+              "\n",
+              "<div id=\"df-c68d5d2a-f80b-4b2f-a584-49c6e49bc621\">\n",
+              "  <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-c68d5d2a-f80b-4b2f-a584-49c6e49bc621')\"\n",
+              "            title=\"Suggest charts\"\n",
+              "            style=\"display:none;\">\n",
+              "\n",
+              "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
+              "     width=\"24px\">\n",
+              "    <g>\n",
+              "        <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
+              "    </g>\n",
+              "</svg>\n",
+              "  </button>\n",
+              "\n",
+              "<style>\n",
+              "  .colab-df-quickchart {\n",
+              "      --bg-color: #E8F0FE;\n",
+              "      --fill-color: #1967D2;\n",
+              "      --hover-bg-color: #E2EBFA;\n",
+              "      --hover-fill-color: #174EA6;\n",
+              "      --disabled-fill-color: #AAA;\n",
+              "      --disabled-bg-color: #DDD;\n",
+              "  }\n",
+              "\n",
+              "  [theme=dark] .colab-df-quickchart {\n",
+              "      --bg-color: #3B4455;\n",
+              "      --fill-color: #D2E3FC;\n",
+              "      --hover-bg-color: #434B5C;\n",
+              "      --hover-fill-color: #FFFFFF;\n",
+              "      --disabled-bg-color: #3B4455;\n",
+              "      --disabled-fill-color: #666;\n",
+              "  }\n",
+              "\n",
+              "  .colab-df-quickchart {\n",
+              "    background-color: var(--bg-color);\n",
+              "    border: none;\n",
+              "    border-radius: 50%;\n",
+              "    cursor: pointer;\n",
+              "    display: none;\n",
+              "    fill: var(--fill-color);\n",
+              "    height: 32px;\n",
+              "    padding: 0;\n",
+              "    width: 32px;\n",
+              "  }\n",
+              "\n",
+              "  .colab-df-quickchart:hover {\n",
+              "    background-color: var(--hover-bg-color);\n",
+              "    box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
+              "    fill: var(--button-hover-fill-color);\n",
+              "  }\n",
+              "\n",
+              "  .colab-df-quickchart-complete:disabled,\n",
+              "  .colab-df-quickchart-complete:disabled:hover {\n",
+              "    background-color: var(--disabled-bg-color);\n",
+              "    fill: var(--disabled-fill-color);\n",
+              "    box-shadow: none;\n",
+              "  }\n",
+              "\n",
+              "  .colab-df-spinner {\n",
+              "    border: 2px solid var(--fill-color);\n",
+              "    border-color: transparent;\n",
+              "    border-bottom-color: var(--fill-color);\n",
+              "    animation:\n",
+              "      spin 1s steps(1) infinite;\n",
+              "  }\n",
+              "\n",
+              "  @keyframes spin {\n",
+              "    0% {\n",
+              "      border-color: transparent;\n",
+              "      border-bottom-color: var(--fill-color);\n",
+              "      border-left-color: var(--fill-color);\n",
+              "    }\n",
+              "    20% {\n",
+              "      border-color: transparent;\n",
+              "      border-left-color: var(--fill-color);\n",
+              "      border-top-color: var(--fill-color);\n",
+              "    }\n",
+              "    30% {\n",
+              "      border-color: transparent;\n",
+              "      border-left-color: var(--fill-color);\n",
+              "      border-top-color: var(--fill-color);\n",
+              "      border-right-color: var(--fill-color);\n",
+              "    }\n",
+              "    40% {\n",
+              "      border-color: transparent;\n",
+              "      border-right-color: var(--fill-color);\n",
+              "      border-top-color: var(--fill-color);\n",
+              "    }\n",
+              "    60% {\n",
+              "      border-color: transparent;\n",
+              "      border-right-color: var(--fill-color);\n",
+              "    }\n",
+              "    80% {\n",
+              "      border-color: transparent;\n",
+              "      border-right-color: var(--fill-color);\n",
+              "      border-bottom-color: var(--fill-color);\n",
+              "    }\n",
+              "    90% {\n",
+              "      border-color: transparent;\n",
+              "      border-bottom-color: var(--fill-color);\n",
+              "    }\n",
+              "  }\n",
+              "</style>\n",
+              "\n",
+              "  <script>\n",
+              "    async function quickchart(key) {\n",
+              "      const quickchartButtonEl =\n",
+              "        document.querySelector('#' + key + ' button');\n",
+              "      quickchartButtonEl.disabled = true;  // To prevent multiple clicks.\n",
+              "      quickchartButtonEl.classList.add('colab-df-spinner');\n",
+              "      try {\n",
+              "        const charts = await google.colab.kernel.invokeFunction(\n",
+              "            'suggestCharts', [key], {});\n",
+              "      } catch (error) {\n",
+              "        console.error('Error during call to suggestCharts:', error);\n",
+              "      }\n",
+              "      quickchartButtonEl.classList.remove('colab-df-spinner');\n",
+              "      quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
+              "    }\n",
+              "    (() => {\n",
+              "      let quickchartButtonEl =\n",
+              "        document.querySelector('#df-c68d5d2a-f80b-4b2f-a584-49c6e49bc621 button');\n",
+              "      quickchartButtonEl.style.display =\n",
+              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
+              "    })();\n",
+              "  </script>\n",
+              "</div>\n",
+              "\n",
+              "    </div>\n",
+              "  </div>\n"
+            ],
+            "application/vnd.google.colaboratory.intrinsic+json": {
+              "type": "dataframe",
+              "summary": "{\n  \"name\": \"df\",\n  \"rows\": 3,\n  \"fields\": [\n    {\n      \"column\": \"Name\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 3,\n        \"samples\": [\n          \"Zephyranthes (Rain Lily; Fairy Lily)\",\n          \"Zinnia (Zinnia)\",\n          \"Zygopetalum (Zygo)\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"PlantType\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 3,\n        \"samples\": [\n          \"Annuals, Bulbs, Perennials\",\n          \"Annuals, Perennials, Shrubs\",\n          \"Annuals, Perennials\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Color\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 3,\n        \"samples\": [\n          \"The flowers may be yellow, pink and white.\",\n          \"These flowers are known for their vivid colors. They are often multi-colored and may be yellow, orange, white, red, pink and purple.\",\n          \"Zygopetalum has unusually colored flowers in shades of blue, purple, red and white.\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"HardinessZones\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 3,\n        \"samples\": [\n          \"7-11\",\n          \"2-11\",\n          \"9-11\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"BloomsIn\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 3,\n        \"samples\": [\n          \"Spring, Autumn, Summer\",\n          \"Autumn, Summer\",\n          \"Spring, Autumn, Winter\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Height\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 3,\n        \"samples\": [\n          \"The plant can grow up to 30 cm (1 ft) in height.\",\n          \"Zinnias range in size from dwarf species that only grow 17 cm (7 inches) high to vigorous types over 120 cm (4 ft) tall.\",\n          \"Zygopetalum usually grows to a height of 40 cm (16 inches).\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"SunNeeds\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 2,\n        \"samples\": [\n          \"Full sun\",\n          \"Full sun, Partial sun\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"WaterNeeds\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 1,\n        \"samples\": [\n          \"avarage\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Maintenance\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 2,\n        \"samples\": [\n          \"low\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
+            }
+          },
+          "metadata": {},
+          "execution_count": 22
+        }
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {
+        "id": "DTngmEV7n6rd"
+      },
+      "outputs": [],
+      "source": [
+        "import os\n",
+        "from google.colab import userdata\n",
+        "\n",
+        "try:\n",
+        "  os.environ[\"OPENAI_API_KEY\"] = userdata.get(\"OPEN_API_KEY\")\n",
+        "except Exception as e :\n",
+        "  print(\"Error!:\", e)"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "source": [
+        "from langchain_openai import ChatOpenAI\n",
+        "\n",
+        "model = ChatOpenAI(model=\"gpt-4o-mini\")"
+      ],
+      "metadata": {
+        "id": "RHqC0KxUyVIU"
+      },
+      "execution_count": null,
+      "outputs": []
+    },
+    {
+      "cell_type": "code",
+      "source": [
+        "from langchain_core.prompts import ChatPromptTemplate\n",
+        "\n",
+        "prompt = ChatPromptTemplate.from_messages([\n",
+        "    (\"system\",\n",
+        "     \"You are a helpful assistant. You will be given a query to answer.\" +\n",
+        "     \"Try to use the provided context to answer the query, \" +\n",
+        "     \"and do not try to guess if you don't have the needed information. \" +\n",
+        "     \"Use the context below to answer the query.\" +\n",
+        "     \"###\\n\\n\" + df.to_string() + \"\\n\\n###\"\n",
+        "    ),\n",
+        "    ( \"human\", \"Query: {query}\" )\n",
+        "])\n",
+        "\n",
+        "chain = prompt | model"
+      ],
+      "metadata": {
+        "id": "ywo_dx7-1A-u"
+      },
+      "execution_count": null,
+      "outputs": []
+    },
+    {
+      "cell_type": "code",
+      "source": [
+        "context = df.to_string()"
+      ],
+      "metadata": {
+        "id": "T-1NK_dH1URE"
+      },
+      "execution_count": null,
+      "outputs": []
+    },
+    {
+      "cell_type": "code",
+      "source": [
+        "query = \"Give me the samples in the training dataset where height > 40cm and color is pink, and format them into a table using Markdown (.md) format. Please summarize every detail in the table especially the color and height columns.\"\n",
+        "\n",
+        "print(chain.invoke({\"query\": query}).content)"
+      ],
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "id": "yM4m1SKI1guF",
+        "outputId": "6a672a62-c75e-4042-ade0-c691f834b63e"
+      },
+      "execution_count": null,
+      "outputs": [
+        {
+          "output_type": "stream",
+          "name": "stdout",
+          "text": [
+            "Here is the table of samples from the dataset where the height is greater than 40 cm and the color includes pink, formatted in Markdown:\n",
+            "\n",
+            "| Name                                                 | Plant Type                          | Color                                                    | Hardiness Zones | Blooms In               | Height                  | Sun Needs           | Water Needs | Maintenance |\n",
+            "|------------------------------------------------------|-------------------------------------|----------------------------------------------------------|------------------|-------------------------|------------------------|---------------------|-------------|-------------|\n",
+            "| Alcea (Hollyhock)                                   | Annuals, Perennials                 | Blooms in a rainbow of colors including pink            | 3-9              | Summer                  | 60 cm to 300 cm (2 to 10 ft) | Full sun           | Avarage     | Hard       |\n",
+            "| Amaryllis (Amaryllis)                               | Bulbs, Perennials                   | Usually some shade of pink, sometimes white             | 7-10             | Autumn, Summer          | 30 cm to 90 cm (1 to 3 ft) | Full sun, Partial sun | Avarage     | Low        |\n",
+            "| Antirrhinum (Snapdragon; Dragon Flower)             | Annuals, Perennials                 | Range of colors including pink                            | 5-10             | Spring, Autumn, Summer  | 20 cm to 120 cm (8 inches to 4 ft) | Full sun           | Avarage     | Low        |\n",
+            "| Dahlia (Dahlia)                                    | Bulbs, Perennials                   | Dahlias bloom in all colors, including pink             | 3-11             | Autumn, Summer          | 40 cm to 200 cm (1 to 7 ft) | Full sun           | Avarage     | Medium     |\n",
+            "| Fuchsia (Lady's eardrop)                           | Shrubs, Trees                       | Develops flowers in shades of pink                       | 6-11             | Autumn, Summer          | 15 cm to 150 cm (6 inches to 5 ft) | Full sun           | Avarage     | Low        |\n",
+            "| Helleborus (Hellebore; Christmas Rose)             | Perennials                          | Various colors, including pink                           | 4-9              | Spring, Winter          | 30 cm to 120 cm (1 to 4 ft) | Partial sun, Shade  | Avarage     | Low        |\n",
+            "| Impatiens (Jewelweed; Touch-me-not; Busy Lizzy)    | Annuals, Perennials                 | Available in a variety of colors including pink         | 8-12             | Spring, Autumn, Summer  | Up to 30 cm (1 ft)       | Partial sun, Shade  | Avarage     | Low        |\n",
+            "| Pelargonium (Geranium)                             | Annuals, Cactus - Succulents, Perennials, Shrubs | Comes in shades of red, purple, orange, pink, white      | 8-12             | Spring, Autumn, Summer  | 30 cm to 180 cm (1 to 6 ft) | Full sun, Partial sun | Avarage     | Low        |\n",
+            "| Primula (Primrose)                                 | Perennials                          | Wide range of colors, including pink                    | 3-9              | Spring                  | Up to 60 cm (2 ft)       | Full sun, Partial sun | Avarage     | Low        |\n",
+            "| Verbena (Vervain)                                  | Annuals, Perennials                 | Blooms come in shades of pink                            | 3-12             | Autumn, Summer          | 7 cm to 180 cm (3 inches to 6 ft) | Full sun, Partial sun | Avarage     | Low        |\n",
+            "| Zinnia (Zinnia)                                    | Annuals, Perennials, Shrubs         | Known for vivid colors, including pink                   | 2-11             | Autumn, Summer          | 17 cm to 120 cm (7 inches to 4 ft) | Full sun           | Avarage     | Low        |\n",
+            "\n",
+            "This table summarizes the relevant details for each plant that meets the specified criteria.\n"
+          ]
+        }
+      ]
+    },
+    {
+      "cell_type": "code",
+      "source": [
+        "import gradio as gr\n",
+        "\n",
+        "def create_a_query(query):\n",
+        "      return update_output(query)\n",
+        "\n",
+        "def update_output(query):\n",
+        "    return chain.invoke({\"query\": query}).content\n",
+        "\n",
+        "def gradio_interface():\n",
+        "\n",
+        "  def create_a_query(query):\n",
+        "      return update_output(query)\n",
+        "\n",
+        "\n",
+        "  def update_output(query):\n",
+        "    return chain.invoke({\"query\": query}).content\n",
+        "\n",
+        "\n",
+        "  with gr.Blocks() as app:\n",
+        "    gr.Markdown(\"### [Data Science / Exploratory Data Analysis] Other dataset\")\n",
+        "\n",
+        "    with gr.Tab(\"Ask a Query\"):\n",
+        "      name = gr.Textbox(label=\"Query\")\n",
+        "      create_btn = gr.Button(\"Ask\")\n",
+        "      output = gr.Textbox(label=\"Output\", interactive=False)\n",
+        "      create_btn.click(\n",
+        "        fn = create_a_query,\n",
+        "        inputs = [ name ],\n",
+        "        outputs = [ output ],\n",
+        "    )\n",
+        "\n",
+        "\n",
+        "  return app\n",
+        "\n",
+        "\n",
+        "demo = gr.Interface(\n",
+        "    fn=create_a_query,\n",
+        "    inputs=[\n",
+        "        \"text\",\n",
+        "    ],\n",
+        "    outputs=\"text\",\n",
+        ")\n",
+        "\n",
+        "\n",
+        "\n",
+        "\n",
+        "if __name__ == \"__main__\":\n",
+        "    gradio_interface().launch()\n",
+        "\n",
+        "\n",
+        "# Give me the samples in the training dataset where height > 40cm & color is pink."
+      ],
+      "metadata": {
+        "colab": {
+          "base_uri": "https://localhost:8080/",
+          "height": 646
+        },
+        "id": "O3Xj0q4A591I",
+        "outputId": "8c4d4ab4-16ec-4769-a9bc-1d52f5d29920"
+      },
+      "execution_count": null,
+      "outputs": [
+        {
+          "output_type": "stream",
+          "name": "stdout",
+          "text": [
+            "Setting queue=True in a Colab notebook requires sharing enabled. Setting `share=True` (you can turn this off by setting `share=False` in `launch()` explicitly).\n",
+            "\n",
+            "Colab notebook detected. To show errors in colab notebook, set debug=True in launch()\n",
+            "Running on public URL: https://cea5d0a95584f6e09c.gradio.live\n",
+            "\n",
+            "This share link expires in 72 hours. For free permanent hosting and GPU upgrades, run `gradio deploy` from Terminal to deploy to Spaces (https://huggingface.co/spaces)\n"
+          ]
+        },
+        {
+          "output_type": "display_data",
+          "data": {
+            "text/plain": [
+              "<IPython.core.display.HTML object>"
+            ],
+            "text/html": [
+              "<div><iframe src=\"https://cea5d0a95584f6e09c.gradio.live\" width=\"100%\" height=\"500\" allow=\"autoplay; camera; microphone; clipboard-read; clipboard-write;\" frameborder=\"0\" allowfullscreen></iframe></div>"
+            ]
+          },
+          "metadata": {}
+        }
+      ]
+    }
+  ]
+}
\ No newline at end of file