前端宿主集成
前端宿主集成
Saber 提供登录、菜单、权限和平台布局;Saber-AI 通过 Module Federation 装载 AI 页面。本节以 http://localhost:1888/ 为入口。
1. 对齐后端与共享依赖
确认两工程依赖已安装,且连接同一后端。在两工程的 .env.development.local 中填写本机配置:
VITE_APP_PROXY_TARGET=http://your-backend
VITE_APP_PUBLIC_KEY=your-sm2-public-keySaber 另配置开发注册表:
VITE_APP_REMOTES=remotes.dev.json检查 Saber 的 remotes.dev.json:AI 条目为启用状态,code 为 ai,版本与 Saber-AI 一致,入口指向 http://localhost:1881/mf-manifest.json。保留环境中其他业务条目。
在 Saber 目录生成兼容矩阵:
pnpm run matrix在 Saber-AI 目录核对共享版本:
pnpm run check-shared2. 启动两个服务
分别在独立终端启动,已有实例时直接复用:
# Saber-AI 目录
pnpm dev# Saber 目录
pnpm dev3. 登录并进入 AI 业务
打开 http://localhost:1888/ 并通过 Saber 登录,从顶部 大模型 菜单进入 智能应用 → 编排台。

顶部菜单切换只改变当前业务菜单集合,是否自动跳转以当前菜单配置为准。页面未切换时,继续选择具体业务菜单。
4. 核对工作区与导航
在编排台打开应用,检查名称、节点、工作区页签和侧栏高亮。示例使用 DOCS_咨询受理流程。

刷新详情地址后重新进入同一应用。工作区的“返回”回到编排台,并关闭当前详情标签。
5. 核对权限来源
示例使用管理员身份。菜单来自后端角色授权;按钮权限来自平台权限清单;应用、智能体、知识库和问数还需通过后端资源授权。

菜单缺失时先查角色菜单和顶部菜单;远端无法装载时查注册表与 manifest;页面可见但接口拒绝时查会话、租户与资源权限。
局域网与跨机器联调
Saber-AI 的 pnpm dev 带 --host,开发服务监听全部网卡。联邦入口以 server.origin 的绝对地址引用远端资源,该地址缺省为 http://localhost:{VITE_APP_PORT}。宿主页面在另一台机器上打开,或经局域网地址打开时,页面中的 localhost 不再指向 AI 开发服务,需要按以下方式配置:
在 AI 所在机器的 Saber-AI
.env.development.local中设置对外地址,并重启开发服务。manifest 的publicPath随之改为该地址。VITE_APP_ORIGIN=http://<AI 机器局域网 IP>:1881宿主注册表中
ai条目的entry同步改为http://<AI 机器局域网 IP>:1881/mf-manifest.json。可复制remotes.dev.json为remotes.lan.json后修改,并在宿主.env.development.local中设置VITE_APP_REMOTES=remotes.lan.json,入库的remotes.dev.json保持不变。
开发服务只放行本机回环地址(localhost、127.0.0.1)以及与 VITE_APP_ORIGIN 同主机名的跨源来源:宿主经 localhost 打开时,AI 开发服务可以在任意一台机器上;宿主经局域网地址打开时,AI 开发服务需与宿主在同一台机器。
经局域网 HTTP 地址打开的页面不是浏览器安全上下文,麦克风、屏幕捕获与异步剪贴板不可用,现场录音、语音输入与截图需要以 HTTPS 访问。大模型页面提示业务模块加载失败、控制台请求 localhost:1881 失败或报跨源错误时,直接打开注册表中的 entry,核对 metaData.publicPath 是否为 VITE_APP_ORIGIN 的地址。
