- AI 聊天机器人可以通过 LLM 自动将对话翻译成 100 多种语言,或者你也可以构建自定义翻译流程以获得更精细的控制。
- 典型的翻译流程会存储用户的语言,将收到的消息翻译为机器人的语言进行处理,然后再将回复翻译回用户的语言。
- DeepL 是高质量翻译的热门选择,但任何翻译 API(如 Google 翻译)都可以通过类似的代码集成。
在当今多语言的世界里,能够用用户的母语进行交流是任何聊天机器人的关键功能。
如果你正在构建 AI 聊天机器人,只要使用 LLM 作为机器人大脑,翻译就是自动完成的。LLM 代理可以自动将对话翻译成 100 多种语言。
但如果你希望在构建 GPT 聊天机器人时设置自定义翻译功能,我们可以帮助你实现。
本文将深入介绍自定义翻译所需的具体代码输入。
聊天机器人的翻译是如何实现的?
我们的策略是拦截用户消息,识别其语言,并将这些消息与机器人的工作语言之间进行互译。
这一过程包括:
- 存储检测到的语言
- 将用户消息翻译为机器人的语言
- 处理消息,然后
- 将机器人的回复翻译回用户的语言
例如,如果用户用西班牙语发送消息,机器人会将“es”存为语言变量。软件会将消息翻译成英文供机器人处理,然后再将机器人的回复翻译回西班牙语后发送给用户。
第 1 步:选择你的工具
我们的方案将采用 DeepL 翻译服务,以其高准确率和高效性著称。
我们将通过一个简单的回声机器人演示该集成,该机器人会原样回复用户消息。API 调用我们将使用 Axios,因为它已自动集成在 Botpress 中。

第 2 步:创建所需变量
首先,我们需要添加一个名为 `language` 的用户变量,用于存储初始或检测到的语言。
DeepL 可以检测并返回输入文本的语言,使我们的任务简化为一次 API 请求。
第 3 步:创建拦截钩子
消息进入前的钩子
为了在消息到达 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 Key 时,请务必使用Botpress 配置变量。
消息发送前的钩子
对于“消息发送前”钩子,我们命名为“Translation-Out”。它会拦截机器人的回复,将其翻译回用户的语言,确保对话始终以用户偏好的语言进行。
实现方式是用翻译后的内容覆盖原始回复:
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
});立即开始构建
AI 聊天机器人的一大优势就是多语言能力。借助 Botpress 等平台,你可以快速设置聊天机器人,与用户用 100 多种语言交流。
如果你想要一个易用且友好的聊天机器人,可以无缝将任何翻译服务集成到 Botpress。通过我们的渠道集成,你还可以将机器人部署到WhatsApp、Facebook Messenger或你的网站。
立即开始。完全免费。
更多参考资料
常见问题
1. 我可以使用除 DeepL 以外的翻译服务吗,比如 Google 翻译或微软翻译?
可以,你可以通过修改 Botpress 中的翻译钩子,使其适配所选服务的 API 请求和响应格式。这些服务都可以通过 HTTP 调用在自定义动作或钩子中轻松集成。
2. 我可以只翻译对话的部分内容吗?
可以,你可以在翻译钩子中添加条件逻辑,根据特定消息类型或用户自定义变量决定是否触发翻译。这样你可以精确控制哪些内容在何时被翻译。
3. 我可以在将用户数据发送到翻译服务前进行匿名处理吗?
可以,你可以在 Botpress 钩子或动作中对消息进行预处理(如用正则表达式屏蔽姓名、邮箱或 ID),在发送到翻译服务前实现数据匿名化。这有助于满足隐私合规要求,同时支持翻译功能。
4. 这个翻译设置可以在不同渠道(如 WhatsApp、Messenger)中使用吗?
可以,你可以在 WhatsApp、Messenger、Slack 或你的网站等多个渠道使用同一套翻译方案。只要机器人能收到消息,翻译逻辑就能在任何平台上运行。
5. 如何记录翻译错误以便分析或调试?
在 Botpress 中记录翻译错误时,你可以用console.error()进行开发调试,或将错误发送到自定义 Botpress 表、远程日志服务(如 Loggly 或 Datadog)或内部 API。这样有助于你跟踪故障并长期监控性能。





.webp)
