本文以 FastGPT 知识库的搜索测试功能为入口,分析 FastGPT 的知识检索流程。
一、搜索功能介绍
1.1 整体介绍
搜索测试功能包含三种类型:语义检索、全文检索、混合检索。
语义检索:使用向量进行文本相关性查询,即调用向量数据库根据向量的相似性检索;
全文检索:使用传统的全文检索,适合查找一些关键词和主调语特殊的数据;
混合检索:使用向量检素与全文检素的综合结果返回,使用RRF算法进行排序。
默认情况下使用语义检索,如下所示。
搜索测试前可以根据“知识库搜索配置”进行相关参数的配置,例如:搜索模式、搜索过滤、问题优化等。
1.2 语义检索
本文以语义检索为切入点进行介绍。
依次进入知识库 -> 已创建知识库或新建知识库 -> 搜索测试,如下所示。
可以在测试框内搜索内容,测试当前知识库检索情况,检索完成会显示测试结果,如下所示。
二、主要流程
主要流程分为两部分。
(1)searchTest.ts 文件中 handler 函数负责访问限制的处理,例如:知识库读取权限、Token 的使用量计算等。
(2)controller.ts 文件中 searchDatasetData 函数负责相似向量的检索。
下一篇文章对具体的代码进行讲解。