🔔 Streamlit フィードバック ― 通知・進捗・評価・状態表示

対象バージョン v1.58 | 最終更新 2026-06-19 | 更新確認の目安:毎月

最新の実バージョンはプレイグラウンドst.__version__ を表示)で常に確認できます。

このページでわかること

  • Streamlit で通知・進捗・評価・状態表示が関数1つで出せること
  • 各UIがどのバージョンから使えるか(Tierバッジで明記)
  • 同じUIを React で組む場合との使い分け
  • 実際に触れるプレイグラウンドと、ui-memo の対応ページへの導線

ウィジェット一覧

ユーザーに「結果・状況・評価」を返すUI群。完了通知(toast)、処理中の状態(statusprogress)、固定メッセージ(alert)、評価の受け取り(feedback)が、いずれも1行で出せる。導入バージョンの新しい順に紹介します。

st.feedback の星評価UI

st.feedback

Tier A導入 v1.37〜新しめ

星・サムズ・表情で評価を受け取るウィジェット。"stars" / "thumbs" / "faces" から選べ、選択値(インデックス)が返る。回答やコンテンツの評価収集に。v1.37 で追加

python
score = st.feedback("stars")   # "thumbs" / "faces" も可
if score is not None:
    st.write(f"評価: {score + 1}")

Reactとの比較:評価UIは自前かライブラリで組む領域。Streamlit は種類を指定するだけで選択値まで返る。

st.toast の一時通知

st.toast

Tier B導入 v1.27〜

画面右下に出て自動で消える一時通知。icon で絵文字を付けられる。保存完了など「一瞬知らせたい」場面に。v1.27 で追加

python
st.toast("保存しました", icon="✅")

Reactとの比較:トーストは表示・スタック・自動消去を組む領域(react-toastify 等)。Streamlit は1行で出せる。

通知・トーストの実装比較を見る →
st.status の処理状況表示(展開状態)

st.status

Tier B導入 v1.27〜

処理の進行をまとめて見せる展開可能なステータス。with st.status(...) の中に途中ログを書け、完了時に状態(complete/error)やラベルを更新できる。長い処理の可視化に。v1.27 で追加

python
with st.status("処理中...", expanded=True) as s:
    st.write("読み込み")
    st.write("集計")
    s.update(label="完了", state="complete")

Reactとの比較:進捗ログUIを組む領域を、with ブロックで完結。

st.progress の進捗バー

st.progress

Tier C導入 初期〜

進捗バー。0.01.0(または0〜100)で進捗を、text で補足を表示。ループ内で更新して進行を見せる。

python
bar = st.progress(0, text="開始")
for i in range(100):
    bar.progress(i + 1, text=f"{i + 1}%")

Reactとの比較:プログレスバーを1行で。値を更新すれば進む。

st.info・success・warning・error の色付きアラート

st.info / success / warning / error

Tier C導入 初期〜

色付きの固定メッセージ(インライン・アラート)。情報=info(青)、成功=success(緑)、警告=warning(黄)、エラー=error(赤)。ページ内に残して状態を明示する。v1.58 で title 引数が追加され、見出し付きにできる。

python
st.info("情報")
st.success("成功")
st.warning("警告")
st.error("エラー")

Reactとの比較:アラート/バナーを色ごとに組む領域を、関数1つで。

Reactでやるなら(使い分けまとめ)

フィードバックUIは、Streamlit の「結果や状況を1行で返せる」手軽さが効くゾーン。通知・進捗・評価・状態表示を、表示制御やアニメーションを意識せずに出せる。

一方、公開プロダクトでトーストの位置・スタック・アニメーション、評価UIのデザイン、通知の永続化まで作り込むなら、React のUIライブラリ(react-toastify / Radix 等)の自由度が要る。

目安は、社内ツール・データアプリの状況表示なら Streamlit、作り込んだ公開UIの通知体験なら React(公開Webが求めるSEO・デザイン制御・大量アクセスに Streamlit は構造的に弱く、逆に開発の速さで強いため)。Streamlit と React/Next.js の違いは Streamlit UI ガイド(総括) で詳しく解説。

この分野の深掘りは ui-memo の通知・トースト比較ページへ。

※トレードオフ(参考):Streamlit のフィードバックUIは手軽な反面、通知の位置・アニメーション・評価UIの見た目の作り込みは限定的。React は自由度が高い反面、同じ体験を出すまでの実装量は多い。

AIプロンプトテンプレ

Streamlit でフィードバックUIを使うときの、AIへの指示テンプレ。

処理状況の表示

text
Streamlit で、重い処理を st.status で囲んで各ステップのログを表示し、
終わったら state="complete" に更新して。

完了トースト

text
Streamlit で、保存ボタンを押したら st.toast で「保存しました」と通知して。

評価UI

text
Streamlit で st.feedback("stars") を使って5段階評価を受け取り、
選ばれた値を表示して。

▶ 実際に触ってみる ― フィードバック(プレイグラウンド)

本物の Streamlit がブラウザで動く。常に最新の実行バージョンを表示。

よくある質問

st.toast と st.success などのアラートはどう使い分けますか?

st.toast は画面端に出て自動で消える一時通知です。st.success などはページ内に残る固定メッセージです。一瞬の完了通知は toast、状態の明示は alert を使います。

st.feedback では何を受け取れますか?

「stars」/「thumbs」/「faces」の3種類があり、選択値(インデックス)が返ります。未選択のときは None です。

st.status と st.spinner の違いは?

st.spinner は処理中のスピナー表示のみです。st.status は展開可能で、途中ログを書いたり、完了・エラーに状態を更新したりできます。

アラートに見出しを付けられますか?

v1.58 で st.info / success / warning / error に title 引数が追加され、見出し付きで表示できます。