설명: 벡터 저장소(Vector Store)는 문서, 데이터셋 또는 기타 정보의 임베딩을 저장하고, 유사도를 기반으로 검색할 수 있는 시스템입니다. 이를 통해 빠르고 효율적인 Semantic Search가 가능합니다.
예시 코드:
from langchain.vectorstores import FAISS
from langchain.embeddings import OpenAIEmbeddings
# 문서 임베딩 생성 및 저장소 초기화
embeddings = OpenAIEmbeddings()
vector_store = FAISS.create_index(embedding_model=embeddings)
# 데이터 삽입
vector_store.add_texts(["이 문서는 벡터 저장소 예제입니다.", "LangChain 벡터 저장소 사용 방법"])
활용법: FAQ, 문서 검색, 추천 시스템, 실시간 Q&A 시스템에 활용.
설명: Chroma는 가볍고 빠른 벡터 저장소로, 임베딩 저장 및 관리 기능을 제공합니다.
예시 코드:
from langchain.vectorstores import Chroma
from langchain.embeddings import OpenAIEmbeddings
# Chroma DB 초기화
embeddings = OpenAIEmbeddings()
chroma_store = Chroma(embedding_function=embeddings)
# 데이터 삽입
chroma_store.add_texts(["문서 1 내용", "문서 2 내용"])
# 검색
result = chroma_store.similarity_search("검색할 문장")
print(result)
활용법: 문서 저장 및 검색 기능을 빠르게 테스트하고 적용할 때 사용.
설명: FAISS(Facebook AI Similarity Search)는 대규모 벡터 검색에 적합하며, 고성능 검색을 제공합니다.
예시 코드:
from langchain.vectorstores import FAISS
from langchain.embeddings import HuggingFaceEmbeddings
embeddings = HuggingFaceEmbeddings(model_name="sentence-transformers/all-MiniLM-L6-v2")
faiss_store = FAISS(embedding_function=embeddings)
# 데이터 삽입
faiss_store.add_texts(["문서 A", "문서 B", "문서 C"])
# 검색
search_results = faiss_store.similarity_search("질문 입력")
print(search_results)
활용법: 대규모 데이터 검색 및 클러스터링, 추천 시스템 등.
설명: Semantic Search는 문맥적 의미를 기반으로 한 검색 방법입니다.
예시 코드:
from langchain.chains import RetrievalQA
retriever = faiss_store.as_retriever()
qa = RetrievalQA(retriever=retriever)
# 질문 실행
answer = qa.run("LangChain의 장점은 무엇인가요?")
print(answer)
활용법: 사용자가 입력한 질문에 대해 유사한 문서나 답변을 제공.