当前位置: 首页 > 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 本地部署完成。

http://www.xdnf.cn/news/604657.html

相关文章:

  • EasyRTC音视频实时通话WebP2P技术赋能的全场景实时通信解决方案
  • 数据分析概述and环境配置
  • 照片时光机APP:修复老照片,重现往昔美好
  • Windows逆向工程提升之IMAGE_EXPORT_DIRECTORY
  • Git和Gitcode交互教程
  • 85. Java Record 深入解析:构造函数、访问器、序列化与实际应用
  • 关于千兆网络变压器的详细介绍
  • 【Flutter】多语言适配-波斯语RTL从右到左
  • 基于 Vue3 与 exceljs 实现自定义导出 Excel 模板
  • 如何在Mac 上使用Python Matplotlib
  • Redis 详解
  • G1人形机器人软硬件组成
  • vite学习笔记
  • Jenkins 2.426.2配置“构建历史的显示名称,加上包名等信息“
  • 计算机网络——每一层的用到的设备及其作用
  • Spring MVC-面试题(33)
  • Python asyncio库:基本概念与使用方法
  • voc怎么转yolo,如何分割数据集为验证集,怎样检测CUDA可用性 并使用yolov8训练安全帽数据集且构建基于yolov8深度学习的安全帽检测系统
  • React+MapBox GL JS引入URL服务地址实现自定义图标标记地点、区域绘制功能
  • vue 鼠标经过时显示/隐藏其他元素
  • FPGA高效验证工具Solidify 8.0:全面重构图形用户界面
  • 游戏引擎学习第306天:图结构排序的调试
  • QT-VStudio2107加载项目,报出“元素 <LanguageStandard>只有无效值“Default“”
  • ten-vad:低延迟、轻量化且高性能的流式语音活动检测系统
  • 2025年5月网工基础知识
  • rosbridge_suit、roslibpy 源码阅读与简单测试 —— 图片编解码与传输
  • 从 Docker 到 runC
  • 小说漫画管理系统
  • FRP技术概览
  • 黑马点评--短信登录实现