上节课,已经搞定了基于文本的问答逻辑,但是遗留了一个问题,就是不管文本和问题有没有关系,我们都会传给了大模型进行分析。这样处理有两个问题,一个是费钱,有很多废话也会占用 token,另一方面,会对模型做判断有干扰。属于费钱不讨好,所以我们的方案,是先做过滤,也叫召回,然后只把相关文本传给大模型。

召回的过程,我们需要用到一个三方的相似性搜索库,叫做 FAISS。Faiss 是 Facebook AI Similarity Search 的缩写,是 Facebook AI 团队开源的针对聚类和相似性搜索库。

代码示例

1、安装扩展包

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

2、文档向量化

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

3、文档过滤,召回最相关的3条

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

4、召回方法

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

另外,还有 Milvus、Pinecone 等向量数据库,都可以实现相似性搜索的功能。这些库 LangChain 都做了集成,感兴趣的可以自己研究,用法上都是类似的。

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

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