LangChain 통합 (QdrantVectorStore)

LangChain 통합 (QdrantVectorStore)

LangChain은 임베딩 제공자와 Qdrant 등 벡터 DB의 인터페이스를 통일해서, 사업 로직에 집중할 수 있게 해주는 라이브러리예요. Qdrant 통합은 파트너 패키지로 배포돼요.

파트너 패키지답게 pip 한 줄로 설치되고, dense·sparse·하이브리드 검색을 모두 지원해요. Qdrant는 문서와 함께 생성된 임베딩을 저장하는 벡터 인덱스 역할을 해요.

출처: https://qdrant.tech/documentation/frameworks/langchain

설치

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",
)

더 알아보기