{
  "cells": [
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "8Ksv005GbN2w"
      },
      "source": [
        "# 🧪🦍 Needle in a Jungle - Information Extraction via LLMs\n",
        "\n",
        "<img src=\"https://haystack.deepset.ai/images/haystack-ogimage.png\" width=\"430\" style=\"display:inline;\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src=\"https://github.com/ShishirPatil/gorilla/raw/gh-pages/assets/img/logo.png\" width=\"250\" style=\"display:inline;\">\n",
        "\n",
        "*Notebook by [Stefano Fiorucci](https://github.com/anakin87)*\n",
        "\n",
        "In this experiment, we will use Large Language Models to perform Information Extraction from textual data.\n",
        "\n",
        "🎯 Goal: create an application that, given a text (or URL) and a specific structure provided by the user, extracts information from the source.\n",
        "\n",
        "The \"**function calling**\" capabilities of OpenAI models unlock this task: the user can describe a structure, by defining a fake function with all its typed and specific parameters. The LLM will prepare the data in this specific form and send it back to the user.\n",
        "\n",
        "A nice example of using OpenAI Function Calling for information extraction is this [gist by Kyle McDonald](https://gist.github.com/kylemcdonald/dbac21de2d7855633689f5526225154c).\n",
        "\n",
        "**What is changing now is that open models such as Gorilla are emerging, with function calling capabilities...**\n",
        "\n",
        "\n",
        "\n",
        "**Stack**\n",
        "- **[Gorilla OpenFunctions](https://github.com/ShishirPatil/gorilla/tree/main/openfunctions)**: an open-source model that formulates executable API/Function calls given natural language instructions and API/Function definition.\n",
        "- **[Haystack](https://haystack.deepset.ai/)**: open-source LLM orchestration framework that streamlines the development of your LLM applications."
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "Qd4cBgege7PW"
      },
      "source": [
        "## Install the dependencies\n",
        "`accelerate` and `bitsandbytes` are needed to load the model in a quantized version that runs smoothly on Colab."
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "UBhGlKTXesIX"
      },
      "outputs": [],
      "source": [
        "%%capture\n",
        "! pip install transformers accelerate bitsandbytes haystack-ai trafilatura"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "-3GvBu0Ffp9I"
      },
      "source": [
        "## Load and try the model\n",
        "We use the `HuggingFaceLocalGenerator`, which allows to locally load a model hosted on Hugging Face.\n",
        "We also specify some quantization options to run the model with the limited resources offered by Colab. [An article about the HuggingFaceLocalGenerator on Haystack](https://haystack.deepset.ai/blog/guide-to-using-zephyr-with-haystack2).\n",
        "\n",
        "A few notes:\n",
        "- Although the model would be availaible in a free deployed version, with an OpenAI-compatible API, I decided not to use this option, as I found the server rather unstable.\n",
        "- To load the model on Colab, I sharded it myself and published it on Hugging Face. To understand why you need a sharded version, you can read [this excellent article by Maarten Grootendorst](https://www.maartengrootendorst.com/blog/quantization/#2-sharding)."
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 49,
          "referenced_widgets": [
            "f9199a6a93bd476399bb10f0c5998ff5",
            "865149cdf9f64f308481884092049356",
            "9219aad138f241f9854c3aa32825fc6e",
            "5ac7b29812ca459281ff7970334f8c98",
            "e5579df0e65e4fbc9e5fbe26bcbafb4d",
            "72932512578446e2ba5e1fa1484c2122",
            "716bf646f0c44a34ab568c3f1d795764",
            "4ffa82cec76c4fbebd13f0cd18e9669d",
            "00ac0ccbad934b2589ed3cc1f9ffc976",
            "c6068da42c4a42f0bfab76d3944f9980",
            "455dc9910a3947d089b88acd80539727"
          ]
        },
        "id": "-_V9RbxafpdY",
        "outputId": "ad86d093-c182-42e6-e2ce-145519f7b127"
      },
      "outputs": [
        {
          "data": {
            "application/vnd.jupyter.widget-view+json": {
              "model_id": "f9199a6a93bd476399bb10f0c5998ff5",
              "version_major": 2,
              "version_minor": 0
            },
            "text/plain": [
              "Loading checkpoint shards:   0%|          | 0/7 [00:00<?, ?it/s]"
            ]
          },
          "metadata": {},
          "output_type": "display_data"
        }
      ],
      "source": [
        "import torch\n",
        "from haystack.components.generators import HuggingFaceLocalGenerator\n",
        "\n",
        "generator = HuggingFaceLocalGenerator(\"anakin87/gorilla-openfunctions-v0-sharded\",\n",
        "                                          huggingface_pipeline_kwargs={\"device_map\":\"auto\",\n",
        "                                                                      \"model_kwargs\":{\"load_in_8bit\":True,\n",
        "                                                                                    \"torch_dtype\":torch.float16}},\n",
        "                                          generation_kwargs={\"max_new_tokens\":128,\n",
        "                                                             \"batch_size\":16})"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "cp4hJ34JivkB"
      },
      "source": [
        "To understand how to prompt the model, give a look at the [GitHub README](https://github.com/ShishirPatil/gorilla/tree/main/openfunctions#running-openfunctions-locally).\n",
        "Later we will see how to better organize the prompt for our purpose."
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "MdU98plyfdZ1"
      },
      "outputs": [],
      "source": [
        "prompt=\"\"\"USER: <<question>> Call me an Uber ride type \\\"Plus\\\" in Berkeley at zipcode 94704 in 10 minutes\n",
        "<<function>> [    {\n",
        "        \"name\": \"Uber Carpool\",\n",
        "        \"api_name\": \"uber.ride\",\n",
        "        \"description\": \"Find suitable ride for customers given the location, type of ride, and the amount of time the customer is willing to wait as parameters\",\n",
        "        \"parameters\":  [{\"name\": \"loc\", \"description\": \"location of the starting place of the uber ride\"}, {\"name\":\"type\", \"enum\": [\"plus\", \"comfort\", \"black\"], \"description\": \"types of uber ride user is ordering\"}, {\"name\": \"time\", \"description\": \"the amount of time in minutes the customer is willing to wait\"}]\n",
        "    }]\n",
        "\n",
        "ASSISTANT: \"\"\""
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "iPIqKQe8j2wX",
        "outputId": "aa648e89-bace-4ea8-c6da-e3a67b46e077"
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "{'replies': [' uber.ride(loc=\"berkeley\", type=\"plus\", time=10)']}\n"
          ]
        }
      ],
      "source": [
        "print(generator.run(prompt=prompt))"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "4zvaVXFcmy2v"
      },
      "source": [
        "All good! ✅"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "uXiUvn0dsNj6"
      },
      "source": [
        "## Prompt template and Prompt Builder\n",
        "\n",
        "- The Prompt template to apply is model specific. In our case, we customize a bit the original prompt which is available on [GitHub](https://github.com/ShishirPatil/gorilla/tree/main/openfunctions#running-openfunctions-locally).\n",
        "- In Haystack, the prompt template is rendered using the [Prompt Builder component](https://docs.haystack.deepset.ai/docs/promptbuilder)."
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "mhcao8wYj9ew"
      },
      "outputs": [],
      "source": [
        "from haystack.components.builders import PromptBuilder\n",
        "\n",
        "prompt_template = \"\"\"USER: <<question>> Extract data from the following text. START TEXT. {{docs[0].content|truncate(10000)}} END TEXT. <<function>> {{function}}\n",
        "\n",
        "ASSISTANT: \"\"\"\n",
        "\n",
        "prompt_builder = PromptBuilder(template=prompt_template)"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "dNA4VHAtxsQR",
        "outputId": "5c6979d7-0d62-48e6-c14d-8c97a1d3c308"
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "{'prompt': 'USER: <<question>> Extract data from the following text. START TEXT. my fake document END TEXT. <<function>> my fake function definition\\n\\nASSISTANT: '}\n"
          ]
        }
      ],
      "source": [
        "# let's see if the Prompt Builder works properly\n",
        "\n",
        "from haystack import Document\n",
        "print(prompt_builder.run(docs=[Document(content=\"my fake document\")], function=\"my fake function definition\"))"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "iOonBACL9eue"
      },
      "source": [
        "Nice ✅"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "vlqZUbLqyTtT"
      },
      "source": [
        "## Other Components"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "VFU0J3_nzdxz"
      },
      "source": [
        "The following Components are required for the Pipeline we are about to create. However, they are simple and there is no need to customize and try them, so we can instantiate them directly during Pipeline creation.\n",
        "\n",
        "- [LinkContentFetcher](https://docs.haystack.deepset.ai/docs/linkcontentfetcher): fetches the contents of the urls you give it and returns a list of content streams.\n",
        "- [HTMLToDocument](https://docs.haystack.deepset.ai/docs/htmltodocument): converts HTML files to Documents.\n",
        "- [DocumentJoiner](https://docs.haystack.deepset.ai/docs/documentjoiner): join lists of Documents.\n",
        "- [DocumentCleaner](https://docs.haystack.deepset.ai/docs/documentcleaner): make text documents more readable.\n",
        "\n"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "ASq0gDuZ1Vn_"
      },
      "source": [
        "## Define a custom Component to parse and visualize the result\n",
        "\n",
        "The output of the model generation is a function call string.\n",
        "\n",
        "We are going to create a simple Haystack Component to appropriately parse this string and create a nice HTML visualization.\n",
        "\n",
        "For more information on Creating custom Components, see the [docs](https://docs.haystack.deepset.ai/v2.0/docs/custom-components)."
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "MWIXo9gOyTP6"
      },
      "outputs": [],
      "source": [
        "from haystack import component\n",
        "from typing import List, Optional\n",
        "import ast\n",
        "import re\n",
        "\n",
        "def val_to_color(val):\n",
        "  \"\"\"\n",
        "  Helper function to return a color based on the type/value of a variable\n",
        "  \"\"\"\n",
        "  if isinstance(val, list):\n",
        "    return \"#FFFEE0\"\n",
        "  if val is True:\n",
        "    return \"#90EE90\"\n",
        "  if val is False:\n",
        "    return \"#FFCCCB\"\n",
        "  return \"\"\n",
        "\n",
        "@component\n",
        "class FunctionCallParser:\n",
        "  \"\"\"\n",
        "  A component that parses the function call string and creates a HTML visualization\n",
        "  \"\"\"\n",
        "  @component.output_types(html_visualization=str)\n",
        "  def run(self, replies:List[str]):\n",
        "\n",
        "    func_call_str = replies[0].strip().replace('\\n','')\n",
        "\n",
        "    # sometimes the model output starts with \"extract_data(type=text)...\" or similar expressions\n",
        "    # that can't be correctly parsed, so we remove this substring\n",
        "    func_call_str=re.sub(\"type=[a-zA-Z]+\\)?,?\",\"\",func_call_str)\n",
        "\n",
        "    # sometimes the output is like this: \"extract_data(..., properties={\"date\": \"2022-01-01\", ...})\"\n",
        "    if \"properties={\" in func_call_str:\n",
        "      clean_json_str = func_call_str.split(\"properties=\")[-1].strip(')')\n",
        "      kwargs = ast.literal_eval(clean_json_str)\n",
        "    else:\n",
        "    # sometimes, it is a proper function call: \"extract_data(date=\"2022-01-01\", ...)\"\n",
        "      func_call=ast.parse(func_call_str).body[0].value\n",
        "      kwargs = {arg.arg: ast.literal_eval(arg.value) for arg in func_call.keywords}\n",
        "\n",
        "    # Convert data to HTML format\n",
        "    html_content = '<div style=\"border: 1px solid #ccc; padding: 10px; border-radius: 5px; background-color: #f9f9f9;\">'\n",
        "    for key, value in kwargs.items():\n",
        "        html_content += f'<p><span style=\"font-family: Cursive; font-size: 30px;\">{key}:</span>'\n",
        "        html_content += f'&emsp;<span style=\"background-color:{val_to_color(value)}; font-family: Cursive; font-size: 20px;\">{value}</span></p>'\n",
        "    html_content += '</div>'\n",
        "\n",
        "    return {\"html_visualization\": html_content}"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "pAMBYA7ZFEk0"
      },
      "source": [
        "## Create an Information Extraction Pipeline\n",
        "\n",
        "To combine the Components in an appropriate and reproducible way, we resort to Haystack Pipelines.\n",
        "The syntax should be easily understood. You can find more infomation [in the docs](https://docs.haystack.deepset.ai/docs/pipelines)."
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "B9W73HI3yBHU"
      },
      "outputs": [],
      "source": [
        "from haystack import Pipeline\n",
        "from haystack.components.fetchers import LinkContentFetcher\n",
        "from haystack.components.converters import HTMLToDocument\n",
        "from haystack.components.preprocessors import DocumentCleaner\n",
        "from haystack.components.routers import DocumentJoiner\n",
        "# in the future, the previous import will become:\n",
        "# from haystack.components.joiners import DocumentJoiner\n",
        "\n",
        "pipe = Pipeline()\n",
        "\n",
        "pipe.add_component(\"fetcher\", LinkContentFetcher())\n",
        "pipe.add_component(\"converter\", HTMLToDocument(extractor_type=\"KeepEverythingExtractor\"))\n",
        "pipe.add_component(\"joiner\", DocumentJoiner())\n",
        "pipe.add_component(\"cleaner\", DocumentCleaner())\n",
        "pipe.add_component(\"prompt_builder\", prompt_builder)\n",
        "pipe.add_component(\"generator\", generator)\n",
        "pipe.add_component(\"parser\", FunctionCallParser())\n",
        "\n",
        "pipe.connect(\"fetcher\", \"converter\")\n",
        "pipe.connect(\"converter\", \"joiner\")\n",
        "pipe.connect(\"joiner\", \"cleaner\")\n",
        "pipe.connect(\"cleaner.documents\", \"prompt_builder.docs\")\n",
        "pipe.connect(\"prompt_builder\", \"generator\")\n",
        "pipe.connect(\"generator\", \"parser\")"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "VOPugHXvKwdp"
      },
      "source": [
        "Let's draw our Pipeline!"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 1000
        },
        "id": "WnSmQw_RHWC8",
        "outputId": "73a447d9-f8a5-4a78-92ef-5501bf5482f2"
      },
      "outputs": [
        {
          "data": {
            "image/png": "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",
            "text/plain": [
              "<IPython.core.display.Image object>"
            ]
          },
          "execution_count": 9,
          "metadata": {},
          "output_type": "execute_result"
        }
      ],
      "source": [
        "from IPython.display import Image\n",
        "\n",
        "pipe.draw('pipe.png')\n",
        "Image('pipe.png')"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "5fCLeNtVLJLm"
      },
      "source": [
        "Now we create an `extract` function that wraps the Pipeline.\n",
        "This will accept:\n",
        "- a `function` dict, containing the structure definition of the information we want to extract\n",
        "- a `url` or a `text`, to use as data source"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "r0fsBycdFxzV"
      },
      "outputs": [],
      "source": [
        "from IPython.display import display, HTML\n",
        "\n",
        "def extract(function:dict, url: Optional[str]=None, text: Optional[str]=None) -> dict:\n",
        "  if not function:\n",
        "    raise ValueError(\"function definition is needed\")\n",
        "  if not url and not text:\n",
        "    raise ValueError(\"URL or text are needed\")\n",
        "  if url and text:\n",
        "    raise ValueError(\"you should specify either a URL or a text\")\n",
        "\n",
        "  urls = []\n",
        "  documents = []\n",
        "  if url:\n",
        "    urls.append(url)\n",
        "  if text:\n",
        "    documents.append(Document(content=text))\n",
        "\n",
        "  generation_kwargs={\"min_new_tokens\":50, # this encourages the model to extract at least some information\n",
        "                     \"max_new_tokens\":1000,\n",
        "                     \"batch_size\":16}\n",
        "\n",
        "  data_for_pipeline = {\"fetcher\":{\"urls\":urls},\n",
        "                       \"joiner\":{\"documents\":documents},\n",
        "                       \"prompt_builder\":{\"function\":function},\n",
        "                       \"generator\": {\"generation_kwargs\": generation_kwargs}}\n",
        "\n",
        "  html_visualization = pipe.run(data=data_for_pipeline)['parser']['html_visualization']\n",
        "  display(HTML(html_visualization))"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "furABTbcV57u"
      },
      "source": [
        "## 🕹️ Try our application!"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "_zgm1yj6WHf7"
      },
      "source": [
        "Let's first define the structure to extract.\n",
        "\n",
        "We are going to parse some articles about animals... 🦆🐻🦌"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "dWtLYYacGGht"
      },
      "outputs": [],
      "source": [
        "function = {\n",
        "    \"name\": \"extract_data\",\n",
        "    \"description\": \"Extract data from text\",\n",
        "    \"parameters\": {\n",
        "        # \"type\": \"object\",  #  I found that the Gorilla model works better without this item\n",
        "        \"properties\": {\n",
        "            \"about_animals\": {\n",
        "                \"description\": \"Is the article about animals?\",\n",
        "                \"type\": \"boolean\",\n",
        "            },\n",
        "            \"about_ai\": {\n",
        "                \"description\": \"Is the article about artificial intelligence?\",\n",
        "                \"type\": \"boolean\",\n",
        "            },\n",
        "            \"weight\": {\n",
        "                \"description\": \"what is the weight of the animal in lbs?\",\n",
        "                \"type\": \"integer\",\n",
        "            },\n",
        "            \"habitat\": {\n",
        "                \"description\": \"List of places where the animal lives\",\n",
        "                \"type\": \"array\",\n",
        "                \"items\": {\"type\": \"string\"},\n",
        "            },\n",
        "            \"diet\": {\n",
        "                \"description\": \"What does the animal eat?\",\n",
        "                \"type\": \"array\",\n",
        "                \"items\": {\"type\": \"string\"},\n",
        "            },\n",
        "            \"predators\": {\n",
        "                \"description\": \"What are the animals that threaten them?\",\n",
        "                \"type\": \"array\",\n",
        "                \"items\": {\"type\": \"string\"},\n",
        "            },\n",
        "        },\n",
        "        \"required\": [\"about_animals\", \"about_ai\", \"habitat\", \"diet\", \"predators\"],\n",
        "    },\n",
        "}"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "bm5ikRkUXEl2"
      },
      "source": [
        "Let's start with an article about **Capybaras**"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 341
        },
        "id": "8JWzR5ZsGP_F",
        "outputId": "9d52cfc5-435f-4f58-fc27-a8e7b96f5aae"
      },
      "outputs": [
        {
          "name": "stderr",
          "output_type": "stream",
          "text": [
            "This is a friendly reminder - the current text generation call will exceed the model's predefined maximum length (2048). Depending on the model, you may observe exceptions, performance degradation, or nothing at all.\n"
          ]
        },
        {
          "data": {
            "text/html": [
              "<div style=\"border: 1px solid #ccc; padding: 10px; border-radius: 5px; background-color: #f9f9f9;\"><p><span style=\"font-family: Cursive; font-size: 30px;\">about_animals:</span>&emsp;<span style=\"background-color:#90EE90; font-family: Cursive; font-size: 20px;\">True</span></p><p><span style=\"font-family: Cursive; font-size: 30px;\">about_ai:</span>&emsp;<span style=\"background-color:#FFCCCB; font-family: Cursive; font-size: 20px;\">False</span></p><p><span style=\"font-family: Cursive; font-size: 30px;\">weight:</span>&emsp;<span style=\"background-color:; font-family: Cursive; font-size: 20px;\">100</span></p><p><span style=\"font-family: Cursive; font-size: 30px;\">habitat:</span>&emsp;<span style=\"background-color:#FFFEE0; font-family: Cursive; font-size: 20px;\">['Panama', 'Colombia', 'Venezuela', 'Guyana', 'Peru', 'Brazil', 'Paraguay', 'Northeast Argentina', 'Uruguay']</span></p><p><span style=\"font-family: Cursive; font-size: 30px;\">diet:</span>&emsp;<span style=\"background-color:#FFFEE0; font-family: Cursive; font-size: 20px;\">['grass', 'aquatic plants', 'grains', 'melons', 'reeds', 'squashes']</span></p><p><span style=\"font-family: Cursive; font-size: 30px;\">predators:</span>&emsp;<span style=\"background-color:#FFFEE0; font-family: Cursive; font-size: 20px;\">['jaguars', 'caimans', 'anacondas', 'ocelots', 'harpy eagles']</span></p></div>"
            ],
            "text/plain": [
              "<IPython.core.display.HTML object>"
            ]
          },
          "metadata": {},
          "output_type": "display_data"
        }
      ],
      "source": [
        "extract(function=function, url=\"https://www.rainforest-alliance.org/species/capybara/\")"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "brMOC5q3XjeD"
      },
      "source": [
        "Now let's try with some text about the **Andean cock of the rock**\n",
        "(from https://www.rainforest-alliance.org/species/cock-rock/)"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "kqlRNy4WXuQl"
      },
      "outputs": [],
      "source": [
        "article=\"\"\"Search for:\\nAbout\\nKnowledge Hub\\nFor Individuals\\nFor Business\\nThe Latest\\nDonate\\nWork With Us\\nSearch for:\\nWhat our seal means\\nWhat We Are Doing\\nOur Impacts\\nOur Approach\\nIssues\\nForests & Biodiversity\\nLivelihoods\\nClimate\\nHuman rights\\nRegions\\nAsia\\nCentral America & Mexico\\nEast Africa\\nSouth America\\nWest & Central Africa\\nWhat You Can Do\\nSupport Our Work\\nEveryday Actions\\nFind the Frog\\nSchool Curricula\\nKids Games & Activities\\nShop to Support\\nFor Business\\nCertification\\nMarketing Sustainability\\nTailored Supply Chain Services\\nFor Partners\\nAbout\\nHelp Center\\nThe Latest\\nEvents\\nWhat We Are Doing\\nOur Impacts\\nSee the positive change our work is making around the\\n\\t\\t\\t\\t\\t\\tworld.\\nLEARN\\n\\t\\t\\t\\t\\t\\t\\tMORE\\nOur Approach\\nIssues\\nForests & Biodiversity\\nLivelihoods\\nClimate\\nHuman\\n\\t\\t\\t\\t\\t\\tRights\\nRegions\\nAsia\\nEast\\n\\t\\t\\t\\t\\t\\tAfrica\\nWest\\n\\t\\t\\t\\t\\t\\t& Central Africa\\nSouth\\n\\t\\t\\t\\t\\t\\tAmerica\\nMexico\\n\\t\\t\\t\\t\\t\\t& Central America\\nWhat You Can Do\\nSupport Our Work\\nThere are many ways you can protect rainforests, fight\\n\\t\\t\\t\\t\\t\\tclimate change, and help people and wildlife\\n\\t\\t\\t\\t\\t\\tthrive.\\nEXPLORE YOUR\\n\\t\\t\\t\\t\\t\\t\\tGIVING OPTIONS\\nEveryday\\n\\t\\t\\t\\t\\t\\tActions\\nFind the Frog\\nSchool\\n\\t\\t\\t\\t\\t\\tCurricula\\nKids’ Games\\n\\t\\t\\t\\t\\t\\t& Activities\\nShop to Support\\nFor Business\\nTransform your\\n\\t\\t\\t\\t\\t\\tbusiness practices\\nWhat Our Seal Means\\nThe Rainforest Alliance certification seal means that the\\n\\t\\t\\t\\t\\t\\tproduct (or a specified ingredient) was produced by\\n\\t\\t\\t\\t\\t\\tfarmers, foresters, and/or companies working together to\\n\\t\\t\\t\\t\\t\\tcreate a world where people and nature thrive in\\n\\t\\t\\t\\t\\t\\tharmony.\\nLEARN\\n\\t\\t\\t\\t\\t\\t\\tMORE\\nDonate\\nSpecies Profile\\nCock-of-the-Rock\\nRupicola peruviana\\nLast updated on November 29, 2006\\nCock-of-the-rock photo by\\xa0Panegyrics of Granovetter\\nPhoto credit: Panegyrics of Granovetter\\nShare this...\\nFacebook\\nTwitter\\nLinkedin\\nEmail\\nAnatomy\\nA beautiful orange crest adorns the head of the cock-of-the-rock and brilliant orange, black and white feathers cover its back and wings. As with most birds, the female coloring is subtler. Their strong claws and legs allow them to grip onto steep cliffs and rocks.\\nDid you know?\\nForests are home to 80 percent of Earth\\'s terrestrial biodiversity! We\\'re preserving habitats for endangered species, conserving wildlife corridors, and saving breeding grounds. Please join our alliance to keep forests standing:\\n\"*\" indicates required fields\\nEmail*\\nGDPR Consent\\nYes, I agree to receive occasional emails from the Rainforest Alliance.\\nHabitat\\nFound in the Andes from Venezuela to Bolivia, the cock-of-the-rock lives only in mountainous regions and builds its nests on the rocky surfaces of cliffs, large boulders and caves.\\nDiet\\nThe cock-of-the–rock’s diet consists mainly of fruit. Often, these colorful birds do not digest the seeds of their fruity meals. Instead the seeds pass through their digestive tracks and are eventually scattered along the ground, making these birds extremely important seed dispersers. In addition to fruit, cocks-of-the-rock eat insects and small vertebrates.\\nThreats\\nMany predators are attracted to the cock-of-the-rock’s beautiful plumage. These include birds of prey such as eagles and hawks, puma and jaguars and even boa constrictors. The loss of habitat, predominantly from forestland being converted to farmland, is a major threat to the survival of this brilliant bird.\\nSources\\nJukofsky, Diane. Encyclopedia of Rainforests. Connecticut: Oryx Press, 2002.\\nEcology Info\\n“Cock of the Rock,” Houston Zoo website, 2007.\\nPhoto by Veronica Muñoz\\nTags:\\nEnvironmental Curriculum for Schools\\nHelp Conserve Forests And Restore Balance To Our Planet\\nMake your gift go further (and greener) with a monthly pledge\\nDonate\\nConservation Status Least Concern\\nType\\nBirds\\nFound In\\nSouth America\\nFact Often, these colorful birds do not digest the seeds of their fruity meals. Instead the seeds pass through their digestive tracks and are eventually scattered along the ground, making these birds extremely important seed dispersers.\\nYou Might Also Like...\\nSpecies Profile\\nCerulean Warbler\\nSpecies Profile\\nAfrican Grey Parrot\\nSpecies Profile\\nScarlet Macaw\\nSpecies Profile\\nGreat Curassow\\nFor Business\\nTransform your business practices\\nFor Supporters\\nHelp us rebalance the planet\\nFor Researchers\\nSee how we measure our impacts\\nFor Educators\\nUse our conservation curricula in your classroom\\nThe Rainforest Alliance is a 501(c)(3) Nonprofit registered in the US under EIN: 13-3377893.\\nIn 2022, 75% of our income supported sustainability programs. Learn More »\\nFollow Us\\nFacebook\\nInstagram\\nLinkedIn\\nTikTok\\nYouTube\\nSubscribe\\nSign up for business updates or general updates\\nFAQ\\nPress\\nFinancials\\nCertification Documents\\nCareers\\nContact Us\\n© Copyright 1987 - 2023, Rainforest Alliance | Privacy Policy | Cookie Policy\\nRainforest Match Active\\nDouble your impact against deforestation.\\nAct now!\\nGive today\\nX\\nHabitats Matter.\\nYour gift helps protect vital forest habitats for wildlife.\\nGive today\\nX\\nPeople & Forests\\nSupport nature’s guardians. Act now.\\nGive Support\\nX\\n\"\"\""
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 261
        },
        "id": "5qPN4yB3gwMh",
        "outputId": "694e3b83-bd26-4788-e04f-fc927a2b1e38"
      },
      "outputs": [
        {
          "data": {
            "text/html": [
              "<div style=\"border: 1px solid #ccc; padding: 10px; border-radius: 5px; background-color: #f9f9f9;\"><p><span style=\"font-family: Cursive; font-size: 30px;\">about_animals:</span>&emsp;<span style=\"background-color:#90EE90; font-family: Cursive; font-size: 20px;\">True</span></p><p><span style=\"font-family: Cursive; font-size: 30px;\">about_ai:</span>&emsp;<span style=\"background-color:#FFCCCB; font-family: Cursive; font-size: 20px;\">False</span></p><p><span style=\"font-family: Cursive; font-size: 30px;\">habitat:</span>&emsp;<span style=\"background-color:#FFFEE0; font-family: Cursive; font-size: 20px;\">['South America']</span></p><p><span style=\"font-family: Cursive; font-size: 30px;\">diet:</span>&emsp;<span style=\"background-color:#FFFEE0; font-family: Cursive; font-size: 20px;\">['fruit']</span></p><p><span style=\"font-family: Cursive; font-size: 30px;\">predators:</span>&emsp;<span style=\"background-color:#FFFEE0; font-family: Cursive; font-size: 20px;\">['puma', 'jaguars', 'boa constrictors']</span></p></div>"
            ],
            "text/plain": [
              "<IPython.core.display.HTML object>"
            ]
          },
          "metadata": {},
          "output_type": "display_data"
        }
      ],
      "source": [
        "extract(function=function, text=article)"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "_rQhVWTkaSkw"
      },
      "source": [
        "Now, the **Yucatan Deer**!"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 261
        },
        "id": "L3SCmn5IkOFE",
        "outputId": "a95c975f-26b4-4af8-d888-ed9a3b032233"
      },
      "outputs": [
        {
          "data": {
            "text/html": [
              "<div style=\"border: 1px solid #ccc; padding: 10px; border-radius: 5px; background-color: #f9f9f9;\"><p><span style=\"font-family: Cursive; font-size: 30px;\">about_animals:</span>&emsp;<span style=\"background-color:#90EE90; font-family: Cursive; font-size: 20px;\">True</span></p><p><span style=\"font-family: Cursive; font-size: 30px;\">about_ai:</span>&emsp;<span style=\"background-color:#FFCCCB; font-family: Cursive; font-size: 20px;\">False</span></p><p><span style=\"font-family: Cursive; font-size: 30px;\">habitat:</span>&emsp;<span style=\"background-color:#FFFEE0; font-family: Cursive; font-size: 20px;\">['Central America & Mexico', 'South America']</span></p><p><span style=\"font-family: Cursive; font-size: 30px;\">diet:</span>&emsp;<span style=\"background-color:#FFFEE0; font-family: Cursive; font-size: 20px;\">['grass', 'leaves', 'sprouts', 'lichens', 'tree bark', 'fruit']</span></p><p><span style=\"font-family: Cursive; font-size: 30px;\">predators:</span>&emsp;<span style=\"background-color:#FFFEE0; font-family: Cursive; font-size: 20px;\">['cougar', 'jaguar', 'ticks', 'horseflies', 'mosquitoes']</span></p></div>"
            ],
            "text/plain": [
              "<IPython.core.display.HTML object>"
            ]
          },
          "metadata": {},
          "output_type": "display_data"
        }
      ],
      "source": [
        "extract(function=function, url=\"https://www.rainforest-alliance.org/species/yucatan-deer/\")"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "zcC95R5dcozT"
      },
      "source": [
        "A completely different example, about AI..."
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "BbK-q_6NcvrT"
      },
      "outputs": [],
      "source": [
        "function = {\n",
        "    \"name\": \"extract_data\",\n",
        "    \"description\": \"Extract data from text\",\n",
        "    \"parameters\": {\n",
        "        \"properties\": {\n",
        "            \"date\": {\"type\": \"string\", \"format\": \"date\"},\n",
        "            \"about_animals\": {\n",
        "                \"description\": \"Is the article about animals?\",\n",
        "                \"type\": \"boolean\",\n",
        "            },\n",
        "            \"about_ai\": {\n",
        "                \"description\": \"Is the article about artificial intelligence?\",\n",
        "                \"type\": \"boolean\",\n",
        "            },\n",
        "            \"people\": {\n",
        "                \"type\": \"array\",\n",
        "                \"description\": \"Please list the mentioned people\",\n",
        "                \"items\": {\"type\": \"string\"},\n",
        "            },\n",
        "            \"summary\": {\n",
        "                \"type\": \"string\",\n",
        "                \"description\": \"Summarize what happened in one sentence.\",\n",
        "            },\n",
        "            \"required\": [\"date\", \"about_animals\", \"about_ai\", \"people\", \"summary\"],\n",
        "        }\n",
        "    },\n",
        "}\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 261
        },
        "id": "BU1ehEqtKEui",
        "outputId": "1564b4d3-fb63-4beb-a42f-343c3c34241c"
      },
      "outputs": [
        {
          "data": {
            "text/html": [
              "<div style=\"border: 1px solid #ccc; padding: 10px; border-radius: 5px; background-color: #f9f9f9;\"><p><span style=\"font-family: Cursive; font-size: 30px;\">date:</span>&emsp;<span style=\"background-color:; font-family: Cursive; font-size: 20px;\">2023-11-22</span></p><p><span style=\"font-family: Cursive; font-size: 30px;\">about_animals:</span>&emsp;<span style=\"background-color:#FFCCCB; font-family: Cursive; font-size: 20px;\">False</span></p><p><span style=\"font-family: Cursive; font-size: 30px;\">about_ai:</span>&emsp;<span style=\"background-color:#90EE90; font-family: Cursive; font-size: 20px;\">True</span></p><p><span style=\"font-family: Cursive; font-size: 30px;\">people:</span>&emsp;<span style=\"background-color:#FFFEE0; font-family: Cursive; font-size: 20px;\">['Sam Altman', 'Greg Brockman', 'Ilya Sutskever']</span></p><p><span style=\"font-family: Cursive; font-size: 30px;\">summary:</span>&emsp;<span style=\"background-color:; font-family: Cursive; font-size: 20px;\">Sam Altman returns as CEO of OpenAI</span></p></div>"
            ],
            "text/plain": [
              "<IPython.core.display.HTML object>"
            ]
          },
          "metadata": {},
          "output_type": "display_data"
        }
      ],
      "source": [
        "extract(function=function, url=\"https://www.theverge.com/2023/11/22/23967223/sam-altman-returns-ceo-open-ai\")"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "mG-W-d9Le-sp"
      },
      "source": [
        "## ⚠️ Caveats and 🔮 future directions\n",
        "- I found the model a bit unstable. Changing the function definition slightly can alter the extraction results and even lead to unparsable function calls.\n",
        "- It would be nice to try other similar models, such as [NexusRaven](https://huggingface.co/Nexusflow/NexusRaven-V2-13B)\n",
        "- Good open source generic models (not fine-tuned for function calling) should also be investigated ([Anyscale announcement on function calling using Mistral-7B-Instruct-v0.1](https://www.anyscale.com/blog/anyscale-endpoints-json-mode-and-function-calling-features))"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {},
      "source": [
        "## 📚 References\n",
        "*Related to the experiment*\n",
        "- [Haystack LLM framework](https://haystack.deepset.ai/)\n",
        "- [Using OpenAI Function Calling for Information Extraction: gist by Kyle McDonald](https://gist.github.com/kylemcdonald/dbac21de2d7855633689f5526225154c)\n",
        "- Gorilla OpenFunctions: [release post](https://gorilla.cs.berkeley.edu/blogs/4_open_functions.html) and [GitHub repository](https://github.com/ShishirPatil/gorilla/tree/main/openfunctions)\n",
        "\n",
        "*Other interesting resources on the topic*\n",
        "- [Instructor project: structured extraction in Python, powered by OpenAI's function calling api](https://jxnl.github.io/instructor/)\n",
        "- [NexusRaven-V2: Surpassing GPT-4 for Zero-shot Function Calling](https://nexusflow.ai/blogs/ravenv2)"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {},
      "source": []
    }
  ],
  "metadata": {
    "accelerator": "GPU",
    "colab": {
      "gpuType": "T4",
      "provenance": []
    },
    "kernelspec": {
      "display_name": "Python 3",
      "name": "python3"
    },
    "language_info": {
      "name": "python"
    },
    "widgets": {
      "application/vnd.jupyter.widget-state+json": {
        "00ac0ccbad934b2589ed3cc1f9ffc976": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "ProgressStyleModel",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "ProgressStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "bar_color": null,
            "description_width": ""
          }
        },
        "455dc9910a3947d089b88acd80539727": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "DescriptionStyleModel",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "4ffa82cec76c4fbebd13f0cd18e9669d": {
          "model_module": "@jupyter-widgets/base",
          "model_module_version": "1.2.0",
          "model_name": "LayoutModel",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "5ac7b29812ca459281ff7970334f8c98": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "HTMLModel",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_c6068da42c4a42f0bfab76d3944f9980",
            "placeholder": "​",
            "style": "IPY_MODEL_455dc9910a3947d089b88acd80539727",
            "value": " 7/7 [01:07&lt;00:00,  9.23s/it]"
          }
        },
        "716bf646f0c44a34ab568c3f1d795764": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "DescriptionStyleModel",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "72932512578446e2ba5e1fa1484c2122": {
          "model_module": "@jupyter-widgets/base",
          "model_module_version": "1.2.0",
          "model_name": "LayoutModel",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "865149cdf9f64f308481884092049356": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "HTMLModel",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_72932512578446e2ba5e1fa1484c2122",
            "placeholder": "​",
            "style": "IPY_MODEL_716bf646f0c44a34ab568c3f1d795764",
            "value": "Loading checkpoint shards: 100%"
          }
        },
        "9219aad138f241f9854c3aa32825fc6e": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "FloatProgressModel",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "FloatProgressModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "ProgressView",
            "bar_style": "success",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_4ffa82cec76c4fbebd13f0cd18e9669d",
            "max": 7,
            "min": 0,
            "orientation": "horizontal",
            "style": "IPY_MODEL_00ac0ccbad934b2589ed3cc1f9ffc976",
            "value": 7
          }
        },
        "c6068da42c4a42f0bfab76d3944f9980": {
          "model_module": "@jupyter-widgets/base",
          "model_module_version": "1.2.0",
          "model_name": "LayoutModel",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "e5579df0e65e4fbc9e5fbe26bcbafb4d": {
          "model_module": "@jupyter-widgets/base",
          "model_module_version": "1.2.0",
          "model_name": "LayoutModel",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "f9199a6a93bd476399bb10f0c5998ff5": {
          "model_module": "@jupyter-widgets/controls",
          "model_module_version": "1.5.0",
          "model_name": "HBoxModel",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HBoxModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HBoxView",
            "box_style": "",
            "children": [
              "IPY_MODEL_865149cdf9f64f308481884092049356",
              "IPY_MODEL_9219aad138f241f9854c3aa32825fc6e",
              "IPY_MODEL_5ac7b29812ca459281ff7970334f8c98"
            ],
            "layout": "IPY_MODEL_e5579df0e65e4fbc9e5fbe26bcbafb4d"
          }
        }
      }
    }
  },
  "nbformat": 4,
  "nbformat_minor": 0
}
