인프런 커뮤니티 질문&답변

김덕배홀란드님의 프로필 이미지
김덕배홀란드

작성한 질문수

모두를 위한 대규모 언어 모델 LLM(Large Language Model) Part 2 - 랭체인(LangChain)으로 나만의 ChatGPT 만들기

Data Loader 관해서

작성

·

238

0

대용량 데이터를 벡터디비에 넣기 위해 PDF, MD, 웹스크래핑 등 다양한 데이터가 있는데요 pdf 도 몇십개 md 파일도 몇십개 웹스크래핑은 그냥 리스트로 묶으면되는거 같은데 이 외에는 반복문으로 로드시켜서 코드를 구현하는건지 궁금하고,

Pdf document, md document, web document 가 생겼을때 이 셋을 어떻게 머지하는지가 궁금합니다.

답변 2

1

AISchool님의 프로필 이미지
AISchool
지식공유자

안녕하세요~. 반갑습니다.

 

pdf, md document, web document 형태의 텍스트가 있을 경우 각각 대응되는 로더를 이용해서 텍스트를 로드한뒤에(대응되는 로더를 이용해서 로드해서 최종적으로 Document 클래스의 page_content에 텍스트가 들어가있는 형태로 만들어주시면 됩니다.)

 

각각 원본 소스에서 불러온 Document 클래스들의 리스트를 만든뒤에 해당 Document 클래스들의 리스트(아래 예제 코드에서는 docs)를 임베딩모델을 지정한뒤에 아래 from_documents 함수의 documents 인자값 부분에 넣어주시면 됩니다.

vectorstore = Chroma.from_documents(documents=docs, embedding=embedding_model)

 

여러개의 xml 파일들을 Document 클래스들의 리스트로 만든뒤에 임베딩 변환해서 저장하는

[섹션 10. 나만의 ChatGPT 만들기 실습 1 - 판사GPT(JudgeGPT) 만들기] 챕터의 colab 코드를 참조하세요.

 

좋은 하루되세요.

감사합니다.

0

안녕하세요, 인프런 AI 인턴입니다.
김덕배홀란드님, 대규모 데이터를 벡터 데이터베이스에 삽입하기 위한 과정에 대해 궁금증을 가지셨군요.

PDF 파일, MD 파일, 웹에서 스크래핑한 데이터를 벡터 데이터베이스에 넣기 위해서는 각 파일 형식에 맞는 파서(parser)를 사용하여 데이터를 읽은 후 적절한 포맷으로 변환하여 저장하는 과정이 필요합니다. 파이썬에서는 pdfminer, markdown, BeautifulSoup 등 각종 라이브러리를 이용해 해당 파일들의 내용을 추출할 수 있습니다.

데이터 머지에 관해서는, 각각의 데이터를 하나의 표준화된 데이터 모델로 변환해야 하며, 이는 예를 들어 JSON이나 데이터베이스 내의 특정 스키마 형태일 수 있습니다. 모든 문서의 내용을 통일된 형태로 변환한 후 거기에 메타데이터를 추가하여 어떠한 문서인지 구분할 수 있도록 처리해야 합니다.

PDF, MD 파일과 같은 정적 파일을 처리할 때는 보통 파일 시스템을 순회하는 반복문을 통해 파일을 순차적으로 읽고 처리하는 코드를 작성합니다. 웹스크래핑한 데이터도 유사하게 리스트나 다른 데이터 구조를 통해 반복적으로 처리할 수 있습니다.

데이터를 병합하는 구체적인 코드는 사용하고자 하는 프로그래밍 언어와 데이터베이스, 라이브러리에 따라 다를 수 있기 때문에 추가적인 리서치가 필요합니다. 만약 Python을 사용한다면, pandas 라이브러리를 사용해 데이터프레임으로 변환한 후 병합(merge) 및 연결(concatenate)하는 방법을 고려해 볼 수 있습니다.

이 내용이 김덕배홀란드님께 도움이 될 수 있기를 바랍니다. 좀 더 자세한 도움이 필요하시다면, 인프런 로드맵을 활용하여 관련 과정을 찾아보시거나 직접 문의하시는 방법도 있습니다.

김덕배홀란드님의 프로필 이미지
김덕배홀란드

작성한 질문수

질문하기