Qdrant provider for NLWeb - third-party vector database provider
Project description
nlweb-qdrant-vectordb
Qdrant provider for NLWeb.
Overview
This package provides Qdrant vector database support for NLWeb, demonstrating how to create third-party provider packages.
Installation
pip install nlweb-core nlweb-qdrant-vectordb
For LLM and embedding, you'll also need a model provider:
pip install nlweb-azure-models
Or use the bundle packages:
pip install nlweb-core nlweb-retrieval nlweb-models
Configuration
Create config.yaml:
retrieval:
provider: qdrant
import_path: nlweb_qdrant_vectordb.qdrant_client
class_name: QdrantClient
api_endpoint_env: QDRANT_URL # Optional for remote Qdrant
api_key_env: QDRANT_API_KEY # Optional for remote Qdrant
database_path_env: QDRANT_PATH # Optional for local Qdrant
index_name: my-collection
Authentication
For remote Qdrant:
export QDRANT_URL=https://your-cluster.qdrant.tech
export QDRANT_API_KEY=your_api_key_here
For local Qdrant:
export QDRANT_PATH=./data/qdrant
Usage
import nlweb_core
# Initialize
nlweb_core.init(config_path="./config.yaml")
# Search
from nlweb_core import retriever
results = await retriever.search(
query="example query",
site="example.com",
num_results=10
)
Features
- Vector similarity search with Qdrant
- Support for both remote and local Qdrant instances
- HNSW-based efficient similarity search
- Configurable collection names
- API key authentication for remote instances
- Local file-based storage option
- Compatible with NLWeb Protocol v0.5
Creating Your Own Provider Package
Use this package as a template:
-
Create package structure:
nlweb-yourprovider/ ├── pyproject.toml ├── README.md └── nlweb_yourprovider/ ├── __init__.py └── your_client.py -
Implement VectorDBClientInterface:
from nlweb_core.retriever import VectorDBClientInterface class YourClient(VectorDBClientInterface): async def search(self, query, site, num_results, **kwargs): # Your implementation pass
-
Declare dependencies in
pyproject.toml:dependencies = [ "nlweb-core>=0.5.0", "your-provider-sdk>=1.0.0", ]
-
Publish to PyPI:
python -m build twine upload dist/*
License
MIT License - Copyright (c) 2025 Microsoft Corporation
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file nlweb_qdrant_vectordb-0.5.42.tar.gz.
File metadata
- Download URL: nlweb_qdrant_vectordb-0.5.42.tar.gz
- Upload date:
- Size: 13.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1ed7c943344be60d065740ec49a7e9ac2d6d616971f3a144a547e2e7a4d64853
|
|
| MD5 |
a18c520769d101bc413bd080e0914560
|
|
| BLAKE2b-256 |
1d884f1fc104d69a82678191a83522d17824deefd11830d76ca4e59504af0853
|
File details
Details for the file nlweb_qdrant_vectordb-0.5.42-py3-none-any.whl.
File metadata
- Download URL: nlweb_qdrant_vectordb-0.5.42-py3-none-any.whl
- Upload date:
- Size: 9.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
110d30dfae822b167e11f1a7d8d377f02869c65cd1cc94d9493c8bcd68101077
|
|
| MD5 |
927c0051e5b14d1924fd253eacb4b8e2
|
|
| BLAKE2b-256 |
68e8489d2596ce33bb26e3c0b2f7d80ba19f5589c98ad743f3b3070a3f17733a
|