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.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