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

慈云数据 2024-03-31 技术支持 52 0

目录

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

(1)Linux 模板命令配置

测试环境 FinalShell 命令模板

② 正式环境 FinalShell 命令模板

③ Linux 命令详解

(2)Linux 返回日志

二、查看 APP 实时 AI 问答消息的全部类型日志 

(1)Linux 模板命令配置 

① 测试环境 FinalShell 命令模板 

② 正式环境 FinalShell 命令模板

(2)Linux 返回日志 

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

(1)Linux 模板命令配置  

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

② AI 人设测试注意事项 

(2)Linux 返回日志 

四、查看 APP 实时指定 AI 问答消息的全部类型日志

(1)Linux 模板命令配置   

① 测试环境 FinalShell 命令模板  

② 正式环境 FinalShell 命令模板

(2)Linux 返回日志  

五、查看 TTS 服务器日志

(1)查看 TTS 服务日志 

(2)查看 TTS 实时日志  

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

六、TTS 服务器的压测命令

(1)nmon

(2)Jmeter

(3)压测前后清理缓存

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

七、BS 服务器的压测命令

(1)nmon

(2)Jmeter



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

(1)Linux 模板命令配置

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

① 测试环境 FinalShell 命令模板

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

【Linux 命令内容】

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

【Linux 命令截图】 

② 正式环境 FinalShell 命令模板

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

【Linux 命令内容】

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

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

      ② 正式环境 FinalShell 命令模板

      [Pro_APP] today tail:all

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

      (2)Linux 返回日志 



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

      (1)Linux 模板命令配置  

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

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

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

      向量人设测试

      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

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

        ② 正式环境 FinalShell 命令模板

         [Pro_APP] today tail:AI

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

        (2)Linux 返回日志  



        五、查看 TTS 服务器日志

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


        (1)查看 TTS 服务日志 

         [TTS] 服务 tail:all

        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

          tail -f /data/tts/paddle/client/logs/runtime.log

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

          [TTS] 清除音频

          conda activate /data/conda_env/paddle
          cd /data/tts/paddle/client
          cd wav_output
          rm -rf test_*


          六、TTS 服务器的压测命令

          (1)nmon

          [TTS] nmon

          cd /usr/local/bin
          ./nmon -f -t -r nmonreport -s 1 -c 500

          (2)Jmeter

          Jmeter_TTS

          #!/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)

          conda activate /data/conda_env/paddle
          cd /data/tts/paddle/client
          lsof -i:7868

          [TTS] 2 重启服务

          nohup python main.py &

          [TTS] 3 base 查看内存

          glances

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

          [Test_APP] today tail:SEND_VOICE

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


          七、BS 服务器的压测命令

          (1)nmon

          [BS] nmon

          cd /usr/local/bin
          ./nmon -f -t -r nmonreport -s 1 -c 500

          (2)Jmeter

          Jmeter_BS

          #!/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')
微信扫一扫加客服

微信扫一扫加客服

点击启动AI问答
Draggable Icon