OROpenRealtime
角色资源文档
对话记录

还没有对话记录

OROpenRealtime
角色资源文档
对话记录

还没有对话记录

前后端分离部署

部署与维护 · 正文语言: 中文

文档目录
全部文档开发与扩展产品功能架构与可替换模块开发与扩展系统架构与消息流程开发与扩展文档与发布边界认识产品与开始使用认识 OpenRealtime知识、工具与记忆用产品资料配置语音助手认识产品与开始使用首页使用指南定制语音 Agent角色配置指南知识、工具与记忆知识库使用指南知识、工具与记忆记忆与会话历史知识、工具与记忆工具权限设置知识、工具与记忆知识与记忆管理指南定制语音 Agent成本与服务选型可选:添加数字人数字人驱动方案可选:添加数字人动作编排使用指南部署与维护本地启动与排错定制语音 Agent连接真实语音与模型服务部署与维护自行部署指南部署与维护前后端分离部署部署与维护可靠性与运维开发与扩展模块化话轮协调器开发与扩展判停与打断插件合约开发与扩展语音 Pipeline 与插件接口开发与扩展知识库选型与接入方案接入你的 Agent接入自己的 Chat Agent

OpenRealtime 由前端和后端组成。后端包含会话管理服务与语音交互服务,两者按职责划分,可以运行在同一台服务器,也可以在处理好依赖后分别部署。

  • 前端:用户看到的页面、文档和操作界面,以及浏览器端的麦克风采集与音频播放。
  • 会话管理服务:管理登录与权限、助手配置、供应商设置、产品资料、记忆和会话历史。例如,保存助手的声音或查阅一段历史会话,都通过会话管理服务 API 完成。
  • 语音交互服务:执行实时通话,连接语音识别、判停与打断、你的 Agent / LLM、语音合成。它接收麦克风音频,判断何时回应,并在用户插话时停止当前回复。

两者协作:会话管理服务为通话提供已授权的助手配置,语音交互服务按配置运行语音链路并保存会话记录。页面通过会话管理服务接口获取初始化数据;浏览器不连接数据库,也不获取长期供应商密钥。

所属层级服务 / 运行部分构建与位置默认入口
前端页面与浏览器交互apps/web Next.js;OpenNext → Cloudflare页面与静态资源
后端会话管理服务apps/backend;Node.js → 应用服务器/api/*
后端语音交互服务server / demos/voice_web_server.py;Python/voice/

公开域名保持统一,登录 Cookie、OIDC 回调、API 和 WebSocket 地址无需跨域迁移。个人接口禁止缓存。数字人大文件暂留源站。

会话管理服务从 apps/backend 启动,镜像构建时必须显式建立 apps/backend/public → ../../public,使其能读取 /app/public/digital-human 媒体挂载。仅验证 /api/health 无法发现媒体路径缺失;发布后还须检查公开 角色目录中图片返回图片内容、视频的 Range 请求返回 206 和 video/mp4, 并确认浏览器实际显示数字人。

本地运行

pnpm dev 会启动前端、会话管理服务 API 和语音服务;可选数字人按需使用 pnpm dev:avatar 显式启动。也可以单独运行:

pnpm dev:api     # 127.0.0.1:3011;加载本地 .env / .env.local
pnpm dev:web    # 127.0.0.1:3010
pnpm dev:server # Python 语音与内部控制接口

前端默认连接 http://127.0.0.1:3011。通过 OPENREALTIME_API_ORIGIN 修改会话管理服务地址;它属于非敏感连接配置。后台密钥只注入 API / Python 进程。

构建和部署

pnpm build:api       # 仅构建会话管理服务
pnpm build:frontend  # 在隔离目录构建 Cloudflare 前端,检查依赖并排除后台环境文件
pnpm deploy:frontend

Cloudflare 生效配置是 deploy/cloudflare/frontend/wrangler.jsonc。 根目录旧 wrangler.jsonc 的语音代理属于旧部署示例,不能用于发布整个前端。 前端包不包含业务 route handlers;本地 /api transport adapter 仅作转发。 OpenNext 的已知 middleware manifest 加载差异由构建补丁处理,不改变中间件内容。

会话管理服务使用独立的 openrealtime-api 容器,监听 3012,部署在应用服务器上。 首次切换保留旧 Web,先验证新 API 再切 Cloudflare;完成检查后停止旧 Web。 回滚恢复旧 Worker、Caddy 配置及旧 Web 镜像;不要修改用户数据或回退数据库。

这一阶段的范围

前端不挂载业务数据、不持有数据库及供应商凭据,可以单独构建和发布。 会话管理服务与语音交互服务暂时保留现有共享目录和本机内部控制连接。将语音交互服务迁移到另一台服务器前,需要先处理共享存储和受限的跨机通信。内部控制接口只允许受信服务访问。