基于streamlit快速部署机器学习项目(Public URL)

news2025/1/16 22:01:25

基于streamlit的AIGC项目前端展示

  • 1.Streamlit 简介与入门
    • 1.1 安装 Streamlit
    • 1.2 开发Streamlit应用程序
    • 1.3 启动并运行
      • 1.3.1 本地运行
      • 1.3.2 部署

现在LLM技术发展迅速,很多人在学习的时候,都想展示效果,并且想部署在服务器上,但是其中有两个难点,一是比如Flask等的学习,二是租用云服务器,迁移环境,源文件等,比较耗时。

而像streamlit、gradio等python库,可以让初学者、数据科学家等快速部署自己的AI项目,展示效果,而且可以在公网访问,主要是免费。本人上面的都用过,真的是易学好用,10分钟完成一个小项目。

1.Streamlit 简介与入门

什么是 Streamlit?
Streamlit 是一个用于创建数据应用程序的Python库,可以帮助数据科学家、工程师和分析师轻松快速地构建交互式和可视化的数据界面。无需繁琐的前端代码,只需几行简单的Python代码,你就能将你的数据展现得美观而有效。

1.1 安装 Streamlit

在anaconda虚拟环境中,通过以下命令安装 Streamlit:

conda activate env #env是自己的一个虚拟环境 比如LLM_study
conda install streamlit

1.2 开发Streamlit应用程序

开发一个基本的 Streamlit 应用程序非常简单。
在VS里面新建一个 文件夹,然后新建一个python程序(如 app.py)
VS文件在这里插入图片描述
代码:

import streamlit as st
import numpy as np
import matplotlib.pyplot as plt

# 设置Streamlit的标题和样式
st.title("sin函数展示")
st.markdown("### 欢迎使用这个程序来查看sin函数!")

# 创建一个滑动条来调节频率
frequency = st.slider("请选择频率", min_value=0.1, max_value=10.0, step=0.1, value=1.0)

# 创建一个滑动条来调节振幅
amplitude = st.slider("请选择振幅", min_value=0.1, max_value=10.0, step=0.1, value=1.0)

# 创建一个滑动条来调节相位
phase = st.slider("请选择相位", min_value=0.0, max_value=2 * np.pi, step=0.1, value=0.0)

# 创建一个文本框来显示频率、振幅和相位
st.write(f"频率: {frequency}")
st.write(f"振幅: {amplitude}")
st.write(f"相位: {phase}")

# 创建一个画布来绘制sin函数
fig, ax = plt.subplots()
x = np.linspace(0, 2 * np.pi, 1000)
y = amplitude * np.sin(frequency * x + phase)
ax.plot(x, y)
ax.set_title("sin函数")
ax.set_xlabel("x")
ax.set_ylabel("y")

# 将画布显示在Streamlit应用中
st.pyplot(fig)

这个程序使用Streamlit库创建了一个简单的界面,用户可以通过滑动条来调节sin函数的频率、振幅和相位,然后程序会根据用户的选择来绘制相应的sin函数图像。

用户可以在Streamlit应用中运行这个程序,并使用浏览器打开它。

1.3 启动并运行

1.3.1 本地运行

在终端中运行:streamlit run app.py
这将启动一个本地服务器,自动跳转默认浏览器中打开应用程序。

前端展示
streamlit效果

  • 指定端口运行
    默认情况下,Streamlit 应用程序将在本地的 8501 端口上运行。 Local URL: http://localhost:8501
    如果想更改端口,可以使用 --server.port 参数。比如,在 6898端口上运行:
streamlit run app.py --server.port 6898

1.3.2 部署

  • 新建一个requirements.txt pip freeze > requirements.txt
  • 将上面代码文件夹push到github上 git push
  • streamlit官网注册登录
    • 点击new app,选择app的repo仓库,branch,要执行的main文件
    • 填写域名app url
    • 然后deploy

至此,大功告成!

可以继续学习streamlit,丰富应用的功能,展示更美观的前端。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1628362.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Zephyr sensor子系统学习

一、背景 2023年7月份nRF Connect SDK 2.4.0最新版本,使用的Zephyr V3.3版本。从Zephyr 3.5版本在子系统中加入了sensing子系统。 现在最新的nRF Connect SDK 2.6.0 release支持v3.5.99-ncs1,已经支持sensing子系统 nRF52840现在官方支持两个传感器de…

Rust中的函数指针

什么是函数指针 通过函数指针允许我们使用函数作为另一个函数的参数。函数的类型是 fn (使用小写的 ”f” )以免与 Fn 闭包 trait 相混淆。fn 被称为 函数指针(function pointer)。指定参数为函数指针的语法类似于闭包。 函数指…

阿里前端常考vue面试题汇总_阿里高级vue面试题

改变 ![](https://img-blog.csdnimg.cn/img_convert/b736620bcd29f08f3685022ab5583d8b.webp?x-oss-processimage/format,png)你会发现, **只有改变的栏目才闪烁,也就是进行重绘** ,数据没有改变的栏目还是保持原样,这样就大大节…

(3)C程序可执行文件的生成过程

原文链接:https://www.jianshu.com/p/b7e44f749211 一、可执行文件的生成 我们先通过一个简单C程序,回顾一下可执行文件的生成过程。 ​​​​​​​ ​​​​​​​ 可执行文件的生成过程如下图: 如图,可执行文…

Java学习路线及自我规划

荒废了一段时间,这段时间的总结开始了JavaWeb的学习但是困难重重,例如Maven,Vue的路由等,所以我反省了一段时间,因为基础薄弱,加之学习的资源是速成视频,导致大厦将倾的局面(也算不上…

为什么如果重写了某个类的equals方法,还必须重写对应的hashcode方法?

为什么如果重写了某个类的equals方法,还必须重写对应的hashcode方法? 答: 保证equals相同的两个对象hashcode必须相同的原则。不重写hashcode方法的的话,若用hashmap/hashset等散列表存储这个类,可能会出现两个相同对…

IDEA上配置Maven环境

1.选择IDEA中的Setting 2.搜索maven 3.设置IDEA使用本地安装的Maven,并修改配置文件路径 配置文件,本地仓库,阿里云仓库配置及路径教程 在IDEA上配置完成。

java中http调用组件深入详解

目录 一、前言 二、http调用概述 2.1 什么是http调用 2.1.1 http调用步骤 2.2 HTTP调用特点 2.3 HTTP调用应用场景 三、微服务场景下http调用概述 3.1 微服务开发中http调用场景 3.2 微服务组件中http的应用 四、常用的http调用组件 4.1 java中常用的http组件介绍 4…

输入输出重定向,追加重定向(Linux)

文章目录 一、输出重定向二、追加重定向三.输入重定向总结 一、输出重定向 我们在使用echo内容时,会把内容显示在显示器上。 echo自动换行。 我们如果输入 echo “hello linux” >file.txt 我们运行一下就会发现系统中多了一个file.txt的文件,如果这…

【C++打怪之路Lv3】-- 类和对象(上)

🌈 个人主页:白子寰 🔥 分类专栏:C打怪之路,python从入门到精通,数据结构,C语言,C语言题集👈 希望得到您的订阅和支持~ 💡 坚持创作博文(平均质量分82)&#…

C++必修:类与对象(一)

✨✨ 欢迎大家来到贝蒂大讲堂✨✨ 🎈🎈养成好习惯,先赞后看哦~🎈🎈 所属专栏:C学习 贝蒂的主页:Betty’s blog 1. 面向过程与面向对象 1.1. 面向过程 我们之前学习的C语言就是一种面向过程的语…

plsql 新建sql窗口 初始化慢的问题

问题描述: 新建sql窗口当sql语句多的情况下初始化很慢。 解决方法: 采用导入表的方式。 具体方式 工具->导入表->sql插入。 使用命令窗口 导入文件,然后点击导入按钮。

【力扣 Hot100 | 第七天】4.22(找到字符串中所有字母异位词)

文章目录 2.找到字符串中所有字母异位词2.1题目2.2解法:滑动窗口2.2.1解题思路2.2.2代码实现 2.找到字符串中所有字母异位词 2.1题目 给定两个字符串 s 和 p,找到 s 中所有 p 的 异位词 的子串,返回这些子串的起始索引。不考虑答案输出的顺…

Spring Security认证流程分析

我自己的思路 先分别实现 userdetailsService,userDetails,passwordEncoder三个接口, 然后就是写登录逻辑 本文章用的是继承UsernamePasswordAuthenticationFilter这个接口 因为这个框架默认登录逻辑是在这里面的,里面的核心就是…

vivado 使用“链路 (Links)”窗口查看和更改链路设置

使用“链路 (Links) ”窗口查看和更改链路设置 创建链路后 , 就会将其添加到“ Links ”视图 ( 请参阅下图 ) 中 , 该视图是更改链路设置和查看状态的主要方法 , 也是最佳方法。 “ Links ”窗口中的每一行都对应 1 …

018基于SSM的音乐系统网站

018基于SSM的音乐系统/网站 开发环境: Jdk7(8)Tomcat7(8)MysqlIntelliJ IDEA(Eclipse)Maven 数据库: MySQL 技术: SpringSpring mvcMybatisJqueryVideo jsJSPJSTLEasyUI 适用于: 课程设计,毕业设计,学习…

航拍图像拼接 | 使用C++实现的无人机航拍图像拼接

项目应用场景 面向无人机航拍图像拼接场景,项目使用 C 实现,使用 harris 角点查找特征点 非极大值抑制,由于航拍图像没有严重的尺度旋转变化,使用了 berief 描述子,然后使用 RANSAC 求 H,最后进行图像拼接…

python入门完结篇(6)

插入: 1.使用append的方法,使用append往列表末尾新增一个元素。此处的append的是搭配列表对象来使用的,而不是作为一个独立的函数. 而 type print input len自定义函数都是独立的函数,不用搭配任何对象. 而这种需要搭配对象(变量&#xff09…

Ubuntu Mysql修改密码时遇到的问题

参考: ubuntu18.04 首次登录mysql未设置密码或忘记密码解决方法_ubuntu中mysql设置密码-CSDN博客 1. use mysql; #连接到mysql数据库 2. update mysql.user set authentication_stringpassword(123456) where userroot and Host localhost; #修改密码123456是密码…

解决iOS开发不能使用HTTP请求的问题

苹果公司在iOS9中升级了应用网络通信安全策略,默认推荐开发者使用HTTPS协议来进行网络通信,并限制HTTP协议的请求。为了解决这个问题,我们需要在info.plist文件中增加如下配置来实现广告的网络访问:(信任HTTP请求&…