如何在Node.js版Bot Composer中添加自定义翻译中间件
在Bot Composer Node.js模板中添加自定义翻译中间件的实现步骤
1. 创建自定义翻译中间件文件
在你的Composer Node.js项目的runtime/node/src/middleware目录下(没有该文件夹则新建),创建translatorMiddleware.js文件,编写翻译逻辑:
const { Middleware } = require('botbuilder'); class TranslatorMiddleware extends Middleware { async onTurn(context, next) { // 翻译用户输入:将用户输入转为Bot处理的目标语言 if (context.activity.type === 'message' && context.activity.text) { const translatedText = await this.translateText(context.activity.text, 'zh', 'en'); context.activity.text = translatedText; } // 执行后续Bot逻辑 await next(); // 翻译Bot回复:将Bot输出转为用户使用的语言 if (context.responses && context.responses.length > 0) { for (const response of context.responses) { if (response.text) { const translatedResponse = await this.translateText(response.text, 'en', 'zh'); response.text = translatedResponse; } } } } // 替换为真实翻译逻辑,示例以Azure Translator为例 async translateText(text, fromLang, toLang) { const key = process.env.TRANSLATOR_KEY; const region = process.env.TRANSLATOR_REGION; const endpoint = 'https://api.cognitive.microsofttranslator.com/translate'; const response = await require('axios').post( `${endpoint}?api-version=3.0&from=${fromLang}&to=${toLang}`, [{ Text: text }], { headers: { 'Ocp-Apim-Subscription-Key': key, 'Ocp-Apim-Subscription-Region': region, 'Content-Type': 'application/json' } } ); return response.data[0].translations[0].text; } } module.exports = TranslatorMiddleware;
2. 在Bot入口注册中间件
打开项目runtime/node/src/index.js文件,引入并注册中间件:
const { BotFrameworkAdapter } = require('botbuilder'); const TranslatorMiddleware = require('./middleware/translatorMiddleware'); // 保留原有其他代码 // 初始化适配器 const adapter = new BotFrameworkAdapter({ appId: process.env.MicrosoftAppId, appPassword: process.env.MicrosoftAppPassword }); // 注册自定义翻译中间件 adapter.use(new TranslatorMiddleware()); // 保留原有后续Bot初始化、监听代码
3. 配置翻译服务密钥
在项目根目录的.env文件中添加翻译服务的配置信息:
TRANSLATOR_KEY=你的翻译服务密钥 TRANSLATOR_REGION=你的翻译服务区域
4. 测试验证
启动Bot Composer项目,发送消息测试:用户输入非目标语言内容,Bot会自动翻译后处理逻辑,再将回复翻译为用户语言返回。
内容的提问来源于stack exchange,提问作者tushar arora
相关产品推荐
相关产品推荐

