Skip to main content

Python Client SDK for CyborgDB: The Confidential Vector Database

Project description

CyborgDB Python SDK

PyPI - Version PyPI - License PyPI - Python Version

The CyborgDB Python SDK provides a comprehensive client library for interacting with CyborgDB, the first Confidential Vector Database. This SDK enables you to perform encrypted vector operations including ingestion, search, and retrieval while maintaining end-to-end encryption of your vector embeddings. Built for Python applications, it offers seamless integration into modern Python applications and services.

This SDK provides an interface to cyborgdb-service which you will need to separately install and run in order to use the SDK. For more info, please see our docs.

Key Features

  • End-to-End Encryption: All vector operations maintain encryption with client-side keys
  • Zero-Trust Design: Novel architecture keeps confidential inference data secure
  • High Performance: GPU-accelerated indexing and retrieval with CUDA support
  • Familiar API: Easy integration with existing AI workflows
  • Flexible Indexing: Support for multiple index types (IVFFlat, IVFPQ, etc.) with customizable parameters

Getting Started

To get started in minutes, check out our Quickstart Guide.

Installation

  1. Install cyborgdb-service
# Install the CyborgDB Service
pip install cyborgdb-service

# Or via Docker
docker pull cyborginc/cyborgdb-service
  1. Install cyborgdb SDK:
# Install the CyborgDB Python SDK
pip install cyborgdb

Usage

from cyborgdb import Client

# Initialize the client
client = Client('https://localhost:8000', 'your-api-key')

# Generate a 32-byte encryption key
index_key = client.generate_key()

# Create an encrypted index
index = await client.create_index(
    index_name='my-index', 
    index_key=index_key
)

# Add encrypted vector items
items = [
    {
        'id': 'doc1',
        'vector': [([0.1] * 128)],  # Replace with real embeddings
        'contents': 'Hello world!',
        'metadata': {'category': 'greeting', 'language': 'en'}
    },
    {
        'id': 'doc2',
        'vector': [([0.1] * 128)],  # Replace with real embeddings
        'contents': 'Bonjour le monde!',
        'metadata': {'category': 'greeting', 'language': 'fr'}
    }
]

await index.upsert(items)

# Query the encrypted index
query_vector = [0.1, 0.2, 0.3, *([0.0] * 128)]  # 128 dimensions
results = await index.query(query_vector, 10)

# Print the results
for result in results.results:
    print(f"ID: {result.id}, Distance: {result.distance}")

Advanced Usage

Batch Queries

# Search with multiple query vectors simultaneously
query_vectors = [
    [0.1, 0.2, 0.3, *([0.0] * 125)],
    [0.4, 0.5, 0.6, *([0.0] * 125)]
]

batch_results = await index.query(query_vectors, 5)

Metadata Filtering

# Search with metadata filters
results = await index.query(
    query_vector,
    10,      # top_k
    1,       # n_probes
    False,   # greedy
    {'category': 'greeting', 'language': 'en'},  # filters
    ['distance', 'metadata', 'contents']         # include
)

Documentation

For more information on CyborgDB, see the Cyborg Docs.

License

The CyborgDB Python SDK is licensed under the MIT License.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cyborgdb-0.13.1.tar.gz (53.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cyborgdb-0.13.1-py3-none-any.whl (91.6 kB view details)

Uploaded Python 3

File details

Details for the file cyborgdb-0.13.1.tar.gz.

File metadata

  • Download URL: cyborgdb-0.13.1.tar.gz
  • Upload date:
  • Size: 53.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for cyborgdb-0.13.1.tar.gz
Algorithm Hash digest
SHA256 f0ed64ad09fe448b7802453c40054020a82dd911c372cccea2651503bbf46fc7
MD5 f0db5dd6d0afed65aff80f60b576f2d4
BLAKE2b-256 71a7cb7eac1c53e417a2b273e5f8557adcaf0799bacc3b9c0a2053b457ea28a0

See more details on using hashes here.

Provenance

The following attestation bundles were made for cyborgdb-0.13.1.tar.gz:

Publisher: build_and_package_wheels.yml on cyborginc/cyborgdb-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file cyborgdb-0.13.1-py3-none-any.whl.

File metadata

  • Download URL: cyborgdb-0.13.1-py3-none-any.whl
  • Upload date:
  • Size: 91.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for cyborgdb-0.13.1-py3-none-any.whl
Algorithm Hash digest
SHA256 b1677ccf281ba4e1f4aa3f43eb30cb4a9775c15a55e223427bce55a75bdbd674
MD5 732f6566c3aea4f037f3e4f1fac6535d
BLAKE2b-256 de545d2a5a3e134e8a661f4bb65be11b2f3f720548507fc1a229038ee5fff875

See more details on using hashes here.

Provenance

The following attestation bundles were made for cyborgdb-0.13.1-py3-none-any.whl:

Publisher: build_and_package_wheels.yml on cyborginc/cyborgdb-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page