Streamlitを使ったらデモ用のChatUIをサクッと用意できた
こんなデモ
あらまし
チャットAI的なものを日常的にいじっていると、何かとデモ的に誰かに見せるという機会も相応に多いわけですが、CLIでデモをするというのも何とも味気ないものです。
プログラマー相手なら良いんですが、一般の方向けにCLIを見せると、結構な確率でドン引きされるんですよねー。
最近は大体Pythonで書いているので、わざわざUIを作るためだけにNext.jsを引っ張り出してもろもろTypeScriptで書くというのも面倒くさいなぁ・・・と思っていたところ、
Pythonの世界ではそのままズバリの目的のためにStreamlitというフレームワークがあるようでした。
既に結構な数の先人が試しているようでして、
こんなライブラリを使うと数行でチャットUIが作れてしまうようです。
書いてみた
そんなわけで書いてみたのがこんなコード。
import streamlit as st
from streamlit_chat import message
if "generated" not in st.session_state:
st.session_state.generated = []
if "past" not in st.session_state:
st.session_state.past = []
st.title("ずんだもんと一緒に日記を書こう")
with st.form("ずんだもんに今日のできごとを話そう"):
user_message = st.text_area("今日のできごと")
submitted = st.form_submit_button("送信する")
if submitted:
st.session_state.past.append(user_message)
st.session_state.generated.append("ずんだもんが聞いています")
if st.session_state['generated']:
for i in range(len(st.session_state['generated'])):
message(st.session_state['past'][i], is_user=True, key=str(i) + "_user")
message(st.session_state['generated'][i], key=str(i))
これだけで冒頭のチャットUIが作れてしまう、というもの。マジ凄い。
現場からは以上です。
この記事が気に入ったらサポートをしてみませんか?