使用 Node.js 在 Azure Bot Framework 中进行响应之前键入指示器消失

问题描述 投票:0回答:1

我目前正在使用 Node.js 中的 Azure Bot 框架开发聊天机器人。我面临的问题与打字指示器行为有关。当用户开始打字并按回车键时,会触发打字指示器。然而,尽管 OpenAI API 需要超过 12 秒的时间来响应,但打字指示器仅在 5 秒后就消失了。这会导致打字指示器和实际响应消息之间出现无声间隙。

这是负责触发输入指示器的相关代码片段:

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 秒后消失,导致用户体验中断。

node.js azure botframework chatbot openai-api
1个回答
0
投票

该错误是由于打字指示器问题造成的。为了克服这个问题,请确保代码保持输入指示器处于活动状态,直到收到 OpenAI API 响应。此外,您可能希望控制打字指示器的时间,以更好地匹配实际响应时间并手动发送打字活动。

代码取自参考文献Doc

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


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

enter image description here

  • 使用 Azure Bot 适用于 Node.js
  • 的 Builder SDK 构建机器人

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.