見出し画像

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の制限はあり)。

その他のアイデアと今後の執筆項目(メモ)

  1. ngrokを使った例

  2. 実行のタイミングが分かる例(Get/Post)

  3. StudioなどのLP改修例

  4. Monacaを使ったスマホアプリ開発例

  5. 手書き画像からのペーパープロトタイピング例

  6. データベースの利用例

  7. エクセルVBA

    1. 関数の利用

    2. VBAを使ったツール例

    3. VBAを使ったアプリ例

    4. VBAを使ったゲーム例

  8. JSを利用したゲーム例

  9. JSを利用したWPA例


この記事が気に入ったらサポートをしてみませんか?