在當今的多語言世界中,以母語與用戶互動的能力是任何聊天機器人的關鍵功能。
Botpress 為您的聊天機器人提供 100 多種語言的自動翻譯,但如果您有興趣設置自定義翻譯功能,我們可以説明您完成。
在本文中,我們將深入探討自定義翻譯所需的特定編碼輸入。
聊天機器人翻譯如何工作?
我們的策略圍繞著攔截來自使用者的消息,識別他們的語言,並將這些消息與機器人的操作語言相互翻譯。
此過程需要:
- 存儲檢測到的語言
- 將使用者的消息翻譯成機器人的語言
- 處理消息,然後
- 將機器人的回應翻譯回用戶的語言
例如,如果使用者用西班牙文發送消息,機器人會將「es」儲存為語言變數。該軟體會將機器人的消息翻譯成英語,然後將機器人的回應翻譯回西班牙文,然後再發送給使用者。
選擇您的工具
我們的設置將採用DeepL翻譯服務,該服務以其準確性和效率而聞名。
我們將使用一個簡單的echo bot演示這種集成,該機器人通過鏡像使用者的消息來回應使用者。我們將使用 Axios 進行 API 調用,因為它是 Botpress.
創建所需的變數
首先,我們需要引入一個名為“language”的用戶變數來存儲初始或檢測到的語言。
DeepL通過檢測並返回輸入文字的語言來促進這一過程,將我們的任務簡化為單個API請求。
創建攔截鉤子
在傳入消息鉤子之前
在使用者的消息到達之前攔截和翻譯使用者的消息 Botpress,我們引入了一個“Before Incoming Message”鉤子。我們將這個鉤子命名為「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
});
重要提示:始終使用 Botpress 合併 API 金鑰時的配置變數。
在傳出消息挂鉤之前
對於「傳出消息之前」鉤子,我們將其命名為「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, 臉書 Messenger,或您的網站。
今天就開始吧。 它是免費的。