2.1 KiB
2.1 KiB
问题分析
- 浏览器报错
net::ERR_ABORTED http://0.0.0.0:8010/,常见于预览环境对0.0.0.0的访问被中止或跳转流程未完成。 - 现有后端已启动并挂载静态目录到
/,但预览器可能对根路径加载敏感,或端口/主机解析不一致。 - 目前 API 路由与静态挂载并存,使用相对
fetch('/query')正常;问题主要是根页面加载。
修复方案
- 主机与端口访问
- 推荐使用
http://127.0.0.1:8010/或http://localhost:8010/访问,而不是0.0.0.0。 - 新增
/health路由用于快速诊断服务是否运行。
- 静态页面挂载位置
- 将静态目录从根
/改为/ui挂载,降低与根路径的潜在冲突。 - 新增
GET /路由,返回frontend/index.html或 302 跳转到/ui/index.html。
- 前端请求与错误处理
- 保持相对路径
fetch('/query')、/select、/reject,保持同源;增强错误提示(显示响应状态与内容)。 - 若需要跨源(前端单独部署),补充 CORS:允许前端源访问后端 API。
- 诊断与验证
- 使用
curl http://127.0.0.1:8010/health验证健康。 - 使用
curl端到端:/query(新会话与带session_id再生)、/select(生成答案)。 - 浏览器打开
/ui/页面,执行完整流程:开始生成 → 拒绝并再生 → 选择并出答案。
具体改动清单
_qwen_xinference_demo/api.py- 添加
GET /health路由返回{status:"ok"}。 - 将
StaticFiles(directory="frontend", html=True)从/挂载到/ui。 - 添加
GET /路由,返回index.html或重定向到/ui/index.html。
- 添加
frontend/index.html- 增强错误显示:同时显示响应状态码与文本(提升诊断能力)。
后续增强(可选)
- 为
/query与/select增加耗时、来源日志,便于问题排查。 - 在页面上展示历史候选与拒绝原因列表,提升可观测性。
- 提供配置项切换嵌入优先级(Xinference/Ollama)。
请确认是否按以上方案进行修改与验证,我将立即实施并完成端到端测试。