먼저 streamlit이 뭐냐면,
python 기반으로 ML/DL, 데이터 관련 엔지니어가 쉽게 웹사이트 배포해주는 프레임워크. 장점은 간단하다는 것이다.
(2)편에 이어 한번 가보자.
pip install streamlit
streamlit 웹 화면 확인
streamlit hello
pip install watchdog
내가 test해보려던건 csv파일 로더였지만,, 우선 G까지 플로우 따라해보는게 목표이기 때문에, 테디노트님 코드 그대로 복붙했다.
embedding부분은 openai api가 없고 한국어로 데이터라 무료 한국어 embedding 모델을 찾아봐야한다..했는데,
다행히? 테디노트님께서 올려주신 코드에 디폴트 임베딩모델을BAAI/bge-m3 모델로 해주셔서 그대로 코드 진행시키면 될것같다.
위 모델이 무료이고 한국어도 지원해주는 다국어 임베딩모델이라고 한다. 임베딩모델,,,토크나이저,,, 언제공부할래?쫌
터미널 두개 켜서 아래 코드 각자 실행시켜뒀는지 확인하고!!
python3 server.py # langserve 호스팅 주소 실행시켜두기
ngrok http --domain=pika-innocent-terrier.ngrok-free.app 8000 # ngrok 포트포워딩 활성화시켜두기
streamlit 명령어 실행시키면..
streamlit run main.py
끝말잇기하자고 했더니 끝나지가 않는다....
덕분에
local GPU 잘 돌아가고 있는 것도 확인했다.
이번에는 RAG를 해보겠다!!!
streamlit 인터페이스에서 원하는 PDF파일을 올리면 되는데,,,,
역시나 이번에도 에러발생.
구글에 그대로 검색하니 POPPLER가 없어서 그랬던것...
다른분의 블로그를 참고하여 다운로드받고 경로 환경변수 실행해주었다..
근데 환경변수 지정하는게 혼란이었다.
poppler 폴더를 window에 넣어두고 wsl에서 끌어다쓸려고 했는데, 왜때문인지 계속 에러나서 그냥 poppler폴더를 wsl로 들고와서 .bashrc 파일에 PATH 환경변수를 입력해주었다.
sudo vim ~/.bashrc
source ~/.bashrc
echo %PATH
그런데도,,
에러 해결 못했다.
해결방법은 poppler 패키지를 설치하는 것인데, OS마다 설치방법이 다르기 때문에 공식문서 확인해야한다. WSL은 리눅스따라 간단히
conda install -c conda-forge poppler
이렇게 작성하면 되었다.(별거다했는데, 사실 별게 아니었음;)
그런데,,, 또 다른 에러 생김
pip install tesseract 로 콘다환경에 패키지 설치해도 안됨.
다시 찾아보니, 가상환경이 아니라, OS 자체에 Tesseract를 설치해주어야하는 것이었다.
sudo apt install tesseract-ocr
sudo apt install libtesseract-dev
이렇게 실행하고 다시 stremlit ui에서 pdf파일 올려보니 대화가 뜬다...!!!! Window환경에서는 terract 파일을 직접 다운받아야하는데, linux는 더 간편했다....
이렇고 이제
갑자기 SSEError가 나서,,,
어디서 문제인지 몰라 langchain 단톡방에 질문하고 테디노트님이 실시간 등장하셔서 도와주셨는데,,,,,,,
생각해보니 내가
ngrok 포트포워딩을 안해준것이었다..... 파르르를르르르르르르ㅡ릉ㄹㄹ으 결국은 tesseract 쟤도 이것저것 할필요없었던 것이지.....
하...
포트포워딩 활성화하고, pdf 파일 넣어 질문하니 답변성능은 별로더라도, 읽어오기는 하더라 그리고, 오래된 노트북에서 ngrok 호스팅 주소로 들어가니 실제로 돌아가서 신기했다. 사람들이 내가 만든 AI 서비스를 이용해보는 날이 오면 얼마나 좋을까!!
이렇게 한번 쭉 따라오는 건 일단 완료..근데 이게 4일이나 걸릴 일이냐고....
다시 한번,,,, 테디노트님께 영상 올려주심과 실시간 답변 해주심에 깊은 감사드립니다......
좋은 글 공유 감사합니다~🙏