nlweb-azure-vectordb
Azure AI Search provider for NLWeb.
Overview
This is a blueprint package demonstrating how to create individual provider packages for NLWeb. It contains only the Azure AI Search retrieval provider.
Third-party developers can use this as a template for creating their own provider packages (e.g., nlweb-pinecone, nlweb-weaviate, etc.).
Installation
pip install nlweb-core nlweb-azure-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: azure_ai_search
import_path: nlweb_azure_vectordb.azure_search_client
class_name: AzureSearchClient
api_endpoint_env: AZURE_SEARCH_ENDPOINT
auth_method: azure_ad # or api_key
index_name: my-search-index
Authentication Methods
API Key Authentication
retrieval:
provider: azure_ai_search
import_path: nlweb_azure_vectordb.azure_search_client
class_name: AzureSearchClient
api_endpoint_env: AZURE_SEARCH_ENDPOINT
api_key_env: AZURE_SEARCH_KEY
auth_method: api_key
index_name: my-index
Set environment variables:
export AZURE_SEARCH_ENDPOINT=https://your-service.search.windows.net
export AZURE_SEARCH_KEY=your_key_here
Managed Identity (Azure AD) Authentication
retrieval:
provider: azure_ai_search
import_path: nlweb_azure_vectordb.azure_search_client
class_name: AzureSearchClient
api_endpoint_env: AZURE_SEARCH_ENDPOINT
auth_method: azure_ad
index_name: my-index
Set environment variable:
export AZURE_SEARCH_ENDPOINT=https://your-service.search.windows.net
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 Azure AI Search
- Hybrid search (vector + keyword)
- Managed identity (Azure AD) authentication support
- API key authentication support
- Configurable index names
- 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
Metadata
Release files for nlweb-azure-vectordb 0.7.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| nlweb_azure_vectordb-0.7.0.tar.gz | 5.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| nlweb_azure_vectordb-0.7.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 10.9 kB
Release files / nlweb_azure_vectordb-0.7.0.tar.gz
| Download URL | nlweb_azure_vectordb-0.7.0.tar.gz |
|---|---|
| Size | 5.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a7514a802feec15bc4b4971348d1df84ecb8ee453cd00d93747d93d2219606d7
|
|
BLAKE2b-256 checksum How to use checksums |
91b3296070795713a3a6e4170600d8b0c908c7bfe690d9f00a7be9edc725f10f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.10.4 {"installer":{"name":"uv","version":"0.10.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / nlweb_azure_vectordb-0.7.0-py3-none-any.whl
| Download URL | nlweb_azure_vectordb-0.7.0-py3-none-any.whl |
|---|---|
| Size | 5.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
5c582d10c850589e7a1a57db854a167bbef2cd753f76110ae4acbb1ee710cdee
|
|
BLAKE2b-256 checksum How to use checksums |
8f297352b4a7e51c8dcfa933852a9c72dda3ce4ce6fbe7468ee8699ba77c0733
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.10.4 {"installer":{"name":"uv","version":"0.10.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|