안녕하세요.
학습 내용 너무 잘 듣고 있습니다.
관련 기술을 이용해서 작은 작업을 하고 있는데, 데이터를 어떻게 저장을 해야 하는지 감이 안와서 글을 남깁니다.
지금 각 대학별 입학 모집요강 관련 데이터를 저장해서 검색을 해보려고 시도하고 있습니다.
고려대학교, 연세대학교 등 각 사이트에서 모집요강 pdf를 이용해 각 페이지별로 벡터 디비에 저장을 했습니다.
근데 하다보니깐, pdf의 내용이 각 대학별로 다르고 양도 많아서 데이터를 규칙이 있는 상태로 만들어서 데이터를 저장을 해야 할 거 같은데요.
질문1) 각 대학별로 데이터를 한번 다듬어서 저장을 하고 싶은데요, 이런 경우에는 실제로 어떤 방법으로 하면 좋을지 조언 부탁드리겠습니다.
질문2) 데이터가 저장 되면 청크 단위로 저장이 되었을 경우, 예를 들어
고려대학교-청크1,청크2,청크3,청크4...
연세대학교-청크1,청크2,청크3,청크4...
이렇게 다건으로 저장이 될텐데,
질문을 '서울에 있는 대학 모집 정보를 알고 싶어'(포괄적질문), '고려대학교 입학 조건을 알고싶어'(조건적질문) 등으로 한다면,
각 청크가 각 대학별 정보라는걸 추적해서 하나의 정보로 봐야하는데, 이런 경우에는 데이터 관리를 어떻게 해야하는지 조언 부탁드리겠습니다.
안녕하세요. 판다스 스튜디오입니다.
여러가지 방법이 있겠지만 빠르게 접근할 수 있는 방법으로는 다음과 같은 방법이 가능합니다.
질문1) pdf 문서를 가져와서 필요한 정보를 추출해서 메타데이터로 구조화해서 저장합니다. 정보를 추출하는 과정에서 정규표현식 등을 사용해서 규칙 기반으로 추출하거나 LLM을 사용할 수 있습니다.
질문2) 각 청크의 메타데이터에 대학명을 추가합니다. 각 대학별 벡터저장소를 생성하여 저장하고, 이를 ParentDocumentRetriever 구조를 사용하여 상위 계층을 추가하여 통합합니다. 문서 검색 단계에서 메타데이터 필터를 적용하여 특정 대학에 관한 문서를 검색할 수 있습니다. 또는, 라우팅 구조를 사용하여 대학별 벡터저장소에서 문서를 가져와서 답변을 생성하는 것도 가능합니다.
문서의 계층 구조, 즉 문서 간의 관계를 표현하는 좋은 방법으로는 지식그래프 기반의 Graph Database를 사용하는 방법이 있습니다. 이 부분도 찾아보시면 좋을 것 같습니다.
감사합니다.
답글