st.chat_input
显示聊天输入窗口小部件。
Function signature[source] | |
---|---|
st.chat_input(placeholder="Your message", *, key=None, max_chars=None, disabled=False, on_submit=None, args=None, kwargs=None) |
|
Returns | |
(str or None) |
The current (non-empty) value of the text input widget on the last run of the app. Otherwise, None. |
Parameters | |
placeholder (str) |
A placeholder text shown when the chat input is empty. Defaults to "Your message". For accessibility reasons, you should not use an empty string. |
key (str or int) |
An optional string or integer to use as the unique key for the widget. If this is omitted, a key will be generated for the widget based on its content. Multiple widgets of the same type may not share the same key. |
max_chars (int or None) |
The maximum number of characters that can be entered. If None (default), there will be no maximum. |
disabled (bool) |
Whether the chat input should be disabled. Defaults to False. |
on_submit (callable) |
An optional callback invoked when the chat input's value is submitted. |
args (tuple) |
An optional tuple of args to pass to the callback. |
kwargs (dict) |
An optional dict of kwargs to pass to the callback. |
代码
在应用程序主体中使用 st.chat_input 时,它将被固定在页面底部。
import streamlit as st
prompt = st.chat_input("Say something")
if prompt:
st.write(f"User has sent the following prompt: {prompt}")
这段代码使用了Streamlit库来创建一个简单的聊天输入界面。用户可以在输入框中输入内容,然后点击发送按钮。当用户输入内容后,代码会检查输入内容是否存在,如果存在则会将用户输入的内容显示在屏幕上。
这里每一次输入都会替换掉原来输入的内容。
聊天输入法还可以嵌套到任何布局容器(容器、列、标签、侧边栏等)中,从而在线使用。创建嵌入到其他内容旁边的聊天界面,或拥有多个聊天机器人!
import streamlit as st
with st.sidebar:
messages = st.container(height=300)
if prompt := st.chat_input("Say something"):
messages.chat_message("user").write(prompt)
messages.chat_message("assistant").write(f"Echo: {prompt}")
这段代码使用了Streamlit库来创建一个简单的聊天界面。首先,通过`import streamlit as st`导入了Streamlit库。然后,使用`with st.sidebar`创建了一个侧边栏,并在其中创建了一个高度为300的容器`messages`。接着,使用`st.chat_input("Say something")`创建了一个聊天输入框,用户可以在其中输入消息。如果用户输入了消息(使用了walrus运算符`:=`来检查是否有输入),则会在`messages`容器中显示用户输入的消息和助手的回复,助手回复的内容是用户输入消息的回显。
有关 st.chat_input 和 st.chat_message API 的概述,请观看 Streamlit 高级开发人员宣传员 Chanin Nantasenamat (@dataprofessor) 制作的视频教程。