用Coze做一个基于知识库的QA bot,TA熟读了我所有的文章

向量数据库图像处理机器学习

本期文章,我们继续 动手做AI应用

这次,我们的目标是:做一个基于知识库的QA bot。

我们仍然选择coze[1],因为它支持分享到微信公众号,这意味着可以直接在公众号聊天框里与bot对话,非常方便。

本文中,笔者将介绍 如何用Coze做一个基于知识库的QA bot ,知识库的范畴框定为「漫谈NLP」公众号的全部历史文章,预期效果是:Ta像一个熟读我所有文章的小助手,尽量用历史文章中的“知识”来回答用户的问题,并提供参考资料。

picture.image

picture.image

picture.image

目前bot已经发布到「漫谈NLP」公众号里,如果读者想要向Ta提问,欢迎在公众号的聊天框中试试:)

由于不支持流式生成,体感速度比较慢,请耐心等待。

picture.image

功能设计

最核心的功能是 基于知识库的问答

  • 如果用户的问题,在知识库之内,那么引用知识库作答,并给出参考资料的链接
  • 如果用户的问题,不在知识库之内,那么也如实告诉用户

其次,我想要做一个 反馈功能

  • 在用户与bot交互时,可以随时用自然语言,向bot反馈问题(e.g. **识库的知识涵盖不全等),并且我能够在某个“后台”查看这些反馈数据

实现方法

根据功能设计,我们需要做以下三方面的工作:

  1. 准备知识库,将公众号的历史文章导入其中;
  2. 配置feedback数据库,以实现反馈功能;
  3. 写prompt,描述bot的工作流程。

如果抽象一层来看,第一部分是在Knowledge层面,第二部分是在Tool层面,第三部分则是核心的Brain。

准备知识库

coze提供两类知识库:文本、表格。

picture.image

考虑到表格形式 更便于存放结构化信息 ,使用起来可能更方便(例如,检索到文章内容后,标题信息也能方便返回),因此 选择表格形式的知识库

知识库有3个字段:

  1. article_name 。文章的标题;
  2. url 。文章的链接;
  3. summarization 。文章的摘要,由Kimi[2]提供。

知识库长这样:

picture.image

笔者选择存放摘要而不是全文,是因为:

  • 原文当中有许多image,处理起来比较麻烦(懒orzz)
  • Kimi的摘要结果基本包含了重要的high-level知识,作为导航式的QA bot 来说足够了
  • 如果用户想要了解更细节的信息,我希望用户能点开bot提供的文章链接,直接阅读原文给我增加一些阅读量*(不是)*,更全面、甚至可能更快的获取你想要的信息

在知识库算法的设置方面,配置如下:

picture.image

配置feedback数据库

为了支持反馈功能,bot需要有一个 database ,能够 写入 数据;并且我需要有一个地方,能够 读取 数据。

coze的 记忆-数据库 模块,满足这个要求。

picture.image

feedback数据库,定义了两个字段:

  • description 。反馈的内容;

  • datetime 。提供反馈的时间。

  • picture.image

在bot的配置界面,能够直接查看database:

picture.image

写prompt

prompt是bot的功能指南,以上提到的知识库问答、反馈功能,都需要通过prompt来实现。

我写的prompt大概如下:


            
你是公众号「漫谈NLP」的客服bot,你的任务是基于我所提供的信息、知识和要求,完成客服的工作:帮用户寻找资料、回答用户的问题,为用户带来友好、有帮助的服务体验。
            

            
## 基本信息
            
【bot的基础信息,可以设置作者的信息、bot的说话风格等】
            

            
## 功能
            
### 基于知识库的问答
            
1. 我会将「漫谈NLP」所有的历史文章都提供给你,连同上面提到的信息,你的回答请尽量源自这些内容;
            
2. 如果用户的问题能从历史文章中找到答案,首先请基于历史文章进行回答,并在回答的最后,提供文章的名称与链接;
            
3. 如果用户的问题无法从历史文章中找到答案,请如实告诉用户,并提醒用户可以说“反馈”,这样会让我存储这次问题,以便未来优化。
            

            
### 反馈
            
1. 用户可以随时向你反馈问题,请将详细内容和当前时间,写入到feedback数据库中。
        

我仍然采用了习惯的prompt写法:

  • 先在开头简要描述bot的任务
  • 再用markdown格式提供其他的必要信息

在这个bot中,我提供了 基本信息、功能这两个模块 ,其中功能模块即描述了前文提到的两个功能:知识库问答 和 反馈。用自然语言来描述需求的感觉还是挺爽的。

发布bot

最后一步,发布bot即可。

我们将这个bot发布到「漫谈NLP」公众号,便可以实现在公众号聊天框里与bot交互啦。欢迎大家使用并反馈意见~

picture.image

最后

本文介绍了如何用coze搭建一个基于知识库的QA bot,如果这篇文章对你有帮助,欢迎点赞、收藏、分享~

最后的最后,欢迎关注「漫谈NLP」公众号,我们一同探索技术的价值与边界:)

picture.image

扩展阅读

用Coze,5分钟做一个拍照识植物bot,你也可以DIY一个

参考资料

[1] coze官网: https://www.coze.cn/home

[2] Kimi: https://kimi.moonshot.cn/

0
0
0
0
关于作者
关于作者

文章

0

获赞

0

收藏

0

相关资源
CV 技术在视频创作中的应用
本次演讲将介绍在拍摄、编辑等场景,我们如何利用 AI 技术赋能创作者;以及基于这些场景,字节跳动积累的领先技术能力。
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论