首页 >后端开发 >Python教程 >Streamlit部分构建聊天界面

Streamlit部分构建聊天界面

Barbara Streisand
Barbara Streisand原创
2024-11-19 01:46:02688浏览

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