微软近日开源了一个重量级新项目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想做的就是
项目地址:https://github.com/microsoft/NLWeb
使用方法:https://github.com/microsoft/NLWeb/blob/main/docs/nlweb-hello-world.md
(文:AI工程化)