我目前正在使用 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 秒后消失,导致用户体验中断。