Closed15
Streamlit キャッチアップ
poetry init
poetry add streamlit
poetry shell
streamlit hello
web browser の新しいタブにStreamlit's Hello appが現れる
streamlit run myfile.py
というコマンドで動かすっぽい
主な概念
適宜見直す
index.py
import streamlit as st
st.title("Hello World")
st.markdown("## 初めての Streamlit")
st.markdown("Streamlit を使えば簡単にWebアプリを作成できます。")
を作成。
streamlit run index.py
で動かす。
- コマンド実行後に表示される、Local URLでプレビューを見れる。
- プレビュー画面上で、Run on save にチェックをつければ、コード変更時にリロードしなくても反映される
プレビュー画面はこんな感じ。右上で Run on save などの設定変更が可能。
- pagesフォルダに複数ページを保存可能。
- なお、pagesフォルダに保存しない場合、1つしかファイル分しか表示されないように見受けられた。
従来は1ページからsidebarを利用することで複数ページを表示するしかなかった。
現在は、pagesを利用することで柔軟に複数ページを作成可能。
覚えておいておくべきことは以下。
- 各 Python ファイルの先頭に番号を追加することで、MPA 内のページの順序を変更できます。ファイル名の前に 1 を追加すると、Streamlit はそのファイルをリストの先頭に置きます。
- 各 Streamlit アプリの名前はファイル名によって決定されるため、アプリ名を変更するにはファイル名を変更する必要があります。
- Streamlit アプリでレンダリングされるファイル名に絵文字を追加することで、アプリに楽しみを加えることができます。
- 各ページには、ファイル名によって定義される独自の URL があります。
Chat elements もある
st.chat_messag
import numpy as np
import streamlit as st
with st.chat_message("user"):
st.write("Hello 👋")
st.line_chart(np.random.randn(30, 3))
# just call methods directly in the returned objects:
message = st.chat_message("assistant")
message.write("Hello human")
message.bar_chart(np.random.randn(30, 3))
ロジックの組み込みは必要だが、簡単にUIが作成可能
st.chat_input
- チャット入力は、アプリのメインエリア内で、アプリのページごとに1回のみ使用できます。サイドバー、カラム、エキスパンダー、フォーム、タブでは使用できない。将来的に対応する予定
TODO:
Multi Line を利用したら入力体験が良くなりそうだが、画面下部の固定が難しそう
Build conversational apps のチュートリアル
このスクラップは2023/07/02にクローズされました