【LangChain】(一)掌握向量数据库的CRUD操作与语义检索技巧 (1)

在当今数据驱动的时代,RAG(Retrieval-Augmented Generation)正成为大语言模型从工具走向生产力实践的热门方式。RAG能够从海量文本数据中检索相关信息,并用于生成高质量的文本输出。而在实现RAG的过程中,向量数据库作为基础设施,扮演着不可或缺的角色。今天,我将带领大家以CRUD(创建、读取、更新、删除)操作为切入点,深入探讨向量数据库的使用方法。🌟

1. 向量数据库的基础知识

向量数据库是一种专门用于存储和检索高维向量数据的数据库。与传统的关系型数据库不同,向量数据库能够处理复杂的数据结构,如文本、图像和音频等。这使得它们在机器学习和深度学习应用中,尤其是在自然语言处理(NLP)和计算机视觉(CV)领域,得到了广泛的应用。在这里插入图片描述

1.1 为什么选择向量数据库?

  • 高效检索:向量数据库能够快速找到与查询向量相似的向量,适合大规模数据集。

  • 灵活性:支持多种数据类型,适合多种应用场景。

  • 扩展性:可以轻松扩展以处理更多数据和更复杂的查询。

2. CRUD操作详解

2.1 向量数据库-新增数据

要向向量数据库中新增数据,首先需要创建一个VectorStore对象,并配置embedding function,用于将原始数据转换为向量。以下是具体步骤:

在这里插入图片描述

创建好VectorStore对象后,我们可以使用insert方法向向量数据库中插入数据。insert方法接受一个doc对象作为参数,doc对象可以是字符串或字典。如果是字典,必须包含一个名为text的键,其值为要插入的文本内容,同时可以添加其他元数据用于后续查询或过滤。

示例代码:

在这里插入图片描述

add_documents方法会返回一个id列表,这个id是doc的索引,用于唯一标识插入的doc对象。一般来说,一个文件对应多个doc,例如,将一个长文本拆分为多个段落,然后将每个段落作为一个doc插入到向量数据库中,这样可以提高检索的效率和精度。在这里插入图片描述

2.2 向量数据库-删除数据

要从向量数据库中删除数据,可以使用delete方法。该方法接受一个id或id列表作为参数。

示例代码:
# 删除id为1的doc对象  
vector.delete('1')   

如果不知道要删除的doc对象的id,但知道它的一些元数据,可以先使用metadata中的字段查询到id,然后再使用delete方法批量删除。

# 根据file_id条件查询   
result = vector.get(where={"file_id": file_id})      

# 批量删除   
if result['ids']:
    vector.delete(result['ids'])   

2.3 向量数据库-更新数据

更新一个doc对象相当于先删除它,然后再插入一个新的doc对象。以下是更新的示例代码:

# 删除id为2的doc对象   
vector.delete('2')      

# 插入新的doc对象   
vector.add_documents(new_doc)   

在这里插入图片描述

2.4 向量数据库-查询数据

VectorStore类提供了多种查询方法,主要分为两种类型:相似度查询和最大边际相关性(MMR)查询。

2.4.1 相似度查询

相似度查询是最基本的查询方法,它接受一个字符串作为查询,并返回最相似的doc对象。

在这里插入图片描述

2.4.2 最大边际相关性查询

MMR查询是一种用于检索或摘要的方法,它既考虑了查询和文档之间的相似度,又考虑了文档之间的多样性。

在这里插入图片描述

3. 语义检索的进阶技巧

CRUD操作只是使用向量数据库的基础手段。要充分利用RAG,我们还需要掌握语义检索的相关原理。例如,在文档拆分时,需按语义尽可能拆分为小的单元;在召回时,则需基于召回的单元尽可能补充完整的上下文。这些都需要在CRUD的基础上执行一些额外操作。

结语

通过本文的学习,你应该对向量数据库的CRUD操作有了清晰的认识。希望你能在实际项目中灵活运用这些知识,提升你的数据处理能力。💪

如何学习大模型

现在社会上大模型越来越普及了,已经有很多人都想往这里面扎,但是却找不到适合的方法去学习。

作为一名资深码农,初入大模型时也吃了很多亏,踩了无数坑。现在我想把我的经验和知识分享给你们,帮助你们学习AI大模型,能够解决你们学习中的困难。

我已将重要的AI大模型资料包括市面上AI大模型各大白皮书、AGI大模型系统学习路线、AI大模型视频教程、实战学习,等录播视频免费分享出来,需要的小伙伴可以扫取。

一、AGI大模型系统学习路线

很多人学习大模型的时候没有方向,东学一点西学一点,像只无头苍蝇乱撞,我下面分享的这个学习路线希望能够帮助到你们学习AI大模型。

在这里插入图片描述

二、AI大模型视频教程

在这里插入图片描述

三、AI大模型各大学习书籍

在这里插入图片描述

四、AI大模型各大场景实战案例

在这里插入图片描述

五、结束语

学习AI大模型是当前科技发展的趋势,它不仅能够为我们提供更多的机会和挑战,还能够让我们更好地理解和应用人工智能技术。通过学习AI大模型,我们可以深入了解深度学习、神经网络等核心概念,并将其应用于自然语言处理、计算机视觉、语音识别等领域。同时,掌握AI大模型还能够为我们的职业发展增添竞争力,成为未来技术领域的领导者。

再者,学习AI大模型也能为我们自己创造更多的价值,提供更多的岗位以及副业创收,让自己的生活更上一层楼。

因此,学习AI大模型是一项有前景且值得投入的时间和精力的重要选择。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值