개발 일상(Dev)

챗봇_KoChat Demo 실행해보기 (feat.Window)

Roovelo 2024. 8. 10. 11:29
 

챗봇 시리즈1 - 한국어 챗봇 프레임워크 Kochat 소개

챗봇에 대해서 한번 알아보라 라는 미션이 생겼습니다. 일단 검색부터 해보니까 한국어를 잘 처리하는 목적으로 만들어진 Kochat 이라는게 있다고 하더라고요. 그래서 구글링부터 해봤는데 일단

root-code.tistory.com

앞선 글에서 Kochat이라는 오픈소스 챗봇 프레임워크를 소개했었습니다.

그래서 이번 글에서는 소개에 이어서 이 chatbot의 Demo를 실행해 본 내용을 적어보려고 합니다.

결론은 저번 글 말미에도 적었지만 "실패" 했습니다. ㅠㅠ


Kochat Github 살펴보기

우선 구글에서 kochat이라고 검색을 하면 github 주소가 나옵니다.

 

GitHub - hyunwoongko/kochat: Opensource Korean chatbot framework

Opensource Korean chatbot framework. Contribute to hyunwoongko/kochat development by creating an account on GitHub.

github.com

 

소스 다운로드

kochat github page image
코챗 깃헙 페이지

ZIP 파일로 다운로드를 했고요.

 

 

kochat demo file list
코챗 소스 다운로드 후 압축 해제 한 폴더

압축을 풀어보면 이렇게 파일들이 있습니다.

저는 폴더 이름을 kochat-test로 적었습니다.

 

IDE로 kochat 프로젝트 열기

파이참에서 코챗의 README.md 파일이 열린 모습
파이참에서 연 코챗 프로젝트

이번 Demo를 실행시켜 볼 때 IDE는 파이참을 사용했습니다. 파이참은 처음 사용해 봤는데 확실히 IntelliJ를 만든 회사의 제품답게 훌륭한 것 같습니다.

 

파이썬 버전 = 3.7

파이참 우측 하단 메뉴 열림 이미지
파이참 우측 하단 인터프리터 설정

파이썬은 3.7 버전을 사용했고 아나콘다라는 게 있어서 그걸 써볼까 했는데 그냥 IDE의 기본 기능을 통해서 실행해 보기로 했습니다. 

가상환경이라는 개념도 이번에 처음 알았는데 파이썬 개발환경에서 만들어지는 이 가상환경이라는 게 조금 이해하고 나니까 확실히 편리한 기능인 것 같습니다.

우선 위 이미지에 있듯이 화면의 우측 하단에서 interpreter 설정을 할 수 있는 메뉴를 누른 후에 Interpreter Settings... 을 클릭해서 아래와 같이 세팅을 했습니다. 

 

파이참의 Add python Interpreter 화면
회사에서 테스트 했는데 회사명이 PC에 셋팅 되어있어서 경로 중 모자이크가 있습니다.

이 화면에서 이제 Conda, 즉 아나콘다를 이용한 환경을 선택하거나 새로 가상환경을 만들어주거나 할 수 있는데요.

저는 파이참에서 제공해 주는 가상환경 만들기를 선택했고 venv라는 이름의 가상환경을 설정하기로 했습니다. (가상환경이 만들어지는 폴더명이라고 보면 될 것 같습니다.)

 

Creating Virtual Environment 창

위의 화면에서 OK를 누르고 나면 이렇게 Creating Virtual Environment라는 진행 창이 뜨고요. 좌측 폴더 목록에 보면 원래 없던 폴더가 이제 생성됩니다.

 

venv폴더가 생성된 파이참 IDE화면

좌측에 보면 주황색 배경으로 티 나게 venv라는 폴더가 생성되었습니다. 그리고 우측하단을 보면 상태바가 있는데 가상환경을 만들면서 이제 필요한 나머지 소스나 라이브러리 등을 다운로드하는 중이기 때문에 저 상태바의 작업이 모두 완료된 후에 다음 작업을 해야 에러 없이 잘 작동하는 것 같습니다.

 

vent 가상환경 폴더가 만들어진 파이참의 터미널이 열린 화면 이미지

터미널을 열어보면 좌측 끝에 (venv)라는 글자가 있는 게 보일 텐데 지금 터미널이 저 (venv)라는 환경에 실행된다는 뜻입니다.

저 venv 폴더에 파이썬과 각종 라이브러리들이 다운로드되어서 폴더 전체를 그냥 옮기면 실행시킬 수 있게 되는 그런 느낌입니다.

 

 

kochat requirements 경고 메세지 화면

그리고 가만히 이제 놔두면 이렇게 경고 메시지가 와장창 뜨는데요. kochat에서 필요하다고 설정해 둔 라이브러리들이 없다는 경고 메시지입니다. 

그리고 사실 이 문제 때문에 실행이 안됩니다.

저 필요한 라이브러리들은 터미널을 이용해서 다운로드해도 되고, 아니면 파이참의 기능을 이용해서 다운로드해도 되는데요. 일단 kochat의 깃헙 페이지를 다시 한번 확인해 보도록 하겠습니다.

 

kochat 깃허브 페이지 Readme.md 파일 캡쳐

Requirements에 대해서 설명이 나와있는데요. 일단은 Pytorch라는 게 필요하다고 합니다. 그리고 저 화면의 여기를 클릭하면 해당 프로그램을 받을 수 있는 사이트로 연결됩니다.

 

PyTorch 설치 명령어를 만드는 화면

전 windows에서 pip, 즉 터미널로 설치를 할 거고, 파이썬에서 CPU로 (그래픽카드가 따로 없을 때라고 보면 되는데 보통 이걸로 설치하는 것 같습니다) 설정을 하니까 저 마지막 Run this Command라는 부분이 나오고요. 이제 저 명령어를 복사해서 아까 파이참의 터미널에서 실행을 하면 됩니다.

근데 이제 여기부터 문제가 발생합니다. 저 명령어로 다운로드를 하면 Pytorch는 2.3.1 버전을 다운로드하게 되는데 kochat에 달려있는 라이브러리들과 호환이 안됩니다.  

 

PyTorch 와 kochat 의 라이브러리들의 호환 버전을 chatGPT에게 물어본 화면

 

그래서 kochat에 있는 라이브러리들의 이름과 버전을 다 적은 후에 그것과 호환되는 pytorch 버전을 물어보니까 1.5.0을 설치하라고 하네요. (챗지피티 말고도 검색도 해봤는데 저 버전이 얼추 맞는 것 같습니다)

 

1.5.0 버전의 pytorch를 설치하려고 시도하는 이미지 -> 실패함 -> 이제 1.5.0은 지원하지 않음

그래서 이제 1.5.0 버전을 설치하려고 하니까요. 이제 저 pytorch가 1.5.0 버전을 지원하지 않습니다. ㅋㅋㅋㅋ

 

pytorch 1.7.0버전 설치 화면

그래서 어쩔 수 없이 pytorch 최소 지원 버전인 1.7.0 버전을 설치했습니다.

 

kochat의 깃허브 pip install 설치 설명화면

그리고 다시 깃허브 페이지를 확인해 보니까 pip로 kochat을 다운로드하라고 합니다. 그에 딸린 디펜던시들도 설명이 있고요.

 

pip install kochat 실행하니 발생하는 에러 화면
Could not build wheels for JPype1 메세지

위에 나와있는 pip install kochat을 실행시키니까 에러가 납니다.

 

파이참의 기능으로 디펜던시들을 설치

뭔가 pip install kochat 명령어로 그에 딸려서 다운로드되는 디펜던시들이 제대로 다운이 안되니까 파이참의 기능으로 다시 시도해 봤습니다.

 

파이참이 디펜던시들을 모두 무사히 다운로드 해줌

파이참으로 디펜던시들을 받으니까 무사히 다운로드되는 것 같습니다.

 

파이참이 디펜던시들을 무사히 다운로드 중

그리고 오! 모두 다 설치가 됐다고 나오네요. 는 아래쪽에 보면 Updating  진행바가 있는데 저게 다 되고 적용되는데 까지 좀 기다려야 됩니다. 

 

flask에 빨간줄이 나오지만 디펜던시들은 무사히 다 설치된 것 같음

빨간 줄이 있긴 하지만 디펜던시는 다 받은 것 같은데? 해서 실행을 해봤습니다.

 

application.py 파일을 파이썬으로 실행

application.py 파일을 실행시키면 됩니다.

그리고 발생하는 에러.  아까 위에 빨간 줄이 있던 flask를 찾을 수 없답니다..

 

찾을 수 없다는 flask 를 터미널에서 다시 설치. 버전을 kochat 설명서에 있던 1.1.2 버전으로 설치

터미널로 이제 다시 돌아가서 flask를 설치했습니다. 버전은 kochat설명서에 있던 1.1.2 버전을 설치했는데요. 여기부터 무한 굴레가 시작됩니다.

 

flask 1.1.2 버전 설치 후 경고 메세지 및 빨간 줄이 모두 사라진 파이참IDE

다행히 터미널로 flask 1.1.2 버전을 설치하니까 IDE의 빨간 줄 및 경고 메시지가 다 사라졌습니다. 진짜 문제가 다 해결된 것 같습니다.

 

다시 실행하니까 바로 또 에러 메시지.

jinja2 가 제대로 불러와지지 않는답니다.

 

 

jinja2 version 확인. 설치된 jinja2 = 3.1.4 version

설치된 jinja2 버전을 확인해 보니 3.1.4라고 합니다.

chatGPT에게 한번 물어봤습니다.

jinja2 와 flask 1.1.2 의 버전을 맞추려면 jinja2를 2.11.3 버전으로 변경해야 한다는 chatGPT의 응답

예. 버전이 안 맞답니다. 그래서 또 버전을 맞춰줍니다.

 

jinja2 버전을 맞추고 실행했는데 markupsafe에서 문제가 있다는 에러 메세지 발생

버전 맞추고 다시 실행. 이제 이게 무한 반복인데요. jinja2 버전을 맞추고 실행하니 markupsafe문제랍니다.

 

markupsafe=2.0.1을 설치하라는 chatGPT

다시 또 버전을 확인하니까 얘는 2.0.1을 써야 된답니다.

 

markupsafe버전을 확인해보니까 2.1.5가 설치되어 있음

예. 버전을 확인해 보니까 역시나 더 높은 버전인 2.1.5가 설치되어 있네요. 계속 반복해서 알려준 버전을 찾아서 설치합니다.

 

markupsafe 버전을 맞춰서 다시 실행하니까 itsdangerous의 문제 발생 에러 화면

다음 문제 발생 라이브러리는 itsdangerous

 

itsdangerous = 1.1.0 으로 맞추라는 메세지

계~속 버전을 맞춰줍니다.

 

itsdangerous 의 버전을 잘 맞추고 난 뒤의 확인 화면

이건 이제 버전을 맞추고 나서 확인한 터미널입니다. 1.1.0으로 잘 맞췄습니다.

 

werkzeug 에서 에러가 발생

다음 에러 발생은 werkzeug 라이브러리

werkzeug=1.0.1 로 맞추라는 메세지

무한으로 그냥 계속 버전을 맞춰줍니다...

 

werkzeug 1.0.1 로 잘 맞추고 확인 한 화면

버전을 다시 잘 맞게 다운로드했습니다.

 

torch가 버전이 안 맞다고 에러 메세지 발생

실행하면 또 에러 납니다. 이번엔 또 뜬금없이 torch에서 나는데.. 아까 제일 처음에 버전을 맞췄거든요. 근데 다시 다른 라이브러리르 맞추니까 얘가 버전이 안 맞다고 나옵니다.

 

torch 설치 된 버전 확인 = 1.13.1

그래서 사실 여기를 다시 버전을 또 맞추면?? -> 다시 또 제일 처음 맞췄던 flask나 다른 디펜던시들의 버전이 안 맞다고 에러가 나옵니다. 

그리고 그걸 또 버전을 맞추면? -> 아까 맞춘 게 버전이 안 맞음 -> 또 맞춤 -> 되던 게 또 안됨 의 무한 굴레였습니다.

그래서 윈도에서는 실행 포기!

 

근데 또 리눅스에서는 됩니다?!

웃긴 건 제가 구름 IDE에서도 이걸 한번 해봤었는데 거기서는 리눅스로 실행을 했거든요. 그런데 리눅스에서는 또 그렇게 그다지 큰 문제없이 몇 개의 디펜던시만 버전을 바꾸니까 실행이 되는 걸 확인했습니다.

 

하지만 지원이 종료된 것으로 보임

근데 kochat 깃허브를 보니까 마지막 수정이 거의 3년 전이고요. 그래서 저 라이브러리들과 디펜던시들이 지금 버전이 다 안 맞는 문제가 발생하는 것 같습니다. 저는 이 블로그에 적은 내용 말고도 다른 방식으로 이것저것 많이 시도해 봤는데 의존성과 버전 문제 때문에 어떻게 실행은 하더라도 앞으로 꾸준히 사용하기에는 어려울 것 같다고 판단했고요. 다른 오픈 소스 프레임워크들도 많기 때문에 kochat은 그냥 여기까지 시도만 해보고 접기로 했습니다.

 

결론

결론 : kochat은 최신 업데이트가 되고 있지 않기 때문에 라이브러리들의 버전이 제대로 호환되지 않아서
실제로 사용하기에는 문제가 많아 보인다. 다른 오픈 소스를 찾아봐야 할 것 같다.


728x90