NLweb本地部署指南
NLWeb 本地部署指南
NLWeb 是 Microsoft NLDev 团队 开源的一套自然语言驱动的 Web 应用开发框架,旨在通过自然语言(Natural Language)交互方式,实现对 Web 应用的理解、控制和问答。
🔍 核心功能
- 自然语言问答接口:用户可直接以自然语言提问,系统会从文档或网页数据中检索并生成回答。
 - 文档解析与索引:支持 RSS、网页、文本等格式的文档接入和向量化处理。
 - 向量搜索引擎集成:支持 Qdrant 等本地或云端向量数据库,进行语义检索。
 - 插件式配置:LLM 服务、嵌入服务、检索服务都可以通过配置快速切换(支持 OpenAI、Azure、Snowflake 等)。
 - 模块化设计:配置清晰,部署灵活,支持多种部署方式。
 
🧩 应用场景
- 企业知识库问答系统
 - 智能客服或辅助系统
 - 内容聚合与摘要平台
 - 自然语言交互式信息查询前端
 
🚀 技术栈与架构
- 前端 UI:React + Tailwind(可扩展)
 - 后端服务:FastAPI + Python 脚本工具
 - 数据层支持:本地向量数据库(如 Qdrant)或云服务
 - LLM 支持:OpenAI GPT、Azure OpenAI、Snowflake Arctic 等
 
官方仓库:
 🔗 https://github.c
 om/microsoft/NLWeb/tree/main
✨ 环境准备
本地部署需要以下组件:
- LLM 服务提供商:OpenAI
 - 嵌入向量服务提供商:OpenAI
 - 向量检索数据库:本地 Qdrant
 
📖 参考文档:OpenAI API 官方文档
📦 安装 Python 环境
请参考官方文档中的 Hello World 示例 完成依赖安装和环境初始化。
⚙️ 配置 .env 环境变量
 
以 OpenAI 为例,首先访问 OpenAI API 官网,获取 OPENAI_API_KEY。
编辑 .env 文件,将以下内容粘贴至 NLWeb/code/.env 中,并根据需求进行修改:
# Qdrant 本地向量数据库
QDRANT_URL="http://localhost:6333"
QDRANT_API_KEY=""# OpenAI GPT 接口
OPENAI_ENDPOINT="https://api.openai.com/v1/chat/completions"
OPENAI_API_KEY=""# OpenAI 嵌入模型(如使用 Azure,请填写以下项)
AZURE_OPENAI_ENDPOINT=""
AZURE_OPENAI_API_KEY=""# 可选:Snowflake 嵌入服务(如不使用可留空)
SNOWFLAKE_ACCOUNT_URL=""
SNOWFLAKE_PAT=""
SNOWFLAKE_EMBEDDING_MODEL=snowflake-arctic-embed-l-v2.0
SNOWFLAKE_CORTEX_SEARCH_SERVICE=""# 日志级别配置
NLWEB_LOGGING_PROFILE=development# 可选:本地输出目录
# NLWEB_OUTPUT_DIR=./output
 
📂 启动本地 Qdrant 向量数据库
NLWeb 使用 Qdrant 作为向量索引服务。你可以通过以下任一方式快速在本地部署 Qdrant:
✅ 推荐方式:使用 Docker 运行 Qdrant
docker run -p 6333:6333 -p 6334:6334 qdrant/qdrant
 
- 默认地址:
http://localhost:6333 - 你可以通过访问 
http://localhost:6333/healthz验证是否启动成功(返回OK即为正常) 
💾 Docker Compose(支持数据持久化)
新建一个 docker-compose.yml 文件:
version: '3.8'
services:qdrant:image: qdrant/qdrantports:- "6333:6333"- "6334:6334"volumes:- ./qdrant_data:/qdrant/storage
 
启动服务:
docker-compose up -d
 
🔗 安装 Qdrant Python 客户端(可选)
如需在 Python 中直接访问 Qdrant,可执行以下命令:
pip install qdrant-client
 
🧪 测试向量数据库是否运行正常
一旦 Qdrant 启动成功,可以使用 NLWeb 提供的测试命令导入数据:
cd code
python -m tools.db_load https://feeds.libsyn.com/121695/rss Behind-the-Tech
 
🛠️ 配置服务文件
NLWeb 的服务配置主要分为以下三类:
config_llm.yaml
 
preferred_provider: openai
 
config_embedding.yaml
 
preferred_provider: openai
 
config_retrieval.yaml
 
preferred_endpoint: qdrant_local
 
📁 文件放置路径:
| 文件名 | 路径 | 
|---|---|
.env | NLWeb/code/.env | 
config_llm.yaml | NLWeb/code/config/config_llm.yaml | 
config_embedding.yaml | NLWeb/code/config/config_embedding.yaml | 
config_retrieval.yaml | NLWeb/code/config/config_retrieval.yaml | 
🚀 启动服务
在 NLWeb/code/ 目录下运行:
python app-file.py
 
运行成功后将看到以下界面:
✅ 至此,NLWeb 本地部署完成。

