네이버 파파고 번역 (NMT) 챗봇 만들기

Minkang Heo
Jul 27, 2017 · 6 min read

네이버 파파고 NMT는 Neural Machine Translation의 약어로 7월 19일부로 REST Open API로 제공되기 시작했습니다.

API는 한↔영, 한↔중(간체) 번역을 지원하며, 일 10,000자 한도입니다.

더 자세한 내용은 파파고 웹사이트에서 확인하실 수 있습니다.

1. 개요

본 포스팅에서는 한→영 번역을 지원하는 챗봇을 제작합니다. 이 챗봇은 Facebook Messenger, Telegram 두 군데서 모두 동작합니다.

챗봇 제작과 운영을 위한 호스팅은 BotHub.Studio를 이용합니다.

2. 준비작업

2.1 Facebook Messenger Bot 생성

페이스북에서 챗봇을 만들기 위해서는 페이지와 앱 두가지가 필요합니다. 페이스북 로그인 후 페이지 만들기로 이동합니다.

적절한 카테고리에 페이지를 생성합니다.

다음은 앱 생성입니다. 페이스북 개발자 사이트로 이동합니다.

새로운 앱을 생성합니다.

앱 생성이 완료되면 대시보드에서 앱 ID와 앱 시크릿 코드를 확인할 수 있습니다.

이제 앱에 제품을 추가합니다. Messenger를 이용하기 때문에 Messenger 앱을 추가하면 됩니다.

챗봇을 운영할 페이지와 연동을 위해 토큰 생성 항목에서 페이지 선택을 합니다. (위에서 생성한 페이지를 선택하시면 됩니다.)

여기까지 완료하셨다면 페이스북 챗봇 연동을 위해서는 총 3가지 정보를 기록해 두시면 됩니다.

2.2 Telegram Bot 생성

텔레그램 검색창에서 @BotFather 를 찾습니다. 또는 t.me/BotFather 를 통해 연결 하실 수 있습니다.

/newbot 명령을 이용해 새로운 봇을 생성합니다.

텔레그램은 비교적 쉽게 봇 계정을 생성하실 수 있습니다. 여기서는 1가지만 기록해 두시면 됩니다.

2.3 Bot Hosting

챗봇을 운영할 서버는 BotHub.Studio를 이용합니다.

회원가입을 마치셨다면 로컬에서 다음과 같이 CLI 도구를 설치합니다.

$ pip install bothub-cli

계정 연결을 위해 configure 을 실행합니다.

$ bothub configure

프로젝트 폴더를 생성합니다.

$ mkdir translate_bot
$ cd translate_bot
$ bothub init

init 작업이 완료되면 기본 코드가 생성됩니다.

|-- bothub
| |-- bot.py
| `-- __init__.py
|-- bothub.yml
|-- requirements.txt
`-- tests

메신저를 연결해봅시다.

$ bothub channel add telegram --api-key=<api-key>
$ bothub channel add facebook --app-id=<app-id> --app-secret=<app-secret> --page-access-token=<page-access-token>

프로젝트를 새로 생성하면 기본으로 내 말을 따라하는 EchoBot 코드가 들어있습니다. 페이스북과 텔레그램에서 잘 동작하는지 확인해 보겠습니다.

$ bothub deploy

각각의 메신저에 말을 걸어보세요. 잘 동작하시나요? 그럼 이제 네이버 파파고를 적용해 보겠습니다.

2.4 네이버 파파고 API 신청

네이버 개발자 사이트로 이동합니다. 로그인 후 API 사용을 위해 애플리케이션 등록을 진행합니다.

등록이 완료되면 내 애플리케이션에서 다음의 정보를 확인합니다.

3. 한글 -> 영어 번역하기

우선, 파파고 API를 이용해서 한글을 영어로 번역하는 클래스를 만들기 위해 위에서 생성한 챗봇 프로젝트 안에 bothub/nmt.py 라는 파일을 만들고 아래와 같이 작성합니다.

4. 챗봇 구현

이제 챗봇을 통해 번역이 이루어 지도록 연결해 보겠습니다.

파파고 API사용을 위한 Client ID, Client Secret 을 아래와 같이 입력합니다.
(BotHub.Studio 로그인 후 해당 프로젝트 Properties에서도 등록하실 수 있습니다.)

bothub property set client_id <Client ID>
bothub property set secret <Client Secret>

bothub/bot.py 파일에서 Bot class의 handle_message 메소드를 다음과 같이 수정합니다.

이제 잘 동작하는지 페이스북 메신저와 텔레그램에서 확인해 보시면 됩니다.

위의 예제 소스는 Github에서 받아보실 수 있으며, Telegram 에서 테스트 해보실 수 있도록 임시로 봇을 열어 두었습니다.

5. 참고자료


본 아티클 관련 문의는 BotHub.Studio Community를 통해 지원받으실 수 있습니다. 챗봇 도입 및 제휴 문의는 bothub@bothub.sutdio로 연락해주세요.

BotHub.Studio (ko)

News, tutorials about BotHub.Studio chatbot hosting service

Minkang Heo

Written by

BotHub.Studio (ko)

News, tutorials about BotHub.Studio chatbot hosting service

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade