LuisActionBinding.js是否已从botbuilder-cognitiveservices.js移除?Node.js聊天机器人使用遇阻
关于LuisActionBinding.js在botbuilder-cognitiveservices中的移除问题
是的,LuisActionBinding.js 确实已经从 botbuilder-cognitiveservices 库中移除了。
这个文件原本是作为LUIS动作绑定的示例代码,存在于旧版BotBuilder-CognitiveServices的Node.js示例目录里,但随着Microsoft Bot Framework的版本迭代,官方对LUIS相关的集成方案做了全面重构:
- 旧的
botbuilder-cognitiveservices库已经逐步被更现代化的botbuilder-ai库替代,后者提供了更简洁、更强大的LUIS集成能力 - 原本
LuisActionBinding对应的动作绑定逻辑,已经被整合到botbuilder-ai的LUIS识别器的意图处理流程中,不再需要单独的绑定文件
如果你现在要在Node.js聊天机器人中实现类似的LUIS意图绑定功能,可以参考以下替代方案:
- 安装最新的
botbuilder-ai库:
npm install botbuilder-ai
- 使用LUIS识别器直接处理意图并绑定对应动作,示例代码如下:
const { LuisRecognizer } = require('botbuilder-ai'); const { ActivityHandler } = require('botbuilder'); class MyBot extends ActivityHandler { constructor() { super(); // 初始化LUIS识别器 this.luisRecognizer = new LuisRecognizer({ applicationId: process.env.LUIS_APP_ID, endpointKey: process.env.LUIS_ENDPOINT_KEY, endpoint: `https://${process.env.LUIS_REGION}.api.cognitive.microsoft.com/` }, { includeAllIntents: true, includeInstanceData: true }, true); // 处理用户消息 this.onMessage(async (context, next) => { // 调用LUIS识别意图 const results = await this.luisRecognizer.recognize(context); // 获取得分最高的意图 const topIntent = LuisRecognizer.topIntent(results); // 根据意图绑定对应业务逻辑 switch (topIntent) { case 'BookFlight': await context.sendActivity('正在帮您处理航班预订请求,请提供出发地和目的地...'); // 这里添加航班预订的具体业务代码 break; case 'GetWeather': await context.sendActivity('正在查询您所在地区的天气,请稍等...'); // 这里添加天气查询的具体业务代码 break; default: await context.sendActivity(`抱歉,我没太理解您的需求,您可以试试说"帮我订机票"或者"查天气"`); } await next(); }); } } module.exports.MyBot = MyBot;
另外需要提醒的是,旧版的botbuilder-cognitiveservices库已经停止更新,建议尽快迁移到botbuilder-ai,以获得更好的兼容性和功能支持。
内容的提问来源于stack exchange,提问作者Billy
相关产品推荐
相关产品推荐

