Skip to main content

Azure vector database provider for NLWeb - Azure AI Search client

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:

  1. Create package structure:

    nlweb-yourprovider/
    ├── pyproject.toml
    ├── README.md
    └── nlweb_yourprovider/
        ├── __init__.py
        └── your_client.py
    
  2. Implement VectorDBClientInterface:

    from nlweb_core.retriever import VectorDBClientInterface
    
    class YourClient(VectorDBClientInterface):
        async def search(self, query, site, num_results, **kwargs):
            # Your implementation
            pass
    
  3. Declare dependencies in pyproject.toml:

    dependencies = [
        "nlweb-core>=0.5.0",
        "your-provider-sdk>=1.0.0",
    ]
    
  4. Publish to PyPI:

    python -m build
    twine upload dist/*
    

License

MIT License - Copyright (c) 2025 Microsoft Corporation

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

nlweb_azure_vectordb-0.6.1.tar.gz (5.2 kB view details)

Uploaded Source

Built Distribution

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

nlweb_azure_vectordb-0.6.1-py3-none-any.whl (5.6 kB view details)

Uploaded Python 3

File details

Details for the file nlweb_azure_vectordb-0.6.1.tar.gz.

File metadata

  • Download URL: nlweb_azure_vectordb-0.6.1.tar.gz
  • Upload date:
  • Size: 5.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","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}

File hashes

Hashes for nlweb_azure_vectordb-0.6.1.tar.gz
Algorithm Hash digest
SHA256 b00960b355fb4c6bdc455cfb9c78ac32ddf10fd20a7bf6204c3117b7da96c9a6
MD5 4467a0ab0ec33f9a4192c6a0f073b082
BLAKE2b-256 9d7cffeed42bd983885e996300161cdd683be087c05c17543603090cfdc90c8b

See more details on using hashes here.

File details

Details for the file nlweb_azure_vectordb-0.6.1-py3-none-any.whl.

File metadata

  • Download URL: nlweb_azure_vectordb-0.6.1-py3-none-any.whl
  • Upload date:
  • Size: 5.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","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}

File hashes

Hashes for nlweb_azure_vectordb-0.6.1-py3-none-any.whl
Algorithm Hash digest
SHA256 31763c7dd7bf850b03a0f702e85099d7c4bee6fbd6b9f537476c23d86d2d3aec
MD5 ec1fb4d1e9b56857cb153016dc8a1c6e
BLAKE2b-256 0b0b3bb91c20e22a405ad1d813f8d74cc95804ba2dc0a31f22a01739e1b04c4b

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