Gradio 代理 & MCP 黑客松
获奖者Gradio 代理 & MCP 黑客松
获奖者您可能已经知道,通过在 `.launch()` 方法中设置 `share=True`,您可以共享您构建的任何 Gradio 应用。换句话说,如果您这样做:
import gradio as gr
with gr.Blocks() as demo:
...
demo.launch(share=True)
这会立即为您的 Gradio 应用程序创建一个公共可访问的**共享链接**(看起来像:`https://xxxxx.gradio.live`),让您与任何人共享您的应用程序(同时代码和模型仍在您的本地环境中运行)。该链接是在 Gradio 的**共享服务器**上创建的,共享服务器不托管您的 Gradio 应用程序,而是创建了一个通往您本地运行的 Gradio 应用程序的*隧道*。
这在您进行原型设计并希望立即获得机器学习应用反馈时特别有用,无需处理托管或部署应用程序的麻烦。
在任何给定时间,都有超过 5,000 个 Gradio 应用通过共享链接进行共享。但是,这个链接是如何创建的?您又如何创建自己的共享服务器呢?请继续阅读!
Gradio 共享链接由快速反向代理 (FRP) 提供支持,这是一个开源隧道解决方案。其工作原理如下:
当您使用 `share=True` 创建 Gradio 应用时,FRP 客户端会自动下载到您的本地机器(如果尚未安装)。该客户端会与 Gradio 的共享服务器建立安全的 TLS 隧道,该服务器托管着能够处理数千个并发连接的 FRP 服务器组件。
隧道建立后,Gradio 的共享服务器会将您本地运行的应用程序以 `xxxxx.gradio.live` 格式的唯一域名暴露到互联网上。当您使用 `share=True` 启动 Gradio 应用程序时,整个过程都会在后台进行。
接下来,我们将深入探讨 Gradio 中使用的 FRP 客户端和 FRP 服务器。
我们使用了 FRP 客户端的修改版本,它在您的机器上运行。我们为最常见的操作系统打包了二进制文件,当您第一次在机器上创建共享链接时,您系统的 FRP 客户端就会被下载。
代码:
故障排除:某些杀毒软件(特别是 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/...
如果这不起作用,您可能需要将此文件添加到杀毒软件的白名单,才能使用共享链接。
Gradio 运行一个共享服务器,它是 FRP 服务器的修改版本。该服务器处理隧道的公共端,接收来自互联网的传入连接,并将它们路由到您本地机器上运行的相应 FRP 客户端。
官方 Gradio 共享服务器托管在 `gradio.live`,我们尽最大努力确保其始终可靠运行。这是您在 Gradio 应用程序中设置 `share=True` 时默认使用的服务器。您可以在 https://status.gradio.app/ 查看官方 Gradio 共享服务器的当前运行状态。
如果您愿意,您也可以托管自己的 FRP 服务器。这让您完全控制隧道基础设施,对于企业部署或您需要自定义域名或额外安全措施的情况,或者如果您想避免 Gradio 官方共享服务器创建的链接的 72 小时超时限制,这会很有用。以下是运行您自己的 Gradio 共享服务器的说明。
代码:
故障排除:尽管我们尽最大努力保持其运行,Gradio 的共享服务器仍可能偶尔出现故障。如果状态页面显示 Gradio 服务器已宕机,我们将着手修复它,无需创建问题!