如何在python机器人中使用ShowTypingMiddleware
我想在python机器人中使用ShowTypingMiddleware中间件,但我找不到如何正确地连接到该中间件。如何在python机器人中使用ShowTypingMiddleware,python,botframework,Python,Botframework,我想在python机器人中使用ShowTypingMiddleware中间件,但我找不到如何正确地连接到该中间件。 botbuilder核心4.7.1 botbuilder模式4.7.1 #app.py 适配器=BotFrameworkAdapter(设置) #显示长时间活动的输入指示器 适配器使用(ShowTypingMiddleware(延迟=0.5,周期=2.0)) #bot.py ... 消息活动上的异步定义(self,turn\u上下文:turn上下文): 如果turn_contex
botbuilder核心4.7.1
botbuilder模式4.7.1
#app.py
适配器=BotFrameworkAdapter(设置)
#显示长时间活动的输入指示器
适配器使用(ShowTypingMiddleware(延迟=0.5,周期=2.0))
#bot.py
...
消息活动上的异步定义(self,turn\u上下文:turn上下文):
如果turn_context.activity.text==“中间件”:
等待asyncio.sleep(10)#模拟获取一些数据
等待打开上下文。发送活动(“完成”)
...
我希望调用中间件
-显示耗时超过0.5秒的活动的TI
-重复每2秒向客户端发送一次TI
实际结果:
- TI仅发送一次
- 不发送重复TI
- 此时将显示运行时警告:
c:\develope\x\pybot1\.venv\lib\site packages\botbuilder\core\show\u typing\u middleware.py:79:
运行时警告:从未等待协同程序“ShowTypingMiddleware.on\u turn..start\u interval”
开始时间间隔(上下文、期间、期间)
RuntimeWarning:启用tracemalloc以获取对象分配回溯
在emulator日志中,很明显只发送了一个TI指示器,并且看不到重复
[16:55:12]<- messageYou said 'middleware'
[16:55:12]POST200conversations.:conversationId.activities.:activityId
[16:55:12]POST201directline.conversations.:conversationId.activities
[16:55:43]-> messagemiddleware
[16:55:44]<- typing
[16:55:44]POST200conversations.:conversationId.activities.:activityId
[16:55:54]<- messagedone
[16:55:54]POST200conversations.:conversationId.activities.:activityId
[16:55:54]POST201directline.conversations.:conversationId.activities
[16:55:12]消息中间件
[16:55:44]因为我可以用Python而不是.NET重现这个问题,所以看起来您在Python SDK中发现了一个bug。请报告并确保链接到此帖子
还请注意,虽然Emulator可以进行测试,但类型指示器是通道特定的功能,您不应该期望所有通道都以相同的方式对待类型指示器。即使您在Emulator中按所需方式使用输入指示器,您所针对的频道也可能会有不同的行为。我的回答可以接受吗?您是否计划报告此错误?链接:
[16:55:12]<- messageYou said 'middleware'
[16:55:12]POST200conversations.:conversationId.activities.:activityId
[16:55:12]POST201directline.conversations.:conversationId.activities
[16:55:43]-> messagemiddleware
[16:55:44]<- typing
[16:55:44]POST200conversations.:conversationId.activities.:activityId
[16:55:54]<- messagedone
[16:55:54]POST200conversations.:conversationId.activities.:activityId
[16:55:54]POST201directline.conversations.:conversationId.activities