Streamlit

Streamlit

Python SDK 可用于创建 Streamlit 应用:

python 导入streamlit库 从flowise导入Flowise和PredictionData 导入json库

Flowise应用基础网址

base_url = st.secrets["APP_URL"] 或者 "https://your-flowise-url.com"

聊天流/代理流ID

flow_id = st.secrets["FLOW_ID"] 或者 "abc"

显示标题和描述

st.title("💬 Flowise Streamlit 聊天") st.write( “这是一个使用Flowise Python SDK的简单聊天机器人” )

创建一个Flowise客户端。

客户端 = Flowise(base_url=base_url)

创建一个会话状态变量来存储聊天消息。这可以确保消息在重新运行过程中保持不变。

如果 st.session_state 中没有 "messages": st.session_state.messages = []

通过st.chat_message显示现有的聊天消息。

对于st.session_state.messages中的每条消息: 使用st.chat_message(message["role"]): st.markdown(message["content"])

def generate_response(prompt: str): 打印('正在生成响应') 完成度 = 客户端.创建预测( 预测数据( chatflowId=flow_id, 问题=提示, overrideConfig = { "sessionId": "session1234" }, 流式传输=True ) )

对于每个完成项中的块:
    打印(chunk)
    已解析块 = json.loads(块)
    如果解析块中的“event”字段为“token”且“data”字段不为空:
        输出 str(解析后的数据块['数据'])

创建一个聊天输入框,供用户输入消息。这将显示自动位于页面底部。

如果 prompt := st.chat_input("What is up?"):

# 存储并显示当前提示符。
st.session_state.messages.append({"role": "user", "content": prompt})
使用 st.chat_message("user"):
    st.markdown(prompt)

使用`st.write_stream`将响应流式传输到聊天中,然后将其存储在
# 会话状态。
使用st.chat_message("assistant"):
    响应 = 生成响应(提示)
    full_response = st.write_stream(response)
st.session_state.messages.append({"role": "assistant", "content": full_response})

完整Github仓库:[https://github.com/HenryHengZJ/flowise-streamlit](https://github.com/HenryHengZJ/flowise-streamlit)

Last updated