반응형
Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| 16 | 17 | 18 | 19 | 20 | 21 | 22 |
| 23 | 24 | 25 | 26 | 27 | 28 | 29 |
| 30 |
Tags
- 프랑스) #오랑주리 미술관(파리
- 이탈리아) #오르세 미술관(파리
- #데일카네기 인간관계론 (고전 필독서) #인간관계론 (도서명) #인간관계개선 (가장 핵심적인 목적) #대화의기술 (실질적인 활용법) #인간관계꿀팁 (정보성) #직장생활팁 (실용성) #자기계발서 (카테고리)
- #파이썬 #번역 프로그램 #async await #동기 비동기 #coroutine #googletrans #translator
- 언론 #백업 backup #세계적으로 가장 강력한 툴
- 파워포인트) #집(zip)파일 #아래한글(HWP) #brute-force(무차별 대입)
- #다산 정약용 #유배지에서 보낸 편지 #도덕 #용기 #염 #주역 #호연지기 #효제 #근검
- 프랑스)#내셔널 갤러리(런던
- #ExifTool # 메타데이터 metadata #meta information #사진
- 프랑스) #바티칸 박물관(로마
- # 암호(비밀번호) 분실 # 암호(비밀번호) 찾기 #오피스(doc
- 이탈리아) #루브르 박물관(파리
- #악어 #카피바라 #설치류 #카이만 #네셔널지오그래픽 #IUCNCSG.ORG
- xls
- 네덜란드) #샤갈 미술관(니스
- #평판관리 #좋은평가받는법 #관계심리학 #인간관계팁 #신뢰쌓기 #진심의힘
- 스페인) #르네상스·바로크 조각 미술관(보르게세
- 로마) #반 고흐 미술관(암스테르담
- 오블완
- #선진국 대한민국 #선진국 #대한민국 #아이들 #청소년 #고민 #해결 #심리
- # 그리스 신화 # 로마 신화 #카오스 #가이아 #우라노스 #크로노스 #제우스 #헤라 #포세이돈 #하데스 #데메테르 #아테나 #아폴론 # 아르테미스 #헤르메스 #헤파이스토스 #계보 #그리스 로마 신화 영어 어원
- 간단한 Word 자동화 프로그램 #다산 정약용 # 유배지에서 보낸 편지 #유니코드 이스케이프
- 엑셀
- 영국) #프라도 미술관(마드리드
- #스탕달 신드롬 #유럽 미술관 #우피치 미술관(피렌체
- #자기계발 #자기성장 #자기관리 #긍정적인삶 #마인드셋 #심리학에세이 #삶의태도
- 티스토리챌린지
- 문서 파일 #사진 정리 #포렌식 # 출판
- #유럽 미술관 #오랑주리 미술관 #산 마르코 미술관# 로댕 미술관 #브레라 미술관 #샤갈 미술관 #오페라 가르니에 #귀스타브 모로 미술관 #아카데미아 갤러리 #우피치 미술관#바르베리니 궁전 #코톨드 갤러리 #스탕달 신드롬
- ppt) 파일 #오피스(워드
Archives
- Today
- Total
아톨러브
Qdrant 벡터 데이터베이스에 새로운 컬렉션(Collection)을 생성하는 예시 본문
반응형
아래 Python 코드는 Qdrant 벡터 데이터베이스에 새로운 컬렉션(Collection)을 생성하는 예시입니다. 각 부분의 의미와 실행 방법, 그리고 올바른 결과를 상세히 설명합니다.
1. 코드의 의미
이 코드는 Qdrant 클라이언트를 사용하여 test라는 이름의 새로운 컬렉션을 생성합니다. 이 컬렉션은 2차원(dimension) 벡터를 저장하며, 벡터 간의 유사도를 측정할 때 코사인 유사도(Cosine Distance) 방식을 사용하도록 설정됩니다.
from qdrant_client import QdrantClient # Qdrant 서버와 통신하기 위한 클라이언트 라이브러리를 가져옵니다.
from qdrant_client.models import Distance, VectorParams # Qdrant 모델 정의(벡터 파라미터, 거리 측정 방식)를 가져옵니다.
client = QdrantClient(host="localhost", port=6333) # QdrantClient 객체를 생성합니다.
# host="localhost": Qdrant 서버가 현재 이 파이썬 코드를 실행하는 컴퓨터(또는 Docker 컨테이너)에 설치되어 있음을 의미합니다.
# port=6333: Qdrant 서버의 기본 gRPC 통신 포트입니다.
collection_name = "test" # 생성할 컬렉션의 이름을 'test'로 정의합니다.
response = client.create_collection( # Qdrant 클라이언트를 사용하여 새로운 컬렉션을 생성하는 메서드를 호출합니다.
collection_name = collection_name, # 위에서 정의한 컬렉션 이름을 전달합니다.
vectors_config = VectorParams(size=2, distance=Distance.COSINE) # 벡터 저장소의 설정을 정의합니다.
# size=2: 이 컬렉션에 저장될 벡터의 차원(dimension)을 2로 설정합니다. 즉, 각 벡터는 [x, y]와 같은 2개의 숫자로 구성됩니다.
# distance=Distance.COSINE: 벡터 간의 유사도를 측정하는 방식을 코사인 유사도로 설정합니다. 코사인 유사도는 두 벡터가 가리키는 방향이 얼마나 유사한지를 측정하며, 텍스트 임베딩 등에서 많이 사용됩니다.
)
print(response) # 컬렉션 생성 작업의 결과를 출력합니다.
핵심 개념:
- 컬렉션(Collection): Qdrant에서 벡터와 페이로드(메타데이터)를 저장하는 논리적인 단위입니다. 관계형 데이터베이스의 테이블과 유사하다고 볼 수 있습니다.
- 벡터(Vector): 숫자 배열로 표현된 데이터의 특징입니다. 텍스트, 이미지, 오디오 등을 숫자로 변환한 것입니다.
- 차원(Dimension): 벡터를 구성하는 숫자의 개수입니다. (예: [0.1, 0.5]는 2차원, [0.1, 0.2, 0.3, ... , 0.9]는 10차원)
- 거리 측정 방식(Distance Metric): 벡터 간의 유사성 또는 거리를 계산하는 방법입니다.
- Distance.COSINE (코사인 유사도): 두 벡터 간의 각도 코사인 값을 측정하여 유사도를 판단합니다. 방향이 중요할 때 사용됩니다.
- Distance.EUCLID (유클리드 거리): 두 벡터 간의 직선 거리를 측정합니다.
- Distance.DOT (내적): 두 벡터의 내적 값을 사용하여 유사도를 측정합니다.

2. 실행 방법
이 코드를 실행하려면 몇 가지 전제 조건이 필요합니다.
전제 조건:
- Qdrant 서버 실행 중: Qdrant 서버가 localhost:6333에서 실행 중이어야 합니다. Docker를 사용한다면 다음 명령어로 실행할 수 있습니다.(AWS EC2 인스턴스에서 실행하는 경우, sudo를 붙이고, Flask 앱에서 host="localhost"로 설정한 것처럼 Qdrant Docker도 같은 인스턴스에서 localhost로 접근 가능해야 합니다.)
- docker run -p 6333:6333 -p 6334:6334 -v "$(pwd)/qdrant_storage:/qdrant/storage:z" qdrant/qdrant
- qdrant-client 라이브러리 설치: Python 환경에 qdrant-client 라이브러리가 설치되어 있어야 합니다.
- pip install qdrant-client
실행 단계:
- 위 Python 코드를 create_collection_test.py와 같은 이름으로 저장합니다.
- 터미널 또는 명령 프롬프트를 열고, 해당 파일이 저장된 디렉토리로 이동합니다.
- 다음 명령어를 입력하여 코드를 실행합니다.
- python create_collection_test.py
3. 올바른 결과 (예상 출력)
코드가 성공적으로 실행되면, Qdrant 서버에 test 컬렉션이 생성되고 터미널에는 다음과 같은 결과가 출력될 것입니다.
True
이는 컬렉션 생성 작업이 성공했음을 나타내는 불리언 값 True입니다.
발생할 수 있는 예외 상황:
- False 또는 에러 메시지 출력:
- 만약 test라는 이름의 컬렉션이 이미 Qdrant 서버에 존재한다면, client.create_collection() 메서드는 False를 반환하거나 에러를 발생시킬 수 있습니다.
- 이 경우, 컬렉션을 다시 생성하려면 먼저 기존 컬렉션을 삭제해야 합니다. client.delete_collection(collection_name="test")를 먼저 호출한 후 create_collection을 시도하거나, client.recreate_collection() 메서드를 사용하는 것이 더 안전합니다.
- # 컬렉션이 이미 존재할 경우 삭제 후 재 생성 client.recreate_collection( collection_name = collection_name, vectors_config = VectorParams(size=2, distance=Distance.COSINE) )
- 연결 오류 (Timeout 등):
- Qdrant 서버가 실행 중이지 않거나, host 또는 port 설정이 잘못되었거나, 방화벽/보안 그룹 문제로 인해 Qdrant 서버에 연결할 수 없다면 timed out과 같은 연결 오류가 발생할 수 있습니다.
반응형
'AI, 클라우드, 문서, 자동화' 카테고리의 다른 글
| 벡터DB, Qdrant 컬렉션 검색 코드 설명 (0) | 2025.07.20 |
|---|---|
| Qdrant 컬렉션에 포인트(Vector & Payload) 삽입 코드 설명 (0) | 2025.07.20 |
| React 기본 사용법 (0) | 2025.07.14 |
| AWS EC2에 프론트엔드 배포하기 (0) | 2025.07.14 |
| .env 파일을 AWS 인스턴스에 올리는 방법 (0) | 2025.07.12 |