StructBERT 中文相似度服务部署与故障排查指南
部署 AI 服务时,常遇到网页无法访问或启动失败的情况。本文针对 StructBERT 中文相似度服务的 WebUI,从服务状态确认、网络排查到日志定位,提供一套完整的故障处理方案。
StructBERT 能有效判断文本语义相似度,在客服问答匹配、内容去重等场景应用广泛。例如'今天天气很好'与'今天阳光明媚'的相似度较高,而'今天天气很好'与'我喜欢吃苹果'则基本不相关。
服务状态快速确认
排查的第一步是确认服务是否真的在运行。很多时候问题源于服务未启动或意外挂掉。
检查进程状态
打开终端执行以下命令:
ps aux | grep "python.*app.py"
若看到类似 python app.py 的输出,说明服务正在运行。如果仅显示 grep 进程本身,则服务未启动。
检查端口占用
服务默认监听 5000 端口,使用以下命令验证:
netstat -tlnp | grep 5000
正常应返回 LISTEN 状态的记录。若端口被占用,需终止占用程序或修改服务端口。
健康检查接口
最可靠的方式是直接调用健康接口:
curl http://127.0.0.1:5000/health
预期返回 {"status": "healthy", "model_loaded": true}。若提示 Connection refused 或超时,表明服务存在异常。
服务启动与验证
若发现服务未运行,建议按顺序操作:
- 使用启动脚本:进入项目目录执行
bash scripts/start.sh。脚本会自动处理环境变量和后台运行,启动后等待 10-20 秒让模型加载完成。 - 查看启动日志:立即监控日志输出,关注
Model loaded successfully或Running on等成功标识,以及任何Error开头的报错信息。 - 再次验证:等待约 30 秒后,重新通过健康接口确认服务状态。
网络访问问题排查
服务已运行但无法通过浏览器访问?这通常涉及网络配置。
本地与外部访问测试
先在服务器本地用 curl 测试:
curl http://127.0.0.1:5000/
若能返回 HTML 代码,说明服务正常,问题在于外部访问配置。
常见原因及解决
- 防火墙限制:部分服务器防火墙会拦截 5000 端口。检查并放行规则:
sudo ufw allow 5000/tcp sudo ufw reload - 绑定地址错误:检查
app.py中的host参数。必须设置为0.0.0.0以监听所有网络接口,127.0.0.1仅限本地访问。app.run(host='0.0.0.0', port=, threaded=)

