티스토리 뷰

최근 채팅봇의 인기가 늘어남에 따라 (2011 Chatterbox Challenge의 공헌으로)  여기저기서 선행 경험이 없으신 분들이 저에게 자신만의 채팅봇을 어떻게 만들어야 하는지에 대한 문의를 많이 해주셨습니다. 

기본적으로, 미래의 봇 전문가 유망주 분들이 새로운 채팅봇을 만들기 위해 선택할 수 있는 몇 가지 방법이 있습니다. 여기서 모든 방법들을 다룰수는 없기 때문에, 좀 더 대중적인 방법들 몇몇개에 대해서 장점과 단점들을 간략하게 다루겠습니다. 그 다음에 자신만의 채팅봇을 세팅하는 방법 두 가지에 대한 단계적인 가이드를 제시하겠습니다. 그중 하나는 독립적인 봇 앱이고, 다른 하나는 웹에 기반한 채팅봇입니다. 자 우선 기본부터 시작해 봅니다.


채팅봇 타입 – 하나 아니면 여러개?

주요 두 가지 채팅봇 타입중 하나는 “독립적인” 애플리케이션으로, 채팅봇은 하나의 컴퓨터에만 실행됩니다. 

다른 하나는 “웹 기반” 으로, 원격의 서버에서 실행되고, (일반적으로) 웹 페이지 형식으로 일반 대중들이 접근 가능합니다. 대다수의 독립적인 봇들은 시스템 인터페이스와도 통합되어 있어서, 봇들이 컴퓨터의 특정 기능들, 예를들어 미디어 파일을 재생하거나, 파일을 검색하는 기능들을 사용할 수 있게 해줍니다. 그들은 대부분 그래픽으로 구성되어 있고 아바타의 형식으로 되어있고(주로 여성?!) 상호작용을 도와주어 경험을 향상 시켜 줍니다. 기본적인 웹 기반 채팅봇의 가장 심플한 형식은, 단순히 흰색 바탕의 웹 페이지에 봇과 유저 사이의 하나의 인터페이스가 끼워 넣어져 있는 형식입니다. 이 봇의 업그레이드나 인터페이스의 성능 향상은 오직 봇마스터의 옵션이고 책임입니다.


장점과 단점 : 독립적인 채팅봇 어플리케이션 

대부분의 독립적인 채팅 앱, 예를 들어 AI Bliss (http://aibliss.com/) 과 Kari (http://karigirl.com/) 들은 이러한 장점이 있습니다 :

  • 대부분은 설치하거나 사용하기 간단합니다.
  • 그들은 매력적이고 매혹하는 그래픽 인터페이스가 있고, 탐험하기 좋은 풍부하고 호화로운 세계를 갖추고 있습니다.
  • 대부분은 글을 말로 바꾸는 (Text to Speech : TTS) 시스템을 가지고 있어 당신의 경험을 향상시키는 오디오 기능을 갖추고 있습니다.

하지만, 그들은 다음과 같은 단점도 가지고 있습니다 :

  • 이 봇들은 “당신만의 로봇”이 아닙니다. 그들은 당신만의 로봇을 만드는데 매우 제한적인 정도의 기능을 갖추고 있습니다.
  • 대개 이 로봇들은 무료가 아닙니다. 하지만 대부분 데모버전은 제공합니다.
  • 많은 종류가 성인 콘텐츠를 가지고 있어서 집에 아이들이 있거나, 불쾌하다고 받아들일 수 있는 사람들에게 환영받지 못 할 수도 있습니다.

나중에 제가 설명하겠지만 현재 위의 것들은 모든 독립적인 애플리케이션 봇에 해당되는 것은 아닙니다. 하지만 대다수의 독립적인 채팅봇들에게는 위의 것들 중에 적어도 하나는 해당됩니다.


장점과 단점 : 웹 기반 채팅봇

독립적인 채팅봇 앱과 마찬가지로, 웹 기반 채팅봇을 만드는 것에도 장점과 단점이 있습니다. 먼저 좋은 면 부터 살펴보겠습니다 :

  • 웹 기반 채팅봇은 행동과 인격에 대한 부분을 더 많이 통제할 수 있도록 해줍니다.
  • 대부분의 경우 당신은 무료로 봇을 호스팅 할 수 있습니다. 물론 ‘프리미엄’ 옵션도 있긴합니다.
  • 만일 봇의 구성에 대해 조정할 수 있으면, 성인의 콘텐츠를 사용할지에 대한 부분을 조정할 수 있습니다.

하지만 단점도 존재합니다 :

  • 웹 기반의 봇은 독립적인 채팅봇 어플리케이션보다 설치하기 어렵습니다. 약간 더 복잡한 절차가 필요하고, 따로 ‘설치프로그램’이 존재하지 않습니다.
  • 웹 기반 채팅봇을 설치하는데는 최소한 다음과 같은 능력이 요구됩니다.
    • HTML
    • CSS
    • JavaScript
    • Artificial Intelligence Markup Language (AIML) – (Pandorabot 이나 AIML 구조를 사용하는 봇들에 대해)

화려한 기능들, 예를 들어 글을 말로(Text to Speech), 애니메이션 아바타 등은 각자 만들어서 봇 페이지에 합쳐야 하고, 특정 기능들, 예를 들어 음성인식 같은 것들은 가능하지 않거나 매우 제한적인 기능만 가지고 있습니다.

하지만 만일 당신이 필수적인 스킬을 가지고 있으면(혹은 배우려는 의지), 저는 웹 기반 봇들이  더 가치 있는 도전이 될 수 있다고 생각합니다.


불량해지기 – 모든 것을 밑바닥에서 부터 만들기 (뭐, 거의 모든 것 말입니다.)

제가 제 첫 채팅봇인 Morti (http://www.geekcavecreations.com/Morti/)를 만들기 전에  몇 가지 사용 가능한 옵션들을 살펴보았습니다. 그리고 제가 웹 디자인, 웹 프로그래밍, 데이터베이스 관리에 대한 상당한 지식과 경험을 갖추고 있었고, 저만의 채팅봇을 호스팅 할 수 있는 곳이 있었기 때문에 저는 좀 더 어려운 길을 선택했습니다. 봇의 모든 부분을 조종할 수 있게 봇을 저 스스로 호스팅 하기로 결정했습니다. 게다가 전 제가 위에서 언급한 스킬들과 비슷한 스킬들을 가지고 있었습니다.

  • PHP scripting language
  • MySQL database management
  • 채팅봇 engine/interpreter(제 경우는, program O)
  • jQuery (Morti의 인터페이스에 사용했습니다.)

제가 어떤 방식으로 만들지 결정했기 때문에, 저는 다음과 같은 방법으로 봇을 만들기 시작했습니다.

  1. 저는 PHP AIML interpreter, Program  O (www.program-o.com) 을 다운받고 철저히 공부했습니다.
  2. 저는 스크립트를 Morti의 폴더에 업로드 하고, 포함된 설치 스크립트를 실행하고, 방법에 따라서 필요한 대로, 스크립트 내의 데이터베이스 정보를 업데이트하였습니다.
  3. 저는 ALICE의 주석 달린 AIML 묶음을 얻었고(AIML 패턴/응답 템플릿 표는http://www.alicebot.org/downloads/sets.html 에서 사용 가능합니다.), Morti의 스크립트로 포함 시키고, Program O 관리 페이지를 사용했습니다.
  4. 저는 Morti에 특별한 개성을 주고, ALICE의 악명 높은 “초록 드레스” 를 없애기 위해 상당히 많은 시간을(지금도 계속 하고 있습니다.) 패턴과 템플릿을 변경하는데 들였습니다.
  5. 저는 Program O 스크립트를 살펴보아서, 기능들을 향상 시키거나 확장하였고(이것도 마찬가지로 아직도 하고 있습니다.), 특징들을 추가하였습니다. 예를 들어 이름으로 사용자의 성별을 구분하는 기능(물론 완벽하거나 100%포괄적이진 않지만 꽤 잘 작동합니다.), 과 위키를 추가하고, 구글 검색을 추가하였습니다.
  6. ‘매우 많은’ 테스트를 하였습니다. 그리고 또 테스트를 하였고, 또 테스트를 하였고 또 테스트 또 또….

통틀어 저는 Morti에 아마도 지난 10달 동안 1000시간 이상의 시간을 투자했습니다. 첫 프로세스를 만드는 데에는 하루 정도 밖에 안 걸렸지만 말입니다. 나머지 시간들은 Morti의 스크립트를 실험하는데 사용했습니다; Morti의 응답을 조정하기 위해 스크립트를 고치고 업데이트를 하였습니다. 하지만 처음에 구상하였던 봇을 만들기 위해서는 지금도 갈 길이 멉니다. 제가 채팅봇을 만드는데 사용했던 방법은 엄청나게 많은 노력이 필요합니다. 하지만 당신이 스킬이 있고, 인내심이 있고, 헌신하겠다는 마음이 있으면 이 방법이 가장 보람있는 일이라고 장담합니다.

 

주석: – 이 글을 몇 개의 포스트로 나누어 났습니다. 계속되는 내용은 다음 글을 보세요. 

 



위 글은  Dave Morton의 글을 번역한 것으로, 저자의 동의 하에 번역된 것입니다.


댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함