目录
[一、查看 APP 实时 AI 问答消息的 websocket 类型日志](#一、查看 APP 实时 AI 问答消息的 websocket 类型日志)
[(1)Linux 模板命令配置](#(1)Linux 模板命令配置)
[① 测试环境 FinalShell 命令模板](#① 测试环境 FinalShell 命令模板)
[② 正式环境 FinalShell 命令模板](#② 正式环境 FinalShell 命令模板)
[③ Linux 命令详解](#③ Linux 命令详解)
[(2)Linux 返回日志](#(2)Linux 返回日志)
[二、查看 APP 实时 AI 问答消息的全部类型日志](#二、查看 APP 实时 AI 问答消息的全部类型日志)
[(1)Linux 模板命令配置](#(1)Linux 模板命令配置)
[① 测试环境 FinalShell 命令模板](#① 测试环境 FinalShell 命令模板)
[② 正式环境 FinalShell 命令模板](#② 正式环境 FinalShell 命令模板)
[(2)Linux 返回日志](#(2)Linux 返回日志)
[三、查看 APP 实时 AI 问答时的向量数据库人设测试日志](#三、查看 APP 实时 AI 问答时的向量数据库人设测试日志)
[(1)Linux 模板命令配置](#(1)Linux 模板命令配置)
[① 测试/正式环境 FinalShell 命令模板](#① 测试/正式环境 FinalShell 命令模板)
[② AI 人设测试注意事项](#② AI 人设测试注意事项)
[(2)Linux 返回日志](#(2)Linux 返回日志)
[四、查看 APP 实时指定 AI 问答消息的全部类型日志](#四、查看 APP 实时指定 AI 问答消息的全部类型日志)
[(1)Linux 模板命令配置](#(1)Linux 模板命令配置)
[① 测试环境 FinalShell 命令模板](#① 测试环境 FinalShell 命令模板)
[② 正式环境 FinalShell 命令模板](#② 正式环境 FinalShell 命令模板)
[(2)Linux 返回日志](#(2)Linux 返回日志)
[五、查看 TTS 服务器日志](#五、查看 TTS 服务器日志)
[(1)查看 TTS 服务日志](#(1)查看 TTS 服务日志)
[(2)查看 TTS 实时日志](#(2)查看 TTS 实时日志)
[(3)清除 TTS 指定目录下的指定开头文件的所有音频](#(3)清除 TTS 指定目录下的指定开头文件的所有音频)
[六、TTS 服务器的压测命令](#六、TTS 服务器的压测命令)
[(4)压测时查看 APP 服务器 SEND_VOICE 类型日志](#(4)压测时查看 APP 服务器 SEND_VOICE 类型日志)
[七、BS 服务器的压测命令](#七、BS 服务器的压测命令)
一、查看 APP 实时 AI 问答消息的 websocket 类型日志
(1)Linux 模板命令配置
Linux 命令作用:查看 AI 语言大模型结合向量数据库 websocket 类型的实时问答消息日志
① 测试环境 FinalShell 命令模板
【Linux 命令标题】[Test_APP] today tail:websocket
【Linux 命令内容】
bashtail "/tmp/hyperf-dev/app-$(date +'%Y-%m-%d').log" -f | grep '{"message":"websocket-'
【Linux 命令截图】
② 正式环境 FinalShell 命令模板
【Linux 命令标题】 [Pro_APP] today tail:websocket
【Linux 命令内容】
bashtail "/tmp/hyperf-prod/app-$(date +'%Y-%m-%d').log" -f | grep '{"message":"websocket-'
【Linux 命令截图】
③ Linux 命令详解
- $(date +'%Y-%m-%d').log:为当天日期的变量,比如 2020-01-01.log,实时日期无需修改
- /tmp/hyperf-dev/app-(date +'%Y-%m-%d').log 或 /tmp/hyperf-prod /app-(date +'%Y-%m-%d').log:为 APP 的 log 文件存放在 Linux 的文件路径,dev 指代测试环境,prod 指代正式环境,可以根据不同环境的服务器 IP 点击不同的 FinalShell 模板命令
- {"message":"websocket-:这里是过滤条件,是返回日志的部分内容,可以根据需要修改,这里过滤开发设置好的 websocket 类型的日志
- tail :查看所有日志的 Linux 命令关键字
- -f | grep ' ' :单引号内接返回日志显示的内容作为过滤条件,是过滤日志的关键字命令
FinalShell 设置 Linux 命令模板一键触发:无需手动输入命令、无需改动日期
(2)Linux 返回日志
- 点击自动触发查询实时日志,无需输入当天日期,自动过滤 websocket 类型日志,用户询问内容、AI 结合向量数据库的回复内容,均可查询
- 文本消息:可查询回复消息的文本数据 id,这是文本回复消息 id,存储于 MySQL 数据库 AI 回复内容表中,也会用于向量数据库作为 AI 记忆消息
- 语音消息:可以查看 AI 回复文字 TTS 转音频的 URL,这是 AI 的文本转音频的语言消息,同时可在 TTS 服务器的指定编号的文件夹路径下找到该 .wav 文件
- bs 数据:可以查看同步生成的 bs 数据,即 txt 文件路径,这个文件内的 bs 数据主要用于 unity 开发读取作为口型与面部指标使用,有此文件 AI 虚拟人就能有对应的口型,无此文件则虚拟人有声音没口型,AI 虚拟人的脸部表情和口型主要依靠此数据,十分关键
- 请求心跳:AI 在一段话回复中,会分句回复,分句会有统计总数与所读该句编号,这样 APP 前端和 unity 开发才知道所对应的文字、音频时长、bs 数据属于哪一句话,才可以做到文字、语言、口型同步,才能真正模拟出真人说话的感觉,而 AI 说完一段话后,会等待获取用户的语言转文字的内容,而在等待时间内一直没有获取到用户问题时,就会有一个等待超时提示,也就是心跳数据,比如每 6 秒一次心跳询问 "亲爱的还在线不?" 之类的问题重新打开麦克风检索用户声音
- 开场白语:进入 AI 视频聊天界面时,需要 AI 主动开启开场白,AI 说完开场白后,才开始自动调用语音转文字的接口,开启麦克风获取用户说话的声音,同时也做到比较人性化,可以轮播不同的开场白,甚至是加入天气预报、报时、人文关怀等变量功能,而轮播的开场白是固定内容,所以可以不用每次再调用 TTS 文字转音频生成 bs 数据的流程,可以存储在前端代码中,做到节约流量和提高性能的作用
二、查看 APP 实时 AI 问答消息的全部类型日志
(1)Linux 模板命令配置
Linux 命令作用:查看 AI 语言大模型结合向量数据库所有的实时问答消息日志
① 测试环境 FinalShell 命令模板
[Test_APP] today tail:all
bashtail "/tmp/hyperf-dev/app-$(date +'%Y-%m-%d').log" -f
② 正式环境 FinalShell 命令模板
[Pro_APP] today tail:all
bashtail "/tmp/hyperf-prod/app-$(date +'%Y-%m-%d').log" -f
(2)Linux 返回日志
三、查看 APP 实时 AI 问答时的向量数据库人设测试日志
(1)Linux 模板命令配置
Linux 命令作用:查看 AI 语言大模型在回复问题时调用到的向量数据库数据内容日志
① 测试/正式环境 FinalShell 命令模板
由于向量数据库开发只设置一个环境,所以测试与正式环境共用一个命令。
向量人设测试
bashtail /tmp/hyperf-dev/app-$(date +'%Y-%m-%d').log -f | grep 'new_vector_api_info'
② AI 人设测试注意事项
- 所有的 AI 语言大模型的调用接口都只有一问一答的模式,即完全没有 AI 记忆功能
- 因此想要 AI 虚拟人有人设记忆,就需要开发者自己设立向量数据库
- 每次用户询问一个问题,都需要后端开发在后台接口中传输当前用户问题、指定的人设模板内容、向量数据库近 20 问过滤后的答案等数据一起传输给 AI 语言大模型,AI 虚拟人才可以实时有记忆性地完成文本聊天、语言聊天、视频聊天
- 查看向量数据库的返回日志,可以有效测试人设设定与语言大模型回复的匹配度、AI 记忆性等
(2)Linux 返回日志
四、查看 APP 实时指定 AI 问答消息的全部类型日志
(1)Linux 模板命令配置
**命令作用:**不同的用户询问 AI,防止 AI 回复错乱,则需给不同的 AI 编订 id ,以便做到 AI 人设对应、记忆匹配、回复内容匹配,所以在查看 AI 日志时,可以使用 AI 的 id 进行过滤,查看问答消息的全部日志。
① 测试环境 FinalShell 命令模板
[Test_APP] today tail:AI
bashtail "/tmp/hyperf-dev/app-$(date +'%Y-%m-%d').log" -f | grep 'NTgwMDkzMDkxNjQ2OTEwNDY0'
② 正式环境 FinalShell 命令模板
[Pro_APP] today tail:AI
bashtail "/tmp/hyperf-prod/app-$(date +'%Y-%m-%d').log" -f | grep 'NTYwOTQwNzczNTQ3MTU1NDU3'
(2)Linux 返回日志
五、查看 TTS 服务器日志
**TTS 服务器作用:**文本转音频,存储音频文件
(1)查看 TTS 服务日志
[TTS] 服务 tail:all
bashtail -f /data/tts/paddle/client/nohup.out
**命令作用:**实时查看指定文件的末尾内容,查看服务日志内容。
这个命令有两个部分:
tail
: 这是一个用于显示文件末尾内容的命令。-f
: 这是tail
命令的一个选项,代表follow
,意思是随着文件的增长而动态显示文件内容,实现实时监控文件的效果。/data/tts/paddle/client/nohup.out
: 这是指定的文件路径,tail
命令会实时监控这个文件,并将新添加到文件末尾的内容输出到终端上。因此,命令的作用是在终端实时显示指定文件
/data/tts/paddle/client/nohup.out
的末尾内容,通常用于查看正在运行的程序或者日志文件的实时输出。
(2)查看 TTS 实时日志
[TTS] 实时 tail:all
bashtail -f /data/tts/paddle/client/logs/runtime.log
(3)清除 TTS 指定目录下的指定开头文件的所有音频
[TTS] 清除音频
bashconda activate /data/conda_env/paddle cd /data/tts/paddle/client cd wav_output rm -rf test_*
六、TTS 服务器的压测命令
(1)nmon
[TTS] nmon
bashcd /usr/local/bin ./nmon -f -t -r nmonreport -s 1 -c 500
(2)Jmeter
Jmeter_TTS
bash#!/bin/bash rm -rf /usr/etc/jmeter/apache-jmeter-5.6.2/report/DashboardJTL/TTS_$(date +'%Y-%m-%d').jtl rm -rf /usr/etc/jmeter/apache-jmeter-5.6.2/report/DashboardReport/TTS_$(date +'%Y-%m-%d') jmeter -n -t /usr/etc/jmeter/apache-jmeter-5.6.2/workspace/APP-TTS.jmx -l /usr/etc/jmeter/apache-jmeter-5.6.2/report/DashboardJTL/TTS_$(date +'%Y-%m-%d').jtl -j /usr/etc/jmeter/apache-jmeter-5.6.2/report/LogFiles/TTS_$(date +'%Y-%m-%d').log -e -o /usr/etc/jmeter/apache-jmeter-5.6.2/report/DashboardReport/TTS_$(date +'%Y-%m-%d')
(3)压测前后清理缓存
[TTS] 1 杀死进程(后面 kill pid)
bashconda activate /data/conda_env/paddle cd /data/tts/paddle/client lsof -i:7868
[TTS] 2 重启服务
bashnohup python main.py &
[TTS] 3 base 查看内存
bashglances
(4)压测时查看 APP 服务器 SEND_VOICE 类型日志
[Test_APP] today tail:SEND_VOICE
bashtail "/tmp/hyperf-dev/app-$(date +'%Y-%m-%d').log" -f | grep 'SEND_VOICE'
七、BS 服务器的压测命令
(1)nmon
[BS] nmon
bashcd /usr/local/bin ./nmon -f -t -r nmonreport -s 1 -c 500
(2)Jmeter
Jmeter_BS
bash#!/bin/bash rm -rf /usr/etc/jmeter/apache-jmeter-5.6.2/report/DashboardJTL/BS_$(date +'%Y-%m-%d').jtl rm -rf /usr/etc/jmeter/apache-jmeter-5.6.2/report/DashboardReport/BS_$(date +'%Y-%m-%d') jmeter -n -t /usr/etc/jmeter/apache-jmeter-5.6.2/workspace/APP-BS.jmx -l /usr/etc/jmeter/apache-jmeter-5.6.2/report/DashboardJTL/BS_$(date +'%Y-%m-%d').jtl -j /usr/etc/jmeter/apache-jmeter-5.6.2/report/LogFiles/BS_$(date +'%Y-%m-%d').log -e -o /usr/etc/jmeter/apache-jmeter-5.6.2/report/DashboardReport/BS_$(date +'%Y-%m-%d')