- AI 챗봇은 LLM을 활용해 100개 이상의 언어로 대화를 자동 번역할 수 있으며, 더 세밀한 제어를 위해 맞춤 번역 플로우를 구축할 수도 있습니다.
- 일반적인 번역 설정은 사용자의 언어를 저장하고, 들어오는 메시지를 봇의 언어로 번역한 뒤 처리하고, 다시 답변을 사용자의 언어로 번역해 전달합니다.
- DeepL은 고품질 번역으로 널리 사용되지만, Google Translate와 같은 다른 번역 API도 유사한 코드로 연동할 수 있습니다.
오늘날 다국어 환경에서 사용자의 모국어로 소통할 수 있는 기능은 챗봇의 핵심 요소입니다.
AI 챗봇을 구축하는 경우, 봇의 '브레인'으로 LLM을 사용하면 번역이 자동으로 이루어집니다. LLM 에이전트는 대화를 100개 이상의 언어로 자동 번역할 수 있습니다.
하지만 GPT 챗봇을 구축하면서 맞춤형 번역 기능을 직접 설정하고 싶다면, 저희가 도와드릴 수 있습니다.
이 글에서는 번역을 맞춤화하는 데 필요한 구체적인 코딩 입력값을 살펴봅니다.
챗봇 번역은 어떻게 작동하나요?
우리의 전략은 사용자의 메시지를 가로채어 언어를 식별하고, 이 메시지를 봇의 운영 언어로 번역한 뒤 다시 사용자 언어로 번역하는 방식입니다.
이 과정은 다음과 같습니다:
- 감지된 언어 저장
- 사용자 메시지를 봇의 언어로 번역
- 메시지 처리 후,
- 봇의 답변을 다시 사용자 언어로 번역
예를 들어, 사용자가 스페인어로 메시지를 보내면, 봇은 언어 변수로 "es"를 저장합니다. 소프트웨어는 메시지를 봇이 이해할 수 있도록 영어로 번역하고, 봇의 답변을 다시 스페인어로 번역해 사용자에게 전달합니다.
1단계: 도구 선택
이번 설정에서는 정확성과 효율성으로 잘 알려진 DeepL 번역 서비스를 사용할 예정입니다.
간단한 에코 봇(사용자 메시지를 그대로 답변하는 봇)으로 이 연동을 시연할 예정입니다. API 호출에는 Botpress에 자동으로 통합된 Axios를 사용할 것입니다.

2단계: 필요한 변수 만들기
먼저, `language`라는 사용자 변수를 추가해 초기 또는 감지된 언어를 저장해야 합니다.
DeepL은 입력 텍스트의 언어를 감지해 반환하므로, 한 번의 API 요청으로 이 과정을 간소화할 수 있습니다.
3단계: 인터셉션 훅 만들기
들어오는 메시지 전 훅
사용자 메시지가 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
});중요 안내: API 키를 사용할 때는 반드시 Botpress 구성 변수를 사용하세요.
나가는 메시지 전 훅
"Before Outgoing Message" 훅은 "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 Translator 같은 다른 번역 서비스를 사용할 수 있나요?
네, 번역 훅에서 선택한 서비스의 API 요청 및 응답 형식에 맞게 코드를 수정하면 다른 번역 서비스도 사용할 수 있습니다. 이러한 서비스는 커스텀 액션이나 훅 내에서 HTTP 호출로 쉽게 연동할 수 있습니다.
2. 대화의 일부만 선택적으로 번역할 수 있나요?
네, 번역 훅에 조건문을 추가해 특정 메시지 유형이나 사용자 정의 변수를 확인한 후 번역을 실행하면 대화의 일부만 선택적으로 번역할 수 있습니다. 이를 통해 어떤 내용이 언제 번역될지 세밀하게 제어할 수 있습니다.
3. 번역 서비스로 데이터를 보내기 전에 사용자 정보를 익명화할 수 있나요?
네, 메시지를 사전 처리(예: 정규식을 사용해 이름, 이메일, ID 등 마스킹)하여 번역 서비스로 보내기 전에 사용자 데이터를 익명화할 수 있습니다. 이렇게 하면 개인정보 보호 요건을 준수하면서도 번역이 가능합니다.
4. 이 번역 설정을 WhatsApp, Messenger 등 다양한 채널에서 사용할 수 있나요?
네, WhatsApp, Messenger, Slack, 웹사이트 등 여러 채널에서 동일한 번역 설정을 사용할 수 있습니다. 봇이 메시지를 받기만 하면 플랫폼에 상관없이 번역 로직이 작동합니다.
5. 번역 오류를 분석이나 디버깅을 위해 어떻게 기록하나요?
Botpress에서 번역 오류를 기록하려면 console.error()를 사용해 개발 중 디버깅하거나, 오류를 Botpress 커스텀 테이블, Loggly나 Datadog 같은 원격 로깅 서비스, 또는 내부 API로 전송할 수 있습니다. 이를 통해 실패 사례를 추적하고 성능을 모니터링할 수 있습니다.





.webp)
