当前位置: 首页 > news >正文

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

📁 文件放置路径:

文件名路径
.envNLWeb/code/.env
config_llm.yamlNLWeb/code/config/config_llm.yaml
config_embedding.yamlNLWeb/code/config/config_embedding.yaml
config_retrieval.yamlNLWeb/code/config/config_retrieval.yaml

🚀 启动服务

NLWeb/code/ 目录下运行:

python app-file.py

运行成功后将看到以下界面:

运行界面示例

✅ 至此,NLWeb 本地部署完成。

相关文章:

  • JavaScript 语句标识符详解
  • 【信息系统项目管理师】第18章:项目绩效域 - 45个经典题目及详解
  • 20250523-关于Unity中的GUID简介(未完待续)
  • 车载诊断架构 --- 车载诊断有那些内容(上)
  • 解决Vue项目依赖错误:使用electron-vite重建
  • 基于vite构建的vue项目添加路由时注意要利用import.meta.glob映射构建生成后的路径
  • 一次复杂接口故障的抓包全过程:四款工具协同作战实录(含 Charles)
  • # 大模型的本地部署与应用:从入门到实战
  • kali的简化安装
  • Honeywell TK-PRS021 C200
  • 199.二叉树的右视图
  • 美团外卖霸王餐api如何对接?详细讲解
  • Trae 的核心功能介绍
  • NV066NV074美光固态颗粒NV084NV085
  • MySQL索引,存储引擎,并发控制和事务
  • 每周资讯 | 网易游戏发布会9款新品曝光;TikTok小程序测试开启
  • python与flask框架
  • 文献阅读——NeuroBayesSLAM
  • 【MySQL】 数据库基础数据类型
  • Unity EventCenter 消息中心的设计与实现
  • 东明网站建设推广/成功的网络营销案例有哪些
  • 网页版微信怎么删除聊天记录/seo网站关键词排名软件
  • 如何用WordPress建小说站/cps推广接单平台
  • 软件开发的阶段/济南seo顾问
  • 香港做网站公司/手机怎么制作网页
  • 一个人在线观看免费社区/seo外包公司是啥