AI駆動型開発04:アプリ化への道(ライブラリを組み合わせる)
今回使用したコード(Google Colab)
アプリケーションとは?
アプリケーションとは何でしょうか? アプリケーションとはUI(ユーザーインターフェース)を持ち、不特定多数の人が実行する比較的規模の大きいプログラムの集まりをいいます。プログラミングやシステムの知識がなくても使えるように設計(デザイン)されています。
ツールとは?
ツールとは比較的小規模、単機能のプログラムの集まりで、プログラミングの知識がないとしても、データをこのように準備するとか実行ボタンを押すとか決まりがあり、マニュアル化が必要なものをいいます。これまでAI駆動型開発03までで作成してきたコード(プログラム)もツールの一種と行ってよいでしょう。
ライブラリとは?
ライブラリはYOLOのようにツールを他の人が使いやすように汎用性を持たせて公開して物になります。
アプリ化を考える
アプリ化はプログラム言語の影響も大きいのですが、実行環境の影響を大きく受けます。すぐに思いつくアプリは
Windowsアプリ
Macアプリ
iPhoneアプリ
Androidアプリ
Webアプリ
ハイブリッドアプリ
ノーコードアプリ
OSに依存するようなアプリは、専用の環境が必要になります。Windowsの場合はVisual Studio、MacやiPhoneの場合はXcode、Androidの場合はAndroid Studioといった具合です。
Webアプリやハイブリッドアプリ、ノーコードアプリはブラウザからのコード実行が可能になっています。
Google ColabをWebアプリ化してみる
生成AIに「Google ColabでWebアプリを作るライブラリについて教えて下さい。」を聞くと「Streamlit」「Gradio」「Flask」「Voilà」といったライブラリが紹介されました。Gradio以外は「ngrok」というローカールPCのサーバーを公開する仕組みが必要そうです。そこで「Gradio」のコードを試してみることにします。
Gradio
実行すると次のように表示されます。
名前を入力してSubmitを押すと結果が表示されます。
またURLも自動で発行されていて、URLをクリックすると次のように表示されます。
これだけで簡単なWebアプリが出来上がりました。
次に、画像をアップロードできるように修正をかけましょう。これは一度の対話ではうまくいきませんでした。何度か対話を繰り返して次のようなコードになりました。
import gradio as gr
from PIL import Image
# 画像表示関数
def display_image(image):
return image
# Gradioインターフェースの設定
iface = gr.Interface(
fn=display_image,
inputs=gr.Image(type="pil"),
outputs=gr.Image()
)
# インターフェースの実行
iface.launch()
実行すると次のように表示されます。
画像をアップロードして「Submit」をクリックすると次のように表示されます。
最後にYOLOと組み合わせてみましょう。次のようなプロンプトを生成AIに送ります。
生成されたコードを実行すると次のようにアップロードされた画像に対し、物体抽出を行うことができます。また生成されたURLを利用すれば誰もが利用できす。物体抽出(画像認識)アプリとして公開可能となります(Gradioの制限はあり)。
その他のアイデアと今後の執筆項目(メモ)
ngrokを使った例
実行のタイミングが分かる例(Get/Post)
StudioなどのLP改修例
Monacaを使ったスマホアプリ開発例
手書き画像からのペーパープロトタイピング例
データベースの利用例
エクセルVBA
関数の利用
VBAを使ったツール例
VBAを使ったアプリ例
VBAを使ったゲーム例
JSを利用したゲーム例
JSを利用したWPA例