首頁 >後端開發 >Python教學 >Streamlit部分建構聊天介面

Streamlit部分建構聊天介面

Barbara Streisand
Barbara Streisand原創
2024-11-19 01:46:02691瀏覽

Streamlit Part Build a Chat Interface

讓我們在 Streamlit 中建立聊天介面:簡單的方法

是否曾經想建立自己的聊天介面,但認為它太複雜?嗯,我有個好消息 - 使用 Streamlit,一切都非常簡單。讓我們逐步創建一個基本的聊天應用程序,您稍後可以將其擴展為更複雜的應用程式。

我們正在建造什麼

我們正在創建一個聊天介面,用戶可以在其中鍵入訊息並獲得回應。將其視為未來聊天機器人或人工智慧助理的基礎。最好的部分?您只需要幾行 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)  

讓它成為你自己的

現在,我們的機器人只是迴響您所說的話。但這是您可以發揮創意的地方!你可以:

  • 將其連接到人工智慧模型以獲得更聰明的回應
  • 新增快速回覆按鈕
  • 在回覆中包含圖像或表情符號
  • 將對話儲存到資料庫

完整程式碼

以下是所有內容都集中在一個整齊的包中:

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 行程式碼的工作聊天介面。很酷,對吧?

下次,我們將考慮添加一些人工智慧,使我們的機器人真正理解並回應訊息。敬請關注!

想嘗試嗎?只需複製程式碼,安裝 Streamlit (pip installstreamlit),然後使用 Streamlit run your_file.py 運行它。快樂編碼!


?取得程式碼:GitHub - jamesbmour/blog_tutorials
?相關Streamlit教學:JustCodeIt
?支持我的工作:請我喝杯咖啡

以上是Streamlit部分建構聊天介面的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn