Skip to main content

Qdrant

벡터 데이터베이스입니다. 텍스트, 이미지 등을 숫자 배열(벡터)로 변환한 **임베딩(Embedding)**을 저장하고, 의미적으로 유사한 데이터를 검색합니다.

어디에 쓰이나요?

  • RAG (Retrieval-Augmented Generation): 문서를 임베딩으로 변환하여 저장하고, 사용자 질문과 유사한 문서를 검색하여 LLM에 전달
  • 시맨틱 검색: 키워드 일치가 아닌, 의미가 비슷한 문서를 검색 (예: “강아지”로 검색하면 “반려견”, “puppy” 관련 문서도 검색)
  • 추천 시스템: 사용자가 본 상품과 유사한 상품 추천
  • 이미지 검색: 이미지를 벡터로 변환하여 비슷한 이미지 검색
일반적인 데이터베이스는 정확한 값의 일치 여부를 비교하지만, 벡터 데이터베이스는 벡터 간의 **거리(유사도)**를 계산하여 가장 가까운 결과를 반환합니다.

Docker Compose

docker-compose.yml
services:
  qdrant:
    image: qdrant/qdrant:latest
    container_name: qdrant
    restart: unless-stopped
    ports:
      - "6333:6333"
      - "6334:6334"
    volumes:
      - qdrant_data:/qdrant/storage

volumes:
  qdrant_data:

실행

docker compose up -d

접속 확인

REST API로 상태를 확인합니다.
curl http://localhost:6333/healthz
정상이면 다음과 같이 응답합니다.
OK
웹 대시보드는 http://localhost:6333/dashboard에서 접근할 수 있습니다.

기본 정보

항목
REST API 포트6333
gRPC 포트6334
대시보드http://localhost:6333/dashboard
데이터 저장 경로qdrant_data 볼륨

API 키 설정

운영 환경에서는 API 키를 설정하여 접근을 제한합니다.
docker-compose.yml
services:
  qdrant:
    image: qdrant/qdrant:latest
    container_name: qdrant
    restart: unless-stopped
    ports:
      - "6333:6333"
      - "6334:6334"
    environment:
      - QDRANT__SERVICE__API_KEY=your-api-key-here
    volumes:
      - qdrant_data:/qdrant/storage

volumes:
  qdrant_data:
API 키가 설정된 경우 요청에 헤더를 포함해야 합니다.
curl -H "api-key: your-api-key-here" http://localhost:6333/healthz

환경 변수

변수설명
QDRANT__SERVICE__API_KEYREST/gRPC API 키
QDRANT__SERVICE__READ_ONLY_API_KEY읽기 전용 API 키
QDRANT__STORAGE__STORAGE_PATH저장 경로
QDRANT__SERVICE__GRPC_PORTgRPC 포트 (기본: 6334)

라이선스

구분내용
라이선스Apache License 2.0
개인 사용자유롭게 사용 가능
상업적 사용자유롭게 사용 가능, 수정/재배포 제한 없음

참고