- AI 聊天機器人可透過 LLM 自動將對話翻譯成 100 多種語言,或是你也可以建立自訂翻譯流程以獲得更細緻的控制。
- 典型的翻譯流程會儲存使用者語言,將收到的訊息翻譯成機器人的語言進行處理,然後再將回覆翻譯回使用者的語言。
- DeepL 是高品質翻譯的熱門選擇,但任何翻譯 API(如 Google 翻譯)都能用類似程式碼整合。
在現今多語言的世界裡,能以使用者母語互動是任何聊天機器人的重要功能。
如果你正在打造 AI 聊天機器人,只要用 LLM 作為機器人大腦,翻譯就是自動的。LLM agent 可以自動將對話翻譯成 100 多種語言。
但如果你想在打造 GPT 聊天機器人時設定自訂翻譯功能,我們可以協助你完成。
本文將深入介紹自訂翻譯所需的具體程式設置。
聊天機器人的翻譯是如何運作的?
我們的策略是攔截使用者訊息、辨識語言,並將訊息在機器人運作語言與使用者語言間互相翻譯。
這個流程包含:
- 儲存偵測到的語言
- 將使用者訊息翻譯成機器人語言
- 處理訊息,然後
- 將機器人回覆翻譯回使用者語言
舉例來說,如果使用者用西班牙文發送訊息,機器人會將「es」儲存為語言變數。軟體會將訊息翻譯成英文給機器人處理,然後再把機器人回覆翻譯回西班牙文給使用者。
步驟 1:選擇你的工具
我們將採用以準確和高效率著稱的 DeepL 翻譯服務。
我們會用一個簡單的回音機器人來示範這個整合,該機器人會回覆並重複使用者訊息。API 呼叫會用 Axios,因為它已自動整合在 Botpress 中。

步驟 2:建立所需變數
首先,我們需要新增一個名為 `language` 的使用者變數,用來儲存初始或偵測到的語言。
DeepL 會自動偵測並回傳輸入文字的語言,讓我們只需一次 API 請求即可完成。
步驟 3:建立攔截 hook
訊息進入前的 hook
為了在訊息進入 Botpress 前攔截並翻譯使用者訊息,我們要新增一個「Before Incoming Message」hook。我們將這個 hook 命名為「Translation-In」,負責將收到的訊息翻譯成英文並覆蓋原始訊息,讓 Botpress 能以英文處理。
這個 hook 的程式碼如下:
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 設定變數。
訊息發送前的 hook
對於「Before Outgoing Message」hook,我們將其命名為「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 翻譯或 Microsoft 翻譯?
可以,你只需修改 Botpress 的翻譯 hook,使其符合所選服務的 API 請求與回應格式。這些服務都能透過 HTTP 呼叫,在自訂動作或 hook 中輕鬆整合。
2. 我可以只翻譯對話中的部分內容嗎?
可以,你可以在翻譯 hook 中加入條件判斷,只針對特定訊息類型或使用者自訂變數進行翻譯。這樣你就能精確控制哪些內容、何時需要翻譯。
3. 我可以在將用戶資料發送到翻譯服務前先進行匿名化處理嗎?
可以,你可以在 Botpress 的 hook 或動作中預先處理訊息(例如用正則表達式遮蔽姓名、電子郵件或 ID),再送到翻譯服務。這樣能確保隱私合規,同時保有翻譯功能。
4. 這個翻譯設定可以在不同的渠道上使用嗎(例如 WhatsApp、Messenger)?
可以,你可以在 WhatsApp、Messenger、Slack 或網站等多個通道使用相同的翻譯設定。只要機器人收到訊息,翻譯邏輯就能運作,無論平台為何。
5. 我要如何記錄翻譯錯誤以便分析或除錯?
在 Botpress 中記錄翻譯錯誤時,你可以用 console.error() 進行開發除錯,或將錯誤寫入自訂 Botpress 資料表、遠端日誌服務(如 Loggly、Datadog),或內部 API。這有助於你追蹤失敗案例並長期監控效能。





.webp)
