wzpan / wukong-robot

🤖 wukong-robot 是一个简单、灵活、优雅的中文语音对话机器人/智能音箱项目,支持ChatGPT多轮对话能力,还可能是首个支持脑机交互的开源智能音箱项目。

Home Page:https://wukong.hahack.com/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

唤醒之后,unit nlu请求要2、3分钟,每次说一句话之后总要卡2分钟才能开始执行指令或者发起AI请求,发现是unit.getUnit和get_token阻塞在了requests.get和requests.post

weibinke opened this issue · comments

确认已寻找过答案

我已确认在 Github issue 页、常见问题页、文档 中都查找过,没有找到类似问题和资料。我也没有 google / bing/ 百度 / duckduckgo 到相关解答。

安装方式

手动安装

操作系统

Mac

离线唤醒相关

如果是离线唤醒相关的问题,是否已确保 arecord temp.wavaplay temp.wav (Linux) 或 rec temp.wavplay temp.wav (Mac)已正常工作?(注意要求不能带任何其他参数)如果不能,请先配置好麦克风和音响再尝试。

—— 我已确保录音、播放都正常工作才尝试 wukong-robot 。

问题描述

唤醒之后,unit nlu请求要2、3分钟,每次说一句话之后总要卡2分钟才能开始执行指令或者发起AI请求,发现是unit.getUnit和get_token阻塞在了requests.get和requests.post。
测试了网络没有问题,这里getUnit是主线程调用,有两个请求,打日志发现每个都要1分多钟,把url拿出来直接请求网络很快,换个地方调用也是很快,但是这里执行却要1分多钟,是哪里锁住了吗?

暂时只能在NLU.parse return None,把unit跳过规避下。
请教下requests这里看下是不是被什么锁住了,或者有什么bug导致,另外建议nlu处理最好异步化。

复现步骤

mac下,正常启动流程必现。前两天没问题,今天开始必现,不知道为啥。

是用的自己的UNIT账号吗?

是用的自己的UNIT账号吗?

用默认的和自己的都一样。我发现不是unit问题,而是只要调用requests.get就会卡住,我注释掉unit,然后加了个测试插件,handle执行requests.get,随便找个能访问的url都要等1分多钟,感觉是线程被抢占了。之前没问题,不知道搞了啥开始有问题,想办法调试是哪个线程抢占了cpu/io,对python不熟悉,大佬有什么建议吗

之前没问题,不知道搞了啥开始有问题,想办法调试是哪个线程抢占了cpu/io

wukong-robot 里有一个性能调优功能,可以通过 profiling 命令来开启:

python wukong.py profiling

当进行对话的时候,就会打印出类似下面的内容:

image

自上而下就是每个单元耗时从大到小的排序,例如我这个图可以看出一次会话用时4秒,其中 Unit 的解析就花了 1.8 秒。

久未回复,先关闭本 issue 。