Gradio从入门到精通(2)---内网穿透


前言

如果你不能分享一个漂亮的演示有什么用?Gradio 可让您轻松共享机器学习演示,而不必担心在 Web 服务器上托管的麻烦。只需在 中设置,即可为您的演示创建一个可公开访问的 URL。

Gradio如何分享?

还记得我们第一章写的那个demo程序吗?只需要将最后一行更改如下:share=True

import gradio as gr   #导入gradio库,简写成gr
#我们将导入的名称从 缩短为 为了提高代码的可读性。这是一个被广泛采用的约定,你应该遵循它,以便任何使用你的代码的人都能轻松理解它

#这是定一个的第一个处理函数
def greet(name):
    return "Hello, " + name + "!" 

#这里是最常用的Interface类
demo = gr.Interface(
    fn=greet,                        #处理函数
    inputs=["text"],                 #输入
    outputs=["text"],                #输出
)

demo.launch(share=True)   #share=True

这样就可以了,是不是很简单?https://821020b45ebc0e257b.gradio.live就是随机生成的公网可访问地址,在你未注册的情况下有效期只有72小时

PS C:xxxxxxx\python> python .\app.py
Running on local URL:  http://127.0.0.1:7860
Running on public URL: https://821020b45ebc0e257b.gradio.live

This share link expires in 72 hours. For free permanent hosting and GPU upgrades, run `gradio deploy` from Terminal to deploy to Spaces (https://huggingface.co/spaces)

额,是不是你的报错了?那是因为你没有安装frpc客户端
报错如下

Could not create share link. Missing file: C:\xxxxxx\AppData\Local\Programs\Python\Python312\Lib\site-packages\gradio\frpc_windows_amd64_v0.2.

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.2/frpc_windows_amd64.exe
2. Rename the downloaded file to: frpc_windows_amd64_v0.2
3. Move the file to this location: C:\xxxxx\AppData\Local\Programs\Python\Python312\Lib\site-packages\gradio

按照指引,下载frpc客户端,放到gradio安装目录下就可以了
GitHub

https://github.com/friklogff/frpc_windows_amd64_v0.2

也可以到百度网盘下

链接:https://pan.baidu.com/s/1NP24j1ZNegzh0R65V4flbg?pwd=0l08 
提取码:0l08

下载好,按照人家的提示操作就好

1. Download this file: https://cdn-media.huggingface.co/frpc-gradio-0.2/frpc_windows_amd64.exe
2. Rename the downloaded file to: frpc_windows_amd64_v0.2
3. Move the file to this location: C:\xxxxx\AppData\Local\Programs\Python\Python312\Lib\site-packages\gradio

按步骤操作后,重启你的应用个就可以了。

Gradio内网穿透原理

在这里插入图片描述

  1. 创建公共链接:Gradio首先会尝试在网络上生成一个可以被外部访问的链接,以便用户可以直接通过浏览器等方式与模型进行交互。这个链接是一个统一资源定位符(URL),类似于https://821020b45ebc0e257b.gradio.live。

  2. frpc 实现反向代理:Gradio 利用了 frpc 的反向代理功能,将本地的服务暴露到公共网络上。通常情况下,frpc会创建一个随机的临时端口,并将该端口映射到 Gradio 提供的本地服务上。这样,远程用户可以通过访问这个公共端口使用模型。

  3. 启动本地服务:Gradio 会在本地启动一个服务器,该服务器会监听来自 frpc映射的临时端口的请求。当远程用户访问公共链接时,请求将通过反向代理转发到本地服务。

  4. 反馈预测结果:一旦收到请求,Gradio会将请求的数据传递给模型进行预测,并将预测结果返回给用户。这个过程通常是实时的,用户可以即时看到模型的响应。

  5. 关闭临时端口:当用户结束访问或链接超时时,Gradio 会自动关闭 frpc 创建的临时端口,从而保证安全性和资源的释放。

Frpc工作原理

FRP(Fast Reverse Proxy)是一种高性能的内网穿透和反向代理软件,它支持TCP、UDP、HTTP、HTTPS等多种协议,能够将内网服务安全便捷地暴露到公网上。FRP由客户端(frpc)和服务端(frps)两个组件组成,通常服务端部署在具有公网IP的机器上,客户端部署在需要穿透的内网服务所在的机器上。

工作原理如下:

服务端运行并监听一个主端口,等待客户端的连接。
客户端连接到服务端的主端口,并告知服务端要监听的端口和转发类型。
服务端fork新的进程监听客户端指定的端口。
外网用户连接到客户端指定的端口,服务端通过与客户端的连接将数据转发到客户端。
客户端进程再将数据转发到本地服务,实现内网对外暴露服务的能力。

在实际使用中,FRP可以根据端口号进行对应的转发,例如通过自定义域名访问内网的Web服务或安全的SSH内网穿透 。此外,FRP还提供了一些高级功能,如P2P通信、使用系统服务管理等 。

FRP是一个开源项目,可以在GitHub上找到其源代码和文档 。用户可以根据需要自行搭建或使用现成的服务。总的来说,FRP是一个功能强大、灵活易用的内网穿透工具,适用于需要远程访问内网服务的场景。


总结

本章先介绍了Gradio的内网穿透能力,这个可以不看,先学习后面的基础组件的使用,等到应用发布时再来学习。

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LinfineEdu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值