【AI 测试】Linux 查看日志与压测命令:FinalShell 查看 AI 语言大模型问答实时日志与 TTS 压测

目录

[一、查看 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 服务器的压测命令)

(1)nmon

(2)Jmeter

(3)压测前后清理缓存

[(4)压测时查看 APP 服务器 SEND_VOICE 类型日志](#(4)压测时查看 APP 服务器 SEND_VOICE 类型日志)

[七、BS 服务器的压测命令](#七、BS 服务器的压测命令)

(1)nmon

(2)Jmeter



一、查看 APP 实时 AI 问答消息的 websocket 类型日志

(1)Linux 模板命令配置

Linux 命令作用:查看 AI 语言大模型结合向量数据库 websocket 类型的实时问答消息日志

① 测试环境 FinalShell 命令模板

【Linux 命令标题】[Test_APP] today tail:websocket

【Linux 命令内容】

bash 复制代码
tail "/tmp/hyperf-dev/app-$(date +'%Y-%m-%d').log" -f  | grep '{"message":"websocket-'

【Linux 命令截图】

② 正式环境 FinalShell 命令模板

【Linux 命令标题】 [Pro_APP] today tail:websocket

【Linux 命令内容】

bash 复制代码
tail "/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

bash 复制代码
tail "/tmp/hyperf-dev/app-$(date +'%Y-%m-%d').log" -f

② 正式环境 FinalShell 命令模板

[Pro_APP] today tail:all

bash 复制代码
tail "/tmp/hyperf-prod/app-$(date +'%Y-%m-%d').log" -f

(2)Linux 返回日志



三、查看 APP 实时 AI 问答时的向量数据库人设测试日志

(1)Linux 模板命令配置

Linux 命令作用:查看 AI 语言大模型在回复问题时调用到的向量数据库数据内容日志

① 测试/正式环境 FinalShell 命令模板

由于向量数据库开发只设置一个环境,所以测试与正式环境共用一个命令。
向量人设测试

bash 复制代码
tail /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

bash 复制代码
 tail "/tmp/hyperf-dev/app-$(date +'%Y-%m-%d').log" -f  | grep 'NTgwMDkzMDkxNjQ2OTEwNDY0'

② 正式环境 FinalShell 命令模板

[Pro_APP] today tail:AI

bash 复制代码
 tail "/tmp/hyperf-prod/app-$(date +'%Y-%m-%d').log" -f  | grep 'NTYwOTQwNzczNTQ3MTU1NDU3'

(2)Linux 返回日志



五、查看 TTS 服务器日志

**TTS 服务器作用:**文本转音频,存储音频文件


(1)查看 TTS 服务日志

[TTS] 服务 tail:all

bash 复制代码
tail -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

bash 复制代码
tail -f /data/tts/paddle/client/logs/runtime.log

(3)清除 TTS 指定目录下的指定开头文件的所有音频

[TTS] 清除音频

bash 复制代码
conda activate /data/conda_env/paddle
cd /data/tts/paddle/client
cd wav_output
rm -rf test_*


六、TTS 服务器的压测命令

(1)nmon

[TTS] nmon

bash 复制代码
cd /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)

bash 复制代码
conda activate /data/conda_env/paddle
cd /data/tts/paddle/client
lsof -i:7868

[TTS] 2 重启服务

bash 复制代码
nohup python main.py &

[TTS] 3 base 查看内存

bash 复制代码
glances

(4)压测时查看 APP 服务器 SEND_VOICE 类型日志

[Test_APP] today tail:SEND_VOICE

bash 复制代码
tail "/tmp/hyperf-dev/app-$(date +'%Y-%m-%d').log" -f  | grep 'SEND_VOICE'


七、BS 服务器的压测命令

(1)nmon

[BS] nmon

bash 复制代码
cd /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')
相关推荐
DREAM依旧5 分钟前
隐马尔科夫模型|前向算法|Viterbi 算法
人工智能
轩辰~17 分钟前
网络协议入门
linux·服务器·开发语言·网络·arm开发·c++·网络协议
GocNeverGiveUp18 分钟前
机器学习2-NumPy
人工智能·机器学习·numpy
雨中rain1 小时前
Linux -- 从抢票逻辑理解线程互斥
linux·运维·c++
B站计算机毕业设计超人1 小时前
计算机毕业设计PySpark+Hadoop中国城市交通分析与预测 Python交通预测 Python交通可视化 客流量预测 交通大数据 机器学习 深度学习
大数据·人工智能·爬虫·python·机器学习·课程设计·数据可视化
学术头条1 小时前
清华、智谱团队:探索 RLHF 的 scaling laws
人工智能·深度学习·算法·机器学习·语言模型·计算语言学
18号房客1 小时前
一个简单的机器学习实战例程,使用Scikit-Learn库来完成一个常见的分类任务——**鸢尾花数据集(Iris Dataset)**的分类
人工智能·深度学习·神经网络·机器学习·语言模型·自然语言处理·sklearn
feifeikon1 小时前
机器学习DAY3 : 线性回归与最小二乘法与sklearn实现 (线性回归完)
人工智能·机器学习·线性回归
游客5201 小时前
opencv中的常用的100个API
图像处理·人工智能·python·opencv·计算机视觉
古希腊掌管学习的神1 小时前
[机器学习]sklearn入门指南(2)
人工智能·机器学习·sklearn