pgvector에 DiskANN 기반 인덱스와 라벨 필터링을 추가해 벡터 검색을 더 빠르고 저렴하게 만드는 Rust 기반 Postgres 확장입니다.
pgvector/pgvector-python
Django, SQLAlchemy, Psycopg, asyncpg, Peewee 및 기타 PostgreSQL 드라이버에 pgvector 벡터 타입과 유사도 검색 기능을 제공하는 Python 라이브러리입니다.
- 스타
- 1,542
- 포크
- 104
- 열린 이슈
- 9
- 마지막 커밋
- 그저께
어떤 프로젝트인가요?
pgvector-python은 pgvector 확장을 통해 애플리케이션에서 PostgreSQL에 벡터를 저장하고 조회할 수 있도록 지원하는 Python 클라이언트 라이브러리입니다. 벡터, 반정밀도, 비트 및 희소 벡터 타입과 L2, 내적, 코사인, L1, 해밍 및 자카드 비교를 위한 거리 연산자를 제공합니다.
이 패키지는 Django, SQLAlchemy, SQLModel, Psycopg 2 및 3, asyncpg, pg8000, Peewee를 비롯한 다양한 Python 데이터베이스 스택과 연동됩니다. 각 연동은 확장 활성화, 벡터 컬럼 추가, 임베딩 삽입, 최근접 이웃 쿼리 실행, HNSW 또는 IVFFlat 인덱스 생성 등 일반적인 작업을 지원합니다.
저장소에는 Ollama를 이용한 검색 증강 생성, OpenAI 및 Cohere를 이용한 임베딩, 하이브리드 검색, 이미지 검색, 추천, COPY를 이용한 대량 로드를 위한 예제 스크립트도 포함되어 있습니다.
핵심 기능
- 01Django, SQLAlchemy, SQLModel, Psycopg 2/3, asyncpg, pg8000 및 Peewee를 지원합니다.
- 02벡터, 반정밀도, 비트 및 희소 벡터 필드 타입을 제공합니다.
- 03L2, 내적, 코사인, L1, 해밍 및 자카드 거리 연산자를 지원합니다.
- 04각 라이브러리의 API를 통해 HNSW 및 IVFFlat 근사 인덱스를 생성합니다.
- 05Python 리스트, NumPy 배열 및 SciPy 희소 배열 간 변환을 지원합니다.
활용 사례
- PostgreSQL을 사용하는 Django 또는 SQLAlchemy 애플리케이션에 시맨틱 검색이나 RAG 검색 기능을 추가합니다.
- OpenAI, Cohere 또는 SentenceTransformers의 텍스트나 이미지 임베딩을 Postgres에 저장합니다.
- 기존 Postgres 데이터베이스에서 사용자-항목 벡터를 활용한 추천 기능을 구축합니다.
빠른 시작
- 1
PyPI에서 패키지를 설치합니다
pip install pgvector - 2
PostgreSQL 데이터베이스에서 pgvector 확장 기능을 활성화합니다(Psycopg 3 예시)
conn.execute('CREATE EXTENSION IF NOT EXISTS vector') - 3
연결에 vector 타입을 등록한 다음, 사용하는 라이브러리의 README에 따라 벡터를 삽입하고 쿼리합니다
register_vector(conn)
사용 전 알아둘 점
- PostgreSQL 서버에 pgvector 확장 기능이 설치되어 있어야 합니다.
- 데이터베이스 라이브러리마다 별도의 설정 단계와 등록 코드가 필요합니다.
포함된 컬렉션
토픽
자주 묻는 질문
- pgvector-python은(는) 무엇인가요?
- Django, SQLAlchemy, Psycopg, asyncpg, Peewee 및 기타 PostgreSQL 드라이버에 pgvector 벡터 타입과 유사도 검색 기능을 제공하는 Python 라이브러리입니다. pgvector-python은 pgvector 확장을 통해 애플리케이션에서 PostgreSQL에 벡터를 저장하고 조회할 수 있도록 지원하는 Python 클라이언트 라이브러리입니다. 벡터, 반정밀도, 비트 및 희소 벡터 타입과 L2, 내적, 코사인, L1, 해밍 및 자카드 비교를 위한 거리 연산자를 제공합니다.
- pgvector-python은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- pgvector-python은(는) MIT 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
- pgvector-python은(는) 아직 유지보수되고 있나요?
- 활발히 유지보수 중. pgvector-python의 마지막 커밋은 2026년 11월 5일입니다.
- pgvector-python은(는) 어디에 사용할 수 있나요?
- PostgreSQL을 사용하는 Django 또는 SQLAlchemy 애플리케이션에 시맨틱 검색이나 RAG 검색 기능을 추가합니다. OpenAI, Cohere 또는 SentenceTransformers의 텍스트나 이미지 임베딩을 Postgres에 저장합니다. 기존 Postgres 데이터베이스에서 사용자-항목 벡터를 활용한 추천 기능을 구축합니다.
- pgvector-python는 어떻게 설치하나요?
- PyPI에서 패키지를 설치합니다: pip install pgvector PostgreSQL 데이터베이스에서 pgvector 확장 기능을 활성화합니다(Psycopg 3 예시): conn.execute('CREATE EXTENSION IF NOT EXISTS vector') 연결에 vector 타입을 등록한 다음, 사용하는 라이브러리의 README에 따라 벡터를 삽입하고 쿼리합니다: register_vector(conn)
- pgvector-python은(는) 어디서 받을 수 있나요?
- 소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/pgvector/pgvector-python
요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
pgvector PostgreSQL 확장을 위한 Go 지원 라이브러리로, pgx, pg, Bun, Ent, GORM, sqlx용 벡터 타입과 헬퍼를 제공합니다.
Node.js, Deno, Bun의 데이터베이스 클라이언트와 ORM에서 pgvector 벡터 타입을 지원하는 JavaScript 및 TypeScript 헬퍼 라이브러리입니다.
Milvus는 임베딩을 대규모로 저장하고 검색하는 오픈소스 분산 벡터 데이터베이스로, AI 검색 및 RAG 애플리케이션에 사용됩니다.
Qdrant는 시맨틱 검색과 추천을 위한 Rust 기반 벡터 유사도 검색 엔진이자 페이로드 필터링을 지원하는 벡터 데이터베이스입니다.
관계형 데이터와 함께 임베딩을 저장하고 쿼리할 수 있는 Postgres용 오픈 소스 벡터 유사도 검색 확장 프로그램입니다.