Streamlit中文本输入未被清除/重置

0 投票
0 回答
18 浏览
提问于 2025-04-11 22:36

我正在用streamlit来制作一个聊天应用,但提交后用户输入的内容没有被清空。下面是我的代码和相关截图。

def submit():
        record_timing()  # Record time before submitting message
        st.session_state.something = st.session_state.widget
        st.session_state.widget = ''

    if "messages" not in st.session_state:
        st.session_state.messages = [{"role": "assistant", "content": "How may I help you today?"}]

    if user_prompt := st.text_input("Your message here", on_change=submit, key="text_input"):  # Assign unique key
        st.session_state.messages.append({"role": "user", "content": user_prompt})
        with st.chat_message("user"):
            st.write(user_prompt)

    if st.session_state.messages[-1]["role"] != "assistant":
        with st.chat_message("assistant"):
            with st.spinner("Thinking..."):
                response = model(user_prompt, max_length, temp)
                placeholder = st.empty()
                full_response = ''
                for item in response:
                    full_response += item
                    placeholder.markdown(full_response)
                placeholder.markdown(full_response)
        message = {"role": "assistant", "content": full_response}
        st.session_state.messages.append(message)

输出效果

我希望用户提问的区域在提交后能够被清空。

0 个回答

暂无回答

撰写回答