star

提示

阅读构建一个基本的LLM聊天应用教程,学习如何使用st.chat_messagest.chat_input来构建基于聊天的应用。

显示一个聊天输入小部件。

函数签名[source]

st.chat_input(placeholder="您的消息", *, key=None, max_chars=None, disabled=False, on_submit=None, args=None, kwargs=None)

参数

placeholder (str)

当聊天输入为空时显示的占位符文本。默认为 "您的消息"。出于可访问性原因,您不应使用 空字符串。

key (str or int)

一个可选的字符串或整数,用作小部件的唯一键。 如果省略,将根据小部件的内容生成一个键。任何两个小部件都不能有相同的键。

max_chars (int or None)

可以输入的最大字符数。如果为None(默认值),则没有最大限制。

disabled (bool)

是否应禁用聊天输入。默认为 False

on_submit (callable)

一个可选的回调函数,当聊天输入的值被提交时调用。

args (tuple)

传递给回调函数的可选参数元组。

kwargs (dict)

一个可选的kwargs字典,用于传递给回调函数。

返回

(str or None)

应用程序最后一次运行时文本输入小部件的当前(非空)值。否则为None

示例

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}")

聊天输入也可以通过将其嵌套在任何布局容器(容器、列、选项卡、侧边栏等)或片段中来内联使用。创建嵌入在其他内容旁边的聊天界面,或者拥有多个聊天机器人!

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}")

有关st.chat_inputst.chat_message API的概述,请查看由Streamlit的高级开发者倡导者Chanin Nantasenamat(@dataprofessor)提供的视频教程。

forum

还有问题吗?

我们的 论坛 充满了有用的信息和Streamlit专家。