提示

返回博客列表

六行代码,把黑框框变成网页

上周给客户演示一个内部的小工具,能拿一段文字自动生成摘要。我这边跑得挺顺,终端里贴进去一句话,几秒后吐出结果。

电话那头沉默了一会儿,说:你把网址发我吧,我让同事也点点。

我低头看了眼屏幕上那个黑框框。总不能让人家装个终端、配个环境、再敲一行命令。那顿演示就这么冷了半分钟,我含糊说了句"我整理一下发你",挂了电话开始找办法。

其实要的特别简单:一个网页,上面一个输入框、一个按钮、下面一块地方显示结果。就这些。

Gradio 干的就是这个。把你那个 Python 函数直接包一下,它帮你把界面生出来:

import gradio as gr

def summarize(text):
    return call_my_model(text)      # 原来那个函数,一行没改

gr.Interface(fn=summarize, inputs="textbox", outputs="textbox").launch()

六行,跑起来终端会给个 http://127.0.0.1:7860 之类的地址,点开就是个正经网页。要发给别人,加个 share=True 会临时给一条能外网访问的链接(有时效,别拿来当正式服务用)。

当时最让我意外的是,原来的函数一行没动。我之前一直以为"做个界面"意味着要写点前端,或者至少把代码改成能收 HTTP 请求的样式。结果它是反过来:你有个普通函数,它负责在前面挡一层。

样式当然简陋,白底、灰框、按钮方方正正,一眼能看出是自动生成的。但演示够用了,客户那边点了两下就说"这个可以"。后来他们提了个需求,说能不能把结果旁边加个复制按钮,我查了半天发现得写点自定义布局,就没接,先记在便签上了。

Streamlit 是另一个常被提到的,路数不太一样,更适合一块一块往上堆图表和数据。我们这种"一个输入一个输出"的,Gradio 更省事。

哦对,电话最后客户还问了一句:这个能直接放到我们官网上吗?我说现在这个不行,它是本地跑的临时页面,真要对外得另外部署。他"哦"了一声,说那先这样。

给"发个网址就能点"这种场合做的,VidDown 上那几个工具算一类。

那半分钟冷场我没跟客户解释,挂了电话才想起来该说点什么。

想亲手试试?用 VidDown 一键解析下载

粘贴视频链接即可解析,多平台支持、网页端即用;下载桌面客户端解锁海外平台本地解析,开通会员更享不限次下载。

顶部