python

[GPT] Data Loaders and Splitters

으누아빠 2024. 4. 2. 17:09
반응형

RAG


"Retrieval-Augmented Generation"의 약자로, "검색-증강 생성"이라는 의미 
개인으로부터 제공된 data를 사용하거나 탐색함으로써 language Model의 능력을 확장

 


Retrieval[검색]


langchain 모델
소스[여러가지 데이터] => Load =>Transform[변환 및 분할]=>Embed[텍스트의 숫자화] => store[저장]=>Retrieval[검색]

문서를 읽어들이는 방법

 

1. TextLoader

 

 

PDF를 읽기위한 PyPDFLoader 등등이 있음

 

이처럼 각각의 파일마다 다른 class를 호출하다는 대신  UnstructuredFileLoader를 이용하는것이 효율적임

 UnstructuredFileLoader


패키지를 사용하여 다양한 유형의 파일을 로드

현재 텍스트 파일, 파워포인트, HTML, PDF, 이미지 등의 로딩을 지원

 

 

RecursiveCharacterTextSplitter

이 텍스트 분할기는 일반적인 텍스트에 권장되는 방식

이 분할기는 문자 목록을 매개변수로 받아 동작

분할기는 청크가 충분히 작아질 때까지 주어진 문자 목록의 순서대로 텍스트를 분할하려고 시도

기본 문자 목록은 ["\n\n", "\n", " ", ""] 

옵션

chunk_size: 반환할 최대 청크 크기
chunk_overlap: 청크 사이에 문자로 겹침
length_function : 주어진 청크의 길이를 측정하는 함수
keep_separator : 구분자를 청크에 보관할 것인지 여부
add_start_index: 'True'인 경우, 청크의 시작 인덱스가 메타데이터에 포함
strip_whitespace: 'True'인 경우 시작 부분과 끝 부분에서 공백을 제거

 

load_and_split

문서를 로드하고 청크로 나눕니다. 청크는 문서로 반환됩니다.

 

 

 

CharacterTextSplitter

RecursiveCharacterTextSplitter 대신 CharacterTextSplitter를 이용하여 원하는 문자열을 이용한 문단을 나눌 수 있음

 

 

'python' 카테고리의 다른 글

[GPT] Vectors  (0) 2024.04.03
[GPT] Tiktoken  (0) 2024.04.02
[GPT] LCEL Based Memory  (0) 2024.03.30
[GPT] Chat Based Memory  (0) 2024.03.30
[GPT]Memory on LLMChain  (0) 2024.03.29