NLWeb#

Предлагаемая Microsoft инфраструктура NLWeb позволяет создавать интерфейсы естественного языка для веб-сайтов, используя Schema.org, форматы вроде RSS и появляющийся протокол MCP.

В рамках NLWeb поддерживается использование Vector DB в качестве векторного хранилища для хранения вложений и извлечения контекста.

Использование#

Интеграция с Vector DB включена по умолчанию в NLWeb. Можно установить и настроить его для использования Vector DB в качестве механизма поиска.

Установка#

Склонируйте репозиторий и настройте среду выполнения:

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

Настройка Vector DB#

Чтобы использовать Vector DB, обновите конфигурацию.

  1. Скопируйте и отредактируйте файл переменных окружения

    cp .env.template .env
    

    Убедитесь, что следующие значения установлены в файле .env:

    QDRANT_URL="https://xyz-example.cloud-region.cloud-provider.cloud.qdrant.io:6333"
    QDRANT_API_KEY="<your-api-key-here>"
    
  2. Обновите файлы конфигурации в code/config

    retrieval_engine: qdrant_url
    

    Также можно воспользоваться экземпляром Vector DB в оперативной памяти для экспериментов.

    retrieval_engine: qdrant_local
    
    endpoints:
      qdrant_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: qdrant
    

Загрузка данных#

После настройки загрузите контент с помощью RSS-лент.

Из директории code:

python -m tools.db_load https://feeds.libsyn.com/121695/rss Behind-the-Tech

Это позволит импортировать содержимое в локальный экземпляр Vector DB.

Запуск сервера#

Для запуска NLWeb из директории code выполните команду:

python app-file.py

Теперь можно запрашивать контент естественным языком либо через интерфейс веб-приложения по адресу http://localhost:8000/, либо напрямую через совместимый с MCP REST API.

Дополнительная документация#