当前位置: 首页 > 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.lryc.cn/news/620835.html

相关文章:

  • Pytest自动化测试框架总结
  • 2025年机器视觉与信号处理国际会议(MVSP 2025)
  • springboot博客实战笔记02
  • 游戏行业DevOps实践:维塔士集团基于Atlassian工具与龙智服务构建全球化游戏开发协作平台
  • 阿里云RDS SQL Server实例之间数据库迁移方案
  • flstudio.exe安装教程|FL Studio怎么下载安装?超简单中文指南
  • K8S企业级应用与DaemonSet实战解析
  • 深入解析 HTTP 协议演进:从 1.0 到 3.0
  • 怎么判断晶振的好坏,有什么简单的办法
  • .NET 的 WebApi 项目必要可配置项都有哪些?
  • 【论文阅读-Part1】PIKE-RAG: sPecIalized KnowledgE and Rationale Augmented Generation
  • 机器学习算法篇(八)-------svm支持向量机
  • Android数据缓存目录context.getCacheDir与Environment.getExternalStorageDirectory
  • Linux 文件系统简介
  • 【大模型私有化部署】实战部分:Ollama 部署教程
  • 芯片 讲解| DP7272—24位、192kHz立体声音频编解码器
  • 百川开源大模型Baichuan-M2的医疗能力登顶第一?
  • Mybatis Plus 分页插件报错`GOLDILOCKS`
  • week1-[分支结构]中位数
  • imx6ull-驱动开发篇24——Linux 中断API函数
  • Docker 入门与实战:从环境搭建到项目部署
  • Windows批处理脚本自动合并当前目录下由You-get下载的未合并的音视频文件
  • 【Unity3D实例-功能-移动】角色行走和奔跑的相互切换
  • AI智能体|扣子(Coze)搭建【批量识别发票并录入飞书】Agent
  • Cookie、Session、Token详解
  • 如何在 Ubuntu 24.04 LTS Noble Linux 上安装 Wine HQ
  • OpenCV对椒盐处理后的视频进行均值滤波处理
  • 短剧小程序系统开发:赋能创作者,推动短剧艺术创新发展
  • 【软件测试】自动化测试 — selenium快速上手
  • BitDock——让你的Windows桌面变为Mac