본문 바로가기
Project/명지대학교-입학관리팀챗봇-MARU_EGG

LLM모델-RAG 방식 챗봇 - pdf 문서 파싱

by 지식을 쌓는 개구리 2024. 7. 4.

포커스 - 중요한 것은...

RAG 방식으로 LLM 챗봇을 만들 때 가장 중요하다고 생각하는 부분은 바로 문서의 파싱, 임베딩 과정이다.

지금 개발해야할 부분은 입학관리팀에서 진행하던 입시생분들의 질문을 답변해줄 챗봇을 만드는 것이기에

그 답변에 있어 모호한 점이나 틀린 부분이 있어서는 안된다.

잘못된 정보로 답하는 순간 큰 문제를 야기할 수 있기 때문이다.

답변의 정확성과 신뢰성은 필수적이다.

 

그렇기에 제대로된 데이터를 잘 분리해내야하는데...

 

챗봇이 정확한 답변을 제공하려면 먼저 기반이 되어야 할 것은 바로 문서를 정확하게 파싱하고 임베딩하는

과정이 필요하다. 하지만..

일반적인 학사지원, 입시관련 자료들은 타 학교와 같이 보기좋게 데이터가 가공되어 표나 그래픽적인 요소들에

감싸져 있기에 그것이 쉽지가 않다. -> 파싱과정을 복잡하게 만든다.

 

문제인식

처음에는 pdf를 파이썬 라이브러리(PdfReader, Camelot까지 사용하여)로 뽑아보았으나

문제는 표를 인식하지 못하고 뒤죽박죽으로 데이터가 딸려나왔다.

 

문제를 해결하기위해 팀원들이 고민하다 나온 차선책은 바로 pdf형식이 아닌 html형식의 입시자료를 기본 파싱대상 자료로

두자고 의견이 나왔고 결과는 나쁘지 않았다.

BeautifulSoup 라이브러리를 사용했고, html 특성상 table 태그로 계층적인 구조로 잘 나뉘어져있었기에

=> 이와 같이 표의 형식을 잘 지키면서 데이터가 뽑아져나오는 것을 확인할 수 있다.

 

기본적으로 데이터가 보기에는 모호하지.. 않게 나온것 같지만 이를 기반으로 문서의 임베딩이 진행되는데

이걸 llm모델이 이해를 하고 답변을 할 수 있을지는 의문이다.

아무튼 기본적인 html파일을 기반 드래그 앤 드롭하여 문서 파싱까지 진행해보았다.

 

앞으로의 to-do-list는 이를 기반 llm모델과 연결하여 rag방식으로 잘 질의응답이 되는지 테스트를

진행해 볼 것이며 이를 일반화하고 API로 만들어 백엔드에서 개발 진행을 할 수 있게 하는 것이다.

 

잘.. 될 것이라 생각하고 일단 해보자

또 하면서 많이 배우게 될 것 같아 설렌다!