微软近日开源了一个重量级新项目NLWeb (Natural Language Web) ,致力于简化网站构建对话式交互界面的过程 。传统的对话式接口构建过程复杂,需要开发者具备丰富的自然语言处理和对话式AI知识。NLWeb项目通过提供一系列开源协议和工具,简化了这一过程,使得开发者能够更加专注于业务逻辑的实现。
核心理念与工作方式
NLWeb 的核心思想是巧妙地利用了现有的网络生态。
- 拥抱现有标准 :NLWeb 认识到,全球有超过一亿的网站已经在使用 Schema.org 或 RSS 等半结构化数据格式来描述其内容。这为NLWeb提供了一个丰富的、现成的语义层。LLM(大型语言模型)通常对 Schema.org 有很好的理解,NLWeb 正是利用了这一点。
- 协议先行 :它定义了一套简洁的协议(基于REST API),使得用户或AI代理能够通过自然语言与网站进行交互,并以基于Schema.org的JSON格式接收返回结果。其中, MCP (Model Context Protocol) 是一个关键的新兴协议,NLWeb原生支持。您可以将MCP之于NLWeb的关系,类比为HTTP之于HTML的关系——它是AI代理与NLWeb赋能的网站进行交互的通道。
- “聊天查询的生命周期” :当用户发起一个查询,NLWeb会进行一系列处理,包括(但不限于):
- 查询理解与去语境化 :基于对话历史,理解用户真实意图。
- 数据检索 :向向量数据库等后端服务检索相关信息(通常是Schema.org格式的JSON对象)。
- 结果排序与生成 :利用LLM对结果进行打分、排序,并可能生成摘要或直接回答。
- 可控性 :一个重要的特点是,由于返回的内容源自网站自身的数据库,这在很大程度上避免了AI的“幻觉”问题,确保了信息的真实性(除非进行了可能引入不确定性的后处理)。
NLWeb的优势与特点
-
降低门槛 :让原本复杂的对话界面开发变得简单,特别是对于那些内容可以被抽象为“项目列表”(如产品、食谱、景点、评论等)的网站。
-
开放与社区驱动 :NLWeb提供的是概念验证代码,鼓励社区基于其协议开发更多样化、更强大的实现。
-
平台无关性 :它设计上是轻量级且可扩展的,可以在多种操作系统(Windows, MacOS, Linux)上运行,并兼容各类向量数据库(Qdrant, Snowflake, Milvus, Azure AI Search等)和LLM(OpenAI, Deepseek, Gemini, Anthropic等)。
-
双重受益 :不仅能通过对话界面提升人类用户的体验,还能通过MCP协议促进AI代理之间的自动化交互,构建一个更智能、互联的AI Web。
小结
简单讲,NLWeb想做的就是 为网站装上一个智能的“对话引擎” ,让用户和AI都能通过自然语言与网站高效互动,最终目标是推动构建一个更加智能和互联的“AI Web”。
项目地址:https://github.com/microsoft/NLWeb
使用方法:https://github.com/microsoft/NLWeb/blob/main/docs/nlweb-hello-world.md
公众号回复“进群”入群讨论。