【Streamlit】爆速でWebアプリ!Streamlitとは?

Streamlit
この記事は約7分で読めます。

こんにちは、JS2IIUです。

Pythonで作成したデータ分析や機械学習の結果を、誰でも操作できるWebアプリとして手軽に公開したい。その願いを驚くほど簡単に叶えてくれるのが、Streamlit(ストリームリット) です。

この記事では、Streamlitの概要、特徴、インストール方法、何ができるのか、そしてStreamlit Cloudによるデプロイ方法まで紹介していきます。

Streamlitとは?

Streamlit は、Pythonで書いたスクリプトをそのままWebアプリ化できる、オープンソースのフレームワークです。2022年にはSnowflake社に買収され、さらに注目が集まりました。

HTMLやCSS、JavaScriptの知識が一切なくても、数行のPythonコードでインタラクティブなWebアプリが作れる という点が最大の魅力です。

Streamlitの主な特徴

特徴を簡単にまとめてみます。

特徴内容
✅ Pythonだけで作れるフロントエンド不要。普段のPythonスクリプト感覚で開発できます。
✅ 豊富なUIウィジェットボタン、スライダー、テキスト入力など、直感的なUI部品が豊富です。
✅ データ可視化が得意Pandasの表やMatplotlib、Plotlyなどと連携してグラフ表示が可能です。
✅ 自動リロード機能ありコードを保存するだけでアプリが即時更新されます。
✅ 無料でアプリを公開できるGitHubと連携して、Streamlit Cloud上で簡単にデプロイできます。

できることの具体例(詳しく解説)

StreamlitはシンプルなUIアプリから本格的なデータツールまで、様々なアプリを作成できます。以下に実用的な例を挙げ、それぞれ詳しく説明します。

1. データ可視化ダッシュボード

CSVやExcelなどのデータファイルを読み込み、グラフや表を表示するダッシュボードが簡単に作れます。

例:売上データの可視化

Python
import streamlit as st
import pandas as pd
import matplotlib.pyplot as plt

st.title("売上ダッシュボード")

df = pd.read_csv("sales.csv")
st.dataframe(df)

monthly_sales = df.groupby("month")["sales"].sum()
fig, ax = plt.subplots()
monthly_sales.plot(kind="bar", ax=ax)
st.pyplot(fig)

2. 機械学習モデルのWebアプリ化

自作のモデルを使って、ユーザーが入力した値から 予測結果を返すアプリ が作れます。

例:住宅価格予測アプリ

Python
import streamlit as st
import joblib

model = joblib.load("house_price_model.pkl")

st.title("住宅価格予測")

area = st.number_input("面積(㎡)")
rooms = st.slider("部屋数", 1, 5, 3)

if st.button("予測する"):
    pred = model.predict([[area, rooms]])
    st.success(f"予測価格: {int(pred[0]):,} 円")

3. 入力フォーム付きツール

複数の入力項目を組み合わせて、データベースへの登録や、他システムとの連携が可能です。

例:書籍登録アプリ

Python
st.header("書籍登録フォーム")

title = st.text_input("タイトル")
author = st.text_input("著者")
published = st.date_input("出版日")

if st.button("登録"):
    st.success(f"{title}{author})を登録しました。")

4. ファイルアップロード・変換アプリ

CSVやExcelファイルをアップロードして、特定の形式に変換・編集するアプリも簡単に作成可能です。

例:CSVファイルの加工&ダウンロード

Python
uploaded = st.file_uploader("CSVファイルをアップロード", type="csv")
if uploaded:
    df = pd.read_csv(uploaded)
    st.dataframe(df)

    df["新しい列"] = df["金額"] * 1.1
    st.download_button("CSVとして保存", df.to_csv(index=False), "new_file.csv")

Streamlitのインストール方法と起動手順

Step 1. インストール

以下のコマンドでStreamlitをインストールします:

Bash
pip install streamlit

Step 2. アプリの作成

例えば、app.pyというファイルを作成し、次のように書きます:

Python
import streamlit as st

st.title("はじめてのStreamlitアプリ")
st.write("こんにちは!Streamlitの世界へようこそ。")

Step 3. 実行

以下のコマンドでアプリを起動します:

Bash
streamlit run app.py

ブラウザが自動的に開き、http://localhost:8501 でアプリが表示されます。

Streamlit Cloudでアプリを公開する

作成したStreamlitアプリは、自分だけで使うだけでなく、インターネット上に公開して他人に共有することも可能です。それを無料で実現できるのが Streamlit Community Cloud です。

✅ GitHubアカウントがあればすぐに公開できる!

Streamlit Cloudでは、GitHub上にあるアプリのPythonコードを元に、簡単にデプロイできます。

公開までの流れ(ステップバイステップ)

  1. GitHubにリポジトリを作成
    例:my-streamlit-app という名前で作成します。
  2. 作成したアプリファイル(例:app.py)をアップロード
  3. 必要であれば requirements.txt を追加
    例:
Plaintext
   streamlit
   pandas
   matplotlib
  1. Streamlit Cloudにアクセス
    👉 https://streamlit.io/cloud
  2. GitHubアカウントでログイン
  3. 「New app」ボタンからアプリを作成
  • GitHubのリポジトリを選択
  • ブランチ名とPythonファイル名(例:main, app.py)を指定
  • 「Deploy」ボタンをクリック
  1. 数十秒でWebアプリが世界に公開!
    公開されたURLを仲間と共有するだけで、誰でもアクセス可能になります。

補足:環境ファイルやAPIキーの管理

機密情報やAPIキーを使う場合は、.streamlit/secrets.toml ファイルを使って安全に管理できます。詳細は公式ドキュメントを参照してください。

まとめ

Streamlitは、Pythonエンジニアやデータサイエンティストが 爆速でWebアプリを作れる革新的なツール です。面倒なフロントエンドの開発は不要。コードを書いたらそのままアプリになり、公開もワンクリック。

使えば使うほど「これが欲しかった!」と思えるような機能が詰まっています。まずはローカルで試し、次にGitHub + Streamlit Cloudでアプリを世界に公開してみましょう。

🔗 参考リンク

さらに活用方法やサンプルコード、レイアウトの応用なども今後紹介していきますので、ぜひお楽しみに!

最後に、書籍のPRです。

最新のOpenAIのチャットAPIの使い方もしっかりと解説されている良書です。2024年11月初版発行、「LangChainとLangGraphによるRAG・AIエージェント[実践]入門」西見、吉田、大嶋著。

最後まで読んでいただきありがとうございます。

コメント

タイトルとURLをコピーしました