Embedding

Embedding (Vector) Stores

RAG 파이프라인에서 문서를 인덱싱하고 검색하는 핵심 저장소, 임베딩 스토어(벡터 스토어) 를 알아봐요. EmbeddingStore는 임베딩 벡터를 저장하고 유사도 검색을 수행하는 곳이에요. 임베딩 스토어에 대한 자세한 설명은 RAG 튜토리얼에서 다루고, 지원하는 모든 임베딩 스토어 목록은 여기에서 볼 수 있어요.

출처: 공식문서 - Embedding (Vector) Stores

핵심 개념

EmbeddingStore벡터 데이터베이스라고도 불러요. 텍스트를 임베딩 모델로 숫자 벡터로 바꾼 뒤, 이 벡터들을 저장하고 쿼리 벡터와의 유사도(가까움)를 기준으로 관련 조각을 빠르게 찾아주죠.

:::note EmbeddingStoresearchAsync(...)를 구현해서 논블로킹 AI Service에서 쓰일 때 스레드를 막지 않게 할 수 있어요. 구현하지 않은 스토어도 쓸 수 있지만, 리트리버가 offloadBlocking(true)로 오프로딩을 선택한 경우에만 가능해요. 그렇지 않으면 조용히 블로킹하는 대신 크게 실패해요. 자세한 내용은 Non-blocking and Reactive를 보세요. :::

주요 임베딩 스토어 예제

LangChain4j는 30개 이상의 임베딩 스토어 연동을 제공하며, 각각의 사용 예제가 있으니 시작할 때 참고하세요:

스토어 고르기

어떤 임베딩 스토어를 쓸지는 프로젝트의 요구 사항에 따라 달라져요. 프로토타입이나 작은 데이터셋이면 인메모리 스토어로 충분하고, 프로덕션에서는 PgVector·Qdrant·Pinecone·Milvus 같은 외부 벡터 데이터베이스가 필요해요. 각 스토어가 지원하는 기능(필터링, 인덱스 타입, 확장성 등)은 임베딩 스토어 연동 목록에서 비교할 수 있어요.

더 알아보기