AI 应用如何实现简单的局域网访问

AI 应用如何实现局域网访问?一篇文章带你理解 127.0.0.1、0.0.0.0 与 Gradio 部署

前言

最近在开发一个基于 Gradio + LangChain + DeepSeek API 的 AI Web 应用时,我遇到了一个问题:

为什么我自己电脑可以访问,但同一个 WiFi 下的其他设备打不开?

后来才发现,这里面涉及到了:

  • localhost
  • 127.0.0.1
  • 0.0.0.0
  • 局域网 IP
  • 端口监听
  • Windows 防火墙

等一系列 Web 服务部署知识。

这篇文章就来完整总结一下:

如何让自己开发的 AI 应用支持局域网访问。


一、默认情况下为什么别人访问不了?

很多 AI 应用都会这样启动:

demo.launch()

或者:

demo.launch(server_port=7860)

此时 Gradio 默认监听的是:

127.0.0.1

也就是:

localhost

它表示:

只允许当前电脑自己访问。

因此:

http://127.0.0.1:7860

只能本机打开。

即使别人和你连接同一个 WiFi,也无法访问。


二、127.0.0.1 到底是什么?

127.0.0.1 是一个特殊 IP:

回环地址(Loopback Address)

它永远表示:

“当前电脑自己”

例如:

你的电脑访问 127.0.0.1
→ 实际上是在访问自己

所以别人电脑上的:

127.0.0.1

并不是你的电脑。

而是:

他们自己的电脑

三、如何允许局域网访问?

核心就是:

server_name="0.0.0.0"

修改代码:

demo.launch(
    server_name="0.0.0.0",
    server_port=7860
)

这里:

0.0.0.0

表示:

监听当前机器所有网络接口

包括:

  • localhost
  • WiFi 网卡
  • 有线网卡
  • 虚拟网卡

此时:

局域网内其他设备也可以访问你的 AI 服务。


四、如何查看自己的局域网 IP?

Windows:

打开 CMD:

ipconfig

找到:

IPv4 地址 . . . . . . . . . : 192.168.1.23

这个:

192.168.1.23

就是你电脑在局域网中的地址。


五、别人如何访问?

例如你的:

IPv4 = 192.168.1.23
端口 = 7860

那么:

同一局域网下的其他设备访问:

http://192.168.1.23:7860

即可打开你的 AI Web 应用。


六、什么是端口(Port)?

例如:

:7860

这个数字叫:

端口(Port)

可以理解为:

电脑内部不同服务的窗口号

例如:

服务端口
Gradio7860
Redis6379
MySQL3306
FastAPI8000

不同服务通过不同端口通信。


七、为什么会出现端口冲突?

有时会出现:

Cannot find empty port

或者:

Address already in use

原因是:

这个端口已经被其他程序占用

例如:

  • 之前的 Gradio 没关闭
  • 另一个 Python 程序正在运行

八、如何查看端口占用?

Windows CMD:

netstat -ano | findstr :7860

会看到:

TCP    0.0.0.0:7860    LISTENING    12345

最后那个:

12345

是进程 PID。

关闭:

taskkill /PID 12345 /F

即可释放端口。


九、Windows 防火墙问题

即使代码没问题:

server_name="0.0.0.0"

别人依然可能打不开。

这是因为:

Windows 防火墙阻止了 Python 网络访问

第一次运行 Gradio 时通常会弹窗:

是否允许 Python 通过防火墙?

必须点击:

允许访问

否则局域网无法通信。


十、推荐的 Gradio 启动方式

推荐这样写:

demo.launch(
    server_name="0.0.0.0",
    server_port=8888,
    inbrowser=True,
    prevent_thread_lock=True
)

参数说明:

参数作用
server_name=“0.0.0.0”允许局域网访问
server_port=8888指定端口
inbrowser=True自动打开浏览器
prevent_thread_lock=True防止 Notebook 卡死

十一、我在项目中学到了什么?

这次实践不仅仅是“让别人访问网页”。

实际上已经接触到了:

  • Web 服务监听
  • TCP/IP
  • 局域网通信
  • 端口机制
  • 服务部署
  • Redis 会话持久化
  • 环境变量管理
  • AI Web 应用工程化

例如:

RedisChatMessageHistory

已经属于:

AI 应用 Memory 系统

而:

server_name="0.0.0.0"

则属于:

Web 服务部署知识

总结

很多人学习 AI 应用时,只关注:

  • Prompt
  • 模型调用

但实际上:

真正的 AI 应用开发,还包括部署、网络、会话、服务管理等工程化能力。

而:

server_name="0.0.0.0"

正是从“本地 Demo”迈向“真实 AI 应用”的第一步。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值