NGMsoftware

NGMsoftware
로그인 회원가입
  • 매뉴얼
  • 학습
  • 매뉴얼

    학습


    딥러닝 딥러닝을 이용한 한글 챗봇 만들기. (kochat)

    페이지 정보

    본문

    안녕하세요. 엔지엠소프트웨어입니다. 챗봇(chat-bot)은 인간과의 대화에 자연스럽게 참여 하도록 설계된 소프트웨어 또는 시스템을 말합니다. 딥러닝과 인공지능(A.I)이 발달함에 따라 챗봇도 자연스럽게 발전 해왔는데요. 자연어 처리를 사용하여 사용자가 텍스트나 그래픽, 음성을 통해 웹서비스 또는 앱과 상호 작용할 수 있도록 도와줍니다. 챗봇은 크게 Open Domain과 Close Domain 서비스로 나눌 수 있습니다. Open Domain은 사용자와 잡답 또는 농담등을 주고 받을 수 있는 일상 생활형 서비스를 담당하고, Close Domain은 비즈니스와 업무 중심의 봇입니다. 업무라고 한다면... 법률 상담, 금융 상담이나 회사의 인프라팀(권한 신청, 서버 장애 조치 상황...), 여행이나 숙박 예약 관련등등이 있을 수 있습니다. 챗봇을 사용하려고 하면 사실 어디에 사용해도 무방하긴 합니다^^;

    ※ kochat 설치에 실패 했습니다. 참고로만 보시고, 혹시라도 성공한 분이 계시면 노하우를 공유 해주세요!!!

    KJES97z.png

     

     

    깃헙에서 챗봇으로 검색해보면 상당히 많은 오픈소스를 볼 수 있을겁니다.

    nsSF0KK.png

     

     

    대부분 딥러닝 기반으로 서비스하는 오픈 소스들입니다. 사용 편의성과 성능을 비교해보면 좋겠지만, 일단 한글을 지원하지 않기 때문에 대부분 테스트조차 하지 않았습니다. 이런 밴치마킹 활동들을 하다보면, 도입하려는 회사 또는 환경에 따라서 대부분 탈락하게 됩니다. 엔지엠소프트웨어 제품들도... 밴치마킹 단계에서 많이 탈락합니다-_-; 구독자 라이센스라는게 아직은 거부감이 상당히 크거든요. 아무튼~ 한글 챗봇 서비스하는 회사들도 월 요금으로 운영하고 있습니다. 보통 월 3만원 정도 하는거 같더라구요. 자~ 본론으로 돌아가서!!! 제목에도 적혀 있지만 kochat이라는 오픈소스를 찾았습니다. 한글이 가능한~ 챗봇이라고 설명이 되어 있네요. 개발자 깃헙은 [ 여기 ]를 클릭하면 직접 방문할 수 있습니다.

    w67RV2C.png

     

     

    Visual Studio Code에서 테스트 해볼까요? 우선 VSC를 실행하고, 가상 환경을 만들도록 하겠습니다. 가상 환경을 만드는 이유는 여러가지 다른 프로젝트를 진행하고 있어서, 패키지나 모듈이 충돌나는걸 방지하고 별도 공간에서 고유한 환경을 유지하기 위함입니다. 파이썬 가상 환경은 자체 사이트 폴더를 갖는 경량화된 가상 환경입니다. 우리가 흔히 알고 있는 VMware나 Virtualbox와는 다릅니다. 폴더만 격리되어 관리할 수 있도록 지원하기 때문입니다. 비주얼 스튜디오 코드에서 새로운 작업 영역을 선택하거나 만들어줍니다.

    vG4AS1v.png

     

     

    kochat_workspace 폴더를 하나 만들어주세요.

    UDRgOT6.png

     

     

    아래 명령으로 가상 환경을 만드세요. "kochat"은 폴더 이름으로 아무거나 만들어도 됩니다.

    python -m venv kochat

    UzRk6KA.png

     

     

    Ctrl+Shift+P를 누르고, "Python: Select Interpreter"를 선택하세요. 이 단축키는 Show all commands로 VSC에서 사용할 수 있는 모든 명령어를 입력 할 수 있습니다. Process Explorer를 입력하면 메모리 상황창이 표시됩니다. VSC를 사용하다가 느려지면 필요없는 프로세스 kill해서 삭제할 수 있습니다. Show Running Extensions를 입력하면 VSC에서 사용하고 있는 확장을 모두 확인할 수 있습니다. 이외에도 유용한 명령들이 많으니 시간날 때 하나씩 알려드리도록 할께요.

    5FeM8TZ.png

     

     

    인터프리터 선택을 클릭하면, 위에서 만든 가상 환경이 표시되는걸 볼 수 있습니다. kochat: venv를 선택하세요!

    L2fOu4H.png

     

     

    열려있는 터미널을 종료하고, Ctrl+` (콘트롤+그레이브)를 누르면 터미널이 다시 실행 됩니다. 아래 그림처럼 폴더 경로 앞에 가상 이름인 kochat이 표시됩니다.

    x7AT3fn.png

     

     

    kochat 깃헙에서 소스를 다운로드 받아줍니다.

    OUxnYiZ.png

     

     

    압축을 풀고, kochat 폴더에 복사합니다. 그리고, kochat에서 사용할 패키지들을 다운로드 받아야 합니다. 코챗 개발자가 설치해야 할 패키지를 정리해 두었으므로, 아래 명령으로 쉽게 설치할 수 있습니다. 저처럼 이것저것 설치해서 사용하거나 패키지가 중복되서 디팬던시 문제가 발생한다면 버전을 삭제하고 다시 하면 정상적으로 설치가 될겁니다.

    pip install -r requirements.txt

    VaQQ2cI.png
     

     

    패키지가 모두 설치되었으면 demo 폴더 안에 application.py를 실행하세요. application 서버 주소가 표시됩니다. 서버로 접속해보세요.

     

     

    우선, 설치 요구 사항을 보니 파이썬 3.8까지만 지원하는듯 보입니다. 제 컴퓨터 환경은 파이썬 3.9라서 그런지 디팬던시 에러가 많아서 실행되지 않는군요. 간단하게 pip install kochat으로 설치해도 되지만, 이것도 제 컴퓨터 환경에서는 실패했습니다. 간단할줄 알았는데... 허무하군요. 버전에 따라서 종속성 문제를 하나씩 해결하다가 마지막에 포기했습니다. 참고로, 모듈 에러가 발생하면 아래와 같이 최상위 폴더를 참조할 수 있도록 코드를 수정해야 합니다.

    # application.py
    import sys
    sys.path.append('kochat이 설치된 최상위 폴더')

     

    이외에도 torch 패키지도 추가해줘야 합니다. 그리고, kocrawl도요. 마지막으로 형태소 분석기 패키지 konlpy도 설치해야 합니다.

    pip install torch
    pip install kocrawl
    pip install konlpy

     

    음... 여기까지 해도 정상 동작하지 않을텐데요. 자바 기반으로 만들어진 패키지인듯 합니다. [ 여기 ]에서 패키지를 다운로드 받아서 설치해야 합니다. 물론, 파이썬 버전에 맞게 해야 하죠^^; 항상 느끼는 거지만 오픈소스를 가져다가 사용하는건 쉽지 않은거 같습니다. 문제에 직면했을 때 해결하기가 쉽지 않거든요ㅠㅠ; 그래서, 검증된 솔루션을 채택하려는 경향이 강합니다. 문제에 대해서 서비스를 받을 수 없기 때문에 개발자가 야근하면서 어떻게 해서든 해결해야 하니까요. 회사에서 진행하는 프로젝트라면 어떻게 해서든 처리해보려고 노력하겠지만... 한두시간 걸릴줄 알았던 내용이 4시간을 넘어가니 자연스럽게 포기하게 되네요.

     

    개발자에게 후원하기

    MGtdv7r.png

     

    추천, 구독, 홍보 꼭~ 부탁드립니다.

    여러분의 후원이 빠른 귀농을 가능하게 해줍니다~ 답답한 도시를 벗어나 귀농하고 싶은 개발자~

    감사합니다~

    • 네이버 공유하기
    • 페이스북 공유하기
    • 트위터 공유하기
    • 카카오스토리 공유하기
    추천0 비추천0

    댓글목록

    등록된 댓글이 없습니다.