LangChain 통합 (QdrantVectorStore)
LangChain 통합 (QdrantVectorStore)
LangChain은 임베딩 제공자와 Qdrant 등 벡터 DB의 인터페이스를 통일해서, 사업 로직에 집중할 수 있게 해주는 라이브러리예요. Qdrant 통합은 파트너 패키지로 배포돼요.
파트너 패키지답게 pip 한 줄로 설치되고, dense·sparse·하이브리드 검색을 모두 지원해요. Qdrant는 문서와 함께 생성된 임베딩을 저장하는 벡터 인덱스 역할을 해요.
설치
pip install langchain-qdrant
기본 시작 (from_texts)
from langchain_qdrant import QdrantVectorStore
from langchain_openai import OpenAIEmbeddings
embeddings = OpenAIEmbeddings()
doc_store = QdrantVectorStore.from_texts(
texts, embeddings, url="<qdrant-url>", api_key="<qdrant-api-key>", collection_name="texts"
)
기존 컬렉션 재사용
doc_store = QdrantVectorStore.from_existing_collection(
embeddings=embeddings,
collection_name="my_documents",
url="<qdrant-url>",
api_key="<qdrant-api-key>",
)
로컬(서버 없이) 모드
테스트·디버깅용으로 Qdrant 서버 없이 같은 코드를 로컬에서 돌릴 수 있어요.
- 인메모리:
location=":memory:"— 클라이언트가 끝나면 데이터 소멸. - 온디스크:
path="/tmp/local_qdrant"— 다시 실행해도 유지.
qdrant = QdrantVectorStore.from_documents(
docs, embeddings,
location=":memory:", # 로컬 + 인메모리
collection_name="my_documents",
)
온프레미스 서버
Docker·Helm 차트로 띄운 인스턴스에도 URL만 지정하면 동일하게 연결돼요.
url = "<---qdrant url here --->"
qdrant = QdrantVectorStore.from_documents(
docs, embeddings,
url,
prefer_grpc=True,
collection_name="my_documents",
)
더 알아보기
- Qdrant 공식 가이드: https://qdrant.tech/documentation/frameworks/langchain
- Qdrant 문서: https://qdrant.tech/documentation/