1. 什么是知识库
大语言模型的训练数据一般基于公开的数据,这意味着模型的知识一般不会包含私有领域的知识,同时在公开知识领域存在一定的滞后性。为了解决这一问题,目前通用的方案是采用 **RAG(检索增强生成)**技术,使用用户问题来匹配最相关的外部数据,将检索到的相关内容召回后作为模型提示词的上下文来重新组织回复。
扣子提供了一套简单易用的用户界面来方便应用构建者管理个人或者团队的知识库,并能够快速集成至 AI 应用中。你只需准备文本内容,例如:TXT、DOC、DOCX、Excel、PDF 文件,甚至在线网页、飞书文档、Notion页面是也可以的。
2. 创建知识库
下面我们写一个示例,例如FuturaTech是一家企业,那我们来为这个企业做一个FAQ。
点击 创建知识库 按钮,开始创建。
如下图所示位置:
这个知识库我们使用文本格式来创建。例如FuturaTech是一家企业,那我们为这个企业做一个FAQ Bot。
准备文档
首先,我们准备一个FAQ的文本文档,用TXT格式就可以,例如文件名叫:FAQ.txt。
文本内容如下:
FuturaTech 常见问题解答
Q: FuturaTech是做什么的? A: FuturaTech是一家领先的技术创新公司,专注于开发和提供先进的人工智能解决方案,旨在帮助企业提高效率和竞争力。
Q: 我可以在哪里找到FuturaTech的产品? A: 我们的产品可以在FuturaTech的官方网站上找到,也可以通过我们的授权分销商和合作伙伴获取。
Q: FuturaTech提供哪些类型的服务? A: 我们提供定制化的AI解决方案、数据分析服务、软件开发、技术咨询以及持续的客户支持。
Q: 如何成为FuturaTech的客户? A: 您可以通过访问我们的网站并填写联系表单来开始合作流程,或者直接致电我们的销售团队。
Q: FuturaTech是否提供试用版本? A: 是的,我们为许多产品提供有限时间的免费试用版本,以便客户在购买前能够体验产品。
Q: FuturaTech的技术支持团队如何联系? A: 您可以通过我们的在线帮助中心提交支持请求,或者在工作时间内致电我们的技术支持热线。
Q: FuturaTech是否提供培训服务? A: 我们提供全面的培训服务,包括在线教程、研讨会和现场培训,以帮助客户最大化地利用我们的产品和服务。
Q: FuturaTech如何保证客户数据的安全? A: 我们采用行业领先的安全措施和数据加密技术,确保客户数据的安全和隐私。
Q: FuturaTech是否提供定制化解决方案? A: 是的,我们的专家团队可以根据客户的具体需求,设计和开发定制化的解决方案。
Q: 我如何了解FuturaTech的最新动态和产品更新? A: 您可以通过订阅我们的新闻通讯、关注我们的社交媒体账号或定期访问我们的网站来获取最新信息。
上传文档
在这里,把文件进行上传,然后点击 下一步 按钮:
分段与清洗
这里注意一下,内容分段可以更有效地召回与用户查询最相关的内容,从而提升回复的准确性。合理的内容分段对回复的效果有着直接影响。一般没有特殊要求的情况下,我们这里选择 自动分段与清洗 即可。
点击 下一步 按钮:
这里服务器开始处理,点击 确认 不影响数据处理,处理完毕后可进行引用。
处理完成后,可以看到分段后的内容:
到此我们的知识库就创建完毕了。
3. 使用知识库
3.1 创建Bot
我们通过创建一个Bot来引入知识库。
3.2 添加知识库
点击 + 添加之前建好的知识库
选择知识库
在知识库列表中搜索FuturaTech关键字,点击 添加 按钮
3.3 设置知识库
加好知识库后,要对知识库进行一下设置。
- 调用方式
分别解释一下,调用方式这里 自动调用 和 按需调用 是什么意思。
**自动调用:**是指每一轮对话都会调用知识库,使用召回的内容辅助生成回复。
按需调用:是指根据实际需要来调用知识库,使用召回内容辅助生成回复。此时,需要在左侧的人设与回复逻辑区域明确写清楚在什么情况下调用哪个知识库进行回复。
- 搜索策略
搜索策略是用来选择如何从知识库中搜索内容片段,不同的检索策略适应于不同的场景。检索到的内容片段的相关性越高,大模型根据召回内容生成的回复的准确性和可用性也越高。
**混合:**结合全文检索和语义检索的优势,并对结果进行综合排序召回相关的内容片段。
**语义:**像人类一样去理解词与词,句与句之间的关系。推荐在需要理解语义关联度和跨语言查询的场景使用。例如下面两组句子,第一组的语义关系就更强。
"狼追小羊"和"豺狼追山羊"
"狼追小羊"和"我爱吃炸猪排"
**全文:**基于关键词进行全文检索。推荐当查询内容包含以下场景时使用
-
特定名称或专有名词,术语等,例如比尔盖茨、 特斯拉 Model Y
-
缩写词,例如 SFT
-
ID,例如,12s1w1s2系列
基于以上的理解,这里我们设置如下图所示:
3.4 编排提示词
接下来设置Bot的 人设与回复逻辑 部分**,告诉Bot当客户出问题的时候先到知识库中查找答案。**
提示词:
# 角色
你是一个专业且耐心的客服人员,需要通过调用 recallKnowledge 方法从'FuturaTech 常见问题解答'来为用户提供准确全面的服务。
## 技能
### 技能 1: 解答常见问题
1. 当用户提出问题时,优先从'FuturaTech 常见问题解答'中查找答案。
2. 如果在知识库中找到相关问题及答案,准确清晰地回复给用户。
3. 如果知识库中没有相关内容,及时告知用户,并表示会进一步核实。
## 限制:
- 只处理与'FuturaTech 常见问题解答'相关的内容,拒绝回答无关问题。
- 所输出的内容必须按照给定的格式进行组织,不能偏离框架要求。
3.5 预览与调试
接下来我们来测试一下,当我们问Bot问题,Bot是否调用了知识库。
我找到了一条 FAQ.txt 中的问题。
如下图所示,可以看到,Bot调用了知识库并正确的回答了问题。
💡 小结
本文介绍了扣子(Coze)插件的导入。如果希望系统学习扣子,并使用扣子(Coze)平台搭建应用程序,请查看完整教程《扣子实战教程》!
如果有任何疑问,欢迎进群交流讨论,备注:斜杠君。