Skip to content

智能知识库调优

本篇文章介绍如何基于AgentCraft构建智能知识库以及进行效果调优, 其中知识库的问答效果是最被关注的,决定着该类应用的成功失败,当前业内基于RAG技术做了非常多的技术上的优化,期望来提升知识库的问答效果,AgentCraft内置了一个基础的RAG模型,本篇文章不准备深入这项技术去探讨知识库的效果优化, 而是从数据源和反馈校正两个方向来提升知识库的问答效果

数据预处理

数据高质量能够提升问答效果这是一个业内的共识,大多数用户的非结构化数据可能包含非常的的无效数据,我们可以首先用AgentCraft构建一个清晰数据的智能体,然后利用这个智能体进行数据清洗,再把返回的数据重新写入数据库

QA 提取智能体设置

将输入的内容进行QA对提取, 结果输出为json,json的格式如下:

[
{
"question": "山西老陈醋的主要原料是什么?",
"answer": "山西老陈醋的主要原料是高粱、麸皮、谷糠和水。"
},
{
"question": "山西老陈醋的酿造工艺特点是什么?",
"answer": "山西老陈醋的酿造工艺特点是以高粱为主的多种原料配比,以红心大曲为主的优质糖化发酵剂,低温浓醪酒精发酵,高温固态醋酸发酵,熏醅和新醋长期陈酿。"
}]
注意只输出json结果,不要有其他的额外字符

简单问答 (第一次创建无反应,请刷新页面) 输入 输入 输出 输出

注意,上面是用了chat的方式进行演示,实际上我们在业务生产的时候,想实现自动化还是使用api的方式,因此,我们可以通过智能体的接入访问获得api,然后把他集成到自己的处理流程中 api访问

反馈校正

基于智能系统的问答结果可以从历史记录中查看,我们可以根据结果的反馈去校正原始的数据信息,以及可以加入一些明确的QA问答,来不断地收敛问答的失败率,最后达到一个较好的问答效果。 比如我们提问”AgentCraft有哪些使用场景“,如果问题不符合我们的预期,我们可以有两种方式进行修正 AgentCraft使用场景

修改文章知识库的源数据

AgentCraft的使用场景 去掉多余的文章内容,接下来我们再次测试看效果: 调试后的效果

修改进准问答的数据

因为进准数据的召回权重大于文档数据,当我们希望命中一个精准问题的时候给定优化的答案,我们可以引入精准问答,比如我们先提问,AgentCraft的特色有哪些,看一下常规的答案: 特色 这个问题回答的比较泛,并不出彩,我们希望AgentCraft能够更加形象具体的回答这个问题,这个时候可以增加一个精准类的数据集 特色 特色 创建好数据集我们将其关联到智能体,重新提问 特色 特色 可以看到,针对这个精准的问题,AgentCraft可以给定精准的答案,我们的答案设定不仅仅是纯文本,甚至是丰富的图文展示