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

【LangChain系列文章】4. 向量数据库Vector Stores 向量数据库Vector Stores 和 embeddings介绍 及简单的使用 阅读详情

在当今数据驱动的时代,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大模型是一项有前景且值得投入的时间和精力的重要选择。

LangChain与Milvus向量数据库实战:构建本地知识库与智能问答系统 向量数据库是处理非结构化数据、实现高效语义检索的核心技术。其原理是将文本、图像等数据通过Embedding模型转化为高维向量,并利用向量间的相似度计算来快速匹配相关信息。这项技术的核心价值在于解决了传统关键词搜索在语义理解上的局限,为大规模知识库的智能查询提供了基础。在工程实践中,它常与RAG(检索增强生成)架构结合,应用于企业知识管理、智能客服和文档检索等场景。本文以LangChain框架和Milvus向量数据库为例,详细演示了如何通过DML操作管理向量数据,构建一个从文档处理到智能问答的完整流水线,为开 阅读详情

相关推荐

LangChain-RAG必备:向量数据库如何CRUD

*CRUD只是操作向量数据库的基础手段,想要用好RAG必须在CRUD的基础上掌握语义检索的相关原理。**比如文档拆分时需要按语义尽可能的拆分为小的单元,而在召回时,则需要基于召回的单元尽可能的补充完整的窗口上下文,才能在最终使用LLM时得到尽可能好的结果。这些都需要在crud的基础上执行一些额外操作,我将在下次给大家讲述,希望你持续关注。以上就是本文的全部内容,我希望你能从中学到一些有用的知识,也欢迎你在评论区留下你的反馈或问题。😊。

南七小僧的学海无涯 390

【LangChain】向量存储(Vector stores)

加载数据通过embed,转成向量存储查询条件进行embed在3的基础上,再进行向量存储库的搜索。

山鬼谣的专栏 1万+

RTC时钟芯片替换代码移植-IIC通信

1、问题 RTC时钟芯片由爱普生RX-8010SJ更换成大普INS5710A,两者都是IIC通信,更换大普芯片后时钟不走、以及报掉电错误。仿真分析原因是CPU和RTC芯片收发数据延时不够导致,根据爱普生芯片手册,8010收发数据不采取延时,但大普芯片采用同样方式读取不行(需要加延时) 2、RX-8010SJ手册说明(以读取数据为例) (1)寄存器读操作时序图 指定地址读操作: 1)CPU 发送开始条件[S] 2)CPU 传输RX-8010SJ 的从地址,用R/W 位设定写模式 3)检测从RX-8010

weixin_42851683的博客 2066

【LangChain系列】第四篇:向量数据库与嵌入简介及实践

在这篇博文中,我们将探讨向量存储和嵌入,它们是构建聊天机器人和对数据语料库执行语义搜索的最重要组件。

2301_81888214的博客 1750

大数据实战:Python与MySQL在足球赔率分析中的高效应用

本文详细介绍了如何利用Python与MySQL进行大数据实战,实现足球赔率的高效分析。通过对比Excel处理的局限性,阐述了数据库在处理百万级数据时的速度优势。文章提供了从环境搭建、使用pymysql连接数据库、利用pandas进行数据清洗与分析,到构建自动化分析系统的完整流程,旨在帮助读者将大数据技术应用于实际业务场景,显著提升数据处理与洞察效率。

weixin_29080843的博客 447

聚类教程:cisTopic——来自单细胞表观基因组学数据的顺式调控主题的概率建模

之前运行这步的时候报错了如下: 后来发现原因是Ubuntu自动把R包更新到4.2版本,但是Rstudio版本没有更新,更新Rstudio即可,更新Rstudio的教程看此教程:。

watermel__的博客 1051

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

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

万物皆有灵 1221

Trae IDE项目开发全流程深度技巧与最佳实践

2026年AI开发新范式:Trae AI IDE深度解析 摘要 2026年,AI已成为软件开发的核心驱动力。字节跳动推出的AI原生IDE——Trae,从根本上重塑了开发体验,将AI作为第一公民而非附加功能。Trae通过深度集成大型语言模型和创新交互模式,解决了现代开发中的重复劳动、信息过载等核心痛点。 报告全面剖析了Trae的核心功能: 智能代码生成:支持上下文感知续写、自然语言驱动生成和多模态输入转换 对话式AI助手:提供侧边栏和行内对话模式,支持代码解释、Bug修复、重构建议等 Builder/SOLO

公众号:AI前沿侦探 160

【InternLM】基于InternLM和LangChain从0开始搭建你的知识库【完全攻略】【LangChain和向量数据库的详细介绍】

这一篇文章的主要内容是LangChain介绍、向量数据库介绍以及基于InternLM和LangChain从0开始搭建你的知识库实践!

艰难困苦,玉汝于成。 3885

【nnUNetv2进阶】四、nnUNetv2 魔改网络-小试牛刀-加入注意力机制ChannelAttention

本文介绍了在nnunet中加入ChannelAttention的方法,按照本文教的教程,可以快速完成ChannelAttention的加入和自定义模型的跑通。

AI爱好者的博客,分享计算机领域相关知识 5801

黑猫带你学eMMC协议第1篇:全网最全emmc协议中文详讲,这份学习框架图,你值得拥有!!!(持续更新中...)

黑猫带你学eMMC协议第7篇:全网最全emmc写保护详解(write protect) 黑猫带你学eMMC协议第8篇:emmc可靠写详解(Write Reliability) 黑猫带你学eMMC协议第9篇:emmc的分区配置(partitioning) 黑猫带你学eMMC协议第10篇:eMMC命令队列详解(CMDQ) 黑猫带你学eMMC协议第11篇:eMMC擦除详解(erase/trim/discard/sanitize/secure erase/secure trim…) 黑猫带你学eMMC协议第12篇:

黑猫奥利奥的博客 2万+

LangChain-RAG核心技能:掌握向量数据库的CRUD操作

*CRUD只是操作向量数据库的基础手段,想要用好RAG必须在CRUD的基础上掌握语义检索的相关原理。**比如文档拆分时需要按语义尽可能的拆分为小的单元,而在召回时,则需要基于召回的单元尽可能的补充完整的窗口上下文,才能在最终使用LLM时得到尽可能好的结果。这些都需要在crud的基础上执行一些额外操作,我将在下次给大家讲述,希望你持续关注。

2401_84204207的博客 862

20 Embedding 与向量检索:语义为什么能变成距离

Embedding 是 RAG 语义检索的数学基础。本文用工程视角讲清文本如何变成向量,为什么语义相近会表现为距离相近,Top-K 检索如何工作,以及在模型选择、同模型约束、精确匹配和召回评估上的常见坑。

老于的笔记的专栏 6203

406-LangChain框架的VectorStore集成 - Elasticsearch向量数据库分析

本案例旨在展示如何使用Elasticsearch作为向量数据库与LangChain集成,实现高效的文档存储、检索和管理功能。通过CRUD操作演示,帮助开发者理解如何在分布式搜索环境中处理向量数据。

rengang66的博客 853

EtherCAT主站SOEM -- 1 -- SOEM之ethercattype.h文件分析

“ethercattype.h” 文件用于支持 EtherCAT 网络通信,提供了各种类型定义和宏,以便开发者更轻松地开发 EtherCAT 相关应用程序。这些定义包括数据类型、命令类型、状态类型和错误类型,以支持 EtherCAT 通信。根据具体应用需求,还可以调整一些超时和帧长度设置。这些定义用于处理函数调用的结果,如 EC_NOFRAME(没有帧返回)、EC_ERROR(一般错误)、EC_TIMEOUT(请求超时)等。这些定义用于处理 EtherCAT 命令,例如 EC_CMD_APRD(自动递增读取

常驻客栈的博客--嵌入式EtherCAT 2714

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

404-LangChain框架的VectorStore集成 - Pinecone向量数据库

本教程介绍如何将Pinecone与LangChain结合使用。Pinecone是一个专为快速、可扩展的相似性搜索而设计的向量数据库,提供实时索引和检索功能。与其他向量数据库不同,Pinecone与机器学习工作流无缝集成,并提供完全托管的基础设施,无需手动扩展或维护。本教程将指导您使用CRUD操作与Pinecone进行存储、更新、删除文档,并执行基于相似性的检索。

rengang66的博客 792

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

402-LangChain框架的VectorStore集成 - Chroma 向量数据库完整案例分析

本案例详细介绍了如何使用Chroma向量数据库与LangChain集成,实现文档的存储、检索和管理。Chroma是一个开源的向量数据库,专为AI应用中的语义搜索和RAG(检索增强生成)应用而优化,提供了快速的相似性搜索、元数据过滤功能,并支持内存和持久化存储。

rengang66的博客 1100

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

405-LangChain框架的VectorStore集成 - Qdrant向量数据库

本教程介绍如何将Qdrant与LangChain结合使用。Qdrant是一个高性能的开源向量数据库,以其先进的过滤功能、负载索引和对混合(向量+关键词)搜索的原生支持而脱颖而出。本教程将指导您使用CRUD操作与Qdrant进行存储、更新、删除文档,并执行基于相似性的检索。

rengang66的博客 828

langchain4j向量数据库对接:Qdrant实战教程

在AI驱动的应用开发中,向量数据库已成为存储和检索高维向量的关键组件。然而,Java开发者常面临三大痛点:客户端兼容性差、API设计复杂、与现有业务系统集成困难。langchain4j作为Java生态中领先的LLM集成框架,通过Qdrant向量数据库对接模块,为这些问题提供了一站式解决方案。本文将系统讲解如何通过langchain4j实现与Qdrant的无缝集成,从环境搭建到生产级应用,让你在30...

gitblog_00645的博客 1000

403-LangChain框架的VectorStore集成 - Faiss向量数据库教程

Faiss(Facebook AI Similarity Search)是一个用于高效相似性搜索和密集向量聚类的库。它包含搜索任何大小的向量集的算法,甚至可能超出RAM的容量。它还包括用于评估和参数调优的支持代码。本教程将指导您使用CRUD操作与Faiss进行存储、更新、删除文档,并执行基于相似性的检索。

rengang66的博客 1018

深入浅出 RAG 与向量数据库:从 Milvus 基础到电子书级语义搜索实战

摘要:从传统数据库到向量数据库的范式演进 本文探讨了大模型时代下数据库架构的转变,重点分析了向量数据库在AI Agent和RAG系统中的核心作用。传统关系型数据库擅长精确匹配,但无法满足自然语言的语义搜索需求。向量数据库通过将文本转换为多维向量,实现了基于语义相似度的检索。 文章以Milvus为例,演示了构建日记语义搜索系统的完整流程,包括: 文本向量化嵌入 集合加载与相似度计算 使用余弦相似度进行语义匹配 进一步解析了RAG架构的6个核心要素,并展示了如何为《天龙八部》电子书构建向量知识库。向量数据库正成

2401_88920300的博客 576

407-LangChain框架的VectorStore集成 - MongoDB Atlas向量数据库

本教程旨在介绍如何使用MongoDB Atlas向量数据库与LangChain集成,实现文档的存储、更新、删除和基于相似性的检索功能。包括:(1)设置和配置MongoDB Atlas云数据库服务;(2)创建向量搜索索引以支持语义搜索;(3)实现文档的CRUD(创建、读取、更新、删除)操作;(4)执行基于嵌入向量的相似性搜索;(5)使用元数据过滤器优化搜索结果。

rengang66的博客 691

用 LangChain 让 Pandas DataFrame 支持语义搜索与自然语言问答

DataFrame 是数据科学中最基础、最广泛使用的结构化数据容器,而语义检索则是让机器理解‘相似性’而非关键词匹配的核心能力。其原理在于将文本转化为向量表示(Embedding),再通过向量数据库(如 ChromaDB)实现近似最近邻搜索,从而突破传统 SQL 或全文检索的语义瓶颈。该技术显著提升了非技术人员对私有表格数据的交互效率,具备本地化、零微调、低运维门槛等工程优势,已广泛应用于知识库问答、新闻档案检索、产品参数查询等场景。本文聚焦 LangChain 与 Hugging Face 模型协同赋能

图灵教育官方博客 473

【LangChain】核心技术:嵌入模型与向量存储完全指南

在大语言模型(LLM)应用开发中,检索增强生成(RAG) 已经成为解决大模型 “知识截止” 和 “私有数据访问” 问题的标准方案。而 RAG 系统的核心基石,正是嵌入模型(Embedding Models) 和向量存储(Vector Stores)。很多开发者在入门时容易混淆这两个概念:嵌入模型负责将人类语言转换为计算机能理解的数值向量,而向量存储则负责高效管理和检索这些高维向量。本文将从底层原理到实战代码,全面拆解 LangChain 中这两个核心组件的使用方法,帮助你构建稳定高效的 RAG 系统。

会当凌绝顶,一览众山小 4750
上一篇: 【AI】如何优雅而又装逼的使用LangChain?
下一篇: 这次终于把深度学习调参给搞清楚了!
AI_小站
博客等级 码龄3年 6255粉丝 1152原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值