[2024-1 KGU Capstone Project] koBERT 모델을 이용한 다중 분류 모델
🚀 Run pytorch Classification model on Flask Server
🚀 Connect SpringBoot & Flask
1. ⚙️ Environment Settings
2. 🏃🏻♀️ Run Flask Server
3. 🍃 SpringBoot 연동 Test
1. Download Python 3.7.9 if not exist
- Windows x86-64 executable installer
- 설치 경로 ex. (C:\Python37)
2. VSC settings > python.python path 검색
3. 가상환경 생성 (create virtual env)
- 빈 폴더 (C:\KGU\model) 생성 → vsc에서 file > open folder
- In VSC terminal
$ python -m venv test
# test 이름의 가상환경 생성- 잘 생성되면 model 밑에 test 폴더 생김 (C:\KGU\model\test)
4. pyvenv.cfg 확인
home = C:\Python37 # (1.에서 설치한 Python 3.7.9 path)
include-system-site-packages = true
5. 가상환경 실행
$ cd test
$ cd scripts
$ activate.bat
# 종료 시 deactivate
6. Python interpreter : test
- 위에서 만든 가상환경(test)으로 지정
- 단축키 [ctrl + shift + p] 에서 python interpreter 검색
- 안보일 경우 refresh 🔃
- 잘 설정이 된 경우 밑에서 app.py 파일 열면 우하단에서 확인 가능
7. File Setting ➡️ 모두 test 폴더 내로 (C:\KGU\model\test)
- for-me-classification repository 파일 다운로드
app.py
model.py
requirements.txt
- 1_made_test_state.pt 파일 다운로드
8. requirements 설치
# requirements.txt 파일이 있는 경로(test)에서 실행 - 상위 폴더로 이동 = $ cd..
# target path = YOUR_VENV_PATH
$ python -m pip install -r requirements.txt --target C:\KGU\model\test\Lib\site-packages
- 위와 같이 에러 나와도 👌🏻🆗
- 여기까지 설정이 모두 완료 되면 ⬇️
📦model
├── 📂test
│ ├── 📂__pychache__
│ ├── 📂Include
│ ├── 📂Lib
│ ├── 📂Scripts
│ ├── 📜1_made_test_state.pt
│ ├── 📜app.py
│ ├── 📜model.py
│ ├── 📜pyvenv.cfg
OSError ~ : Illegal byte sequence Error
아래와 같은 형식의 오류- 원인 : 경로에 한글이 있어서 나는 에러
- 해결 : ⬇️
1. C:\KGU\model\test\Lib\site-packages\sentencepiece_init_.py 수정
def LoadFromFile(self, arg):
try:
arg = arg.replace("\\","/")
return _sentencepiece.SentencePieceProcessor_LoadFromFile(self, arg)
except OSError:
# YOUR_PT_FILE_PATH
path = "C:/KGU/model/test/" # test ; your virtunal env name
arg = path + arg.split("/")[-1]
return _sentencepiece.SentencePieceProcessor_LoadFromFile(self, arg)
2. 파란 라인 경로 따라가서 해당 파일 복사 → test 파일 내에 붙이기
- test 파일 외 다른 곳에 위치시키고 싶다면 위의 except문 path 수정!
- Flask
↔️ SpringBoot 데이터 주고 예측값 받기
1. Flask 서버 켜기
- 가상환경 실행
- app.py 실행
- 확인 :
localhost:5000
2. for-me Spring 서버 켜기 (Backend)
localhost:8080/api/checklists
에 데이터 POST (postman 이용)
{
"name": # YOUR_CHECKLIST_TEST_DATA
"user_id": # YOUR_TEST_ID
}