トップ OSS紹介 Streamlit

Streamlit

NRIのOpenStandiaが提供するStreamlit最新情報

バージョンアップ情報

Streamlit情報

Streamlitとは

Streamlit(ストリームリット)は、機械学習やデータサイエンス向けのグラフィカルなカスタムWebアプリケーションを簡単に作成して全世界に公開できる、 オープンソースのWebアプリケーションのフレームワークです。基本的に、フロントエンドのGUIなどもPythonの簡単なコードのみで実装できます。

Streamlitは、以下の3つの原則に基づいて開発されています。

  • シンプルなAPIにより数行のコードでWebアプリケーションを構築でき、ソースファイルを保存するだけで、自動的に変更を反映できる。
  • 変数を宣言するだけでウィジェットを追加できる。 バックエンドを書いたり、ルートを定義したり、HTTPリクエストを処理したり、フロントエンドと接続したり、HTML、CSS、JavaScriptを書いたりする必要がない。
  • Streamlitから直接、アプリの共有、管理、デプロイを簡単に行うことができる。

このような原則により、Webアプリケーションの開発から公開までの時間を非常に短くすることができます。

インストールも簡単で、以下のコマンドを実行するだけです。


$ pip install streamlit

そして、以下のようなコードを書いたPythonファイル(app.pyとします)を用意し、

import streamlit as st
import pandas as pv
df = pd.DataFrame({'User ID': [1,2,3],
'User Name': ['J.B. Bukauskas','Madison Bumgarner','Humberto Castellanos']})
st.write('*MLB* player :sunglasses:')
st.write(df)

以下のコマンドを実行すると、Webアプリケーションが起動し、


$ streamlit run app.py

次のような画面が表示されます。

主な機能

Streamlitの特徴的な機能を以下に紹介します。

マジックコマンド

Streamlitにはマジックコマンドという簡潔なコードでWebアプリケーションを実装する機能があり、これによりマークダウン、データ、グラフなどが短いコードで記述できます。

例えば、前に例で示したコードの最後の2行はst.write()を省略して、次のように書いても同じ結果になります。

'*MLB* player :sunglasses:'
df

また、以下のように記述すると、データをグラフでWebアプリケーションに表示できます。

import matplotlib.pyplot as plt
import numpy as np

arr = np.random.normal(1, 1, size=100)
fig, ax = plt.subplots()
ax.hist(arr, bins=20)

fig

さまざまなウィジェット

Streamlitでは、簡単なコードでボタンやラジオボックス、テキストエリアなどのウィジェット(グラフィカルユーザインタフェースのインタフェース部品)を画面上に配置できます。例えば、以下のコードを書くと、

text_contents = 'This is some text'
st.download_button('Download some text', text_contents)

次のようなボタンが表示され、「This is some text」と記載されたテキストファイルがダウンロードできます。

color = st.color_picker('Pick A Color', '#00f900')
st.write('The current color is', color)

のようなカラーピッカーが表示され、選んだ色を取得することができます。

簡単な手順でのアプリケーションの公開

Streamlitで開発したアプリケーションをGitHubにコミットし、そのリポジトリーをStreamlit Cloudというクラウドサービスと連携すると、簡単にインターネット上に公開することができます。 Streamlit Cloudアカウントの作成からわずか数分でアプリを起動でき、その後の管理などもすべて無料で実現できます。

修正の自動的な反映

Streamlitで開発したアプリケーションに対して行った修正は、アプリケーションの再デプロイや再起動などを行うことなく即座に反映されます。 そのため、アプリケーションの開発効率を上げることができます。

類似プロダクト

Pythonで実装可能なWebアプリケーションのフレームワークには、DjangoやFlask、FastAPIなどをはじめ、多数のOSSがあります。 ただし、機械学習やデータサイエンス向けのWebアプリケーションのフレームワークのOSSに限定すると、Streamlit以外ではDashが同類のソフトウェアとして有名です。DashもPythonで実装可能です。

Streamlitのライセンス

Streamlitのライセンスは、Apache License 2.0となっており、ユーザーはそのソフトウェアの使用や頒布、修正、派生版の頒布をすることに制限を受けません。

オープンソース年間サポートサービス

OpenStandiaではOSSを安心してご利用いただけるように、オープンソース年間サポートサービスをご提供しております。
サポートしているOSSは下記ページをご参照ください。

お気軽にお問い合わせください

関連OSS

  • Django

    Django

    ジャンゴ。Pythonで実装されたWebアプリケーションのフレームワークです。

  • Flask

    Flask

    フラスク。Python言語用の軽量(micro)ウェブフレームワークです。

オープンソースに関するさまざまな課題、OpenStandiaがまるごと解決します。
下記コンテンツも
あわせてご確認ください。