의미 기반 분할
지금까지 사용한 분할 전략에는 공통적인 한 가지 한계가 있었어요. 분할이 주변 문맥을 고려하지 않기 때문에, 분할 과정에서 문맥이 쉽게 손실될 수 있다는 점이에요.
이 연습에서는 의미적 의미를 기준으로 텍스트를 분할하는 최첨단 실험적 방법인 의미 기반 텍스트 분할기를 만들고 적용해 볼 거예요. 분할기가 텍스트의 의미가 특정 임계값을 넘어서 달라졌다고 감지하면, 그 지점에서 분할이 수행됩니다.
이 연습은 강의의 일부입니다
LangChain을 활용한 RAG(검색 증강 생성)
연습 안내
- OpenAI의
'text-embedding-3-small'임베딩 모델을 인스턴스화하세요. - 벡터 기울기를 사용해 의미적 유사성을 판단하고, 분할 임계값으로
0.8을 사용하는 의미 기반 텍스트 분할기를 만드세요. - 해당 의미 분할기를 사용해
document를 분할하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# Instantiate an OpenAI embeddings model
embedding_model = ____(api_key="", model='____')
# Create the semantic text splitter with desired parameters
semantic_splitter = ____(
embeddings=____, breakpoint_threshold_type="____", breakpoint_threshold_amount=____
)
# Split the document
chunks = ____
print(chunks[0])