在使用Node.js的Azure Bot Framework中,键入指示符在响应之前消失

l7wslrjt  于 12个月前  发布在  Node.js
关注(0)|答案(1)|浏览(105)

我目前正在Node.js中使用Azure Bot Framework开发一个聊天机器人。我面临的问题围绕着输入指示器行为。当用户开始输入并点击回车时,会触发一个输入指示器。然而,尽管OpenAI API需要超过12秒才能响应,键入指示符仅在5秒后消失。2这导致键入指示符和实际响应消息之间存在静默间隙。
下面是负责触发类型指示器的相关代码片段:

if (context.activity.type == "message") {
  appInsightsLogger.Trace(
    "Message Received From " + context.activity.channelId
  );
  await context.sendActivities([
    { type: ActivityTypes.Typing, relatesTo: context.activity.relatesTo },
  ]); // Typing indicator
}

console.log("context.activity.type", context.activity.type);

await bot.run(context);

字符串
我一直在尝试找到一种解决方案,以确保在收到OpenAI API响应之前,键入指示器在整个持续时间内保持活动状态。此外,我希望控制键入指示器的时间。尽管我付出了努力,但我仍未能达到预期的结果。
我希望输入指示器能够持续到OpenAI API响应,从而防止静默间隙问题。然而,目前的实现导致指示器在5秒后消失,导致用户体验中断。

yzxexxkh

yzxexxkh1#

此错误是由于键入指示器问题造成的。要解决此问题,请确保代码在收到OpenAI API响应之前保持键入指示器处于活动状态。此外,您可能需要控制键入指示器的计时,以更好地匹配实际响应时间,并手动发送键入活动。
代码取自引用Doc

async function callOpenAIAPI() {
 
  await new Promise(resolve => setTimeout(resolve, 12000));

  return 'This is the OpenAI API response!';
}

字符串


的数据

  • 使用Azure Bot Builder SDK for Node.js构建机器人


相关问题