Gradio 月活用户突破 100 万!

阅读更多
Gradio logo
  1. 其他教程
  2. 了解 Gradio Share Links

Share Links 和 Share Servers

您可能已经知道,您可以通过在 .launch() 方法中设置 share=True 来分享您构建的任何 Gradio 应用。换句话说,如果您这样做

import gradio as gr

with gr.Blocks() as demo:
    ...

demo.launch(share=True)

这将立即为您的 Gradio 应用程序创建一个公开访问的 share link(看起来像:https://xxxxx.gradio.live),让您可以与任何人分享您的应用(同时保持代码和模型在您的本地环境中运行)。该链接在 Gradio 的 share server 上创建,该服务器不托管您的 Gradio 应用,而是创建通往本地运行的 Gradio 应用的隧道

当您进行原型设计并希望立即获得关于您的机器学习应用的反馈时,这尤其有用,而无需处理托管或部署您的应用程序的麻烦。

在任何给定时间,超过 5,000 个 Gradio 应用通过 share links 被分享。但是这个链接是如何创建的,以及您如何创建自己的 share server?请继续阅读!

快速反向代理 (FRP)

Gradio share links 由快速反向代理 (FRP) 提供支持,这是一种 开源隧道解决方案。以下是它的工作原理

当您使用 share=True 创建 Gradio 应用时,FRP 客户端会自动下载到您的本地机器(如果尚未安装)。此客户端建立与 Gradio 的 Share Server 的安全 TLS 隧道,后者托管能够处理数千个并发连接的 FRP Server 组件。

隧道建立后,Gradio 的 Share Server 会以 xxxxx.gradio.live 格式的唯一域名将您本地运行的应用程序暴露给互联网。当您使用 share=True 启动 Gradio 应用时,整个过程都在后台发生。

接下来,我们将更深入地探讨 FRP 客户端和 FRP 服务器,因为它们在 Gradio 中被使用。

FRP 客户端

我们使用 修改后的 FRP 客户端版本,它在您的机器上运行。我们为最常见的操作系统打包了二进制文件,并且在您首次在机器上创建 share link 时,会下载适用于您系统的 FRP 客户端。

代码:

  • 客户端的完整 Go 代码可以在此目录中找到。
  • 我们使用这个 Make 脚本 将 Go 代码打包成适用于每个操作系统的二进制文件。

故障排除:某些防病毒程序(尤其是 Windows Defender)会阻止 FRP 客户端的下载。在这种情况下,您将看到一条消息,详细说明如何手动安装文件,例如

Could not create share link. Missing file: /Users/.../frpc_darwin_arm64_v0.3. 

Please check your internet connection. This can happen if your antivirus software blocks the download of this file. You can install manually by following these steps: 

1. Download this file: https://cdn-media.huggingface.co/frpc-gradio-0.3/frpc_darwin_arm64
2. Rename the downloaded file to: frpc_darwin_arm64_v0.3
3. Move the file to this location: /Users/...

如果这不起作用,您可能需要在您的防病毒软件中将此文件列入白名单,以便使用 share links。

FRP 服务器

Gradio 运行一个 share server,它是 FRP 服务器的修改版本。此服务器处理隧道的面向公众的一侧,接收来自互联网的传入连接并将它们路由到您本地机器上运行的相应 FRP 客户端。

官方 Gradio share server 托管在 gradio.live,我们尽最大努力保持其始终可靠运行。这是在您的 Gradio 应用程序中设置 share=True 时默认使用的服务器。您可以在 https://status.gradio.app/ 查看官方 Gradio share server 当前的运行状态。

如果您愿意,您也可以托管自己的 FRP 服务器。这使您可以完全控制隧道基础设施,并且对于企业部署或需要自定义域名或额外安全措施的情况非常有用,或者如果您想避免 Gradio 官方 share server 创建的链接的 72 小时超时限制。以下是关于运行您自己的 Gradio Share Server 的说明。

代码:

  • 客户端的完整 Go 代码可以在此目录中找到。
  • 启动 FRP 服务器 的 Dockerfile 可以在这里找到。

故障排除:尽管我们尽最大努力保持运行,但 Gradio 的 Share Server 偶尔可能会宕机。如果 状态页面 显示 Gradio 服务器已宕机,我们将努力修复它,无需创建 issue!