Django 개발 일기 - 6
Chatterbot을 서버에 올릴때 문제
by HOON
Last updated on Feb. 20, 2024, 9:29 p.m.
Chatterbot 업로드시 버전 이슈
현재 개발 환경에서 Chatterbot 1.0.5 버전을 설치하였고, python은 당연하게도 venv 3.8.9 환경입니다.
여기에서 문제가 발생했습니다.
현재 제가 사용하는 aws 서버는 가장 저렴한 aws-lightsail 버전이고, 메모리 용량도 cpu 성능도 좋지는 않습니다.
개발환경인 로컬에서는 예쁘게 챗봇 형태까지 열심히 만들었으나, 버전이슈로 현재 업로드가 안되는 상황입니다..ㅠ
문제는 아래와 같습니다.
Chatterbot 1.0.5로 개발을 진행하였으며, 해당 버전은 여러 라이브러리를 필요로 합니다.
이 많은 라이브러리중 spacy의 2.1.9 버전에 문제가 생겼습니다.
이와같이 docker에서 설치 시 error code 137을 리턴하면서 killed 되는데, 해당 에러코드의 의미는 Docker의 메모리 부족 이슈입니다.
문제는 docker만의 문제가 아닌, 해당 spacy 2.1.9가 python 3.8버전에서 설치될 때 memory leaking 현상이 발생합니다.
spacy 2.1.9 메모리 누수
우선 혹시 몰라서 docker-compose.yml 파일에 메모리를 4기가로 제한을 해제했으나 역시나 마찬가지로 설치하면서 에러가 발생합니다.
시도한 방법은 아래와 같습니다.
1. chatterbot 버전 다운그레이드
2. spacy 버전 업그레이드 , 다운그레이드
3. Docker 파일 내 wheel, setuptools 추가
4. Chatterbot만 설치
현재 맞는 버전을 찾고있는 과정이며 찾는대로 업데이트를 진행하겠습니다..ㅠㅠ
잘하면 될지도..!
열심히 구글링하고 chatgpt하고 테스트 하면서 버전을 맞추는 과정에 있습니다.
현재 requirements.txt파일에 직접 pip list를 작성하지 않고, Dockerfile 내 build시에 불러오는 파일에
RUN pip install chatterbot==1.0.8
을 따로 작성해줬습니다.
docker-compose up --build 시 spacy 모듈을 찾지 못하여 따로 spacy도 추가로 작성해줬습니다만
현재 로컬에서 사용하는 버전은 chatterbot==1.0.5 , spacy=2.1.9 이고, 새롭게 진행중인 버전은 chatterbot==1.0.8 spacy==3.x 버전입니다.
build 시 spacy에서 아래와 같은 에러가 발생했습니다.
이전 버전 모듈에서는 "en" 이라는 단축이름으로 작성되어있었으나, 현재 버전에서는 full name을 작성하도록 변경이 된 것입니다.
따라서 모델 전체 이름인 "en_core_web_sm"을 작성 해야하고
python -m spacy download en_core_web_sm
이런식으로 따로 설치를 해줘야합니다.
설치 후 다시 이어서 블로그를 작성하겠습니다..!
ChatterBot
Leave a Comment: