{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "## All package installation and libraries imports\n", "### Packages installation" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": true, "id": "rd5vZMt_2wrC" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com\n", "Collecting accelerate\n", " Obtaining dependency information for accelerate from https://files.pythonhosted.org/packages/1b/da/24a54b9205fce3bdbaad521c35944d0b0a2d292ac5ae921e484b76312b43/accelerate-0.27.2-py3-none-any.whl.metadata\n", " Downloading accelerate-0.27.2-py3-none-any.whl.metadata (18 kB)\n", "Requirement already satisfied: numpy>=1.17 in /usr/local/lib/python3.10/dist-packages (from accelerate) (1.22.2)\n", "Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.10/dist-packages (from accelerate) (23.1)\n", "Requirement already satisfied: psutil in /usr/local/lib/python3.10/dist-packages (from accelerate) (5.9.4)\n", "Requirement already satisfied: pyyaml in /usr/local/lib/python3.10/dist-packages (from accelerate) (6.0.1)\n", "Requirement already satisfied: torch>=1.10.0 in /usr/local/lib/python3.10/dist-packages (from accelerate) (2.1.0a0+32f93b1)\n", "Collecting huggingface-hub (from accelerate)\n", " Obtaining dependency information for huggingface-hub from https://files.pythonhosted.org/packages/28/03/7d3c7153113ec59cfb31e3b8ee773f5f420a0dd7d26d40442542b96675c3/huggingface_hub-0.20.3-py3-none-any.whl.metadata\n", " Downloading huggingface_hub-0.20.3-py3-none-any.whl.metadata (12 kB)\n", "Collecting safetensors>=0.3.1 (from accelerate)\n", " Obtaining dependency information for safetensors>=0.3.1 from https://files.pythonhosted.org/packages/d0/ba/b2254fafc7f5fdc98a2fa4d5a5eeb029fbf9589ec87f2c230c3ac0a1dd53/safetensors-0.4.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata\n", " Downloading safetensors-0.4.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (3.8 kB)\n", "Requirement already satisfied: filelock in /usr/local/lib/python3.10/dist-packages (from torch>=1.10.0->accelerate) (3.12.4)\n", "Requirement already satisfied: typing-extensions in /usr/local/lib/python3.10/dist-packages (from torch>=1.10.0->accelerate) (4.7.1)\n", "Requirement already satisfied: sympy in /usr/local/lib/python3.10/dist-packages (from torch>=1.10.0->accelerate) (1.12)\n", "Requirement already satisfied: networkx in /usr/local/lib/python3.10/dist-packages (from torch>=1.10.0->accelerate) (2.6.3)\n", "Requirement already satisfied: jinja2 in /usr/local/lib/python3.10/dist-packages (from torch>=1.10.0->accelerate) (3.1.2)\n", "Requirement already satisfied: fsspec in /usr/local/lib/python3.10/dist-packages (from torch>=1.10.0->accelerate) (2023.6.0)\n", "Requirement already satisfied: requests in /usr/local/lib/python3.10/dist-packages (from huggingface-hub->accelerate) (2.31.0)\n", "Requirement already satisfied: tqdm>=4.42.1 in /usr/local/lib/python3.10/dist-packages (from huggingface-hub->accelerate) (4.66.1)\n", "Requirement already satisfied: MarkupSafe>=2.0 in /usr/local/lib/python3.10/dist-packages (from jinja2->torch>=1.10.0->accelerate) (2.1.3)\n", "Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.10/dist-packages (from requests->huggingface-hub->accelerate) (3.2.0)\n", "Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/dist-packages (from requests->huggingface-hub->accelerate) (3.4)\n", "Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.10/dist-packages (from requests->huggingface-hub->accelerate) (1.26.16)\n", "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/dist-packages (from requests->huggingface-hub->accelerate) (2023.7.22)\n", "Requirement already satisfied: mpmath>=0.19 in /usr/local/lib/python3.10/dist-packages (from sympy->torch>=1.10.0->accelerate) (1.3.0)\n", "Downloading accelerate-0.27.2-py3-none-any.whl (279 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m280.0/280.0 kB\u001b[0m \u001b[31m12.9 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hDownloading safetensors-0.4.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.3 MB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m1.3/1.3 MB\u001b[0m \u001b[31m20.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0ma \u001b[36m0:00:01\u001b[0m\n", "\u001b[?25hDownloading huggingface_hub-0.20.3-py3-none-any.whl (330 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m330.1/330.1 kB\u001b[0m \u001b[31m36.3 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hInstalling collected packages: safetensors, huggingface-hub, accelerate\n", "Successfully installed accelerate-0.27.2 huggingface-hub-0.20.3 safetensors-0.4.2\n", "\u001b[33mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv\u001b[0m\u001b[33m\n", "\u001b[0m\n", "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip is available: \u001b[0m\u001b[31;49m23.2.1\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m24.0\u001b[0m\n", "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpython -m pip install --upgrade pip\u001b[0m\n", "Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com\n", "Collecting bitsandbytes\n", " Obtaining dependency information for bitsandbytes from https://files.pythonhosted.org/packages/9b/63/489ef9cd7a33c1f08f1b2be51d1b511883c5e34591aaa9873b30021cd679/bitsandbytes-0.42.0-py3-none-any.whl.metadata\n", " Downloading bitsandbytes-0.42.0-py3-none-any.whl.metadata (9.9 kB)\n", "Requirement already satisfied: scipy in /usr/local/lib/python3.10/dist-packages (from bitsandbytes) (1.11.1)\n", "Requirement already satisfied: numpy<1.28.0,>=1.21.6 in /usr/local/lib/python3.10/dist-packages (from scipy->bitsandbytes) (1.22.2)\n", "Downloading bitsandbytes-0.42.0-py3-none-any.whl (105.0 MB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m105.0/105.0 MB\u001b[0m \u001b[31m79.3 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m00:01\u001b[0m00:01\u001b[0m\n", "\u001b[?25hInstalling collected packages: bitsandbytes\n", "Successfully installed bitsandbytes-0.42.0\n", "\u001b[33mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv\u001b[0m\u001b[33m\n", "\u001b[0m\n", "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip is available: \u001b[0m\u001b[31;49m23.2.1\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m24.0\u001b[0m\n", "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpython -m pip install --upgrade pip\u001b[0m\n", "Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com\n", "Collecting optimum\n", " Obtaining dependency information for optimum from https://files.pythonhosted.org/packages/cc/a8/9b311809c51d5c9bc5a495edc6c8873c92db69cfecf69d4ec3c845e9804f/optimum-1.16.2-py3-none-any.whl.metadata\n", " Downloading optimum-1.16.2-py3-none-any.whl.metadata (17 kB)\n", "Collecting coloredlogs (from optimum)\n", " Downloading coloredlogs-15.0.1-py2.py3-none-any.whl (46 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m46.0/46.0 kB\u001b[0m \u001b[31m7.9 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hRequirement already satisfied: sympy in /usr/local/lib/python3.10/dist-packages (from optimum) (1.12)\n", "Collecting transformers[sentencepiece]>=4.26.0 (from optimum)\n", " Obtaining dependency information for transformers[sentencepiece]>=4.26.0 from https://files.pythonhosted.org/packages/85/f6/c5065913119c41ecad148c34e3a861f719e16b89a522287213698da911fc/transformers-4.37.2-py3-none-any.whl.metadata\n", " Downloading transformers-4.37.2-py3-none-any.whl.metadata (129 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m129.4/129.4 kB\u001b[0m \u001b[31m20.9 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hRequirement already satisfied: torch>=1.11 in /usr/local/lib/python3.10/dist-packages (from optimum) (2.1.0a0+32f93b1)\n", "Requirement already satisfied: packaging in /usr/local/lib/python3.10/dist-packages (from optimum) (23.1)\n", "Requirement already satisfied: numpy in /usr/local/lib/python3.10/dist-packages (from optimum) (1.22.2)\n", "Requirement already satisfied: huggingface-hub>=0.8.0 in /usr/local/lib/python3.10/dist-packages (from optimum) (0.20.3)\n", "Collecting datasets (from optimum)\n", " Obtaining dependency information for datasets from https://files.pythonhosted.org/packages/74/4d/63b033169534f0742b7fe13957118cae08c83b04bfde46511f397872e2e7/datasets-2.17.0-py3-none-any.whl.metadata\n", " Downloading datasets-2.17.0-py3-none-any.whl.metadata (20 kB)\n", "Requirement already satisfied: filelock in /usr/local/lib/python3.10/dist-packages (from huggingface-hub>=0.8.0->optimum) (3.12.4)\n", "Requirement already satisfied: fsspec>=2023.5.0 in /usr/local/lib/python3.10/dist-packages (from huggingface-hub>=0.8.0->optimum) (2023.6.0)\n", "Requirement already satisfied: requests in /usr/local/lib/python3.10/dist-packages (from huggingface-hub>=0.8.0->optimum) (2.31.0)\n", "Requirement already satisfied: tqdm>=4.42.1 in /usr/local/lib/python3.10/dist-packages (from huggingface-hub>=0.8.0->optimum) (4.66.1)\n", "Requirement already satisfied: pyyaml>=5.1 in /usr/local/lib/python3.10/dist-packages (from huggingface-hub>=0.8.0->optimum) (6.0.1)\n", "Requirement already satisfied: typing-extensions>=3.7.4.3 in /usr/local/lib/python3.10/dist-packages (from huggingface-hub>=0.8.0->optimum) (4.7.1)\n", "Requirement already satisfied: networkx in /usr/local/lib/python3.10/dist-packages (from torch>=1.11->optimum) (2.6.3)\n", "Requirement already satisfied: jinja2 in /usr/local/lib/python3.10/dist-packages (from torch>=1.11->optimum) (3.1.2)\n", "Requirement already satisfied: regex!=2019.12.17 in /usr/local/lib/python3.10/dist-packages (from transformers[sentencepiece]>=4.26.0->optimum) (2023.10.3)\n", "Collecting tokenizers<0.19,>=0.14 (from transformers[sentencepiece]>=4.26.0->optimum)\n", " Obtaining dependency information for tokenizers<0.19,>=0.14 from https://files.pythonhosted.org/packages/1c/5d/cf5e122ce4f1a29f165b2a69dc33d1ff30bce303343d58a54775ddba5d51/tokenizers-0.15.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata\n", " Downloading tokenizers-0.15.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (6.7 kB)\n", "Requirement already satisfied: safetensors>=0.4.1 in /usr/local/lib/python3.10/dist-packages (from transformers[sentencepiece]>=4.26.0->optimum) (0.4.2)\n", "Collecting sentencepiece!=0.1.92,>=0.1.91 (from transformers[sentencepiece]>=4.26.0->optimum)\n", " Obtaining dependency information for sentencepiece!=0.1.92,>=0.1.91 from https://files.pythonhosted.org/packages/7f/e5/323dc813b3e1339305f888d035e2f3725084fc4dcf051995b366dd26cc90/sentencepiece-0.1.99-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata\n", " Downloading sentencepiece-0.1.99-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (7.7 kB)\n", "Requirement already satisfied: protobuf in /usr/local/lib/python3.10/dist-packages (from transformers[sentencepiece]>=4.26.0->optimum) (4.24.4)\n", "Collecting humanfriendly>=9.1 (from coloredlogs->optimum)\n", " Downloading humanfriendly-10.0-py2.py3-none-any.whl (86 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m86.8/86.8 kB\u001b[0m \u001b[31m51.3 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hCollecting pyarrow>=12.0.0 (from datasets->optimum)\n", " Obtaining dependency information for pyarrow>=12.0.0 from https://files.pythonhosted.org/packages/d4/ca/ef67abb77f9dd51a0d3ff7fcebff58296068a046d7da352b9548070005ed/pyarrow-15.0.0-cp310-cp310-manylinux_2_28_x86_64.whl.metadata\n", " Downloading pyarrow-15.0.0-cp310-cp310-manylinux_2_28_x86_64.whl.metadata (3.0 kB)\n", "Collecting pyarrow-hotfix (from datasets->optimum)\n", " Obtaining dependency information for pyarrow-hotfix from https://files.pythonhosted.org/packages/e4/f4/9ec2222f5f5f8ea04f66f184caafd991a39c8782e31f5b0266f101cb68ca/pyarrow_hotfix-0.6-py3-none-any.whl.metadata\n", " Downloading pyarrow_hotfix-0.6-py3-none-any.whl.metadata (3.6 kB)\n", "Collecting dill<0.3.9,>=0.3.0 (from datasets->optimum)\n", " Obtaining dependency information for dill<0.3.9,>=0.3.0 from https://files.pythonhosted.org/packages/c9/7a/cef76fd8438a42f96db64ddaa85280485a9c395e7df3db8158cfec1eee34/dill-0.3.8-py3-none-any.whl.metadata\n", " Downloading dill-0.3.8-py3-none-any.whl.metadata (10 kB)\n", "Requirement already satisfied: pandas in /usr/local/lib/python3.10/dist-packages (from datasets->optimum) (1.5.3)\n", "Collecting xxhash (from datasets->optimum)\n", " Obtaining dependency information for xxhash from https://files.pythonhosted.org/packages/80/8a/1dd41557883b6196f8f092011a5c1f72d4d44cf36d7b67d4a5efe3127949/xxhash-3.4.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata\n", " Downloading xxhash-3.4.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (12 kB)\n", "Collecting multiprocess (from datasets->optimum)\n", " Obtaining dependency information for multiprocess from https://files.pythonhosted.org/packages/bc/f7/7ec7fddc92e50714ea3745631f79bd9c96424cb2702632521028e57d3a36/multiprocess-0.70.16-py310-none-any.whl.metadata\n", " Downloading multiprocess-0.70.16-py310-none-any.whl.metadata (7.2 kB)\n", "Requirement already satisfied: aiohttp in /usr/local/lib/python3.10/dist-packages (from datasets->optimum) (3.8.5)\n", "Requirement already satisfied: mpmath>=0.19 in /usr/local/lib/python3.10/dist-packages (from sympy->optimum) (1.3.0)\n", "Requirement already satisfied: attrs>=17.3.0 in /usr/local/lib/python3.10/dist-packages (from aiohttp->datasets->optimum) (23.1.0)\n", "Requirement already satisfied: charset-normalizer<4.0,>=2.0 in /usr/local/lib/python3.10/dist-packages (from aiohttp->datasets->optimum) (3.2.0)\n", "Requirement already satisfied: multidict<7.0,>=4.5 in /usr/local/lib/python3.10/dist-packages (from aiohttp->datasets->optimum) (6.0.4)\n", "Requirement already satisfied: async-timeout<5.0,>=4.0.0a3 in /usr/local/lib/python3.10/dist-packages (from aiohttp->datasets->optimum) (4.0.3)\n", "Requirement already satisfied: yarl<2.0,>=1.0 in /usr/local/lib/python3.10/dist-packages (from aiohttp->datasets->optimum) (1.9.2)\n", "Requirement already satisfied: frozenlist>=1.1.1 in /usr/local/lib/python3.10/dist-packages (from aiohttp->datasets->optimum) (1.4.0)\n", "Requirement already satisfied: aiosignal>=1.1.2 in /usr/local/lib/python3.10/dist-packages (from aiohttp->datasets->optimum) (1.3.1)\n", "Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/dist-packages (from requests->huggingface-hub>=0.8.0->optimum) (3.4)\n", "Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.10/dist-packages (from requests->huggingface-hub>=0.8.0->optimum) (1.26.16)\n", "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/dist-packages (from requests->huggingface-hub>=0.8.0->optimum) (2023.7.22)\n", "Requirement already satisfied: MarkupSafe>=2.0 in /usr/local/lib/python3.10/dist-packages (from jinja2->torch>=1.11->optimum) (2.1.3)\n", "Requirement already satisfied: python-dateutil>=2.8.1 in /usr/local/lib/python3.10/dist-packages (from pandas->datasets->optimum) (2.8.2)\n", "Requirement already satisfied: pytz>=2020.1 in /usr/local/lib/python3.10/dist-packages (from pandas->datasets->optimum) (2023.3)\n", "Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.10/dist-packages (from python-dateutil>=2.8.1->pandas->datasets->optimum) (1.16.0)\n", "Downloading optimum-1.16.2-py3-none-any.whl (402 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m402.5/402.5 kB\u001b[0m \u001b[31m16.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hDownloading datasets-2.17.0-py3-none-any.whl (536 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m536.6/536.6 kB\u001b[0m \u001b[31m19.9 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hDownloading dill-0.3.8-py3-none-any.whl (116 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m116.3/116.3 kB\u001b[0m \u001b[31m20.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hDownloading pyarrow-15.0.0-cp310-cp310-manylinux_2_28_x86_64.whl (38.3 MB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m38.3/38.3 MB\u001b[0m \u001b[31m63.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m00:01\u001b[0m00:01\u001b[0m\n", "\u001b[?25hDownloading sentencepiece-0.1.99-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.3 MB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m1.3/1.3 MB\u001b[0m \u001b[31m71.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hDownloading tokenizers-0.15.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.6 MB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m3.6/3.6 MB\u001b[0m \u001b[31m70.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0ma \u001b[36m0:00:01\u001b[0m\n", "\u001b[?25hDownloading multiprocess-0.70.16-py310-none-any.whl (134 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m134.8/134.8 kB\u001b[0m \u001b[31m429.1 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hDownloading pyarrow_hotfix-0.6-py3-none-any.whl (7.9 kB)\n", "Downloading transformers-4.37.2-py3-none-any.whl (8.4 MB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m8.4/8.4 MB\u001b[0m \u001b[31m69.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0ma \u001b[36m0:00:01\u001b[0m\n", "\u001b[?25hDownloading xxhash-3.4.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (194 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m194.1/194.1 kB\u001b[0m \u001b[31m496.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hInstalling collected packages: sentencepiece, xxhash, pyarrow-hotfix, pyarrow, humanfriendly, dill, multiprocess, coloredlogs, tokenizers, transformers, datasets, optimum\n", " Attempting uninstall: pyarrow\n", " Found existing installation: pyarrow 11.0.0\n", " Uninstalling pyarrow-11.0.0:\n", " Successfully uninstalled pyarrow-11.0.0\n", "Successfully installed coloredlogs-15.0.1 datasets-2.17.0 dill-0.3.8 humanfriendly-10.0 multiprocess-0.70.16 optimum-1.16.2 pyarrow-15.0.0 pyarrow-hotfix-0.6 sentencepiece-0.1.99 tokenizers-0.15.2 transformers-4.37.2 xxhash-3.4.1\n", "\u001b[33mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv\u001b[0m\u001b[33m\n", "\u001b[0m\n", "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip is available: \u001b[0m\u001b[31;49m23.2.1\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m24.0\u001b[0m\n", "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpython -m pip install --upgrade pip\u001b[0m\n", "Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com\n", "Collecting auto-gptq\n", " Obtaining dependency information for auto-gptq from https://files.pythonhosted.org/packages/09/b2/c964b7f286ce5f782c1be0b46700091daa60a121b41e06d9a59047b45e57/auto_gptq-0.6.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata\n", " Downloading auto_gptq-0.6.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (20 kB)\n", "Requirement already satisfied: accelerate>=0.22.0 in /usr/local/lib/python3.10/dist-packages (from auto-gptq) (0.27.2)\n", "Requirement already satisfied: datasets in /usr/local/lib/python3.10/dist-packages (from auto-gptq) (2.17.0)\n", "Requirement already satisfied: sentencepiece in /usr/local/lib/python3.10/dist-packages (from auto-gptq) (0.1.99)\n", "Requirement already satisfied: numpy in /usr/local/lib/python3.10/dist-packages (from auto-gptq) (1.22.2)\n", "Collecting rouge (from auto-gptq)\n", " Downloading rouge-1.0.1-py3-none-any.whl (13 kB)\n", "Collecting gekko (from auto-gptq)\n", " Downloading gekko-1.0.6-py3-none-any.whl (12.2 MB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m12.2/12.2 MB\u001b[0m \u001b[31m84.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0ma \u001b[36m0:00:01\u001b[0m\n", "\u001b[?25hRequirement already satisfied: torch>=1.13.0 in /usr/local/lib/python3.10/dist-packages (from auto-gptq) (2.1.0a0+32f93b1)\n", "Requirement already satisfied: safetensors in /usr/local/lib/python3.10/dist-packages (from auto-gptq) (0.4.2)\n", "Requirement already satisfied: transformers>=4.31.0 in /usr/local/lib/python3.10/dist-packages (from auto-gptq) (4.37.2)\n", "Collecting peft>=0.5.0 (from auto-gptq)\n", " Obtaining dependency information for peft>=0.5.0 from https://files.pythonhosted.org/packages/07/63/168af5aa8dbda9c23ad774a4c1d311cfe220c634e0d05a3a82a7cae01bd8/peft-0.8.2-py3-none-any.whl.metadata\n", " Downloading peft-0.8.2-py3-none-any.whl.metadata (25 kB)\n", "Requirement already satisfied: tqdm in /usr/local/lib/python3.10/dist-packages (from auto-gptq) (4.66.1)\n", "Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.10/dist-packages (from accelerate>=0.22.0->auto-gptq) (23.1)\n", "Requirement already satisfied: psutil in /usr/local/lib/python3.10/dist-packages (from accelerate>=0.22.0->auto-gptq) (5.9.4)\n", "Requirement already satisfied: pyyaml in /usr/local/lib/python3.10/dist-packages (from accelerate>=0.22.0->auto-gptq) (6.0.1)\n", "Requirement already satisfied: huggingface-hub in /usr/local/lib/python3.10/dist-packages (from accelerate>=0.22.0->auto-gptq) (0.20.3)\n", "Requirement already satisfied: filelock in /usr/local/lib/python3.10/dist-packages (from torch>=1.13.0->auto-gptq) (3.12.4)\n", "Requirement already satisfied: typing-extensions in /usr/local/lib/python3.10/dist-packages (from torch>=1.13.0->auto-gptq) (4.7.1)\n", "Requirement already satisfied: sympy in /usr/local/lib/python3.10/dist-packages (from torch>=1.13.0->auto-gptq) (1.12)\n", "Requirement already satisfied: networkx in /usr/local/lib/python3.10/dist-packages (from torch>=1.13.0->auto-gptq) (2.6.3)\n", "Requirement already satisfied: jinja2 in /usr/local/lib/python3.10/dist-packages (from torch>=1.13.0->auto-gptq) (3.1.2)\n", "Requirement already satisfied: fsspec in /usr/local/lib/python3.10/dist-packages (from torch>=1.13.0->auto-gptq) (2023.6.0)\n", "Requirement already satisfied: regex!=2019.12.17 in /usr/local/lib/python3.10/dist-packages (from transformers>=4.31.0->auto-gptq) (2023.10.3)\n", "Requirement already satisfied: requests in /usr/local/lib/python3.10/dist-packages (from transformers>=4.31.0->auto-gptq) (2.31.0)\n", "Requirement already satisfied: tokenizers<0.19,>=0.14 in /usr/local/lib/python3.10/dist-packages (from transformers>=4.31.0->auto-gptq) (0.15.2)\n", "Requirement already satisfied: pyarrow>=12.0.0 in /usr/local/lib/python3.10/dist-packages (from datasets->auto-gptq) (15.0.0)\n", "Requirement already satisfied: pyarrow-hotfix in /usr/local/lib/python3.10/dist-packages (from datasets->auto-gptq) (0.6)\n", "Requirement already satisfied: dill<0.3.9,>=0.3.0 in /usr/local/lib/python3.10/dist-packages (from datasets->auto-gptq) (0.3.8)\n", "Requirement already satisfied: pandas in /usr/local/lib/python3.10/dist-packages (from datasets->auto-gptq) (1.5.3)\n", "Requirement already satisfied: xxhash in /usr/local/lib/python3.10/dist-packages (from datasets->auto-gptq) (3.4.1)\n", "Requirement already satisfied: multiprocess in /usr/local/lib/python3.10/dist-packages (from datasets->auto-gptq) (0.70.16)\n", "Requirement already satisfied: aiohttp in /usr/local/lib/python3.10/dist-packages (from datasets->auto-gptq) (3.8.5)\n", "Requirement already satisfied: six in /usr/local/lib/python3.10/dist-packages (from rouge->auto-gptq) (1.16.0)\n", "Requirement already satisfied: attrs>=17.3.0 in /usr/local/lib/python3.10/dist-packages (from aiohttp->datasets->auto-gptq) (23.1.0)\n", "Requirement already satisfied: charset-normalizer<4.0,>=2.0 in /usr/local/lib/python3.10/dist-packages (from aiohttp->datasets->auto-gptq) (3.2.0)\n", "Requirement already satisfied: multidict<7.0,>=4.5 in /usr/local/lib/python3.10/dist-packages (from aiohttp->datasets->auto-gptq) (6.0.4)\n", "Requirement already satisfied: async-timeout<5.0,>=4.0.0a3 in /usr/local/lib/python3.10/dist-packages (from aiohttp->datasets->auto-gptq) (4.0.3)\n", "Requirement already satisfied: yarl<2.0,>=1.0 in /usr/local/lib/python3.10/dist-packages (from aiohttp->datasets->auto-gptq) (1.9.2)\n", "Requirement already satisfied: frozenlist>=1.1.1 in /usr/local/lib/python3.10/dist-packages (from aiohttp->datasets->auto-gptq) (1.4.0)\n", "Requirement already satisfied: aiosignal>=1.1.2 in /usr/local/lib/python3.10/dist-packages (from aiohttp->datasets->auto-gptq) (1.3.1)\n", "Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/dist-packages (from requests->transformers>=4.31.0->auto-gptq) (3.4)\n", "Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.10/dist-packages (from requests->transformers>=4.31.0->auto-gptq) (1.26.16)\n", "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/dist-packages (from requests->transformers>=4.31.0->auto-gptq) (2023.7.22)\n", "Requirement already satisfied: MarkupSafe>=2.0 in /usr/local/lib/python3.10/dist-packages (from jinja2->torch>=1.13.0->auto-gptq) (2.1.3)\n", "Requirement already satisfied: python-dateutil>=2.8.1 in /usr/local/lib/python3.10/dist-packages (from pandas->datasets->auto-gptq) (2.8.2)\n", "Requirement already satisfied: pytz>=2020.1 in /usr/local/lib/python3.10/dist-packages (from pandas->datasets->auto-gptq) (2023.3)\n", "Requirement already satisfied: mpmath>=0.19 in /usr/local/lib/python3.10/dist-packages (from sympy->torch>=1.13.0->auto-gptq) (1.3.0)\n", "Downloading auto_gptq-0.6.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.8 MB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m4.8/4.8 MB\u001b[0m \u001b[31m72.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0ma \u001b[36m0:00:01\u001b[0m\n", "\u001b[?25hDownloading peft-0.8.2-py3-none-any.whl (183 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m183.4/183.4 kB\u001b[0m \u001b[31m261.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hInstalling collected packages: rouge, gekko, peft, auto-gptq\n", "Successfully installed auto-gptq-0.6.0 gekko-1.0.6 peft-0.8.2 rouge-1.0.1\n", "\u001b[33mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv\u001b[0m\u001b[33m\n", "\u001b[0m\n", "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip is available: \u001b[0m\u001b[31;49m23.2.1\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m24.0\u001b[0m\n", "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpython -m pip install --upgrade pip\u001b[0m\n", "Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com\n", "Collecting gradio\n", " Obtaining dependency information for gradio from https://files.pythonhosted.org/packages/40/c2/68c58aabbe821866e9a11a3776c9d36fd4416e812ab4ab58b531e82bd3da/gradio-4.18.0-py3-none-any.whl.metadata\n", " Downloading gradio-4.18.0-py3-none-any.whl.metadata (15 kB)\n", "Collecting aiofiles<24.0,>=22.0 (from gradio)\n", " Obtaining dependency information for aiofiles<24.0,>=22.0 from https://files.pythonhosted.org/packages/c5/19/5af6804c4cc0fed83f47bff6e413a98a36618e7d40185cd36e69737f3b0e/aiofiles-23.2.1-py3-none-any.whl.metadata\n", " Downloading aiofiles-23.2.1-py3-none-any.whl.metadata (9.7 kB)\n", "Collecting altair<6.0,>=4.2.0 (from gradio)\n", " Obtaining dependency information for altair<6.0,>=4.2.0 from https://files.pythonhosted.org/packages/c5/e4/7fcceef127badbb0d644d730d992410e4f3799b295c9964a172f92a469c7/altair-5.2.0-py3-none-any.whl.metadata\n", " Downloading altair-5.2.0-py3-none-any.whl.metadata (8.7 kB)\n", "Collecting fastapi (from gradio)\n", " Obtaining dependency information for fastapi from https://files.pythonhosted.org/packages/bf/97/60351307ab4502908d29f64f2801a36709a3f1888447bb328bc373d6ca0e/fastapi-0.109.2-py3-none-any.whl.metadata\n", " Downloading fastapi-0.109.2-py3-none-any.whl.metadata (25 kB)\n", "Collecting ffmpy (from gradio)\n", " Downloading ffmpy-0.3.2.tar.gz (5.5 kB)\n", " Preparing metadata (setup.py) ... \u001b[?25ldone\n", "\u001b[?25hCollecting gradio-client==0.10.0 (from gradio)\n", " Obtaining dependency information for gradio-client==0.10.0 from https://files.pythonhosted.org/packages/85/7c/956b96c8bd76ae19bf40ef477f7631336cc5728edbb3b4304f81e7a84e2a/gradio_client-0.10.0-py3-none-any.whl.metadata\n", " Downloading gradio_client-0.10.0-py3-none-any.whl.metadata (7.1 kB)\n", "Collecting httpx (from gradio)\n", " Obtaining dependency information for httpx from https://files.pythonhosted.org/packages/39/9b/4937d841aee9c2c8102d9a4eeb800c7dad25386caabb4a1bf5010df81a57/httpx-0.26.0-py3-none-any.whl.metadata\n", " Downloading httpx-0.26.0-py3-none-any.whl.metadata (7.6 kB)\n", "Requirement already satisfied: huggingface-hub>=0.19.3 in /usr/local/lib/python3.10/dist-packages (from gradio) (0.20.3)\n", "Collecting importlib-resources<7.0,>=1.3 (from gradio)\n", " Obtaining dependency information for importlib-resources<7.0,>=1.3 from https://files.pythonhosted.org/packages/93/e8/facde510585869b5ec694e8e0363ffe4eba067cb357a8398a55f6a1f8023/importlib_resources-6.1.1-py3-none-any.whl.metadata\n", " Downloading importlib_resources-6.1.1-py3-none-any.whl.metadata (4.1 kB)\n", "Requirement already satisfied: jinja2<4.0 in /usr/local/lib/python3.10/dist-packages (from gradio) (3.1.2)\n", "Requirement already satisfied: markupsafe~=2.0 in /usr/local/lib/python3.10/dist-packages (from gradio) (2.1.3)\n", "Requirement already satisfied: matplotlib~=3.0 in /usr/local/lib/python3.10/dist-packages (from gradio) (3.8.0)\n", "Requirement already satisfied: numpy~=1.0 in /usr/local/lib/python3.10/dist-packages (from gradio) (1.22.2)\n", "Collecting orjson~=3.0 (from gradio)\n", " Obtaining dependency information for orjson~=3.0 from https://files.pythonhosted.org/packages/41/41/302b51345b61afb68ce166e4be2ebeef0b86d7aa9f28ca4fcf7c3d612d45/orjson-3.9.14-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata\n", " Downloading orjson-3.9.14-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (49 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m49.4/49.4 kB\u001b[0m \u001b[31m360.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hRequirement already satisfied: packaging in /usr/local/lib/python3.10/dist-packages (from gradio) (23.1)\n", "Requirement already satisfied: pandas<3.0,>=1.0 in /usr/local/lib/python3.10/dist-packages (from gradio) (1.5.3)\n", "Requirement already satisfied: pillow<11.0,>=8.0 in /usr/local/lib/python3.10/dist-packages (from gradio) (9.2.0)\n", "Requirement already satisfied: pydantic>=2.0 in /usr/local/lib/python3.10/dist-packages (from gradio) (2.4.2)\n", "Collecting pydub (from gradio)\n", " Downloading pydub-0.25.1-py2.py3-none-any.whl (32 kB)\n", "Collecting python-multipart (from gradio)\n", " Obtaining dependency information for python-multipart from https://files.pythonhosted.org/packages/3d/47/444768600d9e0ebc82f8e347775d24aef8f6348cf00e9fa0e81910814e6d/python_multipart-0.0.9-py3-none-any.whl.metadata\n", " Downloading python_multipart-0.0.9-py3-none-any.whl.metadata (2.5 kB)\n", "Requirement already satisfied: pyyaml<7.0,>=5.0 in /usr/local/lib/python3.10/dist-packages (from gradio) (6.0.1)\n", "Collecting ruff>=0.1.7 (from gradio)\n", " Obtaining dependency information for ruff>=0.1.7 from https://files.pythonhosted.org/packages/70/d3/67fdaff63c3092fb667573d6b69fe601020212078b68adedcb821ad4dfcd/ruff-0.2.1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata\n", " Downloading ruff-0.2.1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (23 kB)\n", "Collecting semantic-version~=2.0 (from gradio)\n", " Downloading semantic_version-2.10.0-py2.py3-none-any.whl (15 kB)\n", "Collecting tomlkit==0.12.0 (from gradio)\n", " Obtaining dependency information for tomlkit==0.12.0 from https://files.pythonhosted.org/packages/68/4f/12207897848a653d03ebbf6775a29d949408ded5f99b2d87198bc5c93508/tomlkit-0.12.0-py3-none-any.whl.metadata\n", " Downloading tomlkit-0.12.0-py3-none-any.whl.metadata (2.7 kB)\n", "Requirement already satisfied: typer[all]<1.0,>=0.9 in /usr/local/lib/python3.10/dist-packages (from gradio) (0.9.0)\n", "Requirement already satisfied: typing-extensions~=4.0 in /usr/local/lib/python3.10/dist-packages (from gradio) (4.7.1)\n", "Collecting uvicorn>=0.14.0 (from gradio)\n", " Obtaining dependency information for uvicorn>=0.14.0 from https://files.pythonhosted.org/packages/d9/fd/bac111726b6c651f1fa5563145ecba5ff70d36fb140a55e0d79b60b9d65e/uvicorn-0.27.1-py3-none-any.whl.metadata\n", " Downloading uvicorn-0.27.1-py3-none-any.whl.metadata (6.3 kB)\n", "Requirement already satisfied: fsspec in /usr/local/lib/python3.10/dist-packages (from gradio-client==0.10.0->gradio) (2023.6.0)\n", "Collecting websockets<12.0,>=10.0 (from gradio-client==0.10.0->gradio)\n", " Obtaining dependency information for websockets<12.0,>=10.0 from https://files.pythonhosted.org/packages/58/0a/7570e15661a0a546c3a1152d95fe8c05480459bab36247f0acbf41f01a41/websockets-11.0.3-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata\n", " Downloading websockets-11.0.3-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: jsonschema>=3.0 in /usr/local/lib/python3.10/dist-packages (from altair<6.0,>=4.2.0->gradio) (4.19.1)\n", "Requirement already satisfied: toolz in /usr/local/lib/python3.10/dist-packages (from altair<6.0,>=4.2.0->gradio) (0.12.0)\n", "Requirement already satisfied: filelock in /usr/local/lib/python3.10/dist-packages (from huggingface-hub>=0.19.3->gradio) (3.12.4)\n", "Requirement already satisfied: requests in /usr/local/lib/python3.10/dist-packages (from huggingface-hub>=0.19.3->gradio) (2.31.0)\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.1)\n", "Requirement already satisfied: contourpy>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib~=3.0->gradio) (1.1.1)\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.43.1)\n", "Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib~=3.0->gradio) (1.4.5)\n", "Requirement already satisfied: pyparsing>=2.3.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib~=3.0->gradio) (3.1.1)\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: pytz>=2020.1 in /usr/local/lib/python3.10/dist-packages (from pandas<3.0,>=1.0->gradio) (2023.3)\n", "Requirement already satisfied: annotated-types>=0.4.0 in /usr/local/lib/python3.10/dist-packages (from pydantic>=2.0->gradio) (0.5.0)\n", "Requirement already satisfied: pydantic-core==2.10.1 in /usr/local/lib/python3.10/dist-packages (from pydantic>=2.0->gradio) (2.10.1)\n", "Requirement already satisfied: click<9.0.0,>=7.1.1 in /usr/local/lib/python3.10/dist-packages (from typer[all]<1.0,>=0.9->gradio) (8.1.6)\n", "Collecting colorama<0.5.0,>=0.4.3 (from typer[all]<1.0,>=0.9->gradio)\n", " Downloading colorama-0.4.6-py2.py3-none-any.whl (25 kB)\n", "Collecting shellingham<2.0.0,>=1.3.0 (from typer[all]<1.0,>=0.9->gradio)\n", " Obtaining dependency information for shellingham<2.0.0,>=1.3.0 from https://files.pythonhosted.org/packages/e0/f9/0595336914c5619e5f28a1fb793285925a8cd4b432c9da0a987836c7f822/shellingham-1.5.4-py2.py3-none-any.whl.metadata\n", " Downloading shellingham-1.5.4-py2.py3-none-any.whl.metadata (3.5 kB)\n", "Collecting rich<14.0.0,>=10.11.0 (from typer[all]<1.0,>=0.9->gradio)\n", " Obtaining dependency information for rich<14.0.0,>=10.11.0 from https://files.pythonhosted.org/packages/be/be/1520178fa01eabe014b16e72a952b9f900631142ccd03dc36cf93e30c1ce/rich-13.7.0-py3-none-any.whl.metadata\n", " Downloading rich-13.7.0-py3-none-any.whl.metadata (18 kB)\n", "Collecting h11>=0.8 (from uvicorn>=0.14.0->gradio)\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[31m137.3 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hCollecting starlette<0.37.0,>=0.36.3 (from fastapi->gradio)\n", " Obtaining dependency information for starlette<0.37.0,>=0.36.3 from https://files.pythonhosted.org/packages/eb/f7/372e3953b6e6fbfe0b70a1bb52612eae16e943f4288516480860fcd4ac41/starlette-0.36.3-py3-none-any.whl.metadata\n", " Downloading starlette-0.36.3-py3-none-any.whl.metadata (5.9 kB)\n", "Collecting typing-extensions~=4.0 (from gradio)\n", " Obtaining dependency information for typing-extensions~=4.0 from https://files.pythonhosted.org/packages/b7/f4/6a90020cd2d93349b442bfcb657d0dc91eee65491600b2cb1d388bc98e6b/typing_extensions-4.9.0-py3-none-any.whl.metadata\n", " Downloading typing_extensions-4.9.0-py3-none-any.whl.metadata (3.0 kB)\n", "Collecting anyio (from httpx->gradio)\n", " Obtaining dependency information for anyio from https://files.pythonhosted.org/packages/bf/cd/d6d9bb1dadf73e7af02d18225cbd2c93f8552e13130484f1c8dcfece292b/anyio-4.2.0-py3-none-any.whl.metadata\n", " Downloading anyio-4.2.0-py3-none-any.whl.metadata (4.6 kB)\n", "Requirement already satisfied: certifi in /usr/local/lib/python3.10/dist-packages (from httpx->gradio) (2023.7.22)\n", "Collecting httpcore==1.* (from httpx->gradio)\n", " Obtaining dependency information for httpcore==1.* from https://files.pythonhosted.org/packages/56/ba/78b0a99c4da0ff8b0f59defa2f13ca4668189b134bd9840b6202a93d9a0f/httpcore-1.0.2-py3-none-any.whl.metadata\n", " Downloading httpcore-1.0.2-py3-none-any.whl.metadata (20 kB)\n", "Requirement already satisfied: idna in /usr/local/lib/python3.10/dist-packages (from httpx->gradio) (3.4)\n", "Collecting sniffio (from httpx->gradio)\n", " Downloading sniffio-1.3.0-py3-none-any.whl (10 kB)\n", "Requirement already satisfied: attrs>=22.2.0 in /usr/local/lib/python3.10/dist-packages (from jsonschema>=3.0->altair<6.0,>=4.2.0->gradio) (23.1.0)\n", "Requirement already satisfied: jsonschema-specifications>=2023.03.6 in /usr/local/lib/python3.10/dist-packages (from jsonschema>=3.0->altair<6.0,>=4.2.0->gradio) (2023.7.1)\n", "Requirement already satisfied: referencing>=0.28.4 in /usr/local/lib/python3.10/dist-packages (from jsonschema>=3.0->altair<6.0,>=4.2.0->gradio) (0.30.2)\n", "Requirement already satisfied: rpds-py>=0.7.1 in /usr/local/lib/python3.10/dist-packages (from jsonschema>=3.0->altair<6.0,>=4.2.0->gradio) (0.10.4)\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: markdown-it-py>=2.2.0 in /usr/local/lib/python3.10/dist-packages (from rich<14.0.0,>=10.11.0->typer[all]<1.0,>=0.9->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<14.0.0,>=10.11.0->typer[all]<1.0,>=0.9->gradio) (2.16.1)\n", "Requirement already satisfied: exceptiongroup>=1.0.2 in /usr/local/lib/python3.10/dist-packages (from anyio->httpx->gradio) (1.1.3)\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.2.0)\n", "Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.10/dist-packages (from requests->huggingface-hub>=0.19.3->gradio) (1.26.16)\n", "Requirement already satisfied: mdurl~=0.1 in /usr/local/lib/python3.10/dist-packages (from markdown-it-py>=2.2.0->rich<14.0.0,>=10.11.0->typer[all]<1.0,>=0.9->gradio) (0.1.2)\n", "Downloading gradio-4.18.0-py3-none-any.whl (16.8 MB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m16.8/16.8 MB\u001b[0m \u001b[31m104.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0ma \u001b[36m0:00:01\u001b[0m\n", "\u001b[?25hDownloading gradio_client-0.10.0-py3-none-any.whl (307 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m307.7/307.7 kB\u001b[0m \u001b[31m528.3 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 altair-5.2.0-py3-none-any.whl (996 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m996.9/996.9 kB\u001b[0m \u001b[31m90.9 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hDownloading importlib_resources-6.1.1-py3-none-any.whl (33 kB)\n", "Downloading orjson-3.9.14-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (138 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m139.0/139.0 kB\u001b[0m \u001b[31m188.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hDownloading ruff-0.2.1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (7.6 MB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m7.6/7.6 MB\u001b[0m \u001b[31m59.1 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0ma \u001b[36m0:00:01\u001b[0m\n", "\u001b[?25hDownloading uvicorn-0.27.1-py3-none-any.whl (60 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m60.8/60.8 kB\u001b[0m \u001b[31m179.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hDownloading fastapi-0.109.2-py3-none-any.whl (92 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m92.1/92.1 kB\u001b[0m \u001b[31m201.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hDownloading typing_extensions-4.9.0-py3-none-any.whl (32 kB)\n", "Downloading httpx-0.26.0-py3-none-any.whl (75 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m75.9/75.9 kB\u001b[0m \u001b[31m213.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hDownloading httpcore-1.0.2-py3-none-any.whl (76 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m76.9/76.9 kB\u001b[0m \u001b[31m226.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hDownloading python_multipart-0.0.9-py3-none-any.whl (22 kB)\n", "Downloading rich-13.7.0-py3-none-any.whl (240 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m240.6/240.6 kB\u001b[0m \u001b[31m202.9 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hDownloading shellingham-1.5.4-py2.py3-none-any.whl (9.8 kB)\n", "Downloading starlette-0.36.3-py3-none-any.whl (71 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m71.5/71.5 kB\u001b[0m \u001b[31m174.9 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hDownloading anyio-4.2.0-py3-none-any.whl (85 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m85.5/85.5 kB\u001b[0m \u001b[31m186.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hDownloading websockets-11.0.3-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (129 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m129.9/129.9 kB\u001b[0m \u001b[31m189.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hBuilding wheels for collected packages: ffmpy\n", " Building wheel for ffmpy (setup.py) ... \u001b[?25ldone\n", "\u001b[?25h Created wheel for ffmpy: filename=ffmpy-0.3.2-py3-none-any.whl size=5598 sha256=4221e9cf40f81020664847e6ea9d9d601ab461673cae5ba1ab88470e9da2c277\n", " Stored in directory: /tmp/pip-ephem-wheel-cache-jld5_z3m/wheels/bd/65/9a/671fc6dcde07d4418df0c592f8df512b26d7a0029c2a23dd81\n", "Successfully built ffmpy\n", "Installing collected packages: pydub, ffmpy, websockets, typing-extensions, tomlkit, sniffio, shellingham, semantic-version, ruff, python-multipart, orjson, importlib-resources, h11, colorama, aiofiles, uvicorn, rich, httpcore, anyio, starlette, httpx, gradio-client, fastapi, altair, gradio\n", " Attempting uninstall: typing-extensions\n", " Found existing installation: typing_extensions 4.7.1\n", " Uninstalling typing_extensions-4.7.1:\n", " Successfully uninstalled typing_extensions-4.7.1\n", "Successfully installed aiofiles-23.2.1 altair-5.2.0 anyio-4.2.0 colorama-0.4.6 fastapi-0.109.2 ffmpy-0.3.2 gradio-4.18.0 gradio-client-0.10.0 h11-0.14.0 httpcore-1.0.2 httpx-0.26.0 importlib-resources-6.1.1 orjson-3.9.14 pydub-0.25.1 python-multipart-0.0.9 rich-13.7.0 ruff-0.2.1 semantic-version-2.10.0 shellingham-1.5.4 sniffio-1.3.0 starlette-0.36.3 tomlkit-0.12.0 typing-extensions-4.9.0 uvicorn-0.27.1 websockets-11.0.3\n", "\u001b[33mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv\u001b[0m\u001b[33m\n", "\u001b[0m\n", "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip is available: \u001b[0m\u001b[31;49m23.2.1\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m24.0\u001b[0m\n", "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpython -m pip install --upgrade pip\u001b[0m\n", "Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com\n", "Collecting TTS\n", " Obtaining dependency information for TTS from https://files.pythonhosted.org/packages/6e/36/dce195a2b9ff3a11863f53fc35109f8e1f2c7d40419f999f9d0a12cc23e5/TTS-0.22.0-cp310-cp310-manylinux1_x86_64.whl.metadata\n", " Downloading TTS-0.22.0-cp310-cp310-manylinux1_x86_64.whl.metadata (21 kB)\n", "Requirement already satisfied: cython>=0.29.30 in /usr/local/lib/python3.10/dist-packages (from TTS) (3.0.3)\n", "Collecting scipy>=1.11.2 (from TTS)\n", " Obtaining dependency information for scipy>=1.11.2 from https://files.pythonhosted.org/packages/f5/aa/8e6071a5e4dca4ec68b5b22e4991ee74c59c5d372112b9c236ec1faff57d/scipy-1.12.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata\n", " Downloading scipy-1.12.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (60 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m60.4/60.4 kB\u001b[0m \u001b[31m13.9 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hCollecting torch>=2.1 (from TTS)\n", " Obtaining dependency information for torch>=2.1 from https://files.pythonhosted.org/packages/8c/67/fcc9b9e2369a9bae4da492aedc0c2dfa95d563ef0eaa9228b70c98395ec2/torch-2.2.0-cp310-cp310-manylinux1_x86_64.whl.metadata\n", " Downloading torch-2.2.0-cp310-cp310-manylinux1_x86_64.whl.metadata (25 kB)\n", "Collecting torchaudio (from TTS)\n", " Obtaining dependency information for torchaudio from https://files.pythonhosted.org/packages/30/fc/cdcf7c2071539ea147ddb6de2b538d9c1599665b621f2e6cf0b3ef51d20d/torchaudio-2.2.0-cp310-cp310-manylinux1_x86_64.whl.metadata\n", " Downloading torchaudio-2.2.0-cp310-cp310-manylinux1_x86_64.whl.metadata (6.4 kB)\n", "Requirement already satisfied: soundfile>=0.12.0 in /usr/local/lib/python3.10/dist-packages (from TTS) (0.12.1)\n", "Collecting librosa>=0.10.0 (from TTS)\n", " Obtaining dependency information for librosa>=0.10.0 from https://files.pythonhosted.org/packages/e2/a2/4f639c1168d7aada749a896afb4892a831e2041bebdcf636aebfe9e86556/librosa-0.10.1-py3-none-any.whl.metadata\n", " Downloading librosa-0.10.1-py3-none-any.whl.metadata (8.3 kB)\n", "Collecting scikit-learn>=1.3.0 (from TTS)\n", " Obtaining dependency information for scikit-learn>=1.3.0 from https://files.pythonhosted.org/packages/3f/61/047b353f0ad550226ef962da182b4a09b689eb6df6bd84a03e44f9ee95bb/scikit_learn-1.4.0-1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata\n", " Downloading scikit_learn-1.4.0-1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (11 kB)\n", "Collecting inflect>=5.6.0 (from TTS)\n", " Obtaining dependency information for inflect>=5.6.0 from https://files.pythonhosted.org/packages/fb/c6/d9feb758be584f729424390af24687d3a4363d968164f94079f83cd536b4/inflect-7.0.0-py3-none-any.whl.metadata\n", " Downloading inflect-7.0.0-py3-none-any.whl.metadata (21 kB)\n", "Requirement already satisfied: tqdm>=4.64.1 in /usr/local/lib/python3.10/dist-packages (from TTS) (4.66.1)\n", "Collecting anyascii>=0.3.0 (from TTS)\n", " Downloading anyascii-0.3.2-py3-none-any.whl (289 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m289.9/289.9 kB\u001b[0m \u001b[31m25.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hRequirement already satisfied: pyyaml>=6.0 in /usr/local/lib/python3.10/dist-packages (from TTS) (6.0.1)\n", "Requirement already satisfied: fsspec>=2023.6.0 in /usr/local/lib/python3.10/dist-packages (from TTS) (2023.6.0)\n", "Requirement already satisfied: aiohttp>=3.8.1 in /usr/local/lib/python3.10/dist-packages (from TTS) (3.8.5)\n", "Requirement already satisfied: packaging>=23.1 in /usr/local/lib/python3.10/dist-packages (from TTS) (23.1)\n", "Collecting flask>=2.0.1 (from TTS)\n", " Obtaining dependency information for flask>=2.0.1 from https://files.pythonhosted.org/packages/93/a6/aa98bfe0eb9b8b15d36cdfd03c8ca86a03968a87f27ce224fb4f766acb23/flask-3.0.2-py3-none-any.whl.metadata\n", " Downloading flask-3.0.2-py3-none-any.whl.metadata (3.6 kB)\n", "Collecting pysbd>=0.3.4 (from TTS)\n", " Downloading pysbd-0.3.4-py3-none-any.whl (71 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m71.1/71.1 kB\u001b[0m \u001b[31m166.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hCollecting umap-learn>=0.5.1 (from TTS)\n", " Downloading umap-learn-0.5.5.tar.gz (90 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m90.9/90.9 kB\u001b[0m \u001b[31m213.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25h Preparing metadata (setup.py) ... \u001b[?25ldone\n", "\u001b[?25hRequirement already satisfied: pandas<2.0,>=1.4 in /usr/local/lib/python3.10/dist-packages (from TTS) (1.5.3)\n", "Requirement already satisfied: matplotlib>=3.7.0 in /usr/local/lib/python3.10/dist-packages (from TTS) (3.8.0)\n", "Collecting trainer>=0.0.32 (from TTS)\n", " Obtaining dependency information for trainer>=0.0.32 from https://files.pythonhosted.org/packages/a0/38/c4381497fde987c72fc58d9b534dfd9e254e34d402e06be232f40e1baf66/trainer-0.0.36-py3-none-any.whl.metadata\n", " Downloading trainer-0.0.36-py3-none-any.whl.metadata (8.1 kB)\n", "Collecting coqpit>=0.0.16 (from TTS)\n", " Downloading coqpit-0.0.17-py3-none-any.whl (13 kB)\n", "Collecting jieba (from TTS)\n", " Downloading jieba-0.42.1.tar.gz (19.2 MB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m19.2/19.2 MB\u001b[0m \u001b[31m70.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0ma \u001b[36m0:00:01\u001b[0m\n", "\u001b[?25h Preparing metadata (setup.py) ... \u001b[?25ldone\n", "\u001b[?25hCollecting pypinyin (from TTS)\n", " Obtaining dependency information for pypinyin from https://files.pythonhosted.org/packages/f6/a2/13adff7046a0913917a30cf5a8d8524f1e49b039aa0e6ab6826ad263b176/pypinyin-0.50.0-py2.py3-none-any.whl.metadata\n", " Downloading pypinyin-0.50.0-py2.py3-none-any.whl.metadata (12 kB)\n", "Collecting hangul-romanize (from TTS)\n", " Downloading hangul_romanize-0.1.0-py3-none-any.whl (4.6 kB)\n", "Collecting gruut[de,es,fr]==2.2.3 (from TTS)\n", " Downloading gruut-2.2.3.tar.gz (73 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m73.5/73.5 kB\u001b[0m \u001b[31m181.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25h Preparing metadata (setup.py) ... \u001b[?25ldone\n", "\u001b[?25hCollecting jamo (from TTS)\n", " Downloading jamo-0.4.1-py3-none-any.whl (9.5 kB)\n", "Collecting nltk (from TTS)\n", " Downloading nltk-3.8.1-py3-none-any.whl (1.5 MB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m1.5/1.5 MB\u001b[0m \u001b[31m101.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hCollecting g2pkk>=0.1.1 (from TTS)\n", " Downloading g2pkk-0.1.2-py3-none-any.whl (25 kB)\n", "Collecting bangla (from TTS)\n", " Downloading bangla-0.0.2-py2.py3-none-any.whl (6.2 kB)\n", "Collecting bnnumerizer (from TTS)\n", " Downloading bnnumerizer-0.0.2.tar.gz (4.7 kB)\n", " Preparing metadata (setup.py) ... \u001b[?25ldone\n", "\u001b[?25hCollecting bnunicodenormalizer (from TTS)\n", " Downloading bnunicodenormalizer-0.1.6.tar.gz (39 kB)\n", " Preparing metadata (setup.py) ... \u001b[?25ldone\n", "\u001b[?25hRequirement already satisfied: einops>=0.6.0 in /usr/local/lib/python3.10/dist-packages (from TTS) (0.7.0)\n", "Requirement already satisfied: transformers>=4.33.0 in /usr/local/lib/python3.10/dist-packages (from TTS) (4.37.2)\n", "Collecting encodec>=0.1.1 (from TTS)\n", " Downloading encodec-0.1.1.tar.gz (3.7 MB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m3.7/3.7 MB\u001b[0m \u001b[31m94.9 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0ma \u001b[36m0:00:01\u001b[0m\n", "\u001b[?25h Preparing metadata (setup.py) ... \u001b[?25ldone\n", "\u001b[?25hCollecting unidecode>=1.3.2 (from TTS)\n", " Obtaining dependency information for unidecode>=1.3.2 from https://files.pythonhosted.org/packages/84/b7/6ec57841fb67c98f52fc8e4a2d96df60059637cba077edc569a302a8ffc7/Unidecode-1.3.8-py3-none-any.whl.metadata\n", " Downloading Unidecode-1.3.8-py3-none-any.whl.metadata (13 kB)\n", "Collecting num2words (from TTS)\n", " Obtaining dependency information for num2words from https://files.pythonhosted.org/packages/8f/f0/ca1228af2bcbce2fdf2b23d58643c84253b88a3c1cd9dba391ca683c4b21/num2words-0.5.13-py3-none-any.whl.metadata\n", " Downloading num2words-0.5.13-py3-none-any.whl.metadata (12 kB)\n", "Requirement already satisfied: spacy[ja]>=3 in /usr/local/lib/python3.10/dist-packages (from TTS) (3.7.1)\n", "Collecting numpy==1.22.0 (from TTS)\n", " Downloading numpy-1.22.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (16.8 MB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m16.8/16.8 MB\u001b[0m \u001b[31m75.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m00:01\u001b[0m00:01\u001b[0m\n", "\u001b[?25hRequirement already satisfied: numba>=0.57.0 in /usr/local/lib/python3.10/dist-packages (from TTS) (0.57.1+1.g5fba9aa8f)\n", "Collecting Babel<3.0.0,>=2.8.0 (from gruut[de,es,fr]==2.2.3->TTS)\n", " Obtaining dependency information for Babel<3.0.0,>=2.8.0 from https://files.pythonhosted.org/packages/0d/35/4196b21041e29a42dc4f05866d0c94fa26c9da88ce12c38c2265e42c82fb/Babel-2.14.0-py3-none-any.whl.metadata\n", " Downloading Babel-2.14.0-py3-none-any.whl.metadata (1.6 kB)\n", "Collecting dateparser~=1.1.0 (from gruut[de,es,fr]==2.2.3->TTS)\n", " Downloading dateparser-1.1.8-py2.py3-none-any.whl (293 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m293.8/293.8 kB\u001b[0m \u001b[31m318.1 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hCollecting gruut-ipa<1.0,>=0.12.0 (from gruut[de,es,fr]==2.2.3->TTS)\n", " Downloading gruut-ipa-0.13.0.tar.gz (101 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m101.6/101.6 kB\u001b[0m \u001b[31m189.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25h Preparing metadata (setup.py) ... \u001b[?25ldone\n", "\u001b[?25hCollecting gruut_lang_en~=2.0.0 (from gruut[de,es,fr]==2.2.3->TTS)\n", " Downloading gruut_lang_en-2.0.0.tar.gz (15.2 MB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m15.2/15.2 MB\u001b[0m \u001b[31m67.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0ma \u001b[36m0:00:01\u001b[0m\n", "\u001b[?25h Preparing metadata (setup.py) ... \u001b[?25ldone\n", "\u001b[?25hCollecting jsonlines~=1.2.0 (from gruut[de,es,fr]==2.2.3->TTS)\n", " Downloading jsonlines-1.2.0-py2.py3-none-any.whl (7.6 kB)\n", "Requirement already satisfied: networkx<3.0.0,>=2.5.0 in /usr/local/lib/python3.10/dist-packages (from gruut[de,es,fr]==2.2.3->TTS) (2.6.3)\n", "Collecting python-crfsuite~=0.9.7 (from gruut[de,es,fr]==2.2.3->TTS)\n", " Obtaining dependency information for python-crfsuite~=0.9.7 from https://files.pythonhosted.org/packages/38/1d/c475ba7d11e9735f00eb08e2f5315aa2e21c24cc85a0474c3fd425edef58/python_crfsuite-0.9.10-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata\n", " Downloading python_crfsuite-0.9.10-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (4.2 kB)\n", "Collecting gruut_lang_fr~=2.0.0 (from gruut[de,es,fr]==2.2.3->TTS)\n", " Downloading gruut_lang_fr-2.0.2.tar.gz (10.9 MB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m10.9/10.9 MB\u001b[0m \u001b[31m70.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0ma \u001b[36m0:00:01\u001b[0m\n", "\u001b[?25h Preparing metadata (setup.py) ... \u001b[?25ldone\n", "\u001b[?25hCollecting gruut_lang_de~=2.0.0 (from gruut[de,es,fr]==2.2.3->TTS)\n", " Downloading gruut_lang_de-2.0.0.tar.gz (18.1 MB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m18.1/18.1 MB\u001b[0m \u001b[31m79.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0ma \u001b[36m0:00:01\u001b[0m\n", "\u001b[?25h Preparing metadata (setup.py) ... \u001b[?25ldone\n", "\u001b[?25hCollecting gruut_lang_es~=2.0.0 (from gruut[de,es,fr]==2.2.3->TTS)\n", " Downloading gruut_lang_es-2.0.0.tar.gz (31.4 MB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m31.4/31.4 MB\u001b[0m \u001b[31m58.3 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0ma \u001b[36m0:00:01\u001b[0m\n", "\u001b[?25h Preparing metadata (setup.py) ... \u001b[?25ldone\n", "\u001b[?25hRequirement already satisfied: attrs>=17.3.0 in /usr/local/lib/python3.10/dist-packages (from aiohttp>=3.8.1->TTS) (23.1.0)\n", "Requirement already satisfied: charset-normalizer<4.0,>=2.0 in /usr/local/lib/python3.10/dist-packages (from aiohttp>=3.8.1->TTS) (3.2.0)\n", "Requirement already satisfied: multidict<7.0,>=4.5 in /usr/local/lib/python3.10/dist-packages (from aiohttp>=3.8.1->TTS) (6.0.4)\n", "Requirement already satisfied: async-timeout<5.0,>=4.0.0a3 in /usr/local/lib/python3.10/dist-packages (from aiohttp>=3.8.1->TTS) (4.0.3)\n", "Requirement already satisfied: yarl<2.0,>=1.0 in /usr/local/lib/python3.10/dist-packages (from aiohttp>=3.8.1->TTS) (1.9.2)\n", "Requirement already satisfied: frozenlist>=1.1.1 in /usr/local/lib/python3.10/dist-packages (from aiohttp>=3.8.1->TTS) (1.4.0)\n", "Requirement already satisfied: aiosignal>=1.1.2 in /usr/local/lib/python3.10/dist-packages (from aiohttp>=3.8.1->TTS) (1.3.1)\n", "Requirement already satisfied: Werkzeug>=3.0.0 in /usr/local/lib/python3.10/dist-packages (from flask>=2.0.1->TTS) (3.0.0)\n", "Requirement already satisfied: Jinja2>=3.1.2 in /usr/local/lib/python3.10/dist-packages (from flask>=2.0.1->TTS) (3.1.2)\n", "Collecting itsdangerous>=2.1.2 (from flask>=2.0.1->TTS)\n", " Downloading itsdangerous-2.1.2-py3-none-any.whl (15 kB)\n", "Requirement already satisfied: click>=8.1.3 in /usr/local/lib/python3.10/dist-packages (from flask>=2.0.1->TTS) (8.1.6)\n", "Collecting blinker>=1.6.2 (from flask>=2.0.1->TTS)\n", " Obtaining dependency information for blinker>=1.6.2 from https://files.pythonhosted.org/packages/fa/2a/7f3714cbc6356a0efec525ce7a0613d581072ed6eb53eb7b9754f33db807/blinker-1.7.0-py3-none-any.whl.metadata\n", " Downloading blinker-1.7.0-py3-none-any.whl.metadata (1.9 kB)\n", "Requirement already satisfied: pydantic>=1.9.1 in /usr/local/lib/python3.10/dist-packages (from inflect>=5.6.0->TTS) (2.4.2)\n", "Requirement already satisfied: typing-extensions in /usr/local/lib/python3.10/dist-packages (from inflect>=5.6.0->TTS) (4.9.0)\n", "Requirement already satisfied: audioread>=2.1.9 in /usr/local/lib/python3.10/dist-packages (from librosa>=0.10.0->TTS) (3.0.1)\n", "INFO: pip is looking at multiple versions of librosa to determine which version is compatible with other requirements. This could take a while.\n", "Collecting librosa>=0.10.0 (from TTS)\n", " Downloading librosa-0.10.0.post2-py3-none-any.whl (253 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m253.0/253.0 kB\u001b[0m \u001b[31m562.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25h Downloading librosa-0.10.0.post1-py3-none-any.whl (252 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m253.0/253.0 kB\u001b[0m \u001b[31m108.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25h Downloading librosa-0.10.0-py3-none-any.whl (252 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m252.9/252.9 kB\u001b[0m \u001b[31m222.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hRequirement already satisfied: joblib>=0.14 in /usr/local/lib/python3.10/dist-packages (from librosa>=0.10.0->TTS) (1.3.2)\n", "Requirement already satisfied: decorator>=4.3.0 in /usr/local/lib/python3.10/dist-packages (from librosa>=0.10.0->TTS) (5.1.1)\n", "Requirement already satisfied: pooch>=1.0 in /usr/local/lib/python3.10/dist-packages (from librosa>=0.10.0->TTS) (1.7.0)\n", "Collecting soxr>=0.3.2 (from librosa>=0.10.0->TTS)\n", " Obtaining dependency information for soxr>=0.3.2 from https://files.pythonhosted.org/packages/31/f7/d95b816c47dca6a068305fb7176b8c8d2c94bbc6cce6dcc296c6cf98660f/soxr-0.3.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata\n", " Downloading soxr-0.3.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (5.5 kB)\n", "Collecting lazy-loader>=0.1 (from librosa>=0.10.0->TTS)\n", " Obtaining dependency information for lazy-loader>=0.1 from https://files.pythonhosted.org/packages/a1/c3/65b3814e155836acacf720e5be3b5757130346670ac454fee29d3eda1381/lazy_loader-0.3-py3-none-any.whl.metadata\n", " Downloading lazy_loader-0.3-py3-none-any.whl.metadata (4.3 kB)\n", "Requirement already satisfied: msgpack>=1.0 in /usr/local/lib/python3.10/dist-packages (from librosa>=0.10.0->TTS) (1.0.5)\n", "Requirement already satisfied: contourpy>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=3.7.0->TTS) (1.1.1)\n", "Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=3.7.0->TTS) (0.12.1)\n", "Requirement already satisfied: fonttools>=4.22.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=3.7.0->TTS) (4.43.1)\n", "Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=3.7.0->TTS) (1.4.5)\n", "Requirement already satisfied: pillow>=6.2.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=3.7.0->TTS) (9.2.0)\n", "Requirement already satisfied: pyparsing>=2.3.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=3.7.0->TTS) (3.1.1)\n", "Requirement already satisfied: python-dateutil>=2.7 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=3.7.0->TTS) (2.8.2)\n", "Collecting docopt>=0.6.2 (from num2words->TTS)\n", " Downloading docopt-0.6.2.tar.gz (25 kB)\n", " Preparing metadata (setup.py) ... \u001b[?25ldone\n", "\u001b[?25hRequirement already satisfied: llvmlite<0.41,>=0.40.0dev0 in /usr/local/lib/python3.10/dist-packages (from numba>=0.57.0->TTS) (0.40.1)\n", "Requirement already satisfied: pytz>=2020.1 in /usr/local/lib/python3.10/dist-packages (from pandas<2.0,>=1.4->TTS) (2023.3)\n", "Requirement already satisfied: threadpoolctl>=2.0.0 in /usr/local/lib/python3.10/dist-packages (from scikit-learn>=1.3.0->TTS) (3.2.0)\n", "INFO: pip is looking at multiple versions of scipy to determine which version is compatible with other requirements. This could take a while.\n", "Collecting scipy>=1.11.2 (from TTS)\n", " Obtaining dependency information for scipy>=1.11.2 from https://files.pythonhosted.org/packages/e0/9e/80e2205d138960a49caea391f3710600895dd8292b6868dc9aff7aa593f9/scipy-1.11.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata\n", " Downloading scipy-1.11.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (60 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m60.4/60.4 kB\u001b[0m \u001b[31m759.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hRequirement already satisfied: cffi>=1.0 in /usr/local/lib/python3.10/dist-packages (from soundfile>=0.12.0->TTS) (1.16.0)\n", "Requirement already satisfied: spacy-legacy<3.1.0,>=3.0.11 in /usr/local/lib/python3.10/dist-packages (from spacy[ja]>=3->TTS) (3.0.12)\n", "Requirement already satisfied: spacy-loggers<2.0.0,>=1.0.0 in /usr/local/lib/python3.10/dist-packages (from spacy[ja]>=3->TTS) (1.0.5)\n", "Requirement already satisfied: murmurhash<1.1.0,>=0.28.0 in /usr/local/lib/python3.10/dist-packages (from spacy[ja]>=3->TTS) (1.0.10)\n", "Requirement already satisfied: cymem<2.1.0,>=2.0.2 in /usr/local/lib/python3.10/dist-packages (from spacy[ja]>=3->TTS) (2.0.8)\n", "Requirement already satisfied: preshed<3.1.0,>=3.0.2 in /usr/local/lib/python3.10/dist-packages (from spacy[ja]>=3->TTS) (3.0.9)\n", "Requirement already satisfied: thinc<8.3.0,>=8.1.8 in /usr/local/lib/python3.10/dist-packages (from spacy[ja]>=3->TTS) (8.2.1)\n", "Requirement already satisfied: wasabi<1.2.0,>=0.9.1 in /usr/local/lib/python3.10/dist-packages (from spacy[ja]>=3->TTS) (1.1.2)\n", "Requirement already satisfied: srsly<3.0.0,>=2.4.3 in /usr/local/lib/python3.10/dist-packages (from spacy[ja]>=3->TTS) (2.4.8)\n", "Requirement already satisfied: catalogue<2.1.0,>=2.0.6 in /usr/local/lib/python3.10/dist-packages (from spacy[ja]>=3->TTS) (2.0.10)\n", "Requirement already satisfied: weasel<0.4.0,>=0.1.0 in /usr/local/lib/python3.10/dist-packages (from spacy[ja]>=3->TTS) (0.3.2)\n", "Requirement already satisfied: typer<0.10.0,>=0.3.0 in /usr/local/lib/python3.10/dist-packages (from spacy[ja]>=3->TTS) (0.9.0)\n", "Requirement already satisfied: pathy>=0.10.0 in /usr/local/lib/python3.10/dist-packages (from spacy[ja]>=3->TTS) (0.10.2)\n", "Requirement already satisfied: smart-open<7.0.0,>=5.2.1 in /usr/local/lib/python3.10/dist-packages (from spacy[ja]>=3->TTS) (6.4.0)\n", "Requirement already satisfied: requests<3.0.0,>=2.13.0 in /usr/local/lib/python3.10/dist-packages (from spacy[ja]>=3->TTS) (2.31.0)\n", "Requirement already satisfied: setuptools in /usr/local/lib/python3.10/dist-packages (from spacy[ja]>=3->TTS) (68.2.2)\n", "Requirement already satisfied: langcodes<4.0.0,>=3.2.0 in /usr/local/lib/python3.10/dist-packages (from spacy[ja]>=3->TTS) (3.3.0)\n", "Collecting sudachipy!=0.6.1,>=0.5.2 (from spacy[ja]>=3->TTS)\n", " Obtaining dependency information for sudachipy!=0.6.1,>=0.5.2 from https://files.pythonhosted.org/packages/bd/5e/59892dc4d962d688bd327d3e0b055c26da6c2ba5d6df8b5dac71790fb31b/SudachiPy-0.6.8-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata\n", " Downloading SudachiPy-0.6.8-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (12 kB)\n", "Collecting sudachidict-core>=20211220 (from spacy[ja]>=3->TTS)\n", " Obtaining dependency information for sudachidict-core>=20211220 from https://files.pythonhosted.org/packages/52/d3/a21d9846a79c1d4a61f7e5995073c8f7f4cbb237b7eb3cca533b647fd59b/SudachiDict_core-20240109-py3-none-any.whl.metadata\n", " Downloading SudachiDict_core-20240109-py3-none-any.whl.metadata (2.5 kB)\n", "Requirement already satisfied: filelock in /usr/local/lib/python3.10/dist-packages (from torch>=2.1->TTS) (3.12.4)\n", "Requirement already satisfied: sympy in /usr/local/lib/python3.10/dist-packages (from torch>=2.1->TTS) (1.12)\n", "Collecting nvidia-cuda-nvrtc-cu12==12.1.105 (from torch>=2.1->TTS)\n", " Downloading nvidia_cuda_nvrtc_cu12-12.1.105-py3-none-manylinux1_x86_64.whl (23.7 MB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m23.7/23.7 MB\u001b[0m \u001b[31m71.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0ma \u001b[36m0:00:01\u001b[0m\n", "\u001b[?25hCollecting nvidia-cuda-runtime-cu12==12.1.105 (from torch>=2.1->TTS)\n", " Downloading nvidia_cuda_runtime_cu12-12.1.105-py3-none-manylinux1_x86_64.whl (823 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m823.6/823.6 kB\u001b[0m \u001b[31m89.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hCollecting nvidia-cuda-cupti-cu12==12.1.105 (from torch>=2.1->TTS)\n", " Downloading nvidia_cuda_cupti_cu12-12.1.105-py3-none-manylinux1_x86_64.whl (14.1 MB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m14.1/14.1 MB\u001b[0m \u001b[31m57.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0ma \u001b[36m0:00:01\u001b[0m\n", "\u001b[?25hCollecting nvidia-cudnn-cu12==8.9.2.26 (from torch>=2.1->TTS)\n", " Obtaining dependency information for nvidia-cudnn-cu12==8.9.2.26 from https://files.pythonhosted.org/packages/ff/74/a2e2be7fb83aaedec84f391f082cf765dfb635e7caa9b49065f73e4835d8/nvidia_cudnn_cu12-8.9.2.26-py3-none-manylinux1_x86_64.whl.metadata\n", " Downloading nvidia_cudnn_cu12-8.9.2.26-py3-none-manylinux1_x86_64.whl.metadata (1.6 kB)\n", "Collecting nvidia-cublas-cu12==12.1.3.1 (from torch>=2.1->TTS)\n", " Downloading nvidia_cublas_cu12-12.1.3.1-py3-none-manylinux1_x86_64.whl (410.6 MB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m410.6/410.6 MB\u001b[0m \u001b[31m90.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m00:01\u001b[0m00:01\u001b[0m\n", "\u001b[?25hCollecting nvidia-cufft-cu12==11.0.2.54 (from torch>=2.1->TTS)\n", " Downloading nvidia_cufft_cu12-11.0.2.54-py3-none-manylinux1_x86_64.whl (121.6 MB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m121.6/121.6 MB\u001b[0m \u001b[31m74.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m00:01\u001b[0m00:01\u001b[0m\n", "\u001b[?25hCollecting nvidia-curand-cu12==10.3.2.106 (from torch>=2.1->TTS)\n", " Downloading nvidia_curand_cu12-10.3.2.106-py3-none-manylinux1_x86_64.whl (56.5 MB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m56.5/56.5 MB\u001b[0m \u001b[31m78.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m00:01\u001b[0m00:01\u001b[0m\n", "\u001b[?25hCollecting nvidia-cusolver-cu12==11.4.5.107 (from torch>=2.1->TTS)\n", " Downloading nvidia_cusolver_cu12-11.4.5.107-py3-none-manylinux1_x86_64.whl (124.2 MB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m124.2/124.2 MB\u001b[0m \u001b[31m63.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m00:01\u001b[0m00:01\u001b[0m\n", "\u001b[?25hCollecting nvidia-cusparse-cu12==12.1.0.106 (from torch>=2.1->TTS)\n", " Downloading nvidia_cusparse_cu12-12.1.0.106-py3-none-manylinux1_x86_64.whl (196.0 MB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m196.0/196.0 MB\u001b[0m \u001b[31m56.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m00:01\u001b[0m00:01\u001b[0m\n", "\u001b[?25hCollecting nvidia-nccl-cu12==2.19.3 (from torch>=2.1->TTS)\n", " Obtaining dependency information for nvidia-nccl-cu12==2.19.3 from https://files.pythonhosted.org/packages/38/00/d0d4e48aef772ad5aebcf70b73028f88db6e5640b36c38e90445b7a57c45/nvidia_nccl_cu12-2.19.3-py3-none-manylinux1_x86_64.whl.metadata\n", " Downloading nvidia_nccl_cu12-2.19.3-py3-none-manylinux1_x86_64.whl.metadata (1.8 kB)\n", "Collecting nvidia-nvtx-cu12==12.1.105 (from torch>=2.1->TTS)\n", " Downloading nvidia_nvtx_cu12-12.1.105-py3-none-manylinux1_x86_64.whl (99 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m99.1/99.1 kB\u001b[0m \u001b[31m228.9 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hCollecting triton==2.2.0 (from torch>=2.1->TTS)\n", " Obtaining dependency information for triton==2.2.0 from https://files.pythonhosted.org/packages/95/05/ed974ce87fe8c8843855daa2136b3409ee1c126707ab54a8b72815c08b49/triton-2.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata\n", " Downloading triton-2.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (1.4 kB)\n", "Collecting nvidia-nvjitlink-cu12 (from nvidia-cusolver-cu12==11.4.5.107->torch>=2.1->TTS)\n", " Obtaining dependency information for nvidia-nvjitlink-cu12 from https://files.pythonhosted.org/packages/1e/07/bf730d44c2fe1b676ad9cc2be5f5f861eb5d153fb6951987a2d6a96379a9/nvidia_nvjitlink_cu12-12.3.101-py3-none-manylinux1_x86_64.whl.metadata\n", " Downloading nvidia_nvjitlink_cu12-12.3.101-py3-none-manylinux1_x86_64.whl.metadata (1.5 kB)\n", "Requirement already satisfied: psutil in /usr/local/lib/python3.10/dist-packages (from trainer>=0.0.32->TTS) (5.9.4)\n", "Requirement already satisfied: tensorboard in /usr/local/lib/python3.10/dist-packages (from trainer>=0.0.32->TTS) (2.9.0)\n", "Requirement already satisfied: huggingface-hub<1.0,>=0.19.3 in /usr/local/lib/python3.10/dist-packages (from transformers>=4.33.0->TTS) (0.20.3)\n", "Requirement already satisfied: regex!=2019.12.17 in /usr/local/lib/python3.10/dist-packages (from transformers>=4.33.0->TTS) (2023.10.3)\n", "Requirement already satisfied: tokenizers<0.19,>=0.14 in /usr/local/lib/python3.10/dist-packages (from transformers>=4.33.0->TTS) (0.15.2)\n", "Requirement already satisfied: safetensors>=0.4.1 in /usr/local/lib/python3.10/dist-packages (from transformers>=4.33.0->TTS) (0.4.2)\n", "Collecting pynndescent>=0.5 (from umap-learn>=0.5.1->TTS)\n", " Obtaining dependency information for pynndescent>=0.5 from https://files.pythonhosted.org/packages/4e/82/0b9851a2fd4da9b57d7931446f5ebab92a98f1f35d3dc0dae5f9ed50a462/pynndescent-0.5.11-py3-none-any.whl.metadata\n", " Downloading pynndescent-0.5.11-py3-none-any.whl.metadata (6.8 kB)\n", "Requirement already satisfied: pycparser in /usr/local/lib/python3.10/dist-packages (from cffi>=1.0->soundfile>=0.12.0->TTS) (2.21)\n", "Collecting tzlocal (from dateparser~=1.1.0->gruut[de,es,fr]==2.2.3->TTS)\n", " Obtaining dependency information for tzlocal from https://files.pythonhosted.org/packages/97/3f/c4c51c55ff8487f2e6d0e618dba917e3c3ee2caae6cf0fbb59c9b1876f2e/tzlocal-5.2-py3-none-any.whl.metadata\n", " Downloading tzlocal-5.2-py3-none-any.whl.metadata (7.8 kB)\n", "Requirement already satisfied: MarkupSafe>=2.0 in /usr/local/lib/python3.10/dist-packages (from Jinja2>=3.1.2->flask>=2.0.1->TTS) (2.1.3)\n", "Requirement already satisfied: six in /usr/local/lib/python3.10/dist-packages (from jsonlines~=1.2.0->gruut[de,es,fr]==2.2.3->TTS) (1.16.0)\n", "Requirement already satisfied: platformdirs>=2.5.0 in /usr/local/lib/python3.10/dist-packages (from pooch>=1.0->librosa>=0.10.0->TTS) (3.11.0)\n", "Requirement already satisfied: annotated-types>=0.4.0 in /usr/local/lib/python3.10/dist-packages (from pydantic>=1.9.1->inflect>=5.6.0->TTS) (0.5.0)\n", "Requirement already satisfied: pydantic-core==2.10.1 in /usr/local/lib/python3.10/dist-packages (from pydantic>=1.9.1->inflect>=5.6.0->TTS) (2.10.1)\n", "Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/dist-packages (from requests<3.0.0,>=2.13.0->spacy[ja]>=3->TTS) (3.4)\n", "Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.10/dist-packages (from requests<3.0.0,>=2.13.0->spacy[ja]>=3->TTS) (1.26.16)\n", "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/dist-packages (from requests<3.0.0,>=2.13.0->spacy[ja]>=3->TTS) (2023.7.22)\n", "Requirement already satisfied: blis<0.8.0,>=0.7.8 in /usr/local/lib/python3.10/dist-packages (from thinc<8.3.0,>=8.1.8->spacy[ja]>=3->TTS) (0.7.11)\n", "Requirement already satisfied: confection<1.0.0,>=0.0.1 in /usr/local/lib/python3.10/dist-packages (from thinc<8.3.0,>=8.1.8->spacy[ja]>=3->TTS) (0.1.3)\n", "Requirement already satisfied: cloudpathlib<0.16.0,>=0.7.0 in /usr/local/lib/python3.10/dist-packages (from weasel<0.4.0,>=0.1.0->spacy[ja]>=3->TTS) (0.15.1)\n", "Requirement already satisfied: mpmath>=0.19 in /usr/local/lib/python3.10/dist-packages (from sympy->torch>=2.1->TTS) (1.3.0)\n", "Requirement already satisfied: absl-py>=0.4 in /usr/local/lib/python3.10/dist-packages (from tensorboard->trainer>=0.0.32->TTS) (2.0.0)\n", "Requirement already satisfied: grpcio>=1.24.3 in /usr/local/lib/python3.10/dist-packages (from tensorboard->trainer>=0.0.32->TTS) (1.59.0)\n", "Requirement already satisfied: google-auth<3,>=1.6.3 in /usr/local/lib/python3.10/dist-packages (from tensorboard->trainer>=0.0.32->TTS) (2.23.2)\n", "Requirement already satisfied: google-auth-oauthlib<0.5,>=0.4.1 in /usr/local/lib/python3.10/dist-packages (from tensorboard->trainer>=0.0.32->TTS) (0.4.6)\n", "Requirement already satisfied: markdown>=2.6.8 in /usr/local/lib/python3.10/dist-packages (from tensorboard->trainer>=0.0.32->TTS) (3.4.4)\n", "Requirement already satisfied: protobuf>=3.9.2 in /usr/local/lib/python3.10/dist-packages (from tensorboard->trainer>=0.0.32->TTS) (4.24.4)\n", "Requirement already satisfied: tensorboard-data-server<0.7.0,>=0.6.0 in /usr/local/lib/python3.10/dist-packages (from tensorboard->trainer>=0.0.32->TTS) (0.6.1)\n", "Requirement already satisfied: tensorboard-plugin-wit>=1.6.0 in /usr/local/lib/python3.10/dist-packages (from tensorboard->trainer>=0.0.32->TTS) (1.8.1)\n", "Requirement already satisfied: wheel>=0.26 in /usr/local/lib/python3.10/dist-packages (from tensorboard->trainer>=0.0.32->TTS) (0.41.2)\n", "Requirement already satisfied: cachetools<6.0,>=2.0.0 in /usr/local/lib/python3.10/dist-packages (from google-auth<3,>=1.6.3->tensorboard->trainer>=0.0.32->TTS) (5.3.1)\n", "Requirement already satisfied: pyasn1-modules>=0.2.1 in /usr/local/lib/python3.10/dist-packages (from google-auth<3,>=1.6.3->tensorboard->trainer>=0.0.32->TTS) (0.3.0)\n", "Requirement already satisfied: rsa<5,>=3.1.4 in /usr/local/lib/python3.10/dist-packages (from google-auth<3,>=1.6.3->tensorboard->trainer>=0.0.32->TTS) (4.9)\n", "Requirement already satisfied: requests-oauthlib>=0.7.0 in /usr/local/lib/python3.10/dist-packages (from google-auth-oauthlib<0.5,>=0.4.1->tensorboard->trainer>=0.0.32->TTS) (1.3.1)\n", "Requirement already satisfied: pyasn1<0.6.0,>=0.4.6 in /usr/local/lib/python3.10/dist-packages (from pyasn1-modules>=0.2.1->google-auth<3,>=1.6.3->tensorboard->trainer>=0.0.32->TTS) (0.5.0)\n", "Requirement already satisfied: oauthlib>=3.0.0 in /usr/local/lib/python3.10/dist-packages (from requests-oauthlib>=0.7.0->google-auth-oauthlib<0.5,>=0.4.1->tensorboard->trainer>=0.0.32->TTS) (3.2.2)\n", "Downloading TTS-0.22.0-cp310-cp310-manylinux1_x86_64.whl (938 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m938.0/938.0 kB\u001b[0m \u001b[31m70.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hDownloading flask-3.0.2-py3-none-any.whl (101 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m101.3/101.3 kB\u001b[0m \u001b[31m734.3 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hDownloading inflect-7.0.0-py3-none-any.whl (34 kB)\n", "Downloading num2words-0.5.13-py3-none-any.whl (143 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m143.3/143.3 kB\u001b[0m \u001b[31m200.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hDownloading scikit_learn-1.4.0-1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (12.1 MB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m12.1/12.1 MB\u001b[0m \u001b[31m60.1 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0ma \u001b[36m0:00:01\u001b[0m\n", "\u001b[?25hDownloading scipy-1.11.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (36.4 MB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m36.4/36.4 MB\u001b[0m \u001b[31m65.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m00:01\u001b[0m00:01\u001b[0m\n", "\u001b[?25hDownloading torch-2.2.0-cp310-cp310-manylinux1_x86_64.whl (755.5 MB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m755.5/755.5 MB\u001b[0m \u001b[31m79.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m00:01\u001b[0m00:01\u001b[0m\n", "\u001b[?25hDownloading nvidia_cudnn_cu12-8.9.2.26-py3-none-manylinux1_x86_64.whl (731.7 MB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m731.7/731.7 MB\u001b[0m \u001b[31m84.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m00:01\u001b[0m00:01\u001b[0m\n", "\u001b[?25hDownloading nvidia_nccl_cu12-2.19.3-py3-none-manylinux1_x86_64.whl (166.0 MB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m166.0/166.0 MB\u001b[0m \u001b[31m82.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m00:01\u001b[0m00:01\u001b[0m\n", "\u001b[?25hDownloading triton-2.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (167.9 MB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m167.9/167.9 MB\u001b[0m \u001b[31m56.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m00:01\u001b[0m00:01\u001b[0m\n", "\u001b[?25hDownloading trainer-0.0.36-py3-none-any.whl (51 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m51.2/51.2 kB\u001b[0m \u001b[31m210.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hDownloading Unidecode-1.3.8-py3-none-any.whl (235 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m235.5/235.5 kB\u001b[0m \u001b[31m319.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hDownloading pypinyin-0.50.0-py2.py3-none-any.whl (1.4 MB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m1.4/1.4 MB\u001b[0m \u001b[31m67.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hDownloading torchaudio-2.2.0-cp310-cp310-manylinux1_x86_64.whl (3.3 MB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m3.3/3.3 MB\u001b[0m \u001b[31m64.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0ma \u001b[36m0:00:01\u001b[0m\n", "\u001b[?25hDownloading Babel-2.14.0-py3-none-any.whl (11.0 MB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m11.0/11.0 MB\u001b[0m \u001b[31m61.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0ma \u001b[36m0:00:01\u001b[0m\n", "\u001b[?25hDownloading blinker-1.7.0-py3-none-any.whl (13 kB)\n", "Downloading lazy_loader-0.3-py3-none-any.whl (9.1 kB)\n", "Downloading pynndescent-0.5.11-py3-none-any.whl (55 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m55.8/55.8 kB\u001b[0m \u001b[31m149.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hDownloading python_crfsuite-0.9.10-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[31m74.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hDownloading soxr-0.3.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.2 MB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m1.2/1.2 MB\u001b[0m \u001b[31m70.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hDownloading SudachiDict_core-20240109-py3-none-any.whl (71.8 MB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m71.8/71.8 MB\u001b[0m \u001b[31m75.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m00:01\u001b[0m00:01\u001b[0m\n", "\u001b[?25hDownloading SudachiPy-0.6.8-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.6 MB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m2.6/2.6 MB\u001b[0m \u001b[31m95.9 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hDownloading nvidia_nvjitlink_cu12-12.3.101-py3-none-manylinux1_x86_64.whl (20.5 MB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m20.5/20.5 MB\u001b[0m \u001b[31m67.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0ma \u001b[36m0:00:01\u001b[0m\n", "\u001b[?25hDownloading tzlocal-5.2-py3-none-any.whl (17 kB)\n", "Building wheels for collected packages: encodec, umap-learn, bnnumerizer, bnunicodenormalizer, jieba, docopt, gruut-ipa, gruut_lang_de, gruut_lang_en, gruut_lang_es, gruut_lang_fr, gruut\n", " Building wheel for encodec (setup.py) ... \u001b[?25ldone\n", "\u001b[?25h Created wheel for encodec: filename=encodec-0.1.1-py3-none-any.whl size=45777 sha256=0d4bcf09d8e16139f2de0d82cc493833f7e723b82c642b7867c09767cada510b\n", " Stored in directory: /tmp/pip-ephem-wheel-cache-ppd0u1rg/wheels/fc/36/cb/81af8b985a5f5e0815312d5e52b41263237af07b977e6bcbf3\n", " Building wheel for umap-learn (setup.py) ... \u001b[?25ldone\n", "\u001b[?25h Created wheel for umap-learn: filename=umap_learn-0.5.5-py3-none-any.whl size=86848 sha256=02d90a2a36eb493885f0896d8d062b482fb63ee742a8ba4d72e8bd2f71d7a20c\n", " Stored in directory: /tmp/pip-ephem-wheel-cache-ppd0u1rg/wheels/3a/70/07/428d2b58660a1a3b431db59b806a10da736612ebbc66c1bcc5\n", " Building wheel for bnnumerizer (setup.py) ... \u001b[?25ldone\n", "\u001b[?25h Created wheel for bnnumerizer: filename=bnnumerizer-0.0.2-py3-none-any.whl size=5275 sha256=96341623cf00d346e81f80eb4edf0f982896ba1ed7d4786605932825cc59351f\n", " Stored in directory: /tmp/pip-ephem-wheel-cache-ppd0u1rg/wheels/59/6b/e8/223172e7d5c9f72df3ea1a0d9258f3a8ab5b28e827728edef5\n", " Building wheel for bnunicodenormalizer (setup.py) ... \u001b[?25ldone\n", "\u001b[?25h Created wheel for bnunicodenormalizer: filename=bnunicodenormalizer-0.1.6-py3-none-any.whl size=22800 sha256=8012440050dd792816764a0ab39a95f1388d05970266fabeb6e970298edd82bf\n", " Stored in directory: /tmp/pip-ephem-wheel-cache-ppd0u1rg/wheels/f4/d7/e9/16732a619cbf5a63fdc9f6e2f9eb5fcf73fa023735237330e9\n", " Building wheel for jieba (setup.py) ... \u001b[?25ldone\n", "\u001b[?25h Created wheel for jieba: filename=jieba-0.42.1-py3-none-any.whl size=19314476 sha256=0bd8999fdb7464d877b4f9b36bf3f67493022116830c7ceeb938750f182b63c2\n", " Stored in directory: /tmp/pip-ephem-wheel-cache-ppd0u1rg/wheels/c9/69/31/d56d90b22a1777b0b231e234b00302a55be255930f8bd92dcd\n", " Building wheel for docopt (setup.py) ... \u001b[?25ldone\n", "\u001b[?25h Created wheel for docopt: filename=docopt-0.6.2-py2.py3-none-any.whl size=13720 sha256=ed9c4f437fb253312ea34ee670012289bee416bf2e9819631943b00f9683daa7\n", " Stored in directory: /tmp/pip-ephem-wheel-cache-ppd0u1rg/wheels/fc/ab/d4/5da2067ac95b36618c629a5f93f809425700506f72c9732fac\n", " Building wheel for gruut-ipa (setup.py) ... \u001b[?25ldone\n", "\u001b[?25h Created wheel for gruut-ipa: filename=gruut_ipa-0.13.0-py3-none-any.whl size=104892 sha256=57f43d3f9be59664367294441ebcd556a9070b8213057178cc7b63d121a3ef8c\n", " Stored in directory: /tmp/pip-ephem-wheel-cache-ppd0u1rg/wheels/7b/18/49/e4f500ecdf0babe757953f844e4d7cd1ea81c5503c09bfe984\n", " Building wheel for gruut_lang_de (setup.py) ... \u001b[?25ldone\n", "\u001b[?25h Created wheel for gruut_lang_de: filename=gruut_lang_de-2.0.0-py3-none-any.whl size=18498198 sha256=3b3ddea4fab59b3307e45783bffccc6f5f41389d9c17bef8af904dea82f51731\n", " Stored in directory: /tmp/pip-ephem-wheel-cache-ppd0u1rg/wheels/95/9a/05/cfce98f0c41a1a540f15708c4a02df190b82d84cf91ef6bc7f\n", " Building wheel for gruut_lang_en (setup.py) ... \u001b[?25ldone\n", "\u001b[?25h Created wheel for gruut_lang_en: filename=gruut_lang_en-2.0.0-py3-none-any.whl size=15297195 sha256=09b3c15e56f1dbe75917dc90bd55dbd73027d457defe0027c7fdcd67b5414f87\n", " Stored in directory: /tmp/pip-ephem-wheel-cache-ppd0u1rg/wheels/10/9c/fb/77c655a9fbd78cdb9935d0ab65d80ddd0a3bcf7dbe18261650\n", " Building wheel for gruut_lang_es (setup.py) ... \u001b[?25ldone\n", "\u001b[?25h Created wheel for gruut_lang_es: filename=gruut_lang_es-2.0.0-py3-none-any.whl size=32173815 sha256=fcea6068c98e4a24eea3dabfc951ad560e7e3c35bcf65d3194e8f35dfa43e9dc\n", " Stored in directory: /tmp/pip-ephem-wheel-cache-ppd0u1rg/wheels/9b/0a/90/788d92c07744b329b9283e37b29b064f5db6b1bb0442a1a19b\n", " Building wheel for gruut_lang_fr (setup.py) ... \u001b[?25ldone\n", "\u001b[?25h Created wheel for gruut_lang_fr: filename=gruut_lang_fr-2.0.2-py3-none-any.whl size=10968788 sha256=2bf6c10294d1c3fbb8bd34aa1795998a9e620c0f88f32396bb73352435067d9b\n", " Stored in directory: /tmp/pip-ephem-wheel-cache-ppd0u1rg/wheels/db/21/be/d0436e3f1cf9bf38b9bb9b4a476399c77a1ab19f7172b45e19\n", " Building wheel for gruut (setup.py) ... \u001b[?25ldone\n", "\u001b[?25h Created wheel for gruut: filename=gruut-2.2.3-py3-none-any.whl size=75809 sha256=833c7e60d720a82b1caa35fe683c97009872027e11e2789fb125a1777161d06f\n", " Stored in directory: /tmp/pip-ephem-wheel-cache-ppd0u1rg/wheels/fc/57/a8/f9de532daf5214f53644f20f3a9e6f69269453c87df9c0a817\n", "Successfully built encodec umap-learn bnnumerizer bnunicodenormalizer jieba docopt gruut-ipa gruut_lang_de gruut_lang_en gruut_lang_es gruut_lang_fr gruut\n", "Installing collected packages: sudachipy, python-crfsuite, jieba, jamo, hangul-romanize, gruut_lang_fr, gruut_lang_es, gruut_lang_en, gruut_lang_de, docopt, bnunicodenormalizer, bnnumerizer, bangla, unidecode, tzlocal, triton, sudachidict-core, pysbd, pypinyin, nvidia-nvtx-cu12, nvidia-nvjitlink-cu12, nvidia-nccl-cu12, nvidia-curand-cu12, nvidia-cufft-cu12, nvidia-cuda-runtime-cu12, nvidia-cuda-nvrtc-cu12, nvidia-cuda-cupti-cu12, nvidia-cublas-cu12, numpy, num2words, nltk, lazy-loader, jsonlines, itsdangerous, gruut-ipa, coqpit, blinker, Babel, anyascii, soxr, scipy, nvidia-cusparse-cu12, nvidia-cudnn-cu12, g2pkk, flask, dateparser, scikit-learn, nvidia-cusolver-cu12, inflect, gruut, torch, pynndescent, librosa, umap-learn, trainer, torchaudio, encodec, TTS\n", " Attempting uninstall: triton\n", " Found existing installation: triton 2.1.0+e621604\n", " Uninstalling triton-2.1.0+e621604:\n", " Successfully uninstalled triton-2.1.0+e621604\n", " Attempting uninstall: numpy\n", " Found existing installation: numpy 1.22.2\n", " Uninstalling numpy-1.22.2:\n", " Successfully uninstalled numpy-1.22.2\n", " Attempting uninstall: scipy\n", " Found existing installation: scipy 1.11.1\n", " Uninstalling scipy-1.11.1:\n", " Successfully uninstalled scipy-1.11.1\n", " Attempting uninstall: scikit-learn\n", " Found existing installation: scikit-learn 1.2.0\n", " Uninstalling scikit-learn-1.2.0:\n", " Successfully uninstalled scikit-learn-1.2.0\n", " Attempting uninstall: torch\n", " Found existing installation: torch 2.1.0a0+32f93b1\n", " Uninstalling torch-2.1.0a0+32f93b1:\n", " Successfully uninstalled torch-2.1.0a0+32f93b1\n", " Attempting uninstall: librosa\n", " Found existing installation: librosa 0.9.2\n", " Uninstalling librosa-0.9.2:\n", " Successfully uninstalled librosa-0.9.2\n", "\u001b[31mERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.\n", "torchdata 0.7.0a0 requires torch==2.1.0a0+32f93b1, but you have torch 2.2.0 which is incompatible.\n", "torchtext 0.16.0a0 requires torch==2.1.0a0+32f93b1, but you have torch 2.2.0 which is incompatible.\n", "torchvision 0.16.0a0 requires torch==2.1.0a0+32f93b1, but you have torch 2.2.0 which is incompatible.\u001b[0m\u001b[31m\n", "\u001b[0mSuccessfully installed Babel-2.14.0 TTS-0.22.0 anyascii-0.3.2 bangla-0.0.2 blinker-1.7.0 bnnumerizer-0.0.2 bnunicodenormalizer-0.1.6 coqpit-0.0.17 dateparser-1.1.8 docopt-0.6.2 encodec-0.1.1 flask-3.0.2 g2pkk-0.1.2 gruut-2.2.3 gruut-ipa-0.13.0 gruut_lang_de-2.0.0 gruut_lang_en-2.0.0 gruut_lang_es-2.0.0 gruut_lang_fr-2.0.2 hangul-romanize-0.1.0 inflect-7.0.0 itsdangerous-2.1.2 jamo-0.4.1 jieba-0.42.1 jsonlines-1.2.0 lazy-loader-0.3 librosa-0.10.0 nltk-3.8.1 num2words-0.5.13 numpy-1.22.0 nvidia-cublas-cu12-12.1.3.1 nvidia-cuda-cupti-cu12-12.1.105 nvidia-cuda-nvrtc-cu12-12.1.105 nvidia-cuda-runtime-cu12-12.1.105 nvidia-cudnn-cu12-8.9.2.26 nvidia-cufft-cu12-11.0.2.54 nvidia-curand-cu12-10.3.2.106 nvidia-cusolver-cu12-11.4.5.107 nvidia-cusparse-cu12-12.1.0.106 nvidia-nccl-cu12-2.19.3 nvidia-nvjitlink-cu12-12.3.101 nvidia-nvtx-cu12-12.1.105 pynndescent-0.5.11 pypinyin-0.50.0 pysbd-0.3.4 python-crfsuite-0.9.10 scikit-learn-1.4.0 scipy-1.11.4 soxr-0.3.7 sudachidict-core-20240109 sudachipy-0.6.8 torch-2.2.0 torchaudio-2.2.0 trainer-0.0.36 triton-2.2.0 tzlocal-5.2 umap-learn-0.5.5 unidecode-1.3.8\n", "\u001b[33mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv\u001b[0m\u001b[33m\n", "\u001b[0m\n", "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip is available: \u001b[0m\u001b[31;49m23.2.1\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m24.0\u001b[0m\n", "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpython -m pip install --upgrade pip\u001b[0m\n", "Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com\n", "Collecting transformers==4.36\n", " Obtaining dependency information for transformers==4.36 from https://files.pythonhosted.org/packages/0f/12/d8e27a190ca67811f81deea3183b528d9169f10b74d827e0b9211520ecfa/transformers-4.36.0-py3-none-any.whl.metadata\n", " Downloading transformers-4.36.0-py3-none-any.whl.metadata (126 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m126.8/126.8 kB\u001b[0m \u001b[31m5.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hRequirement already satisfied: filelock in /usr/local/lib/python3.10/dist-packages (from transformers==4.36) (3.12.4)\n", "Requirement already satisfied: huggingface-hub<1.0,>=0.19.3 in /usr/local/lib/python3.10/dist-packages (from transformers==4.36) (0.20.3)\n", "Requirement already satisfied: numpy>=1.17 in /usr/local/lib/python3.10/dist-packages (from transformers==4.36) (1.22.0)\n", "Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.10/dist-packages (from transformers==4.36) (23.1)\n", "Requirement already satisfied: pyyaml>=5.1 in /usr/local/lib/python3.10/dist-packages (from transformers==4.36) (6.0.1)\n", "Requirement already satisfied: regex!=2019.12.17 in /usr/local/lib/python3.10/dist-packages (from transformers==4.36) (2023.10.3)\n", "Requirement already satisfied: requests in /usr/local/lib/python3.10/dist-packages (from transformers==4.36) (2.31.0)\n", "Requirement already satisfied: tokenizers<0.19,>=0.14 in /usr/local/lib/python3.10/dist-packages (from transformers==4.36) (0.15.2)\n", "Requirement already satisfied: safetensors>=0.3.1 in /usr/local/lib/python3.10/dist-packages (from transformers==4.36) (0.4.2)\n", "Requirement already satisfied: tqdm>=4.27 in /usr/local/lib/python3.10/dist-packages (from transformers==4.36) (4.66.1)\n", "Requirement already satisfied: fsspec>=2023.5.0 in /usr/local/lib/python3.10/dist-packages (from huggingface-hub<1.0,>=0.19.3->transformers==4.36) (2023.6.0)\n", "Requirement already satisfied: typing-extensions>=3.7.4.3 in /usr/local/lib/python3.10/dist-packages (from huggingface-hub<1.0,>=0.19.3->transformers==4.36) (4.9.0)\n", "Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.10/dist-packages (from requests->transformers==4.36) (3.2.0)\n", "Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/dist-packages (from requests->transformers==4.36) (3.4)\n", "Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.10/dist-packages (from requests->transformers==4.36) (1.26.16)\n", "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/dist-packages (from requests->transformers==4.36) (2023.7.22)\n", "Downloading transformers-4.36.0-py3-none-any.whl (8.2 MB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m8.2/8.2 MB\u001b[0m \u001b[31m32.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0ma \u001b[36m0:00:01\u001b[0m\n", "\u001b[?25hInstalling collected packages: transformers\n", " Attempting uninstall: transformers\n", " Found existing installation: transformers 4.37.2\n", " Uninstalling transformers-4.37.2:\n", " Successfully uninstalled transformers-4.37.2\n", "Successfully installed transformers-4.36.0\n", "\u001b[33mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv\u001b[0m\u001b[33m\n", "\u001b[0m\n", "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip is available: \u001b[0m\u001b[31;49m23.2.1\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m24.0\u001b[0m\n", "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpython -m pip install --upgrade pip\u001b[0m\n", "Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com\n", "Requirement already satisfied: numpy in /usr/local/lib/python3.10/dist-packages (1.22.0)\n", "\u001b[33mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv\u001b[0m\u001b[33m\n", "\u001b[0m\n", "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip is available: \u001b[0m\u001b[31;49m23.2.1\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m24.0\u001b[0m\n", "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpython -m pip install --upgrade pip\u001b[0m\n", "Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com\n", "Collecting openai-whisper\n", " Downloading openai-whisper-20231117.tar.gz (798 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m798.6/798.6 kB\u001b[0m \u001b[31m10.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0ma \u001b[36m0:00:01\u001b[0m\n", "\u001b[?25h Installing build dependencies ... \u001b[?25ldone\n", "\u001b[?25h Getting requirements to build wheel ... \u001b[?25ldone\n", "\u001b[?25h Preparing metadata (pyproject.toml) ... \u001b[?25ldone\n", "\u001b[?25hRequirement already satisfied: triton<3,>=2.0.0 in /usr/local/lib/python3.10/dist-packages (from openai-whisper) (2.2.0)\n", "Requirement already satisfied: numba in /usr/local/lib/python3.10/dist-packages (from openai-whisper) (0.57.1+1.g5fba9aa8f)\n", "Requirement already satisfied: numpy in /usr/local/lib/python3.10/dist-packages (from openai-whisper) (1.22.0)\n", "Requirement already satisfied: torch in /usr/local/lib/python3.10/dist-packages (from openai-whisper) (2.2.0)\n", "Requirement already satisfied: tqdm in /usr/local/lib/python3.10/dist-packages (from openai-whisper) (4.66.1)\n", "Collecting more-itertools (from openai-whisper)\n", " Obtaining dependency information for more-itertools from https://files.pythonhosted.org/packages/50/e2/8e10e465ee3987bb7c9ab69efb91d867d93959095f4807db102d07995d94/more_itertools-10.2.0-py3-none-any.whl.metadata\n", " Downloading more_itertools-10.2.0-py3-none-any.whl.metadata (34 kB)\n", "Collecting tiktoken (from openai-whisper)\n", " Obtaining dependency information for tiktoken from https://files.pythonhosted.org/packages/16/05/5efbd91252ffb1301ea393d88ef736b33d41e75d4bcf0bd31d660050e400/tiktoken-0.6.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata\n", " Downloading tiktoken-0.6.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (6.6 kB)\n", "Requirement already satisfied: filelock in /usr/local/lib/python3.10/dist-packages (from triton<3,>=2.0.0->openai-whisper) (3.12.4)\n", "Requirement already satisfied: llvmlite<0.41,>=0.40.0dev0 in /usr/local/lib/python3.10/dist-packages (from numba->openai-whisper) (0.40.1)\n", "Requirement already satisfied: regex>=2022.1.18 in /usr/local/lib/python3.10/dist-packages (from tiktoken->openai-whisper) (2023.10.3)\n", "Requirement already satisfied: requests>=2.26.0 in /usr/local/lib/python3.10/dist-packages (from tiktoken->openai-whisper) (2.31.0)\n", "Requirement already satisfied: typing-extensions>=4.8.0 in /usr/local/lib/python3.10/dist-packages (from torch->openai-whisper) (4.9.0)\n", "Requirement already satisfied: sympy in /usr/local/lib/python3.10/dist-packages (from torch->openai-whisper) (1.12)\n", "Requirement already satisfied: networkx in /usr/local/lib/python3.10/dist-packages (from torch->openai-whisper) (2.6.3)\n", "Requirement already satisfied: jinja2 in /usr/local/lib/python3.10/dist-packages (from torch->openai-whisper) (3.1.2)\n", "Requirement already satisfied: fsspec in /usr/local/lib/python3.10/dist-packages (from torch->openai-whisper) (2023.6.0)\n", "Requirement already satisfied: nvidia-cuda-nvrtc-cu12==12.1.105 in /usr/local/lib/python3.10/dist-packages (from torch->openai-whisper) (12.1.105)\n", "Requirement already satisfied: nvidia-cuda-runtime-cu12==12.1.105 in /usr/local/lib/python3.10/dist-packages (from torch->openai-whisper) (12.1.105)\n", "Requirement already satisfied: nvidia-cuda-cupti-cu12==12.1.105 in /usr/local/lib/python3.10/dist-packages (from torch->openai-whisper) (12.1.105)\n", "Requirement already satisfied: nvidia-cudnn-cu12==8.9.2.26 in /usr/local/lib/python3.10/dist-packages (from torch->openai-whisper) (8.9.2.26)\n", "Requirement already satisfied: nvidia-cublas-cu12==12.1.3.1 in /usr/local/lib/python3.10/dist-packages (from torch->openai-whisper) (12.1.3.1)\n", "Requirement already satisfied: nvidia-cufft-cu12==11.0.2.54 in /usr/local/lib/python3.10/dist-packages (from torch->openai-whisper) (11.0.2.54)\n", "Requirement already satisfied: nvidia-curand-cu12==10.3.2.106 in /usr/local/lib/python3.10/dist-packages (from torch->openai-whisper) (10.3.2.106)\n", "Requirement already satisfied: nvidia-cusolver-cu12==11.4.5.107 in /usr/local/lib/python3.10/dist-packages (from torch->openai-whisper) (11.4.5.107)\n", "Requirement already satisfied: nvidia-cusparse-cu12==12.1.0.106 in /usr/local/lib/python3.10/dist-packages (from torch->openai-whisper) (12.1.0.106)\n", "Requirement already satisfied: nvidia-nccl-cu12==2.19.3 in /usr/local/lib/python3.10/dist-packages (from torch->openai-whisper) (2.19.3)\n", "Requirement already satisfied: nvidia-nvtx-cu12==12.1.105 in /usr/local/lib/python3.10/dist-packages (from torch->openai-whisper) (12.1.105)\n", "Requirement already satisfied: nvidia-nvjitlink-cu12 in /usr/local/lib/python3.10/dist-packages (from nvidia-cusolver-cu12==11.4.5.107->torch->openai-whisper) (12.3.101)\n", "Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.10/dist-packages (from requests>=2.26.0->tiktoken->openai-whisper) (3.2.0)\n", "Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/dist-packages (from requests>=2.26.0->tiktoken->openai-whisper) (3.4)\n", "Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.10/dist-packages (from requests>=2.26.0->tiktoken->openai-whisper) (1.26.16)\n", "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/dist-packages (from requests>=2.26.0->tiktoken->openai-whisper) (2023.7.22)\n", "Requirement already satisfied: MarkupSafe>=2.0 in /usr/local/lib/python3.10/dist-packages (from jinja2->torch->openai-whisper) (2.1.3)\n", "Requirement already satisfied: mpmath>=0.19 in /usr/local/lib/python3.10/dist-packages (from sympy->torch->openai-whisper) (1.3.0)\n", "Downloading more_itertools-10.2.0-py3-none-any.whl (57 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m57.0/57.0 kB\u001b[0m \u001b[31m67.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hDownloading tiktoken-0.6.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.8 MB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m1.8/1.8 MB\u001b[0m \u001b[31m23.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0ma \u001b[36m0:00:01\u001b[0m\n", "\u001b[?25hBuilding wheels for collected packages: openai-whisper\n", " Building wheel for openai-whisper (pyproject.toml) ... \u001b[?25ldone\n", "\u001b[?25h Created wheel for openai-whisper: filename=openai_whisper-20231117-py3-none-any.whl size=801370 sha256=e19a15fa4dcc1b9599a1e2085c6977ed1b86ad7979e0adc7ea85d1eb6f1988a4\n", " Stored in directory: /tmp/pip-ephem-wheel-cache-14j4xki2/wheels/d0/85/e1/9361b4cbea7dd4b7f6702fa4c3afc94877952eeb2b62f45f56\n", "Successfully built openai-whisper\n", "Installing collected packages: more-itertools, tiktoken, openai-whisper\n", "Successfully installed more-itertools-10.2.0 openai-whisper-20231117 tiktoken-0.6.0\n", "\u001b[33mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv\u001b[0m\u001b[33m\n", "\u001b[0m\n", "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip is available: \u001b[0m\u001b[31;49m23.2.1\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m24.0\u001b[0m\n", "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpython -m pip install --upgrade pip\u001b[0m\n", "Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com\n", "Collecting geopy\n", " Obtaining dependency information for geopy from https://files.pythonhosted.org/packages/e5/15/cf2a69ade4b194aa524ac75112d5caac37414b20a3a03e6865dfe0bd1539/geopy-2.4.1-py3-none-any.whl.metadata\n", " Downloading geopy-2.4.1-py3-none-any.whl.metadata (6.8 kB)\n", "Collecting geographiclib<3,>=1.52 (from geopy)\n", " Downloading geographiclib-2.0-py3-none-any.whl (40 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m40.3/40.3 kB\u001b[0m \u001b[31m3.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hDownloading geopy-2.4.1-py3-none-any.whl (125 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m125.4/125.4 kB\u001b[0m \u001b[31m13.9 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hInstalling collected packages: geographiclib, geopy\n", "Successfully installed geographiclib-2.0 geopy-2.4.1\n", "\u001b[33mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv\u001b[0m\u001b[33m\n", "\u001b[0m\n", "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip is available: \u001b[0m\u001b[31;49m23.2.1\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m24.0\u001b[0m\n", "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpython -m pip install --upgrade pip\u001b[0m\n", "Found existing installation: transformer-engine 0.12.0+170797\n", "Uninstalling transformer-engine-0.12.0+170797:\n", " Successfully uninstalled transformer-engine-0.12.0+170797\n", "\u001b[33mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv\u001b[0m\u001b[33m\n", "\u001b[0mLooking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com\n", "Collecting langchain\n", " Obtaining dependency information for langchain from https://files.pythonhosted.org/packages/3c/7c/138106d78cde8b994665251b0681ba59aede8e84902418bab8ea272f4585/langchain-0.1.7-py3-none-any.whl.metadata\n", " Downloading langchain-0.1.7-py3-none-any.whl.metadata (13 kB)\n", "Requirement already satisfied: PyYAML>=5.3 in /usr/local/lib/python3.10/dist-packages (from langchain) (6.0.1)\n", "Collecting SQLAlchemy<3,>=1.4 (from langchain)\n", " Obtaining dependency information for SQLAlchemy<3,>=1.4 from https://files.pythonhosted.org/packages/52/35/07882bf478515af007b7c3809fae9dbfa38f5bdd089efd31ce6abdbe66a5/SQLAlchemy-2.0.27-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata\n", " Downloading SQLAlchemy-2.0.27-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (9.6 kB)\n", "Requirement already satisfied: aiohttp<4.0.0,>=3.8.3 in /usr/local/lib/python3.10/dist-packages (from langchain) (3.8.5)\n", "Requirement already satisfied: async-timeout<5.0.0,>=4.0.0 in /usr/local/lib/python3.10/dist-packages (from langchain) (4.0.3)\n", "Collecting dataclasses-json<0.7,>=0.5.7 (from langchain)\n", " Obtaining dependency information for dataclasses-json<0.7,>=0.5.7 from https://files.pythonhosted.org/packages/91/ca/7219b838086086972e662c19e908694bdc6744537fb41b70392501b8b5e4/dataclasses_json-0.6.4-py3-none-any.whl.metadata\n", " Downloading dataclasses_json-0.6.4-py3-none-any.whl.metadata (25 kB)\n", "Collecting jsonpatch<2.0,>=1.33 (from langchain)\n", " Obtaining dependency information for jsonpatch<2.0,>=1.33 from https://files.pythonhosted.org/packages/73/07/02e16ed01e04a374e644b575638ec7987ae846d25ad97bcc9945a3ee4b0e/jsonpatch-1.33-py2.py3-none-any.whl.metadata\n", " Downloading jsonpatch-1.33-py2.py3-none-any.whl.metadata (3.0 kB)\n", "Collecting langchain-community<0.1,>=0.0.20 (from langchain)\n", " Obtaining dependency information for langchain-community<0.1,>=0.0.20 from https://files.pythonhosted.org/packages/44/21/0c26e7f4cbea8ecc22c21dda8cca29a378b9d2795aebaa47ed40b130979d/langchain_community-0.0.20-py3-none-any.whl.metadata\n", " Downloading langchain_community-0.0.20-py3-none-any.whl.metadata (8.1 kB)\n", "Collecting langchain-core<0.2,>=0.1.22 (from langchain)\n", " Obtaining dependency information for langchain-core<0.2,>=0.1.22 from https://files.pythonhosted.org/packages/b1/e9/7e624fe4a7619821331ad2e943fbfc2eab7465cf97ee95158c435a276d3e/langchain_core-0.1.23-py3-none-any.whl.metadata\n", " Downloading langchain_core-0.1.23-py3-none-any.whl.metadata (6.0 kB)\n", "Collecting langsmith<0.1,>=0.0.83 (from langchain)\n", " Obtaining dependency information for langsmith<0.1,>=0.0.83 from https://files.pythonhosted.org/packages/aa/2b/453e82742b7057ea60007db647266135632e9c687f1b2044ecb72e4764c0/langsmith-0.0.91-py3-none-any.whl.metadata\n", " Downloading langsmith-0.0.91-py3-none-any.whl.metadata (9.9 kB)\n", "Requirement already satisfied: numpy<2,>=1 in /usr/local/lib/python3.10/dist-packages (from langchain) (1.22.0)\n", "Requirement already satisfied: pydantic<3,>=1 in /usr/local/lib/python3.10/dist-packages (from langchain) (2.4.2)\n", "Requirement already satisfied: requests<3,>=2 in /usr/local/lib/python3.10/dist-packages (from langchain) (2.31.0)\n", "Collecting tenacity<9.0.0,>=8.1.0 (from langchain)\n", " Obtaining dependency information for tenacity<9.0.0,>=8.1.0 from https://files.pythonhosted.org/packages/f4/f1/990741d5bb2487d529d20a433210ffa136a367751e454214013b441c4575/tenacity-8.2.3-py3-none-any.whl.metadata\n", " Downloading tenacity-8.2.3-py3-none-any.whl.metadata (1.0 kB)\n", "Requirement already satisfied: attrs>=17.3.0 in /usr/local/lib/python3.10/dist-packages (from aiohttp<4.0.0,>=3.8.3->langchain) (23.1.0)\n", "Requirement already satisfied: charset-normalizer<4.0,>=2.0 in /usr/local/lib/python3.10/dist-packages (from aiohttp<4.0.0,>=3.8.3->langchain) (3.2.0)\n", "Requirement already satisfied: multidict<7.0,>=4.5 in /usr/local/lib/python3.10/dist-packages (from aiohttp<4.0.0,>=3.8.3->langchain) (6.0.4)\n", "Requirement already satisfied: yarl<2.0,>=1.0 in /usr/local/lib/python3.10/dist-packages (from aiohttp<4.0.0,>=3.8.3->langchain) (1.9.2)\n", "Requirement already satisfied: frozenlist>=1.1.1 in /usr/local/lib/python3.10/dist-packages (from aiohttp<4.0.0,>=3.8.3->langchain) (1.4.0)\n", "Requirement already satisfied: aiosignal>=1.1.2 in /usr/local/lib/python3.10/dist-packages (from aiohttp<4.0.0,>=3.8.3->langchain) (1.3.1)\n", "Collecting marshmallow<4.0.0,>=3.18.0 (from dataclasses-json<0.7,>=0.5.7->langchain)\n", " Obtaining dependency information for marshmallow<4.0.0,>=3.18.0 from https://files.pythonhosted.org/packages/57/e9/4368d49d3b462da16a3bac976487764a84dd85cef97232c7bd61f5bdedf3/marshmallow-3.20.2-py3-none-any.whl.metadata\n", " Downloading marshmallow-3.20.2-py3-none-any.whl.metadata (7.5 kB)\n", "Collecting typing-inspect<1,>=0.4.0 (from dataclasses-json<0.7,>=0.5.7->langchain)\n", " Obtaining dependency information for typing-inspect<1,>=0.4.0 from https://files.pythonhosted.org/packages/65/f3/107a22063bf27bdccf2024833d3445f4eea42b2e598abfbd46f6a63b6cb0/typing_inspect-0.9.0-py3-none-any.whl.metadata\n", " Downloading typing_inspect-0.9.0-py3-none-any.whl.metadata (1.5 kB)\n", "Collecting jsonpointer>=1.9 (from jsonpatch<2.0,>=1.33->langchain)\n", " Obtaining dependency information for jsonpointer>=1.9 from https://files.pythonhosted.org/packages/12/f6/0232cc0c617e195f06f810534d00b74d2f348fe71b2118009ad8ad31f878/jsonpointer-2.4-py2.py3-none-any.whl.metadata\n", " Downloading jsonpointer-2.4-py2.py3-none-any.whl.metadata (2.5 kB)\n", "Requirement already satisfied: anyio<5,>=3 in /usr/local/lib/python3.10/dist-packages (from langchain-core<0.2,>=0.1.22->langchain) (4.2.0)\n", "Collecting langsmith<0.1,>=0.0.83 (from langchain)\n", " Obtaining dependency information for langsmith<0.1,>=0.0.83 from https://files.pythonhosted.org/packages/94/99/762b50b229516dd133e09c16213736b88d50d75e262b976e20cc244280ed/langsmith-0.0.87-py3-none-any.whl.metadata\n", " Downloading langsmith-0.0.87-py3-none-any.whl.metadata (10 kB)\n", "Collecting packaging<24.0,>=23.2 (from langchain-core<0.2,>=0.1.22->langchain)\n", " Obtaining dependency information for packaging<24.0,>=23.2 from https://files.pythonhosted.org/packages/ec/1a/610693ac4ee14fcdf2d9bf3c493370e4f2ef7ae2e19217d7a237ff42367d/packaging-23.2-py3-none-any.whl.metadata\n", " Downloading packaging-23.2-py3-none-any.whl.metadata (3.2 kB)\n", "Requirement already satisfied: annotated-types>=0.4.0 in /usr/local/lib/python3.10/dist-packages (from pydantic<3,>=1->langchain) (0.5.0)\n", "Requirement already satisfied: pydantic-core==2.10.1 in /usr/local/lib/python3.10/dist-packages (from pydantic<3,>=1->langchain) (2.10.1)\n", "Requirement already satisfied: typing-extensions>=4.6.1 in /usr/local/lib/python3.10/dist-packages (from pydantic<3,>=1->langchain) (4.9.0)\n", "Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/dist-packages (from requests<3,>=2->langchain) (3.4)\n", "Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.10/dist-packages (from requests<3,>=2->langchain) (1.26.16)\n", "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/dist-packages (from requests<3,>=2->langchain) (2023.7.22)\n", "Collecting greenlet!=0.4.17 (from SQLAlchemy<3,>=1.4->langchain)\n", " Obtaining dependency information for greenlet!=0.4.17 from https://files.pythonhosted.org/packages/24/35/945d5b10648fec9b20bcc6df8952d20bb3bba76413cd71c1fdbee98f5616/greenlet-3.0.3-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.metadata\n", " Downloading greenlet-3.0.3-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.metadata (3.8 kB)\n", "Requirement already satisfied: sniffio>=1.1 in /usr/local/lib/python3.10/dist-packages (from anyio<5,>=3->langchain-core<0.2,>=0.1.22->langchain) (1.3.0)\n", "Requirement already satisfied: exceptiongroup>=1.0.2 in /usr/local/lib/python3.10/dist-packages (from anyio<5,>=3->langchain-core<0.2,>=0.1.22->langchain) (1.1.3)\n", "Collecting mypy-extensions>=0.3.0 (from typing-inspect<1,>=0.4.0->dataclasses-json<0.7,>=0.5.7->langchain)\n", " Downloading mypy_extensions-1.0.0-py3-none-any.whl (4.7 kB)\n", "Downloading langchain-0.1.7-py3-none-any.whl (815 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m815.9/815.9 kB\u001b[0m \u001b[31m40.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hDownloading dataclasses_json-0.6.4-py3-none-any.whl (28 kB)\n", "Downloading jsonpatch-1.33-py2.py3-none-any.whl (12 kB)\n", "Downloading langchain_community-0.0.20-py3-none-any.whl (1.7 MB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m1.7/1.7 MB\u001b[0m \u001b[31m176.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hDownloading langchain_core-0.1.23-py3-none-any.whl (241 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m241.2/241.2 kB\u001b[0m \u001b[31m416.9 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hDownloading langsmith-0.0.87-py3-none-any.whl (55 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m55.4/55.4 kB\u001b[0m \u001b[31m275.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hDownloading SQLAlchemy-2.0.27-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.1 MB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m3.1/3.1 MB\u001b[0m \u001b[31m81.9 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0ma \u001b[36m0:00:01\u001b[0m\n", "\u001b[?25hDownloading tenacity-8.2.3-py3-none-any.whl (24 kB)\n", "Downloading greenlet-3.0.3-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (616 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m616.0/616.0 kB\u001b[0m \u001b[31m94.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hDownloading jsonpointer-2.4-py2.py3-none-any.whl (7.8 kB)\n", "Downloading marshmallow-3.20.2-py3-none-any.whl (49 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m49.4/49.4 kB\u001b[0m \u001b[31m201.3 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hDownloading packaging-23.2-py3-none-any.whl (53 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m53.0/53.0 kB\u001b[0m \u001b[31m217.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hDownloading typing_inspect-0.9.0-py3-none-any.whl (8.8 kB)\n", "Installing collected packages: tenacity, packaging, mypy-extensions, jsonpointer, greenlet, typing-inspect, SQLAlchemy, marshmallow, jsonpatch, langsmith, dataclasses-json, langchain-core, langchain-community, langchain\n", " Attempting uninstall: packaging\n", " Found existing installation: packaging 23.1\n", " Uninstalling packaging-23.1:\n", " Successfully uninstalled packaging-23.1\n", "Successfully installed SQLAlchemy-2.0.27 dataclasses-json-0.6.4 greenlet-3.0.3 jsonpatch-1.33 jsonpointer-2.4 langchain-0.1.7 langchain-community-0.0.20 langchain-core-0.1.23 langsmith-0.0.87 marshmallow-3.20.2 mypy-extensions-1.0.0 packaging-23.2 tenacity-8.2.3 typing-inspect-0.9.0\n", "\u001b[33mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv\u001b[0m\u001b[33m\n", "\u001b[0m\n", "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip is available: \u001b[0m\u001b[31;49m23.2.1\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m24.0\u001b[0m\n", "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpython -m pip install --upgrade pip\u001b[0m\n", "Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com\n", "Collecting text_generation\n", " Obtaining dependency information for text_generation from https://files.pythonhosted.org/packages/14/f7/cadf3a0fc619a72d7c667d16e96ef0a5b4c557e6e2b4788a0360dfba4fee/text_generation-0.6.1-py3-none-any.whl.metadata\n", " Downloading text_generation-0.6.1-py3-none-any.whl.metadata (7.8 kB)\n", "Requirement already satisfied: aiohttp<4.0,>=3.8 in /usr/local/lib/python3.10/dist-packages (from text_generation) (3.8.5)\n", "Requirement already satisfied: huggingface-hub<1.0,>=0.12 in /usr/local/lib/python3.10/dist-packages (from text_generation) (0.20.3)\n", "Requirement already satisfied: pydantic<3,>1.10 in /usr/local/lib/python3.10/dist-packages (from text_generation) (2.4.2)\n", "Requirement already satisfied: attrs>=17.3.0 in /usr/local/lib/python3.10/dist-packages (from aiohttp<4.0,>=3.8->text_generation) (23.1.0)\n", "Requirement already satisfied: charset-normalizer<4.0,>=2.0 in /usr/local/lib/python3.10/dist-packages (from aiohttp<4.0,>=3.8->text_generation) (3.2.0)\n", "Requirement already satisfied: multidict<7.0,>=4.5 in /usr/local/lib/python3.10/dist-packages (from aiohttp<4.0,>=3.8->text_generation) (6.0.4)\n", "Requirement already satisfied: async-timeout<5.0,>=4.0.0a3 in /usr/local/lib/python3.10/dist-packages (from aiohttp<4.0,>=3.8->text_generation) (4.0.3)\n", "Requirement already satisfied: yarl<2.0,>=1.0 in /usr/local/lib/python3.10/dist-packages (from aiohttp<4.0,>=3.8->text_generation) (1.9.2)\n", "Requirement already satisfied: frozenlist>=1.1.1 in /usr/local/lib/python3.10/dist-packages (from aiohttp<4.0,>=3.8->text_generation) (1.4.0)\n", "Requirement already satisfied: aiosignal>=1.1.2 in /usr/local/lib/python3.10/dist-packages (from aiohttp<4.0,>=3.8->text_generation) (1.3.1)\n", "Requirement already satisfied: filelock in /usr/local/lib/python3.10/dist-packages (from huggingface-hub<1.0,>=0.12->text_generation) (3.12.4)\n", "Requirement already satisfied: fsspec>=2023.5.0 in /usr/local/lib/python3.10/dist-packages (from huggingface-hub<1.0,>=0.12->text_generation) (2023.6.0)\n", "Requirement already satisfied: requests in /usr/local/lib/python3.10/dist-packages (from huggingface-hub<1.0,>=0.12->text_generation) (2.31.0)\n", "Requirement already satisfied: tqdm>=4.42.1 in /usr/local/lib/python3.10/dist-packages (from huggingface-hub<1.0,>=0.12->text_generation) (4.66.1)\n", "Requirement already satisfied: pyyaml>=5.1 in /usr/local/lib/python3.10/dist-packages (from huggingface-hub<1.0,>=0.12->text_generation) (6.0.1)\n", "Requirement already satisfied: typing-extensions>=3.7.4.3 in /usr/local/lib/python3.10/dist-packages (from huggingface-hub<1.0,>=0.12->text_generation) (4.9.0)\n", "Requirement already satisfied: packaging>=20.9 in /usr/local/lib/python3.10/dist-packages (from huggingface-hub<1.0,>=0.12->text_generation) (23.2)\n", "Requirement already satisfied: annotated-types>=0.4.0 in /usr/local/lib/python3.10/dist-packages (from pydantic<3,>1.10->text_generation) (0.5.0)\n", "Requirement already satisfied: pydantic-core==2.10.1 in /usr/local/lib/python3.10/dist-packages (from pydantic<3,>1.10->text_generation) (2.10.1)\n", "Requirement already satisfied: idna>=2.0 in /usr/local/lib/python3.10/dist-packages (from yarl<2.0,>=1.0->aiohttp<4.0,>=3.8->text_generation) (3.4)\n", "Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.10/dist-packages (from requests->huggingface-hub<1.0,>=0.12->text_generation) (1.26.16)\n", "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/dist-packages (from requests->huggingface-hub<1.0,>=0.12->text_generation) (2023.7.22)\n", "Downloading text_generation-0.6.1-py3-none-any.whl (10 kB)\n", "Installing collected packages: text_generation\n", "Successfully installed text_generation-0.6.1\n", "\u001b[33mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv\u001b[0m\u001b[33m\n", "\u001b[0m\n", "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip is available: \u001b[0m\u001b[31;49m23.2.1\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m24.0\u001b[0m\n", "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpython -m pip install --upgrade pip\u001b[0m\n" ] } ], "source": [ "#run this cell \n", "!pip install accelerate\n", "!pip install bitsandbytes\n", "!pip install optimum\n", "!pip install auto-gptq\n", "!pip install gradio\n", "\n", "#text-to-speech and speech to text\n", "!pip install TTS\n", "!pip install 'transformers == 4.36'\n", "!pip install numpy\n", "!pip install openai-whisper #Whisper models\n", "\n", "!pip install geopy\n", "\n", "!pip uninstall transformer-engine -y\n", "\n", "\n", "!pip install langchain\n", "!pip install text_generation" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### libraries import" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": true, "id": "oOnNfKjX4IAV" }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/usr/local/lib/python3.10/dist-packages/tqdm/auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n", " from .autonotebook import tqdm as notebook_tqdm\n", "/usr/local/lib/python3.10/dist-packages/transformers/utils/generic.py:441: UserWarning: torch.utils._pytree._register_pytree_node is deprecated. Please use torch.utils._pytree.register_pytree_node instead.\n", " _torch_pytree._register_pytree_node(\n", "/usr/local/lib/python3.10/dist-packages/transformers/utils/generic.py:309: UserWarning: torch.utils._pytree._register_pytree_node is deprecated. Please use torch.utils._pytree.register_pytree_node instead.\n", " _torch_pytree._register_pytree_node(\n", "/usr/local/lib/python3.10/dist-packages/transformers/utils/generic.py:309: UserWarning: torch.utils._pytree._register_pytree_node is deprecated. Please use torch.utils._pytree.register_pytree_node instead.\n", " _torch_pytree._register_pytree_node(\n" ] } ], "source": [ "#gradio interface\n", "import gradio as gr\n", "\n", "from transformers import AutoModelForCausalLM,AutoTokenizer\n", "import torch\n", "\n", "#STT (speech to text)\n", "from transformers import WhisperProcessor, WhisperForConditionalGeneration\n", "import librosa\n", "\n", "#TTS (text to speech)\n", "import torch\n", "from TTS.api import TTS\n", "from IPython.display import Audio\n", "\n", "#json request for APIs\n", "import requests\n", "import json\n", "\n", "#regular expressions\n", "import re\n", "\n", "#langchain and function calling\n", "from typing import List, Literal, Union\n", "import requests\n", "from functools import partial\n", "from geopy.geocoders import Nominatim\n", "import math\n", "\n", "\n", "#langchain, not used anymore since I had to find another way fast to stop using the endpoint, but could be interesting to reuse \n", "from langchain.tools.base import StructuredTool\n", "from langchain.agents import (\n", " Tool,\n", " AgentExecutor,\n", " LLMSingleActionAgent,\n", " AgentOutputParser,\n", ")\n", "from langchain.schema import AgentAction, AgentFinish, OutputParserException\n", "from langchain.prompts import StringPromptTemplate\n", "from langchain.llms import HuggingFaceTextGenInference\n", "from langchain.chains import LLMChain\n", "\n", "\n", "\n", "from datetime import datetime, timedelta, timezone\n", "from transformers import pipeline\n", "import inspect" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Models loads" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": true, "id": "JNALTDb0LT90" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " > tts_models/multilingual/multi-dataset/xtts_v1.1 is already downloaded.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "/usr/local/lib/python3.10/dist-packages/transformers/utils/generic.py:309: UserWarning: torch.utils._pytree._register_pytree_node is deprecated. Please use torch.utils._pytree.register_pytree_node instead.\n", " _torch_pytree._register_pytree_node(\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " > Using model: xtts\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Loading checkpoint shards: 100%|██████████| 2/2 [00:01<00:00, 1.49it/s]\n", "Special tokens have been added in the vocabulary, make sure the associated word embeddings are fine-tuned or trained.\n", "Loading checkpoint shards: 100%|██████████| 3/3 [00:09<00:00, 3.29s/it]\n" ] } ], "source": [ "# load model and processor for speech-to-text\n", "processor = WhisperProcessor.from_pretrained(\"openai/whisper-small\")\n", "modelw = WhisperForConditionalGeneration.from_pretrained(\"openai/whisper-small\")\n", "modelw.config.forced_decoder_ids = None\n", "\n", "#load model for text to speech\n", "device = \"cuda\" if torch.cuda.is_available() else \"cpu\"\n", "tts = TTS(\"tts_models/multilingual/multi-dataset/xtts_v1.1\").to(device)\n", "\n", "#load model language recognition\n", "model_ckpt = \"papluca/xlm-roberta-base-language-detection\"\n", "pipe_language = pipeline(\"text-classification\", model=model_ckpt)\n", "\n", "#load model llama2\n", "mn = 'stabilityai/StableBeluga-7B' #mn = \"TheBloke/Llama-2-7b-Chat-GPTQ\" --> other possibility \n", "model = AutoModelForCausalLM.from_pretrained(mn, device_map=0, load_in_4bit=True) #torch_dtype=torch.float16\n", "tokr = AutoTokenizer.from_pretrained(mn, load_in_4bit=True) #tokenizer\n", "\n", "#NexusRaven for function calling\n", "model_id = \"Nexusflow/NexusRaven-13B\"\n", "tokenizer = AutoTokenizer.from_pretrained(model_id)\n", "modelNexus = AutoModelForCausalLM.from_pretrained(model_id, device_map=0, load_in_4bit=True)\n", "pipe = pipeline(\"text-generation\", model=modelNexus, tokenizer = tokenizer)\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Function calling with NexusRaven " ] }, { "cell_type": "code", "execution_count": 81, "metadata": {}, "outputs": [], "source": [ "#FUNCTION CALLING \n", "\n", "#API keys\n", "TOMTOM_KEY= \"your_key\" \n", "WHEATHER_API_KEY = \"your_key\" \n", "\n", "##########################################################\n", "# Step 1: Define the functions you want to articulate. ###\n", "##########################################################\n", "\n", "########################################################################################\n", "# Functions called in the articulated functions (not directly called by the model): ###\n", "########################################################################################\n", "\n", "geolocator = Nominatim(user_agent=\"MyApp\")\n", "\n", "def find_precise_place(lat, lon):\n", " location = geolocator.reverse(str(lat) +\", \" + str(lon))\n", " return location.raw.get('display_name', {})\n", "\n", "def find_coordinates(address):\n", " coord = geolocator.geocode(address)\n", " lat = coord.latitude\n", " lon = coord.longitude\n", " return(lat,lon)\n", "\n", "\n", "def check_city_coordinates(lat = \"\", lon = \"\", city = \"\", **kwargs):\n", " \"\"\"\n", " :param lat: latitude\n", " :param lon: longitude\n", " :param city: name of the city\n", "\n", " Checks if the coordinates correspond to the city, if not update the coordinate to correspond to the city\n", " \"\"\"\n", " if lat != \"0\" and lon != \"0\":\n", " reverse = partial(geolocator.reverse, language=\"en\")\n", " location = reverse(f\"{lat}, {lon}\")\n", " address = location.raw.get('address', {})\n", " city = address.get('city') or address.get('town') or address.get('village') or address.get('county')\n", " else : \n", " reverse = partial(geolocator.reverse, language=\"en\")\n", " location = reverse(f\"{lat}, {lon}\")\n", " address = location.raw.get('address', {})\n", " city_name = address.get('city') or address.get('town') or address.get('village') or address.get('county')\n", " if city_name is None :\n", " city_name = 'not_found'\n", " print(city_name)\n", " if city_name.lower() != city.lower():\n", " coord = geolocator.geocode(city )\n", " if coord is None:\n", " coord = geolocator.geocode(city)\n", " lat = coord.latitude\n", " lon = coord.longitude\n", " return lat, lon, city\n", "\n", "# Select coordinates at equal distance, including the last one\n", "def select_equally_spaced_coordinates(coords, number_of_points=10):\n", " n = len(coords)\n", " selected_coords = []\n", " interval = max((n - 1) / (number_of_points - 1), 1)\n", " for i in range(number_of_points):\n", " # Calculate the index, ensuring it doesn't exceed the bounds of the list\n", " index = int(round(i * interval))\n", " if index < n:\n", " selected_coords.append(coords[index])\n", " return selected_coords\n", "\n", "###################################################\n", "# Functions we want to articulate (APIs calls): ###\n", "###################################################\n", "\n", "def search_along_route(latitude_depart, longitude_depart, city_destination, type_of_poi):\n", " \"\"\"\n", " Return some of the closest points of interest along the route from the depart point, specified by its coordinates and a city destination.\n", " :param latitude_depart (string): Required. Latitude of depart location\n", " :param longitude_depart (string): Required. Longitude of depart location\n", " :param city_destination (string): Required. City destination\n", " :param type_of_poi (string): Required. type of point of interest depending on what the user wants to do.\n", " \"\"\"\n", " \n", " lat_dest, lon_dest = find_coordinates(city_destination)\n", " print(lat_dest)\n", " \n", " r = requests.get('https://api.tomtom.com/routing/1/calculateRoute/{0},{1}:{2},{3}/json?key={4}'.format(\n", " latitude_depart,\n", " longitude_depart,\n", " lat_dest,\n", " lon_dest,\n", " TOMTOM_KEY\n", " ))\n", " \n", " coord_route = select_equally_spaced_coordinates(r.json()['routes'][0]['legs'][0]['points'])\n", "\n", " # The API endpoint for searching along a route\n", " url = f'https://api.tomtom.com/search/2/searchAlongRoute/{type_of_poi}.json?key={TOMTOM_KEY}&maxDetourTime=700&limit=20&sortBy=detourTime'\n", "\n", " # The data payload\n", " payload = {\n", " \"route\": {\n", " \"points\": [\n", " {\"lat\": float(latitude_depart), \"lon\": float(longitude_depart)},\n", " {\"lat\": float(coord_route[1]['latitude']), \"lon\": float(coord_route[1]['longitude'])},\n", " {\"lat\": float(coord_route[2]['latitude']), \"lon\": float(coord_route[2]['longitude'])},\n", " {\"lat\": float(coord_route[3]['latitude']), \"lon\": float(coord_route[3]['longitude'])},\n", " {\"lat\": float(coord_route[4]['latitude']), \"lon\": float(coord_route[4]['longitude'])},\n", " {\"lat\": float(coord_route[5]['latitude']), \"lon\": float(coord_route[5]['longitude'])},\n", " {\"lat\": float(coord_route[6]['latitude']), \"lon\": float(coord_route[6]['longitude'])},\n", " {\"lat\": float(coord_route[7]['latitude']), \"lon\": float(coord_route[7]['longitude'])},\n", " {\"lat\": float(coord_route[8]['latitude']), \"lon\": float(coord_route[8]['longitude'])},\n", " {\"lat\": float(lat_dest), \"lon\": float(lon_dest)},\n", " ]\n", " }\n", " }\n", "\n", " # Make the POST request\n", " response = requests.post(url, json=payload)\n", "\n", " # Check if the request was successful\n", " if response.status_code == 200:\n", " # Parse the JSON response\n", " data = response.json()\n", " print(json.dumps(data, indent=4))\n", " else:\n", " print('Failed to retrieve data:', response.status_code)\n", " answer = \"\"\n", " for result in data['results']:\n", " name = result['poi']['name']\n", " address = result['address']['freeformAddress']\n", " detour_time = result['detourTime']\n", " answer = answer + f\" \\nAlong the route to {city_destination}, there is the {name} at {address} that would represent a detour of {int(detour_time/60)} minutes.\"\n", " \n", " return answer\n", "\n", "\n", "def find_points_of_interest(lat=\"0\", lon=\"0\", city=\"\", type_of_poi=\"restaurant\", **kwargs):\n", " \"\"\"\n", " Return some of the closest points of interest for a specific location and type of point of interest. The more parameters there are, the more precise.\n", " :param lat (string): latitude\n", " :param lon (string): longitude\n", " :param city (string): Required. city\n", " :param type_of_poi (string): Required. type of point of interest depending on what the user wants to do.\n", " \"\"\"\n", " lat, lon, city = check_city_coordinates(lat,lon,city)\n", "\n", " r = requests.get(f'https://api.tomtom.com/search/2/search/{type_of_poi}'\n", " '.json?key={0}&lat={1}&lon={2}&radius=10000&idxSet=POI&limit=100'.format(\n", " TOMTOM_KEY,\n", " lat,\n", " lon\n", " ))\n", "\n", " # Parse JSON from the response\n", " data = r.json()\n", " #print(data)\n", " # Extract results\n", " results = data['results']\n", "\n", " # Sort the results based on distance\n", " sorted_results = sorted(results, key=lambda x: x['dist'])\n", " #print(sorted_results)\n", "\n", " # Format and limit to top 5 results\n", " formatted_results = [\n", " f\"The {type_of_poi} {result['poi']['name']} is {int(result['dist'])} meters away\"\n", " for result in sorted_results[:5]\n", " ]\n", "\n", "\n", " return \". \".join(formatted_results)\n", "\n", "def find_route(lat_depart=\"0\", lon_depart=\"0\", city_depart=\"\", address_destination=\"\", depart_time =\"\", **kwargs):\n", " \"\"\"\n", " Return the distance and the estimated time to go to a specific destination from the current place, at a specified depart time.\n", " :param lat_depart (string): latitude of depart\n", " :param lon_depart (string): longitude of depart\n", " :param city_depart (string): Required. city of depart\n", " :param address_destination (string): Required. The destination\n", " :param depart_time (string): departure hour, in the format '08:00:20'.\n", " \"\"\"\n", " print(address_destination)\n", " date = \"2025-03-29T\"\n", " departure_time = '2024-02-01T' + depart_time\n", " lat, lon, city = check_city_coordinates(lat_depart,lon_depart,city_depart)\n", " lat_dest, lon_dest = find_coordinates(address_destination)\n", " #print(lat_dest, lon_dest)\n", " \n", " #print(departure_time)\n", "\n", " r = requests.get('https://api.tomtom.com/routing/1/calculateRoute/{0},{1}:{2},{3}/json?key={4}&departAt={5}'.format(\n", " lat_depart,\n", " lon_depart,\n", " lat_dest,\n", " lon_dest,\n", " TOMTOM_KEY,\n", " departure_time\n", " ))\n", "\n", " # Parse JSON from the response\n", " data = r.json()\n", " #print(data)\n", " \n", " #print(data)\n", " \n", " result = data['routes'][0]['summary']\n", "\n", " # Calculate distance in kilometers (1 meter = 0.001 kilometers)\n", " distance_km = result['lengthInMeters'] * 0.001\n", "\n", " # Calculate travel time in minutes (1 second = 1/60 minutes)\n", " time_minutes = result['travelTimeInSeconds'] / 60\n", " if time_minutes < 60:\n", " time_display = f\"{time_minutes:.0f} minutes\"\n", " else:\n", " hours = int(time_minutes / 60)\n", " minutes = int(time_minutes % 60)\n", " time_display = f\"{hours} hours\" + (f\" and {minutes} minutes\" if minutes > 0 else \"\")\n", " \n", " # Extract arrival time from the JSON structure\n", " arrival_time_str = result['arrivalTime']\n", "\n", " # Convert string to datetime object\n", " arrival_time = datetime.fromisoformat(arrival_time_str)\n", "\n", " # Extract and display the arrival hour in HH:MM format\n", " arrival_hour_display = arrival_time.strftime(\"%H:%M\")\n", "\n", "\n", " # return the distance and time\n", " return(f\"The route to go to {address_destination} is {distance_km:.2f} km and {time_display}. Leaving now, the arrival time is estimated at {arrival_hour_display} \" )\n", "\n", " \n", " # Sort the results based on distance\n", " #sorted_results = sorted(results, key=lambda x: x['dist'])\n", "\n", " #return \". \".join(formatted_results)\n", "\n", "#current weather API\n", "def get_weather(city_name:str= \"\", **kwargs):\n", " \"\"\"\n", " Returns the CURRENT weather in a specified city.\n", " Args:\n", " city_name (string) : Required. The name of the city.\n", " \"\"\"\n", " # The endpoint URL provided by WeatherAPI\n", " url = f\"http://api.weatherapi.com/v1/current.json?key={WEATHER_API_KEY}&q={city_name}&aqi=no\"\n", "\n", " # Make the API request\n", " response = requests.get(url)\n", "\n", " if response.status_code == 200:\n", " # Parse the JSON response\n", " weather_data = response.json()\n", "\n", " # Extracting the necessary pieces of data\n", " location = weather_data['location']['name']\n", " region = weather_data['location']['region']\n", " country = weather_data['location']['country']\n", " time = weather_data['location']['localtime']\n", " temperature_c = weather_data['current']['temp_c']\n", " condition_text = weather_data['current']['condition']['text']\n", " wind_mph = weather_data['current']['wind_mph']\n", " humidity = weather_data['current']['humidity']\n", " feelslike_c = weather_data['current']['feelslike_c']\n", "\n", " # Formulate the sentences\n", " weather_sentences = (\n", " f\"The current weather in {location}, {region}, {country} is {condition_text} \"\n", " f\"with a temperature of {temperature_c}°C that feels like {feelslike_c}°C. \"\n", " f\"Humidity is at {humidity}%. \"\n", " f\"Wind speed is {wind_mph} mph.\"\n", " )\n", " return weather_sentences\n", " else:\n", " # Handle errors\n", " return f\"Failed to get weather data: {response.status_code}, {response.text}\"\n", " \n", "#forecast API\n", "def get_forecast(city_name:str= \"\", when = 0, **kwargs):\n", " \"\"\"\n", " Returns the weather forecast in a specified number of days for a specified city .\n", " Args:\n", " city_name (string) : Required. The name of the city.\n", " when (int) : Required. in number of days (until the day for which we want to know the forecast) (example: tomorrow is 1, in two days is 2, etc.)\n", " \"\"\"\n", " #print(when)\n", " when +=1\n", " # The endpoint URL provided by WeatherAPI\n", " url = f\"http://api.weatherapi.com/v1/forecast.json?key={WEATHER_API_KEY}&q={city_name}&days={str(when)}&aqi=no\"\n", "\n", "\n", " # Make the API request\n", " response = requests.get(url)\n", "\n", " if response.status_code == 200:\n", " # Parse the JSON response\n", " data = response.json()\n", " \n", " # Initialize an empty string to hold our result\n", " forecast_sentences = \"\"\n", "\n", " # Extract city information\n", " location = data.get('location', {})\n", " city_name = location.get('name', 'the specified location')\n", " \n", " #print(data)\n", " \n", "\n", " # Extract the forecast days\n", " forecast_days = data.get('forecast', {}).get('forecastday', [])[when-1:]\n", " #number = 0\n", " \n", " #print (forecast_days)\n", "\n", " for day in forecast_days:\n", " date = day.get('date', 'a specific day')\n", " conditions = day.get('day', {}).get('condition', {}).get('text', 'weather conditions')\n", " max_temp_c = day.get('day', {}).get('maxtemp_c', 'N/A')\n", " min_temp_c = day.get('day', {}).get('mintemp_c', 'N/A')\n", " chance_of_rain = day.get('day', {}).get('daily_chance_of_rain', 'N/A')\n", " \n", " if when == 1:\n", " number_str = 'today'\n", " elif when == 2:\n", " number_str = 'tomorrow'\n", " else:\n", " number_str = f'in {when-1} days'\n", "\n", " # Generate a sentence for the day's forecast\n", " forecast_sentence = f\"On {date} ({number_str}) in {city_name}, the weather will be {conditions} with a high of {max_temp_c}°C and a low of {min_temp_c}°C. There's a {chance_of_rain}% chance of rain. \"\n", " \n", " #number = number + 1\n", " # Add the sentence to the result\n", " forecast_sentences += forecast_sentence\n", " return forecast_sentences\n", " else:\n", " # Handle errors\n", " print( f\"Failed to get weather data: {response.status_code}, {response.text}\")\n", " return f'error {response.status_code}'\n", "\n", "\n", "#############################################################\n", "# Step 2: Let's define some utils for building the prompt ###\n", "#############################################################\n", "\n", "\n", "def format_functions_for_prompt(*functions):\n", " formatted_functions = []\n", " for func in functions:\n", " source_code = inspect.getsource(func)\n", " docstring = inspect.getdoc(func)\n", " formatted_functions.append(\n", " f\"OPTION:\\n{source_code}\\n\\n{docstring}\\n\"\n", " )\n", " return \"\\n\".join(formatted_functions)\n", "\n", "\n", "##############################\n", "# Step 3: Construct Prompt ###\n", "##############################\n", "\n", "\n", "def construct_prompt(user_query: str, context):\n", " formatted_prompt = format_functions_for_prompt(get_weather, find_points_of_interest, find_route, get_forecast, search_along_route)\n", " formatted_prompt += f'\\n\\nContext : {context}'\n", " formatted_prompt += f\"\\n\\nUser Query: Question: {user_query}\\n\"\n", "\n", " prompt = (\n", " \":\\n\"\n", " + formatted_prompt\n", " + \"Please pick a function from the above options that best answers the user query and fill in the appropriate arguments.\"\n", " )\n", " return prompt\n", "\n", "#######################################\n", "# Step 4: Execute the function call ###\n", "#######################################\n", "\n", "\n", "def execute_function_call(model_output):\n", " # Ignore everything after \"Reflection\" since that is not essential.\n", " function_call = (\n", " model_output[0][\"generated_text\"]\n", " .strip()\n", " .split(\"\\n\")[1]\n", " .replace(\"Initial Answer:\", \"\")\n", " .strip()\n", " )\n", "\n", " try:\n", " return eval(function_call)\n", " except Exception as e:\n", " return str(e)\n" ] }, { "cell_type": "code", "execution_count": 73, "metadata": { "collapsed": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "before everything: \n", "Tue Feb 27 12:54:19 2024 \r\n", "+---------------------------------------------------------------------------------------+\r\n", "| NVIDIA-SMI 545.29.02 Driver Version: 545.29.02 CUDA Version: 12.3 |\r\n", "|-----------------------------------------+----------------------+----------------------+\r\n", "| GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC |\r\n", "| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |\r\n", "| | | MIG M. |\r\n", "|=========================================+======================+======================|\r\n", "| 0 NVIDIA GeForce RTX 4090 Off | 00000000:01:00.0 Off | Off |\r\n", "| 0% 46C P8 24W / 450W | 15915MiB / 24564MiB | 0% Default |\r\n", "| | | N/A |\r\n", "+-----------------------------------------+----------------------+----------------------+\r\n", " \r\n", "+---------------------------------------------------------------------------------------+\r\n", "| Processes: |\r\n", "| GPU GI CI PID Type Process name GPU Memory |\r\n", "| ID ID Usage |\r\n", "|=======================================================================================|\r\n", "+---------------------------------------------------------------------------------------+\r\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "huggingface/tokenizers: The current process just got forked, after parallelism has already been used. Disabling parallelism to avoid deadlocks...\n", "To disable this warning, you can either:\n", "\t- Avoid using `tokenizers` before the fork if possible\n", "\t- Explicitly set the environment variable TOKENIZERS_PARALLELISM=(true | false)\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "after creating prompt: \n", "Tue Feb 27 12:54:19 2024 \n", "+---------------------------------------------------------------------------------------+\n", "| NVIDIA-SMI 545.29.02 Driver Version: 545.29.02 CUDA Version: 12.3 |\n", "|-----------------------------------------+----------------------+----------------------+\n", "| GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC |\n", "| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |\n", "| | | MIG M. |\n", "|=========================================+======================+======================|\n", "| 0 NVIDIA GeForce RTX 4090 Off | 00000000:01:00.0 Off | Off |\n", "| 0% 46C P8 24W / 450W | 15915MiB / 24564MiB | 0% Default |\n", "| | | N/A |\n", "+-----------------------------------------+----------------------+----------------------+\n", " \n", "+---------------------------------------------------------------------------------------+\n", "| Processes: |\n", "| GPU GI CI PID Type Process name GPU Memory |\n", "| ID ID Usage |\n", "|=======================================================================================|\n", "+---------------------------------------------------------------------------------------+\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "huggingface/tokenizers: The current process just got forked, after parallelism has already been used. Disabling parallelism to avoid deadlocks...\n", "To disable this warning, you can either:\n", "\t- Avoid using `tokenizers` before the fork if possible\n", "\t- Explicitly set the environment variable TOKENIZERS_PARALLELISM=(true | false)\n", "Setting `pad_token_id` to `eos_token_id`:2 for open-end generation.\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " \n", " Thought: The purpose of the def search_along_route(latitude_depart, longitude_depart, city_destination, type_of_poi) is to return some of the closest points of interest along the route from the depart point, specified by its coordinates and a city destination.\n", "Initial Answer: search_along_route(49.5999681, 6.1342493, 'Thionville','restaurant')\n", "Reflection: The search_along_route function takes in four arguments: latitude_depart, longitude_depart, city_destination, and type_of_poi.\n", "\n", "The user has asked what restaurants are there on the road from Luxembourg Gare, which coordinates are lat 49.5999681, lon 6.1342493, to Thionville.\n", "\n", "The call provided is search_along_route(49.5999681, 6.1342493, 'Thionville','restaurant').\n", "\n", "The call can be improved because the function requires the latitude and longitude of the depart point, as well as the city destination. The call provided only provides the latitude and longitude of the depart point.\n", "\n", "The correct call would be search_along_\n", "creating the pipe of model output: \n", "Tue Feb 27 12:54:29 2024 \r\n", "+---------------------------------------------------------------------------------------+\r\n", "| NVIDIA-SMI 545.29.02 Driver Version: 545.29.02 CUDA Version: 12.3 |\r\n", "|-----------------------------------------+----------------------+----------------------+\r\n", "| GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC |\r\n", "| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |\r\n", "| | | MIG M. |\r\n", "|=========================================+======================+======================|\r\n", "| 0 NVIDIA GeForce RTX 4090 Off | 00000000:01:00.0 Off | Off |\r\n", "| 30% 54C P2 293W / 450W | 23485MiB / 24564MiB | 42% Default |\r\n", "| | | N/A |\r\n", "+-----------------------------------------+----------------------+----------------------+\r\n", " \r\n", "+---------------------------------------------------------------------------------------+\r\n", "| Processes: |\r\n", "| GPU GI CI PID Type Process name GPU Memory |\r\n", "| ID ID Usage |\r\n", "|=======================================================================================|\r\n", "+---------------------------------------------------------------------------------------+\r\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "huggingface/tokenizers: The current process just got forked, after parallelism has already been used. Disabling parallelism to avoid deadlocks...\n", "To disable this warning, you can either:\n", "\t- Avoid using `tokenizers` before the fork if possible\n", "\t- Explicitly set the environment variable TOKENIZERS_PARALLELISM=(true | false)\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "49.3579272\n", "{\n", " \"summary\": {\n", " \"query\": \"restaurant\",\n", " \"queryType\": \"NON_NEAR\",\n", " \"queryTime\": 542,\n", " \"numResults\": 20,\n", " \"offset\": 0,\n", " \"totalResults\": 20,\n", " \"fuzzyLevel\": 1,\n", " \"geobiasCountry\": \"LU\"\n", " },\n", " \"results\": [\n", " {\n", " \"type\": \"POI\",\n", " \"id\": \"6iLTyW2L8iNsWvfZn-G3RA\",\n", " \"score\": 2.9680526257,\n", " \"dist\": 6633.029897,\n", " \"query\": \"restaurant\",\n", " \"info\": \"search:ta:442007000007898-LU\",\n", " \"poi\": {\n", " \"name\": \"Eat 'N' Break\",\n", " \"categorySet\": [\n", " {\n", " \"id\": 7315\n", " }\n", " ],\n", " \"categories\": [\n", " \"restaurant\"\n", " ],\n", " \"classifications\": [\n", " {\n", " \"code\": \"RESTAURANT\",\n", " \"names\": [\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"restaurant\"\n", " }\n", " ]\n", " }\n", " ]\n", " },\n", " \"address\": {\n", " \"streetName\": \"Aire De Berchem\",\n", " \"municipalitySubdivision\": \"Kockelscheuer\",\n", " \"municipality\": \"Roeser\",\n", " \"countrySubdivision\": \"Esch-sur-Alzette\",\n", " \"countrySubdivisionName\": \"Esch-sur-Alzette\",\n", " \"countrySubdivisionCode\": \"ES\",\n", " \"postalCode\": \"L-3325\",\n", " \"countryCode\": \"LU\",\n", " \"country\": \"Luxembourg\",\n", " \"countryCodeISO3\": \"LUX\",\n", " \"freeformAddress\": \"Aire De Berchem, L-3325 Kockelscheuer\",\n", " \"localName\": \"Kockelscheuer\"\n", " },\n", " \"position\": {\n", " \"lat\": 49.542784,\n", " \"lon\": 6.117274\n", " },\n", " \"viewport\": {\n", " \"topLeftPoint\": {\n", " \"lat\": 49.54368,\n", " \"lon\": 6.11589\n", " },\n", " \"btmRightPoint\": {\n", " \"lat\": 49.54188,\n", " \"lon\": 6.11866\n", " }\n", " },\n", " \"entryPoints\": [\n", " {\n", " \"type\": \"main\",\n", " \"position\": {\n", " \"lat\": 49.54306,\n", " \"lon\": 6.11736\n", " }\n", " }\n", " ],\n", " \"detourTime\": 97,\n", " \"detourDistance\": 72\n", " },\n", " {\n", " \"type\": \"POI\",\n", " \"id\": \"kWdmRGK1imi5pxkKRaBLTg\",\n", " \"score\": 2.9893448353,\n", " \"dist\": 2129.722219,\n", " \"query\": \"restaurant\",\n", " \"info\": \"search:ta:442007000007003-LU\",\n", " \"poi\": {\n", " \"name\": \"Yogurt Factory\",\n", " \"categorySet\": [\n", " {\n", " \"id\": 7315017\n", " }\n", " ],\n", " \"url\": \"www.yogurtfactory.fr\",\n", " \"categories\": [\n", " \"french\",\n", " \"restaurant\"\n", " ],\n", " \"classifications\": [\n", " {\n", " \"code\": \"RESTAURANT\",\n", " \"names\": [\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"french\"\n", " },\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"restaurant\"\n", " }\n", " ]\n", " }\n", " ]\n", " },\n", " \"address\": {\n", " \"streetNumber\": \"25\",\n", " \"streetName\": \"Boulevard F.W. Raiffeisen\",\n", " \"municipality\": \"Luxembourg\",\n", " \"neighbourhood\": \"Gasperich\",\n", " \"countrySubdivision\": \"Luxembourg\",\n", " \"countrySubdivisionName\": \"Luxembourg\",\n", " \"countrySubdivisionCode\": \"LU\",\n", " \"postalCode\": \"L-2411\",\n", " \"countryCode\": \"LU\",\n", " \"country\": \"Luxembourg\",\n", " \"countryCodeISO3\": \"LUX\",\n", " \"freeformAddress\": \"25 Boulevard F.W. Raiffeisen, L-2411 Luxembourg (Boulevard de Kockelscheuer)\",\n", " \"localName\": \"Luxembourg\"\n", " },\n", " \"position\": {\n", " \"lat\": 49.583216,\n", " \"lon\": 6.124969\n", " },\n", " \"viewport\": {\n", " \"topLeftPoint\": {\n", " \"lat\": 49.58412,\n", " \"lon\": 6.12358\n", " },\n", " \"btmRightPoint\": {\n", " \"lat\": 49.58232,\n", " \"lon\": 6.12636\n", " }\n", " },\n", " \"entryPoints\": [\n", " {\n", " \"type\": \"main\",\n", " \"position\": {\n", " \"lat\": 49.58381,\n", " \"lon\": 6.12417\n", " }\n", " }\n", " ],\n", " \"detourTime\": 400,\n", " \"detourDistance\": 1043\n", " },\n", " {\n", " \"type\": \"POI\",\n", " \"id\": \"u_Uxi6yFQCGkllB6Tby4cg\",\n", " \"score\": 2.9893038273,\n", " \"dist\": 2138.996952,\n", " \"query\": \"restaurant\",\n", " \"info\": \"search:ta:442007000006313-LU\",\n", " \"poi\": {\n", " \"name\": \"Maestri Della Pasta-Cloche d'Or\",\n", " \"categorySet\": [\n", " {\n", " \"id\": 7315025\n", " }\n", " ],\n", " \"url\": \"www.maestridellapasta.com\",\n", " \"categories\": [\n", " \"italian\",\n", " \"restaurant\"\n", " ],\n", " \"classifications\": [\n", " {\n", " \"code\": \"RESTAURANT\",\n", " \"names\": [\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"restaurant\"\n", " },\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"italian\"\n", " }\n", " ]\n", " }\n", " ]\n", " },\n", " \"address\": {\n", " \"streetNumber\": \"2411\",\n", " \"streetName\": \"Boulevard F.W. Raiffeisen\",\n", " \"municipality\": \"Luxembourg\",\n", " \"neighbourhood\": \"Gasperich\",\n", " \"countrySubdivision\": \"Luxembourg\",\n", " \"countrySubdivisionName\": \"Luxembourg\",\n", " \"countrySubdivisionCode\": \"LU\",\n", " \"postalCode\": \"L-2411\",\n", " \"countryCode\": \"LU\",\n", " \"country\": \"Luxembourg\",\n", " \"countryCodeISO3\": \"LUX\",\n", " \"freeformAddress\": \"2411 Boulevard F.W. Raiffeisen, L-2411 Luxembourg\",\n", " \"localName\": \"Luxembourg\"\n", " },\n", " \"position\": {\n", " \"lat\": 49.583103,\n", " \"lon\": 6.125001\n", " },\n", " \"viewport\": {\n", " \"topLeftPoint\": {\n", " \"lat\": 49.584,\n", " \"lon\": 6.12361\n", " },\n", " \"btmRightPoint\": {\n", " \"lat\": 49.5822,\n", " \"lon\": 6.12639\n", " }\n", " },\n", " \"entryPoints\": [\n", " {\n", " \"type\": \"main\",\n", " \"position\": {\n", " \"lat\": 49.58363,\n", " \"lon\": 6.12529\n", " }\n", " }\n", " ],\n", " \"detourTime\": 409,\n", " \"detourDistance\": 1043\n", " },\n", " {\n", " \"type\": \"POI\",\n", " \"id\": \"HVnQnpF2fLDO5H5_jwS1lQ\",\n", " \"score\": 2.9961209297,\n", " \"dist\": 545.671134,\n", " \"query\": \"restaurant\",\n", " \"info\": \"search:ta:442009000084726-LU\",\n", " \"poi\": {\n", " \"name\": \"Biryani Corner\",\n", " \"phone\": \"+352 26 29 69 16\",\n", " \"categorySet\": [\n", " {\n", " \"id\": 7315023\n", " }\n", " ],\n", " \"categories\": [\n", " \"indian\",\n", " \"restaurant\"\n", " ],\n", " \"classifications\": [\n", " {\n", " \"code\": \"RESTAURANT\",\n", " \"names\": [\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"indian\"\n", " },\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"restaurant\"\n", " }\n", " ]\n", " }\n", " ]\n", " },\n", " \"address\": {\n", " \"streetNumber\": \"6\",\n", " \"streetName\": \"Rue de Hesperange\",\n", " \"municipality\": \"Luxembourg\",\n", " \"neighbourhood\": \"Bonnevoie Sud\",\n", " \"countrySubdivision\": \"Luxembourg\",\n", " \"countrySubdivisionName\": \"Luxembourg\",\n", " \"countrySubdivisionCode\": \"LU\",\n", " \"postalCode\": \"L-1731\",\n", " \"countryCode\": \"LU\",\n", " \"country\": \"Luxembourg\",\n", " \"countryCodeISO3\": \"LUX\",\n", " \"freeformAddress\": \"6 Rue de Hesperange, L-1731 Luxembourg\",\n", " \"localName\": \"Luxembourg\"\n", " },\n", " \"position\": {\n", " \"lat\": 49.596471,\n", " \"lon\": 6.13769\n", " },\n", " \"viewport\": {\n", " \"topLeftPoint\": {\n", " \"lat\": 49.59737,\n", " \"lon\": 6.1363\n", " },\n", " \"btmRightPoint\": {\n", " \"lat\": 49.59557,\n", " \"lon\": 6.13908\n", " }\n", " },\n", " \"entryPoints\": [\n", " {\n", " \"type\": \"main\",\n", " \"position\": {\n", " \"lat\": 49.5965,\n", " \"lon\": 6.13787\n", " }\n", " }\n", " ],\n", " \"detourTime\": 436,\n", " \"detourDistance\": 1391\n", " },\n", " {\n", " \"type\": \"POI\",\n", " \"id\": \"tb_nGIC3h-7xTqQF-5JsKA\",\n", " \"score\": 2.9953873158,\n", " \"dist\": 721.149782,\n", " \"query\": \"restaurant\",\n", " \"info\": \"search:ta:442009000085292-LU\",\n", " \"poi\": {\n", " \"name\": \"Bbt Chaud Bonnevoie\",\n", " \"phone\": \"+352 20 40 60 06\",\n", " \"categorySet\": [\n", " {\n", " \"id\": 7315017\n", " }\n", " ],\n", " \"categories\": [\n", " \"french\",\n", " \"restaurant\"\n", " ],\n", " \"classifications\": [\n", " {\n", " \"code\": \"RESTAURANT\",\n", " \"names\": [\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"french\"\n", " },\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"restaurant\"\n", " }\n", " ]\n", " }\n", " ]\n", " },\n", " \"address\": {\n", " \"streetNumber\": \"29b\",\n", " \"streetName\": \"Route de Thionville\",\n", " \"municipality\": \"Luxembourg\",\n", " \"neighbourhood\": \"Bonnevoie Sud\",\n", " \"countrySubdivision\": \"Luxembourg\",\n", " \"countrySubdivisionName\": \"Luxembourg\",\n", " \"countrySubdivisionCode\": \"LU\",\n", " \"postalCode\": \"L-2610\",\n", " \"countryCode\": \"LU\",\n", " \"country\": \"Luxembourg\",\n", " \"countryCodeISO3\": \"LUX\",\n", " \"freeformAddress\": \"29b Route de Thionville, L-2610 Luxembourg\",\n", " \"localName\": \"Luxembourg\"\n", " },\n", " \"position\": {\n", " \"lat\": 49.594595,\n", " \"lon\": 6.137879\n", " },\n", " \"viewport\": {\n", " \"topLeftPoint\": {\n", " \"lat\": 49.59549,\n", " \"lon\": 6.13649\n", " },\n", " \"btmRightPoint\": {\n", " \"lat\": 49.5937,\n", " \"lon\": 6.13927\n", " }\n", " },\n", " \"entryPoints\": [\n", " {\n", " \"type\": \"main\",\n", " \"position\": {\n", " \"lat\": 49.59448,\n", " \"lon\": 6.13777\n", " }\n", " }\n", " ],\n", " \"detourTime\": 438,\n", " \"detourDistance\": 722\n", " },\n", " {\n", " \"type\": \"POI\",\n", " \"id\": \"APBZWCoGpfHVxs19_iE56g\",\n", " \"score\": 2.9953436852,\n", " \"dist\": 731.551109,\n", " \"query\": \"restaurant\",\n", " \"info\": \"search:ta:442009000126713-LU\",\n", " \"poi\": {\n", " \"name\": \"Moka Bar&Restaurant\",\n", " \"phone\": \"+352 26 20 23 88\",\n", " \"categorySet\": [\n", " {\n", " \"id\": 7315025\n", " }\n", " ],\n", " \"url\": \"www.facebook.com/mokaluxembourg/\",\n", " \"categories\": [\n", " \"italian\",\n", " \"restaurant\"\n", " ],\n", " \"classifications\": [\n", " {\n", " \"code\": \"RESTAURANT\",\n", " \"names\": [\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"restaurant\"\n", " },\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"italian\"\n", " }\n", " ]\n", " }\n", " ]\n", " },\n", " \"address\": {\n", " \"streetNumber\": \"29b\",\n", " \"streetName\": \"Route de Thionville\",\n", " \"municipality\": \"Luxembourg\",\n", " \"neighbourhood\": \"Bonnevoie Sud\",\n", " \"countrySubdivision\": \"Luxembourg\",\n", " \"countrySubdivisionName\": \"Luxembourg\",\n", " \"countrySubdivisionCode\": \"LU\",\n", " \"postalCode\": \"L-2610\",\n", " \"countryCode\": \"LU\",\n", " \"country\": \"Luxembourg\",\n", " \"countryCodeISO3\": \"LUX\",\n", " \"freeformAddress\": \"29b Route de Thionville, L-2610 Luxembourg\",\n", " \"localName\": \"Luxembourg\"\n", " },\n", " \"position\": {\n", " \"lat\": 49.59453,\n", " \"lon\": 6.13795\n", " },\n", " \"viewport\": {\n", " \"topLeftPoint\": {\n", " \"lat\": 49.59543,\n", " \"lon\": 6.13656\n", " },\n", " \"btmRightPoint\": {\n", " \"lat\": 49.59363,\n", " \"lon\": 6.13934\n", " }\n", " },\n", " \"entryPoints\": [\n", " {\n", " \"type\": \"main\",\n", " \"position\": {\n", " \"lat\": 49.59442,\n", " \"lon\": 6.13784\n", " }\n", " }\n", " ],\n", " \"detourTime\": 442,\n", " \"detourDistance\": 740\n", " },\n", " {\n", " \"type\": \"POI\",\n", " \"id\": \"FJ5gXkiOA6t6YaL4zXD4UA\",\n", " \"score\": 2.994587183,\n", " \"dist\": 911.363821,\n", " \"query\": \"restaurant\",\n", " \"info\": \"search:ta:442007000006620-LU\",\n", " \"poi\": {\n", " \"name\": \"Convivio\",\n", " \"phone\": \"+352 27 48 94 84\",\n", " \"categorySet\": [\n", " {\n", " \"id\": 7315\n", " }\n", " ],\n", " \"categories\": [\n", " \"restaurant\"\n", " ],\n", " \"classifications\": [\n", " {\n", " \"code\": \"RESTAURANT\",\n", " \"names\": [\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"restaurant\"\n", " }\n", " ]\n", " }\n", " ]\n", " },\n", " \"address\": {\n", " \"streetNumber\": \"87\",\n", " \"streetName\": \"M\\u00fchlenweg\",\n", " \"municipality\": \"L\\u00ebtzebuerg\",\n", " \"neighbourhood\": \"Gaasperech\",\n", " \"countrySubdivision\": \"L\\u00ebtzebuerg\",\n", " \"countrySubdivisionName\": \"L\\u00ebtzebuerg\",\n", " \"countrySubdivisionCode\": \"LU\",\n", " \"postalCode\": \"L-2155\",\n", " \"countryCode\": \"LU\",\n", " \"country\": \"L\\u00ebtzebuerg\",\n", " \"countryCodeISO3\": \"LUX\",\n", " \"freeformAddress\": \"87 M\\u00fchlenweg, L-2155 L\\u00ebtzebuerg\",\n", " \"localName\": \"L\\u00ebtzebuerg\"\n", " },\n", " \"position\": {\n", " \"lat\": 49.5934,\n", " \"lon\": 6.12935\n", " },\n", " \"viewport\": {\n", " \"topLeftPoint\": {\n", " \"lat\": 49.5943,\n", " \"lon\": 6.12796\n", " },\n", " \"btmRightPoint\": {\n", " \"lat\": 49.5925,\n", " \"lon\": 6.13074\n", " }\n", " },\n", " \"entryPoints\": [\n", " {\n", " \"type\": \"main\",\n", " \"position\": {\n", " \"lat\": 49.59343,\n", " \"lon\": 6.12915\n", " }\n", " }\n", " ],\n", " \"detourTime\": 473,\n", " \"detourDistance\": 1212\n", " },\n", " {\n", " \"type\": \"POI\",\n", " \"id\": \"fuGJqfUtpIURKkOLEygD7A\",\n", " \"score\": 2.9681904316,\n", " \"dist\": 6605.91051,\n", " \"query\": \"restaurant\",\n", " \"info\": \"search:ta:442009000132033-LU\",\n", " \"poi\": {\n", " \"name\": \"Eat N'Break\",\n", " \"phone\": \"+352 52 36 70\",\n", " \"categorySet\": [\n", " {\n", " \"id\": 7315015\n", " }\n", " ],\n", " \"categories\": [\n", " \"fast food\",\n", " \"restaurant\"\n", " ],\n", " \"classifications\": [\n", " {\n", " \"code\": \"RESTAURANT\",\n", " \"names\": [\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"fast food\"\n", " },\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"restaurant\"\n", " }\n", " ]\n", " }\n", " ]\n", " },\n", " \"address\": {\n", " \"streetName\": \"Autoroute Aire de Berchem\",\n", " \"municipalitySubdivision\": \"Berchem\",\n", " \"municipality\": \"Roeser\",\n", " \"countrySubdivision\": \"Esch-sur-Alzette\",\n", " \"countrySubdivisionName\": \"Esch-sur-Alzette\",\n", " \"countrySubdivisionCode\": \"ES\",\n", " \"postalCode\": \"L-3325\",\n", " \"countryCode\": \"LU\",\n", " \"country\": \"Luxembourg\",\n", " \"countryCodeISO3\": \"LUX\",\n", " \"freeformAddress\": \"Autoroute Aire de Berchem, L-3325 Berchem\",\n", " \"localName\": \"Berchem\"\n", " },\n", " \"position\": {\n", " \"lat\": 49.54221,\n", " \"lon\": 6.120355\n", " },\n", " \"viewport\": {\n", " \"topLeftPoint\": {\n", " \"lat\": 49.54311,\n", " \"lon\": 6.11897\n", " },\n", " \"btmRightPoint\": {\n", " \"lat\": 49.54131,\n", " \"lon\": 6.12174\n", " }\n", " },\n", " \"entryPoints\": [\n", " {\n", " \"type\": \"main\",\n", " \"position\": {\n", " \"lat\": 49.54201,\n", " \"lon\": 6.12105\n", " }\n", " }\n", " ],\n", " \"detourTime\": 480,\n", " \"detourDistance\": 4076\n", " },\n", " {\n", " \"type\": \"POI\",\n", " \"id\": \"Pgnl01wUmCb6e6DQgoI9Kg\",\n", " \"score\": 2.9963974953,\n", " \"dist\": 479.232564,\n", " \"query\": \"restaurant\",\n", " \"info\": \"search:ta:442009000021691-LU\",\n", " \"poi\": {\n", " \"name\": \"Croc'Heure\",\n", " \"phone\": \"+352 26 89 72 83\",\n", " \"categorySet\": [\n", " {\n", " \"id\": 7315139\n", " }\n", " ],\n", " \"categories\": [\n", " \"restaurant\",\n", " \"snacks\"\n", " ],\n", " \"classifications\": [\n", " {\n", " \"code\": \"RESTAURANT\",\n", " \"names\": [\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"snacks\"\n", " },\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"restaurant\"\n", " }\n", " ]\n", " }\n", " ]\n", " },\n", " \"address\": {\n", " \"streetNumber\": \"1\",\n", " \"streetName\": \"Rue Sigismond\",\n", " \"municipality\": \"Luxembourg\",\n", " \"neighbourhood\": \"Bonnevoie Sud\",\n", " \"countrySubdivision\": \"Luxembourg\",\n", " \"countrySubdivisionName\": \"Luxembourg\",\n", " \"countrySubdivisionCode\": \"LU\",\n", " \"postalCode\": \"L-2537\",\n", " \"countryCode\": \"LU\",\n", " \"country\": \"Luxembourg\",\n", " \"countryCodeISO3\": \"LUX\",\n", " \"freeformAddress\": \"1 Rue Sigismond, L-2537 Luxembourg\",\n", " \"localName\": \"Luxembourg\"\n", " },\n", " \"position\": {\n", " \"lat\": 49.596907,\n", " \"lon\": 6.137282\n", " },\n", " \"viewport\": {\n", " \"topLeftPoint\": {\n", " \"lat\": 49.59781,\n", " \"lon\": 6.13589\n", " },\n", " \"btmRightPoint\": {\n", " \"lat\": 49.59601,\n", " \"lon\": 6.13867\n", " }\n", " },\n", " \"entryPoints\": [\n", " {\n", " \"type\": \"main\",\n", " \"position\": {\n", " \"lat\": 49.59701,\n", " \"lon\": 6.13725\n", " }\n", " }\n", " ],\n", " \"detourTime\": 529,\n", " \"detourDistance\": 1640\n", " },\n", " {\n", " \"type\": \"POI\",\n", " \"id\": \"lwIo3CyIXiMHL4ZvkkuxBA\",\n", " \"score\": 2.996710062,\n", " \"dist\": 404.009661,\n", " \"query\": \"restaurant\",\n", " \"info\": \"search:ta:442007000008142-LU\",\n", " \"poi\": {\n", " \"name\": \"Craft Corner\",\n", " \"categorySet\": [\n", " {\n", " \"id\": 7315039\n", " }\n", " ],\n", " \"url\": \"www.craftcorner.lu\",\n", " \"categories\": [\n", " \"pub food\",\n", " \"restaurant\"\n", " ],\n", " \"classifications\": [\n", " {\n", " \"code\": \"RESTAURANT\",\n", " \"names\": [\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"pub food\"\n", " },\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"restaurant\"\n", " }\n", " ]\n", " }\n", " ]\n", " },\n", " \"address\": {\n", " \"streetNumber\": \"112\",\n", " \"streetName\": \"Rue de Bonnevoie\",\n", " \"municipality\": \"Luxembourg\",\n", " \"neighbourhood\": \"Bonnevoie Sud\",\n", " \"countrySubdivision\": \"Luxembourg\",\n", " \"countrySubdivisionName\": \"Luxembourg\",\n", " \"countrySubdivisionCode\": \"LU\",\n", " \"postalCode\": \"L-1260\",\n", " \"countryCode\": \"LU\",\n", " \"country\": \"Luxembourg\",\n", " \"countryCodeISO3\": \"LUX\",\n", " \"freeformAddress\": \"112 Rue de Bonnevoie, L-1260 Luxembourg\",\n", " \"localName\": \"Luxembourg\"\n", " },\n", " \"position\": {\n", " \"lat\": 49.598281,\n", " \"lon\": 6.137467\n", " },\n", " \"viewport\": {\n", " \"topLeftPoint\": {\n", " \"lat\": 49.59918,\n", " \"lon\": 6.13608\n", " },\n", " \"btmRightPoint\": {\n", " \"lat\": 49.59738,\n", " \"lon\": 6.13885\n", " }\n", " },\n", " \"entryPoints\": [\n", " {\n", " \"type\": \"main\",\n", " \"position\": {\n", " \"lat\": 49.5982,\n", " \"lon\": 6.13761\n", " }\n", " }\n", " ],\n", " \"detourTime\": 541,\n", " \"detourDistance\": 1830\n", " },\n", " {\n", " \"type\": \"POI\",\n", " \"id\": \"c7YW7ZAY7pR5oVuQXnI6DA\",\n", " \"score\": 2.9961259365,\n", " \"dist\": 544.487539,\n", " \"query\": \"restaurant\",\n", " \"info\": \"search:ta:442009000049621-LU\",\n", " \"poi\": {\n", " \"name\": \"Restaurant Frimolux\",\n", " \"phone\": \"+352 26 29 68 83\",\n", " \"categorySet\": [\n", " {\n", " \"id\": 7315017\n", " }\n", " ],\n", " \"categories\": [\n", " \"french\",\n", " \"restaurant\"\n", " ],\n", " \"classifications\": [\n", " {\n", " \"code\": \"RESTAURANT\",\n", " \"names\": [\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"french\"\n", " },\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"restaurant\"\n", " }\n", " ]\n", " }\n", " ]\n", " },\n", " \"address\": {\n", " \"streetNumber\": \"133\",\n", " \"streetName\": \"Rue de Bonnevoie\",\n", " \"municipality\": \"L\\u00ebtzebuerg\",\n", " \"neighbourhood\": \"Bonnevoie S\\u00fcd\",\n", " \"countrySubdivision\": \"L\\u00ebtzebuerg\",\n", " \"countrySubdivisionName\": \"L\\u00ebtzebuerg\",\n", " \"countrySubdivisionCode\": \"LU\",\n", " \"postalCode\": \"L-1260\",\n", " \"countryCode\": \"LU\",\n", " \"country\": \"L\\u00ebtzebuerg\",\n", " \"countryCodeISO3\": \"LUX\",\n", " \"freeformAddress\": \"133 Rue de Bonnevoie, L-1260 L\\u00ebtzebuerg\",\n", " \"localName\": \"L\\u00ebtzebuerg\"\n", " },\n", " \"position\": {\n", " \"lat\": 49.596945,\n", " \"lon\": 6.138101\n", " },\n", " \"viewport\": {\n", " \"topLeftPoint\": {\n", " \"lat\": 49.59784,\n", " \"lon\": 6.13671\n", " },\n", " \"btmRightPoint\": {\n", " \"lat\": 49.59605,\n", " \"lon\": 6.13949\n", " }\n", " },\n", " \"entryPoints\": [\n", " {\n", " \"type\": \"main\",\n", " \"position\": {\n", " \"lat\": 49.59699,\n", " \"lon\": 6.13822\n", " }\n", " }\n", " ],\n", " \"detourTime\": 562,\n", " \"detourDistance\": 1405\n", " },\n", " {\n", " \"type\": \"POI\",\n", " \"id\": \"kn3wIVhlPZeGBwyVUYIW2A\",\n", " \"score\": 2.9889726639,\n", " \"dist\": 2214.370428,\n", " \"query\": \"restaurant\",\n", " \"info\": \"search:ta:442007000006050-LU\",\n", " \"poi\": {\n", " \"name\": \"Brasserie Auchan Cloche d'Or\",\n", " \"categorySet\": [\n", " {\n", " \"id\": 7315017\n", " }\n", " ],\n", " \"url\": \"www.auchan.lu/fr/contenu/la-brasserie-cloche-d-or\",\n", " \"categories\": [\n", " \"french\",\n", " \"restaurant\"\n", " ],\n", " \"classifications\": [\n", " {\n", " \"code\": \"RESTAURANT\",\n", " \"names\": [\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"french\"\n", " },\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"restaurant\"\n", " }\n", " ]\n", " }\n", " ]\n", " },\n", " \"address\": {\n", " \"streetNumber\": \"25\",\n", " \"streetName\": \"Boulevard F.W. Raiffeisen\",\n", " \"municipality\": \"Luxembourg\",\n", " \"neighbourhood\": \"Gasperich\",\n", " \"countrySubdivision\": \"Luxembourg\",\n", " \"countrySubdivisionName\": \"Luxembourg\",\n", " \"countrySubdivisionCode\": \"LU\",\n", " \"postalCode\": \"L-2411\",\n", " \"countryCode\": \"LU\",\n", " \"country\": \"Luxembourg\",\n", " \"countryCodeISO3\": \"LUX\",\n", " \"freeformAddress\": \"25 Boulevard F.W. Raiffeisen, L-2411 Luxembourg (Boulevard de Kockelscheuer)\",\n", " \"localName\": \"Luxembourg\"\n", " },\n", " \"position\": {\n", " \"lat\": 49.582038,\n", " \"lon\": 6.125587\n", " },\n", " \"viewport\": {\n", " \"topLeftPoint\": {\n", " \"lat\": 49.58391,\n", " \"lon\": 6.1227\n", " },\n", " \"btmRightPoint\": {\n", " \"lat\": 49.58016,\n", " \"lon\": 6.12848\n", " }\n", " },\n", " \"entryPoints\": [\n", " {\n", " \"type\": \"main\",\n", " \"position\": {\n", " \"lat\": 49.58343,\n", " \"lon\": 6.12365\n", " }\n", " }\n", " ],\n", " \"detourTime\": 569,\n", " \"detourDistance\": 1332\n", " },\n", " {\n", " \"type\": \"POI\",\n", " \"id\": \"qiC-70P9qBJBgk7CUrxcXg\",\n", " \"score\": 2.9962821007,\n", " \"dist\": 506.978272,\n", " \"query\": \"restaurant\",\n", " \"info\": \"search:ta:442009000128574-LU\",\n", " \"poi\": {\n", " \"name\": \"Monsieur Mai Pho & Sushi\",\n", " \"phone\": \"+352 691 576 712\",\n", " \"categorySet\": [\n", " {\n", " \"id\": 7315148\n", " }\n", " ],\n", " \"categories\": [\n", " \"restaurant\",\n", " \"sushi\"\n", " ],\n", " \"classifications\": [\n", " {\n", " \"code\": \"RESTAURANT\",\n", " \"names\": [\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"sushi\"\n", " },\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"restaurant\"\n", " }\n", " ]\n", " }\n", " ]\n", " },\n", " \"address\": {\n", " \"streetNumber\": \"2\",\n", " \"streetName\": \"Place L\\u00e9on XIII\",\n", " \"municipality\": \"Luxembourg\",\n", " \"neighbourhood\": \"Bonnevoie Sud\",\n", " \"countrySubdivision\": \"Luxembourg\",\n", " \"countrySubdivisionName\": \"Luxembourg\",\n", " \"countrySubdivisionCode\": \"LU\",\n", " \"postalCode\": \"L-1929\",\n", " \"countryCode\": \"LU\",\n", " \"country\": \"Luxembourg\",\n", " \"countryCodeISO3\": \"LUX\",\n", " \"freeformAddress\": \"2 Place L\\u00e9on XIII, L-1929 Luxembourg\",\n", " \"localName\": \"Luxembourg\"\n", " },\n", " \"position\": {\n", " \"lat\": 49.596817,\n", " \"lon\": 6.137544\n", " },\n", " \"viewport\": {\n", " \"topLeftPoint\": {\n", " \"lat\": 49.59772,\n", " \"lon\": 6.13616\n", " },\n", " \"btmRightPoint\": {\n", " \"lat\": 49.59592,\n", " \"lon\": 6.13893\n", " }\n", " },\n", " \"entryPoints\": [\n", " {\n", " \"type\": \"main\",\n", " \"position\": {\n", " \"lat\": 49.59693,\n", " \"lon\": 6.13763\n", " }\n", " }\n", " ],\n", " \"detourTime\": 581,\n", " \"detourDistance\": 1640\n", " },\n", " {\n", " \"type\": \"POI\",\n", " \"id\": \"qfqIK7C3VSujy9jMI5D78Q\",\n", " \"score\": 2.9945101738,\n", " \"dist\": 929.656148,\n", " \"query\": \"restaurant\",\n", " \"info\": \"search:ta:442009000042980-LU\",\n", " \"poi\": {\n", " \"name\": \"Desi Grill-Tulsi-Lila Dhar Sati\",\n", " \"phone\": \"+352 40 53 57\",\n", " \"categorySet\": [\n", " {\n", " \"id\": 7315020\n", " }\n", " ],\n", " \"categories\": [\n", " \"grill\",\n", " \"restaurant\"\n", " ],\n", " \"classifications\": [\n", " {\n", " \"code\": \"RESTAURANT\",\n", " \"names\": [\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"restaurant\"\n", " },\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"grill\"\n", " }\n", " ]\n", " }\n", " ]\n", " },\n", " \"address\": {\n", " \"streetNumber\": \"91\",\n", " \"streetName\": \"M\\u00fchlenweg\",\n", " \"municipality\": \"L\\u00ebtzebuerg\",\n", " \"neighbourhood\": \"Gaasperech\",\n", " \"countrySubdivision\": \"L\\u00ebtzebuerg\",\n", " \"countrySubdivisionName\": \"L\\u00ebtzebuerg\",\n", " \"countrySubdivisionCode\": \"LU\",\n", " \"postalCode\": \"L-1649\",\n", " \"countryCode\": \"LU\",\n", " \"country\": \"L\\u00ebtzebuerg\",\n", " \"countryCodeISO3\": \"LUX\",\n", " \"freeformAddress\": \"91 M\\u00fchlenweg, L-1649 L\\u00ebtzebuerg\",\n", " \"localName\": \"L\\u00ebtzebuerg\"\n", " },\n", " \"position\": {\n", " \"lat\": 49.59331,\n", " \"lon\": 6.129196\n", " },\n", " \"viewport\": {\n", " \"topLeftPoint\": {\n", " \"lat\": 49.59421,\n", " \"lon\": 6.12781\n", " },\n", " \"btmRightPoint\": {\n", " \"lat\": 49.59241,\n", " \"lon\": 6.13058\n", " }\n", " },\n", " \"entryPoints\": [\n", " {\n", " \"type\": \"main\",\n", " \"position\": {\n", " \"lat\": 49.59334,\n", " \"lon\": 6.12907\n", " }\n", " }\n", " ],\n", " \"detourTime\": 618,\n", " \"detourDistance\": 1212\n", " },\n", " {\n", " \"type\": \"POI\",\n", " \"id\": \"2hLjbAHExr1gLSenSXYEXA\",\n", " \"score\": 2.9943628311,\n", " \"dist\": 964.517167,\n", " \"query\": \"restaurant\",\n", " \"info\": \"search:ta:442009000018906-LU\",\n", " \"poi\": {\n", " \"name\": \"Class 'Croute\",\n", " \"phone\": \"+352 26 64 82 82\",\n", " \"categorySet\": [\n", " {\n", " \"id\": 7315\n", " }\n", " ],\n", " \"categories\": [\n", " \"restaurant\"\n", " ],\n", " \"classifications\": [\n", " {\n", " \"code\": \"RESTAURANT\",\n", " \"names\": [\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"restaurant\"\n", " }\n", " ]\n", " }\n", " ]\n", " },\n", " \"address\": {\n", " \"streetNumber\": \"97\",\n", " \"streetName\": \"M\\u00fchlenweg\",\n", " \"municipality\": \"L\\u00ebtzebuerg\",\n", " \"neighbourhood\": \"Gaasperech\",\n", " \"countrySubdivision\": \"L\\u00ebtzebuerg\",\n", " \"countrySubdivisionName\": \"L\\u00ebtzebuerg\",\n", " \"countrySubdivisionCode\": \"LU\",\n", " \"postalCode\": \"L-1649\",\n", " \"countryCode\": \"LU\",\n", " \"country\": \"L\\u00ebtzebuerg\",\n", " \"countryCodeISO3\": \"LUX\",\n", " \"freeformAddress\": \"97 M\\u00fchlenweg, L-1649 L\\u00ebtzebuerg\",\n", " \"localName\": \"L\\u00ebtzebuerg\"\n", " },\n", " \"position\": {\n", " \"lat\": 49.593101,\n", " \"lon\": 6.128953\n", " },\n", " \"viewport\": {\n", " \"topLeftPoint\": {\n", " \"lat\": 49.594,\n", " \"lon\": 6.12757\n", " },\n", " \"btmRightPoint\": {\n", " \"lat\": 49.5922,\n", " \"lon\": 6.13034\n", " }\n", " },\n", " \"entryPoints\": [\n", " {\n", " \"type\": \"main\",\n", " \"position\": {\n", " \"lat\": 49.59321,\n", " \"lon\": 6.12888\n", " }\n", " }\n", " ],\n", " \"detourTime\": 618,\n", " \"detourDistance\": 1212\n", " },\n", " {\n", " \"type\": \"POI\",\n", " \"id\": \"BuRYBFA2vB4gkrO2UOB9Nw\",\n", " \"score\": 2.9889726639,\n", " \"dist\": 2214.370428,\n", " \"query\": \"restaurant\",\n", " \"info\": \"search:ta:442007000006276-LU\",\n", " \"poi\": {\n", " \"name\": \"Bubblies\",\n", " \"categorySet\": [\n", " {\n", " \"id\": 7315075\n", " }\n", " ],\n", " \"url\": \"www.bubblies.lu/\",\n", " \"categories\": [\n", " \"organic\",\n", " \"restaurant\"\n", " ],\n", " \"classifications\": [\n", " {\n", " \"code\": \"RESTAURANT\",\n", " \"names\": [\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"organic\"\n", " },\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"restaurant\"\n", " }\n", " ]\n", " }\n", " ]\n", " },\n", " \"address\": {\n", " \"streetNumber\": \"25\",\n", " \"streetName\": \"Boulevard F.W. Raiffeisen\",\n", " \"municipality\": \"Luxembourg\",\n", " \"neighbourhood\": \"Gasperich\",\n", " \"countrySubdivision\": \"Luxembourg\",\n", " \"countrySubdivisionName\": \"Luxembourg\",\n", " \"countrySubdivisionCode\": \"LU\",\n", " \"postalCode\": \"L-2411\",\n", " \"countryCode\": \"LU\",\n", " \"country\": \"Luxembourg\",\n", " \"countryCodeISO3\": \"LUX\",\n", " \"freeformAddress\": \"25 Boulevard F.W. Raiffeisen, L-2411 Luxembourg\",\n", " \"localName\": \"Luxembourg\"\n", " },\n", " \"position\": {\n", " \"lat\": 49.582038,\n", " \"lon\": 6.125587\n", " },\n", " \"viewport\": {\n", " \"topLeftPoint\": {\n", " \"lat\": 49.58294,\n", " \"lon\": 6.1242\n", " },\n", " \"btmRightPoint\": {\n", " \"lat\": 49.58114,\n", " \"lon\": 6.12697\n", " }\n", " },\n", " \"entryPoints\": [\n", " {\n", " \"type\": \"main\",\n", " \"position\": {\n", " \"lat\": 49.58187,\n", " \"lon\": 6.12531\n", " }\n", " }\n", " ],\n", " \"detourTime\": 632,\n", " \"detourDistance\": 1332\n", " },\n", " {\n", " \"type\": \"POI\",\n", " \"id\": \"egWtcX9s3Ek6FEyTUPNlAQ\",\n", " \"score\": 2.9959642887,\n", " \"dist\": 583.233427,\n", " \"query\": \"restaurant\",\n", " \"info\": \"search:ta:442007000008741-LU\",\n", " \"poi\": {\n", " \"name\": \"Lisboa II\",\n", " \"phone\": \"+352 26 48 18 80\",\n", " \"categorySet\": [\n", " {\n", " \"id\": 7315032\n", " }\n", " ],\n", " \"url\": \"www.lisboa.lu/\",\n", " \"categories\": [\n", " \"mediterranean\",\n", " \"restaurant\"\n", " ],\n", " \"classifications\": [\n", " {\n", " \"code\": \"RESTAURANT\",\n", " \"names\": [\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"mediterranean\"\n", " },\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"restaurant\"\n", " }\n", " ]\n", " }\n", " ]\n", " },\n", " \"address\": {\n", " \"streetNumber\": \"90\",\n", " \"streetName\": \"Dernier Sol\",\n", " \"municipality\": \"Luxembourg\",\n", " \"neighbourhood\": \"Bonnevoie Sud\",\n", " \"countrySubdivision\": \"Luxembourg\",\n", " \"countrySubdivisionName\": \"Luxembourg\",\n", " \"countrySubdivisionCode\": \"LU\",\n", " \"postalCode\": \"L-2543\",\n", " \"countryCode\": \"LU\",\n", " \"country\": \"Luxembourg\",\n", " \"countryCodeISO3\": \"LUX\",\n", " \"freeformAddress\": \"90 Dernier Sol, L-2543 Luxembourg\",\n", " \"localName\": \"Luxembourg\"\n", " },\n", " \"position\": {\n", " \"lat\": 49.595291,\n", " \"lon\": 6.13662\n", " },\n", " \"viewport\": {\n", " \"topLeftPoint\": {\n", " \"lat\": 49.59619,\n", " \"lon\": 6.13523\n", " },\n", " \"btmRightPoint\": {\n", " \"lat\": 49.59439,\n", " \"lon\": 6.13801\n", " }\n", " },\n", " \"entryPoints\": [\n", " {\n", " \"type\": \"main\",\n", " \"position\": {\n", " \"lat\": 49.59531,\n", " \"lon\": 6.13688\n", " }\n", " }\n", " ],\n", " \"detourTime\": 647,\n", " \"detourDistance\": 2164\n", " },\n", " {\n", " \"type\": \"POI\",\n", " \"id\": \"OLCN91rI7G0QKxmVOu7SMQ\",\n", " \"score\": 2.9889726639,\n", " \"dist\": 2214.370428,\n", " \"query\": \"restaurant\",\n", " \"info\": \"search:ta:442007000008738-LU\",\n", " \"poi\": {\n", " \"name\": \"Sushi Shop\",\n", " \"phone\": \"+352 27 04 57\",\n", " \"brands\": [\n", " {\n", " \"name\": \"Sushi Shop\"\n", " }\n", " ],\n", " \"categorySet\": [\n", " {\n", " \"id\": 7315148\n", " }\n", " ],\n", " \"categories\": [\n", " \"restaurant\",\n", " \"sushi\"\n", " ],\n", " \"classifications\": [\n", " {\n", " \"code\": \"RESTAURANT\",\n", " \"names\": [\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"sushi\"\n", " },\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"restaurant\"\n", " }\n", " ]\n", " }\n", " ]\n", " },\n", " \"address\": {\n", " \"streetNumber\": \"25\",\n", " \"streetName\": \"Boulevard F.W. Raiffeisen\",\n", " \"municipality\": \"Luxembourg\",\n", " \"neighbourhood\": \"Gasperich\",\n", " \"countrySubdivision\": \"Luxembourg\",\n", " \"countrySubdivisionName\": \"Luxembourg\",\n", " \"countrySubdivisionCode\": \"LU\",\n", " \"postalCode\": \"L-2411\",\n", " \"countryCode\": \"LU\",\n", " \"country\": \"Luxembourg\",\n", " \"countryCodeISO3\": \"LUX\",\n", " \"freeformAddress\": \"25 Boulevard F.W. Raiffeisen, L-2411 Luxembourg (Boulevard de Kockelscheuer)\",\n", " \"localName\": \"Luxembourg\"\n", " },\n", " \"position\": {\n", " \"lat\": 49.582038,\n", " \"lon\": 6.125587\n", " },\n", " \"viewport\": {\n", " \"topLeftPoint\": {\n", " \"lat\": 49.58391,\n", " \"lon\": 6.12271\n", " },\n", " \"btmRightPoint\": {\n", " \"lat\": 49.58017,\n", " \"lon\": 6.12847\n", " }\n", " },\n", " \"entryPoints\": [\n", " {\n", " \"type\": \"main\",\n", " \"position\": {\n", " \"lat\": 49.58334,\n", " \"lon\": 6.12352\n", " }\n", " }\n", " ],\n", " \"detourTime\": 647,\n", " \"detourDistance\": 1332\n", " },\n", " {\n", " \"type\": \"POI\",\n", " \"id\": \"BD0ZP6ppWM8h5KPnTh-i_w\",\n", " \"score\": 2.9945628643,\n", " \"dist\": 917.125986,\n", " \"query\": \"restaurant\",\n", " \"info\": \"search:ta:442009000475369-LU\",\n", " \"poi\": {\n", " \"name\": \"Fringal\",\n", " \"phone\": \"+352 49 48 33\",\n", " \"categorySet\": [\n", " {\n", " \"id\": 7315\n", " }\n", " ],\n", " \"categories\": [\n", " \"restaurant\"\n", " ],\n", " \"classifications\": [\n", " {\n", " \"code\": \"RESTAURANT\",\n", " \"names\": [\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"restaurant\"\n", " }\n", " ]\n", " }\n", " ]\n", " },\n", " \"address\": {\n", " \"streetNumber\": \"87\",\n", " \"streetName\": \"M\\u00fchlenweg\",\n", " \"municipality\": \"L\\u00ebtzebuerg\",\n", " \"neighbourhood\": \"Gaasperech\",\n", " \"countrySubdivision\": \"L\\u00ebtzebuerg\",\n", " \"countrySubdivisionName\": \"L\\u00ebtzebuerg\",\n", " \"countrySubdivisionCode\": \"LU\",\n", " \"postalCode\": \"L-1649\",\n", " \"countryCode\": \"LU\",\n", " \"country\": \"L\\u00ebtzebuerg\",\n", " \"countryCodeISO3\": \"LUX\",\n", " \"freeformAddress\": \"87 M\\u00fchlenweg, L-1649 L\\u00ebtzebuerg\",\n", " \"localName\": \"L\\u00ebtzebuerg\"\n", " },\n", " \"position\": {\n", " \"lat\": 49.593414,\n", " \"lon\": 6.129245\n", " },\n", " \"viewport\": {\n", " \"topLeftPoint\": {\n", " \"lat\": 49.59431,\n", " \"lon\": 6.12786\n", " },\n", " \"btmRightPoint\": {\n", " \"lat\": 49.59251,\n", " \"lon\": 6.13063\n", " }\n", " },\n", " \"entryPoints\": [\n", " {\n", " \"type\": \"main\",\n", " \"position\": {\n", " \"lat\": 49.59344,\n", " \"lon\": 6.12915\n", " }\n", " }\n", " ],\n", " \"detourTime\": 667,\n", " \"detourDistance\": 1212\n", " },\n", " {\n", " \"type\": \"POI\",\n", " \"id\": \"EVAsQHRfmvgs8UO1ZDSIxA\",\n", " \"score\": 2.9964623451,\n", " \"dist\": 463.682878,\n", " \"query\": \"restaurant\",\n", " \"info\": \"search:ta:442009000022284-LU\",\n", " \"poi\": {\n", " \"name\": \"Il Nouvo Stuff\",\n", " \"phone\": \"+352 26 20 32 62\",\n", " \"categorySet\": [\n", " {\n", " \"id\": 7315\n", " }\n", " ],\n", " \"categories\": [\n", " \"restaurant\"\n", " ],\n", " \"classifications\": [\n", " {\n", " \"code\": \"RESTAURANT\",\n", " \"names\": [\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"restaurant\"\n", " }\n", " ]\n", " }\n", " ]\n", " },\n", " \"address\": {\n", " \"streetNumber\": \"109\",\n", " \"streetName\": \"Rue de Bonnevoie\",\n", " \"municipality\": \"Luxembourg\",\n", " \"neighbourhood\": \"Bonnevoie Sud\",\n", " \"countrySubdivision\": \"Luxembourg\",\n", " \"countrySubdivisionName\": \"Luxembourg\",\n", " \"countrySubdivisionCode\": \"LU\",\n", " \"postalCode\": \"L-1260\",\n", " \"countryCode\": \"LU\",\n", " \"country\": \"Luxembourg\",\n", " \"countryCodeISO3\": \"LUX\",\n", " \"freeformAddress\": \"109 Rue de Bonnevoie, L-1260 Luxembourg\",\n", " \"localName\": \"Luxembourg\"\n", " },\n", " \"position\": {\n", " \"lat\": 49.59799,\n", " \"lon\": 6.13792\n", " },\n", " \"viewport\": {\n", " \"topLeftPoint\": {\n", " \"lat\": 49.59889,\n", " \"lon\": 6.13653\n", " },\n", " \"btmRightPoint\": {\n", " \"lat\": 49.59709,\n", " \"lon\": 6.13931\n", " }\n", " },\n", " \"entryPoints\": [\n", " {\n", " \"type\": \"main\",\n", " \"position\": {\n", " \"lat\": 49.5979,\n", " \"lon\": 6.13775\n", " }\n", " }\n", " ],\n", " \"detourTime\": 685,\n", " \"detourDistance\": 1788\n", " }\n", " ]\n", "}\n", "execute function call: \n", "Tue Feb 27 12:54:31 2024 \n", "+---------------------------------------------------------------------------------------+\n", "| NVIDIA-SMI 545.29.02 Driver Version: 545.29.02 CUDA Version: 12.3 |\n", "|-----------------------------------------+----------------------+----------------------+\n", "| GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC |\n", "| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |\n", "| | | MIG M. |\n", "|=========================================+======================+======================|\n", "| 0 NVIDIA GeForce RTX 4090 Off | 00000000:01:00.0 Off | Off |\n", "| 31% 51C P2 78W / 450W | 23485MiB / 24564MiB | 0% Default |\n", "| | | N/A |\n", "+-----------------------------------------+----------------------+----------------------+\n", " \n", "+---------------------------------------------------------------------------------------+\n", "| Processes: |\n", "| GPU GI CI PID Type Process name GPU Memory |\n", "| ID ID Usage |\n", "|=======================================================================================|\n", "+---------------------------------------------------------------------------------------+\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "huggingface/tokenizers: The current process just got forked, after parallelism has already been used. Disabling parallelism to avoid deadlocks...\n", "To disable this warning, you can either:\n", "\t- Avoid using `tokenizers` before the fork if possible\n", "\t- Explicitly set the environment variable TOKENIZERS_PARALLELISM=(true | false)\n" ] } ], "source": [ "# might be deleted\n", "# Compute a Simple equation\n", "print(\"before everything: \")\n", "!nvidia-smi\n", "prompt = construct_prompt(\"What restaurants are there on the road from Luxembourg Gare, which coordinates are lat 49.5999681, lon 6.1342493, to Thionville?\", \"\")\n", "print(\"after creating prompt: \")\n", "!nvidia-smi\n", "model_output = pipe(\n", " prompt, do_sample=False, max_new_tokens=300, return_full_text=False\n", " )\n", "print(model_output[0][\"generated_text\"])\n", "\n", "print(\"creating the pipe of model output: \")\n", "!nvidia-smi\n", "result = execute_function_call(model_output)\n", "print(\"execute function call: \")\n", "!nvidia-smi\n", "del model_output\n", "import gc # garbage collect library\n", "gc.collect()\n", "torch.cuda.empty_cache() \n", "\n", "#print(\"Model Output:\", model_output)\n", "print(\"Execution Result:\", result)\n", "\n", "\n", "#execute_function_call(pipe(construct_prompt(\"Is it raining in Belval, ?\"), do_sample=False, max_new_tokens=300, return_full_text=False))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## functions to process the anwser and the question" ] }, { "cell_type": "code", "execution_count": 62, "metadata": {}, "outputs": [], "source": [ "#generation of text with Stable beluga \n", "def gen(p, maxlen=15, sample=True):\n", " toks = tokr(p, return_tensors=\"pt\")\n", " res = model.generate(**toks.to(\"cuda\"), max_new_tokens=maxlen, do_sample=sample).to('cpu')\n", " return tokr.batch_decode(res)\n", "\n", "#to have a prompt corresponding to the specific format required by the fine-tuned model Stable Beluga\n", "def mk_prompt(user, syst=\"### System:\\nYou are a useful AI assistant in a car, that follows instructions extremely well. Help as much as you can. Answer questions concisely and do not mention what you base your reply on.\\n\\n\"): return f\"{syst}### User: {user}\\n\\n### Assistant:\\n\"" ] }, { "cell_type": "code", "execution_count": 63, "metadata": { "id": "yAJI0WyOLE8G" }, "outputs": [], "source": [ "def car_answer_only(complete_answer, general_context):\n", " \"\"\"returns only the AI assistant answer, without all context, to reply to the user\"\"\"\n", " pattern = r\"Assistant:\\\\n(.*)(|[.!?](\\s|$))\" #pattern = r\"Assistant:\\\\n(.*?)\"\n", "\n", " match = re.search(pattern, complete_answer, re.DOTALL)\n", "\n", " if match:\n", " # Extracting the text\n", " model_answer = match.group(1)\n", " #print(complete_answer)\n", " else:\n", " #print(complete_answer)\n", " model_answer = \"There has been an error with the generated response.\" \n", "\n", " general_context += model_answer\n", " return (model_answer, general_context)\n", "#print(model_answer)" ] }, { "cell_type": "code", "execution_count": 74, "metadata": { "id": "ViCEgogaENNV" }, "outputs": [], "source": [ "def FnAnswer(general_context, ques, place, time, delete_history, state):\n", " \"\"\"function to manage the two different llms (function calling and basic answer) and call them one after the other\"\"\"\n", " # Initialize state if it is None\n", " if delete_history == \"Yes\":\n", " state = None\n", " if state is None:\n", " conv_context = []\n", " conv_context.append(general_context)\n", " state = {}\n", " state['context'] = conv_context\n", " state['number'] = 0\n", " state['last_question'] = \"\"\n", " \n", " if type(ques) != str: \n", " ques = ques[0]\n", " \n", " place = definePlace(place) #which on the predefined places it is\n", " \n", " formatted_context = '\\n'.join(state['context'])\n", " \n", " #updated at every question\n", " general_context = f\"\"\"\n", " Recent conversation history: '{formatted_context}' (If empty, this indicates the beginning of the conversation).\n", "\n", " Previous question from the user: '{state['last_question']}' (This may or may not be related to the current question).\n", "\n", " User information: The user is inside a car in {place[0]}, with latitude {place[1]} and longitude {place[2]}. The user is mobile and can drive to different destinations. It is currently {time}\n", "\n", " \"\"\"\n", " #first llm call (function calling model, NexusRaven)\n", " model_output= pipe(construct_prompt(ques, general_context), do_sample=False, max_new_tokens=300, return_full_text=False)\n", " call = execute_function_call(model_output) #call variable is formatted to as a call to a specific function with the required parameters\n", " print(call)\n", " #this is what will erase the model_output from the GPU memory to free up space\n", " del model_output\n", " import gc # garbage collect library\n", " gc.collect()\n", " torch.cuda.empty_cache() \n", " \n", " #updated at every question\n", " general_context += f'This information might be of help, use if it seems relevant, and ignore if not relevant to reply to the user: \"{call}\". '\n", " \n", " #question formatted for the StableBeluga llm (second llm), using the output of the first llm as context in general_context\n", " question=f\"\"\"Reply to the user and answer any question with the help of the provided context.\n", "\n", " ## Context\n", "\n", " {general_context} .\n", "\n", " ## Question\n", "\n", " {ques}\"\"\"\n", "\n", " complete_answer = str(gen(mk_prompt(question), 100)) #answer generation with StableBeluga (2nd llm)\n", "\n", " model_answer, general_context= car_answer_only(complete_answer, general_context) #to retrieve only the car answer \n", " \n", " language = pipe_language(model_answer, top_k=1, truncation=True)[0]['label'] #detect the language of the answer, to modify the text-to-speech consequently\n", " \n", " state['last_question'] = ques #add the current question as 'last question' for the next question's context\n", " \n", " state['number']= state['number'] + 1 #adds 1 to the number of interactions with the car\n", "\n", " state['context'].append(str(state['number']) + '. User question: '+ ques + ', Model answer: ' + model_answer) #modifies the context\n", " \n", " #print(\"contexte : \" + '\\n'.join(state['context']))\n", " \n", " if len(state['context'])>5: #6 questions maximum in the context to avoid having too many information\n", " state['context'] = state['context'][1:]\n", "\n", " return model_answer, state['context'], state, language" ] }, { "cell_type": "code", "execution_count": 75, "metadata": { "id": "9WQlYePVLrTN" }, "outputs": [], "source": [ "def transcript(general_context, link_to_audio, voice, place, time, delete_history, state):\n", " \"\"\"this function manages speech-to-text to input Fnanswer function and text-to-speech with the Fnanswer output\"\"\"\n", " # load audio from a specific path\n", " audio_path = link_to_audio\n", " audio_array, sampling_rate = librosa.load(link_to_audio, sr=16000) # \"sr=16000\" ensures that the sampling rate is as required\n", "\n", "\n", " # process the audio array\n", " input_features = processor(audio_array, sampling_rate, return_tensors=\"pt\").input_features\n", "\n", "\n", " predicted_ids = modelw.generate(input_features)\n", "\n", " transcription = processor.batch_decode(predicted_ids, skip_special_tokens=True)\n", "\n", " quest_processing = FnAnswer(general_context, transcription, place, time, delete_history, state)\n", " \n", " state=quest_processing[2]\n", " \n", " print(\"langue \" + quest_processing[3])\n", "\n", " tts.tts_to_file(text= str(quest_processing[0]),\n", " file_path=\"output.wav\",\n", " speaker_wav=f'Audio_Files/{voice}.wav',\n", " language=quest_processing[3],\n", " emotion = \"angry\")\n", "\n", " audio_path = \"output.wav\"\n", " return audio_path, state['context'], state" ] }, { "cell_type": "code", "execution_count": 76, "metadata": {}, "outputs": [], "source": [ "def definePlace(place):\n", " if(place == 'Luxembourg Gare, Luxembourg'):\n", " return('Luxembourg Gare', '49.5999681', '6.1342493' )\n", " elif (place =='Kirchberg Campus, Kirchberg'):\n", " return('Kirchberg Campus, Luxembourg', '49.62571206478235', '6.160082636815114')\n", " elif (place =='Belval Campus, Belval'):\n", " return('Belval-Université, Esch-sur-Alzette', '49.499531', '5.9462903')\n", " elif (place =='Eiffel Tower, Paris'):\n", " return('Eiffel Tower, Paris', '48.8582599', '2.2945006')\n", " elif (place=='Thionville, France'):\n", " return('Thionville, France', '49.357927', '6.167587')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Interfaces (text and audio)" ] }, { "cell_type": "code", "execution_count": 77, "metadata": { "collapsed": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "Closing server running on port: 7860\n", "Closing server running on port: 7860\n", "Closing server running on port: 7860\n", "Closing server running on port: 7860\n", "Closing server running on port: 7860\n", "Closing server running on port: 7860\n", "Closing server running on port: 7860\n", "Closing server running on port: 7860\n", "Closing server running on port: 7860\n", "Closing server running on port: 7860\n", "Closing server running on port: 7860\n", "Closing server running on port: 7860\n", "Closing server running on port: 7860\n", "Closing server running on port: 7860\n", "Running on local URL: http://0.0.0.0:7860\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "/usr/local/lib/python3.10/dist-packages/transformers/pipelines/base.py:1101: UserWarning: You seem to be using the pipelines sequentially on GPU. In order to maximize efficiency please use a dataset\n", " warnings.warn(\n", "Setting `pad_token_id` to `eos_token_id`:2 for open-end generation.\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "Could not create share link. Please check your internet connection or our status page: https://status.gradio.app.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "2024/02/27 12:55:51 [W] [service.go:132] login to server failed: dial tcp 44.237.78.176:7000: i/o timeout\n" ] }, { "data": { "text/html": [ "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "49.3579272\n", "{\n", " \"summary\": {\n", " \"query\": \"fastfood\",\n", " \"queryType\": \"NON_NEAR\",\n", " \"queryTime\": 310,\n", " \"numResults\": 20,\n", " \"offset\": 0,\n", " \"totalResults\": 20,\n", " \"fuzzyLevel\": 1,\n", " \"geobiasCountry\": \"LU\"\n", " },\n", " \"results\": [\n", " {\n", " \"type\": \"POI\",\n", " \"id\": \"J5-wTaFqeNCotY27tp8L2Q\",\n", " \"score\": 2.7918899059,\n", " \"dist\": 29973.83986,\n", " \"query\": \"fastfood\",\n", " \"info\": \"search:ta:250009013479571-FR\",\n", " \"poi\": {\n", " \"name\": \"O'Tacos\",\n", " \"categorySet\": [\n", " {\n", " \"id\": 7315015\n", " }\n", " ],\n", " \"url\": \"www.facebook.com/Otacos-Thionville-1898601700407644/\",\n", " \"categories\": [\n", " \"fast food\",\n", " \"restaurant\"\n", " ],\n", " \"classifications\": [\n", " {\n", " \"code\": \"RESTAURANT\",\n", " \"names\": [\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"restaurant\"\n", " },\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"fast food\"\n", " }\n", " ]\n", " }\n", " ]\n", " },\n", " \"address\": {\n", " \"streetNumber\": \"5\",\n", " \"streetName\": \"Rue des Auriges\",\n", " \"municipality\": \"Thionville\",\n", " \"countrySecondarySubdivision\": \"Moselle\",\n", " \"countrySubdivision\": \"Grand Est\",\n", " \"countrySubdivisionName\": \"Grand Est\",\n", " \"countrySubdivisionCode\": \"GES\",\n", " \"postalCode\": \"57100\",\n", " \"countryCode\": \"FR\",\n", " \"country\": \"France\",\n", " \"countryCodeISO3\": \"FRA\",\n", " \"freeformAddress\": \"5 Rue des Auriges, 57100 Thionville\",\n", " \"localName\": \"Thionville\"\n", " },\n", " \"position\": {\n", " \"lat\": 49.356882,\n", " \"lon\": 6.140217\n", " },\n", " \"viewport\": {\n", " \"topLeftPoint\": {\n", " \"lat\": 49.35778,\n", " \"lon\": 6.13884\n", " },\n", " \"btmRightPoint\": {\n", " \"lat\": 49.35598,\n", " \"lon\": 6.1416\n", " }\n", " },\n", " \"entryPoints\": [\n", " {\n", " \"type\": \"main\",\n", " \"position\": {\n", " \"lat\": 49.35703,\n", " \"lon\": 6.14027\n", " }\n", " }\n", " ],\n", " \"detourTime\": 104,\n", " \"detourDistance\": -735\n", " },\n", " {\n", " \"type\": \"POI\",\n", " \"id\": \"HEsU0Rm8pAr40ltWbVG-jA\",\n", " \"score\": 2.7919890881,\n", " \"dist\": 29964.150929,\n", " \"query\": \"fastfood\",\n", " \"info\": \"search:ta:250007000429890-FR\",\n", " \"poi\": {\n", " \"name\": \"KFC\",\n", " \"phone\": \"+33 3 82 84 24 32\",\n", " \"brands\": [\n", " {\n", " \"name\": \"KFC\"\n", " }\n", " ],\n", " \"categorySet\": [\n", " {\n", " \"id\": 7315015\n", " }\n", " ],\n", " \"url\": \"www.kfc.fr/nous-trouver?search=thionville\",\n", " \"categories\": [\n", " \"fast food\",\n", " \"restaurant\"\n", " ],\n", " \"classifications\": [\n", " {\n", " \"code\": \"RESTAURANT\",\n", " \"names\": [\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"restaurant\"\n", " },\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"fast food\"\n", " }\n", " ]\n", " }\n", " ]\n", " },\n", " \"address\": {\n", " \"streetNumber\": \"38\",\n", " \"streetName\": \"Route d'Esch-sur-Alzette\",\n", " \"municipality\": \"Thionville\",\n", " \"countrySecondarySubdivision\": \"Moselle\",\n", " \"countrySubdivision\": \"Grand Est\",\n", " \"countrySubdivisionName\": \"Grand Est\",\n", " \"countrySubdivisionCode\": \"GES\",\n", " \"postalCode\": \"57100\",\n", " \"countryCode\": \"FR\",\n", " \"country\": \"France\",\n", " \"countryCodeISO3\": \"FRA\",\n", " \"freeformAddress\": \"38 Route d'Esch-sur-Alzette, 57100 Thionville\",\n", " \"localName\": \"Thionville\"\n", " },\n", " \"position\": {\n", " \"lat\": 49.357122,\n", " \"lon\": 6.138246\n", " },\n", " \"viewport\": {\n", " \"topLeftPoint\": {\n", " \"lat\": 49.35802,\n", " \"lon\": 6.13687\n", " },\n", " \"btmRightPoint\": {\n", " \"lat\": 49.35622,\n", " \"lon\": 6.13963\n", " }\n", " },\n", " \"entryPoints\": [\n", " {\n", " \"type\": \"main\",\n", " \"position\": {\n", " \"lat\": 49.35721,\n", " \"lon\": 6.13827\n", " }\n", " }\n", " ],\n", " \"detourTime\": 104,\n", " \"detourDistance\": -735\n", " },\n", " {\n", " \"type\": \"POI\",\n", " \"id\": \"d0jdUVfdDPmfDQMFhmmM1w\",\n", " \"score\": 2.7937262058,\n", " \"dist\": 29794.145472,\n", " \"query\": \"fastfood\",\n", " \"info\": \"search:ta:250009002871366-FR\",\n", " \"poi\": {\n", " \"name\": \"Snack Les Fr\\u00e8res\",\n", " \"phone\": \"+33 3 54 54 39 90\",\n", " \"categorySet\": [\n", " {\n", " \"id\": 7315015\n", " }\n", " ],\n", " \"url\": \"www.kebab-frites.com/kebab/snack-les-freres-thionville.html\",\n", " \"categories\": [\n", " \"fast food\",\n", " \"restaurant\"\n", " ],\n", " \"classifications\": [\n", " {\n", " \"code\": \"RESTAURANT\",\n", " \"names\": [\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"restaurant\"\n", " },\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"fast food\"\n", " }\n", " ]\n", " }\n", " ]\n", " },\n", " \"address\": {\n", " \"streetNumber\": \"9\",\n", " \"streetName\": \"Rue du Cygne\",\n", " \"municipality\": \"Thionville\",\n", " \"countrySecondarySubdivision\": \"Moselle\",\n", " \"countrySubdivision\": \"Grand Est\",\n", " \"countrySubdivisionName\": \"Grand Est\",\n", " \"countrySubdivisionCode\": \"GES\",\n", " \"postalCode\": \"57100\",\n", " \"countryCode\": \"FR\",\n", " \"country\": \"France\",\n", " \"countryCodeISO3\": \"FRA\",\n", " \"freeformAddress\": \"9 Rue du Cygne, 57100 Thionville\",\n", " \"localName\": \"Thionville\"\n", " },\n", " \"position\": {\n", " \"lat\": 49.357798,\n", " \"lon\": 6.164267\n", " },\n", " \"viewport\": {\n", " \"topLeftPoint\": {\n", " \"lat\": 49.3587,\n", " \"lon\": 6.16289\n", " },\n", " \"btmRightPoint\": {\n", " \"lat\": 49.3569,\n", " \"lon\": 6.16565\n", " }\n", " },\n", " \"entryPoints\": [\n", " {\n", " \"type\": \"main\",\n", " \"position\": {\n", " \"lat\": 49.35787,\n", " \"lon\": 6.16411\n", " }\n", " },\n", " {\n", " \"type\": \"main\",\n", " \"position\": {\n", " \"lat\": 49.35785,\n", " \"lon\": 6.16409\n", " }\n", " }\n", " ],\n", " \"detourTime\": 190,\n", " \"detourDistance\": -819\n", " },\n", " {\n", " \"type\": \"POI\",\n", " \"id\": \"QFw9XgIabqFwC5gux58xMA\",\n", " \"score\": 2.7928469181,\n", " \"dist\": 29880.276022,\n", " \"query\": \"fastfood\",\n", " \"info\": \"search:ta:250009007921561-FR\",\n", " \"poi\": {\n", " \"name\": \"La Broche Tournante\",\n", " \"phone\": \"+33 3 54 30 59 78\",\n", " \"categorySet\": [\n", " {\n", " \"id\": 7315015\n", " }\n", " ],\n", " \"categories\": [\n", " \"fast food\",\n", " \"restaurant\"\n", " ],\n", " \"classifications\": [\n", " {\n", " \"code\": \"RESTAURANT\",\n", " \"names\": [\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"restaurant\"\n", " },\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"fast food\"\n", " }\n", " ]\n", " }\n", " ]\n", " },\n", " \"address\": {\n", " \"streetNumber\": \"37\",\n", " \"streetName\": \"Place Notre-Dame\",\n", " \"municipality\": \"Thionville\",\n", " \"countrySecondarySubdivision\": \"Moselle\",\n", " \"countrySubdivision\": \"Grand Est\",\n", " \"countrySubdivisionName\": \"Grand Est\",\n", " \"countrySubdivisionCode\": \"GES\",\n", " \"postalCode\": \"57100\",\n", " \"countryCode\": \"FR\",\n", " \"country\": \"France\",\n", " \"countryCodeISO3\": \"FRA\",\n", " \"freeformAddress\": \"37 Place Notre-Dame, 57100 Thionville\",\n", " \"localName\": \"Thionville\"\n", " },\n", " \"position\": {\n", " \"lat\": 49.356992,\n", " \"lon\": 6.160815\n", " },\n", " \"viewport\": {\n", " \"topLeftPoint\": {\n", " \"lat\": 49.35789,\n", " \"lon\": 6.15943\n", " },\n", " \"btmRightPoint\": {\n", " \"lat\": 49.35609,\n", " \"lon\": 6.1622\n", " }\n", " },\n", " \"entryPoints\": [\n", " {\n", " \"type\": \"main\",\n", " \"position\": {\n", " \"lat\": 49.35699,\n", " \"lon\": 6.16068\n", " }\n", " }\n", " ],\n", " \"detourTime\": 208,\n", " \"detourDistance\": -532\n", " },\n", " {\n", " \"type\": \"POI\",\n", " \"id\": \"o8pZSwuUipodrbeO04fRHw\",\n", " \"score\": 2.7938592434,\n", " \"dist\": 29781.106564,\n", " \"query\": \"fastfood\",\n", " \"info\": \"search:ta:250007000340896-FR\",\n", " \"poi\": {\n", " \"name\": \"La Frite'Rit Belge\",\n", " \"categorySet\": [\n", " {\n", " \"id\": 7315015\n", " }\n", " ],\n", " \"url\": \"lafriteritbelge.fr/\",\n", " \"categories\": [\n", " \"fast food\",\n", " \"restaurant\"\n", " ],\n", " \"classifications\": [\n", " {\n", " \"code\": \"RESTAURANT\",\n", " \"names\": [\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"restaurant\"\n", " },\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"fast food\"\n", " }\n", " ]\n", " }\n", " ]\n", " },\n", " \"address\": {\n", " \"streetNumber\": \"1\",\n", " \"streetName\": \"Rue du Vieux Coll\\u00e8ge\",\n", " \"municipality\": \"Thionville\",\n", " \"countrySecondarySubdivision\": \"Moselle\",\n", " \"countrySubdivision\": \"Grand Est\",\n", " \"countrySubdivisionName\": \"Grand Est\",\n", " \"countrySubdivisionCode\": \"GES\",\n", " \"postalCode\": \"57100\",\n", " \"countryCode\": \"FR\",\n", " \"country\": \"France\",\n", " \"countryCodeISO3\": \"FRA\",\n", " \"freeformAddress\": \"1 Rue du Vieux Coll\\u00e8ge, 57100 Thionville\",\n", " \"localName\": \"Thionville\"\n", " },\n", " \"position\": {\n", " \"lat\": 49.357939,\n", " \"lon\": 6.165582\n", " },\n", " \"viewport\": {\n", " \"topLeftPoint\": {\n", " \"lat\": 49.35884,\n", " \"lon\": 6.1642\n", " },\n", " \"btmRightPoint\": {\n", " \"lat\": 49.35704,\n", " \"lon\": 6.16696\n", " }\n", " },\n", " \"entryPoints\": [\n", " {\n", " \"type\": \"main\",\n", " \"position\": {\n", " \"lat\": 49.35786,\n", " \"lon\": 6.16563\n", " }\n", " }\n", " ],\n", " \"detourTime\": 285,\n", " \"detourDistance\": -725\n", " },\n", " {\n", " \"type\": \"POI\",\n", " \"id\": \"upGzfpouzehTAeWCv-ewVw\",\n", " \"score\": 2.79468894,\n", " \"dist\": 29699.674575,\n", " \"query\": \"fastfood\",\n", " \"info\": \"search:ta:250009034318871-FR\",\n", " \"poi\": {\n", " \"name\": \"Burger Brothers\",\n", " \"categorySet\": [\n", " {\n", " \"id\": 7315015\n", " }\n", " ],\n", " \"categories\": [\n", " \"fast food\",\n", " \"restaurant\"\n", " ],\n", " \"classifications\": [\n", " {\n", " \"code\": \"RESTAURANT\",\n", " \"names\": [\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"restaurant\"\n", " },\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"fast food\"\n", " }\n", " ]\n", " }\n", " ]\n", " },\n", " \"address\": {\n", " \"streetNumber\": \"4\",\n", " \"streetName\": \"Rue du Man\\u00e8ge\",\n", " \"municipality\": \"Thionville\",\n", " \"countrySecondarySubdivision\": \"Moselle\",\n", " \"countrySubdivision\": \"Grand Est\",\n", " \"countrySubdivisionName\": \"Grand Est\",\n", " \"countrySubdivisionCode\": \"GES\",\n", " \"postalCode\": \"57100\",\n", " \"countryCode\": \"FR\",\n", " \"country\": \"France\",\n", " \"countryCodeISO3\": \"FRA\",\n", " \"freeformAddress\": \"4 Rue du Man\\u00e8ge, 57100 Thionville\",\n", " \"localName\": \"Thionville\"\n", " },\n", " \"position\": {\n", " \"lat\": 49.358682,\n", " \"lon\": 6.16608\n", " },\n", " \"viewport\": {\n", " \"topLeftPoint\": {\n", " \"lat\": 49.35958,\n", " \"lon\": 6.1647\n", " },\n", " \"btmRightPoint\": {\n", " \"lat\": 49.35778,\n", " \"lon\": 6.16746\n", " }\n", " },\n", " \"entryPoints\": [\n", " {\n", " \"type\": \"main\",\n", " \"position\": {\n", " \"lat\": 49.35876,\n", " \"lon\": 6.16616\n", " }\n", " }\n", " ],\n", " \"detourTime\": 299,\n", " \"detourDistance\": -699\n", " },\n", " {\n", " \"type\": \"POI\",\n", " \"id\": \"EOcHRDuPCR0ZbAb_rtbb9Q\",\n", " \"score\": 2.9929280281,\n", " \"dist\": 1302.156306,\n", " \"query\": \"fastfood\",\n", " \"info\": \"search:ta:442009000482378-LU\",\n", " \"poi\": {\n", " \"name\": \"Nj\\u00f6rd\",\n", " \"categorySet\": [\n", " {\n", " \"id\": 7315015\n", " }\n", " ],\n", " \"url\": \"www.njordfood.com\",\n", " \"categories\": [\n", " \"fast food\",\n", " \"restaurant\"\n", " ],\n", " \"classifications\": [\n", " {\n", " \"code\": \"RESTAURANT\",\n", " \"names\": [\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"restaurant\"\n", " },\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"fast food\"\n", " }\n", " ]\n", " }\n", " ]\n", " },\n", " \"address\": {\n", " \"streetNumber\": \"5\",\n", " \"streetName\": \"Rue Alphonse Weicker\",\n", " \"municipality\": \"Luxembourg\",\n", " \"neighbourhood\": \"Kirchberg\",\n", " \"countrySubdivision\": \"Luxembourg\",\n", " \"countrySubdivisionName\": \"Luxembourg\",\n", " \"countrySubdivisionCode\": \"LU\",\n", " \"postalCode\": \"L-2721\",\n", " \"countryCode\": \"LU\",\n", " \"country\": \"Luxembourg\",\n", " \"countryCodeISO3\": \"LUX\",\n", " \"freeformAddress\": \"5 Rue Alphonse Weicker, L-2721 Luxembourg\",\n", " \"localName\": \"Luxembourg\"\n", " },\n", " \"position\": {\n", " \"lat\": 49.633276,\n", " \"lon\": 6.169018\n", " },\n", " \"viewport\": {\n", " \"topLeftPoint\": {\n", " \"lat\": 49.63418,\n", " \"lon\": 6.16763\n", " },\n", " \"btmRightPoint\": {\n", " \"lat\": 49.63238,\n", " \"lon\": 6.17041\n", " }\n", " },\n", " \"entryPoints\": [\n", " {\n", " \"type\": \"main\",\n", " \"position\": {\n", " \"lat\": 49.63334,\n", " \"lon\": 6.16875\n", " }\n", " }\n", " ],\n", " \"detourTime\": 322,\n", " \"detourDistance\": -327\n", " },\n", " {\n", " \"type\": \"POI\",\n", " \"id\": \"P7cK0A0U7NHHFa-HQLoDzw\",\n", " \"score\": 2.9929280281,\n", " \"dist\": 1302.156306,\n", " \"query\": \"fastfood\",\n", " \"info\": \"search:ta:442009000466405-LU\",\n", " \"poi\": {\n", " \"name\": \"OrientX\",\n", " \"phone\": \"+352 26 68 71 95\",\n", " \"categorySet\": [\n", " {\n", " \"id\": 7315015\n", " }\n", " ],\n", " \"url\": \"www.orientx.com\",\n", " \"categories\": [\n", " \"fast food\",\n", " \"restaurant\"\n", " ],\n", " \"classifications\": [\n", " {\n", " \"code\": \"RESTAURANT\",\n", " \"names\": [\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"restaurant\"\n", " },\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"fast food\"\n", " }\n", " ]\n", " }\n", " ]\n", " },\n", " \"address\": {\n", " \"streetNumber\": \"5\",\n", " \"streetName\": \"Rue Alphonse Weicker\",\n", " \"municipality\": \"Luxembourg\",\n", " \"neighbourhood\": \"Kirchberg\",\n", " \"countrySubdivision\": \"Luxembourg\",\n", " \"countrySubdivisionName\": \"Luxembourg\",\n", " \"countrySubdivisionCode\": \"LU\",\n", " \"postalCode\": \"L-2721\",\n", " \"countryCode\": \"LU\",\n", " \"country\": \"Luxembourg\",\n", " \"countryCodeISO3\": \"LUX\",\n", " \"freeformAddress\": \"5 Rue Alphonse Weicker, L-2721 Luxembourg\",\n", " \"localName\": \"Luxembourg\"\n", " },\n", " \"position\": {\n", " \"lat\": 49.633276,\n", " \"lon\": 6.169018\n", " },\n", " \"viewport\": {\n", " \"topLeftPoint\": {\n", " \"lat\": 49.63418,\n", " \"lon\": 6.16763\n", " },\n", " \"btmRightPoint\": {\n", " \"lat\": 49.63238,\n", " \"lon\": 6.17041\n", " }\n", " },\n", " \"entryPoints\": [\n", " {\n", " \"type\": \"main\",\n", " \"position\": {\n", " \"lat\": 49.63281,\n", " \"lon\": 6.16918\n", " }\n", " }\n", " ],\n", " \"detourTime\": 322,\n", " \"detourDistance\": -327\n", " },\n", " {\n", " \"type\": \"POI\",\n", " \"id\": \"05XhzFhoqGBF9Y9L5_zagA\",\n", " \"score\": 2.9929280281,\n", " \"dist\": 1302.156306,\n", " \"query\": \"fastfood\",\n", " \"info\": \"search:ta:442009000481237-LU\",\n", " \"poi\": {\n", " \"name\": \"Boonchu\",\n", " \"categorySet\": [\n", " {\n", " \"id\": 7315015\n", " }\n", " ],\n", " \"url\": \"www.boonchu.lu/\",\n", " \"categories\": [\n", " \"fast food\",\n", " \"restaurant\"\n", " ],\n", " \"classifications\": [\n", " {\n", " \"code\": \"RESTAURANT\",\n", " \"names\": [\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"restaurant\"\n", " },\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"fast food\"\n", " }\n", " ]\n", " }\n", " ]\n", " },\n", " \"address\": {\n", " \"streetNumber\": \"5\",\n", " \"streetName\": \"Rue Alphonse Weicker\",\n", " \"municipality\": \"Luxembourg\",\n", " \"neighbourhood\": \"Kirchberg\",\n", " \"countrySubdivision\": \"Luxembourg\",\n", " \"countrySubdivisionName\": \"Luxembourg\",\n", " \"countrySubdivisionCode\": \"LU\",\n", " \"postalCode\": \"L-2721\",\n", " \"countryCode\": \"LU\",\n", " \"country\": \"Luxembourg\",\n", " \"countryCodeISO3\": \"LUX\",\n", " \"freeformAddress\": \"5 Rue Alphonse Weicker, L-2721 Luxembourg (Rue Carlo Hemmer)\",\n", " \"localName\": \"Luxembourg\"\n", " },\n", " \"position\": {\n", " \"lat\": 49.633276,\n", " \"lon\": 6.169018\n", " },\n", " \"viewport\": {\n", " \"topLeftPoint\": {\n", " \"lat\": 49.63443,\n", " \"lon\": 6.16724\n", " },\n", " \"btmRightPoint\": {\n", " \"lat\": 49.63213,\n", " \"lon\": 6.17079\n", " }\n", " },\n", " \"entryPoints\": [\n", " {\n", " \"type\": \"main\",\n", " \"position\": {\n", " \"lat\": 49.63432,\n", " \"lon\": 6.16976\n", " }\n", " }\n", " ],\n", " \"detourTime\": 322,\n", " \"detourDistance\": -327\n", " },\n", " {\n", " \"type\": \"POI\",\n", " \"id\": \"c1KAvrUzby63n2RIiYO0tw\",\n", " \"score\": 2.9929280281,\n", " \"dist\": 1302.156306,\n", " \"query\": \"fastfood\",\n", " \"info\": \"search:ta:442009000700203-LU\",\n", " \"poi\": {\n", " \"name\": \"Bagelstein\",\n", " \"categorySet\": [\n", " {\n", " \"id\": 7315015\n", " }\n", " ],\n", " \"url\": \"www.bagelstein.com/\",\n", " \"categories\": [\n", " \"fast food\",\n", " \"restaurant\"\n", " ],\n", " \"classifications\": [\n", " {\n", " \"code\": \"RESTAURANT\",\n", " \"names\": [\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"restaurant\"\n", " },\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"fast food\"\n", " }\n", " ]\n", " }\n", " ]\n", " },\n", " \"address\": {\n", " \"streetNumber\": \"5\",\n", " \"streetName\": \"Rue Alphonse Weicker\",\n", " \"municipality\": \"Luxembourg\",\n", " \"neighbourhood\": \"Kirchberg\",\n", " \"countrySubdivision\": \"Luxembourg\",\n", " \"countrySubdivisionName\": \"Luxembourg\",\n", " \"countrySubdivisionCode\": \"LU\",\n", " \"postalCode\": \"L-2721\",\n", " \"countryCode\": \"LU\",\n", " \"country\": \"Luxembourg\",\n", " \"countryCodeISO3\": \"LUX\",\n", " \"freeformAddress\": \"5 Rue Alphonse Weicker, L-2721 Luxembourg\",\n", " \"localName\": \"Luxembourg\"\n", " },\n", " \"position\": {\n", " \"lat\": 49.633276,\n", " \"lon\": 6.169018\n", " },\n", " \"viewport\": {\n", " \"topLeftPoint\": {\n", " \"lat\": 49.63418,\n", " \"lon\": 6.16763\n", " },\n", " \"btmRightPoint\": {\n", " \"lat\": 49.63238,\n", " \"lon\": 6.17041\n", " }\n", " },\n", " \"entryPoints\": [\n", " {\n", " \"type\": \"main\",\n", " \"position\": {\n", " \"lat\": 49.63334,\n", " \"lon\": 6.16875\n", " }\n", " }\n", " ],\n", " \"detourTime\": 322,\n", " \"detourDistance\": -327\n", " },\n", " {\n", " \"type\": \"POI\",\n", " \"id\": \"OKMwknKgkmDMGDGqa8EWlA\",\n", " \"score\": 2.9928684235,\n", " \"dist\": 1316.103768,\n", " \"query\": \"fastfood\",\n", " \"info\": \"search:ta:442007000008131-LU\",\n", " \"poi\": {\n", " \"name\": \"Pokawa Luxembourg\",\n", " \"categorySet\": [\n", " {\n", " \"id\": 7315015\n", " }\n", " ],\n", " \"categories\": [\n", " \"fast food\",\n", " \"restaurant\"\n", " ],\n", " \"classifications\": [\n", " {\n", " \"code\": \"RESTAURANT\",\n", " \"names\": [\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"restaurant\"\n", " },\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"fast food\"\n", " }\n", " ]\n", " }\n", " ]\n", " },\n", " \"address\": {\n", " \"streetNumber\": \"5\",\n", " \"streetName\": \"Rue Alphonse Weicker\",\n", " \"municipality\": \"Luxembourg\",\n", " \"neighbourhood\": \"Kirchberg\",\n", " \"countrySubdivision\": \"Luxembourg\",\n", " \"countrySubdivisionName\": \"Luxembourg\",\n", " \"countrySubdivisionCode\": \"LU\",\n", " \"postalCode\": \"L-2721\",\n", " \"countryCode\": \"LU\",\n", " \"country\": \"Luxembourg\",\n", " \"countryCodeISO3\": \"LUX\",\n", " \"freeformAddress\": \"5 Rue Alphonse Weicker, L-2721 Luxembourg\",\n", " \"localName\": \"Luxembourg\"\n", " },\n", " \"position\": {\n", " \"lat\": 49.633273,\n", " \"lon\": 6.169184\n", " },\n", " \"viewport\": {\n", " \"topLeftPoint\": {\n", " \"lat\": 49.63417,\n", " \"lon\": 6.1678\n", " },\n", " \"btmRightPoint\": {\n", " \"lat\": 49.63237,\n", " \"lon\": 6.17057\n", " }\n", " },\n", " \"entryPoints\": [\n", " {\n", " \"type\": \"main\",\n", " \"position\": {\n", " \"lat\": 49.63277,\n", " \"lon\": 6.16923\n", " }\n", " }\n", " ],\n", " \"detourTime\": 340,\n", " \"detourDistance\": -327\n", " },\n", " {\n", " \"type\": \"POI\",\n", " \"id\": \"ce9Oh8jicdG-SdfWZbnCvg\",\n", " \"score\": 2.7928569317,\n", " \"dist\": 29879.291216,\n", " \"query\": \"fastfood\",\n", " \"info\": \"search:ta:250009013675482-FR\",\n", " \"poi\": {\n", " \"name\": \"My Kebab\",\n", " \"categorySet\": [\n", " {\n", " \"id\": 7315015\n", " }\n", " ],\n", " \"categories\": [\n", " \"fast food\",\n", " \"restaurant\"\n", " ],\n", " \"classifications\": [\n", " {\n", " \"code\": \"RESTAURANT\",\n", " \"names\": [\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"restaurant\"\n", " },\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"fast food\"\n", " }\n", " ]\n", " }\n", " ]\n", " },\n", " \"address\": {\n", " \"streetNumber\": \"77\",\n", " \"streetName\": \"Boucle de la Milliaire\",\n", " \"municipality\": \"Thionville\",\n", " \"countrySecondarySubdivision\": \"Moselle\",\n", " \"countrySubdivision\": \"Grand Est\",\n", " \"countrySubdivisionName\": \"Grand Est\",\n", " \"countrySubdivisionCode\": \"GES\",\n", " \"postalCode\": \"57100\",\n", " \"countryCode\": \"FR\",\n", " \"country\": \"France\",\n", " \"countryCodeISO3\": \"FRA\",\n", " \"freeformAddress\": \"77 Boucle de la Milliaire, 57100 Thionville\",\n", " \"localName\": \"Thionville\"\n", " },\n", " \"position\": {\n", " \"lat\": 49.357259,\n", " \"lon\": 6.148279\n", " },\n", " \"viewport\": {\n", " \"topLeftPoint\": {\n", " \"lat\": 49.35816,\n", " \"lon\": 6.1469\n", " },\n", " \"btmRightPoint\": {\n", " \"lat\": 49.35636,\n", " \"lon\": 6.14966\n", " }\n", " },\n", " \"entryPoints\": [\n", " {\n", " \"type\": \"main\",\n", " \"position\": {\n", " \"lat\": 49.35731,\n", " \"lon\": 6.14828\n", " }\n", " }\n", " ],\n", " \"detourTime\": 372,\n", " \"detourDistance\": -355\n", " },\n", " {\n", " \"type\": \"POI\",\n", " \"id\": \"G7wr-aIRzTa_ly2Hk7CrJA\",\n", " \"score\": 2.7942409515,\n", " \"dist\": 29743.666751,\n", " \"query\": \"fastfood\",\n", " \"info\": \"search:ta:250009036716991-FR\",\n", " \"poi\": {\n", " \"name\": \"Hakan\",\n", " \"categorySet\": [\n", " {\n", " \"id\": 7315015\n", " }\n", " ],\n", " \"url\": \"snack-hakan.fr\",\n", " \"categories\": [\n", " \"fast food\",\n", " \"restaurant\"\n", " ],\n", " \"classifications\": [\n", " {\n", " \"code\": \"RESTAURANT\",\n", " \"names\": [\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"restaurant\"\n", " },\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"fast food\"\n", " }\n", " ]\n", " }\n", " ]\n", " },\n", " \"address\": {\n", " \"streetNumber\": \"15\",\n", " \"streetName\": \"Rue du Quartier\",\n", " \"municipality\": \"Thionville\",\n", " \"countrySecondarySubdivision\": \"Moselle\",\n", " \"countrySubdivision\": \"Grand Est\",\n", " \"countrySubdivisionName\": \"Grand Est\",\n", " \"countrySubdivisionCode\": \"GES\",\n", " \"postalCode\": \"57100\",\n", " \"countryCode\": \"FR\",\n", " \"country\": \"France\",\n", " \"countryCodeISO3\": \"FRA\",\n", " \"freeformAddress\": \"15 Rue du Quartier, 57100 Thionville\",\n", " \"localName\": \"Thionville\"\n", " },\n", " \"position\": {\n", " \"lat\": 49.358272,\n", " \"lon\": 6.165421\n", " },\n", " \"viewport\": {\n", " \"topLeftPoint\": {\n", " \"lat\": 49.35917,\n", " \"lon\": 6.16404\n", " },\n", " \"btmRightPoint\": {\n", " \"lat\": 49.35737,\n", " \"lon\": 6.1668\n", " }\n", " },\n", " \"entryPoints\": [\n", " {\n", " \"type\": \"main\",\n", " \"position\": {\n", " \"lat\": 49.35846,\n", " \"lon\": 6.16535\n", " }\n", " },\n", " {\n", " \"type\": \"main\",\n", " \"position\": {\n", " \"lat\": 49.35836,\n", " \"lon\": 6.16524\n", " }\n", " }\n", " ],\n", " \"detourTime\": 404,\n", " \"detourDistance\": -541\n", " },\n", " {\n", " \"type\": \"POI\",\n", " \"id\": \"Dug3PyrwdEqJhHpQs9n-Sg\",\n", " \"score\": 2.7930526733,\n", " \"dist\": 29860.138671,\n", " \"query\": \"fastfood\",\n", " \"info\": \"search:ta:250009036805165-FR\",\n", " \"poi\": {\n", " \"name\": \"McDonald's Thionville\",\n", " \"phone\": \"+33 3 82 82 88 62\",\n", " \"brands\": [\n", " {\n", " \"name\": \"McDonald's\"\n", " }\n", " ],\n", " \"categorySet\": [\n", " {\n", " \"id\": 7315015\n", " }\n", " ],\n", " \"url\": \"www.mcdonalds.fr/restaurants/mcdonalds-thionville/238\",\n", " \"categories\": [\n", " \"fast food\",\n", " \"restaurant\"\n", " ],\n", " \"classifications\": [\n", " {\n", " \"code\": \"RESTAURANT\",\n", " \"names\": [\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"restaurant\"\n", " },\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"fast food\"\n", " }\n", " ]\n", " }\n", " ]\n", " },\n", " \"address\": {\n", " \"streetNumber\": \"7\",\n", " \"streetName\": \"Rue des Auriges\",\n", " \"municipality\": \"Thionville\",\n", " \"countrySecondarySubdivision\": \"Moselle\",\n", " \"countrySubdivision\": \"Grand Est\",\n", " \"countrySubdivisionName\": \"Grand Est\",\n", " \"countrySubdivisionCode\": \"GES\",\n", " \"postalCode\": \"57100\",\n", " \"countryCode\": \"FR\",\n", " \"country\": \"France\",\n", " \"countryCodeISO3\": \"FRA\",\n", " \"freeformAddress\": \"7 Rue des Auriges, 57100 Thionville\",\n", " \"localName\": \"Thionville\"\n", " },\n", " \"position\": {\n", " \"lat\": 49.358083,\n", " \"lon\": 6.137971\n", " },\n", " \"viewport\": {\n", " \"topLeftPoint\": {\n", " \"lat\": 49.35938,\n", " \"lon\": 6.13598\n", " },\n", " \"btmRightPoint\": {\n", " \"lat\": 49.35679,\n", " \"lon\": 6.13996\n", " }\n", " },\n", " \"entryPoints\": [\n", " {\n", " \"type\": \"main\",\n", " \"position\": {\n", " \"lat\": 49.35834,\n", " \"lon\": 6.13989\n", " }\n", " },\n", " {\n", " \"type\": \"main\",\n", " \"position\": {\n", " \"lat\": 49.35834,\n", " \"lon\": 6.13992\n", " }\n", " }\n", " ],\n", " \"detourTime\": 406,\n", " \"detourDistance\": -290\n", " },\n", " {\n", " \"type\": \"POI\",\n", " \"id\": \"Sg2atxRMf-wv6odY3KF7cQ\",\n", " \"score\": 2.7908477783,\n", " \"dist\": 30075.533727,\n", " \"query\": \"fastfood\",\n", " \"info\": \"search:ta:250007000090300-FR\",\n", " \"poi\": {\n", " \"name\": \"Waffle Factory\",\n", " \"categorySet\": [\n", " {\n", " \"id\": 7315015\n", " }\n", " ],\n", " \"url\": \"www.wafflefactory.com\",\n", " \"categories\": [\n", " \"fast food\",\n", " \"restaurant\"\n", " ],\n", " \"classifications\": [\n", " {\n", " \"code\": \"RESTAURANT\",\n", " \"names\": [\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"restaurant\"\n", " },\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"fast food\"\n", " }\n", " ]\n", " }\n", " ]\n", " },\n", " \"address\": {\n", " \"streetName\": \"Rue du Maillet\",\n", " \"municipality\": \"Thionville\",\n", " \"countrySecondarySubdivision\": \"Moselle\",\n", " \"countrySubdivision\": \"Grand Est\",\n", " \"countrySubdivisionName\": \"Grand Est\",\n", " \"countrySubdivisionCode\": \"GES\",\n", " \"postalCode\": \"57100\",\n", " \"countryCode\": \"FR\",\n", " \"country\": \"France\",\n", " \"countryCodeISO3\": \"FRA\",\n", " \"freeformAddress\": \"Rue du Maillet, 57100 Thionville\",\n", " \"localName\": \"Thionville\"\n", " },\n", " \"position\": {\n", " \"lat\": 49.355858,\n", " \"lon\": 6.141727\n", " },\n", " \"viewport\": {\n", " \"topLeftPoint\": {\n", " \"lat\": 49.35676,\n", " \"lon\": 6.14035\n", " },\n", " \"btmRightPoint\": {\n", " \"lat\": 49.35496,\n", " \"lon\": 6.14311\n", " }\n", " },\n", " \"entryPoints\": [\n", " {\n", " \"type\": \"main\",\n", " \"position\": {\n", " \"lat\": 49.35606,\n", " \"lon\": 6.14175\n", " }\n", " }\n", " ],\n", " \"detourTime\": 423,\n", " \"detourDistance\": 85\n", " },\n", " {\n", " \"type\": \"POI\",\n", " \"id\": \"3k-NbbWRtaHo7roLU6scJQ\",\n", " \"score\": 2.7949197292,\n", " \"dist\": 29677.007087,\n", " \"query\": \"fastfood\",\n", " \"info\": \"search:ta:250007000342277-FR\",\n", " \"poi\": {\n", " \"name\": \"Shamiana\",\n", " \"categorySet\": [\n", " {\n", " \"id\": 7315015\n", " }\n", " ],\n", " \"url\": \"www.shamiana.fr/\",\n", " \"categories\": [\n", " \"fast food\",\n", " \"restaurant\"\n", " ],\n", " \"classifications\": [\n", " {\n", " \"code\": \"RESTAURANT\",\n", " \"names\": [\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"restaurant\"\n", " },\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"fast food\"\n", " }\n", " ]\n", " }\n", " ]\n", " },\n", " \"address\": {\n", " \"streetNumber\": \"3\",\n", " \"streetName\": \"Rue du Man\\u00e8ge\",\n", " \"municipality\": \"Thionville\",\n", " \"countrySecondarySubdivision\": \"Moselle\",\n", " \"countrySubdivision\": \"Grand Est\",\n", " \"countrySubdivisionName\": \"Grand Est\",\n", " \"countrySubdivisionCode\": \"GES\",\n", " \"postalCode\": \"57100\",\n", " \"countryCode\": \"FR\",\n", " \"country\": \"France\",\n", " \"countryCodeISO3\": \"FRA\",\n", " \"freeformAddress\": \"3 Rue du Man\\u00e8ge, 57100 Thionville\",\n", " \"localName\": \"Thionville\"\n", " },\n", " \"position\": {\n", " \"lat\": 49.358887,\n", " \"lon\": 6.166133\n", " },\n", " \"viewport\": {\n", " \"topLeftPoint\": {\n", " \"lat\": 49.35979,\n", " \"lon\": 6.16475\n", " },\n", " \"btmRightPoint\": {\n", " \"lat\": 49.35799,\n", " \"lon\": 6.16751\n", " }\n", " },\n", " \"entryPoints\": [\n", " {\n", " \"type\": \"main\",\n", " \"position\": {\n", " \"lat\": 49.35882,\n", " \"lon\": 6.16604\n", " }\n", " }\n", " ],\n", " \"detourTime\": 467,\n", " \"detourDistance\": -563\n", " },\n", " {\n", " \"type\": \"POI\",\n", " \"id\": \"iCjCpuzTabLyYZmeXwnhYw\",\n", " \"score\": 2.7946798801,\n", " \"dist\": 29700.556197,\n", " \"query\": \"fastfood\",\n", " \"info\": \"search:ta:250009002198582-FR\",\n", " \"poi\": {\n", " \"name\": \"Bosphore\",\n", " \"phone\": \"+33 3 82 53 23 11\",\n", " \"categorySet\": [\n", " {\n", " \"id\": 7315015\n", " }\n", " ],\n", " \"categories\": [\n", " \"fast food\",\n", " \"restaurant\"\n", " ],\n", " \"classifications\": [\n", " {\n", " \"code\": \"RESTAURANT\",\n", " \"names\": [\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"restaurant\"\n", " },\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"fast food\"\n", " }\n", " ]\n", " }\n", " ]\n", " },\n", " \"address\": {\n", " \"streetNumber\": \"10\",\n", " \"streetName\": \"Rue de Mersch\",\n", " \"municipality\": \"Thionville\",\n", " \"countrySecondarySubdivision\": \"Moselle\",\n", " \"countrySubdivision\": \"Grand Est\",\n", " \"countrySubdivisionName\": \"Grand Est\",\n", " \"countrySubdivisionCode\": \"GES\",\n", " \"postalCode\": \"57100\",\n", " \"countryCode\": \"FR\",\n", " \"country\": \"France\",\n", " \"countryCodeISO3\": \"FRA\",\n", " \"freeformAddress\": \"10 Rue de Mersch, 57100 Thionville\",\n", " \"localName\": \"Thionville\"\n", " },\n", " \"position\": {\n", " \"lat\": 49.358713,\n", " \"lon\": 6.167617\n", " },\n", " \"viewport\": {\n", " \"topLeftPoint\": {\n", " \"lat\": 49.35961,\n", " \"lon\": 6.16624\n", " },\n", " \"btmRightPoint\": {\n", " \"lat\": 49.35781,\n", " \"lon\": 6.169\n", " }\n", " },\n", " \"entryPoints\": [\n", " {\n", " \"type\": \"main\",\n", " \"position\": {\n", " \"lat\": 49.35881,\n", " \"lon\": 6.16768\n", " }\n", " }\n", " ],\n", " \"detourTime\": 518,\n", " \"detourDistance\": -597\n", " },\n", " {\n", " \"type\": \"POI\",\n", " \"id\": \"HTdpLLJVPT1h3n1dOor4tw\",\n", " \"score\": 2.9481916428,\n", " \"dist\": 10303.527516,\n", " \"query\": \"fastfood\",\n", " \"info\": \"search:ta:442007000004487-LU\",\n", " \"poi\": {\n", " \"name\": \"McDonald's Aire de Berchem\",\n", " \"phone\": \"+352 27 51 72 08\",\n", " \"brands\": [\n", " {\n", " \"name\": \"McDonald's\"\n", " }\n", " ],\n", " \"categorySet\": [\n", " {\n", " \"id\": 7315015\n", " }\n", " ],\n", " \"url\": \"www.mcd.lu\",\n", " \"categories\": [\n", " \"fast food\",\n", " \"restaurant\"\n", " ],\n", " \"classifications\": [\n", " {\n", " \"code\": \"RESTAURANT\",\n", " \"names\": [\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"restaurant\"\n", " },\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"fast food\"\n", " }\n", " ]\n", " }\n", " ]\n", " },\n", " \"address\": {\n", " \"streetName\": \"Autoroute Aire de Berchem\",\n", " \"municipalitySubdivision\": \"Berchem\",\n", " \"municipality\": \"Roeser\",\n", " \"countrySubdivision\": \"Esch-sur-Alzette\",\n", " \"countrySubdivisionName\": \"Esch-sur-Alzette\",\n", " \"countrySubdivisionCode\": \"ES\",\n", " \"postalCode\": \"L-3325\",\n", " \"countryCode\": \"LU\",\n", " \"country\": \"Luxembourg\",\n", " \"countryCodeISO3\": \"LUX\",\n", " \"freeformAddress\": \"Autoroute Aire de Berchem, L-3325 Berchem\",\n", " \"localName\": \"Berchem\"\n", " },\n", " \"position\": {\n", " \"lat\": 49.542044,\n", " \"lon\": 6.120253\n", " },\n", " \"viewport\": {\n", " \"topLeftPoint\": {\n", " \"lat\": 49.54294,\n", " \"lon\": 6.11887\n", " },\n", " \"btmRightPoint\": {\n", " \"lat\": 49.54114,\n", " \"lon\": 6.12164\n", " }\n", " },\n", " \"entryPoints\": [\n", " {\n", " \"type\": \"main\",\n", " \"position\": {\n", " \"lat\": 49.54164,\n", " \"lon\": 6.12071\n", " }\n", " },\n", " {\n", " \"type\": \"main\",\n", " \"position\": {\n", " \"lat\": 49.54192,\n", " \"lon\": 6.12051\n", " }\n", " }\n", " ],\n", " \"detourTime\": 556,\n", " \"detourDistance\": 3702\n", " },\n", " {\n", " \"type\": \"POI\",\n", " \"id\": \"fuGJqfUtpIURKkOLEygD7A\",\n", " \"score\": 2.9483151436,\n", " \"dist\": 10282.039842,\n", " \"query\": \"fastfood\",\n", " \"info\": \"search:ta:442009000132033-LU\",\n", " \"poi\": {\n", " \"name\": \"Eat N'Break\",\n", " \"phone\": \"+352 52 36 70\",\n", " \"categorySet\": [\n", " {\n", " \"id\": 7315015\n", " }\n", " ],\n", " \"categories\": [\n", " \"fast food\",\n", " \"restaurant\"\n", " ],\n", " \"classifications\": [\n", " {\n", " \"code\": \"RESTAURANT\",\n", " \"names\": [\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"restaurant\"\n", " },\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"fast food\"\n", " }\n", " ]\n", " }\n", " ]\n", " },\n", " \"address\": {\n", " \"streetName\": \"Autoroute Aire de Berchem\",\n", " \"municipalitySubdivision\": \"Berchem\",\n", " \"municipality\": \"Roeser\",\n", " \"countrySubdivision\": \"Esch-sur-Alzette\",\n", " \"countrySubdivisionName\": \"Esch-sur-Alzette\",\n", " \"countrySubdivisionCode\": \"ES\",\n", " \"postalCode\": \"L-3325\",\n", " \"countryCode\": \"LU\",\n", " \"country\": \"Luxembourg\",\n", " \"countryCodeISO3\": \"LUX\",\n", " \"freeformAddress\": \"Autoroute Aire de Berchem, L-3325 Berchem\",\n", " \"localName\": \"Berchem\"\n", " },\n", " \"position\": {\n", " \"lat\": 49.54221,\n", " \"lon\": 6.120355\n", " },\n", " \"viewport\": {\n", " \"topLeftPoint\": {\n", " \"lat\": 49.54311,\n", " \"lon\": 6.11897\n", " },\n", " \"btmRightPoint\": {\n", " \"lat\": 49.54131,\n", " \"lon\": 6.12174\n", " }\n", " },\n", " \"entryPoints\": [\n", " {\n", " \"type\": \"main\",\n", " \"position\": {\n", " \"lat\": 49.54201,\n", " \"lon\": 6.12105\n", " }\n", " }\n", " ],\n", " \"detourTime\": 556,\n", " \"detourDistance\": 3702\n", " },\n", " {\n", " \"type\": \"POI\",\n", " \"id\": \"FpU4iOH9RkRbB0nWvVhOOQ\",\n", " \"score\": 2.9915668964,\n", " \"dist\": 1619.117073,\n", " \"query\": \"fastfood\",\n", " \"info\": \"search:ta:442007000007351-LU\",\n", " \"poi\": {\n", " \"name\": \"Happy Quick\",\n", " \"phone\": \"+352 27 04 83 30\",\n", " \"brands\": [\n", " {\n", " \"name\": \"Quick\"\n", " }\n", " ],\n", " \"categorySet\": [\n", " {\n", " \"id\": 7315015\n", " }\n", " ],\n", " \"categories\": [\n", " \"fast food\",\n", " \"restaurant\"\n", " ],\n", " \"classifications\": [\n", " {\n", " \"code\": \"RESTAURANT\",\n", " \"names\": [\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"restaurant\"\n", " },\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"fast food\"\n", " }\n", " ]\n", " }\n", " ]\n", " },\n", " \"address\": {\n", " \"streetNumber\": \"15\",\n", " \"streetName\": \"Rue Edward Steichen\",\n", " \"municipality\": \"Luxembourg\",\n", " \"neighbourhood\": \"Neudorf\",\n", " \"countrySubdivision\": \"Luxembourg\",\n", " \"countrySubdivisionName\": \"Luxembourg\",\n", " \"countrySubdivisionCode\": \"LU\",\n", " \"postalCode\": \"L-2540\",\n", " \"countryCode\": \"LU\",\n", " \"country\": \"Luxembourg\",\n", " \"countryCodeISO3\": \"LUX\",\n", " \"freeformAddress\": \"15 Rue Edward Steichen, L-2540 Luxembourg\",\n", " \"localName\": \"Luxembourg\"\n", " },\n", " \"position\": {\n", " \"lat\": 49.631338,\n", " \"lon\": 6.173509\n", " },\n", " \"viewport\": {\n", " \"topLeftPoint\": {\n", " \"lat\": 49.63224,\n", " \"lon\": 6.17212\n", " },\n", " \"btmRightPoint\": {\n", " \"lat\": 49.63044,\n", " \"lon\": 6.1749\n", " }\n", " },\n", " \"entryPoints\": [\n", " {\n", " \"type\": \"main\",\n", " \"position\": {\n", " \"lat\": 49.63184,\n", " \"lon\": 6.17398\n", " }\n", " }\n", " ],\n", " \"detourTime\": 612,\n", " \"detourDistance\": 257\n", " }\n", " ]\n", "}\n", " \n", "Along the route to thionville, there is the O'Tacos at 5 Rue des Auriges, 57100 Thionville that would represent a detour of 1 minutes. \n", "Along the route to thionville, there is the KFC at 38 Route d'Esch-sur-Alzette, 57100 Thionville that would represent a detour of 1 minutes. \n", "Along the route to thionville, there is the Snack Les Frères at 9 Rue du Cygne, 57100 Thionville that would represent a detour of 3 minutes. \n", "Along the route to thionville, there is the La Broche Tournante at 37 Place Notre-Dame, 57100 Thionville that would represent a detour of 3 minutes. \n", "Along the route to thionville, there is the La Frite'Rit Belge at 1 Rue du Vieux Collège, 57100 Thionville that would represent a detour of 4 minutes. \n", "Along the route to thionville, there is the Burger Brothers at 4 Rue du Manège, 57100 Thionville that would represent a detour of 4 minutes. \n", "Along the route to thionville, there is the Njörd at 5 Rue Alphonse Weicker, L-2721 Luxembourg that would represent a detour of 5 minutes. \n", "Along the route to thionville, there is the OrientX at 5 Rue Alphonse Weicker, L-2721 Luxembourg that would represent a detour of 5 minutes. \n", "Along the route to thionville, there is the Boonchu at 5 Rue Alphonse Weicker, L-2721 Luxembourg (Rue Carlo Hemmer) that would represent a detour of 5 minutes. \n", "Along the route to thionville, there is the Bagelstein at 5 Rue Alphonse Weicker, L-2721 Luxembourg that would represent a detour of 5 minutes. \n", "Along the route to thionville, there is the Pokawa Luxembourg at 5 Rue Alphonse Weicker, L-2721 Luxembourg that would represent a detour of 5 minutes. \n", "Along the route to thionville, there is the My Kebab at 77 Boucle de la Milliaire, 57100 Thionville that would represent a detour of 6 minutes. \n", "Along the route to thionville, there is the Hakan at 15 Rue du Quartier, 57100 Thionville that would represent a detour of 6 minutes. \n", "Along the route to thionville, there is the McDonald's Thionville at 7 Rue des Auriges, 57100 Thionville that would represent a detour of 6 minutes. \n", "Along the route to thionville, there is the Waffle Factory at Rue du Maillet, 57100 Thionville that would represent a detour of 7 minutes. \n", "Along the route to thionville, there is the Shamiana at 3 Rue du Manège, 57100 Thionville that would represent a detour of 7 minutes. \n", "Along the route to thionville, there is the Bosphore at 10 Rue de Mersch, 57100 Thionville that would represent a detour of 8 minutes. \n", "Along the route to thionville, there is the McDonald's Aire de Berchem at Autoroute Aire de Berchem, L-3325 Berchem that would represent a detour of 9 minutes. \n", "Along the route to thionville, there is the Eat N'Break at Autoroute Aire de Berchem, L-3325 Berchem that would represent a detour of 9 minutes. \n", "Along the route to thionville, there is the Happy Quick at 15 Rue Edward Steichen, L-2540 Luxembourg that would represent a detour of 10 minutes.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Setting `pad_token_id` to `eos_token_id`:2 for open-end generation.\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "The La broche tournante La Brioche Doree is 1020 meters away. The La broche tournante Brioche Dorée is 3343 meters away. The La broche tournante Brioche Doree Luxembourg is 3350 meters away\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Setting `pad_token_id` to `eos_token_id`:2 for open-end generation.\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "La branche tournante\n", "'NoneType' object has no attribute 'latitude'\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Setting `pad_token_id` to `eos_token_id`:2 for open-end generation.\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "macdonalds in thionville\n", "'NoneType' object has no attribute 'latitude'\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Setting `pad_token_id` to `eos_token_id`:2 for open-end generation.\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "macdonalds in thionville\n", "'NoneType' object has no attribute 'latitude'\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Setting `pad_token_id` to `eos_token_id`:2 for open-end generation.\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "macdonalds in yutz\n", "'NoneType' object has no attribute 'latitude'\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Setting `pad_token_id` to `eos_token_id`:2 for open-end generation.\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "McDonald's in yutz\n", "'NoneType' object has no attribute 'latitude'\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Setting `pad_token_id` to `eos_token_id`:2 for open-end generation.\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "McDonald's in yutz\n", "'NoneType' object has no attribute 'latitude'\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Setting `pad_token_id` to `eos_token_id`:2 for open-end generation.\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "yutz\n", "The route to go to yutz is 47.93 km and 42 minutes. Leaving now, the arrival time is estimated at 08:41 \n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Setting `pad_token_id` to `eos_token_id`:2 for open-end generation.\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "The macdonald's McDonald's is 3155 meters away. The macdonald's McDonald's Luxembourg La Gare is 3264 meters away. The macdonald's McDonald's Bereldange is 3447 meters away. The macdonald's McDonald's is 5493 meters away. The macdonald's McDonald's Belle Étoile is 7880 meters away\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Setting `pad_token_id` to `eos_token_id`:2 for open-end generation.\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "49.3615058\n", "{\n", " \"summary\": {\n", " \"query\": \"macdonald\",\n", " \"queryType\": \"NON_NEAR\",\n", " \"queryTime\": 309,\n", " \"numResults\": 0,\n", " \"offset\": 0,\n", " \"totalResults\": 0,\n", " \"fuzzyLevel\": 1,\n", " \"geobiasCountry\": \"LU\"\n", " },\n", " \"results\": []\n", "}\n", "\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Setting `pad_token_id` to `eos_token_id`:2 for open-end generation.\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "49.5999681\n", "{\n", " \"summary\": {\n", " \"query\": \"macdonald\",\n", " \"queryType\": \"NON_NEAR\",\n", " \"queryTime\": 106,\n", " \"numResults\": 2,\n", " \"offset\": 0,\n", " \"totalResults\": 2,\n", " \"fuzzyLevel\": 1,\n", " \"geobiasCountry\": \"LU\"\n", " },\n", " \"results\": [\n", " {\n", " \"type\": \"POI\",\n", " \"id\": \"OyzvfR4Xc1-MXylBh6l2Gw\",\n", " \"score\": 2.5226404667,\n", " \"dist\": 3875.3497,\n", " \"query\": \"macdonald\",\n", " \"info\": \"search:ta:442007000006344-LU\",\n", " \"poi\": {\n", " \"name\": \"McDonald's\",\n", " \"brands\": [\n", " {\n", " \"name\": \"McDonald's\"\n", " }\n", " ],\n", " \"categorySet\": [\n", " {\n", " \"id\": 7315015\n", " }\n", " ],\n", " \"categories\": [\n", " \"fast food\",\n", " \"restaurant\"\n", " ],\n", " \"classifications\": [\n", " {\n", " \"code\": \"RESTAURANT\",\n", " \"names\": [\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"restaurant\"\n", " },\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"fast food\"\n", " }\n", " ]\n", " }\n", " ]\n", " },\n", " \"address\": {\n", " \"streetNumber\": \"1\",\n", " \"streetName\": \"Rue de Bonnevoie\",\n", " \"municipality\": \"Luxembourg\",\n", " \"neighbourhood\": \"Gare\",\n", " \"countrySubdivision\": \"Luxembourg\",\n", " \"countrySubdivisionName\": \"Luxembourg\",\n", " \"countrySubdivisionCode\": \"LU\",\n", " \"postalCode\": \"L-1260\",\n", " \"countryCode\": \"LU\",\n", " \"country\": \"Luxembourg\",\n", " \"countryCodeISO3\": \"LUX\",\n", " \"freeformAddress\": \"1 Rue de Bonnevoie, L-1260 Luxembourg\",\n", " \"localName\": \"Luxembourg\"\n", " },\n", " \"position\": {\n", " \"lat\": 49.603161,\n", " \"lon\": 6.133506\n", " },\n", " \"viewport\": {\n", " \"topLeftPoint\": {\n", " \"lat\": 49.60406,\n", " \"lon\": 6.13212\n", " },\n", " \"btmRightPoint\": {\n", " \"lat\": 49.60226,\n", " \"lon\": 6.13489\n", " }\n", " },\n", " \"entryPoints\": [\n", " {\n", " \"type\": \"main\",\n", " \"position\": {\n", " \"lat\": 49.60305,\n", " \"lon\": 6.13341\n", " }\n", " }\n", " ],\n", " \"detourTime\": 364,\n", " \"detourDistance\": 1190\n", " },\n", " {\n", " \"type\": \"POI\",\n", " \"id\": \"kSzWs0FFg0Xjuzl9zJ_lkQ\",\n", " \"score\": 2.5222420692,\n", " \"dist\": 3976.548071,\n", " \"query\": \"macdonald\",\n", " \"info\": \"search:ta:442009000328706-LU\",\n", " \"poi\": {\n", " \"name\": \"McDonald's Luxembourg La Gare\",\n", " \"phone\": \"+352 26 19 60 24\",\n", " \"brands\": [\n", " {\n", " \"name\": \"McDonald's\"\n", " }\n", " ],\n", " \"categorySet\": [\n", " {\n", " \"id\": 7315015\n", " }\n", " ],\n", " \"url\": \"mcd.lu\",\n", " \"categories\": [\n", " \"fast food\",\n", " \"restaurant\"\n", " ],\n", " \"classifications\": [\n", " {\n", " \"code\": \"RESTAURANT\",\n", " \"names\": [\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"restaurant\"\n", " },\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"fast food\"\n", " }\n", " ]\n", " }\n", " ]\n", " },\n", " \"address\": {\n", " \"streetNumber\": \"49\",\n", " \"streetName\": \"Avenue de la Gare\",\n", " \"municipality\": \"Luxembourg\",\n", " \"neighbourhood\": \"Gare\",\n", " \"countrySubdivision\": \"Luxembourg\",\n", " \"countrySubdivisionName\": \"Luxembourg\",\n", " \"countrySubdivisionCode\": \"LU\",\n", " \"postalCode\": \"L-1611\",\n", " \"countryCode\": \"LU\",\n", " \"country\": \"Luxembourg\",\n", " \"countryCodeISO3\": \"LUX\",\n", " \"freeformAddress\": \"49 Avenue de la Gare, L-1611 Luxembourg\",\n", " \"localName\": \"Luxembourg\"\n", " },\n", " \"position\": {\n", " \"lat\": 49.602052,\n", " \"lon\": 6.133262\n", " },\n", " \"viewport\": {\n", " \"topLeftPoint\": {\n", " \"lat\": 49.60295,\n", " \"lon\": 6.13187\n", " },\n", " \"btmRightPoint\": {\n", " \"lat\": 49.60115,\n", " \"lon\": 6.13465\n", " }\n", " },\n", " \"entryPoints\": [\n", " {\n", " \"type\": \"main\",\n", " \"position\": {\n", " \"lat\": 49.60205,\n", " \"lon\": 6.13312\n", " }\n", " }\n", " ],\n", " \"detourTime\": 494,\n", " \"detourDistance\": 1531\n", " }\n", " ]\n", "}\n", " \n", "Along the route to luxembourg gare, there is the McDonald's at 1 Rue de Bonnevoie, L-1260 Luxembourg that would represent a detour of 6 minutes. \n", "Along the route to luxembourg gare, there is the McDonald's Luxembourg La Gare at 49 Avenue de la Gare, L-1611 Luxembourg that would represent a detour of 8 minutes.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Setting `pad_token_id` to `eos_token_id`:2 for open-end generation.\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "McDonald's\n", "The route to go to McDonald's is 595.53 km and 5 hours and 24 minutes. Leaving now, the arrival time is estimated at 13:24 \n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Setting `pad_token_id` to `eos_token_id`:2 for open-end generation.\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "49.5961082\n", "{\n", " \"summary\": {\n", " \"query\": \"restaurant\",\n", " \"queryType\": \"NON_NEAR\",\n", " \"queryTime\": 325,\n", " \"numResults\": 20,\n", " \"offset\": 0,\n", " \"totalResults\": 20,\n", " \"fuzzyLevel\": 1,\n", " \"geobiasCountry\": \"LU\"\n", " },\n", " \"results\": [\n", " {\n", " \"type\": \"POI\",\n", " \"id\": \"RdKRrs19psk-CwmVUIQhQg\",\n", " \"score\": 2.997658968,\n", " \"dist\": 174.634461,\n", " \"query\": \"restaurant\",\n", " \"info\": \"search:ta:442009000480886-LU\",\n", " \"poi\": {\n", " \"name\": \"Eischen Paul Restaurant-Traiteur\",\n", " \"phone\": \"+352 26 43 13 64\",\n", " \"categorySet\": [\n", " {\n", " \"id\": 7315\n", " }\n", " ],\n", " \"categories\": [\n", " \"restaurant\"\n", " ],\n", " \"classifications\": [\n", " {\n", " \"code\": \"RESTAURANT\",\n", " \"names\": [\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"restaurant\"\n", " }\n", " ]\n", " }\n", " ]\n", " },\n", " \"address\": {\n", " \"streetNumber\": \"45\",\n", " \"streetName\": \"Avenue John Fitzgerald Kennedy\",\n", " \"municipality\": \"L\\u00ebtzebuerg\",\n", " \"neighbourhood\": \"Kiirchbierg\",\n", " \"countrySubdivision\": \"L\\u00ebtzebuerg\",\n", " \"countrySubdivisionName\": \"L\\u00ebtzebuerg\",\n", " \"countrySubdivisionCode\": \"LU\",\n", " \"postalCode\": \"L-1855\",\n", " \"countryCode\": \"LU\",\n", " \"country\": \"L\\u00ebtzebuerg\",\n", " \"countryCodeISO3\": \"LUX\",\n", " \"freeformAddress\": \"45 Avenue John Fitzgerald Kennedy, L-1855 L\\u00ebtzebuerg\",\n", " \"localName\": \"L\\u00ebtzebuerg\"\n", " },\n", " \"position\": {\n", " \"lat\": 49.6248,\n", " \"lon\": 6.1588\n", " },\n", " \"viewport\": {\n", " \"topLeftPoint\": {\n", " \"lat\": 49.6257,\n", " \"lon\": 6.15741\n", " },\n", " \"btmRightPoint\": {\n", " \"lat\": 49.6239,\n", " \"lon\": 6.16019\n", " }\n", " },\n", " \"entryPoints\": [\n", " {\n", " \"type\": \"main\",\n", " \"position\": {\n", " \"lat\": 49.62473,\n", " \"lon\": 6.15889\n", " }\n", " }\n", " ],\n", " \"detourTime\": 0,\n", " \"detourDistance\": 0\n", " },\n", " {\n", " \"type\": \"POI\",\n", " \"id\": \"ujXkPgiRLdbLGrrWZ3Qu2A\",\n", " \"score\": 2.9899127483,\n", " \"dist\": 1999.969177,\n", " \"query\": \"restaurant\",\n", " \"info\": \"search:ta:442007000008157-LU\",\n", " \"poi\": {\n", " \"name\": \"Lounge Act One\",\n", " \"phone\": \"+352 27 77 02 27\",\n", " \"categorySet\": [\n", " {\n", " \"id\": 7315017\n", " }\n", " ],\n", " \"url\": \"www.loungeactone.lu/\",\n", " \"categories\": [\n", " \"french\",\n", " \"restaurant\"\n", " ],\n", " \"classifications\": [\n", " {\n", " \"code\": \"RESTAURANT\",\n", " \"names\": [\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"french\"\n", " },\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"restaurant\"\n", " }\n", " ]\n", " }\n", " ]\n", " },\n", " \"address\": {\n", " \"streetNumber\": \"7\",\n", " \"streetName\": \"Avenue John Fitzgerald Kennedy\",\n", " \"municipality\": \"Luxembourg\",\n", " \"neighbourhood\": \"Kirchberg\",\n", " \"countrySubdivision\": \"Luxembourg\",\n", " \"countrySubdivisionName\": \"Luxembourg\",\n", " \"countrySubdivisionCode\": \"LU\",\n", " \"postalCode\": \"L-1855\",\n", " \"countryCode\": \"LU\",\n", " \"country\": \"Luxembourg\",\n", " \"countryCodeISO3\": \"LUX\",\n", " \"freeformAddress\": \"7 Avenue John Fitzgerald Kennedy, L-1855 Luxembourg (N51)\",\n", " \"localName\": \"Luxembourg\"\n", " },\n", " \"position\": {\n", " \"lat\": 49.619627,\n", " \"lon\": 6.143154\n", " },\n", " \"viewport\": {\n", " \"topLeftPoint\": {\n", " \"lat\": 49.62053,\n", " \"lon\": 6.14177\n", " },\n", " \"btmRightPoint\": {\n", " \"lat\": 49.61873,\n", " \"lon\": 6.14454\n", " }\n", " },\n", " \"entryPoints\": [\n", " {\n", " \"type\": \"main\",\n", " \"position\": {\n", " \"lat\": 49.61954,\n", " \"lon\": 6.1432\n", " }\n", " }\n", " ],\n", " \"detourTime\": 100,\n", " \"detourDistance\": 734\n", " },\n", " {\n", " \"type\": \"POI\",\n", " \"id\": \"45w-Gg-Mi5p1U63jTDSVyQ\",\n", " \"score\": 2.9914143085,\n", " \"dist\": 1654.4196,\n", " \"query\": \"restaurant\",\n", " \"info\": \"search:ta:442007000008307-LU\",\n", " \"poi\": {\n", " \"name\": \"Ela Greek Cuisine\",\n", " \"phone\": \"+352 26 68 46 83\",\n", " \"categorySet\": [\n", " {\n", " \"id\": 7315019\n", " }\n", " ],\n", " \"categories\": [\n", " \"greek\",\n", " \"restaurant\"\n", " ],\n", " \"classifications\": [\n", " {\n", " \"code\": \"RESTAURANT\",\n", " \"names\": [\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"restaurant\"\n", " },\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"greek\"\n", " }\n", " ]\n", " }\n", " ]\n", " },\n", " \"address\": {\n", " \"streetNumber\": \"37\",\n", " \"streetName\": \"Avenue John Fitzgerald Kennedy\",\n", " \"municipality\": \"Luxembourg\",\n", " \"neighbourhood\": \"Kirchberg\",\n", " \"countrySubdivision\": \"Luxembourg\",\n", " \"countrySubdivisionName\": \"Luxembourg\",\n", " \"countrySubdivisionCode\": \"LU\",\n", " \"postalCode\": \"L-1855\",\n", " \"countryCode\": \"LU\",\n", " \"country\": \"Luxembourg\",\n", " \"countryCodeISO3\": \"LUX\",\n", " \"freeformAddress\": \"37 Avenue John Fitzgerald Kennedy, L-1855 Luxembourg\",\n", " \"localName\": \"Luxembourg\"\n", " },\n", " \"position\": {\n", " \"lat\": 49.620217,\n", " \"lon\": 6.146253\n", " },\n", " \"viewport\": {\n", " \"topLeftPoint\": {\n", " \"lat\": 49.62112,\n", " \"lon\": 6.14486\n", " },\n", " \"btmRightPoint\": {\n", " \"lat\": 49.61932,\n", " \"lon\": 6.14764\n", " }\n", " },\n", " \"entryPoints\": [\n", " {\n", " \"type\": \"main\",\n", " \"position\": {\n", " \"lat\": 49.62013,\n", " \"lon\": 6.14629\n", " }\n", " }\n", " ],\n", " \"detourTime\": 102,\n", " \"detourDistance\": 778\n", " },\n", " {\n", " \"type\": \"POI\",\n", " \"id\": \"Bc14n1jW0t2bWC628kYRHQ\",\n", " \"score\": 2.9899840355,\n", " \"dist\": 1983.681225,\n", " \"query\": \"restaurant\",\n", " \"info\": \"search:ta:442001000002822-LU\",\n", " \"poi\": {\n", " \"name\": \"Bick Stuff\",\n", " \"phone\": \"+352 26 09 47 31\",\n", " \"categorySet\": [\n", " {\n", " \"id\": 7315017\n", " }\n", " ],\n", " \"url\": \"bickstuff.lu/restaurant-bick-stuff.html\",\n", " \"categories\": [\n", " \"french\",\n", " \"restaurant\"\n", " ],\n", " \"classifications\": [\n", " {\n", " \"code\": \"RESTAURANT\",\n", " \"names\": [\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"french\"\n", " },\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"restaurant\"\n", " }\n", " ]\n", " }\n", " ]\n", " },\n", " \"address\": {\n", " \"streetNumber\": \"95\",\n", " \"streetName\": \"Rue de Clausen\",\n", " \"municipality\": \"Luxembourg\",\n", " \"neighbourhood\": \"Clausen\",\n", " \"countrySubdivision\": \"Luxembourg\",\n", " \"countrySubdivisionName\": \"Luxembourg\",\n", " \"countrySubdivisionCode\": \"LU\",\n", " \"postalCode\": \"L-1342\",\n", " \"countryCode\": \"LU\",\n", " \"country\": \"Luxembourg\",\n", " \"countryCodeISO3\": \"LUX\",\n", " \"freeformAddress\": \"95 Rue de Clausen, L-1342 Luxembourg\",\n", " \"localName\": \"Luxembourg\"\n", " },\n", " \"position\": {\n", " \"lat\": 49.614793,\n", " \"lon\": 6.14597\n", " },\n", " \"viewport\": {\n", " \"topLeftPoint\": {\n", " \"lat\": 49.61569,\n", " \"lon\": 6.14458\n", " },\n", " \"btmRightPoint\": {\n", " \"lat\": 49.61389,\n", " \"lon\": 6.14736\n", " }\n", " },\n", " \"entryPoints\": [\n", " {\n", " \"type\": \"main\",\n", " \"position\": {\n", " \"lat\": 49.61485,\n", " \"lon\": 6.14586\n", " }\n", " }\n", " ],\n", " \"detourTime\": 222,\n", " \"detourDistance\": 1329\n", " },\n", " {\n", " \"type\": \"POI\",\n", " \"id\": \"KfRLYtAsq5X57cd2Qh2MWQ\",\n", " \"score\": 2.9891924858,\n", " \"dist\": 2164.386187,\n", " \"query\": \"restaurant\",\n", " \"info\": \"search:ta:442009000129532-LU\",\n", " \"poi\": {\n", " \"name\": \"Tempo Restaurant\",\n", " \"phone\": \"+352 27 99 06 66\",\n", " \"categorySet\": [\n", " {\n", " \"id\": 7315017\n", " }\n", " ],\n", " \"url\": \"www.tempo-restaurant.lu\",\n", " \"categories\": [\n", " \"french\",\n", " \"restaurant\"\n", " ],\n", " \"classifications\": [\n", " {\n", " \"code\": \"RESTAURANT\",\n", " \"names\": [\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"french\"\n", " },\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"restaurant\"\n", " }\n", " ]\n", " }\n", " ]\n", " },\n", " \"address\": {\n", " \"streetNumber\": \"1\",\n", " \"streetName\": \"Place de l'Europe\",\n", " \"municipality\": \"Luxembourg\",\n", " \"neighbourhood\": \"Kirchberg\",\n", " \"countrySubdivision\": \"Luxembourg\",\n", " \"countrySubdivisionName\": \"Luxembourg\",\n", " \"countrySubdivisionCode\": \"LU\",\n", " \"postalCode\": \"L-1490\",\n", " \"countryCode\": \"LU\",\n", " \"country\": \"Luxembourg\",\n", " \"countryCodeISO3\": \"LUX\",\n", " \"freeformAddress\": \"1 Place de l'Europe, L-1490 Luxembourg\",\n", " \"localName\": \"Luxembourg\"\n", " },\n", " \"position\": {\n", " \"lat\": 49.617973,\n", " \"lon\": 6.142219\n", " },\n", " \"viewport\": {\n", " \"topLeftPoint\": {\n", " \"lat\": 49.61887,\n", " \"lon\": 6.14083\n", " },\n", " \"btmRightPoint\": {\n", " \"lat\": 49.61707,\n", " \"lon\": 6.14361\n", " }\n", " },\n", " \"entryPoints\": [\n", " {\n", " \"type\": \"main\",\n", " \"position\": {\n", " \"lat\": 49.61785,\n", " \"lon\": 6.1419\n", " }\n", " }\n", " ],\n", " \"detourTime\": 231,\n", " \"detourDistance\": 865\n", " },\n", " {\n", " \"type\": \"POI\",\n", " \"id\": \"tCJiZbyNGTH5yEDT35IWSQ\",\n", " \"score\": 2.989374876,\n", " \"dist\": 2122.818203,\n", " \"query\": \"restaurant\",\n", " \"info\": \"search:ta:442009000480110-LU\",\n", " \"poi\": {\n", " \"name\": \"Chez Bacano\",\n", " \"phone\": \"+352 43 18 40\",\n", " \"categorySet\": [\n", " {\n", " \"id\": 7315043\n", " }\n", " ],\n", " \"url\": \"www.bacano.lu\",\n", " \"categories\": [\n", " \"restaurant\",\n", " \"seafood\"\n", " ],\n", " \"classifications\": [\n", " {\n", " \"code\": \"RESTAURANT\",\n", " \"names\": [\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"seafood\"\n", " },\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"restaurant\"\n", " }\n", " ]\n", " }\n", " ]\n", " },\n", " \"address\": {\n", " \"streetNumber\": \"59\",\n", " \"streetName\": \"Rue de Clausen\",\n", " \"municipality\": \"Luxembourg\",\n", " \"neighbourhood\": \"Clausen\",\n", " \"countrySubdivision\": \"Luxembourg\",\n", " \"countrySubdivisionName\": \"Luxembourg\",\n", " \"countrySubdivisionCode\": \"LU\",\n", " \"postalCode\": \"L-1342\",\n", " \"countryCode\": \"LU\",\n", " \"country\": \"Luxembourg\",\n", " \"countryCodeISO3\": \"LUX\",\n", " \"freeformAddress\": \"59 Rue de Clausen, L-1342 Luxembourg\",\n", " \"localName\": \"Luxembourg\"\n", " },\n", " \"position\": {\n", " \"lat\": 49.614191,\n", " \"lon\": 6.144856\n", " },\n", " \"viewport\": {\n", " \"topLeftPoint\": {\n", " \"lat\": 49.61509,\n", " \"lon\": 6.14347\n", " },\n", " \"btmRightPoint\": {\n", " \"lat\": 49.61329,\n", " \"lon\": 6.14624\n", " }\n", " },\n", " \"entryPoints\": [\n", " {\n", " \"type\": \"main\",\n", " \"position\": {\n", " \"lat\": 49.61415,\n", " \"lon\": 6.14498\n", " }\n", " }\n", " ],\n", " \"detourTime\": 234,\n", " \"detourDistance\": 1329\n", " },\n", " {\n", " \"type\": \"POI\",\n", " \"id\": \"er7ACjGdfYqu91ostgh11w\",\n", " \"score\": 2.989430666,\n", " \"dist\": 2110.075884,\n", " \"query\": \"restaurant\",\n", " \"info\": \"search:ta:442009000020933-LU\",\n", " \"poi\": {\n", " \"name\": \"Popkorn\",\n", " \"phone\": \"+352 26 43 21 89\",\n", " \"categorySet\": [\n", " {\n", " \"id\": 7315017\n", " }\n", " ],\n", " \"categories\": [\n", " \"french\",\n", " \"restaurant\"\n", " ],\n", " \"classifications\": [\n", " {\n", " \"code\": \"RESTAURANT\",\n", " \"names\": [\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"french\"\n", " },\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"restaurant\"\n", " }\n", " ]\n", " }\n", " ]\n", " },\n", " \"address\": {\n", " \"streetNumber\": \"61\",\n", " \"streetName\": \"Rue de Clausen\",\n", " \"municipality\": \"Luxembourg\",\n", " \"neighbourhood\": \"Clausen\",\n", " \"countrySubdivision\": \"Luxembourg\",\n", " \"countrySubdivisionName\": \"Luxembourg\",\n", " \"countrySubdivisionCode\": \"LU\",\n", " \"postalCode\": \"L-1342\",\n", " \"countryCode\": \"LU\",\n", " \"country\": \"Luxembourg\",\n", " \"countryCodeISO3\": \"LUX\",\n", " \"freeformAddress\": \"61 Rue de Clausen, L-1342 Luxembourg\",\n", " \"localName\": \"Luxembourg\"\n", " },\n", " \"position\": {\n", " \"lat\": 49.6143,\n", " \"lon\": 6.144917\n", " },\n", " \"viewport\": {\n", " \"topLeftPoint\": {\n", " \"lat\": 49.6152,\n", " \"lon\": 6.14353\n", " },\n", " \"btmRightPoint\": {\n", " \"lat\": 49.6134,\n", " \"lon\": 6.1463\n", " }\n", " },\n", " \"entryPoints\": [\n", " {\n", " \"type\": \"main\",\n", " \"position\": {\n", " \"lat\": 49.61424,\n", " \"lon\": 6.14506\n", " }\n", " }\n", " ],\n", " \"detourTime\": 234,\n", " \"detourDistance\": 1329\n", " },\n", " {\n", " \"type\": \"POI\",\n", " \"id\": \"opdjMxI2r8U7Kmo_qZnIxA\",\n", " \"score\": 2.9894311428,\n", " \"dist\": 2109.990314,\n", " \"query\": \"restaurant\",\n", " \"info\": \"search:ta:442007000006384-LU\",\n", " \"poi\": {\n", " \"name\": \"Best Grill\",\n", " \"phone\": \"+352 27 84 83 86\",\n", " \"categorySet\": [\n", " {\n", " \"id\": 7315020\n", " }\n", " ],\n", " \"categories\": [\n", " \"grill\",\n", " \"restaurant\"\n", " ],\n", " \"classifications\": [\n", " {\n", " \"code\": \"RESTAURANT\",\n", " \"names\": [\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"restaurant\"\n", " },\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"grill\"\n", " }\n", " ]\n", " }\n", " ]\n", " },\n", " \"address\": {\n", " \"streetNumber\": \"63\",\n", " \"streetName\": \"Rue de Clausen\",\n", " \"municipality\": \"Luxembourg\",\n", " \"neighbourhood\": \"Clausen\",\n", " \"countrySubdivision\": \"Luxembourg\",\n", " \"countrySubdivisionName\": \"Luxembourg\",\n", " \"countrySubdivisionCode\": \"LU\",\n", " \"postalCode\": \"L-1342\",\n", " \"countryCode\": \"LU\",\n", " \"country\": \"Luxembourg\",\n", " \"countryCodeISO3\": \"LUX\",\n", " \"freeformAddress\": \"63 Rue de Clausen, L-1342 Luxembourg\",\n", " \"localName\": \"Luxembourg\"\n", " },\n", " \"position\": {\n", " \"lat\": 49.614469,\n", " \"lon\": 6.144793\n", " },\n", " \"viewport\": {\n", " \"topLeftPoint\": {\n", " \"lat\": 49.61537,\n", " \"lon\": 6.14341\n", " },\n", " \"btmRightPoint\": {\n", " \"lat\": 49.61357,\n", " \"lon\": 6.14618\n", " }\n", " },\n", " \"entryPoints\": [\n", " {\n", " \"type\": \"main\",\n", " \"position\": {\n", " \"lat\": 49.61464,\n", " \"lon\": 6.14547\n", " }\n", " }\n", " ],\n", " \"detourTime\": 234,\n", " \"detourDistance\": 1329\n", " },\n", " {\n", " \"type\": \"POI\",\n", " \"id\": \"9HF2LAt_iB1EcBxdRNqXlw\",\n", " \"score\": 2.9893784523,\n", " \"dist\": 2122.024195,\n", " \"query\": \"restaurant\",\n", " \"info\": \"search:ta:442009000486119-LU\",\n", " \"poi\": {\n", " \"name\": \"Cl\\u00e9 de Sol A La Philharmonie\",\n", " \"phone\": \"+352 26 68 73 94\",\n", " \"categorySet\": [\n", " {\n", " \"id\": 7315017\n", " }\n", " ],\n", " \"categories\": [\n", " \"french\",\n", " \"restaurant\"\n", " ],\n", " \"classifications\": [\n", " {\n", " \"code\": \"RESTAURANT\",\n", " \"names\": [\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"french\"\n", " },\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"restaurant\"\n", " }\n", " ]\n", " }\n", " ]\n", " },\n", " \"address\": {\n", " \"streetNumber\": \"1\",\n", " \"streetName\": \"Place de l'Europe\",\n", " \"municipality\": \"Luxembourg\",\n", " \"neighbourhood\": \"Kirchberg\",\n", " \"countrySubdivision\": \"Luxembourg\",\n", " \"countrySubdivisionName\": \"Luxembourg\",\n", " \"countrySubdivisionCode\": \"LU\",\n", " \"postalCode\": \"L-1499\",\n", " \"countryCode\": \"LU\",\n", " \"country\": \"Luxembourg\",\n", " \"countryCodeISO3\": \"LUX\",\n", " \"freeformAddress\": \"1 Place de l'Europe, L-1499 Luxembourg\",\n", " \"localName\": \"Luxembourg\"\n", " },\n", " \"position\": {\n", " \"lat\": 49.618249,\n", " \"lon\": 6.142515\n", " },\n", " \"viewport\": {\n", " \"topLeftPoint\": {\n", " \"lat\": 49.61944,\n", " \"lon\": 6.14067\n", " },\n", " \"btmRightPoint\": {\n", " \"lat\": 49.61706,\n", " \"lon\": 6.14436\n", " }\n", " },\n", " \"entryPoints\": [\n", " {\n", " \"type\": \"main\",\n", " \"position\": {\n", " \"lat\": 49.61783,\n", " \"lon\": 6.14424\n", " }\n", " }\n", " ],\n", " \"detourTime\": 236,\n", " \"detourDistance\": 915\n", " },\n", " {\n", " \"type\": \"POI\",\n", " \"id\": \"l9VDu4CmJSfuyJ2GmIb4sQ\",\n", " \"score\": 2.9889614582,\n", " \"dist\": 2216.930122,\n", " \"query\": \"restaurant\",\n", " \"info\": \"search:ta:442009000002437-LU\",\n", " \"poi\": {\n", " \"name\": \"Restaurant La Table du Belv\\u00e9d\\u00e8re\",\n", " \"phone\": \"+352 26 10 92 00\",\n", " \"categorySet\": [\n", " {\n", " \"id\": 7315017\n", " }\n", " ],\n", " \"categories\": [\n", " \"french\",\n", " \"restaurant\"\n", " ],\n", " \"classifications\": [\n", " {\n", " \"code\": \"RESTAURANT\",\n", " \"names\": [\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"french\"\n", " },\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"restaurant\"\n", " }\n", " ]\n", " }\n", " ]\n", " },\n", " \"address\": {\n", " \"streetNumber\": \"4\",\n", " \"streetName\": \"Place de l'Europe\",\n", " \"municipality\": \"Luxembourg\",\n", " \"neighbourhood\": \"Kirchberg\",\n", " \"countrySubdivision\": \"Luxembourg\",\n", " \"countrySubdivisionName\": \"Luxembourg\",\n", " \"countrySubdivisionCode\": \"LU\",\n", " \"postalCode\": \"L-1499\",\n", " \"countryCode\": \"LU\",\n", " \"country\": \"Luxembourg\",\n", " \"countryCodeISO3\": \"LUX\",\n", " \"freeformAddress\": \"4 Place de l'Europe, L-1499 Luxembourg\",\n", " \"localName\": \"Luxembourg\"\n", " },\n", " \"position\": {\n", " \"lat\": 49.61814,\n", " \"lon\": 6.141636\n", " },\n", " \"viewport\": {\n", " \"topLeftPoint\": {\n", " \"lat\": 49.61904,\n", " \"lon\": 6.14025\n", " },\n", " \"btmRightPoint\": {\n", " \"lat\": 49.61724,\n", " \"lon\": 6.14302\n", " }\n", " },\n", " \"entryPoints\": [\n", " {\n", " \"type\": \"main\",\n", " \"position\": {\n", " \"lat\": 49.61819,\n", " \"lon\": 6.14176\n", " }\n", " }\n", " ],\n", " \"detourTime\": 237,\n", " \"detourDistance\": 923\n", " },\n", " {\n", " \"type\": \"POI\",\n", " \"id\": \"EHur86oZba544sMdSAwumg\",\n", " \"score\": 2.9943678379,\n", " \"dist\": 963.334401,\n", " \"query\": \"restaurant\",\n", " \"info\": \"search:ta:442009000467377-LU\",\n", " \"poi\": {\n", " \"name\": \"D'Coque\",\n", " \"phone\": \"+352 43 60 60\",\n", " \"categorySet\": [\n", " {\n", " \"id\": 7315\n", " }\n", " ],\n", " \"categories\": [\n", " \"restaurant\"\n", " ],\n", " \"classifications\": [\n", " {\n", " \"code\": \"RESTAURANT\",\n", " \"names\": [\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"restaurant\"\n", " }\n", " ]\n", " }\n", " ]\n", " },\n", " \"address\": {\n", " \"streetNumber\": \"2\",\n", " \"streetName\": \"Rue L\\u00e9on Hengen\",\n", " \"municipality\": \"Luxembourg\",\n", " \"neighbourhood\": \"Kirchberg\",\n", " \"countrySubdivision\": \"Luxembourg\",\n", " \"countrySubdivisionName\": \"Luxembourg\",\n", " \"countrySubdivisionCode\": \"LU\",\n", " \"postalCode\": \"L-1745\",\n", " \"countryCode\": \"LU\",\n", " \"country\": \"Luxembourg\",\n", " \"countryCodeISO3\": \"LUX\",\n", " \"freeformAddress\": \"2 Rue L\\u00e9on Hengen, L-1745 Luxembourg\",\n", " \"localName\": \"Luxembourg\"\n", " },\n", " \"position\": {\n", " \"lat\": 49.62378,\n", " \"lon\": 6.151634\n", " },\n", " \"viewport\": {\n", " \"topLeftPoint\": {\n", " \"lat\": 49.62584,\n", " \"lon\": 6.14845\n", " },\n", " \"btmRightPoint\": {\n", " \"lat\": 49.62172,\n", " \"lon\": 6.15481\n", " }\n", " },\n", " \"entryPoints\": [\n", " {\n", " \"type\": \"main\",\n", " \"position\": {\n", " \"lat\": 49.62272,\n", " \"lon\": 6.15436\n", " }\n", " }\n", " ],\n", " \"detourTime\": 283,\n", " \"detourDistance\": 1181\n", " },\n", " {\n", " \"type\": \"POI\",\n", " \"id\": \"NyiYK4KDPzdqBRSWyY_RDw\",\n", " \"score\": 2.9905664921,\n", " \"dist\": 1850.008037,\n", " \"query\": \"restaurant\",\n", " \"info\": \"search:ta:442007000006775-LU\",\n", " \"poi\": {\n", " \"name\": \"Sixtyfour\\u00b0 Bar\",\n", " \"categorySet\": [\n", " {\n", " \"id\": 7315076\n", " }\n", " ],\n", " \"url\": \"sixtyfour.lu\",\n", " \"categories\": [\n", " \"restaurant\",\n", " \"tapas\"\n", " ],\n", " \"classifications\": [\n", " {\n", " \"code\": \"RESTAURANT\",\n", " \"names\": [\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"tapas\"\n", " },\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"restaurant\"\n", " }\n", " ]\n", " }\n", " ]\n", " },\n", " \"address\": {\n", " \"streetNumber\": \"4\",\n", " \"streetName\": \"Rue du Fort Niedergr\\u00fcnewald\",\n", " \"municipality\": \"Luxembourg\",\n", " \"neighbourhood\": \"Kirchberg\",\n", " \"countrySubdivision\": \"Luxembourg\",\n", " \"countrySubdivisionName\": \"Luxembourg\",\n", " \"countrySubdivisionCode\": \"LU\",\n", " \"postalCode\": \"L-2226\",\n", " \"countryCode\": \"LU\",\n", " \"country\": \"Luxembourg\",\n", " \"countryCodeISO3\": \"LUX\",\n", " \"freeformAddress\": \"4 Rue du Fort Niedergr\\u00fcnewald, L-2226 Luxembourg\",\n", " \"localName\": \"Luxembourg\"\n", " },\n", " \"position\": {\n", " \"lat\": 49.620495,\n", " \"lon\": 6.144281\n", " },\n", " \"viewport\": {\n", " \"topLeftPoint\": {\n", " \"lat\": 49.62139,\n", " \"lon\": 6.14289\n", " },\n", " \"btmRightPoint\": {\n", " \"lat\": 49.6196,\n", " \"lon\": 6.14567\n", " }\n", " },\n", " \"entryPoints\": [\n", " {\n", " \"type\": \"main\",\n", " \"position\": {\n", " \"lat\": 49.62025,\n", " \"lon\": 6.14408\n", " }\n", " }\n", " ],\n", " \"detourTime\": 298,\n", " \"detourDistance\": 930\n", " },\n", " {\n", " \"type\": \"POI\",\n", " \"id\": \"O9hayDmQaSV3_yG7sbsKEg\",\n", " \"score\": 2.9905776978,\n", " \"dist\": 1847.425989,\n", " \"query\": \"restaurant\",\n", " \"info\": \"search:ta:442007000006920-LU\",\n", " \"poi\": {\n", " \"name\": \"Radici\",\n", " \"categorySet\": [\n", " {\n", " \"id\": 7315\n", " }\n", " ],\n", " \"url\": \"radici.lu\",\n", " \"categories\": [\n", " \"restaurant\"\n", " ],\n", " \"classifications\": [\n", " {\n", " \"code\": \"RESTAURANT\",\n", " \"names\": [\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"restaurant\"\n", " }\n", " ]\n", " }\n", " ]\n", " },\n", " \"address\": {\n", " \"streetNumber\": \"6\",\n", " \"streetName\": \"Rue du Fort Niedergr\\u00fcnewald\",\n", " \"municipality\": \"Luxembourg\",\n", " \"neighbourhood\": \"Kirchberg\",\n", " \"countrySubdivision\": \"Luxembourg\",\n", " \"countrySubdivisionName\": \"Luxembourg\",\n", " \"countrySubdivisionCode\": \"LU\",\n", " \"postalCode\": \"L-2226\",\n", " \"countryCode\": \"LU\",\n", " \"country\": \"Luxembourg\",\n", " \"countryCodeISO3\": \"LUX\",\n", " \"freeformAddress\": \"6 Rue du Fort Niedergr\\u00fcnewald, L-2226 Luxembourg (Rue Johannes Kepler)\",\n", " \"localName\": \"Luxembourg\"\n", " },\n", " \"position\": {\n", " \"lat\": 49.620548,\n", " \"lon\": 6.144288\n", " },\n", " \"viewport\": {\n", " \"topLeftPoint\": {\n", " \"lat\": 49.62145,\n", " \"lon\": 6.1429\n", " },\n", " \"btmRightPoint\": {\n", " \"lat\": 49.61965,\n", " \"lon\": 6.14568\n", " }\n", " },\n", " \"entryPoints\": [\n", " {\n", " \"type\": \"main\",\n", " \"position\": {\n", " \"lat\": 49.62026,\n", " \"lon\": 6.14406\n", " }\n", " }\n", " ],\n", " \"detourTime\": 313,\n", " \"detourDistance\": 1069\n", " },\n", " {\n", " \"type\": \"POI\",\n", " \"id\": \"kjG5XshDoYxwO7bXw3u45w\",\n", " \"score\": 2.9896290302,\n", " \"dist\": 2064.862201,\n", " \"query\": \"restaurant\",\n", " \"info\": \"search:ta:442007000002087-LU\",\n", " \"poi\": {\n", " \"name\": \"L'Osteria Luxembourg\",\n", " \"categorySet\": [\n", " {\n", " \"id\": 7315036\n", " }\n", " ],\n", " \"url\": \"www.losteria.net\",\n", " \"categories\": [\n", " \"pizza\",\n", " \"restaurant\"\n", " ],\n", " \"classifications\": [\n", " {\n", " \"code\": \"RESTAURANT\",\n", " \"names\": [\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"pizza\"\n", " },\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"restaurant\"\n", " }\n", " ]\n", " }\n", " ]\n", " },\n", " \"address\": {\n", " \"streetNumber\": \"7\",\n", " \"streetName\": \"Avenue John Fitzgerald Kennedy\",\n", " \"municipality\": \"Luxembourg\",\n", " \"neighbourhood\": \"Kirchberg\",\n", " \"countrySubdivision\": \"Luxembourg\",\n", " \"countrySubdivisionName\": \"Luxembourg\",\n", " \"countrySubdivisionCode\": \"LU\",\n", " \"postalCode\": \"L-1855\",\n", " \"countryCode\": \"LU\",\n", " \"country\": \"Luxembourg\",\n", " \"countryCodeISO3\": \"LUX\",\n", " \"freeformAddress\": \"7 Avenue John Fitzgerald Kennedy, L-1855 Luxembourg\",\n", " \"localName\": \"Luxembourg\"\n", " },\n", " \"position\": {\n", " \"lat\": 49.620088,\n", " \"lon\": 6.142382\n", " },\n", " \"viewport\": {\n", " \"topLeftPoint\": {\n", " \"lat\": 49.62099,\n", " \"lon\": 6.14099\n", " },\n", " \"btmRightPoint\": {\n", " \"lat\": 49.61919,\n", " \"lon\": 6.14377\n", " }\n", " },\n", " \"entryPoints\": [\n", " {\n", " \"type\": \"main\",\n", " \"position\": {\n", " \"lat\": 49.62013,\n", " \"lon\": 6.1425\n", " }\n", " }\n", " ],\n", " \"detourTime\": 349,\n", " \"detourDistance\": 876\n", " },\n", " {\n", " \"type\": \"POI\",\n", " \"id\": \"PKlheqd5C5r9GLc4o8-JIQ\",\n", " \"score\": 2.9894006252,\n", " \"dist\": 2116.991012,\n", " \"query\": \"restaurant\",\n", " \"info\": \"search:ta:442007000008182-LU\",\n", " \"poi\": {\n", " \"name\": \"C\\u00f4t\\u00e9 Sushi Infinity\",\n", " \"categorySet\": [\n", " {\n", " \"id\": 7315148\n", " }\n", " ],\n", " \"url\": \"cotesushi.com\",\n", " \"categories\": [\n", " \"restaurant\",\n", " \"sushi\"\n", " ],\n", " \"classifications\": [\n", " {\n", " \"code\": \"RESTAURANT\",\n", " \"names\": [\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"sushi\"\n", " },\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"restaurant\"\n", " }\n", " ]\n", " }\n", " ]\n", " },\n", " \"address\": {\n", " \"streetNumber\": \"7\",\n", " \"streetName\": \"Rue du Fort Niedergruenewald\",\n", " \"municipality\": \"Luxembourg\",\n", " \"neighbourhood\": \"Kirchberg\",\n", " \"countrySubdivision\": \"Luxembourg\",\n", " \"countrySubdivisionName\": \"Luxembourg\",\n", " \"countrySubdivisionCode\": \"LU\",\n", " \"postalCode\": \"L-2226\",\n", " \"countryCode\": \"LU\",\n", " \"country\": \"Luxembourg\",\n", " \"countryCodeISO3\": \"LUX\",\n", " \"freeformAddress\": \"7 Rue du Fort Niedergruenewald, L-2226 Luxembourg\",\n", " \"localName\": \"Luxembourg\"\n", " },\n", " \"position\": {\n", " \"lat\": 49.619794,\n", " \"lon\": 6.141984\n", " },\n", " \"viewport\": {\n", " \"topLeftPoint\": {\n", " \"lat\": 49.62069,\n", " \"lon\": 6.1406\n", " },\n", " \"btmRightPoint\": {\n", " \"lat\": 49.61889,\n", " \"lon\": 6.14337\n", " }\n", " },\n", " \"entryPoints\": [\n", " {\n", " \"type\": \"main\",\n", " \"position\": {\n", " \"lat\": 49.62007,\n", " \"lon\": 6.14162\n", " }\n", " }\n", " ],\n", " \"detourTime\": 419,\n", " \"detourDistance\": 986\n", " },\n", " {\n", " \"type\": \"POI\",\n", " \"id\": \"GRQxCm-Xv9DCSIbJjyuRBA\",\n", " \"score\": 2.9944090843,\n", " \"dist\": 953.544314,\n", " \"query\": \"restaurant\",\n", " \"info\": \"search:ta:442009000066075-LU\",\n", " \"poi\": {\n", " \"name\": \"La Boqueria\",\n", " \"phone\": \"+352 26 43 04 32\",\n", " \"categorySet\": [\n", " {\n", " \"id\": 7315044\n", " }\n", " ],\n", " \"categories\": [\n", " \"restaurant\",\n", " \"spanish\"\n", " ],\n", " \"classifications\": [\n", " {\n", " \"code\": \"RESTAURANT\",\n", " \"names\": [\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"spanish\"\n", " },\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"restaurant\"\n", " }\n", " ]\n", " }\n", " ]\n", " },\n", " \"address\": {\n", " \"streetNumber\": \"2\",\n", " \"streetName\": \"Rue \\u00c9rasme\",\n", " \"municipality\": \"Luxembourg\",\n", " \"neighbourhood\": \"Kirchberg\",\n", " \"countrySubdivision\": \"Luxembourg\",\n", " \"countrySubdivisionName\": \"Luxembourg\",\n", " \"countrySubdivisionCode\": \"LU\",\n", " \"postalCode\": \"L-1468\",\n", " \"countryCode\": \"LU\",\n", " \"country\": \"Luxembourg\",\n", " \"countryCodeISO3\": \"LUX\",\n", " \"freeformAddress\": \"2 Rue \\u00c9rasme, L-1468 Luxembourg\",\n", " \"localName\": \"Luxembourg\"\n", " },\n", " \"position\": {\n", " \"lat\": 49.622898,\n", " \"lon\": 6.151979\n", " },\n", " \"viewport\": {\n", " \"topLeftPoint\": {\n", " \"lat\": 49.62394,\n", " \"lon\": 6.15038\n", " },\n", " \"btmRightPoint\": {\n", " \"lat\": 49.62186,\n", " \"lon\": 6.15358\n", " }\n", " },\n", " \"entryPoints\": [\n", " {\n", " \"type\": \"main\",\n", " \"position\": {\n", " \"lat\": 49.62189,\n", " \"lon\": 6.15159\n", " }\n", " }\n", " ],\n", " \"detourTime\": 428,\n", " \"detourDistance\": 833\n", " },\n", " {\n", " \"type\": \"POI\",\n", " \"id\": \"uErN_Aj5l4GFoWcAw2qpNQ\",\n", " \"score\": 2.9944090843,\n", " \"dist\": 953.544314,\n", " \"query\": \"restaurant\",\n", " \"info\": \"search:ta:442009000471125-LU\",\n", " \"poi\": {\n", " \"name\": \"El Barrio Restaurante Y Tapas Bar\",\n", " \"phone\": \"+352 26 43 15 03\",\n", " \"categorySet\": [\n", " {\n", " \"id\": 7315076\n", " }\n", " ],\n", " \"url\": \"www.elbarrio.lu\",\n", " \"categories\": [\n", " \"restaurant\",\n", " \"tapas\"\n", " ],\n", " \"classifications\": [\n", " {\n", " \"code\": \"RESTAURANT\",\n", " \"names\": [\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"tapas\"\n", " },\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"restaurant\"\n", " }\n", " ]\n", " }\n", " ]\n", " },\n", " \"address\": {\n", " \"streetNumber\": \"2\",\n", " \"streetName\": \"Rue \\u00c9rasme\",\n", " \"municipality\": \"Luxembourg\",\n", " \"neighbourhood\": \"Kirchberg\",\n", " \"countrySubdivision\": \"Luxembourg\",\n", " \"countrySubdivisionName\": \"Luxembourg\",\n", " \"countrySubdivisionCode\": \"LU\",\n", " \"postalCode\": \"L-1468\",\n", " \"countryCode\": \"LU\",\n", " \"country\": \"Luxembourg\",\n", " \"countryCodeISO3\": \"LUX\",\n", " \"freeformAddress\": \"2 Rue \\u00c9rasme, L-1468 Luxembourg\",\n", " \"localName\": \"Luxembourg\"\n", " },\n", " \"position\": {\n", " \"lat\": 49.622898,\n", " \"lon\": 6.151979\n", " },\n", " \"viewport\": {\n", " \"topLeftPoint\": {\n", " \"lat\": 49.624,\n", " \"lon\": 6.15028\n", " },\n", " \"btmRightPoint\": {\n", " \"lat\": 49.6218,\n", " \"lon\": 6.15367\n", " }\n", " },\n", " \"entryPoints\": [\n", " {\n", " \"type\": \"main\",\n", " \"position\": {\n", " \"lat\": 49.62182,\n", " \"lon\": 6.15166\n", " }\n", " }\n", " ],\n", " \"detourTime\": 428,\n", " \"detourDistance\": 833\n", " },\n", " {\n", " \"type\": \"POI\",\n", " \"id\": \"5pJGvSwxSB60hAv_cG8r0w\",\n", " \"score\": 2.9911842346,\n", " \"dist\": 1707.680749,\n", " \"query\": \"restaurant\",\n", " \"info\": \"search:ta:442007000006004-LU\",\n", " \"poi\": {\n", " \"name\": \"Dans Le Noir ? Luxembourg\",\n", " \"categorySet\": [\n", " {\n", " \"id\": 7315041\n", " }\n", " ],\n", " \"url\": \"luxembourg.danslenoir.com/\",\n", " \"categories\": [\n", " \"restaurant\",\n", " \"roadside\"\n", " ],\n", " \"classifications\": [\n", " {\n", " \"code\": \"RESTAURANT\",\n", " \"names\": [\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"roadside\"\n", " },\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"restaurant\"\n", " }\n", " ]\n", " }\n", " ]\n", " },\n", " \"address\": {\n", " \"streetNumber\": \"6\",\n", " \"streetName\": \"Rue du Fort Niedergr\\u00fcnewald\",\n", " \"municipality\": \"Luxembourg\",\n", " \"neighbourhood\": \"Kirchberg\",\n", " \"countrySubdivision\": \"Luxembourg\",\n", " \"countrySubdivisionName\": \"Luxembourg\",\n", " \"countrySubdivisionCode\": \"LU\",\n", " \"postalCode\": \"L-2226\",\n", " \"countryCode\": \"LU\",\n", " \"country\": \"Luxembourg\",\n", " \"countryCodeISO3\": \"LUX\",\n", " \"freeformAddress\": \"6 Rue du Fort Niedergr\\u00fcnewald, L-2226 Luxembourg\",\n", " \"localName\": \"Luxembourg\"\n", " },\n", " \"position\": {\n", " \"lat\": 49.620922,\n", " \"lon\": 6.145488\n", " },\n", " \"viewport\": {\n", " \"topLeftPoint\": {\n", " \"lat\": 49.62182,\n", " \"lon\": 6.1441\n", " },\n", " \"btmRightPoint\": {\n", " \"lat\": 49.62002,\n", " \"lon\": 6.14688\n", " }\n", " },\n", " \"entryPoints\": [\n", " {\n", " \"type\": \"main\",\n", " \"position\": {\n", " \"lat\": 49.6207,\n", " \"lon\": 6.14558\n", " }\n", " }\n", " ],\n", " \"detourTime\": 492,\n", " \"detourDistance\": 1336\n", " },\n", " {\n", " \"type\": \"POI\",\n", " \"id\": \"HFrHOdjPp87z5PnoVIsSUw\",\n", " \"score\": 2.9906308651,\n", " \"dist\": 1835.266178,\n", " \"query\": \"restaurant\",\n", " \"info\": \"search:ta:442007000006003-LU\",\n", " \"poi\": {\n", " \"name\": \"De Feierwon\",\n", " \"categorySet\": [\n", " {\n", " \"id\": 7315\n", " }\n", " ],\n", " \"url\": \"defeierwon.lu\",\n", " \"categories\": [\n", " \"restaurant\"\n", " ],\n", " \"classifications\": [\n", " {\n", " \"code\": \"RESTAURANT\",\n", " \"names\": [\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"restaurant\"\n", " }\n", " ]\n", " }\n", " ]\n", " },\n", " \"address\": {\n", " \"streetNumber\": \"6\",\n", " \"streetName\": \"Rue du Fort Niedergr\\u00fcnewald\",\n", " \"municipality\": \"Luxembourg\",\n", " \"neighbourhood\": \"Kirchberg\",\n", " \"countrySubdivision\": \"Luxembourg\",\n", " \"countrySubdivisionName\": \"Luxembourg\",\n", " \"countrySubdivisionCode\": \"LU\",\n", " \"postalCode\": \"L-2226\",\n", " \"countryCode\": \"LU\",\n", " \"country\": \"Luxembourg\",\n", " \"countryCodeISO3\": \"LUX\",\n", " \"freeformAddress\": \"6 Rue du Fort Niedergr\\u00fcnewald, L-2226 Luxembourg (Rue Johannes Kepler)\",\n", " \"localName\": \"Luxembourg\"\n", " },\n", " \"position\": {\n", " \"lat\": 49.620396,\n", " \"lon\": 6.144454\n", " },\n", " \"viewport\": {\n", " \"topLeftPoint\": {\n", " \"lat\": 49.6213,\n", " \"lon\": 6.14307\n", " },\n", " \"btmRightPoint\": {\n", " \"lat\": 49.6195,\n", " \"lon\": 6.14584\n", " }\n", " },\n", " \"entryPoints\": [\n", " {\n", " \"type\": \"main\",\n", " \"position\": {\n", " \"lat\": 49.62012,\n", " \"lon\": 6.14423\n", " }\n", " }\n", " ],\n", " \"detourTime\": 492,\n", " \"detourDistance\": 1336\n", " },\n", " {\n", " \"type\": \"POI\",\n", " \"id\": \"VR7MqfSSIVfHBkdHI_K14g\",\n", " \"score\": 2.9911601543,\n", " \"dist\": 1713.177398,\n", " \"query\": \"restaurant\",\n", " \"info\": \"search:ta:442009000701768-LU\",\n", " \"poi\": {\n", " \"name\": \"N'Bistro\",\n", " \"categorySet\": [\n", " {\n", " \"id\": 7315005\n", " }\n", " ],\n", " \"url\": \"www.nbistro.lu/\",\n", " \"categories\": [\n", " \"barbecue\",\n", " \"restaurant\"\n", " ],\n", " \"classifications\": [\n", " {\n", " \"code\": \"RESTAURANT\",\n", " \"names\": [\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"barbecue\"\n", " },\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"restaurant\"\n", " }\n", " ]\n", " }\n", " ]\n", " },\n", " \"address\": {\n", " \"streetNumber\": \"6\",\n", " \"streetName\": \"Rue du Fort Niedergr\\u00fcnewald\",\n", " \"municipality\": \"Luxembourg\",\n", " \"neighbourhood\": \"Kirchberg\",\n", " \"countrySubdivision\": \"Luxembourg\",\n", " \"countrySubdivisionName\": \"Luxembourg\",\n", " \"countrySubdivisionCode\": \"LU\",\n", " \"postalCode\": \"L-2226\",\n", " \"countryCode\": \"LU\",\n", " \"country\": \"Luxembourg\",\n", " \"countryCodeISO3\": \"LUX\",\n", " \"freeformAddress\": \"6 Rue du Fort Niedergr\\u00fcnewald, L-2226 Luxembourg\",\n", " \"localName\": \"Luxembourg\"\n", " },\n", " \"position\": {\n", " \"lat\": 49.620822,\n", " \"lon\": 6.145469\n", " },\n", " \"viewport\": {\n", " \"topLeftPoint\": {\n", " \"lat\": 49.62172,\n", " \"lon\": 6.14408\n", " },\n", " \"btmRightPoint\": {\n", " \"lat\": 49.61992,\n", " \"lon\": 6.14686\n", " }\n", " },\n", " \"entryPoints\": [\n", " {\n", " \"type\": \"main\",\n", " \"position\": {\n", " \"lat\": 49.62068,\n", " \"lon\": 6.14553\n", " }\n", " }\n", " ],\n", " \"detourTime\": 492,\n", " \"detourDistance\": 1336\n", " }\n", " ]\n", "}\n", " \n", "Along the route to Bonnevoie, there is the Eischen Paul Restaurant-Traiteur at 45 Avenue John Fitzgerald Kennedy, L-1855 Lëtzebuerg that would represent a detour of 0 minutes. \n", "Along the route to Bonnevoie, there is the Lounge Act One at 7 Avenue John Fitzgerald Kennedy, L-1855 Luxembourg (N51) that would represent a detour of 1 minutes. \n", "Along the route to Bonnevoie, there is the Ela Greek Cuisine at 37 Avenue John Fitzgerald Kennedy, L-1855 Luxembourg that would represent a detour of 1 minutes. \n", "Along the route to Bonnevoie, there is the Bick Stuff at 95 Rue de Clausen, L-1342 Luxembourg that would represent a detour of 3 minutes. \n", "Along the route to Bonnevoie, there is the Tempo Restaurant at 1 Place de l'Europe, L-1490 Luxembourg that would represent a detour of 3 minutes. \n", "Along the route to Bonnevoie, there is the Chez Bacano at 59 Rue de Clausen, L-1342 Luxembourg that would represent a detour of 3 minutes. \n", "Along the route to Bonnevoie, there is the Popkorn at 61 Rue de Clausen, L-1342 Luxembourg that would represent a detour of 3 minutes. \n", "Along the route to Bonnevoie, there is the Best Grill at 63 Rue de Clausen, L-1342 Luxembourg that would represent a detour of 3 minutes. \n", "Along the route to Bonnevoie, there is the Clé de Sol A La Philharmonie at 1 Place de l'Europe, L-1499 Luxembourg that would represent a detour of 3 minutes. \n", "Along the route to Bonnevoie, there is the Restaurant La Table du Belvédère at 4 Place de l'Europe, L-1499 Luxembourg that would represent a detour of 3 minutes. \n", "Along the route to Bonnevoie, there is the D'Coque at 2 Rue Léon Hengen, L-1745 Luxembourg that would represent a detour of 4 minutes. \n", "Along the route to Bonnevoie, there is the Sixtyfour° Bar at 4 Rue du Fort Niedergrünewald, L-2226 Luxembourg that would represent a detour of 4 minutes. \n", "Along the route to Bonnevoie, there is the Radici at 6 Rue du Fort Niedergrünewald, L-2226 Luxembourg (Rue Johannes Kepler) that would represent a detour of 5 minutes. \n", "Along the route to Bonnevoie, there is the L'Osteria Luxembourg at 7 Avenue John Fitzgerald Kennedy, L-1855 Luxembourg that would represent a detour of 5 minutes. \n", "Along the route to Bonnevoie, there is the Côté Sushi Infinity at 7 Rue du Fort Niedergruenewald, L-2226 Luxembourg that would represent a detour of 6 minutes. \n", "Along the route to Bonnevoie, there is the La Boqueria at 2 Rue Érasme, L-1468 Luxembourg that would represent a detour of 7 minutes. \n", "Along the route to Bonnevoie, there is the El Barrio Restaurante Y Tapas Bar at 2 Rue Érasme, L-1468 Luxembourg that would represent a detour of 7 minutes. \n", "Along the route to Bonnevoie, there is the Dans Le Noir ? Luxembourg at 6 Rue du Fort Niedergrünewald, L-2226 Luxembourg that would represent a detour of 8 minutes. \n", "Along the route to Bonnevoie, there is the De Feierwon at 6 Rue du Fort Niedergrünewald, L-2226 Luxembourg (Rue Johannes Kepler) that would represent a detour of 8 minutes. \n", "Along the route to Bonnevoie, there is the N'Bistro at 6 Rue du Fort Niedergrünewald, L-2226 Luxembourg that would represent a detour of 8 minutes.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Setting `pad_token_id` to `eos_token_id`:2 for open-end generation.\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "49.5999681\n", "{\n", " \"summary\": {\n", " \"query\": \"restaurant\",\n", " \"queryType\": \"NON_NEAR\",\n", " \"queryTime\": 326,\n", " \"numResults\": 20,\n", " \"offset\": 0,\n", " \"totalResults\": 20,\n", " \"fuzzyLevel\": 1,\n", " \"geobiasCountry\": \"LU\"\n", " },\n", " \"results\": [\n", " {\n", " \"type\": \"POI\",\n", " \"id\": \"RdKRrs19psk-CwmVUIQhQg\",\n", " \"score\": 2.997658968,\n", " \"dist\": 174.634461,\n", " \"query\": \"restaurant\",\n", " \"info\": \"search:ta:442009000480886-LU\",\n", " \"poi\": {\n", " \"name\": \"Eischen Paul Restaurant-Traiteur\",\n", " \"phone\": \"+352 26 43 13 64\",\n", " \"categorySet\": [\n", " {\n", " \"id\": 7315\n", " }\n", " ],\n", " \"categories\": [\n", " \"restaurant\"\n", " ],\n", " \"classifications\": [\n", " {\n", " \"code\": \"RESTAURANT\",\n", " \"names\": [\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"restaurant\"\n", " }\n", " ]\n", " }\n", " ]\n", " },\n", " \"address\": {\n", " \"streetNumber\": \"45\",\n", " \"streetName\": \"Avenue John Fitzgerald Kennedy\",\n", " \"municipality\": \"L\\u00ebtzebuerg\",\n", " \"neighbourhood\": \"Kiirchbierg\",\n", " \"countrySubdivision\": \"L\\u00ebtzebuerg\",\n", " \"countrySubdivisionName\": \"L\\u00ebtzebuerg\",\n", " \"countrySubdivisionCode\": \"LU\",\n", " \"postalCode\": \"L-1855\",\n", " \"countryCode\": \"LU\",\n", " \"country\": \"L\\u00ebtzebuerg\",\n", " \"countryCodeISO3\": \"LUX\",\n", " \"freeformAddress\": \"45 Avenue John Fitzgerald Kennedy, L-1855 L\\u00ebtzebuerg\",\n", " \"localName\": \"L\\u00ebtzebuerg\"\n", " },\n", " \"position\": {\n", " \"lat\": 49.6248,\n", " \"lon\": 6.1588\n", " },\n", " \"viewport\": {\n", " \"topLeftPoint\": {\n", " \"lat\": 49.6257,\n", " \"lon\": 6.15741\n", " },\n", " \"btmRightPoint\": {\n", " \"lat\": 49.6239,\n", " \"lon\": 6.16019\n", " }\n", " },\n", " \"entryPoints\": [\n", " {\n", " \"type\": \"main\",\n", " \"position\": {\n", " \"lat\": 49.62473,\n", " \"lon\": 6.15889\n", " }\n", " }\n", " ],\n", " \"detourTime\": 0,\n", " \"detourDistance\": 0\n", " },\n", " {\n", " \"type\": \"POI\",\n", " \"id\": \"ujXkPgiRLdbLGrrWZ3Qu2A\",\n", " \"score\": 2.9899127483,\n", " \"dist\": 1999.969177,\n", " \"query\": \"restaurant\",\n", " \"info\": \"search:ta:442007000008157-LU\",\n", " \"poi\": {\n", " \"name\": \"Lounge Act One\",\n", " \"phone\": \"+352 27 77 02 27\",\n", " \"categorySet\": [\n", " {\n", " \"id\": 7315017\n", " }\n", " ],\n", " \"url\": \"www.loungeactone.lu/\",\n", " \"categories\": [\n", " \"french\",\n", " \"restaurant\"\n", " ],\n", " \"classifications\": [\n", " {\n", " \"code\": \"RESTAURANT\",\n", " \"names\": [\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"french\"\n", " },\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"restaurant\"\n", " }\n", " ]\n", " }\n", " ]\n", " },\n", " \"address\": {\n", " \"streetNumber\": \"7\",\n", " \"streetName\": \"Avenue John Fitzgerald Kennedy\",\n", " \"municipality\": \"Luxembourg\",\n", " \"neighbourhood\": \"Kirchberg\",\n", " \"countrySubdivision\": \"Luxembourg\",\n", " \"countrySubdivisionName\": \"Luxembourg\",\n", " \"countrySubdivisionCode\": \"LU\",\n", " \"postalCode\": \"L-1855\",\n", " \"countryCode\": \"LU\",\n", " \"country\": \"Luxembourg\",\n", " \"countryCodeISO3\": \"LUX\",\n", " \"freeformAddress\": \"7 Avenue John Fitzgerald Kennedy, L-1855 Luxembourg (N51)\",\n", " \"localName\": \"Luxembourg\"\n", " },\n", " \"position\": {\n", " \"lat\": 49.619627,\n", " \"lon\": 6.143154\n", " },\n", " \"viewport\": {\n", " \"topLeftPoint\": {\n", " \"lat\": 49.62053,\n", " \"lon\": 6.14177\n", " },\n", " \"btmRightPoint\": {\n", " \"lat\": 49.61873,\n", " \"lon\": 6.14454\n", " }\n", " },\n", " \"entryPoints\": [\n", " {\n", " \"type\": \"main\",\n", " \"position\": {\n", " \"lat\": 49.61954,\n", " \"lon\": 6.1432\n", " }\n", " }\n", " ],\n", " \"detourTime\": 0,\n", " \"detourDistance\": 0\n", " },\n", " {\n", " \"type\": \"POI\",\n", " \"id\": \"45w-Gg-Mi5p1U63jTDSVyQ\",\n", " \"score\": 2.9914143085,\n", " \"dist\": 1654.4196,\n", " \"query\": \"restaurant\",\n", " \"info\": \"search:ta:442007000008307-LU\",\n", " \"poi\": {\n", " \"name\": \"Ela Greek Cuisine\",\n", " \"phone\": \"+352 26 68 46 83\",\n", " \"categorySet\": [\n", " {\n", " \"id\": 7315019\n", " }\n", " ],\n", " \"categories\": [\n", " \"greek\",\n", " \"restaurant\"\n", " ],\n", " \"classifications\": [\n", " {\n", " \"code\": \"RESTAURANT\",\n", " \"names\": [\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"restaurant\"\n", " },\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"greek\"\n", " }\n", " ]\n", " }\n", " ]\n", " },\n", " \"address\": {\n", " \"streetNumber\": \"37\",\n", " \"streetName\": \"Avenue John Fitzgerald Kennedy\",\n", " \"municipality\": \"Luxembourg\",\n", " \"neighbourhood\": \"Kirchberg\",\n", " \"countrySubdivision\": \"Luxembourg\",\n", " \"countrySubdivisionName\": \"Luxembourg\",\n", " \"countrySubdivisionCode\": \"LU\",\n", " \"postalCode\": \"L-1855\",\n", " \"countryCode\": \"LU\",\n", " \"country\": \"Luxembourg\",\n", " \"countryCodeISO3\": \"LUX\",\n", " \"freeformAddress\": \"37 Avenue John Fitzgerald Kennedy, L-1855 Luxembourg\",\n", " \"localName\": \"Luxembourg\"\n", " },\n", " \"position\": {\n", " \"lat\": 49.620217,\n", " \"lon\": 6.146253\n", " },\n", " \"viewport\": {\n", " \"topLeftPoint\": {\n", " \"lat\": 49.62112,\n", " \"lon\": 6.14486\n", " },\n", " \"btmRightPoint\": {\n", " \"lat\": 49.61932,\n", " \"lon\": 6.14764\n", " }\n", " },\n", " \"entryPoints\": [\n", " {\n", " \"type\": \"main\",\n", " \"position\": {\n", " \"lat\": 49.62013,\n", " \"lon\": 6.14629\n", " }\n", " }\n", " ],\n", " \"detourTime\": 0,\n", " \"detourDistance\": 0\n", " },\n", " {\n", " \"type\": \"POI\",\n", " \"id\": \"gYsWWQjcQm-ZrsQ1Kn-puA\",\n", " \"score\": 2.9930400848,\n", " \"dist\": 1275.9415,\n", " \"query\": \"restaurant\",\n", " \"info\": \"search:ta:442007000001701-LU\",\n", " \"poi\": {\n", " \"name\": \"Tha\\u00ef Restaurant\",\n", " \"phone\": \"+352 40 08 15 88\",\n", " \"categorySet\": [\n", " {\n", " \"id\": 7315048\n", " }\n", " ],\n", " \"categories\": [\n", " \"restaurant\",\n", " \"thai\"\n", " ],\n", " \"classifications\": [\n", " {\n", " \"code\": \"RESTAURANT\",\n", " \"names\": [\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"thai\"\n", " },\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"restaurant\"\n", " }\n", " ]\n", " }\n", " ]\n", " },\n", " \"address\": {\n", " \"streetNumber\": \"18\",\n", " \"streetName\": \"Rue Alcide De Gasperi\",\n", " \"municipality\": \"Luxembourg\",\n", " \"neighbourhood\": \"Kirchberg\",\n", " \"countrySubdivision\": \"Luxembourg\",\n", " \"countrySubdivisionName\": \"Luxembourg\",\n", " \"countrySubdivisionCode\": \"LU\",\n", " \"postalCode\": \"L-1615\",\n", " \"countryCode\": \"LU\",\n", " \"country\": \"Luxembourg\",\n", " \"countryCodeISO3\": \"LUX\",\n", " \"freeformAddress\": \"18 Rue Alcide De Gasperi, L-1615 Luxembourg\",\n", " \"localName\": \"Luxembourg\"\n", " },\n", " \"position\": {\n", " \"lat\": 49.623929,\n", " \"lon\": 6.148744\n", " },\n", " \"viewport\": {\n", " \"topLeftPoint\": {\n", " \"lat\": 49.62483,\n", " \"lon\": 6.14736\n", " },\n", " \"btmRightPoint\": {\n", " \"lat\": 49.62303,\n", " \"lon\": 6.15013\n", " }\n", " },\n", " \"entryPoints\": [\n", " {\n", " \"type\": \"main\",\n", " \"position\": {\n", " \"lat\": 49.62362,\n", " \"lon\": 6.14888\n", " }\n", " }\n", " ],\n", " \"detourTime\": 106,\n", " \"detourDistance\": 349\n", " },\n", " {\n", " \"type\": \"POI\",\n", " \"id\": \"KfRLYtAsq5X57cd2Qh2MWQ\",\n", " \"score\": 2.9891924858,\n", " \"dist\": 2164.386187,\n", " \"query\": \"restaurant\",\n", " \"info\": \"search:ta:442009000129532-LU\",\n", " \"poi\": {\n", " \"name\": \"Tempo Restaurant\",\n", " \"phone\": \"+352 27 99 06 66\",\n", " \"categorySet\": [\n", " {\n", " \"id\": 7315017\n", " }\n", " ],\n", " \"url\": \"www.tempo-restaurant.lu\",\n", " \"categories\": [\n", " \"french\",\n", " \"restaurant\"\n", " ],\n", " \"classifications\": [\n", " {\n", " \"code\": \"RESTAURANT\",\n", " \"names\": [\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"french\"\n", " },\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"restaurant\"\n", " }\n", " ]\n", " }\n", " ]\n", " },\n", " \"address\": {\n", " \"streetNumber\": \"1\",\n", " \"streetName\": \"Place de l'Europe\",\n", " \"municipality\": \"Luxembourg\",\n", " \"neighbourhood\": \"Kirchberg\",\n", " \"countrySubdivision\": \"Luxembourg\",\n", " \"countrySubdivisionName\": \"Luxembourg\",\n", " \"countrySubdivisionCode\": \"LU\",\n", " \"postalCode\": \"L-1490\",\n", " \"countryCode\": \"LU\",\n", " \"country\": \"Luxembourg\",\n", " \"countryCodeISO3\": \"LUX\",\n", " \"freeformAddress\": \"1 Place de l'Europe, L-1490 Luxembourg\",\n", " \"localName\": \"Luxembourg\"\n", " },\n", " \"position\": {\n", " \"lat\": 49.617973,\n", " \"lon\": 6.142219\n", " },\n", " \"viewport\": {\n", " \"topLeftPoint\": {\n", " \"lat\": 49.61887,\n", " \"lon\": 6.14083\n", " },\n", " \"btmRightPoint\": {\n", " \"lat\": 49.61707,\n", " \"lon\": 6.14361\n", " }\n", " },\n", " \"entryPoints\": [\n", " {\n", " \"type\": \"main\",\n", " \"position\": {\n", " \"lat\": 49.61785,\n", " \"lon\": 6.1419\n", " }\n", " }\n", " ],\n", " \"detourTime\": 106,\n", " \"detourDistance\": 437\n", " },\n", " {\n", " \"type\": \"POI\",\n", " \"id\": \"PKlheqd5C5r9GLc4o8-JIQ\",\n", " \"score\": 2.9894006252,\n", " \"dist\": 2116.991012,\n", " \"query\": \"restaurant\",\n", " \"info\": \"search:ta:442007000008182-LU\",\n", " \"poi\": {\n", " \"name\": \"C\\u00f4t\\u00e9 Sushi Infinity\",\n", " \"categorySet\": [\n", " {\n", " \"id\": 7315148\n", " }\n", " ],\n", " \"url\": \"cotesushi.com\",\n", " \"categories\": [\n", " \"restaurant\",\n", " \"sushi\"\n", " ],\n", " \"classifications\": [\n", " {\n", " \"code\": \"RESTAURANT\",\n", " \"names\": [\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"restaurant\"\n", " },\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"sushi\"\n", " }\n", " ]\n", " }\n", " ]\n", " },\n", " \"address\": {\n", " \"streetNumber\": \"7\",\n", " \"streetName\": \"Rue du Fort Niedergruenewald\",\n", " \"municipality\": \"Luxembourg\",\n", " \"neighbourhood\": \"Kirchberg\",\n", " \"countrySubdivision\": \"Luxembourg\",\n", " \"countrySubdivisionName\": \"Luxembourg\",\n", " \"countrySubdivisionCode\": \"LU\",\n", " \"postalCode\": \"L-2226\",\n", " \"countryCode\": \"LU\",\n", " \"country\": \"Luxembourg\",\n", " \"countryCodeISO3\": \"LUX\",\n", " \"freeformAddress\": \"7 Rue du Fort Niedergruenewald, L-2226 Luxembourg\",\n", " \"localName\": \"Luxembourg\"\n", " },\n", " \"position\": {\n", " \"lat\": 49.619794,\n", " \"lon\": 6.141984\n", " },\n", " \"viewport\": {\n", " \"topLeftPoint\": {\n", " \"lat\": 49.62069,\n", " \"lon\": 6.1406\n", " },\n", " \"btmRightPoint\": {\n", " \"lat\": 49.61889,\n", " \"lon\": 6.14337\n", " }\n", " },\n", " \"entryPoints\": [\n", " {\n", " \"type\": \"main\",\n", " \"position\": {\n", " \"lat\": 49.62007,\n", " \"lon\": 6.14162\n", " }\n", " }\n", " ],\n", " \"detourTime\": 139,\n", " \"detourDistance\": 183\n", " },\n", " {\n", " \"type\": \"POI\",\n", " \"id\": \"MgTY6qN3xbOJT1ZqmNCORA\",\n", " \"score\": 2.9891009331,\n", " \"dist\": 2185.203228,\n", " \"query\": \"restaurant\",\n", " \"info\": \"search:ta:442007000006001-LU\",\n", " \"poi\": {\n", " \"name\": \"Mama Restaurant Luxembourg\",\n", " \"categorySet\": [\n", " {\n", " \"id\": 7315\n", " }\n", " ],\n", " \"url\": \"mamashelter.com/luxembourg/eat-drink/\",\n", " \"categories\": [\n", " \"restaurant\"\n", " ],\n", " \"classifications\": [\n", " {\n", " \"code\": \"RESTAURANT\",\n", " \"names\": [\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"restaurant\"\n", " }\n", " ]\n", " }\n", " ]\n", " },\n", " \"address\": {\n", " \"streetNumber\": \"2\",\n", " \"streetName\": \"Rue du Fort Niedergr\\u00fcnewald\",\n", " \"municipality\": \"Luxembourg\",\n", " \"neighbourhood\": \"Kirchberg\",\n", " \"countrySubdivision\": \"Luxembourg\",\n", " \"countrySubdivisionName\": \"Luxembourg\",\n", " \"countrySubdivisionCode\": \"LU\",\n", " \"countryCode\": \"LU\",\n", " \"country\": \"Luxembourg\",\n", " \"countryCodeISO3\": \"LUX\",\n", " \"freeformAddress\": \"2 Rue du Fort Niedergr\\u00fcnewald, Luxembourg\",\n", " \"localName\": \"Luxembourg\"\n", " },\n", " \"position\": {\n", " \"lat\": 49.620003,\n", " \"lon\": 6.141275\n", " },\n", " \"viewport\": {\n", " \"topLeftPoint\": {\n", " \"lat\": 49.6209,\n", " \"lon\": 6.13989\n", " },\n", " \"btmRightPoint\": {\n", " \"lat\": 49.6191,\n", " \"lon\": 6.14266\n", " }\n", " },\n", " \"entryPoints\": [\n", " {\n", " \"type\": \"main\",\n", " \"position\": {\n", " \"lat\": 49.61993,\n", " \"lon\": 6.14139\n", " }\n", " }\n", " ],\n", " \"detourTime\": 139,\n", " \"detourDistance\": 183\n", " },\n", " {\n", " \"type\": \"POI\",\n", " \"id\": \"9HF2LAt_iB1EcBxdRNqXlw\",\n", " \"score\": 2.9893784523,\n", " \"dist\": 2122.024195,\n", " \"query\": \"restaurant\",\n", " \"info\": \"search:ta:442009000486119-LU\",\n", " \"poi\": {\n", " \"name\": \"Cl\\u00e9 de Sol A La Philharmonie\",\n", " \"phone\": \"+352 26 68 73 94\",\n", " \"categorySet\": [\n", " {\n", " \"id\": 7315017\n", " }\n", " ],\n", " \"categories\": [\n", " \"french\",\n", " \"restaurant\"\n", " ],\n", " \"classifications\": [\n", " {\n", " \"code\": \"RESTAURANT\",\n", " \"names\": [\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"french\"\n", " },\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"restaurant\"\n", " }\n", " ]\n", " }\n", " ]\n", " },\n", " \"address\": {\n", " \"streetNumber\": \"1\",\n", " \"streetName\": \"Place de l'Europe\",\n", " \"municipality\": \"Luxembourg\",\n", " \"neighbourhood\": \"Kirchberg\",\n", " \"countrySubdivision\": \"Luxembourg\",\n", " \"countrySubdivisionName\": \"Luxembourg\",\n", " \"countrySubdivisionCode\": \"LU\",\n", " \"postalCode\": \"L-1499\",\n", " \"countryCode\": \"LU\",\n", " \"country\": \"Luxembourg\",\n", " \"countryCodeISO3\": \"LUX\",\n", " \"freeformAddress\": \"1 Place de l'Europe, L-1499 Luxembourg\",\n", " \"localName\": \"Luxembourg\"\n", " },\n", " \"position\": {\n", " \"lat\": 49.618249,\n", " \"lon\": 6.142515\n", " },\n", " \"viewport\": {\n", " \"topLeftPoint\": {\n", " \"lat\": 49.61944,\n", " \"lon\": 6.14067\n", " },\n", " \"btmRightPoint\": {\n", " \"lat\": 49.61706,\n", " \"lon\": 6.14436\n", " }\n", " },\n", " \"entryPoints\": [\n", " {\n", " \"type\": \"main\",\n", " \"position\": {\n", " \"lat\": 49.61783,\n", " \"lon\": 6.14424\n", " }\n", " }\n", " ],\n", " \"detourTime\": 211,\n", " \"detourDistance\": 256\n", " },\n", " {\n", " \"type\": \"POI\",\n", " \"id\": \"kjG5XshDoYxwO7bXw3u45w\",\n", " \"score\": 2.9896290302,\n", " \"dist\": 2064.862201,\n", " \"query\": \"restaurant\",\n", " \"info\": \"search:ta:442007000002087-LU\",\n", " \"poi\": {\n", " \"name\": \"L'Osteria Luxembourg\",\n", " \"categorySet\": [\n", " {\n", " \"id\": 7315036\n", " }\n", " ],\n", " \"url\": \"www.losteria.net\",\n", " \"categories\": [\n", " \"pizza\",\n", " \"restaurant\"\n", " ],\n", " \"classifications\": [\n", " {\n", " \"code\": \"RESTAURANT\",\n", " \"names\": [\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"restaurant\"\n", " },\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"pizza\"\n", " }\n", " ]\n", " }\n", " ]\n", " },\n", " \"address\": {\n", " \"streetNumber\": \"7\",\n", " \"streetName\": \"Avenue John Fitzgerald Kennedy\",\n", " \"municipality\": \"Luxembourg\",\n", " \"neighbourhood\": \"Kirchberg\",\n", " \"countrySubdivision\": \"Luxembourg\",\n", " \"countrySubdivisionName\": \"Luxembourg\",\n", " \"countrySubdivisionCode\": \"LU\",\n", " \"postalCode\": \"L-1855\",\n", " \"countryCode\": \"LU\",\n", " \"country\": \"Luxembourg\",\n", " \"countryCodeISO3\": \"LUX\",\n", " \"freeformAddress\": \"7 Avenue John Fitzgerald Kennedy, L-1855 Luxembourg\",\n", " \"localName\": \"Luxembourg\"\n", " },\n", " \"position\": {\n", " \"lat\": 49.620088,\n", " \"lon\": 6.142382\n", " },\n", " \"viewport\": {\n", " \"topLeftPoint\": {\n", " \"lat\": 49.62099,\n", " \"lon\": 6.14099\n", " },\n", " \"btmRightPoint\": {\n", " \"lat\": 49.61919,\n", " \"lon\": 6.14377\n", " }\n", " },\n", " \"entryPoints\": [\n", " {\n", " \"type\": \"main\",\n", " \"position\": {\n", " \"lat\": 49.62013,\n", " \"lon\": 6.1425\n", " }\n", " }\n", " ],\n", " \"detourTime\": 248,\n", " \"detourDistance\": 142\n", " },\n", " {\n", " \"type\": \"POI\",\n", " \"id\": \"vKr_LRfynXob7JeTjdA3_A\",\n", " \"score\": 2.9887928963,\n", " \"dist\": 2255.189658,\n", " \"query\": \"restaurant\",\n", " \"info\": \"search:ta:442009000486689-LU\",\n", " \"poi\": {\n", " \"name\": \"Aqua Restaurant\",\n", " \"categorySet\": [\n", " {\n", " \"id\": 7315043\n", " }\n", " ],\n", " \"url\": \"www.melia-luxembourg.com/en/gastronomy-melia-luxembourg.html\",\n", " \"categories\": [\n", " \"restaurant\",\n", " \"seafood\"\n", " ],\n", " \"classifications\": [\n", " {\n", " \"code\": \"RESTAURANT\",\n", " \"names\": [\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"restaurant\"\n", " },\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"seafood\"\n", " }\n", " ]\n", " }\n", " ]\n", " },\n", " \"address\": {\n", " \"streetNumber\": \"1\",\n", " \"streetName\": \"Park Drai Eechelen\",\n", " \"municipality\": \"Luxembourg\",\n", " \"neighbourhood\": \"Kirchberg\",\n", " \"countrySubdivision\": \"Luxembourg\",\n", " \"countrySubdivisionName\": \"Luxembourg\",\n", " \"countrySubdivisionCode\": \"LU\",\n", " \"postalCode\": \"L-1499\",\n", " \"countryCode\": \"LU\",\n", " \"country\": \"Luxembourg\",\n", " \"countryCodeISO3\": \"LUX\",\n", " \"freeformAddress\": \"1 Park Drai Eechelen, L-1499 Luxembourg\",\n", " \"localName\": \"Luxembourg\"\n", " },\n", " \"position\": {\n", " \"lat\": 49.617159,\n", " \"lon\": 6.141689\n", " },\n", " \"viewport\": {\n", " \"topLeftPoint\": {\n", " \"lat\": 49.61806,\n", " \"lon\": 6.1403\n", " },\n", " \"btmRightPoint\": {\n", " \"lat\": 49.61626,\n", " \"lon\": 6.14308\n", " }\n", " },\n", " \"entryPoints\": [\n", " {\n", " \"type\": \"main\",\n", " \"position\": {\n", " \"lat\": 49.61749,\n", " \"lon\": 6.14203\n", " }\n", " }\n", " ],\n", " \"detourTime\": 289,\n", " \"detourDistance\": 596\n", " },\n", " {\n", " \"type\": \"POI\",\n", " \"id\": \"EHur86oZba544sMdSAwumg\",\n", " \"score\": 2.9943678379,\n", " \"dist\": 963.334401,\n", " \"query\": \"restaurant\",\n", " \"info\": \"search:ta:442009000467377-LU\",\n", " \"poi\": {\n", " \"name\": \"D'Coque\",\n", " \"phone\": \"+352 43 60 60\",\n", " \"categorySet\": [\n", " {\n", " \"id\": 7315\n", " }\n", " ],\n", " \"categories\": [\n", " \"restaurant\"\n", " ],\n", " \"classifications\": [\n", " {\n", " \"code\": \"RESTAURANT\",\n", " \"names\": [\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"restaurant\"\n", " }\n", " ]\n", " }\n", " ]\n", " },\n", " \"address\": {\n", " \"streetNumber\": \"2\",\n", " \"streetName\": \"Rue L\\u00e9on Hengen\",\n", " \"municipality\": \"Luxembourg\",\n", " \"neighbourhood\": \"Kirchberg\",\n", " \"countrySubdivision\": \"Luxembourg\",\n", " \"countrySubdivisionName\": \"Luxembourg\",\n", " \"countrySubdivisionCode\": \"LU\",\n", " \"postalCode\": \"L-1745\",\n", " \"countryCode\": \"LU\",\n", " \"country\": \"Luxembourg\",\n", " \"countryCodeISO3\": \"LUX\",\n", " \"freeformAddress\": \"2 Rue L\\u00e9on Hengen, L-1745 Luxembourg\",\n", " \"localName\": \"Luxembourg\"\n", " },\n", " \"position\": {\n", " \"lat\": 49.62378,\n", " \"lon\": 6.151634\n", " },\n", " \"viewport\": {\n", " \"topLeftPoint\": {\n", " \"lat\": 49.62584,\n", " \"lon\": 6.14845\n", " },\n", " \"btmRightPoint\": {\n", " \"lat\": 49.62172,\n", " \"lon\": 6.15481\n", " }\n", " },\n", " \"entryPoints\": [\n", " {\n", " \"type\": \"main\",\n", " \"position\": {\n", " \"lat\": 49.62272,\n", " \"lon\": 6.15436\n", " }\n", " }\n", " ],\n", " \"detourTime\": 304,\n", " \"detourDistance\": 1181\n", " },\n", " {\n", " \"type\": \"POI\",\n", " \"id\": \"eAyvq96brfXPxBzg_AvvTw\",\n", " \"score\": 2.9881718159,\n", " \"dist\": 2395.837112,\n", " \"query\": \"restaurant\",\n", " \"info\": \"search:ta:442007000006386-LU\",\n", " \"poi\": {\n", " \"name\": \"Mudam: Le Cafe\",\n", " \"categorySet\": [\n", " {\n", " \"id\": 7315017\n", " }\n", " ],\n", " \"url\": \"www.mudam.lu/fr/le-musee/boutique-cafe/\",\n", " \"categories\": [\n", " \"french\",\n", " \"restaurant\"\n", " ],\n", " \"classifications\": [\n", " {\n", " \"code\": \"RESTAURANT\",\n", " \"names\": [\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"french\"\n", " },\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"restaurant\"\n", " }\n", " ]\n", " }\n", " ]\n", " },\n", " \"address\": {\n", " \"streetNumber\": \"3\",\n", " \"streetName\": \"Park Drai Eechelen\",\n", " \"municipality\": \"Luxembourg\",\n", " \"neighbourhood\": \"Kirchberg\",\n", " \"countrySubdivision\": \"Luxembourg\",\n", " \"countrySubdivisionName\": \"Luxembourg\",\n", " \"countrySubdivisionCode\": \"LU\",\n", " \"postalCode\": \"L-1499\",\n", " \"countryCode\": \"LU\",\n", " \"country\": \"Luxembourg\",\n", " \"countryCodeISO3\": \"LUX\",\n", " \"freeformAddress\": \"3 Park Drai Eechelen, L-1499 Luxembourg\",\n", " \"localName\": \"Luxembourg\"\n", " },\n", " \"position\": {\n", " \"lat\": 49.617185,\n", " \"lon\": 6.140292\n", " },\n", " \"viewport\": {\n", " \"topLeftPoint\": {\n", " \"lat\": 49.61808,\n", " \"lon\": 6.1389\n", " },\n", " \"btmRightPoint\": {\n", " \"lat\": 49.61629,\n", " \"lon\": 6.14168\n", " }\n", " },\n", " \"entryPoints\": [\n", " {\n", " \"type\": \"main\",\n", " \"position\": {\n", " \"lat\": 49.61757,\n", " \"lon\": 6.14028\n", " }\n", " }\n", " ],\n", " \"detourTime\": 373,\n", " \"detourDistance\": 816\n", " },\n", " {\n", " \"type\": \"POI\",\n", " \"id\": \"O9hayDmQaSV3_yG7sbsKEg\",\n", " \"score\": 2.9905776978,\n", " \"dist\": 1847.425989,\n", " \"query\": \"restaurant\",\n", " \"info\": \"search:ta:442007000006920-LU\",\n", " \"poi\": {\n", " \"name\": \"Radici\",\n", " \"categorySet\": [\n", " {\n", " \"id\": 7315\n", " }\n", " ],\n", " \"url\": \"radici.lu\",\n", " \"categories\": [\n", " \"restaurant\"\n", " ],\n", " \"classifications\": [\n", " {\n", " \"code\": \"RESTAURANT\",\n", " \"names\": [\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"restaurant\"\n", " }\n", " ]\n", " }\n", " ]\n", " },\n", " \"address\": {\n", " \"streetNumber\": \"6\",\n", " \"streetName\": \"Rue du Fort Niedergr\\u00fcnewald\",\n", " \"municipality\": \"Luxembourg\",\n", " \"neighbourhood\": \"Kirchberg\",\n", " \"countrySubdivision\": \"Luxembourg\",\n", " \"countrySubdivisionName\": \"Luxembourg\",\n", " \"countrySubdivisionCode\": \"LU\",\n", " \"postalCode\": \"L-2226\",\n", " \"countryCode\": \"LU\",\n", " \"country\": \"Luxembourg\",\n", " \"countryCodeISO3\": \"LUX\",\n", " \"freeformAddress\": \"6 Rue du Fort Niedergr\\u00fcnewald, L-2226 Luxembourg (Rue Johannes Kepler)\",\n", " \"localName\": \"Luxembourg\"\n", " },\n", " \"position\": {\n", " \"lat\": 49.620548,\n", " \"lon\": 6.144288\n", " },\n", " \"viewport\": {\n", " \"topLeftPoint\": {\n", " \"lat\": 49.62145,\n", " \"lon\": 6.1429\n", " },\n", " \"btmRightPoint\": {\n", " \"lat\": 49.61965,\n", " \"lon\": 6.14568\n", " }\n", " },\n", " \"entryPoints\": [\n", " {\n", " \"type\": \"main\",\n", " \"position\": {\n", " \"lat\": 49.62026,\n", " \"lon\": 6.14406\n", " }\n", " }\n", " ],\n", " \"detourTime\": 391,\n", " \"detourDistance\": 314\n", " },\n", " {\n", " \"type\": \"POI\",\n", " \"id\": \"oyAESM8oIuju8u43JF1XtQ\",\n", " \"score\": 2.9971354008,\n", " \"dist\": 301.409425,\n", " \"query\": \"restaurant\",\n", " \"info\": \"search:ta:442009000087404-LU\",\n", " \"poi\": {\n", " \"name\": \"Restaurant Himalaya 2\",\n", " \"phone\": \"+352 43 83 24\",\n", " \"categorySet\": [\n", " {\n", " \"id\": 7315023\n", " }\n", " ],\n", " \"url\": \"himalaya.lu/Himalaya2\",\n", " \"categories\": [\n", " \"indian\",\n", " \"restaurant\"\n", " ],\n", " \"classifications\": [\n", " {\n", " \"code\": \"RESTAURANT\",\n", " \"names\": [\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"restaurant\"\n", " },\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"indian\"\n", " }\n", " ]\n", " }\n", " ]\n", " },\n", " \"address\": {\n", " \"streetNumber\": \"89\",\n", " \"streetName\": \"Rue des Muguets\",\n", " \"municipality\": \"Luxembourg\",\n", " \"neighbourhood\": \"Neudorf\",\n", " \"countrySubdivision\": \"Luxembourg\",\n", " \"countrySubdivisionName\": \"Luxembourg\",\n", " \"countrySubdivisionCode\": \"LU\",\n", " \"postalCode\": \"L-2167\",\n", " \"countryCode\": \"LU\",\n", " \"country\": \"Luxembourg\",\n", " \"countryCodeISO3\": \"LUX\",\n", " \"freeformAddress\": \"89 Rue des Muguets, L-2167 Luxembourg\",\n", " \"localName\": \"Luxembourg\"\n", " },\n", " \"position\": {\n", " \"lat\": 49.62306,\n", " \"lon\": 6.15951\n", " },\n", " \"viewport\": {\n", " \"topLeftPoint\": {\n", " \"lat\": 49.62396,\n", " \"lon\": 6.15812\n", " },\n", " \"btmRightPoint\": {\n", " \"lat\": 49.62216,\n", " \"lon\": 6.1609\n", " }\n", " },\n", " \"entryPoints\": [\n", " {\n", " \"type\": \"main\",\n", " \"position\": {\n", " \"lat\": 49.62302,\n", " \"lon\": 6.15965\n", " }\n", " }\n", " ],\n", " \"detourTime\": 407,\n", " \"detourDistance\": 1512\n", " },\n", " {\n", " \"type\": \"POI\",\n", " \"id\": \"VR7MqfSSIVfHBkdHI_K14g\",\n", " \"score\": 2.9911601543,\n", " \"dist\": 1713.177398,\n", " \"query\": \"restaurant\",\n", " \"info\": \"search:ta:442009000701768-LU\",\n", " \"poi\": {\n", " \"name\": \"N'Bistro\",\n", " \"categorySet\": [\n", " {\n", " \"id\": 7315005\n", " }\n", " ],\n", " \"url\": \"www.nbistro.lu/\",\n", " \"categories\": [\n", " \"barbecue\",\n", " \"restaurant\"\n", " ],\n", " \"classifications\": [\n", " {\n", " \"code\": \"RESTAURANT\",\n", " \"names\": [\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"barbecue\"\n", " },\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"restaurant\"\n", " }\n", " ]\n", " }\n", " ]\n", " },\n", " \"address\": {\n", " \"streetNumber\": \"6\",\n", " \"streetName\": \"Rue du Fort Niedergr\\u00fcnewald\",\n", " \"municipality\": \"Luxembourg\",\n", " \"neighbourhood\": \"Kirchberg\",\n", " \"countrySubdivision\": \"Luxembourg\",\n", " \"countrySubdivisionName\": \"Luxembourg\",\n", " \"countrySubdivisionCode\": \"LU\",\n", " \"postalCode\": \"L-2226\",\n", " \"countryCode\": \"LU\",\n", " \"country\": \"Luxembourg\",\n", " \"countryCodeISO3\": \"LUX\",\n", " \"freeformAddress\": \"6 Rue du Fort Niedergr\\u00fcnewald, L-2226 Luxembourg\",\n", " \"localName\": \"Luxembourg\"\n", " },\n", " \"position\": {\n", " \"lat\": 49.620822,\n", " \"lon\": 6.145469\n", " },\n", " \"viewport\": {\n", " \"topLeftPoint\": {\n", " \"lat\": 49.62172,\n", " \"lon\": 6.14408\n", " },\n", " \"btmRightPoint\": {\n", " \"lat\": 49.61992,\n", " \"lon\": 6.14686\n", " }\n", " },\n", " \"entryPoints\": [\n", " {\n", " \"type\": \"main\",\n", " \"position\": {\n", " \"lat\": 49.62068,\n", " \"lon\": 6.14553\n", " }\n", " }\n", " ],\n", " \"detourTime\": 409,\n", " \"detourDistance\": 499\n", " },\n", " {\n", " \"type\": \"POI\",\n", " \"id\": \"5pJGvSwxSB60hAv_cG8r0w\",\n", " \"score\": 2.9911842346,\n", " \"dist\": 1707.680749,\n", " \"query\": \"restaurant\",\n", " \"info\": \"search:ta:442007000006004-LU\",\n", " \"poi\": {\n", " \"name\": \"Dans Le Noir ? Luxembourg\",\n", " \"categorySet\": [\n", " {\n", " \"id\": 7315041\n", " }\n", " ],\n", " \"url\": \"luxembourg.danslenoir.com/\",\n", " \"categories\": [\n", " \"restaurant\",\n", " \"roadside\"\n", " ],\n", " \"classifications\": [\n", " {\n", " \"code\": \"RESTAURANT\",\n", " \"names\": [\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"restaurant\"\n", " },\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"roadside\"\n", " }\n", " ]\n", " }\n", " ]\n", " },\n", " \"address\": {\n", " \"streetNumber\": \"6\",\n", " \"streetName\": \"Rue du Fort Niedergr\\u00fcnewald\",\n", " \"municipality\": \"Luxembourg\",\n", " \"neighbourhood\": \"Kirchberg\",\n", " \"countrySubdivision\": \"Luxembourg\",\n", " \"countrySubdivisionName\": \"Luxembourg\",\n", " \"countrySubdivisionCode\": \"LU\",\n", " \"postalCode\": \"L-2226\",\n", " \"countryCode\": \"LU\",\n", " \"country\": \"Luxembourg\",\n", " \"countryCodeISO3\": \"LUX\",\n", " \"freeformAddress\": \"6 Rue du Fort Niedergr\\u00fcnewald, L-2226 Luxembourg\",\n", " \"localName\": \"Luxembourg\"\n", " },\n", " \"position\": {\n", " \"lat\": 49.620922,\n", " \"lon\": 6.145488\n", " },\n", " \"viewport\": {\n", " \"topLeftPoint\": {\n", " \"lat\": 49.62182,\n", " \"lon\": 6.1441\n", " },\n", " \"btmRightPoint\": {\n", " \"lat\": 49.62002,\n", " \"lon\": 6.14688\n", " }\n", " },\n", " \"entryPoints\": [\n", " {\n", " \"type\": \"main\",\n", " \"position\": {\n", " \"lat\": 49.6207,\n", " \"lon\": 6.14558\n", " }\n", " }\n", " ],\n", " \"detourTime\": 409,\n", " \"detourDistance\": 499\n", " },\n", " {\n", " \"type\": \"POI\",\n", " \"id\": \"GRQxCm-Xv9DCSIbJjyuRBA\",\n", " \"score\": 2.9944090843,\n", " \"dist\": 953.544314,\n", " \"query\": \"restaurant\",\n", " \"info\": \"search:ta:442009000066075-LU\",\n", " \"poi\": {\n", " \"name\": \"La Boqueria\",\n", " \"phone\": \"+352 26 43 04 32\",\n", " \"categorySet\": [\n", " {\n", " \"id\": 7315044\n", " }\n", " ],\n", " \"categories\": [\n", " \"restaurant\",\n", " \"spanish\"\n", " ],\n", " \"classifications\": [\n", " {\n", " \"code\": \"RESTAURANT\",\n", " \"names\": [\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"restaurant\"\n", " },\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"spanish\"\n", " }\n", " ]\n", " }\n", " ]\n", " },\n", " \"address\": {\n", " \"streetNumber\": \"2\",\n", " \"streetName\": \"Rue \\u00c9rasme\",\n", " \"municipality\": \"Luxembourg\",\n", " \"neighbourhood\": \"Kirchberg\",\n", " \"countrySubdivision\": \"Luxembourg\",\n", " \"countrySubdivisionName\": \"Luxembourg\",\n", " \"countrySubdivisionCode\": \"LU\",\n", " \"postalCode\": \"L-1468\",\n", " \"countryCode\": \"LU\",\n", " \"country\": \"Luxembourg\",\n", " \"countryCodeISO3\": \"LUX\",\n", " \"freeformAddress\": \"2 Rue \\u00c9rasme, L-1468 Luxembourg\",\n", " \"localName\": \"Luxembourg\"\n", " },\n", " \"position\": {\n", " \"lat\": 49.622898,\n", " \"lon\": 6.151979\n", " },\n", " \"viewport\": {\n", " \"topLeftPoint\": {\n", " \"lat\": 49.62394,\n", " \"lon\": 6.15038\n", " },\n", " \"btmRightPoint\": {\n", " \"lat\": 49.62186,\n", " \"lon\": 6.15358\n", " }\n", " },\n", " \"entryPoints\": [\n", " {\n", " \"type\": \"main\",\n", " \"position\": {\n", " \"lat\": 49.62189,\n", " \"lon\": 6.15159\n", " }\n", " }\n", " ],\n", " \"detourTime\": 412,\n", " \"detourDistance\": 539\n", " },\n", " {\n", " \"type\": \"POI\",\n", " \"id\": \"uErN_Aj5l4GFoWcAw2qpNQ\",\n", " \"score\": 2.9944090843,\n", " \"dist\": 953.544314,\n", " \"query\": \"restaurant\",\n", " \"info\": \"search:ta:442009000471125-LU\",\n", " \"poi\": {\n", " \"name\": \"El Barrio Restaurante Y Tapas Bar\",\n", " \"phone\": \"+352 26 43 15 03\",\n", " \"categorySet\": [\n", " {\n", " \"id\": 7315076\n", " }\n", " ],\n", " \"url\": \"www.elbarrio.lu\",\n", " \"categories\": [\n", " \"restaurant\",\n", " \"tapas\"\n", " ],\n", " \"classifications\": [\n", " {\n", " \"code\": \"RESTAURANT\",\n", " \"names\": [\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"restaurant\"\n", " },\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"tapas\"\n", " }\n", " ]\n", " }\n", " ]\n", " },\n", " \"address\": {\n", " \"streetNumber\": \"2\",\n", " \"streetName\": \"Rue \\u00c9rasme\",\n", " \"municipality\": \"Luxembourg\",\n", " \"neighbourhood\": \"Kirchberg\",\n", " \"countrySubdivision\": \"Luxembourg\",\n", " \"countrySubdivisionName\": \"Luxembourg\",\n", " \"countrySubdivisionCode\": \"LU\",\n", " \"postalCode\": \"L-1468\",\n", " \"countryCode\": \"LU\",\n", " \"country\": \"Luxembourg\",\n", " \"countryCodeISO3\": \"LUX\",\n", " \"freeformAddress\": \"2 Rue \\u00c9rasme, L-1468 Luxembourg\",\n", " \"localName\": \"Luxembourg\"\n", " },\n", " \"position\": {\n", " \"lat\": 49.622898,\n", " \"lon\": 6.151979\n", " },\n", " \"viewport\": {\n", " \"topLeftPoint\": {\n", " \"lat\": 49.624,\n", " \"lon\": 6.15028\n", " },\n", " \"btmRightPoint\": {\n", " \"lat\": 49.6218,\n", " \"lon\": 6.15367\n", " }\n", " },\n", " \"entryPoints\": [\n", " {\n", " \"type\": \"main\",\n", " \"position\": {\n", " \"lat\": 49.62182,\n", " \"lon\": 6.15166\n", " }\n", " }\n", " ],\n", " \"detourTime\": 412,\n", " \"detourDistance\": 539\n", " },\n", " {\n", " \"type\": \"POI\",\n", " \"id\": \"HFrHOdjPp87z5PnoVIsSUw\",\n", " \"score\": 2.9906308651,\n", " \"dist\": 1835.266178,\n", " \"query\": \"restaurant\",\n", " \"info\": \"search:ta:442007000006003-LU\",\n", " \"poi\": {\n", " \"name\": \"De Feierwon\",\n", " \"categorySet\": [\n", " {\n", " \"id\": 7315\n", " }\n", " ],\n", " \"url\": \"defeierwon.lu\",\n", " \"categories\": [\n", " \"restaurant\"\n", " ],\n", " \"classifications\": [\n", " {\n", " \"code\": \"RESTAURANT\",\n", " \"names\": [\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"restaurant\"\n", " }\n", " ]\n", " }\n", " ]\n", " },\n", " \"address\": {\n", " \"streetNumber\": \"6\",\n", " \"streetName\": \"Rue du Fort Niedergr\\u00fcnewald\",\n", " \"municipality\": \"Luxembourg\",\n", " \"neighbourhood\": \"Kirchberg\",\n", " \"countrySubdivision\": \"Luxembourg\",\n", " \"countrySubdivisionName\": \"Luxembourg\",\n", " \"countrySubdivisionCode\": \"LU\",\n", " \"postalCode\": \"L-2226\",\n", " \"countryCode\": \"LU\",\n", " \"country\": \"Luxembourg\",\n", " \"countryCodeISO3\": \"LUX\",\n", " \"freeformAddress\": \"6 Rue du Fort Niedergr\\u00fcnewald, L-2226 Luxembourg (Rue Johannes Kepler)\",\n", " \"localName\": \"Luxembourg\"\n", " },\n", " \"position\": {\n", " \"lat\": 49.620396,\n", " \"lon\": 6.144454\n", " },\n", " \"viewport\": {\n", " \"topLeftPoint\": {\n", " \"lat\": 49.6213,\n", " \"lon\": 6.14307\n", " },\n", " \"btmRightPoint\": {\n", " \"lat\": 49.6195,\n", " \"lon\": 6.14584\n", " }\n", " },\n", " \"entryPoints\": [\n", " {\n", " \"type\": \"main\",\n", " \"position\": {\n", " \"lat\": 49.62012,\n", " \"lon\": 6.14423\n", " }\n", " }\n", " ],\n", " \"detourTime\": 413,\n", " \"detourDistance\": 499\n", " },\n", " {\n", " \"type\": \"POI\",\n", " \"id\": \"hexL0ByG18t7pRYUqjUIPA\",\n", " \"score\": 2.9847836494,\n", " \"dist\": 3151.929629,\n", " \"query\": \"restaurant\",\n", " \"info\": \"search:ta:442007000006816-LU\",\n", " \"poi\": {\n", " \"name\": \"Oekosoph\",\n", " \"categorySet\": [\n", " {\n", " \"id\": 7315025\n", " }\n", " ],\n", " \"url\": \"www.oekosoph.lu/\",\n", " \"categories\": [\n", " \"italian\",\n", " \"restaurant\"\n", " ],\n", " \"classifications\": [\n", " {\n", " \"code\": \"RESTAURANT\",\n", " \"names\": [\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"restaurant\"\n", " },\n", " {\n", " \"nameLocale\": \"en-US\",\n", " \"name\": \"italian\"\n", " }\n", " ]\n", " }\n", " ]\n", " },\n", " \"address\": {\n", " \"streetNumber\": \"6\",\n", " \"streetName\": \"Rue Vauban\",\n", " \"municipality\": \"Luxembourg\",\n", " \"neighbourhood\": \"Pfaffenthal\",\n", " \"countrySubdivision\": \"Luxembourg\",\n", " \"countrySubdivisionName\": \"Luxembourg\",\n", " \"countrySubdivisionCode\": \"LU\",\n", " \"postalCode\": \"L-2663\",\n", " \"countryCode\": \"LU\",\n", " \"country\": \"Luxembourg\",\n", " \"countryCodeISO3\": \"LUX\",\n", " \"freeformAddress\": \"6 Rue Vauban, L-2663 Luxembourg\",\n", " \"localName\": \"Luxembourg\"\n", " },\n", " \"position\": {\n", " \"lat\": 49.614794,\n", " \"lon\": 6.13392\n", " },\n", " \"viewport\": {\n", " \"topLeftPoint\": {\n", " \"lat\": 49.61569,\n", " \"lon\": 6.13253\n", " },\n", " \"btmRightPoint\": {\n", " \"lat\": 49.61389,\n", " \"lon\": 6.13531\n", " }\n", " },\n", " \"entryPoints\": [\n", " {\n", " \"type\": \"main\",\n", " \"position\": {\n", " \"lat\": 49.61495,\n", " \"lon\": 6.13391\n", " }\n", " }\n", " ],\n", " \"detourTime\": 452,\n", " \"detourDistance\": 1695\n", " }\n", " ]\n", "}\n", " \n", "Along the route to Luxembourg Gare, there is the Eischen Paul Restaurant-Traiteur at 45 Avenue John Fitzgerald Kennedy, L-1855 Lëtzebuerg that would represent a detour of 0 minutes. \n", "Along the route to Luxembourg Gare, there is the Lounge Act One at 7 Avenue John Fitzgerald Kennedy, L-1855 Luxembourg (N51) that would represent a detour of 0 minutes. \n", "Along the route to Luxembourg Gare, there is the Ela Greek Cuisine at 37 Avenue John Fitzgerald Kennedy, L-1855 Luxembourg that would represent a detour of 0 minutes. \n", "Along the route to Luxembourg Gare, there is the Thaï Restaurant at 18 Rue Alcide De Gasperi, L-1615 Luxembourg that would represent a detour of 1 minutes. \n", "Along the route to Luxembourg Gare, there is the Tempo Restaurant at 1 Place de l'Europe, L-1490 Luxembourg that would represent a detour of 1 minutes. \n", "Along the route to Luxembourg Gare, there is the Côté Sushi Infinity at 7 Rue du Fort Niedergruenewald, L-2226 Luxembourg that would represent a detour of 2 minutes. \n", "Along the route to Luxembourg Gare, there is the Mama Restaurant Luxembourg at 2 Rue du Fort Niedergrünewald, Luxembourg that would represent a detour of 2 minutes. \n", "Along the route to Luxembourg Gare, there is the Clé de Sol A La Philharmonie at 1 Place de l'Europe, L-1499 Luxembourg that would represent a detour of 3 minutes. \n", "Along the route to Luxembourg Gare, there is the L'Osteria Luxembourg at 7 Avenue John Fitzgerald Kennedy, L-1855 Luxembourg that would represent a detour of 4 minutes. \n", "Along the route to Luxembourg Gare, there is the Aqua Restaurant at 1 Park Drai Eechelen, L-1499 Luxembourg that would represent a detour of 4 minutes. \n", "Along the route to Luxembourg Gare, there is the D'Coque at 2 Rue Léon Hengen, L-1745 Luxembourg that would represent a detour of 5 minutes. \n", "Along the route to Luxembourg Gare, there is the Mudam: Le Cafe at 3 Park Drai Eechelen, L-1499 Luxembourg that would represent a detour of 6 minutes. \n", "Along the route to Luxembourg Gare, there is the Radici at 6 Rue du Fort Niedergrünewald, L-2226 Luxembourg (Rue Johannes Kepler) that would represent a detour of 6 minutes. \n", "Along the route to Luxembourg Gare, there is the Restaurant Himalaya 2 at 89 Rue des Muguets, L-2167 Luxembourg that would represent a detour of 6 minutes. \n", "Along the route to Luxembourg Gare, there is the N'Bistro at 6 Rue du Fort Niedergrünewald, L-2226 Luxembourg that would represent a detour of 6 minutes. \n", "Along the route to Luxembourg Gare, there is the Dans Le Noir ? Luxembourg at 6 Rue du Fort Niedergrünewald, L-2226 Luxembourg that would represent a detour of 6 minutes. \n", "Along the route to Luxembourg Gare, there is the La Boqueria at 2 Rue Érasme, L-1468 Luxembourg that would represent a detour of 6 minutes. \n", "Along the route to Luxembourg Gare, there is the El Barrio Restaurante Y Tapas Bar at 2 Rue Érasme, L-1468 Luxembourg that would represent a detour of 6 minutes. \n", "Along the route to Luxembourg Gare, there is the De Feierwon at 6 Rue du Fort Niedergrünewald, L-2226 Luxembourg (Rue Johannes Kepler) that would represent a detour of 6 minutes. \n", "Along the route to Luxembourg Gare, there is the Oekosoph at 6 Rue Vauban, L-2663 Luxembourg that would represent a detour of 7 minutes.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Setting `pad_token_id` to `eos_token_id`:2 for open-end generation.\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "The kebab Orient X Kebab Lounge is 2554 meters away. The kebab The Best Kebab is 3599 meters away. The kebab Breaktime Kebab Grill is 4471 meters away. The kebab Kebab Ricelux is 6793 meters away\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Setting `pad_token_id` to `eos_token_id`:2 for open-end generation.\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Luxembourg\n", "The route to go to Luxembourg is 4.42 km and 14 minutes. Leaving now, the arrival time is estimated at 08:14 \n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Setting `pad_token_id` to `eos_token_id`:2 for open-end generation.\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "The kebab Orient X Kebab Lounge is 2554 meters away. The kebab The Best Kebab is 3599 meters away. The kebab Breaktime Kebab Grill is 4471 meters away. The kebab Kebab Ricelux is 6793 meters away\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Setting `pad_token_id` to `eos_token_id`:2 for open-end generation.\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "the first one\n", "The route to go to the first one is 634.64 km and 6 hours and 53 minutes. Leaving now, the arrival time is estimated at 14:53 \n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Setting `pad_token_id` to `eos_token_id`:2 for open-end generation.\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "The restaurant Eischen Paul Restaurant-Traiteur is 137 meters away. The restaurant Piri Piri Portuguese Restaurant & Bar is 149 meters away. The restaurant Sushi Shop is 165 meters away. The restaurant Vida Sushi Lounge-Kirchberg is 294 meters away. The restaurant Restaurant Himalaya 2 is 297 meters away\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Setting `pad_token_id` to `eos_token_id`:2 for open-end generation.\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "get_weather() takes from 0 to 1 positional arguments but 2 were given\n", "Keyboard interruption in main thread... closing server.\n", "Killing tunnel 0.0.0.0:7860 <> None\n" ] }, { "data": { "text/plain": [] }, "execution_count": 77, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#INTERFACE WITH ONLY TEXT\n", "\n", "# Generate options for hours (00-23) \n", "hour_options = [f\"{i:02d}:00:00\" for i in range(24)]\n", "\n", "model_answer= ''\n", "general_context= ''\n", "# Define the initial state with some initial context.\n", "print(general_context)\n", "initial_state = {'context': general_context}\n", "initial_context= initial_state['context']\n", "# Create the Gradio interface.\n", "iface = gr.Interface(\n", " fn=FnAnswer,\n", " inputs=[\n", " gr.Textbox(value=initial_context, visible=False),\n", " gr.Textbox(lines=2, placeholder=\"Type your message here...\"),\n", " gr.Radio(choices=['Luxembourg Gare, Luxembourg', 'Kirchberg Campus, Kirchberg', 'Belval Campus, Belval', 'Eiffel Tower, Paris', 'Thionville, France'], label='Choose a location for your car', value= 'Kirchberg Campus, Kirchberg', show_label=True),\n", " gr.Dropdown(choices=hour_options, label=\"What time is it?\", value = \"08:00:00\"),\n", " gr.Radio([\"Yes\", \"No\"], label=\"Delete the conversation history?\", value = 'No'),\n", " gr.State() # This will keep track of the context state across interactions.\n", " ],\n", " outputs=[\n", " gr.Textbox(),\n", " gr.Textbox(visible=False),\n", " gr.State()\n", " ]\n", ")\n", "gr.close_all()\n", "# Launch the interface.\n", "iface.launch(debug=True, share=True, server_name=\"0.0.0.0\", server_port=7860)\n", "#contextual=gr.Textbox(value=general_context, visible=False)\n", "#demo = gr.Interface(fn=FnAnswer, inputs=[contextual,\"text\"], outputs=[\"text\", contextual])\n", "\n", "#demo.launch()" ] }, { "cell_type": "code", "execution_count": 69, "metadata": { "collapsed": true, "id": "mZTt3y3_KOOF" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "Closing server running on port: 7860\n", "Closing server running on port: 7860\n", "Closing server running on port: 7860\n", "Closing server running on port: 7860\n", "Closing server running on port: 7860\n", "Closing server running on port: 7860\n", "Closing server running on port: 7860\n", "Closing server running on port: 7860\n", "Closing server running on port: 7860\n", "Closing server running on port: 7860\n", "Running on local URL: http://0.0.0.0:7860\n" ] }, { "ename": "KeyboardInterrupt", "evalue": "", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)", "Cell \u001b[0;32mIn[69], line 42\u001b[0m\n\u001b[1;32m 40\u001b[0m gr\u001b[38;5;241m.\u001b[39mclose_all()\n\u001b[1;32m 41\u001b[0m \u001b[38;5;66;03m# Launch the interface.\u001b[39;00m\n\u001b[0;32m---> 42\u001b[0m \u001b[43miface\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mlaunch\u001b[49m\u001b[43m(\u001b[49m\u001b[43mdebug\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mTrue\u001b[39;49;00m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mshare\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mTrue\u001b[39;49;00m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mserver_name\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43m0.0.0.0\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mserver_port\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;241;43m7860\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mssl_verify\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mFalse\u001b[39;49;00m\u001b[43m)\u001b[49m\n", "File \u001b[0;32m/usr/local/lib/python3.10/dist-packages/gradio/blocks.py:2068\u001b[0m, in \u001b[0;36mBlocks.launch\u001b[0;34m(self, inline, inbrowser, share, debug, max_threads, auth, auth_message, prevent_thread_lock, show_error, server_name, server_port, height, width, favicon_path, ssl_keyfile, ssl_certfile, ssl_keyfile_password, ssl_verify, quiet, show_api, allowed_paths, blocked_paths, root_path, app_kwargs, state_session_capacity, share_server_address, share_server_protocol, _frontend)\u001b[0m\n\u001b[1;32m 2066\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[1;32m 2067\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mshare_url \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m-> 2068\u001b[0m share_url \u001b[38;5;241m=\u001b[39m \u001b[43mnetworking\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43msetup_tunnel\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 2069\u001b[0m \u001b[43m \u001b[49m\u001b[43mlocal_host\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mserver_name\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 2070\u001b[0m \u001b[43m \u001b[49m\u001b[43mlocal_port\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mserver_port\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 2071\u001b[0m \u001b[43m \u001b[49m\u001b[43mshare_token\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mshare_token\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 2072\u001b[0m \u001b[43m \u001b[49m\u001b[43mshare_server_address\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mshare_server_address\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 2073\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 2074\u001b[0m parsed_url \u001b[38;5;241m=\u001b[39m urlparse(share_url)\n\u001b[1;32m 2075\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mshare_url \u001b[38;5;241m=\u001b[39m urlunparse(\n\u001b[1;32m 2076\u001b[0m (\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mshare_server_protocol,) \u001b[38;5;241m+\u001b[39m parsed_url[\u001b[38;5;241m1\u001b[39m:]\n\u001b[1;32m 2077\u001b[0m )\n", "File \u001b[0;32m/usr/local/lib/python3.10/dist-packages/gradio/networking.py:229\u001b[0m, in \u001b[0;36msetup_tunnel\u001b[0;34m(local_host, local_port, share_token, share_server_address)\u001b[0m\n\u001b[1;32m 227\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m share_server_address \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[1;32m 228\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m--> 229\u001b[0m response \u001b[38;5;241m=\u001b[39m \u001b[43mhttpx\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget\u001b[49m\u001b[43m(\u001b[49m\u001b[43mGRADIO_API_SERVER\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mtimeout\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;241;43m30\u001b[39;49m\u001b[43m)\u001b[49m\n\u001b[1;32m 230\u001b[0m payload \u001b[38;5;241m=\u001b[39m response\u001b[38;5;241m.\u001b[39mjson()[\u001b[38;5;241m0\u001b[39m]\n\u001b[1;32m 231\u001b[0m remote_host, remote_port \u001b[38;5;241m=\u001b[39m payload[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mhost\u001b[39m\u001b[38;5;124m\"\u001b[39m], \u001b[38;5;28mint\u001b[39m(payload[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mport\u001b[39m\u001b[38;5;124m\"\u001b[39m])\n", "File \u001b[0;32m/usr/local/lib/python3.10/dist-packages/httpx/_api.py:196\u001b[0m, in \u001b[0;36mget\u001b[0;34m(url, params, headers, cookies, auth, proxy, proxies, follow_redirects, cert, verify, timeout, trust_env)\u001b[0m\n\u001b[1;32m 173\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mget\u001b[39m(\n\u001b[1;32m 174\u001b[0m url: URLTypes,\n\u001b[1;32m 175\u001b[0m \u001b[38;5;241m*\u001b[39m,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 186\u001b[0m trust_env: \u001b[38;5;28mbool\u001b[39m \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mTrue\u001b[39;00m,\n\u001b[1;32m 187\u001b[0m ) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m Response:\n\u001b[1;32m 188\u001b[0m \u001b[38;5;250m \u001b[39m\u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m 189\u001b[0m \u001b[38;5;124;03m Sends a `GET` request.\u001b[39;00m\n\u001b[1;32m 190\u001b[0m \n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 194\u001b[0m \u001b[38;5;124;03m on this function, as `GET` requests should not include a request body.\u001b[39;00m\n\u001b[1;32m 195\u001b[0m \u001b[38;5;124;03m \"\"\"\u001b[39;00m\n\u001b[0;32m--> 196\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mrequest\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 197\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mGET\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[1;32m 198\u001b[0m \u001b[43m \u001b[49m\u001b[43murl\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 199\u001b[0m \u001b[43m \u001b[49m\u001b[43mparams\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mparams\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 200\u001b[0m \u001b[43m \u001b[49m\u001b[43mheaders\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mheaders\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 201\u001b[0m \u001b[43m \u001b[49m\u001b[43mcookies\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mcookies\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 202\u001b[0m \u001b[43m \u001b[49m\u001b[43mauth\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mauth\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 203\u001b[0m \u001b[43m \u001b[49m\u001b[43mproxy\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mproxy\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 204\u001b[0m \u001b[43m \u001b[49m\u001b[43mproxies\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mproxies\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 205\u001b[0m \u001b[43m \u001b[49m\u001b[43mfollow_redirects\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mfollow_redirects\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 206\u001b[0m \u001b[43m \u001b[49m\u001b[43mcert\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mcert\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 207\u001b[0m \u001b[43m \u001b[49m\u001b[43mverify\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mverify\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 208\u001b[0m \u001b[43m \u001b[49m\u001b[43mtimeout\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mtimeout\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 209\u001b[0m \u001b[43m \u001b[49m\u001b[43mtrust_env\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mtrust_env\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 210\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n", "File \u001b[0;32m/usr/local/lib/python3.10/dist-packages/httpx/_api.py:104\u001b[0m, in \u001b[0;36mrequest\u001b[0;34m(method, url, params, content, data, files, json, headers, cookies, auth, proxy, proxies, timeout, follow_redirects, verify, cert, trust_env)\u001b[0m\n\u001b[1;32m 44\u001b[0m \u001b[38;5;250m\u001b[39m\u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m 45\u001b[0m \u001b[38;5;124;03mSends an HTTP request.\u001b[39;00m\n\u001b[1;32m 46\u001b[0m \n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 93\u001b[0m \u001b[38;5;124;03m```\u001b[39;00m\n\u001b[1;32m 94\u001b[0m \u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m 95\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m Client(\n\u001b[1;32m 96\u001b[0m cookies\u001b[38;5;241m=\u001b[39mcookies,\n\u001b[1;32m 97\u001b[0m proxy\u001b[38;5;241m=\u001b[39mproxy,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 102\u001b[0m trust_env\u001b[38;5;241m=\u001b[39mtrust_env,\n\u001b[1;32m 103\u001b[0m ) \u001b[38;5;28;01mas\u001b[39;00m client:\n\u001b[0;32m--> 104\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mclient\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mrequest\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 105\u001b[0m \u001b[43m \u001b[49m\u001b[43mmethod\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mmethod\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 106\u001b[0m \u001b[43m \u001b[49m\u001b[43murl\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43murl\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 107\u001b[0m \u001b[43m \u001b[49m\u001b[43mcontent\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mcontent\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 108\u001b[0m \u001b[43m \u001b[49m\u001b[43mdata\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mdata\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 109\u001b[0m \u001b[43m \u001b[49m\u001b[43mfiles\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mfiles\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 110\u001b[0m \u001b[43m \u001b[49m\u001b[43mjson\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mjson\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 111\u001b[0m \u001b[43m \u001b[49m\u001b[43mparams\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mparams\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 112\u001b[0m \u001b[43m \u001b[49m\u001b[43mheaders\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mheaders\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 113\u001b[0m \u001b[43m \u001b[49m\u001b[43mauth\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mauth\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 114\u001b[0m \u001b[43m \u001b[49m\u001b[43mfollow_redirects\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mfollow_redirects\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 115\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n", "File \u001b[0;32m/usr/local/lib/python3.10/dist-packages/httpx/_client.py:828\u001b[0m, in \u001b[0;36mClient.request\u001b[0;34m(self, method, url, content, data, files, json, params, headers, cookies, auth, follow_redirects, timeout, extensions)\u001b[0m\n\u001b[1;32m 813\u001b[0m warnings\u001b[38;5;241m.\u001b[39mwarn(message, \u001b[38;5;167;01mDeprecationWarning\u001b[39;00m)\n\u001b[1;32m 815\u001b[0m request \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mbuild_request(\n\u001b[1;32m 816\u001b[0m method\u001b[38;5;241m=\u001b[39mmethod,\n\u001b[1;32m 817\u001b[0m url\u001b[38;5;241m=\u001b[39murl,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 826\u001b[0m extensions\u001b[38;5;241m=\u001b[39mextensions,\n\u001b[1;32m 827\u001b[0m )\n\u001b[0;32m--> 828\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43msend\u001b[49m\u001b[43m(\u001b[49m\u001b[43mrequest\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mauth\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mauth\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mfollow_redirects\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mfollow_redirects\u001b[49m\u001b[43m)\u001b[49m\n", "File \u001b[0;32m/usr/local/lib/python3.10/dist-packages/httpx/_client.py:915\u001b[0m, in \u001b[0;36mClient.send\u001b[0;34m(self, request, stream, auth, follow_redirects)\u001b[0m\n\u001b[1;32m 907\u001b[0m follow_redirects \u001b[38;5;241m=\u001b[39m (\n\u001b[1;32m 908\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mfollow_redirects\n\u001b[1;32m 909\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(follow_redirects, UseClientDefault)\n\u001b[1;32m 910\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m follow_redirects\n\u001b[1;32m 911\u001b[0m )\n\u001b[1;32m 913\u001b[0m auth \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_build_request_auth(request, auth)\n\u001b[0;32m--> 915\u001b[0m response \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_send_handling_auth\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 916\u001b[0m \u001b[43m \u001b[49m\u001b[43mrequest\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 917\u001b[0m \u001b[43m \u001b[49m\u001b[43mauth\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mauth\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 918\u001b[0m \u001b[43m \u001b[49m\u001b[43mfollow_redirects\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mfollow_redirects\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 919\u001b[0m \u001b[43m \u001b[49m\u001b[43mhistory\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m[\u001b[49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 920\u001b[0m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 921\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[1;32m 922\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m stream:\n", "File \u001b[0;32m/usr/local/lib/python3.10/dist-packages/httpx/_client.py:943\u001b[0m, in \u001b[0;36mClient._send_handling_auth\u001b[0;34m(self, request, auth, follow_redirects, history)\u001b[0m\n\u001b[1;32m 940\u001b[0m request \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mnext\u001b[39m(auth_flow)\n\u001b[1;32m 942\u001b[0m \u001b[38;5;28;01mwhile\u001b[39;00m \u001b[38;5;28;01mTrue\u001b[39;00m:\n\u001b[0;32m--> 943\u001b[0m response \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_send_handling_redirects\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 944\u001b[0m \u001b[43m \u001b[49m\u001b[43mrequest\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 945\u001b[0m \u001b[43m \u001b[49m\u001b[43mfollow_redirects\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mfollow_redirects\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 946\u001b[0m \u001b[43m \u001b[49m\u001b[43mhistory\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mhistory\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 947\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 948\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[1;32m 949\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n", "File \u001b[0;32m/usr/local/lib/python3.10/dist-packages/httpx/_client.py:980\u001b[0m, in \u001b[0;36mClient._send_handling_redirects\u001b[0;34m(self, request, follow_redirects, history)\u001b[0m\n\u001b[1;32m 977\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m hook \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_event_hooks[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mrequest\u001b[39m\u001b[38;5;124m\"\u001b[39m]:\n\u001b[1;32m 978\u001b[0m hook(request)\n\u001b[0;32m--> 980\u001b[0m response \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_send_single_request\u001b[49m\u001b[43m(\u001b[49m\u001b[43mrequest\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 981\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[1;32m 982\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m hook \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_event_hooks[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mresponse\u001b[39m\u001b[38;5;124m\"\u001b[39m]:\n", "File \u001b[0;32m/usr/local/lib/python3.10/dist-packages/httpx/_client.py:1016\u001b[0m, in \u001b[0;36mClient._send_single_request\u001b[0;34m(self, request)\u001b[0m\n\u001b[1;32m 1011\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mRuntimeError\u001b[39;00m(\n\u001b[1;32m 1012\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mAttempted to send an async request with a sync Client instance.\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 1013\u001b[0m )\n\u001b[1;32m 1015\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m request_context(request\u001b[38;5;241m=\u001b[39mrequest):\n\u001b[0;32m-> 1016\u001b[0m response \u001b[38;5;241m=\u001b[39m \u001b[43mtransport\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mhandle_request\u001b[49m\u001b[43m(\u001b[49m\u001b[43mrequest\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1018\u001b[0m \u001b[38;5;28;01massert\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(response\u001b[38;5;241m.\u001b[39mstream, SyncByteStream)\n\u001b[1;32m 1020\u001b[0m response\u001b[38;5;241m.\u001b[39mrequest \u001b[38;5;241m=\u001b[39m request\n", "File \u001b[0;32m/usr/local/lib/python3.10/dist-packages/httpx/_transports/default.py:231\u001b[0m, in \u001b[0;36mHTTPTransport.handle_request\u001b[0;34m(self, request)\u001b[0m\n\u001b[1;32m 218\u001b[0m req \u001b[38;5;241m=\u001b[39m httpcore\u001b[38;5;241m.\u001b[39mRequest(\n\u001b[1;32m 219\u001b[0m method\u001b[38;5;241m=\u001b[39mrequest\u001b[38;5;241m.\u001b[39mmethod,\n\u001b[1;32m 220\u001b[0m url\u001b[38;5;241m=\u001b[39mhttpcore\u001b[38;5;241m.\u001b[39mURL(\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 228\u001b[0m extensions\u001b[38;5;241m=\u001b[39mrequest\u001b[38;5;241m.\u001b[39mextensions,\n\u001b[1;32m 229\u001b[0m )\n\u001b[1;32m 230\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m map_httpcore_exceptions():\n\u001b[0;32m--> 231\u001b[0m resp \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_pool\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mhandle_request\u001b[49m\u001b[43m(\u001b[49m\u001b[43mreq\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 233\u001b[0m \u001b[38;5;28;01massert\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(resp\u001b[38;5;241m.\u001b[39mstream, typing\u001b[38;5;241m.\u001b[39mIterable)\n\u001b[1;32m 235\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m Response(\n\u001b[1;32m 236\u001b[0m status_code\u001b[38;5;241m=\u001b[39mresp\u001b[38;5;241m.\u001b[39mstatus,\n\u001b[1;32m 237\u001b[0m headers\u001b[38;5;241m=\u001b[39mresp\u001b[38;5;241m.\u001b[39mheaders,\n\u001b[1;32m 238\u001b[0m stream\u001b[38;5;241m=\u001b[39mResponseStream(resp\u001b[38;5;241m.\u001b[39mstream),\n\u001b[1;32m 239\u001b[0m extensions\u001b[38;5;241m=\u001b[39mresp\u001b[38;5;241m.\u001b[39mextensions,\n\u001b[1;32m 240\u001b[0m )\n", "File \u001b[0;32m/usr/local/lib/python3.10/dist-packages/httpcore/_sync/connection_pool.py:268\u001b[0m, in \u001b[0;36mConnectionPool.handle_request\u001b[0;34m(self, request)\u001b[0m\n\u001b[1;32m 266\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m ShieldCancellation():\n\u001b[1;32m 267\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mresponse_closed(status)\n\u001b[0;32m--> 268\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m exc\n\u001b[1;32m 269\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 270\u001b[0m \u001b[38;5;28;01mbreak\u001b[39;00m\n", "File \u001b[0;32m/usr/local/lib/python3.10/dist-packages/httpcore/_sync/connection_pool.py:251\u001b[0m, in \u001b[0;36mConnectionPool.handle_request\u001b[0;34m(self, request)\u001b[0m\n\u001b[1;32m 248\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m exc\n\u001b[1;32m 250\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m--> 251\u001b[0m response \u001b[38;5;241m=\u001b[39m \u001b[43mconnection\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mhandle_request\u001b[49m\u001b[43m(\u001b[49m\u001b[43mrequest\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 252\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m ConnectionNotAvailable:\n\u001b[1;32m 253\u001b[0m \u001b[38;5;66;03m# The ConnectionNotAvailable exception is a special case, that\u001b[39;00m\n\u001b[1;32m 254\u001b[0m \u001b[38;5;66;03m# indicates we need to retry the request on a new connection.\u001b[39;00m\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 258\u001b[0m \u001b[38;5;66;03m# might end up as an HTTP/2 connection, but which actually ends\u001b[39;00m\n\u001b[1;32m 259\u001b[0m \u001b[38;5;66;03m# up as HTTP/1.1.\u001b[39;00m\n\u001b[1;32m 260\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_pool_lock:\n\u001b[1;32m 261\u001b[0m \u001b[38;5;66;03m# Maintain our position in the request queue, but reset the\u001b[39;00m\n\u001b[1;32m 262\u001b[0m \u001b[38;5;66;03m# status so that the request becomes queued again.\u001b[39;00m\n", "File \u001b[0;32m/usr/local/lib/python3.10/dist-packages/httpcore/_sync/connection.py:103\u001b[0m, in \u001b[0;36mHTTPConnection.handle_request\u001b[0;34m(self, request)\u001b[0m\n\u001b[1;32m 100\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_connection\u001b[38;5;241m.\u001b[39mis_available():\n\u001b[1;32m 101\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m ConnectionNotAvailable()\n\u001b[0;32m--> 103\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_connection\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mhandle_request\u001b[49m\u001b[43m(\u001b[49m\u001b[43mrequest\u001b[49m\u001b[43m)\u001b[49m\n", "File \u001b[0;32m/usr/local/lib/python3.10/dist-packages/httpcore/_sync/http11.py:133\u001b[0m, in \u001b[0;36mHTTP11Connection.handle_request\u001b[0;34m(self, request)\u001b[0m\n\u001b[1;32m 131\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m Trace(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mresponse_closed\u001b[39m\u001b[38;5;124m\"\u001b[39m, logger, request) \u001b[38;5;28;01mas\u001b[39;00m trace:\n\u001b[1;32m 132\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_response_closed()\n\u001b[0;32m--> 133\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m exc\n", "File \u001b[0;32m/usr/local/lib/python3.10/dist-packages/httpcore/_sync/http11.py:111\u001b[0m, in \u001b[0;36mHTTP11Connection.handle_request\u001b[0;34m(self, request)\u001b[0m\n\u001b[1;32m 101\u001b[0m \u001b[38;5;28;01mpass\u001b[39;00m\n\u001b[1;32m 103\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m Trace(\n\u001b[1;32m 104\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mreceive_response_headers\u001b[39m\u001b[38;5;124m\"\u001b[39m, logger, request, kwargs\n\u001b[1;32m 105\u001b[0m ) \u001b[38;5;28;01mas\u001b[39;00m trace:\n\u001b[1;32m 106\u001b[0m (\n\u001b[1;32m 107\u001b[0m http_version,\n\u001b[1;32m 108\u001b[0m status,\n\u001b[1;32m 109\u001b[0m reason_phrase,\n\u001b[1;32m 110\u001b[0m headers,\n\u001b[0;32m--> 111\u001b[0m ) \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_receive_response_headers\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 112\u001b[0m trace\u001b[38;5;241m.\u001b[39mreturn_value \u001b[38;5;241m=\u001b[39m (\n\u001b[1;32m 113\u001b[0m http_version,\n\u001b[1;32m 114\u001b[0m status,\n\u001b[1;32m 115\u001b[0m reason_phrase,\n\u001b[1;32m 116\u001b[0m headers,\n\u001b[1;32m 117\u001b[0m )\n\u001b[1;32m 119\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m Response(\n\u001b[1;32m 120\u001b[0m status\u001b[38;5;241m=\u001b[39mstatus,\n\u001b[1;32m 121\u001b[0m headers\u001b[38;5;241m=\u001b[39mheaders,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 127\u001b[0m },\n\u001b[1;32m 128\u001b[0m )\n", "File \u001b[0;32m/usr/local/lib/python3.10/dist-packages/httpcore/_sync/http11.py:176\u001b[0m, in \u001b[0;36mHTTP11Connection._receive_response_headers\u001b[0;34m(self, request)\u001b[0m\n\u001b[1;32m 173\u001b[0m timeout \u001b[38;5;241m=\u001b[39m timeouts\u001b[38;5;241m.\u001b[39mget(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mread\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;28;01mNone\u001b[39;00m)\n\u001b[1;32m 175\u001b[0m \u001b[38;5;28;01mwhile\u001b[39;00m \u001b[38;5;28;01mTrue\u001b[39;00m:\n\u001b[0;32m--> 176\u001b[0m event \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_receive_event\u001b[49m\u001b[43m(\u001b[49m\u001b[43mtimeout\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mtimeout\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 177\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(event, h11\u001b[38;5;241m.\u001b[39mResponse):\n\u001b[1;32m 178\u001b[0m \u001b[38;5;28;01mbreak\u001b[39;00m\n", "File \u001b[0;32m/usr/local/lib/python3.10/dist-packages/httpcore/_sync/http11.py:212\u001b[0m, in \u001b[0;36mHTTP11Connection._receive_event\u001b[0;34m(self, timeout)\u001b[0m\n\u001b[1;32m 209\u001b[0m event \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_h11_state\u001b[38;5;241m.\u001b[39mnext_event()\n\u001b[1;32m 211\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m event \u001b[38;5;129;01mis\u001b[39;00m h11\u001b[38;5;241m.\u001b[39mNEED_DATA:\n\u001b[0;32m--> 212\u001b[0m data \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_network_stream\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mread\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 213\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mREAD_NUM_BYTES\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mtimeout\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mtimeout\u001b[49m\n\u001b[1;32m 214\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 216\u001b[0m \u001b[38;5;66;03m# If we feed this case through h11 we'll raise an exception like:\u001b[39;00m\n\u001b[1;32m 217\u001b[0m \u001b[38;5;66;03m#\u001b[39;00m\n\u001b[1;32m 218\u001b[0m \u001b[38;5;66;03m# httpcore.RemoteProtocolError: can't handle event type\u001b[39;00m\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 222\u001b[0m \u001b[38;5;66;03m# perspective. Instead we handle this case distinctly and treat\u001b[39;00m\n\u001b[1;32m 223\u001b[0m \u001b[38;5;66;03m# it as a ConnectError.\u001b[39;00m\n\u001b[1;32m 224\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m data \u001b[38;5;241m==\u001b[39m \u001b[38;5;124mb\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;129;01mand\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_h11_state\u001b[38;5;241m.\u001b[39mtheir_state \u001b[38;5;241m==\u001b[39m h11\u001b[38;5;241m.\u001b[39mSEND_RESPONSE:\n", "File \u001b[0;32m/usr/local/lib/python3.10/dist-packages/httpcore/_backends/sync.py:126\u001b[0m, in \u001b[0;36mSyncStream.read\u001b[0;34m(self, max_bytes, timeout)\u001b[0m\n\u001b[1;32m 124\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m map_exceptions(exc_map):\n\u001b[1;32m 125\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_sock\u001b[38;5;241m.\u001b[39msettimeout(timeout)\n\u001b[0;32m--> 126\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_sock\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mrecv\u001b[49m\u001b[43m(\u001b[49m\u001b[43mmax_bytes\u001b[49m\u001b[43m)\u001b[49m\n", "File \u001b[0;32m/usr/lib/python3.10/ssl.py:1259\u001b[0m, in \u001b[0;36mSSLSocket.recv\u001b[0;34m(self, buflen, flags)\u001b[0m\n\u001b[1;32m 1255\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m flags \u001b[38;5;241m!=\u001b[39m \u001b[38;5;241m0\u001b[39m:\n\u001b[1;32m 1256\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mValueError\u001b[39;00m(\n\u001b[1;32m 1257\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mnon-zero flags not allowed in calls to recv() on \u001b[39m\u001b[38;5;132;01m%s\u001b[39;00m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;241m%\u001b[39m\n\u001b[1;32m 1258\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m\u001b[38;5;18m__class__\u001b[39m)\n\u001b[0;32m-> 1259\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mread\u001b[49m\u001b[43m(\u001b[49m\u001b[43mbuflen\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1260\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 1261\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28msuper\u001b[39m()\u001b[38;5;241m.\u001b[39mrecv(buflen, flags)\n", "File \u001b[0;32m/usr/lib/python3.10/ssl.py:1132\u001b[0m, in \u001b[0;36mSSLSocket.read\u001b[0;34m(self, len, buffer)\u001b[0m\n\u001b[1;32m 1130\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_sslobj\u001b[38;5;241m.\u001b[39mread(\u001b[38;5;28mlen\u001b[39m, buffer)\n\u001b[1;32m 1131\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m-> 1132\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_sslobj\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mread\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mlen\u001b[39;49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1133\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m SSLError \u001b[38;5;28;01mas\u001b[39;00m x:\n\u001b[1;32m 1134\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m x\u001b[38;5;241m.\u001b[39margs[\u001b[38;5;241m0\u001b[39m] \u001b[38;5;241m==\u001b[39m SSL_ERROR_EOF \u001b[38;5;129;01mand\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39msuppress_ragged_eofs:\n", "\u001b[0;31mKeyboardInterrupt\u001b[0m: " ] } ], "source": [ "#INTERFACE WITH AUDIO TO AUDIO\n", "\n", "#to be able to use the microphone on chrome, you will have to go to chrome://flags/#unsafely-treat-insecure-origin-as-secure and enter http://10.186.115.21:7860/ \n", "#in \"Insecure origins treated as secure\", enable it and relaunch chrome\n", "\n", "#example question: \n", "# what's the weather like outside?\n", "# What's the closest restaurant from here?\n", "\n", "\n", "\n", "# Generate options for hours (00-23) \n", "hour_options = [f\"{i:02d}:00:00\" for i in range(24)]\n", "\n", "model_answer= ''\n", "general_context= ''\n", "# Define the initial state with some initial context.\n", "print(general_context)\n", "initial_state = {'context': general_context}\n", "initial_context= initial_state['context']\n", "# Create the Gradio interface.\n", "iface = gr.Interface(\n", " fn=transcript,\n", " inputs=[\n", " gr.Textbox(value=initial_context, visible=False),\n", " gr.Audio( type='filepath', label = 'input audio'),\n", " gr.Radio(choices=['Donald Trump', 'Eddie Murphy'], label='Choose a voice', value= 'Donald Trump', show_label=True), # Radio button for voice selection\n", " gr.Radio(choices=['Luxembourg Gare, Luxembourg', 'Kirchberg Campus, Kirchberg', 'Belval Campus, Belval', 'Eiffel Tower, Paris', 'Thionville, France'], label='Choose a location for your car', value= 'Kirchberg Campus, Kirchberg', show_label=True),\n", " gr.Dropdown(choices=hour_options, label=\"What time is it?\", value = \"08:00:00\"),\n", " gr.Radio([\"Yes\", \"No\"], label=\"Delete the conversation history?\", value = 'No'),\n", " gr.State() # This will keep track of the context state across interactions.\n", " ],\n", " outputs=[\n", " gr.Audio(label = 'output audio'),\n", " gr.Textbox(visible=False),\n", " gr.State()\n", " ]\n", ")\n", "#close all interfaces open to make the port available\n", "gr.close_all()\n", "# Launch the interface.\n", "iface.launch(debug=True, share=True, server_name=\"0.0.0.0\", server_port=7860, ssl_verify=False)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Other possible APIs to use" ] }, { "cell_type": "code", "execution_count": 80, "metadata": {}, "outputs": [ { "ename": "JSONDecodeError", "evalue": "Expecting value: line 1 column 1 (char 0)", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mJSONDecodeError\u001b[0m Traceback (most recent call last)", "File \u001b[0;32m/usr/local/lib/python3.10/dist-packages/requests/models.py:971\u001b[0m, in \u001b[0;36mResponse.json\u001b[0;34m(self, **kwargs)\u001b[0m\n\u001b[1;32m 970\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m--> 971\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mcomplexjson\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mloads\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mtext\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 972\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m JSONDecodeError \u001b[38;5;28;01mas\u001b[39;00m e:\n\u001b[1;32m 973\u001b[0m \u001b[38;5;66;03m# Catch JSON-related errors and raise as requests.JSONDecodeError\u001b[39;00m\n\u001b[1;32m 974\u001b[0m \u001b[38;5;66;03m# This aliases json.JSONDecodeError and simplejson.JSONDecodeError\u001b[39;00m\n", "File \u001b[0;32m/usr/lib/python3.10/json/__init__.py:346\u001b[0m, in \u001b[0;36mloads\u001b[0;34m(s, cls, object_hook, parse_float, parse_int, parse_constant, object_pairs_hook, **kw)\u001b[0m\n\u001b[1;32m 343\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m (\u001b[38;5;28mcls\u001b[39m \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;129;01mand\u001b[39;00m object_hook \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;129;01mand\u001b[39;00m\n\u001b[1;32m 344\u001b[0m parse_int \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;129;01mand\u001b[39;00m parse_float \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;129;01mand\u001b[39;00m\n\u001b[1;32m 345\u001b[0m parse_constant \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;129;01mand\u001b[39;00m object_pairs_hook \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;129;01mand\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m kw):\n\u001b[0;32m--> 346\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43m_default_decoder\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdecode\u001b[49m\u001b[43m(\u001b[49m\u001b[43ms\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 347\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mcls\u001b[39m \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n", "File \u001b[0;32m/usr/lib/python3.10/json/decoder.py:337\u001b[0m, in \u001b[0;36mJSONDecoder.decode\u001b[0;34m(self, s, _w)\u001b[0m\n\u001b[1;32m 333\u001b[0m \u001b[38;5;250m\u001b[39m\u001b[38;5;124;03m\"\"\"Return the Python representation of ``s`` (a ``str`` instance\u001b[39;00m\n\u001b[1;32m 334\u001b[0m \u001b[38;5;124;03mcontaining a JSON document).\u001b[39;00m\n\u001b[1;32m 335\u001b[0m \n\u001b[1;32m 336\u001b[0m \u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[0;32m--> 337\u001b[0m obj, end \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mraw_decode\u001b[49m\u001b[43m(\u001b[49m\u001b[43ms\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43midx\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m_w\u001b[49m\u001b[43m(\u001b[49m\u001b[43ms\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m0\u001b[39;49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mend\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 338\u001b[0m end \u001b[38;5;241m=\u001b[39m _w(s, end)\u001b[38;5;241m.\u001b[39mend()\n", "File \u001b[0;32m/usr/lib/python3.10/json/decoder.py:355\u001b[0m, in \u001b[0;36mJSONDecoder.raw_decode\u001b[0;34m(self, s, idx)\u001b[0m\n\u001b[1;32m 354\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mStopIteration\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m err:\n\u001b[0;32m--> 355\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m JSONDecodeError(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mExpecting value\u001b[39m\u001b[38;5;124m\"\u001b[39m, s, err\u001b[38;5;241m.\u001b[39mvalue) \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[1;32m 356\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m obj, end\n", "\u001b[0;31mJSONDecodeError\u001b[0m: Expecting value: line 1 column 1 (char 0)", "\nDuring handling of the above exception, another exception occurred:\n", "\u001b[0;31mJSONDecodeError\u001b[0m Traceback (most recent call last)", "Cell \u001b[0;32mIn[80], line 25\u001b[0m\n\u001b[1;32m 20\u001b[0m \u001b[38;5;28;01mbreak\u001b[39;00m\n\u001b[1;32m 22\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m. \u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;241m.\u001b[39mjoin(results)\n\u001b[0;32m---> 25\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[43msearch_nearby\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[38;5;124;43m49.625892805337514\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[38;5;124;43m6.160417066963513\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[38;5;124;43myour location\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mTOMTOM_KEY\u001b[49m\u001b[43m)\u001b[49m)\n", "Cell \u001b[0;32mIn[80], line 17\u001b[0m, in \u001b[0;36msearch_nearby\u001b[0;34m(lat, lon, city, key)\u001b[0m\n\u001b[1;32m 9\u001b[0m results \u001b[38;5;241m=\u001b[39m []\n\u001b[1;32m 11\u001b[0m r \u001b[38;5;241m=\u001b[39m requests\u001b[38;5;241m.\u001b[39mget(\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mhttps://api.tomtom.com/search/2/nearbySearch/.json?key=\u001b[39m\u001b[38;5;132;01m{0}\u001b[39;00m\u001b[38;5;124m&lat=\u001b[39m\u001b[38;5;132;01m{1}\u001b[39;00m\u001b[38;5;124m&lon=\u001b[39m\u001b[38;5;132;01m{2}\u001b[39;00m\u001b[38;5;124m&radius=10000&limit=50\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;241m.\u001b[39mformat(\n\u001b[1;32m 12\u001b[0m key,\n\u001b[1;32m 13\u001b[0m lat,\n\u001b[1;32m 14\u001b[0m lon\n\u001b[1;32m 15\u001b[0m ))\n\u001b[0;32m---> 17\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m result \u001b[38;5;129;01min\u001b[39;00m \u001b[43mr\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mjson\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mresults\u001b[39m\u001b[38;5;124m'\u001b[39m]:\n\u001b[1;32m 18\u001b[0m results\u001b[38;5;241m.\u001b[39mappend(\u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mThe \u001b[39m\u001b[38;5;132;01m{\u001b[39;00m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124m \u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;241m.\u001b[39mjoin(result[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mpoi\u001b[39m\u001b[38;5;124m'\u001b[39m][\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mcategories\u001b[39m\u001b[38;5;124m'\u001b[39m])\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mresult[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mpoi\u001b[39m\u001b[38;5;124m'\u001b[39m][\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mname\u001b[39m\u001b[38;5;124m'\u001b[39m]\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m is \u001b[39m\u001b[38;5;132;01m{\u001b[39;00m\u001b[38;5;28mint\u001b[39m(result[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mdist\u001b[39m\u001b[38;5;124m'\u001b[39m])\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m meters far from \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mcity\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m\"\u001b[39m)\n\u001b[1;32m 19\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mlen\u001b[39m(results) \u001b[38;5;241m==\u001b[39m \u001b[38;5;241m7\u001b[39m:\n", "File \u001b[0;32m/usr/local/lib/python3.10/dist-packages/requests/models.py:975\u001b[0m, in \u001b[0;36mResponse.json\u001b[0;34m(self, **kwargs)\u001b[0m\n\u001b[1;32m 971\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m complexjson\u001b[38;5;241m.\u001b[39mloads(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mtext, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs)\n\u001b[1;32m 972\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m JSONDecodeError \u001b[38;5;28;01mas\u001b[39;00m e:\n\u001b[1;32m 973\u001b[0m \u001b[38;5;66;03m# Catch JSON-related errors and raise as requests.JSONDecodeError\u001b[39;00m\n\u001b[1;32m 974\u001b[0m \u001b[38;5;66;03m# This aliases json.JSONDecodeError and simplejson.JSONDecodeError\u001b[39;00m\n\u001b[0;32m--> 975\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m RequestsJSONDecodeError(e\u001b[38;5;241m.\u001b[39mmsg, e\u001b[38;5;241m.\u001b[39mdoc, e\u001b[38;5;241m.\u001b[39mpos)\n", "\u001b[0;31mJSONDecodeError\u001b[0m: Expecting value: line 1 column 1 (char 0)" ] } ], "source": [ "\n", "def search_nearby(lat, lon, city, key):\n", " \"\"\"\n", " :param lat: latitude\n", " :param lon: longitude\n", " :param key: api key\n", " :param type: type of poi\n", " :return: [5] results ['poi']['name']/['freeformAddress'] || ['position']['lat']/['lon']\n", " \"\"\"\n", " results = []\n", "\n", " r = requests.get('https://api.tomtom.com/search/2/nearbySearch/.json?key={0}&lat={1}&lon={2}&radius=10000&limit=50'.format(\n", " key,\n", " lat,\n", " lon\n", " ))\n", "\n", " for result in r.json()['results']:\n", " results.append(f\"The {' '.join(result['poi']['categories'])} {result['poi']['name']} is {int(result['dist'])} meters far from {city}\")\n", " if len(results) == 7:\n", " break\n", "\n", " return \". \".join(results)\n", "\n", "\n", "print(search_nearby('49.625892805337514', '6.160417066963513', 'your location', TOMTOM_KEY))" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "accelerator": "GPU", "colab": { "gpuType": "T4", "provenance": [] }, "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.10.12" } }, "nbformat": 4, "nbformat_minor": 1 }