跳到主要内容

Streamlit 应用

Streamlit 让您能够使用 Python 快速搭建具有丰富功能的响应式网络应用。响应式意味着每次应用的状态改变,都会重新执行一遍您的代码。同时 Streamlit 在数据可视化方面也表现出色,它支持如 Bokeh、Plotly 和 Altair 等多种图表库。

当您创建新应用时,选择 Streamlit 作为 SDK。

有关 Streamlit 的更多信息,请查阅 Streamlit 文档

您的第一个 Streamlit 应用:热狗识别器

在以下各节内容中,您将了解创建应用、配置应用以及将代码部署到应用的基础知识。我们将使用 Streamlit 创建一个热狗识别器应用,该应用将用于演示 hf-models/hotdog-not-hotdog 模型,该模型可以检测给定图片是否包含热狗。

您可以在 stringify/streamlit-chotdog-not-hotdog-2 上找到此应用的全部内容。

创建 Streamlit 应用

我们从创建新应用开始,并选择 Streamlit 作为我们的依赖 SDK。Gitee AI 应用是基于 Git 仓库的,这样您就可以通过推送提交来逐步(与他人协作)开发您的应用。在继续之前,请查看仓库指南,学习如何创建和编辑文件。

添加依赖

对于我们将要创建的热狗识别器,我们会使用 Transformers pipeline 依赖包来使用模型,因此我们需要先安装一些依赖。我们可以通过在仓库中创建一个 requirements.txt 文件并向其添加以下依赖来完成:


transformers
torch

应用在运行时将会自动安装这些依赖!

创建 Streamlit 界面

创建 Streamlit 应用时,请在仓库中创建一个名为 app.py 的文件,并添加以下代码:


import streamlit as st
from transformers import pipeline
from PIL import Image

pipeline = pipeline(task="image-classification", model="hf-models/hotdog-not-hotdog")

st.title("是热狗? 或不是?")

file_name = st.file_uploader("上传一张图片,将会输出是热狗的概率")

if file_name is not None:
col1, col2 = st.columns(2)

image = Image.open(file_name)
col1.image(image, use_column_width=True)
predictions = pipeline(image)

col2.header("Probabilities")
for p in predictions:
col2.subheader(f"{ p['label'] }: { round(p['score'] * 100, 1)}%")

此 Python 脚本使用 Transformers pipeline 加载 Streamlit 使用的 hf-models/hotdog-not-hotdog Streamlit 应用会需要您上传一张图片,然后将其识别为热狗或非热狗。将代码保存到 app.py 文件后,请访问“App”选项卡以查看您的应用运行情况!

alt text