当前位置: 首页 > news >正文

Streamlit实现Qwen对话机器人

Web界面

一、Streamlit

是一个用于创建数据科学和机器学习应用的开源前端框架,能够快速将 Python 脚本转化为交互式 Web 应用。通过简单的 Python API 就能构建出交互式的数据应用。

1、主要特点

  • 简单易用:纯 Python 编写代码,API 简洁直观。
  • 交互式界面:支持按钮、滑块、下拉框等控件,用户可以与应用进行交互。
  • 内置组件丰富:支持图像、视频、音频、Markdown、DataFrame、图表展示(Matplotlib、Plotly、Altair、Pydeck 等)等。
  • 支持热部署:修改代码后浏览器会自动刷新、重新加载。
  • 支持状态管理:通过 st.session_state 可以实现基本的状态保存。
  • 适合数据可视化场景:构建数据仪表盘、机器学习模型演示、A/B 测试、参数调优等场景。

2、适用场景

场景说明
数据可视化快速搭建数据仪表盘
机器学习模型演示展示模型预测结果
内部工具开发快速开发小型数据工具
教学演示展示算法或数据分析过程

3、局限

  • 不适合构建复杂的前端交互逻辑。
  • 不支持用户登录、权限管理等高级功能(需要自行扩展)。
  • 对于大规模 Web 应用开发不如 React/Vue 灵活。


二、聊天机器人

1、选用要调用的Qwen千问大模型

base_url: https://dashscope.aliyuncs.com/compatible-mode/v1
model: qwen-plus
api_key: 

阿里云百炼平台API key的获取地址:

阿里云百炼控制台

2、依赖安装

pip install streamlit openai

3、示例代码

import streamlit as st
from openai import OpenAI# 设置页面标题
st.title("💬 Qwen Chatbot")# 在侧边栏添加配置选项
with st.sidebar:# 提供一个文本输入框让用户可以手动输入API Key(可选)openai_api_key = st.text_input("Qwen API Key", key="chatbot_api_key", type="password")"[获取 Qwen API key](https://bailian.console.aliyun.com/?tab=model#/api-key)"if st.button("开启新对话"):st.session_state.messages = [{"role": "assistant", "content": "欢迎使用对话机器人,你想知道什么?"}]# 检查API Key是否已提供
if not openai_api_key:st.info("请添加新的API Key")
else:base_url = "https://dashscope.aliyuncs.com/compatible-mode/v1"client = OpenAI(api_key=openai_api_key, base_url=base_url)# 初始化对话历史记录if "messages" not in st.session_state:st.session_state.messages = [{"role": "assistant", "content": "欢迎使用对话机器人,你想知道什么?"}]# 显示对话历史for msg in st.session_state.messages:st.chat_message(msg["role"]).write(msg["content"])# 获取用户输入if prompt := st.chat_input():st.session_state.messages.append({"role": "user", "content": prompt})st.chat_message("user").write(prompt)# 调用DeepSeek APIresponse = client.chat.completions.create(model="qwen-plus",messages=st.session_state.messages,stream=False)# 追加聊天记录assistant_reply = response.choices[0].message.contentst.session_state.messages.append({"role": "assistant", "content": assistant_reply})st.chat_message("assistant").write(assistant_reply)

4、启动

streamlit run src/chat_box.py

http://www.dtcms.com/a/330995.html

相关文章:

  • CVPR 2025 | 机器人操控 | RoboGround:用“掩码”中介表示,让机器人跨场景泛化更聪明
  • GaussDB数据库架构师修炼(十六) 如何选择磁盘
  • Helm-K8s包管理(三)新建、编辑一个Chart
  • k8s+isulad 重装
  • Seata学习(三):Seata AT模式练习
  • CMake语法与Bash语法的区别
  • 解剖HashMap的put <三> JDK1.8
  • 会议系统进程池管理:初始化、通信与状态同步详解
  • 从 Notion 的水土不服到 Codes 的本土突围:研发管理工具的适性之道​
  • Apache 虚拟主机配置冲突导致 404 错误的排查总结
  • [机器学习]08-基于逻辑回归模型的鸢尾花数据集分类
  • AXI GPIO 2——ZYNQ学习笔记
  • 力扣top100(day03-02)--图论
  • Java 技术栈中间件优雅停机方案设计与实现全景图
  • 【JavaEE】多线程 -- 线程状态
  • 数据结构之顺序表相关算法题
  • 【数据分享】351个地级市农业相关数据(2013-2022)-有缺失值
  • linux中date命令
  • SAP-ABAP:SAP消息系统深度解析:架构设计与企业级应用实践
  • Wireshark中捕获的大量UDP数据
  • 23.Linux : ftp服务及配置详解
  • (论文速读)DiffusionDet - 扩散模型在目标检测中的开创性应用
  • AI搜索重构下的GEO优化服务商格局观察
  • 李沐-第六章-LeNet训练中的pycharm jupyter-notebook Animator类的显示问题
  • 轻松同步 Outlook 联系人到 Android
  • 深入解析SAE自动驾驶分级标准(0-5级)及典型落地实例
  • Ubuntu 软件源版本不匹配导致的依赖冲突问题及解决方法
  • C++ 23种设计模式的分类总结
  • C++23输出革命:std::print的崛起与工业界标准滞后的现实困境
  • 18.12 BERT问答系统核心难题:3步攻克Tokenizer答案定位与动态填充实战