Skip to main content

Command-line tool for managing Qdrant vector database collections

Project description

Qdrant Manager

A general-purpose command-line tool for managing Qdrant vector database collections and documents. Simplifies common Qdrant management tasks through a CLI interface.

Features

  • Create, delete, and list collections
  • Get detailed information about collections
  • Retrieve points from collections with flexible query options
  • Batch operations on documents:
    • Add fields to documents
    • Delete fields from documents
    • Replace fields in documents
  • Support for JSON path selectors for precise document modifications
  • Multiple configuration profiles support

Installation

# From PyPI
pipx install qdrant-manager

# From source
git clone https://github.com/allenday/qdrant-manager.git
cd qdrant-manager
pipx install -e .

Configuration

When first run, qdrant-manager will create a configuration file at:

  • Linux/macOS: ~/.config/qdrant-manager/config.yaml
  • Windows: %APPDATA%\qdrant-manager\config.yaml

You can edit this file to add your Qdrant connection details and schema configuration:

default:
  connection:
    url: localhost
    port: 6333
    api_key: ""
    collection: my-collection
  
  vectors:
    size: 256
    distance: cosine
    indexing_threshold: 0
  
  # Optional payload indices for optimized searching
  payload_indices:
    - field: category
      type: keyword
    - field: created_at
      type: datetime
    - field: price
      type: float

production:
  connection:
    url: your-production-instance.region.cloud.qdrant.io
    port: 6333
    api_key: your-production-api-key
    collection: production-collection
  
  vectors:
    size: 1536  # For OpenAI embeddings
    distance: cosine
    indexing_threshold: 1000
  
  payload_indices:
    - field: product_id
      type: keyword
    - field: timestamp
      type: datetime

Each profile can define its own:

  • Connection settings
  • Vector configuration (size, distance metric, indexing behavior)
  • Payload indices for optimized search performance

The YAML format makes it easy to maintain a clean, organized configuration across multiple environments.

You can switch between profiles using the --profile flag:

qdrant-manager --profile production list

You can also override any setting with command-line arguments.

Usage

qdrant-manager <command> [options]

Available Commands:

  • create: Create a new collection
  • delete: Delete an existing collection
  • list: List all collections
  • info: Get detailed information about a collection
  • batch: Perform batch operations on documents
  • get: Retrieve points from a collection
  • config: View available configuration profiles

Connection Options:

--profile PROFILE  Configuration profile to use
--url URL          Qdrant server URL
--port PORT        Qdrant server port
--api-key API_KEY  Qdrant API key
--collection NAME  Collection name

Examples:

# List all collections
qdrant-manager list

# Create a new collection with custom settings
qdrant-manager create --collection my-collection --size 1536 --distance euclid

# Get info about a collection
qdrant-manager info --collection my-collection

# Retrieve points by ID
qdrant-manager get --ids "1,2,3" --with-vectors

# Retrieve points using a filter and save as CSV
qdrant-manager get --filter '{"key":"category","match":{"value":"product"}}' \
  --format csv --output results.csv

# Add a field to documents matching a filter
qdrant-manager batch --filter '{"key":"category","match":{"value":"product"}}' \
  --add --doc '{"processed": true}'

# Delete a field from specific documents
qdrant-manager batch --ids "doc1,doc2,doc3" --delete --selector "metadata.temp_data"

# Replace fields in documents from an ID file
qdrant-manager batch --id-file my_ids.txt --replace --selector "metadata.source" \
  --doc '{"provider": "new-provider", "date": "2025-03-31"}'

# Switch between profiles
qdrant-manager --profile production list

Changelog

v0.1.6

  • Improved pagination for large result sets to prevent timeouts
  • Fixed empty filter handling to correctly match all documents
  • Added retry logic for failed batch retrievals
  • Better cloud connection detection and handling
  • Improved logging with detailed progress updates
  • Changed invalid filter structure message from error to warning

v0.1.5

  • Fixed packaging issue to include command modules

v0.1.4

  • Added get command to retrieve and export points from collections
  • Refactored CLI code into separate modules for better maintainability
  • Improved test coverage to over 85%
  • Fixed various bugs in tests and command handling

v0.1.3

  • Fixed bug in collection creation with payload indices

v0.1.2

  • Added comprehensive test coverage
  • Improved error handling

v0.1.1

  • Initial release with basic functionality
  • Added configuration profiles support

License

Apache-2.0

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

qdrant_manager-0.1.6.tar.gz (24.7 kB view details)

Uploaded Source

Built Distribution

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

qdrant_manager-0.1.6-py3-none-any.whl (22.2 kB view details)

Uploaded Python 3

File details

Details for the file qdrant_manager-0.1.6.tar.gz.

File metadata

  • Download URL: qdrant_manager-0.1.6.tar.gz
  • Upload date:
  • Size: 24.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.14

File hashes

Hashes for qdrant_manager-0.1.6.tar.gz
Algorithm Hash digest
SHA256 2a10dd3393ffea2766ce7eba7d4615fd28a6ac09b30234b3d2757eb71ce20226
MD5 665c73f1e387abb81e2537f96d6d4495
BLAKE2b-256 8bfdfa2a39df479924c917a6b785384e23665cc60371662ad1067e09d95a3514

See more details on using hashes here.

File details

Details for the file qdrant_manager-0.1.6-py3-none-any.whl.

File metadata

  • Download URL: qdrant_manager-0.1.6-py3-none-any.whl
  • Upload date:
  • Size: 22.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.14

File hashes

Hashes for qdrant_manager-0.1.6-py3-none-any.whl
Algorithm Hash digest
SHA256 ba23ed6bef566aa967eeac4cd7333157a9c665830b09a6de143803e468776532
MD5 de19a4d535d96896c9c7a131e9cf1956
BLAKE2b-256 c201b167e0eb5216d6b8b190a851c881b613e3ba6df40321a7305722dd6a8d6d

See more details on using hashes here.

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