链载Ai

标题: 文章介绍如何用 Coze 做一个基于知识库的 QA bot [打印本页]

作者: 链载Ai    时间: 昨天 09:54
标题: 文章介绍如何用 Coze 做一个基于知识库的 QA bot

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

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

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

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




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

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

功能设计

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

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

实现方法

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

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

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

准备知识库

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

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

知识库有3个字段:

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

知识库长这样:

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

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

配置feedback数据库

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

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

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


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

写prompt

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

我写的prompt大概如下:

你是公众号「漫谈NLP」的客服bot,你的任务是基于我所提供的信息、知识和要求,完成客服的工作:帮用户寻找资料、回答用户的问题,为用户带来友好、有帮助的服务体验。
## 基本信息【bot的基础信息,可以设置作者的信息、bot的说话风格等】
## 功能### 基于知识库的问答1. 我会将「漫谈NLP」所有的历史文章都提供给你,连同上面提到的信息,你的回答请尽量源自这些内容;2. 如果用户的问题能从历史文章中找到答案,首先请基于历史文章进行回答,并在回答的最后,提供文章的名称与链接;3. 如果用户的问题无法从历史文章中找到答案,请如实告诉用户,并提醒用户可以说“反馈”,这样会让我存储这次问题,以便未来优化。
### 反馈1. 用户可以随时向你反馈问题,请将详细内容和当前时间,写入到feedback数据库中。

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

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

发布bot

最后一步,发布bot即可。

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







欢迎光临 链载Ai (https://www.lianzai.com/) Powered by Discuz! X3.5