python3写一个http接口服务(UI界面), 给别人调用4–streamlit
一、概述
首先推荐streamlit, streamlit是一种低代码方案, 即快速构建和共享数据应用程序。说人话就是傻瓜式构建UI界面, 做个人demo很方便。
streamlit/streamlit在github上star已经超过20k了。
美国云计服务商雪花-Snowflake在2022年8亿美元收购了sreamlit公司。只是没想到有一天也会用上低代码工具。
二、使用感受
感觉streamlit还行, 上手简单, 官方demo齐全, UI界面也比较圆润。就是安装依赖太多了。
样例github地址: https://github.com/yongzhuo/web-demo)
三、streamlit简单demo样例
# -*- coding: UTF-8 -*-
# !/usr/bin/python
# @time :2022/7/16 21:56
# @author :Mo
# @function :demo of streamlit
"""计算文本的jaccard相似度
启动运行
# shell
# streamlit run demo.py --server.port 8832
# nohup streamlit run demo.py --server.port 8832 > tc_jaccard.log 2>&1 &
# tail -n 1000 -f tc_jaccard.log
# 关闭也很慢
"""
import json
import streamlit as st
st.title("Calculate-Jaccard-Similarity")
st.subheader("Input 👇 ")
sen_1 = st.text_area("sentence-1:", value="你会什么", height=32)
sen_2 = st.text_area("sentence-2:", value="你叫什么", height=32)
def cal_jaccard(sen_1, sen_2):
""" 计算相似度 """
try:
sent_intersection = list(set(list(sen_1)).intersection(set(list(sen_2))))
sent_union = list(set(list(sen_1)).union(set(list(sen_2))))
score_jaccard = round(float(len(sent_intersection) / len(sent_union)), 6)
except:
score_jaccard = 0.0
res = {"result": score_jaccard}
data = {"code": 200, "data": res, "message": "success"}
return data
score = cal_jaccard(sen_1, sen_2)
st.subheader("Result 👇 ")
st.text(json.dumps(score, ensure_ascii=False, indent=4))
四、启动方式
streamlit run demo.py --server.port 8832
五、界面效果展示
访问: http://localhost:8832/
windows下它会自动跳转到默认浏览器界面
5.1 nlp-demo
5.2 cv-demo
六、参考
-
streamlit的github地址: https://github.com/streamlit/streamlit
-
streamlit的官方demo大全: https://streamlit.io/gallery
-
streamlit的官方demo大全: https://streamlit.io/gallery