はじめに
今回は、IBM Cloud のサービスである IBM Cloud Virtual Server for VPC の上にGradio で作成したWeb アプリケーションをデプロイする手順を備忘録として記事にアウトプットします。
IBM Cloud Virtual Server for VPC はIBM TechZone で払い出しています。
環境
- OS : macOS
- 払い出した環境:https://techzone.ibm.com/my/reservations/create/6348390d3eaf9000179fb28b
手順
Virtual Server にアクセス
ローカルのVSCode のターミナルでVirtual Server にアクセスします。
-
証明書をターミナルで実行するディレクトリに配置する
-
ターミナルで以下のコマンドを実行してアクセス権限を設定する
ターミナルchmod 600 <証明書のファイル名>
-
VSCode を立ち上げる
-
ssh itzuser@<PublicIP> -p <SSHPort> -i ~/<証明書のファイル名>
を入力してEnter Key をクリックする
Python3.12 をインストール
ターミナルを立ち上げる。
-
システムを更新する
ターミナルsudo apt update && sudo apt upgrade -y
-
必要なパッケージをインストールする
ターミナルsudo apt install -y software-properties-common
-
deadsnakes PPA を追加する
ターミナルsudo add-apt-repository ppa:deadsnakes/ppa -y sudo apt update
-
Python 3.12 をインストールする
ターミナルsudo apt install -y python3.12
-
バージョンの確認
ターミナルpython3.12 --version
pip をインストール
以下を実行して、pip をインストールする
sudo apt install -y python3.12-venv python3.12-dev python3-pip
Web アプリケーションを配置
- VSCode 上で新規フォルダーを作成する
-
以下を実行して、作成したフォルダに移動する
ターミナルcd gradio
-
ローカルにあるWeb アプリケーションファイルをドラッグ&ドロップで配置する
app.py
の中身はこちらapp.pyimport random import gradio as gr def get_foturne(your_name): fortune_lists = ['大吉', '吉', '小吉', '凶', '末吉'] fortune_result = random.choice(fortune_lists) return your_name + "さんの今日の運勢は・・・" + fortune_result + "です" demo = gr.Interface(fn=get_foturne, inputs="text", outputs="text") demo.launch()
Web アプリケーションを実行
gradio のパッケージをインストールする
-
以下を実行して、gradio をインストールする
ターミナルpip install gradio
-
以下を実行して、gradio がインストールされたか確認
ターミナルpip show gradio
以下のような出力であればOK
出力Name: gradio Version: 5.20.1 Summary: Python library for easily interacting with trained machine learning models Home-page: Author: Author-email: Abubakar Abid <gradio-team@huggingface.co>, Ali Abid <gradio-team@huggingface.co>, Ali Abdalla <gradio-team@huggingface.co>, Dawood Khan <gradio-team@huggingface.co>, Ahsen Khaliq <gradio-team@huggingface.co>, Pete Allen <gradio-team@huggingface.co>, Ömer Faruk Özdemir <gradio-team@huggingface.co>, Freddy A Boulton <gradio-team@huggingface.co>, Hannah Blair <gradio-team@huggingface.co> License: Location: /home/itzuser/.local/lib/python3.10/site-packages Requires: aiofiles, anyio, fastapi, ffmpy, gradio-client, groovy, httpx, huggingface-hub, jinja2, markupsafe, numpy, orjson, packaging, pandas, pillow, pydantic, pydub, python-multipart, pyyaml, ruff, safehttpx, semantic-version, starlette, tomlkit, typer, typing-extensions, uvicorn Required-by:
起動
python3 test.py
上のように、URLが発行されればOK!
リンクを他の人に配布する
Virtual Server にデプロイしたWeb アプリケーションのリンクを他の人に共有するための手順です。