我的客户不想手动添加常见问题,所以我构建了一个系统,自动爬取他们的网站并生成知识库
摘要
描述了构建一个网络爬虫,从酒店网站提取内容,使用AI智能体生成结构化的常见问题,并将其存储在向量数据库中,实现知识库的自动创建。
基于我最近交付的一个酒店邮件AI系统(500家酒店,每天约1.5万封邮件)。客户提出了一个需求,最终成为构建过程中最有趣的部分。他们不想为每间新上线的酒店手动添加常见问题到数据库。面对500多家酒店且不断新增的情况,手动输入常见问题本身就需要全职投入。所以他们要求两件事:输入酒店网站URL或PDF,系统自动提取所有相关信息并生成常见问题知识库。
网站爬虫的工作原理如下:从酒店URL开始,首先访问其站点地图以发现页面。它会维护一个已访问URL的集合,确保不会重复爬取同一页面。爬取上限为50页,因为绝大多数有用信息都在前几页。爬取整个网站需要耗费额外数小时处理时间,却几乎不增加价值。垃圾过滤很重要。爬虫会跳过诸如booking、reserve、login、careers、legal、checkout、cart、admin等路径。这些页面不含常见问题相关内容。它只追随那些看起来指向有用信息(如 amenities、FAQ、policies 等)的链接。
内容提取使用BeautifulSoup,在获取文本前会剥离script、style、nav、footer和header元素。页脚和导航完全是噪音,如果包含会污染知识库。爬虫通过追随首页的相关内部链接进行深度爬取,因此能捕获后续页面如/amenities或/faq,而不仅仅是着陆页。
真正让系统发挥作用的部分在于:爬取并清理内容后,并不是直接将原始网站文本倒入向量数据库。而是由另一个AI智能体读取清理后的内容,从中生成结构化的常见问题——问答对。然后将它们嵌入并存储。所以流程是:网站URL → 爬取相关页面 → 清理内容 → AI从内容生成常见问题 → 嵌入并存储。客户只需粘贴一个URL,整个知识库就自动构建完成。
当再次爬取同一URL时,该酒店的旧数据会被删除并替换为新数据,因此重新爬取会更新知识库而非重复添加。
常见问题生成智能体的系统提示词是最关键的部分。我为其设定了明确的规则、护栏和11个实例。垃圾进垃圾出。如果常见问题生成产生了错误信息(例如错误的价格或政策),可能导致客户损失真金白银和信任。我曾见过因系统提示词草率,AI智能体向客户报错价格的案例。
我录制了一个完整的构建爬虫和常见问题生成功能的实操视频,感兴趣可以查看实际代码:[here](https://www.youtube.com/watch?v=G3g8q_oPx0Q)
欢迎就爬虫或常见问题生成方法提问。
相似文章
Smart FAQs
Smart FAQs 是在 Product Hunt 上发布的新产品,它利用 AI 根据自定义内容和客户上下文生成更智能的答案。
@DanKornas: 构建知识库代理,无需从向量数据库开始 知识代理模板是一个开源的文件系统…
一个开源的知识代理模板,通过使用基于文件的搜索(grep、find、cat)避免向量数据库,并支持多种平台,如网页聊天、GitHub和Discord机器人。
我制作了一个完全在浏览器中运行的FAQ聊天机器人;只需两次点击即可启动本地AI
一个完全在浏览器中运行的使用本地AI的FAQ聊天机器人,只需两次点击即可开始。
我构建了一个完全免费的工具,让您的AI代理免费获得网络能力(抓取+搜索+爬取),完全免费,无需API密钥,也无免费层级。
一位开发者创建了一个完全免费的工具,为AI代理提供网络能力,包括抓取、搜索和爬取,无需任何API密钥或订阅层级。
@ziwenxu_: https://x.com/ziwenxu_/status/2053241837453029439
文章详细介绍了一个使用 Obsidian 构建自动化“Codex 知识库”的工作流,其中 AI 智能体自动导入并整理每日书签至结构化的知识库中,以降低上下文负债。