第20章 分享 Gradio 应用
你已经构建好了一个应用,现在想让其他人也能使用它。
分享 Gradio 应用有几种方式,各有不同的用途。
本地开发
当你运行:
demo.launch()
Gradio 通常会启动一个本地服务器,你可以在自己的电脑上使用这个应用。这在开发阶段非常合适。
Localhost
开发中的应用可能通过类似这样的本地地址访问:
http://127.0.0.1:7860
这并不自动等于一个公开网站。
互联网上的其他人一般无法仅因为你的应用在运行就访问到它。
临时公开分享
Gradio 提供了在开发过程中创建临时公开链接的机制。
例如:
demo.launch(share=True)
当你想给别人展示一个原型、又不想永久部署应用时,这非常方便。
临时链接不等于生产环境托管
临时分享链接适合用于:
演示
测试
收集反馈
快速实验
但不要把它当作正式的生产部署。
对于真正的应用,请使用合适的托管环境。
与同事分享
在开发 Gradio 应用时,你可能想快速分享给同事,而不必部署到托管服务上。Gradio 为此提供了一种便捷方式——临时公开链接。
只需给 launch() 传入 share=True:
import gradio as gr
def greet(name):
return f"Hello, {name}!"
demo = gr.Interface(
fn=greet,
inputs=gr.Textbox(label="Name"),
outputs=gr.Textbox(label="Greeting")
)
demo.launch(share=True)
运行应用后,Gradio 会创建一个临时公开 URL 并显示在终端里,形如:
Running on local URL: http://127.0.0.1:7860
Running on public URL: https://xxxxxxxxxxxx.gradio.live
你可以复制 gradio.live 链接发给同事。对方在浏览器中打开即可操作你的应用,即使应用实际运行在你的电脑上。
注意,这种分享仅适用于临时测试,而非永久托管。链接与正在运行的 Gradio 应用绑定,应用或共享会话结束时链接即失效。如需让他人随时访问,应部署到 Hugging Face Spaces 等托管平台。
本机网络访问
在内网或容器中部署时,还可以配置服务器监听特定的 host 地址。
例如:
demo.launch(
server_name="0.0.0.0"
)
这与将应用暴露在公网上不同。
它决定服务器监听哪些网络接口。
注意使用 0.0.0.0
绑定所有网络接口会让你的应用对能访问该机器的其他设备开放。
仅在了解自身网络环境时再这样做。
生产环境托管
需要永久公开访问的应用通常要借助托管平台。对 Gradio 应用来说,Hugging Face Spaces 是非常流行的选择。
下一章会详细介绍。
动手试一试
挑一个你的应用先做本地测试,再试试临时的公网分享链接。
请一位信任的人使用你的应用,不要解释操作方式,而是观察对方能否自行上手。
这是一次很实用的可用性测试。
要点总结
本地 Gradio 应用最适合开发阶段。
share=True可生成临时的公网分享链接。临时分享不等于生产部署。
网络绑定设置决定了谁能访问你的应用。
永久公开的应用需要合适的托管方案。