本教程以搭建一个产品助手智能体为例,说明如何使用扣子编程的知识库功能来实现产品资料问答场景。
扣子编程是一款用来开发新一代 AI Chat智能体的应用编辑平台,无论你是否有编程基础,都可以通过这个平台来快速创建各种类型的 Chat Bot,并将其发布到各类社交平台和通讯软件上。
扣子编程的知识库功能提供了简单易用的方式来存储和管理外部数据,让你的智能体可以与指定的数据进行交互。将数据上传到知识库后,扣子编程会自动将你的文档分割成一个个内容片段进行存储,并通过多种检索策略来检索最相关的内容来回答用户问题。
在大型语言模型时代,RAG (Retrieval-Augmented Generation 检索增强生成)指的是在回答问题或生成文本时,先从大规模文档库中检索相关信息,然后利用这些检索到的信息来生成响应或文本,从而提高回复内容的质量。
RAG 的两个关键阶段:
RAG 技术的应用可以很好地解决大模型的胡乱编造的问题,即让大模型在回答用户问题前先参考知识库中的相关内容,可极大抑制大模型的幻觉现象。
扣子编程的知识库功能支持上传外部数据,上传后可自动分段和编码,然后在智能体开发界面选择导入指定的知识库即可实现 RAG 对话。
RAG 应用的高频场景包括虚拟人物生成、产品资料问答、QA客服问答、专业领域知识学习等。本教程以产品资料问答智能体为例,讲解如何从智能体场景分析到智能体搭建。
现代产品更新换代速度快,用户在使用产品时经常会有疑问,而且新产品的上市会伴随大量的信息和数据。利用RAG检索增强生成框架,我们能够将这些零散的信息整合成一个知识库。
通过这个知识库,用户能够快速获得到需要问题的答案,它的出现让用户不必再翻看厚重的说明书或漫无边际地搜索网络,省时又省力,极大地提升了用户体验。
产品资料问答智能体的目标用户非常广泛,包括不限于普通消费者、产品销售人员、客服人员、以及那些对特定产品感兴趣的潜在购买者。通过问答系统,他们可以更深入地了解产品,加快决策的效率,例如:
要搭建这个产品资料问答智能体,我们首先需要从不同的地方收集产品资料,就像要写一本书一样,我们得有足够的背景信息。产品资料的来源途径大致有以下几种:
搜集到这些资料之后,我们会通过知识库的上传和处理流程来对知识处理和组织,让用户提的任何有关产品的问题都能在这个巨大的知识库中找到准确答案。
提示词 (Prompt) 是一种自然语言指令,告诉大语言模型执行什么任务。提示编写的越清晰明确,智能体的回复也会越符合预期。
以下是产品资料问答场景的人设与回复逻辑编写示例,更多关于提示词编写的信息可参考提示词概述。
# 角色
你是一款XXX产品的问答小助手。能够精确理解用户的问题,并从你的知识库中检索相关信息,进一步生成给用户的回复。
## 技能
###技能 1: 问题理解和检索
-理解用户的问题,并识别其关键信息。
-根据关键信息,对知识库进行检索。
###技能 2: 回答生成
-基于检索到的信息,为用户生成准确、简洁的回答。
##约束
-仅回答与产品相关的问题,不回答无关话题。
-尽量使用清晰简练的语言来回答用户的问题。
-整个回答过程中,始终以用户的需求为中心。
本教程以一款办公安全产品飞连为例,演示如何一步步搭建一个飞连产品问答助手。
飞连是新一代数字化办公基建,帮助企业员工随时随地安全连接内部网络与应用。飞连的用户分为 IT 管理员和终端用户。不同的用户角色在使用飞连的功能和场景也不同,例如 IT 管理员关注各种功能的配置,而终端用户关注如何使用飞连连接公司内部网络和应用。飞连提供了完整的使用说明文档,然而这些文档内容量大,用户很难快速及时的找到所需要的内容。
为了解决飞连用户在使用产品时遇到的使用问题,我们可以通过扣子编程搭建一个飞连产品助手。
第一步:确认信息源
为了解决用户使用飞连产品相关的问题,我需要收集飞连产品的使用资料,包括:
第二步:收集数据和内容整理
|
类别 |
内容 |
来源 |
|---|---|---|
|
使用指导 |
管理员手册 |
线上文档:https://www.volcengine.com/docs/6427/158878 |
|
客户端手册 |
Word 文档 |
|
|
故障排查手册 |
Word 文档 |
|
|
常见问题 |
Excel表格 |
|
|
产品信息 |
产品介绍 |
产品官网:https://www.volcengine.com/product/feilian |
|
价格信息 |
线上文档:https://www.volcengine.com/docs/6427/129375 |
对于不同的知识类型和内容存储方式,我们可以选择不同的知识库。在扣子编程中创建三个知识库,分别用于保存产品使用相关的内容、问题排查相关的内容。包括:
飞连产品的官网页面上提供了产品优势、不同版本的能力支持情况,我们也可以将这些信息收录到知识库中。
产品官网页面上的信息很多,但我们只需要产品优势和不同版本支持的功能信息,这种情况下我们可以使用知识库的网页数据采集功能抓取指定的内容片段。
登录扣子编程。
在页面顶部选择目标工作空间,然后在左侧导航栏中单击资源库。
在资源页面右上角,单击 +资源 > 知识库。
选择文本格式,导入类型指定为在线数据,并单击创建并导入。
选择手动采集。
根据页面提示安装扩展程序并授权。
输入要采集内容的网页地址。
根据页面提示,完成标注。
在弹出的页面,点击页面下方的文本按钮(图标⓵)开始选择要采集的内容(图标⓶),然后单击选定内容对应的文本按钮(图标⓷)。选择内容后,单击查看数据(图标⓸),确认内容无误后单击完成并采集上传数据。
设置自动分段与清洗,等待数据处理。
功能使用文档是常见的产品资料。通常一个功能文档会包含多个操作步骤或场景,这种情况下,你可以将这类的长文档内容进行分类和清洗,使用扣子知识库的自动分段规则精准拆分文档内容,保证回复的准确性。
以下图中的《VPN 配置最佳实践》文档为例,该文档中包含了4个 VPN 配置场景的说明内容。
为了保证文档上传到知识库后可以按照场景进行拆分,我们在每个场景标题前手动添加了**###**分隔符。
接下来将该文档导入到文本格式知识库中:
###,长度设置为2000,然后单击下一步。扣子编程的知识库支持导入表格内容,你可以将沉淀的常见用户问题内容通过表格方式快速导入。
以如下一个常见问题表格为例,参考以下操作将这些常见问题导入到知识库中。
完成知识库内容上传后,就可以搭建产品资料助手智能体了。
在项目开发页面单击创建智能体。
输入智能体名称和说明,然后单击确定。
完成智能体创建后,默认进入到智能体的编排页面。
在人设与回复逻辑中输入提示词。
# 角色
你是飞连产品的问答小助手。能够精确理解用户的问题,并从你的知识库中检索相关信息,进一步生成给用户的回复。
## 技能
###技能 1: 问题理解和检索
-理解用户的问题,并识别其关键信息。
-根据关键信息,对知识库进行检索。
###技能 2: 回答生成
-基于检索到的信息,为用户生成准确、简洁的回答。
##约束
-仅回答与产品相关的问题,不回答无关话题。
-尽量使用清晰简练的语言来回答用户的问题。
-整个回答过程中,始终以用户的需求为中心。
找到知识 >文本配置区,单击**+**添加已经创建的知识库。
在右侧调试面板中,输入一个问题查看智能体回复效果。
如果回复内容不符合预期,展开运行完毕文本框,查看是否是知识库内容召回(recall slice)的不正确,可以根据知识库的召回情况调整知识库内容。
调试成功后,可单击发布将智能体发布到选择的渠道中,分发给其他用户使用。