custom-chatbot / app.py
fastx's picture
Rename custom_chatbot.ipynb to app.py
f9a12aa
raw
history blame
62.2 kB
{
"cells": [
{
"cell_type": "markdown",
"metadata": {
"id": "XiUyHP4T2g5F"
},
"source": [
"# Install the dependicies\n",
"Run the code below to install the depencies we need for our functions"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "6LL4rxT6_W7h",
"outputId": "700a185c-1a2a-4f5a-b841-2295ec556b02"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Requirement already satisfied: llama-index in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (0.4.33)\n",
"Requirement already satisfied: dataclasses_json in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from llama-index) (0.5.7)\n",
"Requirement already satisfied: langchain in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from llama-index) (0.0.117)\n",
"Requirement already satisfied: numpy in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from llama-index) (1.24.2)\n",
"Requirement already satisfied: tenacity<9.0.0,>=8.2.0 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from llama-index) (8.2.2)\n",
"Requirement already satisfied: openai>=0.26.4 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from llama-index) (0.27.2)\n",
"Requirement already satisfied: pandas in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from llama-index) (1.5.3)\n",
"Requirement already satisfied: tiktoken in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from llama-index) (0.3.2)\n",
"Requirement already satisfied: requests>=2.20 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from openai>=0.26.4->llama-index) (2.28.2)\n",
"Requirement already satisfied: tqdm in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from openai>=0.26.4->llama-index) (4.65.0)\n",
"Requirement already satisfied: aiohttp in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from openai>=0.26.4->llama-index) (3.8.4)\n",
"Requirement already satisfied: marshmallow<4.0.0,>=3.3.0 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from dataclasses_json->llama-index) (3.19.0)\n",
"Requirement already satisfied: marshmallow-enum<2.0.0,>=1.5.1 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from dataclasses_json->llama-index) (1.5.1)\n",
"Requirement already satisfied: typing-inspect>=0.4.0 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from dataclasses_json->llama-index) (0.8.0)\n",
"Requirement already satisfied: PyYAML>=5.4.1 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from langchain->llama-index) (6.0)\n",
"Requirement already satisfied: SQLAlchemy<2,>=1 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from langchain->llama-index) (1.2.19)\n",
"Requirement already satisfied: pydantic<2,>=1 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from langchain->llama-index) (1.10.6)\n",
"Requirement already satisfied: python-dateutil>=2.8.1 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from pandas->llama-index) (2.8.2)\n",
"Requirement already satisfied: pytz>=2020.1 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from pandas->llama-index) (2022.7.1)\n",
"Requirement already satisfied: regex>=2022.1.18 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from tiktoken->llama-index) (2022.10.31)\n",
"Requirement already satisfied: attrs>=17.3.0 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from aiohttp->openai>=0.26.4->llama-index) (22.2.0)\n",
"Requirement already satisfied: charset-normalizer<4.0,>=2.0 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from aiohttp->openai>=0.26.4->llama-index) (3.1.0)\n",
"Requirement already satisfied: multidict<7.0,>=4.5 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from aiohttp->openai>=0.26.4->llama-index) (6.0.4)\n",
"Requirement already satisfied: async-timeout<5.0,>=4.0.0a3 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from aiohttp->openai>=0.26.4->llama-index) (4.0.2)\n",
"Requirement already satisfied: yarl<2.0,>=1.0 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from aiohttp->openai>=0.26.4->llama-index) (1.8.2)\n",
"Requirement already satisfied: frozenlist>=1.1.1 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from aiohttp->openai>=0.26.4->llama-index) (1.3.3)\n",
"Requirement already satisfied: aiosignal>=1.1.2 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from aiohttp->openai>=0.26.4->llama-index) (1.3.1)\n",
"Requirement already satisfied: packaging>=17.0 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from marshmallow<4.0.0,>=3.3.0->dataclasses_json->llama-index) (23.0)\n",
"Requirement already satisfied: typing-extensions>=4.2.0 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from pydantic<2,>=1->langchain->llama-index) (4.5.0)\n",
"Requirement already satisfied: six>=1.5 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from python-dateutil>=2.8.1->pandas->llama-index) (1.16.0)\n",
"Requirement already satisfied: idna<4,>=2.5 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from requests>=2.20->openai>=0.26.4->llama-index) (3.4)\n",
"Requirement already satisfied: urllib3<1.27,>=1.21.1 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from requests>=2.20->openai>=0.26.4->llama-index) (1.26.15)\n",
"Requirement already satisfied: certifi>=2017.4.17 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from requests>=2.20->openai>=0.26.4->llama-index) (2022.12.7)\n",
"Requirement already satisfied: mypy-extensions>=0.3.0 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from typing-inspect>=0.4.0->dataclasses_json->llama-index) (1.0.0)\n",
"Requirement already satisfied: colorama in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from tqdm->openai>=0.26.4->llama-index) (0.4.6)\n",
"Note: you may need to restart the kernel to use updated packages.\n",
"Requirement already satisfied: langchain in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (0.0.117)\n",
"Requirement already satisfied: PyYAML>=5.4.1 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from langchain) (6.0)\n",
"Requirement already satisfied: SQLAlchemy<2,>=1 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from langchain) (1.2.19)\n",
"Requirement already satisfied: aiohttp<4.0.0,>=3.8.3 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from langchain) (3.8.4)\n",
"Requirement already satisfied: dataclasses-json<0.6.0,>=0.5.7 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from langchain) (0.5.7)\n",
"Requirement already satisfied: numpy<2,>=1 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from langchain) (1.24.2)\n",
"Requirement already satisfied: pydantic<2,>=1 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from langchain) (1.10.6)\n",
"Requirement already satisfied: requests<3,>=2 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from langchain) (2.28.2)\n",
"Requirement already satisfied: tenacity<9.0.0,>=8.1.0 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from langchain) (8.2.2)\n",
"Requirement already satisfied: attrs>=17.3.0 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from aiohttp<4.0.0,>=3.8.3->langchain) (22.2.0)\n",
"Requirement already satisfied: charset-normalizer<4.0,>=2.0 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from aiohttp<4.0.0,>=3.8.3->langchain) (3.1.0)\n",
"Requirement already satisfied: multidict<7.0,>=4.5 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from aiohttp<4.0.0,>=3.8.3->langchain) (6.0.4)\n",
"Requirement already satisfied: async-timeout<5.0,>=4.0.0a3 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from aiohttp<4.0.0,>=3.8.3->langchain) (4.0.2)\n",
"Requirement already satisfied: yarl<2.0,>=1.0 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from aiohttp<4.0.0,>=3.8.3->langchain) (1.8.2)\n",
"Requirement already satisfied: frozenlist>=1.1.1 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from aiohttp<4.0.0,>=3.8.3->langchain) (1.3.3)\n",
"Requirement already satisfied: aiosignal>=1.1.2 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from aiohttp<4.0.0,>=3.8.3->langchain) (1.3.1)\n",
"Requirement already satisfied: marshmallow<4.0.0,>=3.3.0 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from dataclasses-json<0.6.0,>=0.5.7->langchain) (3.19.0)\n",
"Requirement already satisfied: marshmallow-enum<2.0.0,>=1.5.1 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from dataclasses-json<0.6.0,>=0.5.7->langchain) (1.5.1)\n",
"Requirement already satisfied: typing-inspect>=0.4.0 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from dataclasses-json<0.6.0,>=0.5.7->langchain) (0.8.0)\n",
"Requirement already satisfied: typing-extensions>=4.2.0 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from pydantic<2,>=1->langchain) (4.5.0)\n",
"Requirement already satisfied: idna<4,>=2.5 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from requests<3,>=2->langchain) (3.4)\n",
"Requirement already satisfied: urllib3<1.27,>=1.21.1 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from requests<3,>=2->langchain) (1.26.15)\n",
"Requirement already satisfied: certifi>=2017.4.17 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from requests<3,>=2->langchain) (2022.12.7)\n",
"Requirement already satisfied: packaging>=17.0 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from marshmallow<4.0.0,>=3.3.0->dataclasses-json<0.6.0,>=0.5.7->langchain) (23.0)\n",
"Requirement already satisfied: mypy-extensions>=0.3.0 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from typing-inspect>=0.4.0->dataclasses-json<0.6.0,>=0.5.7->langchain) (1.0.0)\n",
"Note: you may need to restart the kernel to use updated packages.\n",
"Requirement already satisfied: gradio in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (3.23.0)\n",
"Requirement already satisfied: aiofiles in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from gradio) (23.1.0)\n",
"Requirement already satisfied: aiohttp in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from gradio) (3.8.4)\n",
"Requirement already satisfied: altair>=4.2.0 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from gradio) (4.2.2)\n",
"Requirement already satisfied: fastapi in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from gradio) (0.95.0)\n",
"Requirement already satisfied: ffmpy in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from gradio) (0.3.0)\n",
"Requirement already satisfied: fsspec in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from gradio) (2023.3.0)\n",
"Requirement already satisfied: httpx in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from gradio) (0.23.3)\n",
"Requirement already satisfied: huggingface-hub in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from gradio) (0.13.3)\n",
"Requirement already satisfied: jinja2 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from gradio) (3.1.2)\n",
"Requirement already satisfied: markdown-it-py[linkify]>=2.0.0 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from gradio) (2.2.0)\n",
"Requirement already satisfied: markupsafe in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from gradio) (2.1.2)\n",
"Requirement already satisfied: matplotlib in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from gradio) (3.7.1)\n",
"Requirement already satisfied: mdit-py-plugins<=0.3.3 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from gradio) (0.3.3)\n",
"Requirement already satisfied: numpy in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from gradio) (1.24.2)\n",
"Requirement already satisfied: orjson in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from gradio) (3.8.8)\n",
"Requirement already satisfied: pandas in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from gradio) (1.5.3)\n",
"Requirement already satisfied: pillow in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from gradio) (9.4.0)\n",
"Requirement already satisfied: pydantic in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from gradio) (1.10.6)\n",
"Requirement already satisfied: pydub in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from gradio) (0.25.1)\n",
"Requirement already satisfied: python-multipart in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from gradio) (0.0.6)\n",
"Requirement already satisfied: pyyaml in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from gradio) (6.0)\n",
"Requirement already satisfied: requests in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from gradio) (2.28.2)\n",
"Requirement already satisfied: semantic-version in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from gradio) (2.10.0)\n",
"Requirement already satisfied: typing-extensions in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from gradio) (4.5.0)\n",
"Requirement already satisfied: uvicorn in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from gradio) (0.21.1)\n",
"Requirement already satisfied: websockets>=10.0 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from gradio) (10.4)\n",
"Requirement already satisfied: entrypoints in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from altair>=4.2.0->gradio) (0.4)\n",
"Requirement already satisfied: jsonschema>=3.0 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from altair>=4.2.0->gradio) (4.17.3)\n",
"Requirement already satisfied: toolz in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from altair>=4.2.0->gradio) (0.12.0)\n",
"Requirement already satisfied: filelock in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from huggingface-hub->gradio) (3.10.0)\n",
"Requirement already satisfied: tqdm>=4.42.1 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from huggingface-hub->gradio) (4.65.0)\n",
"Requirement already satisfied: packaging>=20.9 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from huggingface-hub->gradio) (23.0)\n",
"Requirement already satisfied: mdurl~=0.1 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from markdown-it-py[linkify]>=2.0.0->gradio) (0.1.2)\n",
"Requirement already satisfied: linkify-it-py<3,>=1 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from markdown-it-py[linkify]>=2.0.0->gradio) (2.0.0)\n",
"Requirement already satisfied: python-dateutil>=2.8.1 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from pandas->gradio) (2.8.2)\n",
"Requirement already satisfied: pytz>=2020.1 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from pandas->gradio) (2022.7.1)\n",
"Requirement already satisfied: attrs>=17.3.0 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from aiohttp->gradio) (22.2.0)\n",
"Requirement already satisfied: charset-normalizer<4.0,>=2.0 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from aiohttp->gradio) (3.1.0)\n",
"Requirement already satisfied: multidict<7.0,>=4.5 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from aiohttp->gradio) (6.0.4)\n",
"Requirement already satisfied: async-timeout<5.0,>=4.0.0a3 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from aiohttp->gradio) (4.0.2)\n",
"Requirement already satisfied: yarl<2.0,>=1.0 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from aiohttp->gradio) (1.8.2)\n",
"Requirement already satisfied: frozenlist>=1.1.1 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from aiohttp->gradio) (1.3.3)\n",
"Requirement already satisfied: aiosignal>=1.1.2 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from aiohttp->gradio) (1.3.1)\n",
"Requirement already satisfied: starlette<0.27.0,>=0.26.1 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from fastapi->gradio) (0.26.1)\n",
"Requirement already satisfied: certifi in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from httpx->gradio) (2022.12.7)\n",
"Requirement already satisfied: httpcore<0.17.0,>=0.15.0 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from httpx->gradio) (0.16.3)\n",
"Requirement already satisfied: rfc3986[idna2008]<2,>=1.3 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from httpx->gradio) (1.5.0)\n",
"Requirement already satisfied: sniffio in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from httpx->gradio) (1.3.0)\n",
"Requirement already satisfied: contourpy>=1.0.1 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from matplotlib->gradio) (1.0.7)\n",
"Requirement already satisfied: cycler>=0.10 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from matplotlib->gradio) (0.11.0)\n",
"Requirement already satisfied: fonttools>=4.22.0 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from matplotlib->gradio) (4.39.2)\n",
"Requirement already satisfied: kiwisolver>=1.0.1 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from matplotlib->gradio) (1.4.4)\n",
"Requirement already satisfied: pyparsing>=2.3.1 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from matplotlib->gradio) (3.0.9)\n",
"Requirement already satisfied: idna<4,>=2.5 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from requests->gradio) (3.4)\n",
"Requirement already satisfied: urllib3<1.27,>=1.21.1 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from requests->gradio) (1.26.15)\n",
"Requirement already satisfied: click>=7.0 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from uvicorn->gradio) (8.1.3)\n",
"Requirement already satisfied: h11>=0.8 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from uvicorn->gradio) (0.14.0)\n",
"Requirement already satisfied: colorama in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from click>=7.0->uvicorn->gradio) (0.4.6)\n",
"Requirement already satisfied: anyio<5.0,>=3.0 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from httpcore<0.17.0,>=0.15.0->httpx->gradio) (3.6.2)\n",
"Requirement already satisfied: pyrsistent!=0.17.0,!=0.17.1,!=0.17.2,>=0.14.0 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from jsonschema>=3.0->altair>=4.2.0->gradio) (0.19.3)\n",
"Requirement already satisfied: uc-micro-py in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from linkify-it-py<3,>=1->markdown-it-py[linkify]>=2.0.0->gradio) (1.0.1)\n",
"Requirement already satisfied: six>=1.5 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from python-dateutil>=2.8.1->pandas->gradio) (1.16.0)\n",
"Note: you may need to restart the kernel to use updated packages.\n",
"Requirement already satisfied: openai in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (0.27.2)\n",
"Requirement already satisfied: requests>=2.20 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from openai) (2.28.2)\n",
"Requirement already satisfied: tqdm in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from openai) (4.65.0)\n",
"Requirement already satisfied: aiohttp in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from openai) (3.8.4)\n",
"Requirement already satisfied: charset-normalizer<4,>=2 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from requests>=2.20->openai) (3.1.0)\n",
"Requirement already satisfied: idna<4,>=2.5 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from requests>=2.20->openai) (3.4)\n",
"Requirement already satisfied: urllib3<1.27,>=1.21.1 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from requests>=2.20->openai) (1.26.15)\n",
"Requirement already satisfied: certifi>=2017.4.17 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from requests>=2.20->openai) (2022.12.7)\n",
"Requirement already satisfied: attrs>=17.3.0 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from aiohttp->openai) (22.2.0)\n",
"Requirement already satisfied: multidict<7.0,>=4.5 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from aiohttp->openai) (6.0.4)\n",
"Requirement already satisfied: async-timeout<5.0,>=4.0.0a3 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from aiohttp->openai) (4.0.2)\n",
"Requirement already satisfied: yarl<2.0,>=1.0 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from aiohttp->openai) (1.8.2)\n",
"Requirement already satisfied: frozenlist>=1.1.1 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from aiohttp->openai) (1.3.3)\n",
"Requirement already satisfied: aiosignal>=1.1.2 in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from aiohttp->openai) (1.3.1)\n",
"Requirement already satisfied: colorama in c:\\users\\ewok\\appdata\\roaming\\python\\python311\\site-packages (from tqdm->openai) (0.4.6)\n",
"Note: you may need to restart the kernel to use updated packages.\n"
]
}
],
"source": [
"%pip install llama-index\n",
"%pip install langchain\n",
"%pip install gradio\n",
"%pip install openai"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "FbuYetOy25eM"
},
"source": [
"# Define the functions\n",
"The following code defines the functions we need to construct the index and query it"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"id": "UelAqQgk_yIt"
},
"outputs": [
{
"ename": "AttributeError",
"evalue": "module 'time' has no attribute 'clock'",
"output_type": "error",
"traceback": [
"\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[1;31mAttributeError\u001b[0m Traceback (most recent call last)",
"Cell \u001b[1;32mIn[5], line 1\u001b[0m\n\u001b[1;32m----> 1\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mllama_index\u001b[39;00m \u001b[39mimport\u001b[39;00m SimpleDirectoryReader, GPTSimpleVectorIndex, LLMPredictor, PromptHelper\n\u001b[0;32m 2\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mlangchain\u001b[39;00m \u001b[39mimport\u001b[39;00m OpenAI\n\u001b[0;32m 3\u001b[0m \u001b[39mimport\u001b[39;00m \u001b[39msys\u001b[39;00m\n",
"File \u001b[1;32m~\\AppData\\Roaming\\Python\\Python311\\site-packages\\llama_index\\__init__.py:18\u001b[0m\n\u001b[0;32m 15\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mllama_index\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39membeddings\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mopenai\u001b[39;00m \u001b[39mimport\u001b[39;00m OpenAIEmbedding\n\u001b[0;32m 17\u001b[0m \u001b[39m# structured\u001b[39;00m\n\u001b[1;32m---> 18\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mllama_index\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mindices\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mcommon\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mstruct_store\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mbase\u001b[39;00m \u001b[39mimport\u001b[39;00m SQLDocumentContextBuilder\n\u001b[0;32m 19\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mllama_index\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mindices\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mempty\u001b[39;00m \u001b[39mimport\u001b[39;00m GPTEmptyIndex\n\u001b[0;32m 21\u001b[0m \u001b[39m# indices\u001b[39;00m\n",
"File \u001b[1;32m~\\AppData\\Roaming\\Python\\Python311\\site-packages\\llama_index\\indices\\__init__.py:4\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[39m\"\"\"LlamaIndex data structures.\"\"\"\u001b[39;00m\n\u001b[0;32m 3\u001b[0m \u001b[39m# indices\u001b[39;00m\n\u001b[1;32m----> 4\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mllama_index\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mindices\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mkeyword_table\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mbase\u001b[39;00m \u001b[39mimport\u001b[39;00m GPTKeywordTableIndex\n\u001b[0;32m 5\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mllama_index\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mindices\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mkeyword_table\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mrake_base\u001b[39;00m \u001b[39mimport\u001b[39;00m GPTRAKEKeywordTableIndex\n\u001b[0;32m 6\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mllama_index\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mindices\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mkeyword_table\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39msimple_base\u001b[39;00m \u001b[39mimport\u001b[39;00m GPTSimpleKeywordTableIndex\n",
"File \u001b[1;32m~\\AppData\\Roaming\\Python\\Python311\\site-packages\\llama_index\\indices\\keyword_table\\__init__.py:4\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[39m\"\"\"Keyword Table Index Data Structures.\"\"\"\u001b[39;00m\n\u001b[0;32m 3\u001b[0m \u001b[39m# indices\u001b[39;00m\n\u001b[1;32m----> 4\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mllama_index\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mindices\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mkeyword_table\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mbase\u001b[39;00m \u001b[39mimport\u001b[39;00m GPTKeywordTableIndex\n\u001b[0;32m 5\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mllama_index\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mindices\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mkeyword_table\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mrake_base\u001b[39;00m \u001b[39mimport\u001b[39;00m GPTRAKEKeywordTableIndex\n\u001b[0;32m 6\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mllama_index\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mindices\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mkeyword_table\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39msimple_base\u001b[39;00m \u001b[39mimport\u001b[39;00m GPTSimpleKeywordTableIndex\n",
"File \u001b[1;32m~\\AppData\\Roaming\\Python\\Python311\\site-packages\\llama_index\\indices\\keyword_table\\base.py:16\u001b[0m\n\u001b[0;32m 14\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mllama_index\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39masync_utils\u001b[39;00m \u001b[39mimport\u001b[39;00m run_async_tasks\n\u001b[0;32m 15\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mllama_index\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mdata_structs\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mdata_structs\u001b[39;00m \u001b[39mimport\u001b[39;00m KeywordTable\n\u001b[1;32m---> 16\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mllama_index\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mindices\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mbase\u001b[39;00m \u001b[39mimport\u001b[39;00m DOCUMENTS_INPUT, BaseGPTIndex\n\u001b[0;32m 17\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mllama_index\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mindices\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mkeyword_table\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mutils\u001b[39;00m \u001b[39mimport\u001b[39;00m extract_keywords_given_response\n\u001b[0;32m 18\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mllama_index\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mindices\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mquery\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mbase\u001b[39;00m \u001b[39mimport\u001b[39;00m BaseGPTIndexQuery\n",
"File \u001b[1;32m~\\AppData\\Roaming\\Python\\Python311\\site-packages\\llama_index\\indices\\base.py:23\u001b[0m\n\u001b[0;32m 21\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mllama_index\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39membeddings\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mopenai\u001b[39;00m \u001b[39mimport\u001b[39;00m OpenAIEmbedding\n\u001b[0;32m 22\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mllama_index\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mindices\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mnode_utils\u001b[39;00m \u001b[39mimport\u001b[39;00m get_nodes_from_document\n\u001b[1;32m---> 23\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mllama_index\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mindices\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mprompt_helper\u001b[39;00m \u001b[39mimport\u001b[39;00m PromptHelper\n\u001b[0;32m 24\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mllama_index\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mindices\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mquery\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mbase\u001b[39;00m \u001b[39mimport\u001b[39;00m BaseGPTIndexQuery\n\u001b[0;32m 25\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mllama_index\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mindices\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mquery\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mquery_runner\u001b[39;00m \u001b[39mimport\u001b[39;00m QueryRunner\n",
"File \u001b[1;32m~\\AppData\\Roaming\\Python\\Python311\\site-packages\\llama_index\\indices\\prompt_helper.py:12\u001b[0m\n\u001b[0;32m 10\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mllama_index\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mconstants\u001b[39;00m \u001b[39mimport\u001b[39;00m MAX_CHUNK_OVERLAP\n\u001b[0;32m 11\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mllama_index\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mdata_structs\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mdata_structs\u001b[39;00m \u001b[39mimport\u001b[39;00m Node\n\u001b[1;32m---> 12\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mllama_index\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mlangchain_helpers\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mchain_wrapper\u001b[39;00m \u001b[39mimport\u001b[39;00m LLMPredictor\n\u001b[0;32m 13\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mllama_index\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mlangchain_helpers\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mtext_splitter\u001b[39;00m \u001b[39mimport\u001b[39;00m TokenTextSplitter\n\u001b[0;32m 14\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mllama_index\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mprompts\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mbase\u001b[39;00m \u001b[39mimport\u001b[39;00m Prompt\n",
"File \u001b[1;32m~\\AppData\\Roaming\\Python\\Python311\\site-packages\\llama_index\\langchain_helpers\\chain_wrapper.py:6\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[39m\"\"\"Wrapper functions around an LLM chain.\"\"\"\u001b[39;00m\n\u001b[0;32m 3\u001b[0m \u001b[39m# NOTE: moved to llama_index/llm_predictor/base.py\u001b[39;00m\n\u001b[0;32m 4\u001b[0m \u001b[39m# NOTE: this is for backwards compatibility\u001b[39;00m\n\u001b[1;32m----> 6\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mllama_index\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mllm_predictor\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mbase\u001b[39;00m \u001b[39mimport\u001b[39;00m ( \u001b[39m# noqa: F401\u001b[39;00m\n\u001b[0;32m 7\u001b[0m LLMChain,\n\u001b[0;32m 8\u001b[0m LLMMetadata,\n\u001b[0;32m 9\u001b[0m LLMPredictor,\n\u001b[0;32m 10\u001b[0m )\n",
"File \u001b[1;32m~\\AppData\\Roaming\\Python\\Python311\\site-packages\\llama_index\\llm_predictor\\__init__.py:4\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[39m\"\"\"Init params.\"\"\"\u001b[39;00m\n\u001b[0;32m 3\u001b[0m \u001b[39m# TODO: move LLMPredictor to this folder\u001b[39;00m\n\u001b[1;32m----> 4\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mllama_index\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mllm_predictor\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mbase\u001b[39;00m \u001b[39mimport\u001b[39;00m LLMPredictor\n\u001b[0;32m 5\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mllama_index\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mllm_predictor\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mstructured\u001b[39;00m \u001b[39mimport\u001b[39;00m StructuredLLMPredictor\n\u001b[0;32m 7\u001b[0m __all__ \u001b[39m=\u001b[39m [\n\u001b[0;32m 8\u001b[0m \u001b[39m\"\u001b[39m\u001b[39mLLMPredictor\u001b[39m\u001b[39m\"\u001b[39m,\n\u001b[0;32m 9\u001b[0m \u001b[39m\"\u001b[39m\u001b[39mStructuredLLMPredictor\u001b[39m\u001b[39m\"\u001b[39m,\n\u001b[0;32m 10\u001b[0m ]\n",
"File \u001b[1;32m~\\AppData\\Roaming\\Python\\Python311\\site-packages\\llama_index\\llm_predictor\\base.py:9\u001b[0m\n\u001b[0;32m 6\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mtyping\u001b[39;00m \u001b[39mimport\u001b[39;00m Any, Generator, Optional, Protocol, Tuple\n\u001b[0;32m 8\u001b[0m \u001b[39mimport\u001b[39;00m \u001b[39mopenai\u001b[39;00m\n\u001b[1;32m----> 9\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mlangchain\u001b[39;00m \u001b[39mimport\u001b[39;00m Cohere, LLMChain, OpenAI\n\u001b[0;32m 10\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mlangchain\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mchat_models\u001b[39;00m \u001b[39mimport\u001b[39;00m ChatOpenAI\n\u001b[0;32m 11\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mlangchain\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mllms\u001b[39;00m \u001b[39mimport\u001b[39;00m AI21\n",
"File \u001b[1;32m~\\AppData\\Roaming\\Python\\Python311\\site-packages\\langchain\\__init__.py:5\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[39m\"\"\"Main entrypoint into package.\"\"\"\u001b[39;00m\n\u001b[0;32m 3\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mtyping\u001b[39;00m \u001b[39mimport\u001b[39;00m Optional\n\u001b[1;32m----> 5\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mlangchain\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39magents\u001b[39;00m \u001b[39mimport\u001b[39;00m MRKLChain, ReActChain, SelfAskWithSearchChain\n\u001b[0;32m 6\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mlangchain\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mcache\u001b[39;00m \u001b[39mimport\u001b[39;00m BaseCache\n\u001b[0;32m 7\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mlangchain\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mcallbacks\u001b[39;00m \u001b[39mimport\u001b[39;00m (\n\u001b[0;32m 8\u001b[0m set_default_callback_manager,\n\u001b[0;32m 9\u001b[0m set_handler,\n\u001b[0;32m 10\u001b[0m set_tracing_callback_manager,\n\u001b[0;32m 11\u001b[0m )\n",
"File \u001b[1;32m~\\AppData\\Roaming\\Python\\Python311\\site-packages\\langchain\\agents\\__init__.py:3\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[39m\"\"\"Interface for agents.\"\"\"\u001b[39;00m\n\u001b[0;32m 2\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mlangchain\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39magents\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39magent\u001b[39;00m \u001b[39mimport\u001b[39;00m Agent, AgentExecutor\n\u001b[1;32m----> 3\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mlangchain\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39magents\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39magent_toolkits\u001b[39;00m \u001b[39mimport\u001b[39;00m (\n\u001b[0;32m 4\u001b[0m create_csv_agent,\n\u001b[0;32m 5\u001b[0m create_json_agent,\n\u001b[0;32m 6\u001b[0m create_openapi_agent,\n\u001b[0;32m 7\u001b[0m create_pandas_dataframe_agent,\n\u001b[0;32m 8\u001b[0m create_sql_agent,\n\u001b[0;32m 9\u001b[0m create_vectorstore_agent,\n\u001b[0;32m 10\u001b[0m create_vectorstore_router_agent,\n\u001b[0;32m 11\u001b[0m )\n\u001b[0;32m 12\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mlangchain\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39magents\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mconversational\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mbase\u001b[39;00m \u001b[39mimport\u001b[39;00m ConversationalAgent\n\u001b[0;32m 13\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mlangchain\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39magents\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39minitialize\u001b[39;00m \u001b[39mimport\u001b[39;00m initialize_agent\n",
"File \u001b[1;32m~\\AppData\\Roaming\\Python\\Python311\\site-packages\\langchain\\agents\\agent_toolkits\\__init__.py:3\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[39m\"\"\"Agent toolkits.\"\"\"\u001b[39;00m\n\u001b[1;32m----> 3\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mlangchain\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39magents\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39magent_toolkits\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mcsv\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mbase\u001b[39;00m \u001b[39mimport\u001b[39;00m create_csv_agent\n\u001b[0;32m 4\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mlangchain\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39magents\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39magent_toolkits\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mjson\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mbase\u001b[39;00m \u001b[39mimport\u001b[39;00m create_json_agent\n\u001b[0;32m 5\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mlangchain\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39magents\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39magent_toolkits\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mjson\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mtoolkit\u001b[39;00m \u001b[39mimport\u001b[39;00m JsonToolkit\n",
"File \u001b[1;32m~\\AppData\\Roaming\\Python\\Python311\\site-packages\\langchain\\agents\\agent_toolkits\\csv\\base.py:5\u001b[0m\n\u001b[0;32m 2\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mtyping\u001b[39;00m \u001b[39mimport\u001b[39;00m Any, Optional\n\u001b[0;32m 4\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mlangchain\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39magents\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39magent\u001b[39;00m \u001b[39mimport\u001b[39;00m AgentExecutor\n\u001b[1;32m----> 5\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mlangchain\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39magents\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39magent_toolkits\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mpandas\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mbase\u001b[39;00m \u001b[39mimport\u001b[39;00m create_pandas_dataframe_agent\n\u001b[0;32m 6\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mlangchain\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mllms\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mbase\u001b[39;00m \u001b[39mimport\u001b[39;00m BaseLLM\n\u001b[0;32m 9\u001b[0m \u001b[39mdef\u001b[39;00m \u001b[39mcreate_csv_agent\u001b[39m(\n\u001b[0;32m 10\u001b[0m llm: BaseLLM, path: \u001b[39mstr\u001b[39m, pandas_kwargs: Optional[\u001b[39mdict\u001b[39m] \u001b[39m=\u001b[39m \u001b[39mNone\u001b[39;00m, \u001b[39m*\u001b[39m\u001b[39m*\u001b[39mkwargs: Any\n\u001b[0;32m 11\u001b[0m ) \u001b[39m-\u001b[39m\u001b[39m>\u001b[39m AgentExecutor:\n",
"File \u001b[1;32m~\\AppData\\Roaming\\Python\\Python311\\site-packages\\langchain\\agents\\agent_toolkits\\pandas\\base.py:6\u001b[0m\n\u001b[0;32m 4\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mlangchain\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39magents\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39magent\u001b[39;00m \u001b[39mimport\u001b[39;00m AgentExecutor\n\u001b[0;32m 5\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mlangchain\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39magents\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39magent_toolkits\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mpandas\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mprompt\u001b[39;00m \u001b[39mimport\u001b[39;00m PREFIX, SUFFIX\n\u001b[1;32m----> 6\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mlangchain\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39magents\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mmrkl\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mbase\u001b[39;00m \u001b[39mimport\u001b[39;00m ZeroShotAgent\n\u001b[0;32m 7\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mlangchain\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mcallbacks\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mbase\u001b[39;00m \u001b[39mimport\u001b[39;00m BaseCallbackManager\n\u001b[0;32m 8\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mlangchain\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mchains\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mllm\u001b[39;00m \u001b[39mimport\u001b[39;00m LLMChain\n",
"File \u001b[1;32m~\\AppData\\Roaming\\Python\\Python311\\site-packages\\langchain\\agents\\mrkl\\base.py:11\u001b[0m\n\u001b[0;32m 9\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mlangchain\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39magents\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mtools\u001b[39;00m \u001b[39mimport\u001b[39;00m Tool\n\u001b[0;32m 10\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mlangchain\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mcallbacks\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mbase\u001b[39;00m \u001b[39mimport\u001b[39;00m BaseCallbackManager\n\u001b[1;32m---> 11\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mlangchain\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mchains\u001b[39;00m \u001b[39mimport\u001b[39;00m LLMChain\n\u001b[0;32m 12\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mlangchain\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mllms\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mbase\u001b[39;00m \u001b[39mimport\u001b[39;00m BaseLLM\n\u001b[0;32m 13\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mlangchain\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mprompts\u001b[39;00m \u001b[39mimport\u001b[39;00m PromptTemplate\n",
"File \u001b[1;32m~\\AppData\\Roaming\\Python\\Python311\\site-packages\\langchain\\chains\\__init__.py:15\u001b[0m\n\u001b[0;32m 13\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mlangchain\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mchains\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mllm_requests\u001b[39;00m \u001b[39mimport\u001b[39;00m LLMRequestsChain\n\u001b[0;32m 14\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mlangchain\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mchains\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mllm_summarization_checker\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mbase\u001b[39;00m \u001b[39mimport\u001b[39;00m LLMSummarizationCheckerChain\n\u001b[1;32m---> 15\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mlangchain\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mchains\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mloading\u001b[39;00m \u001b[39mimport\u001b[39;00m load_chain\n\u001b[0;32m 16\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mlangchain\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mchains\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mmapreduce\u001b[39;00m \u001b[39mimport\u001b[39;00m MapReduceChain\n\u001b[0;32m 17\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mlangchain\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mchains\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mmoderation\u001b[39;00m \u001b[39mimport\u001b[39;00m OpenAIModerationChain\n",
"File \u001b[1;32m~\\AppData\\Roaming\\Python\\Python311\\site-packages\\langchain\\chains\\loading.py:23\u001b[0m\n\u001b[0;32m 21\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mlangchain\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mchains\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mqa_with_sources\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mbase\u001b[39;00m \u001b[39mimport\u001b[39;00m QAWithSourcesChain\n\u001b[0;32m 22\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mlangchain\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mchains\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mqa_with_sources\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mvector_db\u001b[39;00m \u001b[39mimport\u001b[39;00m VectorDBQAWithSourcesChain\n\u001b[1;32m---> 23\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mlangchain\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mchains\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39msql_database\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mbase\u001b[39;00m \u001b[39mimport\u001b[39;00m SQLDatabaseChain\n\u001b[0;32m 24\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mlangchain\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mchains\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mvector_db_qa\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mbase\u001b[39;00m \u001b[39mimport\u001b[39;00m VectorDBQA\n\u001b[0;32m 25\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mlangchain\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mllms\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mloading\u001b[39;00m \u001b[39mimport\u001b[39;00m load_llm, load_llm_from_config\n",
"File \u001b[1;32m~\\AppData\\Roaming\\Python\\Python311\\site-packages\\langchain\\chains\\sql_database\\base.py:13\u001b[0m\n\u001b[0;32m 11\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mlangchain\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mprompts\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mbase\u001b[39;00m \u001b[39mimport\u001b[39;00m BasePromptTemplate\n\u001b[0;32m 12\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mlangchain\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mschema\u001b[39;00m \u001b[39mimport\u001b[39;00m BaseLanguageModel\n\u001b[1;32m---> 13\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mlangchain\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39msql_database\u001b[39;00m \u001b[39mimport\u001b[39;00m SQLDatabase\n\u001b[0;32m 16\u001b[0m \u001b[39mclass\u001b[39;00m \u001b[39mSQLDatabaseChain\u001b[39;00m(Chain, BaseModel):\n\u001b[0;32m 17\u001b[0m \u001b[39m \u001b[39m\u001b[39m\"\"\"Chain for interacting with SQL Database.\u001b[39;00m\n\u001b[0;32m 18\u001b[0m \n\u001b[0;32m 19\u001b[0m \u001b[39m Example:\u001b[39;00m\n\u001b[1;32m (...)\u001b[0m\n\u001b[0;32m 24\u001b[0m \u001b[39m db_chain = SQLDatabaseChain(llm=OpenAI(), database=db)\u001b[39;00m\n\u001b[0;32m 25\u001b[0m \u001b[39m \"\"\"\u001b[39;00m\n",
"File \u001b[1;32m~\\AppData\\Roaming\\Python\\Python311\\site-packages\\langchain\\sql_database.py:6\u001b[0m\n\u001b[0;32m 2\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39m__future__\u001b[39;00m \u001b[39mimport\u001b[39;00m annotations\n\u001b[0;32m 4\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mtyping\u001b[39;00m \u001b[39mimport\u001b[39;00m Any, Iterable, List, Optional\n\u001b[1;32m----> 6\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39msqlalchemy\u001b[39;00m \u001b[39mimport\u001b[39;00m MetaData, create_engine, inspect, select, text\n\u001b[0;32m 7\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39msqlalchemy\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mengine\u001b[39;00m \u001b[39mimport\u001b[39;00m Engine\n\u001b[0;32m 8\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39msqlalchemy\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mexc\u001b[39;00m \u001b[39mimport\u001b[39;00m ProgrammingError, SQLAlchemyError\n",
"File \u001b[1;32m~\\AppData\\Roaming\\Python\\Python311\\site-packages\\sqlalchemy\\__init__.py:8\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[39m# sqlalchemy/__init__.py\u001b[39;00m\n\u001b[0;32m 2\u001b[0m \u001b[39m# Copyright (C) 2005-2019 the SQLAlchemy authors and contributors\u001b[39;00m\n\u001b[0;32m 3\u001b[0m \u001b[39m# <see AUTHORS file>\u001b[39;00m\n\u001b[0;32m 4\u001b[0m \u001b[39m#\u001b[39;00m\n\u001b[0;32m 5\u001b[0m \u001b[39m# This module is part of SQLAlchemy and is released under\u001b[39;00m\n\u001b[0;32m 6\u001b[0m \u001b[39m# the MIT License: http://www.opensource.org/licenses/mit-license.php\u001b[39;00m\n\u001b[1;32m----> 8\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39m.\u001b[39;00m \u001b[39mimport\u001b[39;00m util \u001b[39mas\u001b[39;00m _util \u001b[39m# noqa\u001b[39;00m\n\u001b[0;32m 9\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39m.\u001b[39;00m\u001b[39minspection\u001b[39;00m \u001b[39mimport\u001b[39;00m inspect \u001b[39m# noqa\u001b[39;00m\n\u001b[0;32m 10\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39m.\u001b[39;00m\u001b[39mschema\u001b[39;00m \u001b[39mimport\u001b[39;00m BLANK_SCHEMA \u001b[39m# noqa\u001b[39;00m\n",
"File \u001b[1;32m~\\AppData\\Roaming\\Python\\Python311\\site-packages\\sqlalchemy\\util\\__init__.py:14\u001b[0m\n\u001b[0;32m 11\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mfunctools\u001b[39;00m \u001b[39mimport\u001b[39;00m partial \u001b[39m# noqa\u001b[39;00m\n\u001b[0;32m 12\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mfunctools\u001b[39;00m \u001b[39mimport\u001b[39;00m update_wrapper \u001b[39m# noqa\u001b[39;00m\n\u001b[1;32m---> 14\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39m.\u001b[39;00m\u001b[39m_collections\u001b[39;00m \u001b[39mimport\u001b[39;00m coerce_generator_arg \u001b[39m# noqa\u001b[39;00m\n\u001b[0;32m 15\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39m.\u001b[39;00m\u001b[39m_collections\u001b[39;00m \u001b[39mimport\u001b[39;00m collections_abc \u001b[39m# noqa\u001b[39;00m\n\u001b[0;32m 16\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39m.\u001b[39;00m\u001b[39m_collections\u001b[39;00m \u001b[39mimport\u001b[39;00m column_dict \u001b[39m# noqa\u001b[39;00m\n",
"File \u001b[1;32m~\\AppData\\Roaming\\Python\\Python311\\site-packages\\sqlalchemy\\util\\_collections.py:16\u001b[0m\n\u001b[0;32m 13\u001b[0m \u001b[39mimport\u001b[39;00m \u001b[39mtypes\u001b[39;00m\n\u001b[0;32m 14\u001b[0m \u001b[39mimport\u001b[39;00m \u001b[39mweakref\u001b[39;00m\n\u001b[1;32m---> 16\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39m.\u001b[39;00m\u001b[39mcompat\u001b[39;00m \u001b[39mimport\u001b[39;00m binary_types\n\u001b[0;32m 17\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39m.\u001b[39;00m\u001b[39mcompat\u001b[39;00m \u001b[39mimport\u001b[39;00m collections_abc\n\u001b[0;32m 18\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39m.\u001b[39;00m\u001b[39mcompat\u001b[39;00m \u001b[39mimport\u001b[39;00m itertools_filterfalse\n",
"File \u001b[1;32m~\\AppData\\Roaming\\Python\\Python311\\site-packages\\sqlalchemy\\util\\compat.py:264\u001b[0m\n\u001b[0;32m 261\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39minspect\u001b[39;00m \u001b[39mimport\u001b[39;00m formatargspec \u001b[39mas\u001b[39;00m inspect_formatargspec \u001b[39m# noqa\u001b[39;00m\n\u001b[0;32m 263\u001b[0m \u001b[39mif\u001b[39;00m win32 \u001b[39mor\u001b[39;00m jython:\n\u001b[1;32m--> 264\u001b[0m time_func \u001b[39m=\u001b[39m time\u001b[39m.\u001b[39;49mclock\n\u001b[0;32m 265\u001b[0m \u001b[39melse\u001b[39;00m:\n\u001b[0;32m 266\u001b[0m time_func \u001b[39m=\u001b[39m time\u001b[39m.\u001b[39mtime\n",
"\u001b[1;31mAttributeError\u001b[0m: module 'time' has no attribute 'clock'"
]
}
],
"source": [
"from llama_index import SimpleDirectoryReader, GPTListIndex, readers, GPTSimpleVectorIndex, LLMPredictor, PromptHelper\n",
"from langchain import OpenAI\n",
"import sys\n",
"import os\n",
"from IPython.display import Markdown, display\n",
"\n",
"def construct_index(directory_path):\n",
" # set maximum input size\n",
" max_input_size = 4096\n",
" # set number of output tokens\n",
" num_outputs = 2000\n",
" # set maximum chunk overlap\n",
" max_chunk_overlap = 20\n",
" # set chunk size limit\n",
" chunk_size_limit = 600\n",
"\n",
" # define LLM\n",
" llm_predictor = LLMPredictor(llm=OpenAI(temperature=0.5, model_name=\"gpt-3.5-turbo\", max_tokens=num_outputs))\n",
" prompt_helper = PromptHelper(max_input_size, num_outputs, max_chunk_overlap, chunk_size_limit=chunk_size_limit)\n",
"\n",
" documents = SimpleDirectoryReader(directory_path).load_data()\n",
"\n",
" index = GPTSimpleVectorIndex(\n",
" documents, llm_predictor=llm_predictor, prompt_helper=prompt_helper\n",
" )\n",
"\n",
" index.save_to_disk('index.json')\n",
"\n",
" return index\n",
"\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "27L4VAQiTNlc"
},
"outputs": [],
"source": [
"def ask_ai():\n",
" index = GPTSimpleVectorIndex.load_from_disk('index.json')\n",
" while True: \n",
" query = input(\"What do you want to ask? \")\n",
" response = index.query(query, response_mode=\"compact\")\n",
" display(Markdown(f\"Response: <b>{response.response}</b>\"))"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "Vz1jp33jGumu"
},
"source": [
"# Set OpenAI API Key\n",
"You need an OPENAI API key to be able to run this code.\n",
"\n",
"If you don't have one yet, get it by [signing up](https://platform.openai.com/overview). Then click your account icon on the top right of the screen and select \"View API Keys\". Create an API key.\n",
"\n",
"Then run the code below and paste your API key into the text input."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "RoJHE4fsAT3w",
"outputId": "b4870c80-9c24-48b0-80cd-6b9dc5b9f8a6"
},
"outputs": [],
"source": [
"os.environ[\"OPENAI_API_KEY\"] = input(\"Paste your OpenAI key here and hit enter:\")"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "ZVrddlAL4I_v"
},
"source": [
"#Construct an index\n",
"Now we are ready to construct the index. This will take every file in the folder 'data', split it into chunks, and embed it with OpenAI's embeddings API.\n",
"\n",
"**Notice:** running this code will cost you credits on your OpenAPI account ($0.02 for every 1,000 tokens). If you've just set up your account, the free credits that you have should be more than enough for this experiment."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "kCYTE2EqBB7O",
"outputId": "136bd773-5974-42e7-aae3-fa0c4d06b213"
},
"outputs": [],
"source": [
"construct_index(\"C:\\Users\\Ewok\\OneDrive - FAST National University\\Desktop\\Custom chatbot\\context.data\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 311
},
"id": "s_uwsPGEIGsb",
"outputId": "160d9bfc-70ed-43fa-8adb-b8089f601883"
},
"outputs": [],
"source": [
"ask_ai()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"import tkinter as tk\n",
"from llama_index import GPTSimpleVectorIndex, LLMPredictor, PromptHelper\n",
"from langchain import OpenAI\n",
"from IPython.display import Markdown, display\n",
"\n",
"# Define the ask_ai() function\n",
"def ask_ai(question):\n",
" index = GPTSimpleVectorIndex.load_from_disk('index.json')\n",
" response = index.query(question, response_mode=\"compact\")\n",
" return response.response\n",
"\n",
"# Define the GUI\n",
"class ChatBotGUI:\n",
" def __init__(self, master):\n",
" self.master = master\n",
" master.title(\"Chat Bot\")\n",
"\n",
" # Create a label and an entry for the question\n",
" self.label = tk.Label(master, text=\"Ask me anything:\")\n",
" self.label.pack()\n",
"\n",
" self.entry = tk.Entry(master)\n",
" self.entry.pack()\n",
"\n",
" # Create a button to submit the question\n",
" self.button = tk.Button(master, text=\"Submit\", command=self.submit_question)\n",
" self.button.pack()\n",
"\n",
" # Create a text box to display the response\n",
" self.textbox = tk.Text(master)\n",
" self.textbox.pack()\n",
"\n",
" def submit_question(self):\n",
" question = self.entry.get()\n",
" response = ask_ai(question)\n",
" self.textbox.insert(tk.END, \"You: \" + question + \"\\n\")\n",
" self.textbox.insert(tk.END, \"Bot: \" + response + \"\\n\\n\")\n",
" self.entry.delete(0, tk.END)\n",
"\n",
"# Create an instance of the GUI and start the main loop\n",
"root = tk.Tk()\n",
"chatbot_gui = ChatBotGUI(root)\n",
"root.mainloop()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"import gradio as gr\n",
"\n",
"def ask_ai(query):\n",
" index = GPTSimpleVectorIndex.load_from_disk('index.json')\n",
" response = index.query(query, response_mode=\"compact\")\n",
" return response.response\n",
"\n",
"gr.Interface(\n",
" fn=ask_ai, \n",
" inputs=gr.inputs.Textbox(label=\"Input your question here\"), \n",
" outputs=gr.outputs.Textbox(label=\"Response\")\n",
").launch(share=True)\n"
]
}
],
"metadata": {
"colab": {
"provenance": []
},
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.11.0"
},
"vscode": {
"interpreter": {
"hash": "837f538c543f9b2d2992c09ff501c8e7dd16af4ba72a49bea9ce11c22c2825e5"
}
}
},
"nbformat": 4,
"nbformat_minor": 0
}