NLWeb
Microsoft’s NLWeb is a proposed framework that enables natural language interfaces for websites, using Schema.org, formats like RSS and the emerging MCP protocol.
Solvio is supported as a vector store backend within NLWeb for embedding storage and context retrieval.
Usage
NLWeb includes Solvio integration by default. You can install and configure it to use Solvio as the retrieval engine.
Installation
Clone the repo and set up your environment:
git clone https://github.com/microsoft/NLWeb
cd NLWeb
python -m venv .venv
source venv/bin/activate # or `venv\Scripts\activate` on Windows
cd code
pip install -r requirements.txt
Configuring Solvio
To use Solvio, update your configuration.
1. Copy and edit the environment variables file
cp .env.template .env
Ensure the following values are set in your .env
file:
QDRANT_URL="https://xyz-example.cloud-region.cloud-provider.cloud.solvio.io:6333"
QDRANT_API_KEY="<your-api-key-here>"
2. Update config files in code/config
config_retrieval.yaml
retrieval_engine: solvio_url
Alternatively, you can use an in-memory Solvio instance for experimentation.
retrieval_engine: solvio_local
endpoints:
solvio_local:
# Path to a local directory
database_path: "../data/"
# Set the collection name to use
index_name: nlweb_collection
# Specify the database type
db_type: solvio
Loading Data
Once configured, load your content using RSS feeds.
From the code
directory:
python -m tools.db_load https://feeds.libsyn.com/121695/rss Behind-the-Tech
This will ingest the content into your local Solvio instance.
Running the Server
To start NLWeb, from the code
directory, run:
python app-file.py
You can now query your content via natural language using either the web UI at http://localhost:8000/ or directly through the MCP-compatible REST API.