🤖
0から学ぶ Poetry + Streamlit で Hello World
Streamlitとは
Streamlitは、Pythonを使ってデータサイエンスや機械学習のアプリケーションを簡単に作成できるWebフレームワークです。データの可視化やインタラクティブなダッシュボードを構築するために設計されており、最小限のコードで素早くWebアプリを作成することができます。
本記事ではゼロからStreamlitプロジェクトを作成し、Webアプリを立ち上げるまでの手順について解説します。
Streamlitの特徴
- フレームワークに組み込まれたUIコンポーネントがあるのでPythonエンジニアでもいい感じのUIが作れる
- PandasのDataFrameを
st.dataframe(df)
という感じでそのままポンできる(便利) - 逆に、StreamlitでカバーしているUIの範囲を超えるとしんどい。ゴリゴリ凝ったUI組みたいなら使うべきではない
- APIサーバは別途FlaskやFastAPIなどで建てる必要がある
poetry でプロジェクト作成
poetry new st-sandbox
poetryでの空のプロジェクト作成したら、streamlitをadd
poetry add streamlit
参考: Poetryに関する詳しい記事はこちら
Streamlit の起動
構築がちゃんとできているかどうかは streamlit hello
で確認する
poetry run streamlit hello
デフォルトだと localhost:8501 にstreamlit Webアプリが作成される
Streamlit でHello World
プロジェクト作成時はこんな感じでほとんどファイルがない
とりあえず main.py を作ってHello World
import streamlit as st
st.title("Hello World!")
起動コマンド
poetry run streamlit run main.py
Streamlitの UI Componentを使ってみる
streamlitには標準でUIコンポーネントが用意されていて、フロントエンドの知識がなくてもいい感じのWebアプリのUIを作成してくれます。
例えば、以下のようなシンプルなコードだけでChatGPTっぽいUIを作ることができます。
import streamlit as st
st.title("Streamlit Chat Application")
message = st.chat_input("Enter a message:")
st.chat_message("assistant").write("Hello, how can I help you?")
if message:
st.chat_message("user").write(message)
st.chat_message("assistant").write("Thank you for your message!")
ゼロからReactで書くと結構めんどくさいんですが前もって用意してくれるのはありがたいです。
st.write_streamでストリームレスポンスを描画することができるので、LLMにリクエストを投げた時のストリーム実装も比較的簡単に、かつ直感的に実装することができます。
他のコンポーネントに関してはStreamlit APIリファレンスを参照してください。
Reference
streamlit公式
poetry公式
Discussion