ZeusDB는 Rust로 구동되는 고성능 vector database로, product quantization, 영구 저장소, 엔터프라이즈급 로깅과 같은 고급 기능을 제공합니다.이 문서는 ZeusDB를 사용하여 LangChain 애플리케이션에 엔터프라이즈급 vector 검색 기능을 제공하는 방법을 보여줍니다.
Quick Start
Installation
Getting Started
이 예제는 OpenAIEmbeddings를 사용하며, OpenAI API key가 필요합니다 - 여기에서 OpenAI API key를 받으세요 원하신다면 다른 embedding provider(Hugging Face, Cohere, custom functions 등)와 함께 이 패키지를 사용할 수도 있습니다.Basic Usage
Factory Methods
편의를 위해 한 단계로 vector store를 생성하고 채울 수 있습니다:Example 1: 텍스트로부터 생성 (한 단계로 index를 생성하고 텍스트를 추가)
Example 2: - 문서로부터 생성 (한 단계로 index를 생성하고 문서를 추가)
Advanced Features
ZeusDB의 엔터프라이즈급 기능은 LangChain 생태계에 완전히 통합되어 quantization, persistence, 고급 검색 기능 및 기타 여러 엔터프라이즈 기능을 제공합니다.Memory-Efficient Setup with Quantization
대규모 데이터셋의 경우 Product Quantization을 사용하여 메모리 사용량을 줄일 수 있습니다:Persistence
ZeusDB persistence를 사용하면 완전히 채워진 index를 디스크에 저장하고 나중에 완전한 상태 복원과 함께 로드할 수 있습니다. 여기에는 vector, metadata, HNSW graph 및 (활성화된 경우) Product Quantization model이 포함됩니다. 저장되는 내용:- Vector & ID
- Metadata
- HNSW graph 구조
- Quantization config, centroid 및 training 상태 (PQ가 활성화된 경우)
vector store 저장 방법
vector store 로드 방법
Notes
- path는 단일 파일이 아닌 디렉토리입니다. 대상이 쓰기 가능한지 확인하세요.
- 저장된 index는 크로스 플랫폼이며 호환성 확인을 위한 format/version 정보를 포함합니다.
- PQ를 사용한 경우 압축 model과 상태가 모두 보존되므로 로드 후 재학습이 필요하지 않습니다.
- loaded_store에서 모든 vector store API(similarity_search, retriever 등)를 계속 사용할 수 있습니다.
Advanced Search Options
검색을 위한 scoring, diversity, metadata filtering 및 retriever 통합을 제어하려면 다음을 사용하세요.Similarity search with scores
ZeusDB에서(Document, raw_distance) 쌍을 반환합니다 — 낮은 distance = 더 유사함.
[0, 1] 범위의 정규화된 relevance를 선호하는 경우 similarity_search_with_relevance_scores를 사용하세요.
MMR search for diversity
MMR(Maximal Marginal Relevance)은 두 가지 요소의 균형을 맞춥니다: 쿼리와의 관련성과 선택된 결과 간의 다양성으로, 거의 중복된 답변을 줄입니다. lambda_mult로 균형을 제어합니다(1.0 = 모든 관련성, 0.0 = 모든 다양성).Search with metadata filtering
문서를 추가할 때 저장한 document metadata를 사용하여 결과를 필터링합니다As a Retriever
vector store를 retriever로 전환하면 chain(예: RetrievalQA)이 context를 가져오기 위해 호출할 수 있는 표준 LangChain interface를 제공합니다. 내부적으로 선택한 검색 유형(similarity 또는 mmr)과 search_kwargs를 사용합니다.Async Support
ZeusDB는 non-blocking, 동시 vector 작업을 위한 비동기 작업을 지원합니다. async를 사용해야 하는 경우: web server(FastAPI/Starlette), 병렬 검색을 수행하는 agent/pipeline, 또는 non-blocking/동시 검색을 원하는 notebook. 간단한 스크립트를 작성하는 경우 동기 메서드로 충분합니다. 이것들은 비동기 작업입니다 - 일반 동기 메서드의 async/await 버전입니다. 각각의 기능은 다음과 같습니다:await vector_store.aadd_documents(documents)- vector store에 문서를 비동기적으로 추가합니다 (add_documents()의 async 버전)await vector_store.asimilarity_search("query", k=5)- similarity 검색을 비동기적으로 수행합니다 (similarity_search()의 async 버전)await vector_store.adelete(ids=["doc1", "doc2"])- ID로 문서를 비동기적으로 삭제합니다 (delete()의 async 버전)
- async 애플리케이션을 구축하는 경우 (
asyncio, FastAPI 등 사용) - 동시에 실행할 수 있는 non-blocking 작업을 원하는 경우
- 여러 요청을 동시에 처리하는 경우
- I/O-bound 애플리케이션에서 더 나은 성능을 원하는 경우
python my_script.py):
await):
Monitoring and Observability
Performance Monitoring
Enterprise Logging
ZeusDB는 스마트 환경 감지와 함께 자동으로 작동하는 엔터프라이즈급 구조화된 로깅을 포함합니다:Configuration Options
Index Parameters
Search Parameters
Error Handling
통합에는 포괄적인 오류 처리가 포함됩니다:Requirements
- Python: 3.10 이상
- ZeusDB: 0.0.8 이상
- LangChain Core: 0.3.74 이상
Installation from Source
Use Cases
- RAG Applications: 질문 답변을 위한 고성능 검색
- Semantic Search: 대규모 문서 컬렉션에서 빠른 유사도 검색
- Recommendation Systems: Vector 기반 콘텐츠 및 협업 필터링
- Embeddings Analytics: 고차원 embedding 공간 분석
- Real-time Applications: 프로덕션 시스템을 위한 저지연 vector 검색
Compatibility
LangChain Versions
- LangChain Core: 0.3.74+
Distance Metrics
- Cosine: 기본값, 정규화된 유사도
- Euclidean (L2): 기하학적 거리
- Manhattan (L1): City-block 거리
Embedding Models
모든 embedding provider와 호환됩니다:- OpenAI (
text-embedding-3-small,text-embedding-3-large) - Hugging Face Transformers
- Cohere Embeddings
- Custom embedding function
Support
- Documentation: docs.zeusdb.com
- Issues: GitHub Issues
- Email: [email protected]
vector 검색을 빠르고, 확장 가능하며, 개발자 친화적으로 만듭니다.
Connect these docs programmatically to Claude, VSCode, and more via MCP for real-time answers.