基于DashScope+Streamlit构建你的机器学习助手(入门级)

2024-08-29 11:28

本文主要是介绍基于DashScope+Streamlit构建你的机器学习助手(入门级),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言

在LLM(大语言模型)盛行的今天,博主越来越感觉到AI(人工智能)的潜力被“无限”激发了。它为什么会突然间完成“鱼跃龙门”呢? 博主认为基础设施(也可以称为算力)的完善和“天才”式的构思,是本次“盛宴”的幕后功臣。一个点子,可以改变一个领域,甚至重塑我们的工作习惯和生活方式。我想LLM作为AI新势力,有可能改变整个AI的生态。

今天,博主通过一个示例,带领各位亲自构建一个大模型应用。说起应用,我想各位应该能够理解了。比如一个聊天机器人、一个翻译助手,一个问答助手、又比如是一个创作助手等。那么本文就以一个简单的大模型为基础,构建一个属于你自己的机器学习助手。

首先来看这个小助手的“五脏六腑”是什么,跟着博主来一趟揭秘之旅吧。

一、DashScope入门

DashScope(模型服务灵积)是阿里推出的一款模型服务:

它通过围绕模型为中心,致力于为AI应用开发者提供品类丰富、数量众多的模型选择,并通过API接口为其提供开箱即用、能力卓越、成本经济的模型服务。各领域模型的能力均可通过DashScope统一的API和SDK来实现被不同业务系统集成,AI应用开发和模型效果调优的效率将因此得以激发,助力开发者释放灵感、创造价值。

一句话总结:这是一款模型框架,你可以通过它的API或SDK调用已内置的模型,创建自己的大模型应用。

博主曾经有一篇文章(基于Python的大模型学习手册(入门级))对DashScope SDK方式进行了介绍,可以参考它快速完成安装调试,这里不再赘述了。

接下来小助手需要一个face(门面),我们就选择Streamlit吧。

二、Streamlit入门

在这里插入图片描述

1. 简介

Streamlit is an open-source Python framework for data scientists and AI/ML engineers to deliver dynamic data apps with only a few lines of code.

一句话总结:Streamlit是一个开源的python框架,你通过几行代码就可以快速构建一个基于动态数据的应用,常用于数据科学和AI/ML工程领域。

2. 安装

pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple streamlit 

安装完成后,可在pycharm的terminal窗口,输入: streamlit hello,回车后,根据提示打开浏览器,访问默认demo:
在这里插入图片描述
打开页面如下,我们可以点击左侧导航,体验一番:
Hello
在这里插入图片描述
Animation_Demo
在这里插入图片描述
Plotting_Demo
在这里插入图片描述

至此,我们已备齐所有的必需工具,开始构建你的专属助手吧。

三、构建一个专属的问答助手

1. 设计前端

基于Streamlit组件,我们先简单设计一下前端的页面,一个输入框,一个提交按钮。效果如下:
在这里插入图片描述
核心代码:

    st.title('机器学习助手')with st.form('问答form'):text = st.text_area('请输入问题:')submitted = st.form_submit_button('提交')

2. 嵌入模型

博主选择阿里的通义千问大模型qwen-turbo,作为小助手的“知识引擎”。核心代码如下:

messages = [{'role': 'system', 'content': '你是一个优秀的机器学习专家'},{'role': 'user', 'content': input}]
responses = Generation.call(model="qwen-turbo",messages=messages,temperature=0.5,stream=True, # 支持流式输出incremental_output=True,# 设置为True,将开启增量输出模式,后面输出不会包含已经输出的内容result_format='message')

3. 流式输出

支持小助手像打字机一样,逐字输出,提高使用体验。当然前提是完成模型设置。输出的核心代码:

ans = st.empty()
full_content = ''
for response in responses:if response.status_code == HTTPStatus.OK:full_content += response.output.choices[0]['message']['content']ans.info(full_content)# yield full_contentelse:print('Request id: %s, Status code: %s, error code: %s, error message: %s' % (response.request_id, response.status_code,response.code, response.message))

4. 部署运行

我们通过pycharm—Terminal窗口,只需输入 streamlit run [绝对路径]/xx.py,回车就能访问了,如下图所示:
在这里插入图片描述
在这里插入图片描述

5. 问答演示

在这里插入图片描述
至此,你轻松收获了一个属于你自己的大模型应用,一个简易版的机器学习问答助手。

6. 完整代码

import dashscope
from http import HTTPStatus
from dashscope import Generation
import streamlit as stdashscope.api_key = "你的dashscope api key"def call_with_messages(input):messages = [{'role': 'system', 'content': '你是一个优秀的机器学习专家'},{'role': 'user', 'content': input}]responses = Generation.call(model="qwen-turbo",messages=messages,temperature=0.5,stream=True, # 支持流式输出incremental_output=True,# 设置为True,将开启增量输出模式,后面输出不会包含已经输出的内容result_format='message')ans = st.empty()full_content = ''for response in responses:if response.status_code == HTTPStatus.OK:full_content += response.output.choices[0]['message']['content']ans.info(full_content)# yield full_contentelse:print('Request id: %s, Status code: %s, error code: %s, error message: %s' % (response.request_id, response.status_code,response.code, response.message))if __name__ == '__main__':st.title('机器学习助手')with st.form('问答form'):text = st.text_area('请输入问题:')submitted = st.form_submit_button('提交')if submitted:# st.write_stream(call_with_messages(text))call_with_messages(text)

结语

通过DashScope+Streamlit组合,我们可以轻松create一个大模型应用。相信通过此文,你可以get人生第一个大模型之体验!

走过的,路过的,点点赞,收收藏哦,欢迎指导!


精彩回顾

基于LangChain的大模型学习手册(入门级)
基于Python的大模型学习手册(入门级)


在这里插入图片描述

这篇关于基于DashScope+Streamlit构建你的机器学习助手(入门级)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1117726

相关文章

Three.js构建一个 3D 商品展示空间完整实战项目

《Three.js构建一个3D商品展示空间完整实战项目》Three.js是一个强大的JavaScript库,专用于在Web浏览器中创建3D图形,:本文主要介绍Three.js构建一个3D商品展... 目录引言项目核心技术1. 项目架构与资源组织2. 多模型切换、交互热点绑定3. 移动端适配与帧率优化4. 可

Python利用PySpark和Kafka实现流处理引擎构建指南

《Python利用PySpark和Kafka实现流处理引擎构建指南》本文将深入解剖基于Python的实时处理黄金组合:Kafka(分布式消息队列)与PySpark(分布式计算引擎)的化学反应,并构建一... 目录引言:数据洪流时代的生存法则第一章 Kafka:数据世界的中央神经系统消息引擎核心设计哲学高吞吐

Unity新手入门学习殿堂级知识详细讲解(图文)

《Unity新手入门学习殿堂级知识详细讲解(图文)》Unity是一款跨平台游戏引擎,支持2D/3D及VR/AR开发,核心功能模块包括图形、音频、物理等,通过可视化编辑器与脚本扩展实现开发,项目结构含A... 目录入门概述什么是 UnityUnity引擎基础认知编辑器核心操作Unity 编辑器项目模式分类工程

Springboot项目构建时各种依赖详细介绍与依赖关系说明详解

《Springboot项目构建时各种依赖详细介绍与依赖关系说明详解》SpringBoot通过spring-boot-dependencies统一依赖版本管理,spring-boot-starter-w... 目录一、spring-boot-dependencies1.简介2. 内容概览3.核心内容结构4.

Python学习笔记之getattr和hasattr用法示例详解

《Python学习笔记之getattr和hasattr用法示例详解》在Python中,hasattr()、getattr()和setattr()是一组内置函数,用于对对象的属性进行操作和查询,这篇文章... 目录1.getattr用法详解1.1 基本作用1.2 示例1.3 原理2.hasattr用法详解2.

Go语言使用net/http构建一个RESTful API的示例代码

《Go语言使用net/http构建一个RESTfulAPI的示例代码》Go的标准库net/http提供了构建Web服务所需的强大功能,虽然众多第三方框架(如Gin、Echo)已经封装了很多功能,但... 目录引言一、什么是 RESTful API?二、实战目标:用户信息管理 API三、代码实现1. 用户数据

python使用Akshare与Streamlit实现股票估值分析教程(图文代码)

《python使用Akshare与Streamlit实现股票估值分析教程(图文代码)》入职测试中的一道题,要求:从Akshare下载某一个股票近十年的财务报表包括,资产负债表,利润表,现金流量表,保存... 目录一、前言二、核心知识点梳理1、Akshare数据获取2、Pandas数据处理3、Matplotl

使用Python构建智能BAT文件生成器的完美解决方案

《使用Python构建智能BAT文件生成器的完美解决方案》这篇文章主要为大家详细介绍了如何使用wxPython构建一个智能的BAT文件生成器,它不仅能够为Python脚本生成启动脚本,还提供了完整的文... 目录引言运行效果图项目背景与需求分析核心需求技术选型核心功能实现1. 数据库设计2. 界面布局设计3

深入浅出SpringBoot WebSocket构建实时应用全面指南

《深入浅出SpringBootWebSocket构建实时应用全面指南》WebSocket是一种在单个TCP连接上进行全双工通信的协议,这篇文章主要为大家详细介绍了SpringBoot如何集成WebS... 目录前言为什么需要 WebSocketWebSocket 是什么Spring Boot 如何简化 We

Python Web框架Flask、Streamlit、FastAPI示例详解

《PythonWeb框架Flask、Streamlit、FastAPI示例详解》本文对比分析了Flask、Streamlit和FastAPI三大PythonWeb框架:Flask轻量灵活适合传统应用... 目录概述Flask详解Flask简介安装和基础配置核心概念路由和视图模板系统数据库集成实际示例Stre