是否曾经想构建自己的聊天界面,但认为它太复杂?嗯,我有个好消息 - 使用 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中文网其他相关文章!