前面课程中,我们已经把调用大模型,到流式输出的流程打通了,但是还存在一个问题,就是知识库没有用上。这节课,我们的主要任务,就把知识库的内容,也加入到对话信息中。

代码示例

1、召回相似片段

a) 拼接最近的几轮对话内容,转化为向量。

b) 从Milvus中,查询最相似的TOP_K个片段id。

c) 根据片段id,去片段库中查询片段内容。

d) 拼接片段内容,作为系统参考消息,压入messages中。

内容不可见,请联系管理员开通权限。

2、追加召回文本

内容不可见,请联系管理员开通权限。

这节课内容不多,但可以说是这个项目中最重要的一节,其实RAG的核心原理,就是这节课实现的四个步骤,前面的课程都是在为这节课做准备,相信大家学到这,对整个RAG的流程,已经有了比较深入的理解。

到目前为止,RAG的核心功能就全部讲完了。但是,作为一个项目还不是特别完整,有一个体验特别不好的点,就是我们的对话记录不能保存,页面刷新就没有,所以后面在拓展几节课,来把对话历史管理的功能加上。

但是,对话历史管理的功能,完全是前后端交互的知识,跟大模型没有关系,而且对前后端要求比较高,有一定难度。所以,大家可以根据自己实际情况,去灵活选择,后面这一部分作为选学内容。

本文链接:http://ichenhua.cn/edu/note/771

版权声明:本文为「陈华编程」原创课程讲义,请给与知识创作者起码的尊重,未经许可不得传播或转售!