跳转到内容

其他注意事项(ruoyi-aihuman-backend) ​

汇总接口清单、Redis 存储结构与迁移部署要点,便于排障与上线。


一、完整 API 端点清单 ​

方法路径模块说明
POST/digital-human/agent/chat/streamBusiness流式 AI 对话(SSE)(暂未使用)
POST/digital-human/agent/tool-resultsBusiness提交客户端工具结果(SSE)(暂未使用)
POST/digital-human/asr/recognizeASR语音转文本(multipart)
POST/digital-human/nlu/recognizeNLU语义识别,返回结构化意图
POST/digital-human/tts/aliyunTTS文本转语音,返回 audio/mpeg 二进制 (即将弃用)
GET/digital-human/tts/aliyun/downloadTTS下载音频(GET 版,便于浏览器直接触发下载)(即将弃用)
POST/digital-human/tts/aliyun/downloadTTS下载音频(POST 版)(即将弃用)
GET/digital-human/tts/qwen/download?text=&voice=TTS百炼合成后直接下载 mp3(GET 版,便于浏览器直接触发下载);用于生成预设语音文件
POST/digital-human/tts/qwen/downloadTTS同上(POST 版,JSON body 传参)
WS/digital-human/tts/aliyunStream/wsTTS百炼实时合成「双工」WebSocket(LLM 增量文本投喂、音频分片实时回流)【统一采用】
GET/digital-human/pairing/qrcode?screenClientId=Pairing生成配对二维码
GET/digital-human/pairing/status?screenClientId=Pairing查询配对状态
GET/digital-human/pairing/device?screenClientId=Pairing查询已配对移动端设备信息
POST/digital-human/pairing/cancel?screenClientId=Pairing取消配对
POST/digital-human/pairing/kick?code=Pairing踢出已配对设备(按配对码)
WS/ws/digital-human?clientType=&clientId=&pairingCode=PairingWebSocket 配对通信

本表为 ruoyi-aihuman-backend 的全部端点(已含 NLU 语义识别、TTS 转语音及其双工 WebSocket)。NLU / TTS 的双工协议、音色与凭证细节见 模块功能详解;智能交互 / 专家问答 / 猜你想问等「业务后台」(/ai/*、/digitalHuman/question/list)端点属于另一服务,见 前端接口概览。

ℹ️ 暂未使用:/digital-human/agent/* 两个接口属于数字人内置 LLM 对话能力(ruoyi-aihuman-core + -business)。前端对话使用的是业务后台(data-gl-admin)的 /ai/chat/stream 与 /ai/orchestrate/chat/stream;/digital-human/agent/tool-results 的前端调用也已在 core/clientTools.js(submitToolResults,拆分前位于 useAssistantCore.js)中注释。相关代码与配置(aihuman.llm.* / aihuman.chat.* / aihuman.prompt.* / aihuman.client-tools.*)暂予保留。

⚠️ TTS 非流式(NLS)即将弃用:POST /digital-human/tts/aliyun 与 /digital-human/tts/aliyun/download 即将弃用并移除;TTS 实时播报全面采用流式双工 WS /digital-human/tts/aliyunStream/ws,新接入不要再使用上述 NLS 非流式接口。百炼版 /digital-human/tts/qwen/download 不在弃用范围内,它的定位是生成预设语音 mp3 文件(固定话术一次性合成、直接下载),不参与实时播报(详见模块功能详解 · TTS)。


二、Redis Key 汇总 ​

Key 模式模块TTL说明
digital-human:chat:memory:{sessionId}core30 min对话历史**(暂未使用)**
digital-human:pending:tool:{sessionId}core10 min客户端工具挂起状态**(暂未使用)**
digital-human:pairing:code:{code}pairing5 min配对码映射
digital-human:pairing:session:{screenClientId}pairing持久配对会话
digital-human:screen:client:{clientId}pairing持久屏幕端注册
digital-human:mobile:to:screen:{mobileClientId}pairing持久反向关联

所有 AI 模块状态全部存储在 Redis,无需 MySQL 建表。


三、迁移 / 部署注意事项 ​

  • 必需环境:Redis(配对状态;对话历史、工具挂起属暂未使用的内置 LLM 对话);SiliconFlow API Key(配置在 aihuman.asr.siliconflow.api-key,NLU 另有 aihuman.nlu.*)。
  • SSE 缓冲:必须使用 FlushingSseEmitter,且 Controller 设 X-Accel-Buffering: no(Nginx 代理时必需)——用于内置 LLM 对话 SSE(暂未使用)。
  • 线程池:ThreadPoolConfig core=50, max=200, queue=1000;大并发需监控。
  • 迁移到新项目:引入 ruoyi-aihuman-asr / -nlu / -tts / -pairing 模块依赖(-business(内置 LLM 对话)暂未使用,按需引入),配齐 aihuman.asr.* / aihuman.nlu.* / aihuman.tts.* 与 spring.servlet.multipart.*,在 SecurityConfig 放行路径,提供 RestTemplate Bean,并确保 @MapperScan("com.ruoyi.**.mapper")。

数字人「小慧」项目文档