Azure AI Search provider for NLWeb - blueprint package for third-party providers
Project description
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
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_azure_vectordb-0.5.3.tar.gz.
File metadata
- Download URL: nlweb_azure_vectordb-0.5.3.tar.gz
- Upload date:
- Size: 8.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
52c7c05de4e888af0e076228ef6178261c6b729ba840edb55a278b92757f8080
|
|
| MD5 |
a815c39bd360b800e95832bbf25461ba
|
|
| BLAKE2b-256 |
76fe60ab5bafb35c1e0ede7274fdff4b16710e66b7b1e6a89059288768c29ae6
|
File details
Details for the file nlweb_azure_vectordb-0.5.3-py3-none-any.whl.
File metadata
- Download URL: nlweb_azure_vectordb-0.5.3-py3-none-any.whl
- Upload date:
- Size: 8.7 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 |
e9f326b3a4da0f2c3d98f6b06321e3183be37cf0a3cb9afa0627811fbcb6d98a
|
|
| MD5 |
94daf5e8443b0c480b5148b288657911
|
|
| BLAKE2b-256 |
5661f99984457d3b389ed6d204bbbbae9823b04e5c3e72b6eaefe85a77f7ee3a
|