外观
其他注意事项(ruoyi-aihuman-backend)
汇总接口清单、Redis 存储结构与迁移部署要点,便于排障与上线。
一、完整 API 端点清单
| 方法 | 路径 | 模块 | 说明 |
|---|---|---|---|
| POST | /digital-human/agent/chat/stream | Business | 流式 AI 对话(SSE)(暂未使用) |
| POST | /digital-human/agent/tool-results | Business | 提交客户端工具结果(SSE)(暂未使用) |
| POST | /digital-human/asr/recognize | ASR | 语音转文本(multipart) |
| POST | /digital-human/nlu/recognize | NLU | 语义识别,返回结构化意图 |
| POST | /digital-human/tts/aliyun | TTS | 文本转语音,返回 audio/mpeg 二进制 (即将弃用) |
| GET | /digital-human/tts/aliyun/download | TTS | 下载音频(GET 版,便于浏览器直接触发下载)(即将弃用) |
| POST | /digital-human/tts/aliyun/download | TTS | 下载音频(POST 版)(即将弃用) |
| GET | /digital-human/tts/qwen/download?text=&voice= | TTS | 百炼合成后直接下载 mp3(GET 版,便于浏览器直接触发下载);用于生成预设语音文件 |
| POST | /digital-human/tts/qwen/download | TTS | 同上(POST 版,JSON body 传参) |
| WS | /digital-human/tts/aliyunStream/ws | TTS | 百炼实时合成「双工」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= | Pairing | WebSocket 配对通信 |
本表为
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} | core | 30 min | 对话历史**(暂未使用)** |
digital-human:pending:tool:{sessionId} | core | 10 min | 客户端工具挂起状态**(暂未使用)** |
digital-human:pairing:code:{code} | pairing | 5 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(暂未使用)。 - 线程池:
ThreadPoolConfigcore=50, max=200, queue=1000;大并发需监控。 - 迁移到新项目:引入
ruoyi-aihuman-asr/-nlu/-tts/-pairing模块依赖(-business(内置 LLM 对话)暂未使用,按需引入),配齐aihuman.asr.*/aihuman.nlu.*/aihuman.tts.*与spring.servlet.multipart.*,在SecurityConfig放行路径,提供RestTemplateBean,并确保@MapperScan("com.ruoyi.**.mapper")。