在当今的多语言世界中,能够用用户的母语与他们互动是任何聊天机器人的关键功能。
Botpress 为您的聊天机器人提供 100 多种语言的自动翻译,但如果您有兴趣设置自定义翻译功能,我们可以帮您实现。
在本文中,我们将深入探讨定制翻译所需的具体编码输入。
聊天机器人翻译是如何工作的?
我们的策略围绕拦截用户信息、识别其语言以及将这些信息翻译成机器人的操作语言。
这一过程包括
- 存储检测到的语言
- 将用户信息翻译成机器人语言
- 处理信息,然后
- 将机器人的回复翻译成用户的语言
例如,如果用户用西班牙语发送信息,机器人会将 "es "作为语言变量存储。软件将为机器人把信息翻译成英语,然后把机器人的回复翻译回西班牙语,再发送给用户。
挑选工具
我们将采用 DeepL 翻译服务,该服务以准确和高效著称。
我们将用一个简单的 echo 机器人来演示这种集成,该机器人会通过镜像用户的消息来回应用户。我们将使用 Axios 进行 API 调用,因为它是Botpress 的自动集成。
创建所需的变量
首先,我们需要引入一个名为 "语言 "的用户变量来存储初始语言或检测到的语言。
DeepL 通过检测和返回输入文本的语言来简化这一过程,从而将我们的任务简化为单个 API 请求。
创建拦截钩
来电挂钩前
为了在用户信息到达Botpress 之前对其进行拦截和翻译,我们引入了一个 "来信之前 "钩子。我们将把这个钩子命名为 "Translation-In",它负责把收到的信息翻译成英文,并覆盖原始信息,让Botpress 像处理英文信息一样处理它。
下面是这个钩子的代码:
await axios
.post(
'https://api-free.deepl.com/v2/translate',
{
text: [event.preview],
target_lang: 'EN'
},
{
headers: {
Authorization: 'DeepL-Auth-Key {{your key here}}',
'Content-Type': 'application/json'
}
}
)
.then((response) => {
event.payload.text = response.data.translations[0].text
event.preview = response.data.translations[0].text
event.state.user.language = response.data.translations[0].detected_source_language
})
.catch(function (error) {
// Error handling
});
重要提示:在加入 API 密钥时,请务必使用Botpress 配置变量。
外发留言挂钩前
对于 "发送消息前 "钩子,我们将其命名为 "翻译-输出"。它将拦截机器人的回复,将其翻译回用户的语言,确保对话仍使用用户的首选语言。
实施过程包括用翻译后的对应信息覆盖发出的信息:
await axios
.post(
'https://api-free.deepl.com/v2/translate',
{
text: [outgoingEvent.preview],
target_lang: event.state.user.language
},
{
headers: {
Authorization: 'DeepL-Auth-Key {{your key here}}',
'Content-Type': 'application/json'
}
}
)
.then((response) => {
outgoingEvent.payload.text = response.data.translations[0].text
outgoingEvent.preview = response.data.translations[0].text
})
.catch(function (error) {
// Error handling
});
开始
使用人工智能聊天机器人的一个显著优势是它的多语言能力。通过Botpress 等平台,您可以快速设置聊天机器人,让它用 100 多种语言与用户互动。
如果您想要一个方便易用的聊天机器人,您可以将任何翻译服务与Botpress 无缝集成。通过我们的渠道集成,您可以将聊天机器人部署到 WhatsApp、FacebookMessenger 或您的网站。
立即开始。这是免费的。