Streamlit パート チャット インターフェイスの構築

Barbara Streisand
リリース: 2024-11-19 01:46:02
オリジナル
635 人が閲覧しました

Streamlit Part Build a Chat Interface

Streamlit でチャット インターフェイスを構築しましょう: 簡単な方法

独自のチャット インターフェイスを構築したいと思ったことはありますが、複雑すぎると思ったことはありませんか?さて、良いニュースがあります。Streamlit を使用すると、驚くほど簡単になります。後でより洗練されたものに拡張できる、基本的なチャット アプリを作成する手順を見てみましょう。

私たちが構築しているもの

私たちは、ユーザーがメッセージを入力して応答を得ることができるチャット インターフェイスを作成しています。これは、将来のチャットボットや AI アシスタントの基盤と考えてください。一番いいところは?これを実現するには、ほんの数行の Python コードが必要です。

はじめる

まず、Streamlit アプリをセットアップしましょう。チャットメッセージに十分なスペースを与えるために、幅の広いレイアウトが必要です:

import streamlit as st  
import time  

st.set_page_config(  
    page_title="Chat App",  
    layout="wide",  
    initial_sidebar_state="collapsed",  
)  

st.title("Let's Chat!")  
ログイン後にコピー

メッセージを追跡する

チャット アプリにはメモリが必要です。会話の前半で話された内容を覚えておく必要があります。 Streamlit には、これに最適なセッション状態と呼ばれる優れた機能があります。

if "messages" not in st.session_state:  
    st.session_state.messages = []  
ログイン後にコピー

これにより、チャット履歴を保存するリストが作成されます。話した内容をすべて書き留めるノートのようなものだと考えてください。

会話を表示する

次に、チャット メッセージを表示しましょう。メッセージ履歴をループし、各メッセージをチャットバブルに表示します:

for msg in st.session_state.messages:  
    with st.chat_message(msg["role"]):  
        st.write(msg["content"])  
ログイン後にコピー

ユーザー入力の取得

ここで魔法が起こります。ユーザーがメッセージを入力できるテキスト ボックスを追加します:

prompt = st.chat_input("Say something...")  

if prompt:  
    # Add user message to chat  
    st.session_state.messages.append({"role": "user", "content": prompt})  
    with st.chat_message("user"):  
        st.write(prompt)  

    # Add a simple bot response  
    time.sleep(1)  # A brief pause to make it feel more natural  
    bot_response = f"You said: {prompt}"  
    st.session_state.messages.append({"role": "bot", "content": bot_response})  
    with st.chat_message("bot"):  
        st.write(bot_response)  
ログイン後にコピー

自分のものにする

現時点では、私たちのボットはあなたの発言をエコーバックするだけです。しかし、ここは創造性を発揮できる場所です。次のことができます:

  • AI モデルに接続して、よりスマートな応答を実現
  • クイック返信用のボタンを追加する
  • 応答に画像または絵文字を含める
  • 会話をデータベースに保存する

完全なコード

すべてが 1 つのきちんとしたパッケージにまとめられています:

import streamlit as st  
import time  

st.set_page_config(page_title="Chat App", layout="wide", initial_sidebar_state="collapsed")  
st.title("Let's Chat!")  

if "messages" not in st.session_state:  
    st.session_state.messages = []  

for msg in st.session_state.messages:  
    with st.chat_message(msg["role"]):  
        st.write(msg["content"])  

prompt = st.chat_input("Say something...")  

if prompt:  
    st.session_state.messages.append({"role": "user", "content": prompt})  
    with st.chat_message("user"):  
        st.write(prompt)  

    time.sleep(1)  
    bot_response = f"You said: {prompt}"  
    st.session_state.messages.append({"role": "bot", "content": bot_response})  
    with st.chat_message("bot"):  
        st.write(bot_response)  
ログイン後にコピー

これで完成です! 30 行未満のコードで動作するチャット インターフェイス。かなりクールですよね?

次回は、ボットが実際にメッセージを理解して応答できるようにするための AI スマート機能の追加について見ていきます。乞うご期待!

これを試してみませんか?コードをコピーし、Streamlit をインストールし (pip install streamlit)、streamlit run your_file.py で実行するだけです。コーディングを楽しんでください!


?コードを入手: GitHub - jamesbmour/blog_tutorials
?関連する Streamlit チュートリアル:JustCodeIt
?私の仕事をサポートしてください: コーヒーを買ってください

以上がStreamlit パート チャット インターフェイスの構築の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート