You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 07:10:28