聊天机器人作为数字客户服务和自动化的核心,已经存在超过十年。最初,它们是基于简单规则的程序,依照预设的逻辑树处理重复性任务,比如回答常见问题、为客服提供自动回复,或者在结构化流程中收集用户信息。与如今基于大型语言模型(LLM)的机器人相比,传统聊天机器人的能力有限,但它们曾是自动化高频、低复杂度交互的流行选择。然而,这些技术实现难以处理非结构化对话、歧义或偏离预期模式的用户输入。用户体验通常显得僵硬且不自然——人们明显感觉自己是在与机器对话,交互常以“我不理解,请再试一次”之类的挫败感言语结束。
如今,人们已经习惯与基于 LLM 的工具(如 ChatGPT)聊天,基于规则的聊天机器人方式似乎成了遥远的过去。现代 AI 聊天机器人不再仅依赖预定义脚本和规则,而是利用先进的自然语言处理(NLP)、上下文理解和生成式 AI,提供动态且类人化的互动。这些进步让聊天机器人的角色大大扩展,包括:
- 理解复杂查询并给出相关且表达良好的回答
- 在对话中维持记忆,提供连续性和上下文关联
- 代表用户执行操作,如预约或获取个性化数据
- 随时间学习和适应,基于真实交互不断改进
- 集成外部 API 和数据库,实时获取信息
这场变革使得软件工程师拥有了广泛的工具和框架,帮助构建智能聊天机器人,从无代码工作流构建器到完全可定制、具备自主推理和训练数据支持的 AI 助手。不论是构建简单的自动客服机器人,还是复杂的、能够执行决策的 AI 代理,相关技术现已比以往任何时候都更加易于获取。
聊天机器人的实现类型
实现聊天机器人的主要有三种方案:
无代码 AI 聊天机器人
这类工具承诺即便没有任何编程知识的用户也能部署 AI 助手。通常提供易用界面,允许用户上传数据集、定义工作流、选择底层 AI 模型。虽然这些工具面向非技术用户,但我将其纳入本书,因为根据我的经验,集成这类工具与企业工作流的其他部分通常需要一定技术知识,最终这常是软件工程师的工作范畴。
无代码聊天机器人是前文提及的基于规则聊天机器人的自然进化,主要应用于客户支持、电商和常见问题自动化等场景。
拖拽式聊天机器人构建器
这些工具在简便性和灵活性之间找到平衡,适应不同客户需求。用户通常可以通过连接具有预定义功能的模块,以可视化方式构建对话流程,同时集成 AI 功能以实现动态交互。开发者可在后台自动化工作流并运用更复杂逻辑。
此类构建器适合客户服务、潜在客户生成和内部流程自动化等场景。
基于代码的 AI 框架
通常是 SDK、API 或开源库,允许软件工程师完全控制聊天机器人的行为,用作模板实现定制化聊天体验。此类框架对训练数据的质量标准较高。典型用例包括自主推理、与其他工具和流程的集成,甚至数据安全(因可自托管于企业云基础设施)。
评估流程
为了比较聊天机器人构建工具,我创建了一个能与“在线零售数据集”交互的聊天机器人。该数据集由机器学习领域的 O’Reilly 作者 Lucas Soares 创建,包含一家电商商店的交易数据。我用它来测试聊天机器人检索事实数据和回答复杂用户查询的能力。
每个聊天机器人都通过一组预定义查询进行了测试,评估内容包括:
- 设置和部署的便捷性
- 检索事实信息的能力
- 多轮交互中的上下文保持能力
- 处理复杂查询的能力
我测试了多个工具,但这里只包含了上一节中各类别的代表性工具。
我们先从无代码方案开始:Chatbase。
Chatbase
Chatbase 于 2022 年推出,是一款无代码 AI 聊天机器人构建器,允许用户通过上传文档或数据集来创建和训练聊天机器人。它因界面简单且与 OpenAI 的 GPT 模型集成而迅速走红,为希望无需技术专长就能自动化支持和客户交互的企业提供了便捷解决方案。虽然该产品仍相对年轻,但已被小企业、个体创业者和初创公司广泛采用,尤其适用于客户支持和常见问题自动化。该工具提供免费套餐以及付费方案,满足聊天机器人的扩展需求。
在本次测试中,我在 Chatbase 网站上创建了一个免费账号,迅速找到了添加训练数据的入口——我上传了包含电商产品目录的电子表格(见图 7-1)。仅用两三分钟,我就开始与我的聊天机器人进行交互。
聊天机器人准备就绪后,我开始提问,就像一位真实客户一样:
“我看到你们目录中有一些安卓手机。帮我比较一下它们的功能和价格,并告诉我性价比最高的安卓手机有哪些。”
它对第一个问题表现不错,成功获取了正确结果,并以格式良好的回复展示出来,如图7-2所示。
第二个问题中,我故意询问了一个不存在的产品:
“我想找一台价格低于10美元的笔记本电脑,哪款是最好的选择?”
这是导致生成式 AI 出现幻觉的常见情景,但我的 Chatbase 机器人表现出色,明确表示没有符合该条件的产品(见图7-3)。
第三个问题更复杂一些,我不仅询问目录中的具体产品,还要求 Chatbase 比较它们的属性,最终给出推荐意见:
“你们有手机和数码相机。我对摄影感兴趣,我应该买索尼 Xperia XA2 Ultra 还是宾得 K-1 相机?为什么?”
我的 Chatbase 机器人表现依旧不错,详细说明了每个选项的属性,并就何时选择哪款产品给出了建议(见图7-4)。
Chatbase 还通过其 Connect 模块使发布聊天机器人变得非常简单。只需几次点击,我就能获得一段代码,将聊天机器人通过聊天气泡或 iframe 嵌入网站中。我对上传训练数据、测试机器人和发布流程的简便性感到非常惊喜。
Chatbase 在本次测试中表现出色,如果你拥有特定的训练数据,并且稍作提示调整以获得所需功能和语气,它可能是将聊天机器人集成到网站中的最简便方式之一。因此,我给它打了9分(满分10分)。我没有给满分的原因是,最终产品的表现与其底层大型语言模型(本测试中为 gpt-4o-mini)的默认行为非常相似。换句话说,如果用户将相同的训练数据上传到 ChatGPT 并提问,答案也会非常接近。不过,能够如此轻松地完成所有操作并几次点击就发布机器人,确实令人印象深刻。
Botpress
作为一种拖拽式选项,Botpress 最初成立于2017年,当时主要用于开发基于规则的聊天机器人。现在的产品版本提供了一个可视化构建器,使用户能够创建复杂的对话逻辑,并将生成的机器人集成到第三方 API 和其他应用程序中。近年来,Botpress 的采用率不断增长,尤其受到中型企业和寻求开源替代方案的组织青睐。其模块化架构和自托管选项,使其特别适合那些需要遵守数据隐私法规且要求系统可扩展性的企业。
为了测试 Botpress,我采用了与 Chatbase 相同的测试流程。我在 Botpress 网站创建了一个免费账号,并通过它的小部件开始构建一个代理(该产品中聊天机器人称为“代理”)。由于我需要先在一个单独的页面创建一个表格(它将 CSV 格式的训练数据称为“表格”),然后将该表作为知识库添加到机器人中(见图7-5),我花了一些时间才搞明白如何添加训练数据。
Botpress 提供了比简单聊天机器人功能更多的选项。用户可以添加不同的代理和工具,并将它们组合成一个工作流程,作为机器人背后的后端推理引擎(见图7-6)。它比 Chatbase 更强大;不过,要让一个简单的机器人正常运行,我花了大约30到40分钟的反复试验和调整。
聊天机器人最终准备就绪后,我开始与它互动,提出了与之前对 Chatbase 机器人提问的完全相同的问题(见图7-7)。
对于第一个问题,机器人正确地找出了三款预算型安卓手机;不过,它还提供了一个价格为0美元的选项,这显然是数据错误,但它并没有向我提示这一点。如果我是一个真实客户,面对这样的建议我会感到有些沮丧。
同样,在第二个问题中,我故意询问了一个不存在的产品,而我的 Botpress 机器人表现良好,正确地表示没有任何产品符合我的查询(见图7-8)。
第三个问题,我再次提出了关于比较手机和相机的复杂问题。我的 Botpress 机器人表现不错,说明了每个选项的属性,并给出了何时推荐购买其中之一的建议。不过,格式不是很好,因为每个产品的属性都被压缩在一个单独的要点中(见图7-9)。
Botpress 还提供了一键发布功能,能够为你的聊天机器人创建独立的 URL,并为最常见的使用场景(如实现聊天气泡、嵌入网站等)提供简明指南。
Botpress 在测试中表现不错。部分回答缺乏打磨可能是因为测试时默认使用了较旧的模型(gpt-4o-2024-08-06)。它拥有比 Chatbase 更加全面的工作流功能,但用户界面对新手来说导航较为困难。我给它评分为 8/10。
LangChain
基于代码的框架 LangChain 于 2022 年应运而生,以满足开发者构建 AI 驱动应用时对友好框架的需求。它设计用于集成主流大型语言模型(如 GPT-4、Claude 以及开源替代品),允许软件工程师创建具备高级推理能力、记忆功能和动态 API 集成的定制 AI 助手。该框架迅速被 AI 工程师和创业公司采纳,尤其适合构建超越基础聊天机器人的代理系统,已成为构建基于 LLM 的应用和 AI 代理的首选框架。
在本次测试中,我使用 LangChain 框架编写了自己的聊天机器人。该框架文档齐全,上手较为容易。从一个空仓库开始,到实现以下图片中的聊天机器人,大约花费了 30 到 40 分钟(借助 Cursor 生成模板代码、冗长代码块和最后的格式调整)。生成的代码可在本书的 GitHub 仓库中找到。我在本地运行,测试时使用的是 gpt-4o-mini 模型。
对于第一个问题,机器人正确地找出了三款安卓手机,推荐了一款真正适合预算的手机,并且给出了合理的解释,表现也很不错(见图7-10)。
对于第二个问题,关于不存在的产品,机器人确实意识到没有这样的产品存在(见图7-11)。回答“I don’t know”(我不知道)是因为它对提示中“如果你不知道答案,就直接说不知道”这部分内容进行了字面理解。这种表现有些古怪,但实际上是正确的。
对于比较手机和相机的复杂问题,我的 LangChain 聊天机器人表现不错,陈述了每个选项的属性以及选择其中一个的利弊权衡(见图7-12)。它的回答与我用其他工具创建的机器人非常相似,这也说明了输出内容很大程度上依赖于底层模型。
LangChain 不提供一键发布功能。我是在本地机器上运行这段代码的,但如果想让这个机器人公开访问,就需要将其部署到云服务器上。此外,LangChain 也没有现成的指导方案来将我的聊天机器人集成到聊天气泡或嵌入到其他网站;这些功能需要根据需求自行开发。
我用 LangChain 实现过多个真实世界的聊天机器人解决方案,非常喜欢它。它不仅能构建简单的聊天机器人,还能构建更复杂的机器人,甚至可以利用 LangGraph 实现多智能体工作流。它是一个功能强大的解决方案,但确实需要一定的软件开发技能。同时,文档非常完善,开发者社区也很活跃。在其他 AI 工具如 Cursor 和 GitHub Copilot 的辅助下,这些实现所需的时间相比几年前大大缩短。因此,我给 LangChain 评分 10 分(满分10分)。
工具比较
本次测试中的所有工具表现都非常好,所以它们才被收录在这里(见表 7-1)。不过,LangChain 依然是我构建各种聊天机器人的首选工具。
工具 | 用户体验 | 测试表现 |
---|---|---|
Chatbase | 无代码 AI 聊天机器人 | 9/10 |
Botpress | 拖拽式聊天机器人构建器 | 8/10 |
LangChain | AI 代码框架 | 10/10 |
总结
作为一名 CTO,多年来我构建过许多聊天机器人,大多是在近期生成式 AI 浪潮之前,功能受限于预定义的逻辑树和非常小众的应用场景。
本章测试突出显示了现在可以用极少的努力构建一个功能强大的聊天机器人。这些机器人不仅可以基于特定数据进行训练,还能在语气、推理范围和执行具体用例细节方面表现出色。成千上万的企业正将这些能力集成到他们的产品中,这并不令人惊讶。同样值得注意的是,用户界面模式正经历巨大转变,从传统的列表→搜索→详情流程,转向允许用户以更自由、非结构化方式“与数据对话”的聊天机器人界面。
值得提醒的是,这种转向聊天机器人界面也带来了幻觉、部分回复以及其他众所周知的大型语言模型技术的怪癖。实际上,我写这章的主要感受是:所有测试工具的输出都高度依赖其底层使用的大型语言模型,这既是优点,也是缺点。用户只需极少操作,就能设置出一个能抓取信息、正确组织并推导复杂结论的出色聊天机器人,但该机器人的输出仍然受限于底层模型的局限性,比如幻觉现象。