docs(demo): update setup and configuration documentation
此 Demo 为简化版本, 如您有 1.5.x 版本 UI 的诉求, 可切换至 1.5.1 分支。 首次运行需要填写根目录 .env.local 中的凭证,并配置 server/scenes/*.json。
.env.local
server/scenes/*.json
项目代码分为两个并列子项目:
web/
server/
根目录 package.json 只负责编排并同时启动两个子项目。
package.json
Node.js 22,Yarn 1.22.22。
以下命令均在项目根目录执行。yarn dev 会同时启动服务端和前端页面。
yarn dev
您可以自定义具体场景,并按模板填充 SceneConfig 和 VoiceChat。
SceneConfig
VoiceChat
default.json 是默认场景;您可以复制它新增场景,并填写 VoiceChat.Config / VoiceChat.AgentConfig。
default.json
VoiceChat.Config
VoiceChat.AgentConfig
注意:
接入 API
首次运行时复制示例文件;已有 .env.local 时保留原文件,仅补充所需字段。
cp -n .env.example .env.local cp -n web/.env.example web/.env.local yarn install --frozen-lockfile yarn --cwd web install --frozen-lockfile yarn --cwd server install --frozen-lockfile
在根目录 .env.local 中填写 RTC_APP_ID、RTC_APP_KEY、 VOLCENGINE_ACCESS_KEY_ID 和 VOLCENGINE_SECRET_ACCESS_KEY, 服务端使用 AK/SK 签名调用 VoiceChat OpenAPI。缺少任一必填凭证时,服务端无法启动。
RTC_APP_ID
RTC_APP_KEY
VOLCENGINE_ACCESS_KEY_ID
VOLCENGINE_SECRET_ACCESS_KEY
编辑 server/scenes/default.json,按需填写 VoiceChat.Config 和 VoiceChat.AgentConfig。 VoiceChat.AgentConfig.UserId 必须填写, 作为智能体的 RTC 用户标识;SceneConfig.name 和 icon 用于前端展示。 新增场景时复制 JSON 并使用不同文件名,文件名(不含 .json)即 SceneID。 密钥、Token 等 secret 只放在 .env.local,场景 JSON 通过 ${ENV_NAME} 引用。
server/scenes/default.json
VoiceChat.AgentConfig.UserId
SceneConfig.name
icon
.json
${ENV_NAME}
OpenAPI 使用 2025-06-01 版本,接口地址、签名 region 和 service 在 server/app.js 中统一定义,无需填写环境变量。升级接口时需同时核对场景字段。 RTC_BUSINESS_ID 为可选环境变量,同时传给 RTC SDK 和 VoiceChat,不填则不设置。
2025-06-01
server/app.js
RTC_BUSINESS_ID
服务端会为每个页面 session 分配独立的 SessionID、RoomId、UserId、 Token 和 TaskId,因此不同页面(包括同一浏览器的多个页面)可同时通话。 VoiceChat 中的 AppId、RoomId、TaskId 和 AgentConfig.TargetUserId 由服务端覆盖或生成, 无需在场景 JSON 中填写;RTC Token 也由服务端生成。 服务端始终启用 EnableConversationStateCallback,用于前端判断 AI 是否就绪。 同一页面同时只能有一个场景通话;切换场景前先挂断。
EnableConversationStateCallback
打开 前端页面,选择场景并开始通话,按浏览器提示授权麦克风。 服务端默认地址为 http://127.0.0.1:3001, 健康检查 返回 {"ok":true} 仅表示服务已启动,不代表云端凭证或场景可用。
http://127.0.0.1:3001
{"ok":true}
修改根目录 .env.local 后需重启服务端;修改 web/.env.local 后需重启前端。 修改场景后重启服务端并刷新页面,以获取新的场景和 SessionID。 服务端重启后旧 SessionID 失效,也需要刷新页面。
web/.env.local
# 分别在两个终端运行 yarn --cwd server dev yarn --cwd web start # 自动化测试 yarn --cwd server test yarn --cwd web test --runInBand # 前端生产构建,产物位于 web/build/ yarn --cwd web build
前端构建不包含 Koa 服务;页面运行时仍需访问服务端。 如需修改服务端端口,在根目录 .env.local 中修改 PORT,并同步更新 web/.env.local 的 REACT_APP_AIGC_PROXY_HOST。服务端 HOST 默认仅监听本机。 前端端口可在 web/.env.local 中设置 PORT;避免在运行 yarn dev 的 shell 中统一设置 PORT,否则前后端会继承同一个端口。
PORT
REACT_APP_AIGC_PROXY_HOST
HOST
server/scenes/
token_error
TypeError: Cannot read properties of undefined (reading 'getUserMedia')
localhost
getUserMedia
web/src/app/
如果有上述以外的问题,欢迎联系我们反馈。
This project takes security seriously. For vulnerability reporting and supported versions, see SECURITY.md
参考 OpenAPI 更新 中与 实时对话式 AI 相关的更新内容。
2026-09-11
4.68.1
2025-09-30
2025-07-08
2025-06-26
2025-06-23
2025-06-18
版权所有:中国计算机学会技术支持:开源发展技术委员会 京ICP备13000930号-9 京公网安备 11010802047560号
交互式 AIGC 场景 AIGC Demo
此 Demo 为简化版本, 如您有 1.5.x 版本 UI 的诉求, 可切换至 1.5.1 分支。 首次运行需要填写根目录
.env.local中的凭证,并配置server/scenes/*.json。项目代码分为两个并列子项目:
web/:CRA 前端。server/:Koa 本地开发服务。根目录
package.json只负责编排并同时启动两个子项目。简介
【必看】环境准备
Node.js 22,Yarn 1.22.22。
1. 运行环境
以下命令均在项目根目录执行。
yarn dev会同时启动服务端和前端页面。2. 场景配置
server/scenes/*.json您可以自定义具体场景,并按模板填充
SceneConfig和VoiceChat。default.json是默认场景;您可以复制它新增场景,并填写VoiceChat.Config/VoiceChat.AgentConfig。注意:
SceneConfig:场景的信息,例如名称、头像等。VoiceChat: 场景下的 AIGC 配置。接入 API按钮复制相关代码贴到 JSON 配置文件中即可。快速开始
1. 安装依赖并准备配置
首次运行时复制示例文件;已有
.env.local时保留原文件,仅补充所需字段。2. 填写凭证和场景
在根目录
.env.local中填写RTC_APP_ID、RTC_APP_KEY、VOLCENGINE_ACCESS_KEY_ID和VOLCENGINE_SECRET_ACCESS_KEY, 服务端使用 AK/SK 签名调用 VoiceChat OpenAPI。缺少任一必填凭证时,服务端无法启动。编辑
server/scenes/default.json,按需填写VoiceChat.Config和VoiceChat.AgentConfig。VoiceChat.AgentConfig.UserId必须填写, 作为智能体的 RTC 用户标识;SceneConfig.name和icon用于前端展示。 新增场景时复制 JSON 并使用不同文件名,文件名(不含.json)即 SceneID。 密钥、Token 等 secret 只放在.env.local,场景 JSON 通过${ENV_NAME}引用。OpenAPI 使用
2025-06-01版本,接口地址、签名 region 和 service 在server/app.js中统一定义,无需填写环境变量。升级接口时需同时核对场景字段。RTC_BUSINESS_ID为可选环境变量,同时传给 RTC SDK 和 VoiceChat,不填则不设置。服务端会为每个页面 session 分配独立的 SessionID、RoomId、UserId、 Token 和 TaskId,因此不同页面(包括同一浏览器的多个页面)可同时通话。
VoiceChat中的 AppId、RoomId、TaskId 和 AgentConfig.TargetUserId 由服务端覆盖或生成, 无需在场景 JSON 中填写;RTC Token 也由服务端生成。 服务端始终启用EnableConversationStateCallback,用于前端判断 AI 是否就绪。 同一页面同时只能有一个场景通话;切换场景前先挂断。3. 启动并体验
打开 前端页面,选择场景并开始通话,按浏览器提示授权麦克风。 服务端默认地址为
http://127.0.0.1:3001, 健康检查 返回{"ok":true}仅表示服务已启动,不代表云端凭证或场景可用。修改根目录
.env.local后需重启服务端;修改web/.env.local后需重启前端。 修改场景后重启服务端并刷新页面,以获取新的场景和 SessionID。 服务端重启后旧 SessionID 失效,也需要刷新页面。4. 单独启动、测试和构建
前端构建不包含 Koa 服务;页面运行时仍需访问服务端。 如需修改服务端端口,在根目录
.env.local中修改PORT,并同步更新web/.env.local的REACT_APP_AIGC_PROXY_HOST。服务端HOST默认仅监听本机。 前端端口可在web/.env.local中设置PORT;避免在运行yarn dev的 shell 中统一设置PORT,否则前后端会继承同一个端口。常见问题
server/scenes/下的 JSON 填写对应模型参数,并把第三方 secret 放进.env.local后通过${ENV_NAME}引用。token_error错误.env.local中 RTC_APP_ID 与 RTC_APP_KEY 是否属于同一应用;Token 由服务端生成,不需要手填。修改凭证后重启服务端并刷新页面;页面长时间未刷新时也应重新获取 Token。TypeError: Cannot read properties of undefined (reading 'getUserMedia')localhost或者 是否为 https 协议)。浏览器限制getUserMedia只能在安全上下文中使用。.env.local中成对配置的 AK/SK 及其权限。web/.env.local设置REACT_APP_AIGC_PROXY_HOST,重启前端,生产构建则需重新构建。保持 服务端接口约定 一致;接口路径或响应格式不同时,再调整web/src/app/下的请求适配。如果有上述以外的问题,欢迎联系我们反馈。
相关文档
Security and privacy
This project takes security seriously. For vulnerability reporting and supported versions, see SECURITY.md
更新日志
OpenAPI 更新
参考 OpenAPI 更新 中与 实时对话式 AI 相关的更新内容。
Demo 更新
[1.6.0]
2026-09-11
2025-06-01,RTC Web SDK 至4.68.1。web/与server/,支持根目录yarn dev同时启动。2025-09-30
2025-07-08
2025-06-26
2025-06-23
2025-06-18