构建可靠AI客服的核心是建立知识pipeline而非简单爬取:明确权威来源、控制内容质量、持续测试更新,Oscar Chat案例展示四步训练流程。
给网站添加聊天界面很容易。但要让 AI 可靠地回答公司具体问题,就是真正的工程和内容问题了。一个支持助手需要的不仅仅是能力强的语言模型,还需要受控的来源集合、检索工作流、测试流程,以及当可用知识不足时明确的降级方案。本文介绍了一种针对中小型产品的实用网站到答案的工作流。虽然基于构建 Oscar Chat 的经验,但这些原则适用于任何基于检索的客户支持助手。
在抓取任何内容之前,先定义哪些页面是业务上认为是权威的。公共网站通常包含同一信息的多个版本。可能有旧的活动着陆页、当前的定价页面、归档的文档、翻译页面,以及描述已下线功能的博客文章。爬虫可以将它们全部收集起来,但收集不等于真相。实用的来源策略需要回答三个问题:允许哪些路径、应该排除哪些路径,以及当两个来源冲突时哪个页面优先。对于首次实现,稳定的页面是最安全的来源集:文档、产品页、FAQ、配送和退货政策、服务说明以及当前的定价说明。
爬虫负责获取页面。知识管道将这些页面转化为可用的证据。提取层应移除重复的导航、Cookie 横幅、不相关的页脚内容以及其他增加噪音的文本。它应该保留页面标题、标题、有意义的段落边界和来源 URL。然后索引层可以将清理后的内容分割成可检索的单元。具体的分块策略取决于页面结构,但一个有用的块应该保留足够的上下文,使其在被独立检索时仍然有意义。例如,"可使用 30 天"这样的句子,如果没有标题或前置描述来说明"它"指的是什么,就没有用处。
元数据同样重要。至少要保留页面 URL、页面标题、章节标题、语言和爬取时间。这些字段有助于调试、过滤和未来刷新。
常见的失败模式是允许助手在能生成看似合理的文本时就回答。对于客户支持来说,看似合理不是标准。答案应该被检索到的来源所支持。系统需要一个不确定性策略:如果可用证据薄弱、冲突或缺失,助手应该说明无法确认答案,并提供人工转接或联系表单。这种行为对于定价、退款、法律条款、医疗信息、金融服务和订单特定问题尤为重要。
最好的降级方案不是通用的错误提示。它应该告诉访问者接下来可以做什么:留下联系方式、发起实时聊天、打开 WhatsApp,或将问题发送给相应的团队。
只测试几个理想问题会产生虚假的信心。一个实用的评估集应该包括直接问题、不正式的问题、拼写错误、组合两个主题的问题、不支持的问题,以及正确响应应该是人工转接的问题。例如,配送政策可以用以下问题测试:"配送需要多长时间?"、"这个能在周五前到达吗?"、"delivery netherlands?"和"你能保证明天到达吗?"。这些问题可能引用同一来源,但需要不同级别的不确定性。审查答案的事实准确性、来源相关性、完整性、语气和适当的拒绝。保存失败的问题,并在对内容或检索工作流进行任何有意义的更改后重新运行它们。
网站知识会变得过时。价格会变。政策会变。新页面被添加,旧页面仍然可访问。因此生产工作流需要一个刷新策略,即使第一版依赖手动重新训练。跟踪爬取时间和来源 URL。检测已删除的页面。使移除过时来源成为可能。如果网站很大,优先处理重要部分,而不是无控制地重新抓取所有内容。运营问题很简单:当面向客户的页面发生变化时,助手应该多快地学习新信息?
对于 Oscar Chat,我们将面向用户的过程简化为四个步骤:打开 Train 部分,添加网站 URL,在内容收集时等待,然后在 Playground 中测试结果。简单的界面建立在更重要的产品原则之上:用户应该能够从现有内容开始,检查系统学到了什么,并用文件或批准的答案改进知识。这比要求每个小企业设计检索系统或手动将网站重建为知识库更实用。
AI 支持助手的质量受限于其来源的质量、结构和新鲜度。模型选择很重要,但它无法修复相互矛盾的政策或提供业务从未记录过的事实。因此可靠实现将抓取、内容清理、来源控制、评估和人工降级视为产品的一等公民。
Disclosure: I am the founder of Oscar Chat, the product used as the practical example in this article. More information is available at https://www.oscarchat.ai/ai-chatbot/.