Skip to content

Instantly share code, notes, and snippets.

@buddypia
Created December 4, 2023 05:29
Show Gist options
  • Save buddypia/e097929fc630deb7169787dfef5adff8 to your computer and use it in GitHub Desktop.
Save buddypia/e097929fc630deb7169787dfef5adff8 to your computer and use it in GitHub Desktop.
text_summary.ipynb
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {
"id": "view-in-github",
"colab_type": "text"
},
"source": [
"<a href=\"https://colab.research.google.com/gist/shoridevel/c8da5c81f3bbb9ebe401d67485cbc933/text_summary.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "uMbrG4sNo5dd"
},
"source": [
"# 依存パッケージのインストール"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "B1nW1j4Voddk",
"outputId": "86e93d66-873f-4c48-83d6-ac9fdac331e8"
},
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Collecting langchain\n",
" Downloading langchain-0.0.345-py3-none-any.whl (2.0 MB)\n",
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m2.0/2.0 MB\u001b[0m \u001b[31m8.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
"\u001b[?25hCollecting openai\n",
" Downloading openai-1.3.7-py3-none-any.whl (221 kB)\n",
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m221.4/221.4 kB\u001b[0m \u001b[31m21.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
"\u001b[?25hCollecting streamlit\n",
" Downloading streamlit-1.29.0-py2.py3-none-any.whl (8.4 MB)\n",
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m8.4/8.4 MB\u001b[0m \u001b[31m26.3 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
"\u001b[?25hCollecting tiktoken\n",
" Downloading tiktoken-0.5.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.0 MB)\n",
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m2.0/2.0 MB\u001b[0m \u001b[31m26.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
"\u001b[?25hRequirement already satisfied: PyYAML>=5.3 in /usr/local/lib/python3.10/dist-packages (from langchain) (6.0.1)\n",
"Requirement already satisfied: SQLAlchemy<3,>=1.4 in /usr/local/lib/python3.10/dist-packages (from langchain) (2.0.23)\n",
"Requirement already satisfied: aiohttp<4.0.0,>=3.8.3 in /usr/local/lib/python3.10/dist-packages (from langchain) (3.9.1)\n",
"Requirement already satisfied: anyio<4.0 in /usr/local/lib/python3.10/dist-packages (from langchain) (3.7.1)\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",
" Downloading dataclasses_json-0.6.3-py3-none-any.whl (28 kB)\n",
"Collecting jsonpatch<2.0,>=1.33 (from langchain)\n",
" Downloading jsonpatch-1.33-py2.py3-none-any.whl (12 kB)\n",
"Collecting langchain-core<0.1,>=0.0.9 (from langchain)\n",
" Downloading langchain_core-0.0.9-py3-none-any.whl (177 kB)\n",
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m177.8/177.8 kB\u001b[0m \u001b[31m23.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
"\u001b[?25hCollecting langsmith<0.1.0,>=0.0.63 (from langchain)\n",
" Downloading langsmith-0.0.69-py3-none-any.whl (48 kB)\n",
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m48.2/48.2 kB\u001b[0m \u001b[31m6.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
"\u001b[?25hRequirement already satisfied: numpy<2,>=1 in /usr/local/lib/python3.10/dist-packages (from langchain) (1.23.5)\n",
"Requirement already satisfied: pydantic<3,>=1 in /usr/local/lib/python3.10/dist-packages (from langchain) (1.10.13)\n",
"Requirement already satisfied: requests<3,>=2 in /usr/local/lib/python3.10/dist-packages (from langchain) (2.31.0)\n",
"Requirement already satisfied: tenacity<9.0.0,>=8.1.0 in /usr/local/lib/python3.10/dist-packages (from langchain) (8.2.3)\n",
"Requirement already satisfied: distro<2,>=1.7.0 in /usr/lib/python3/dist-packages (from openai) (1.7.0)\n",
"Collecting httpx<1,>=0.23.0 (from openai)\n",
" Downloading httpx-0.25.2-py3-none-any.whl (74 kB)\n",
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m75.0/75.0 kB\u001b[0m \u001b[31m4.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
"\u001b[?25hRequirement already satisfied: sniffio in /usr/local/lib/python3.10/dist-packages (from openai) (1.3.0)\n",
"Requirement already satisfied: tqdm>4 in /usr/local/lib/python3.10/dist-packages (from openai) (4.66.1)\n",
"Requirement already satisfied: typing-extensions<5,>=4.5 in /usr/local/lib/python3.10/dist-packages (from openai) (4.5.0)\n",
"Requirement already satisfied: altair<6,>=4.0 in /usr/local/lib/python3.10/dist-packages (from streamlit) (4.2.2)\n",
"Requirement already satisfied: blinker<2,>=1.0.0 in /usr/lib/python3/dist-packages (from streamlit) (1.4)\n",
"Requirement already satisfied: cachetools<6,>=4.0 in /usr/local/lib/python3.10/dist-packages (from streamlit) (5.3.2)\n",
"Requirement already satisfied: click<9,>=7.0 in /usr/local/lib/python3.10/dist-packages (from streamlit) (8.1.7)\n",
"Requirement already satisfied: importlib-metadata<7,>=1.4 in /usr/local/lib/python3.10/dist-packages (from streamlit) (6.8.0)\n",
"Requirement already satisfied: packaging<24,>=16.8 in /usr/local/lib/python3.10/dist-packages (from streamlit) (23.2)\n",
"Requirement already satisfied: pandas<3,>=1.3.0 in /usr/local/lib/python3.10/dist-packages (from streamlit) (1.5.3)\n",
"Requirement already satisfied: pillow<11,>=7.1.0 in /usr/local/lib/python3.10/dist-packages (from streamlit) (9.4.0)\n",
"Requirement already satisfied: protobuf<5,>=3.20 in /usr/local/lib/python3.10/dist-packages (from streamlit) (3.20.3)\n",
"Requirement already satisfied: pyarrow>=6.0 in /usr/local/lib/python3.10/dist-packages (from streamlit) (9.0.0)\n",
"Requirement already satisfied: python-dateutil<3,>=2.7.3 in /usr/local/lib/python3.10/dist-packages (from streamlit) (2.8.2)\n",
"Requirement already satisfied: rich<14,>=10.14.0 in /usr/local/lib/python3.10/dist-packages (from streamlit) (13.7.0)\n",
"Requirement already satisfied: toml<2,>=0.10.1 in /usr/local/lib/python3.10/dist-packages (from streamlit) (0.10.2)\n",
"Requirement already satisfied: tzlocal<6,>=1.1 in /usr/local/lib/python3.10/dist-packages (from streamlit) (5.2)\n",
"Collecting validators<1,>=0.2 (from streamlit)\n",
" Downloading validators-0.22.0-py3-none-any.whl (26 kB)\n",
"Collecting gitpython!=3.1.19,<4,>=3.0.7 (from streamlit)\n",
" Downloading GitPython-3.1.40-py3-none-any.whl (190 kB)\n",
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m190.6/190.6 kB\u001b[0m \u001b[31m25.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
"\u001b[?25hCollecting pydeck<1,>=0.8.0b4 (from streamlit)\n",
" Downloading pydeck-0.8.1b0-py2.py3-none-any.whl (4.8 MB)\n",
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m4.8/4.8 MB\u001b[0m \u001b[31m24.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
"\u001b[?25hRequirement already satisfied: tornado<7,>=6.0.3 in /usr/local/lib/python3.10/dist-packages (from streamlit) (6.3.2)\n",
"Collecting watchdog>=2.1.5 (from streamlit)\n",
" Downloading watchdog-3.0.0-py3-none-manylinux2014_x86_64.whl (82 kB)\n",
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m82.1/82.1 kB\u001b[0m \u001b[31m11.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
"\u001b[?25hRequirement already satisfied: regex>=2022.1.18 in /usr/local/lib/python3.10/dist-packages (from tiktoken) (2023.6.3)\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: 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.3)\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",
"Requirement already satisfied: entrypoints in /usr/local/lib/python3.10/dist-packages (from altair<6,>=4.0->streamlit) (0.4)\n",
"Requirement already satisfied: jinja2 in /usr/local/lib/python3.10/dist-packages (from altair<6,>=4.0->streamlit) (3.1.2)\n",
"Requirement already satisfied: jsonschema>=3.0 in /usr/local/lib/python3.10/dist-packages (from altair<6,>=4.0->streamlit) (4.19.2)\n",
"Requirement already satisfied: toolz in /usr/local/lib/python3.10/dist-packages (from altair<6,>=4.0->streamlit) (0.12.0)\n",
"Requirement already satisfied: idna>=2.8 in /usr/local/lib/python3.10/dist-packages (from anyio<4.0->langchain) (3.6)\n",
"Requirement already satisfied: exceptiongroup in /usr/local/lib/python3.10/dist-packages (from anyio<4.0->langchain) (1.2.0)\n",
"Collecting marshmallow<4.0.0,>=3.18.0 (from dataclasses-json<0.7,>=0.5.7->langchain)\n",
" Downloading marshmallow-3.20.1-py3-none-any.whl (49 kB)\n",
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m49.4/49.4 kB\u001b[0m \u001b[31m7.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
"\u001b[?25hCollecting typing-inspect<1,>=0.4.0 (from dataclasses-json<0.7,>=0.5.7->langchain)\n",
" Downloading typing_inspect-0.9.0-py3-none-any.whl (8.8 kB)\n",
"Collecting gitdb<5,>=4.0.1 (from gitpython!=3.1.19,<4,>=3.0.7->streamlit)\n",
" Downloading gitdb-4.0.11-py3-none-any.whl (62 kB)\n",
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m62.7/62.7 kB\u001b[0m \u001b[31m9.3 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
"\u001b[?25hRequirement already satisfied: certifi in /usr/local/lib/python3.10/dist-packages (from httpx<1,>=0.23.0->openai) (2023.11.17)\n",
"Collecting httpcore==1.* (from httpx<1,>=0.23.0->openai)\n",
" Downloading 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[31m11.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
"\u001b[?25hCollecting h11<0.15,>=0.13 (from httpcore==1.*->httpx<1,>=0.23.0->openai)\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[31m8.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
"\u001b[?25hRequirement already satisfied: zipp>=0.5 in /usr/local/lib/python3.10/dist-packages (from importlib-metadata<7,>=1.4->streamlit) (3.17.0)\n",
"Collecting jsonpointer>=1.9 (from jsonpatch<2.0,>=1.33->langchain)\n",
" Downloading jsonpointer-2.4-py2.py3-none-any.whl (7.8 kB)\n",
"Requirement already satisfied: pytz>=2020.1 in /usr/local/lib/python3.10/dist-packages (from pandas<3,>=1.3.0->streamlit) (2023.3.post1)\n",
"Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.10/dist-packages (from python-dateutil<3,>=2.7.3->streamlit) (1.16.0)\n",
"Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.10/dist-packages (from requests<3,>=2->langchain) (3.3.2)\n",
"Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.10/dist-packages (from requests<3,>=2->langchain) (2.0.7)\n",
"Requirement already satisfied: markdown-it-py>=2.2.0 in /usr/local/lib/python3.10/dist-packages (from rich<14,>=10.14.0->streamlit) (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,>=10.14.0->streamlit) (2.16.1)\n",
"Requirement already satisfied: greenlet!=0.4.17 in /usr/local/lib/python3.10/dist-packages (from SQLAlchemy<3,>=1.4->langchain) (3.0.1)\n",
"Collecting smmap<6,>=3.0.1 (from gitdb<5,>=4.0.1->gitpython!=3.1.19,<4,>=3.0.7->streamlit)\n",
" Downloading smmap-5.0.1-py3-none-any.whl (24 kB)\n",
"Requirement already satisfied: MarkupSafe>=2.0 in /usr/local/lib/python3.10/dist-packages (from jinja2->altair<6,>=4.0->streamlit) (2.1.3)\n",
"Requirement already satisfied: jsonschema-specifications>=2023.03.6 in /usr/local/lib/python3.10/dist-packages (from jsonschema>=3.0->altair<6,>=4.0->streamlit) (2023.11.1)\n",
"Requirement already satisfied: referencing>=0.28.4 in /usr/local/lib/python3.10/dist-packages (from jsonschema>=3.0->altair<6,>=4.0->streamlit) (0.31.1)\n",
"Requirement already satisfied: rpds-py>=0.7.1 in /usr/local/lib/python3.10/dist-packages (from jsonschema>=3.0->altair<6,>=4.0->streamlit) (0.13.2)\n",
"Requirement already satisfied: mdurl~=0.1 in /usr/local/lib/python3.10/dist-packages (from markdown-it-py>=2.2.0->rich<14,>=10.14.0->streamlit) (0.1.2)\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",
"Installing collected packages: watchdog, validators, smmap, mypy-extensions, marshmallow, jsonpointer, h11, typing-inspect, tiktoken, pydeck, langsmith, jsonpatch, httpcore, gitdb, langchain-core, httpx, gitpython, dataclasses-json, openai, langchain, streamlit\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",
"llmx 0.0.15a0 requires cohere, which is not installed.\u001b[0m\u001b[31m\n",
"\u001b[0mSuccessfully installed dataclasses-json-0.6.3 gitdb-4.0.11 gitpython-3.1.40 h11-0.14.0 httpcore-1.0.2 httpx-0.25.2 jsonpatch-1.33 jsonpointer-2.4 langchain-0.0.345 langchain-core-0.0.9 langsmith-0.0.69 marshmallow-3.20.1 mypy-extensions-1.0.0 openai-1.3.7 pydeck-0.8.1b0 smmap-5.0.1 streamlit-1.29.0 tiktoken-0.5.2 typing-inspect-0.9.0 validators-0.22.0 watchdog-3.0.0\n"
]
}
],
"source": [
"!pip install langchain openai streamlit tiktoken"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "6FdZ8U80tFNR"
},
"source": [
"# 要約ロジック"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "90_1tI02tHSd",
"outputId": "cbed2d3f-6eb1-4c9b-c8de-9b3a528acfa5"
},
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Overwriting app.py\n"
]
}
],
"source": [
"%%writefile app.py\n",
"import streamlit as st\n",
"from langchain import PromptTemplate\n",
"from langchain.chains.summarize import load_summarize_chain\n",
"from langchain.docstore.document import Document\n",
"from langchain.llms.openai import OpenAI\n",
"from langchain.text_splitter import CharacterTextSplitter\n",
"\n",
"# Streamlit app\n",
"st.subheader('テキスト要約')\n",
"# Set API keys from session state\n",
"openai_api_key = st.text_input(\"OpenAI API Key\", type=\"password\")\n",
"source_text = st.text_area(\"要約するテキストを入力してください\", height=200)\n",
"\n",
"# 要約するボタンが押された時実行\n",
"if st.button(\"要約する\"):\n",
" # 入力データをチェック\n",
" if not openai_api_key:\n",
" st.error(\"OpenAIのAPIキーを入力してください\")\n",
" elif not source_text.strip():\n",
" st.error(\"テキストを入力してください\")\n",
" else:\n",
" try:\n",
" with st.spinner(\"少々お待ちください\"):\n",
" # テキストを分割\n",
" text_splitter = CharacterTextSplitter(\n",
" separator=\"\\n\",\n",
" chunk_size=1000,\n",
" chunk_overlap=0,\n",
" length_function=len,\n",
" )\n",
" texts = text_splitter.split_text(source_text)\n",
"\n",
" # テキストからドキュメントを3ページ作成\n",
" docs = [Document(page_content=t) for t in texts]\n",
"\n",
" print(docs)\n",
"\n",
" prompt_template = \"\"\"文章を日本語で1000文字に要約してください。:\n",
"\n",
" {text}\n",
"\n",
" 要約:\"\"\"\n",
"\n",
" # OpenAI モジュールを初期化し、要約チェーンを実行します\n",
" llm = OpenAI(temperature=0, openai_api_key=openai_api_key)\n",
"\n",
" prompt = PromptTemplate(\n",
" template=prompt_template, input_variables=[\"text\"])\n",
"\n",
" chain = load_summarize_chain(\n",
" llm,\n",
" chain_type=\"map_reduce\",\n",
" map_prompt=prompt,\n",
" combine_prompt=prompt\n",
" )\n",
"\n",
" result = chain({'input_documents': docs}, return_only_outputs=True)\n",
"\n",
" st.success(result['output_text'])\n",
" except Exception as e:\n",
" st.exception(f\"エラーが発生しました: {e}\")\n"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "-aGya0iKtisT",
"outputId": "3b35551f-8131-482c-d3c7-6a65610f2e67"
},
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"\u001b[K\u001b[?25h\u001b[37;40mnpm\u001b[0m \u001b[0m\u001b[30;43mWARN\u001b[0m \u001b[0m\u001b[35msaveError\u001b[0m ENOENT: no such file or directory, open '/content/package.json'\n",
"\u001b[0m\u001b[37;40mnpm\u001b[0m \u001b[0m\u001b[34;40mnotice\u001b[0m\u001b[35m\u001b[0m created a lockfile as package-lock.json. You should commit this file.\n",
"\u001b[0m\u001b[37;40mnpm\u001b[0m \u001b[0m\u001b[30;43mWARN\u001b[0m \u001b[0m\u001b[35menoent\u001b[0m ENOENT: no such file or directory, open '/content/package.json'\n",
"\u001b[0m\u001b[37;40mnpm\u001b[0m \u001b[0m\u001b[30;43mWARN\u001b[0m\u001b[35m\u001b[0m content No description\n",
"\u001b[0m\u001b[37;40mnpm\u001b[0m \u001b[0m\u001b[30;43mWARN\u001b[0m\u001b[35m\u001b[0m content No repository field.\n",
"\u001b[0m\u001b[37;40mnpm\u001b[0m \u001b[0m\u001b[30;43mWARN\u001b[0m\u001b[35m\u001b[0m content No README data\n",
"\u001b[0m\u001b[37;40mnpm\u001b[0m \u001b[0m\u001b[30;43mWARN\u001b[0m\u001b[35m\u001b[0m content No license field.\n",
"\u001b[0m\n",
"+ localtunnel@2.0.2\n",
"added 22 packages from 22 contributors and audited 22 packages in 2.225s\n",
"\n",
"3 packages are looking for funding\n",
" run `npm fund` for details\n",
"\n",
"found 1 \u001b[93mmoderate\u001b[0m severity vulnerability\n",
" run `npm audit fix` to fix them, or `npm audit` for details\n",
"\u001b[K\u001b[?25h"
]
}
],
"source": [
"!npm install localtunnel"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"id": "9xRY0VIAtjcy",
"colab": {
"base_uri": "https://localhost:8080/"
},
"outputId": "eeb4f387-d2aa-446e-c44b-208c4fa9099b"
},
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"\n",
"Collecting usage statistics. To deactivate, set browser.gatherUsageStats to False.\n",
"\u001b[0m\n",
"\u001b[0m\n",
"\u001b[34m\u001b[1m You can now view your Streamlit app in your browser.\u001b[0m\n",
"\u001b[0m\n",
"\u001b[34m Network URL: \u001b[0m\u001b[1mhttp://172.28.0.12:8501\u001b[0m\n",
"\u001b[34m External URL: \u001b[0m\u001b[1mhttp://34.171.157.53:8501\u001b[0m\n",
"\u001b[0m\n",
"\u001b[K\u001b[?25hnpx: installed 22 in 1.482s\n",
"your url is: https://sad-bugs-vanish.loca.lt\n",
"/usr/local/lib/python3.10/dist-packages/langchain/__init__.py:34: UserWarning: Importing PromptTemplate from langchain root module is no longer supported. Please use langchain.prompts.PromptTemplate instead.\n",
" warnings.warn(\n",
"[Document(page_content='むかし、むかし、丹後の国水の江の浦に、浦島太郎というりょうしがありました。\\n\\u3000浦島太郎は、毎日つりざおをかついでは海へ出かけて、たいや、かつおなどのおさかなをつって、おとうさんおかあさんをやしなっていました。\\n\\u3000ある日、浦島はいつものとおり海へ出て、一日おさかなをつって、帰ってきました。途中、子どもが五、六人往来にあつまって、がやがやいっていました。何かとおもって浦島がのぞいてみると、小さいかめの子を一ぴきつかまえて、棒でつついたり、石でたたいたり、さんざんにいじめているのです。浦島は見かねて、\\n「まあ、そんなかわいそうなことをするものではない。いい子だから」\\nと、とめましたが、子どもたちはきき入れようともしないで、\\n「なんだい。なんだい、かまうもんかい」\\nといいながら、またかめの子を、あおむけにひっくりかえして、足でけったり、砂のなかにうずめたりしました。浦島はますますかわいそうにおもって、\\n「じゃあ、おじさんがおあしをあげるから、そのかめの子を売っておくれ」\\nといいますと、こどもたちは、\\n「うんうん、おあしをくれるならやってもいい」\\nといって、手を出しました。そこで浦島はおあしをやってかめの子をもらいうけました。\\n\\u3000子どもたちは、\\n「おじさん、ありがとう。また買っておくれよ」\\nと、わいわいいいながら、行ってしまいました。\\n\\u3000そのあとで浦島は、こうらからそっと出したかめの首をやさしくなでてやって、\\n「やれやれ、あぶないところだった。さあもうお帰りお帰り」\\nといって、わざわざ、かめを海ばたまで持って行ってはなしてやりました。かめはさもうれしそうに、首や手足をうごかして、やがて、ぶくぶくあわをたてながら、水のなかにふかくしずんで行ってしまいました。\\n\\u3000それから二、三日たって、浦島はまた舟にのって海へつりに出かけました。遠い沖のほうまでもこぎ出して、一生けんめいおさかなをつっていますと、ふとうしろのほうで\\n「浦島さん、浦島さん」\\nとよぶ声がしました。おやとおもってふりかえってみますと、だれも人のかげは見えません。その代り、いつのまにか、一ぴきのかめが、舟のそばにきていました。\\n\\u3000浦島がふしぎそうな顔をしていると、\\n「わたくしは、先日助けていただいたかめでございます。きょうはちょっとそのお礼にまいりました」\\n\\u3000かめがこういったので、浦島はびっくりしました。'), Document(page_content='「まあ、そうかい。わざわざ礼なんぞいいにくるにはおよばないのに」\\n「でも、ほんとうにありがとうございました。ときに、浦島さん、あなたはりゅう宮をごらんになったことがありますか」\\n「いや、話にはきいているが、まだ見たことはないよ」\\n「ではほんのお礼のしるしに、わたくしがりゅう宮を見せて上げたいとおもいますがいかがでしょう」\\n「へえ、それはおもしろいね。ぜひ行ってみたいが、それはなんでも海の底にあるということではないか。どうして行くつもりだね。わたしにはとてもそこまでおよいでは行けないよ」\\n「なに、わけはございません。わたくしの背中におのりください」\\n\\u3000かめはこういって、背中を出しました。浦島は半分きみわるくおもいながら、いわれるままに、かめの背中にのりました。\\n\\u3000かめはすぐに白い波を切って、ずんずんおよいで行きました。ざあざあいう波の音がだんだん遠くなって、青い青い水の底へ、ただもう夢のようにはこばれて行きますと、ふと、そこらがかっとあかるくなって、白玉のようにきれいな砂の道がつづいて、むこうにりっぱな門が見えました。その奥にきらきら光って、目のくらむような金銀のいらかが、たかくそびえていました。\\n「さあ、りゅう宮へまいりました」\\n\\u3000かめはこういって、浦島を背中からおろして、\\n「しばらくお待ちください」\\nといったまま、門のなかへはいって行きました。\\n\\u3000\\u3000\\u3000\\u3000\\u3000二\\n\\u3000まもなく、かめはまた出てきて、\\n「さあ、こちらへ」\\nと、浦島を御殿のなかへ案内しました。たいや、ひらめやかれいや、いろいろのおさかなが、ものめずらしそうな目で見ているなかをとおって、はいって行きますと、乙姫さまがおおぜいの腰元をつれて、お迎えに出てきました。やがて乙姫さまについて、浦島はずんずん奥へとおって行きました。めのうの天井にさんごの柱、廊下にはるりがしきつめてありました。こわごわその上をあるいて行きますと、どこからともなくいいにおいがして、たのしい楽の音がきこえてきました。\\n\\u3000やがて、水晶の壁に、いろいろの宝石をちりばめた大広間にとおりますと、\\n「浦島さん、ようこそおいでくださいました。先日はかめのいのちをお助けくださいまして、まことにありがとうございます。なんにもおもてなしはございませんが、どうぞゆっくりおあそびくださいまし」'), Document(page_content='と、乙姫さまはいって、ていねいにおじぎしました。やがて、たいをかしらに、かつおだの、ふぐだの、えびだの、たこだの、大小いろいろのおさかなが、めずらしいごちそうを山とはこんできて、にぎやかなお酒盛がはじまりました。きれいな腰元たちは、歌をうたったり踊りをおどったりしました。浦島はただもう夢のなかで夢を見ているようでした。\\n\\u3000ごちそうがすむと、浦島はまた乙姫さまの案内で、御殿のなかをのこらず見せてもらいました。どのおへやも、どのおへやも、めずらしい宝石でかざり立ててありますからそのうつくしさは、とても口やことばではいえないくらいでした。ひととおり見てしまうと、乙姫さまは、\\n「こんどは四季のけしきをお目にかけましょう」\\nといって、まず、東の戸をおあけになりました。そこは春のけしきで、いちめん、ぼうっとかすんだなかに、さくらの花が、うつくしい絵のように咲き乱れていました。青青としたやなぎの枝が風になびいて、そのなかで小鳥がないたり、ちょうちょうが舞ったりしていました。\\n\\u3000次に、南の戸をおあけになりました。そこは夏のけしきで、垣根には白いうの花が咲いて、お庭の木の青葉のなかでは、せみやひぐらしがないていました。お池には赤と白のはすの花が咲いて、その葉の上には、水晶の珠のように露がたまっていました。お池のふちには、きれいなさざ波が立って、おしどりやかもがうかんでいました。\\n\\u3000次に西の戸をおあけになりました。そこは秋のけしきで花壇のなかには、黄ぎく、白ぎくが咲き乱れて、ぷんといいかおりを立てました。むこうを見ると、かっともえ立つようなもみじの林の奥に、白い霧がたちこめていて、しかのなく声がかなしくきこえました。\\n\\u3000いちばんおしまいに、北の戸をおあけになりました。そこは冬のけしきで、野には散りのこった枯葉の上に、霜がきらきら光っていました。山から谷にかけて、雪がまっ白に降り埋んだなかから、柴をたくけむりがほそぼそとあがっていました。\\n\\u3000浦島は何を見ても、おどろきあきれて、目ばかり見はっていました。そのうちだんだんぼうっとしてきて、お酒に酔った人のようになって、何もかもわすれてしまいました。\\n\\u3000\\u3000\\u3000\\u3000\\u3000三\\n\\u3000毎日おもしろい、めずらしいことが、それからそれとつづいて、あまりりゅう宮がたのしいので、なんということもおもわずに、うかうかあそんでくらすうち、三年の月日がたちました。'), Document(page_content='三年めの春になったとき、浦島はときどき、ひさしくわすれていたふるさとの夢を見るようになりました。春の日のぽかぽかあたっている水の江の浜べで、りょうしたちがげんきよく舟うたをうたいながら、網をひいたり舟をこいだりしているところを、まざまざと夢に見るようになりました。浦島はいまさらのように、\\n「おとうさんや、おかあさんは、いまごろどうしておいでになるだろう」\\nと、こうおもい出すと、もう、いても立ってもいられなくなるような気がしました。なんでも早くうちへ帰りたいとばかりおもうようになりました。ですから、もうこのごろでは、歌をきいても、踊りを見ても、おもしろくない顔をして、ふさぎこんでばかりいました。\\n\\u3000その様子を見ると、乙姫さまは心配して、\\n「浦島さん、ご気分でもおわるいのですか」\\nとおききになりました。浦島はもじもじしながら、\\n「いいえ、そうではありません。じつはうちへ帰りたくなったものですから」\\nといいますと、乙姫さまはきゅうに、たいそうがっかりした様子をなさいました。\\n「まあ、それはざんねんでございますこと。でもあなたのお顔をはいけんいたしますと、この上おひきとめ申しても、むだのようにおもわれます。ではいたし方ございません、行っていらっしゃいまし」\\n\\u3000こうかなしそうにいって、乙姫さまは、奥からきれいな宝石でかざった箱を持っておいでになって、\\n「これは玉手箱といって、なかには、人間のいちばんだいじなたからがこめてございます。これをおわかれのしるしにさし上げますから、お持ちかえりくださいまし。ですが、あなたがもういちどりゅう宮へ帰ってきたいとおぼしめすなら、どんなことがあっても、けっしてこの箱をあけてごらんになってはいけません」\\nと、くれぐれもねんをおして、玉手箱をおわたしになりました。浦島は、\\n「ええ、ええ、けっしてあけません」\\nといって、玉手箱をこわきにかかえたまま、りゅう宮の門を出ますと、乙姫さまは、またおおぜいの腰元をつれて、門のそとまでお見送りになりました。\\n\\u3000もうそこには、れいのかめがきて待っていました。\\n\\u3000浦島はうれしいのとかなしいのとで、胸がいっぱいになっていました。そしてかめの背中にのりますと、かめはすぐ波を切って上がって行って、まもなくもとの浜べにつきました。\\n「では浦島さん、ごきげんよろしゅう」'), Document(page_content='と、かめはいって、また水のなかにもぐって行きました。浦島はしばらく、かめの行くえを見送っていました。\\n\\u3000\\u3000\\u3000\\u3000\\u3000四\\n\\u3000浦島は海ばたに立ったまま、しばらくそこらを見まわしました。春の日がぽかぽかあたって、いちめんにかすんだ海の上に、どこからともなく、にぎやかな舟うたがきこえました。それは夢のなかで見たふるさとの浜べの景色とちっともちがったところはありませんでした。けれどよく見ると、そこらの様子がなんとなくかわっていて、あう人もあう人も、いっこうに見知らない顔ばかりで、むこうでもみょうな顔をして、じろじろ見ながら、ことばもかけずにすまして行ってしまいます。\\n「おかしなこともあるものだ。たった三年のあいだに、みんなどこかへ行ってしまうはずはない。まあ、なんでも早くうちへ行ってみよう」\\n\\u3000こうひとりごとをいいながら、浦島はじぶんの家の方角へあるき出しました。ところが、そことおもうあたりには草やあしがぼうぼうとしげって、家なぞはかげもかたちもありません。むかし家の立っていたらしいあとさえものこってはいませんでした。いったい、おとうさんやおかあさんはどうなったのでしょうか。浦島は、\\n「ふしぎだ。ふしぎだ」\\nとくり返しながら、きつねにつままれたような、きょとんとした顔をしていました。\\n\\u3000するとそこへ、よぼよぼのおばあさんがひとり、つえにすがってやってきました。浦島はさっそく、\\n「もしもし、おばあさん、浦島太郎のうちはどこでしょう」\\nと、声をかけますと、おばあさんはけげんそうに、しょぼしょぼした目で、浦島の顔をながめながら、\\n「へえ、浦島太郎。そんな人はきいたことがありませんよ」\\nといいました。浦島はやっきとなって、\\n「そんなはずはありません。たしかにこのへんに住んでいたのです」\\nといいました。\\n\\u3000そういわれて、おばあさんは、\\n「はてね」と、首をかしげながら、つえでせいのびしてしばらくかんがえこんでいましたが、やがてぽんとひざをたたいて、\\n「ああ、そうそう、浦島太郎さんというと、あれはもう三百年も前の人ですよ。なんでも、わたしが子どものじぶんきいた話に、むかし、むかし、この水の江の浜に、浦島太郎という人があって、ある日、舟にのってつりに出たまま、帰ってこなくなりました。たぶんりゅう宮へでも行ったのだろうということです。なにしろ大昔の話だからね」'), Document(page_content='こういって、また腰をかがめて、よぼよぼあるいて行ってしまいました。\\n\\u3000浦島はびっくりしてしまいました。\\n「はて、三百年、おかしなこともあるものだ。たった三年りゅう宮にいたつもりなのに、それが三百年とは。するとりゅう宮の三年は、人間の三百年にあたるのかしらん。それでは家もなくなるはずだし、おとうさんやおかあさんがいらっしゃらないのもふしぎはない」\\n\\u3000こうおもうと、浦島はきゅうにかなしくなって、さびしくなって、目の前がくらくなりました。いまさらりゅう宮がこいしくてたまらなくなりました。\\n\\u3000しおしおとまた浜べへ出てみましたが、海の水はまんまんとたたえていて、どこがはてともしれません。もうかめも出てきませんから、どうしてりゅう宮へわたろう手だてもありませんでした。\\n\\u3000そのとき、浦島はふと、かかえていた玉手箱に気がつきました。\\n「そうだ。この箱をあけてみたらば、わかるかもしれない」\\n\\u3000こうおもうとうれしくなって、浦島は、うっかり乙姫さまにいわれたことはわすれて、箱のふたをとりました。するとむらさき色の雲が、なかからむくむく立ちのぼって、それが顔にかかったかとおもうと、すうっと消えて行って箱のなかにはなんにものこっていませんでした。その代り、いつのまにか顔じゅうしわになって、手も足もちぢかまって、きれいなみぎわの水にうつった影を見ると、髪もひげも、まっしろな、かわいいおじいさんになっていました。\\n\\u3000浦島はからになった箱のなかをのぞいて、\\n「なるほど、乙姫さまが、人間のいちばんだいじなたからを入れておくとおっしゃったあれは、人間の寿命だったのだな」\\nと、ざんねんそうにつぶやきました。\\n\\u3000春の海はどこまでも遠くかすんでいました。どこからかいい声で舟うたをうたうのが、またきこえてきました。\\n\\u3000浦島は、ぼんやりとむかしのことをおもい出していました。')]\n",
"\u001b[34m Stopping...\u001b[0m\n",
"^C\n"
]
}
],
"source": [
"!streamlit run app.py & sleep 3 && npx localtunnel --port 8501"
]
}
],
"metadata": {
"accelerator": "GPU",
"colab": {
"provenance": [],
"authorship_tag": "ABX9TyPCY1BRMHDfrmqjEqZPQnEe",
"include_colab_link": true
},
"kernelspec": {
"display_name": "Python 3",
"name": "python3"
},
"language_info": {
"name": "python"
}
},
"nbformat": 4,
"nbformat_minor": 0
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment