(保姆级教程)LangChain实战:MultiVector多向量检索,让文档“无所遁形”!代码直接抄!

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

1. 多表征/向量索引

为每一个文档块生成一条向量用于记录该文本的特征信息,如果能从多个维度记录该文档块的信息,会大大增加该文档块被检索到的概率,多个维度记录信息 等同于为文档块生成 多个向量,支持的方法如下:

  1. 把文档切割成更小的块:通过检索更小的块,但是查找其父类文档(ParentDocumentRetriever)。
  2. 摘要:使用 LLM 为每个文档块生成一段摘要,将其和原文档一起嵌入或者代替,返回时返回原文档。
  3. 假设性问题:使用 LLM 为每个文档块生成适合回答的假设性问题,将其和原文档一起嵌入或者代替,返回时返回原文档。

通过这种方式可以为一个文档块生成多条特征/向量,在检索时能提升关联文档被检索到的概率,多向量检索的运行流程其实也非常简单,以 摘要文档 检索 原文档为例,运行流程图如下

在这里插入图片描述

通过上面的运行流程,可以很容易知道在 原始文档 和 摘要文档 中都在元数据中设置了 唯一标识,从向量数据库中找到符合规则的数据后,通过查找其 元数据 的唯一标识,即可在 文档数据库 中匹配出原文档,完成整个多表征/向量的检索。

2. 多向量索引示例

在 LangChain 中,为多向量索引的集成封装了MultiVectorRetriever类,实例化该类只需要传递 向量数据库、字节存储数据库(文档数据库)、id标识(关联标识) 即可快速完成整个运行流程的集成。
以 FAISS向量数据库 和 本地文件存储库 为例,构建一个 存储摘要->检索原文 的优化策略,代码示例如下:

import uuidimport dotenvfrom langchain.retrievers import MultiVectorRetrieverfrom langchain.storage import LocalFileStorefrom langchain_community.document_loaders import UnstructuredFileLoaderfrom langchain_community.vectorstores import FAISSfrom langchain_core.documents import Documentfrom langchain_core.output_parsers import StrOutputParserfrom langchain_core.prompts import ChatPromptTemplatefrom langchain_openai import ChatOpenAI, OpenAIEmbeddingsfrom langchain_text_splitters import RecursiveCharacterTextSplitterdotenv.load_dotenv()# 1.创建加载器、文本分割器并处理文档loader = UnstructuredFileLoader("./电商产品数据.txt")text_splitter = RecursiveCharacterTextSplitter(chunk_size=500, chunk_overlap=50)docs = loader.load_and_split(text_splitter)# 2.定义摘要生成链summary_chain = (        {"doc": lambda x: x.page_content}        | ChatPromptTemplate.from_template("总结以下文档的内容: \n\n{doc}")        | ChatOpenAI(model="gpt-3.5-turbo-16k", temperature=0)        | StrOutputParser())# 3.批量生成摘要与唯一标识summaries = summary_chain.batch(docs, {"max_concurrency": 5})doc_ids = [str(uuid.uuid4()) for _ inenumerate(docs)]# 4.构建摘要文档summary_docs = [    Document(page_content=summary, metadata={"doc_id": doc_ids[idx]})    for idx, summary inenumerate(summaries)]# 5.构建文档数据库与向量数据库byte_store = LocalFileStore("./multy-vector")db = FAISS.from_documents(    summary_docs,    embedding=OpenAIEmbeddings(model="text-embedding-3-small"),)# 6.构建多向量检索器retriever = MultiVectorRetriever(    vectorstore=db,    byte_store=byte_store,    id_key="doc_id",)# 7.将摘要文档和原文档存储到数据库中retriever.docstore.mset(list(zip(doc_ids, docs)))# 8.执行检索search_docs = retriever.invoke("推荐一些潮州特产?")print(search_docs)print(len(search_docs))

输出内容:

[Document(metadata={'source': './电商产品数据.txt'}, page_content='产品名称: 潮汕鱼丸\n\n电商网址: shop.example.com/fishballs\n\n产品描述: 潮汕鱼丸采用新鲜鱼肉,加入少量淀粉和调味料,手工捶打成丸,Q弹爽滑,鱼香浓郁。\n\n产品特点:\n\n原材料: 新鲜鱼肉、淀粉、盐、胡椒粉\n\n制作工艺: 传统手工捶打\n\n口感: Q弹爽滑,鲜美可口\n\n净重: 500克/袋、1000克/袋\n\n保质期: 6个月(冷冻保存)\n\n发货方式: 顺丰冷链配送,确保新鲜\n\n物流信息: 24小时内发货,预计2\n\n3天到货\n\n推荐菜系:\n\n鱼丸火锅: 搭配各类蔬菜、菌类,煮至鱼丸浮起即可。\n\n鱼丸煮汤: 与蔬菜同煮,味道鲜美。\n\n价格:\n\n500克: 55元/袋\n\n1000克: 100元/袋\n\n6. 潮汕豆腐花\n\n产品名称: 潮汕豆腐花\n\n电商网址: shop.example.com/tofupudding\n\n产品描述: 潮汕豆腐花使用优质黄豆,传统工艺制作,质地细腻,入口即化,豆香浓郁。\n\n产品特点:\n\n原材料: 黄豆、水、石膏\n\n制作工艺: 传统手工点浆\n\n口感: 细腻嫩滑,豆香浓郁\n\n净重: 450克/盒\n\n保质期: 5天(冷藏保存)'), Document(metadata={'source': './电商产品数据.txt'}, page_content='产品特点:\n\n原材料: 猪后腿肉、香料、盐、糖\n\n制作工艺: 精细切割,手工卷制\n\n口感: 鲜嫩多汁,咸香可口\n\n净重: 400克/袋、800克/袋\n\n保质期: 3个月(冷冻保存)\n\n发货方式: 顺丰冷链配送,确保新鲜\n\n物流信息: 24小时内发货,预计2\n\n3天到货\n\n推荐菜系:\n\n猪肉卷煎烤: 切片后煎至金黄,外脆里嫩。\n\n猪肉卷炖煮: 切块后与蔬菜同炖,风味更佳。\n\n价格:\n\n400克: 58元/袋\n\n800克: 108元/袋\n\n3. 潮汕三宝(酱油、甜醋、虾酱)\n\n产品名称: 潮汕三宝\n\n电商网址: shop.example.com/chaoshanthree\n\n产品描述: 潮汕三宝包含酱油、甜醋和虾酱。酱油由大豆、麦子自然发酵而成,甜醋以糯米酿制,虾酱选用新鲜海虾发酵,是潮汕菜肴必备调味品。\n\n产品特点:\n\n酱油: 大豆、麦子自然发酵,500ml/瓶\n\n甜醋: 糯米酿制,500ml/瓶\n\n虾酱: 新鲜海虾发酵,200克/瓶\n\n保质期: 酱油和甜醋12个月,虾酱6个月\n\n发货方式: 顺丰配送,确保完好\n\n物流信息: 24小时内发货,预计2\n\n3天到货\n\n推荐菜系:'), Document(metadata={'source': './电商产品数据.txt'}, page_content='口感: 鲜嫩多汁,味道浓郁\n\n净重: 500克/袋、1000克/袋\n\n保质期: 3个月(冷冻保存)\n\n发货方式: 顺丰冷链配送,确保新鲜\n\n物流信息: 24小时内发货,预计2\n\n3天到货\n\n推荐菜系:\n\n红烧狮子头: 加热后直接食用,适合作为主菜。\n\n狮子头炖菜: 与蔬菜同炖,味道更佳。\n\n价格:\n\n500克: 60元/袋\n\n1000克: 110元/袋\n\n10. 潮汕香菇肉酱\n\n产品名称: 潮汕香菇肉酱\n\n电商网址: shop.example.com/mushroomsauce\n\n产品描述: 潮汕香菇肉酱采用香菇和猪肉为主要原料,加入特制酱料炒制而成,香气扑鼻,味道鲜美。\n\n产品特点:\n\n原材料: 香菇、猪肉、酱料\n\n制作工艺: 精细切割,炒制均匀\n\n口感: 鲜香可口,酱香浓郁\n\n净重: 200克/瓶、400克/瓶\n\n保质期: 6个月(常温保存)\n\n发货方式: 顺丰配送,确保完好\n\n物流信息: 24小时内发货,预计2\n\n3天到货\n\n推荐菜系:\n\n拌饭: 加入米饭中,提升口感。\n\n拌面: 加入面条中,风味独特。\n\n价格:\n\n200克: 35元/瓶\n\n400克: 65元/瓶'), Document(metadata={'source': './电商产品数据.txt'}, page_content='口感: 细腻嫩滑,豆香浓郁\n\n净重: 450克/盒\n\n保质期: 5天(冷藏保存)\n\n发货方式: 顺丰冷链配送,确保新鲜\n\n物流信息: 24小时内发货,预计2\n\n3天到货\n\n推荐菜系:\n\n甜食: 加糖水、红豆、芝麻食用。\n\n咸食: 加入虾米、葱花、酱油食用。\n\n价格: 25元/盒\n\n7. 潮汕鱼露\n\n产品名称: 潮汕鱼露\n\n电商网址: shop.example.com/fishsauce\n\n产品描述: 潮汕鱼露以新鲜小鱼为原料,经过发酵、过滤而成,味道鲜美,是潮汕菜肴必备调味品。\n\n产品特点:\n\n原材料: 小鱼、盐\n\n制作工艺: 自然发酵,传统工艺\n\n口感: 鲜美咸香\n\n净重: 500ml/瓶\n\n保质期: 12个月\n\n发货方式: 顺丰配送,确保完好\n\n物流信息: 24小时内发货,预计2\n\n3天到货\n\n推荐菜系:\n\n凉拌菜: 作为调味料使用,提升菜肴鲜味。\n\n炒菜: 适合炒菜提鲜。\n\n价格: 38元/瓶\n\n8. 潮汕糯米肠\n\n产品名称: 潮汕糯米肠\n\n电商网址: shop.example.com/glutinousrice')]

除了使用 摘要 来检索全文,多向量检索一般还适用于 子文档检索父文档和 假设性查询检索,其中 假设性查询检索 是利用 LLM 对切块后的文档生成多个 假设性标题,在向量数据库中存储 假设性标题 文档块,使用检索到的数据查找 原始文档。
核心代码修正如下

from typing importListimport dotenvfrom langchain_core.documents import Documentfrom langchain_core.prompts import ChatPromptTemplatefrom langchain_core.pydantic_v1 import BaseModel, Fieldfrom langchain_openai import ChatOpenAIdotenv.load_dotenv()classHypotheticalQuestions(BaseModel):    """生成假设性问题"""    questions: List[str] = Field(        description="假设性问题列表,类型为字符串列表",    )# 1.构建一个生成假设性问题的promptprompt = ChatPromptTemplate.from_template("生成一个包含3个假设性问题的列表,这些问题可以用于回答下面的文档:\n\n{doc}")# 2.创建大语言模型,并绑定对应的规范化输出结构llm = ChatOpenAI(model="gpt-3.5-turbo-16k", temperature=0)structured_llm = llm.with_structured_output(HypotheticalQuestions)# 3.创建链应用chain = (        {"doc": lambda x: x.page_content}        | prompt        | structured_llm)hypothetical_questions: HypotheticalQuestions = chain.invoke(    Document(page_content="我叫慕小课,我喜欢打篮球,游泳"))print(hypothetical_questions)

输出内容

questions=['如果你不能打篮球,你会选择什么运动?', '如果你不能游泳,你会选择什么运动?', '如果你不能进行任何体育运动,你会选择什么爱好?']

接下来针对每个文档生成的 假设性查询 创建 Document列表,并添加 doc_id,添加到向量数据库中,并将 doc_id 与原始文档进行绑定,存储到 文档数据库/字节数据库 即可。

如何高效转型Al大模型领域?

作为一名在一线互联网行业奋斗多年的老兵,我深知持续学习和进步的重要性,尤其是在复杂且深入的Al大模型开发领域。为什么精准学习如此关键?

  • 系统的技术路线图:帮助你从入门到精通,明确所需掌握的知识点。
  • 高效有序的学习路径:避免无效学习,节省时间,提升效率。
  • 完整的知识体系:建立系统的知识框架,为职业发展打下坚实基础。

AI大模型从业者的核心竞争力

  • 持续学习能力:Al技术日新月异,保持学习是关键。
  • 跨领域思维:Al大模型需要结合业务场景,具备跨领域思考能力的从业者更受欢迎。
  • 解决问题的能力:AI大模型的应用需要解决实际问题,你的编程经验将大放异彩。

以前总有人问我说:老师能不能帮我预测预测将来的风口在哪里?

现在没什么可说了,一定是Al;我们国家已经提出来:算力即国力!

未来已来,大模型在未来必然走向人类的生活中,无论你是前端,后端还是数据分析,都可以在这个领域上来,我还是那句话,在大语言AI模型时代,只要你有想法,你就有结果!只要你愿意去学习,你就能卷动的过别人!

现在,你需要的只是一份清晰的转型计划和一群志同道合的伙伴。作为一名热心肠的互联网老兵,我决定把宝贵的AI知识分享给大家。 至于能学习到多少就看你的学习毅力和能力了 。

在这里插入图片描述

第一阶段(10天):初阶应用

该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。

  • 大模型 AI 能干什么?
  • 大模型是怎样获得「智能」的?
  • 用好 AI 的核心心法
  • 大模型应用业务架构
  • 大模型应用技术架构
  • 代码示例:向 GPT-3.5 灌入新知识
  • 提示工程的意义和核心思想
  • Prompt 典型构成
  • 指令调优方法论
  • 思维链和思维树
  • Prompt 攻击和防范
  • …

第二阶段(30天):高阶应用

该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。

  • 为什么要做 RAG
  • 搭建一个简单的 ChatPDF
  • 检索的基础概念
  • 什么是向量表示(Embeddings)
  • 向量数据库与向量检索
  • 基于向量检索的 RAG
  • 搭建 RAG 系统的扩展知识
  • 混合检索与 RAG-Fusion 简介
  • 向量模型本地部署
  • …

第三阶段(30天):模型训练

恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。

到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?

  • 为什么要做 RAG
  • 什么是模型
  • 什么是模型训练
  • 求解器 & 损失函数简介
  • 小实验2:手写一个简单的神经网络并训练它
  • 什么是训练/预训练/微调/轻量化微调
  • Transformer结构简介
  • 轻量化微调
  • 实验数据集的构建
  • …

第四阶段(20天):商业闭环

对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。

  • 硬件选型
  • 带你了解全球大模型
  • 使用国产大模型服务
  • 搭建 OpenAI 代理
  • 热身:基于阿里云 PAI 部署 Stable Diffusion
  • 在本地计算机运行大模型
  • 大模型的私有化部署
  • 基于 vLLM 部署大模型
  • 案例:如何优雅地在阿里云私有部署开源大模型
  • 部署一套开源 LLM 项目
  • 内容安全
  • 互联网信息服务算法备案
  • …

学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。

如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。

这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费】

在这里插入图片描述

探索检索增强生成(RAG)技术的无限可能:Vector+KG RAG、Self-RAG、多向量检索器多模态RAG集成 阅读详情

相关推荐

(17-6-04)检索增强生成(RAG):长文本检索器+多向量检索器

为每个文档创建一个摘要,然后为摘要文本生成一个向量。例如下面是一个使用MultiVectorRetriever生成文件摘要并为摘要文本生成向量的例子。

码农三叔 1679

基于多向量检索器的多模态 RAG 实现

使用 LangChain 多向量检索器(Multi-Vector Retriever)结合多模态大语言模型对多内容类型的文档实现更好的 RAG 效果

tigerinus的博客 3500

ros2的unity仿真配置(ros2-for-unity)

可以看到unity中输出了Hello World,验证完毕!可以看到unity上监听的/chatter。

m0_63671696的博客 4094

使用多向量检索技术提高文档检索效率

为每个文档生成一个摘要,并将摘要向量与原文向量一起存储。# 创建摘要生成链# 生成摘要# 将摘要和原文一起添加到向量存储# 使用API代理服务提高访问稳定性多向量检索技术通过为每个文档存储多个语义向量,显著提高了文档检索的准确性和灵活性。本文介绍了实现多向量检索的几种主要方法,包括文档分块、摘要生成和假设性问题生成,并展示了如何使用LangChain框架实现这一技术。虽然多向量检索带来了一些挑战,如存储空间增加和检索时间延长,但通过适当的优化策略,这些问题都可以得到有效解决。

qq_29929123的博客 1006

cmu15445(2024fall) project 2

project 2比p1难度要更大,代码量更大且涉及的知识更多,实现中出现的bug更多,好在是最后全部解决了。我最大的收获在于对于多线程编程的理解更深入了,实际发现解决了多个多线程相关的bug,学会了更多多线程下debug的技巧方法,也见识了更多多线程的bug情况。在之后可以更系统的学习一下多线程编程。同时学会实现B+树也是需要掌握的基础。

Jerome_Yi的博客 1563

OpenCV 实战篇——如何测算出任一副图片中的物体的实际尺寸?传感器尺寸与像元尺寸的关系?

本文介绍了通过相机图像测算物体实际尺寸的方法,重点分析了传感器参数与成像质量的关系。文章首先给出了物体实际尺寸的计算公式,涉及像素尺寸、距离、分辨率等参数。然后详细解析了传感器尺寸与像元尺寸的关系,指出相同分辨率下更大的传感器能获得更好的成像质量。此外还介绍了光学尺寸、像素尺寸对成像的影响,以及帧率的概念。最后提及了相机标定的重要性,并概述了从像素坐标系转换到世界坐标系的基本思路。这些知识为通过相机图像进行精确测量提供了理论基础。

程序员,他们想的是什么?他们想的永远都是技术,他们崇尚的也永远都是技术。 1338

langchain从入门到精通——RAG优化策略MultiVector实现多向量检索文档

本文介绍了LangChain中通过MultiVectorRetriever实现多向量检索(RAG)的优化策略。该方法通过为文档块生成多个表征向量(如摘要、假设性问题或更小子块),提高文档检索命中率。文章详细展示了使用FAISS向量数据库和本地存储实现"摘要检索原文"的完整流程,包括文档处理、摘要生成链构建、多向量检索器配置等关键步骤。这种多维度索引策略能显著提升检索系统效果,适用于子文档检索等多样化检索场景。

xiaocheng121212的博客 523

066、AR 应用中虚拟物体漂移抖动?IMU 融合 + 光流追踪的视觉里程计优化方案

AR应用中虚拟物体漂移抖动优化方案 摘要:针对AR应用中虚拟物体漂移抖动问题,提出一种IMU融合与光流追踪的视觉里程计优化方案。关键点包括:1) 采用IMU预积分技术处理高频噪声,通过中值积分计算帧间相对运动约束;2) 使用金字塔LK光流追踪像素运动,通过中值偏差法剔除异常值;3) 构建10帧滑动窗口的紧耦合优化框架,将IMU预积分约束和光流重投影约束联合优化。实验表明,该方法有效解决了时间戳未对齐导致的"跳舞箭头"现象,在手机端实现稳定30fps的AR定位精度,漂移误差降低至厘米级。特别提醒:IMU与视觉

ai技术增长的博客 161

LangChain RAG-MultiVector实现多向量检索文档

本文介绍了多表征/向量索引技术及其实现方法。该技术通过从多个维度记录文档块信息(如切割更小块、生成摘要或假设性问题),为每个文档块生成多条特征向量,从而提高检索命中率。文章详细阐述了多向量检索的运行流程,并提供了基于LangChain框架的代码示例。示例展示了如何使用FAISS向量数据库和本地文件存储实现"摘要检索原文"策略,以及如何通过生成假设性问题来优化检索效果。此外,还介绍了MultiVectorRetriever类的使用方法,包括构建摘要生成链、批量处理文档、创建多向量检索器等关

hh051020的博客 577

AMDGPU IH(Interrupt Handler)实现分析

AMDGPU IH环形缓冲区机制是显卡驱动中高效处理GPU硬件中断的核心架构。该机制通过环形缓冲区存储中断事件,利用读写指针(wptr/rptr)同步硬件与驱动间的数据交互。硬件写入事件后驱动遍历处理,通过指针掩码实现环形循环,并具备溢出检测和虚拟化环境下的重置保护。其优势在于批量处理降低中断开销,指针同步确保可靠性,支持多队列扩展和SR-IOV虚拟化场景,为GPU中断管理提供了高性能基础架构。

图形/计算GPU的驱动与虚拟化技术分享园地 1640

LVGL misc timer 定时器(lv_timer.c)

定时器机制是LVGL中非常重要的一项功能,它承载了LVGL的延时任务执行,周期任务执行,时序任务执行等,可以说理解定时器的设计就一定程度上理解发LVGL的任务调度机制。

Bigan(安)的博客 4733

langchain从入门到精通(三十三)——RAG优化策略(九) MultiVector实现多向量检索文档

通过上面的运行流程,可以很容易知道在 原始文档 和 摘要文档 中都在元数据中设置了 唯一标识,从向量数据库中找到符合规则的数据后,通过查找其 元数据 的唯一标识,即可在 文档数据库 中匹配出原文档,完成整个多表征/向量的检索。,其中 假设性查询检索 是利用 LLM 对切块后的文档生成多个 假设性标题,在向量数据库中存储 假设性标题 文档块,使用检索到的数据查找 原始文档。通过这种方式可以为一个文档块生成多条特征/向量,在检索时能提升关联文档被检索到的概率,多向量检索的运行流程其实也非常简单,以。

swpucwf的博客 945

使用Python,OpenCV查找图像中的最亮点

这篇博客展示了,为什么在图像中找到最亮的点之前应用高斯模糊是至关重要的。 通过应用高斯模糊,可以将每个给定半径内的像素平均在一起。取平均值可以去除高频噪声,否则会影响cv2.minMaxLoc函数的结果。 一定要研究高斯模糊半径的恰当值。如果取值太小,将会减轻平均值的影响,而忽略了更大、更亮的区域。但是如果半径太大,将无法探测到小的明亮区域。

qq_40985985的博客 3810

Langflow lfx-nextplaid 扩展包实战:用 NextPlaid 多向量存储与 vLLM 多向量嵌入构建 ColBERT/ColPali 级语义检索

本篇围绕 Langflow 仓库中的 [lfx-nextplaid 扩展包](https://link.gitcode.com/i/90588a28be6c6dd66b5ab5e48e9fd9a4) 展开:它把一个独立部署的 NextPlaid 多向量向量库(支持 ColBERT 文本与 ColPali 图文晚交互检索)及其配套的 vLLM 多向量嵌入组件打包成标准 Langflow Extens

gitblog_00725的博客 452

BART non-Cartesian 重建:并行成像 压缩感知

本文主要使用并行成像和压缩感知方法实现non-Cartesian MRI 数据的重建。

张哥频道:电生理信号和磁共振成像 1182

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

LangChain(0.0.340)官方文档十:Retrieval——Retrievers(检索器)

介绍了langchain 检索器(Retriever)中的多种检索方法和算法

qq_56591814的博客 5054

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

【RAG】6个阶段-路由阶段优化策略的案例实现与Prompt编写(进阶)

文章摘要:本文介绍了两种利用大语言模型优化检索系统的方法:逻辑路由和语义路由。逻辑路由通过函数回调实现规范化输出,根据用户问题自动选择最相关的数据源(如python_docs/js_docs)。语义路由则基于文本相似度计算,动态匹配问题与特定领域提示模板(如数学/物理),提升回答质量。两种方法均通过LangChain框架实现,相比传统prompt约束更精准高效。

Jzin的博客 347

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

LangChain实战指南:从RAG到Agent的完整路径与避坑手册

大模型应用开发正从零散的API调用走向工程化、框架化。LangChain作为主流编排框架,将文档加载、文本分割、向量检索、模型调用、输出解析等环节抽象为标准化组件,通过LCEL管道符即可串联出完整链路。这种设计不仅显著降低了多组件协作的维护成本,更让开发者能灵活替换Embedding、向量库或对话模型,快速适配不同业务场景。无论是企业知识库问答、内部效率工具还是自动化脚本,掌握LangChain的核心数据流思维都至关重要。本文基于实际项目经验,完整演示了从环境搭建、RAG知识库构建到Agent工具调用与La

weixin_42613501的博客 341

利用大模型解决表格数据处理难题

现在我们已经提取了表格和文本内容,接下来需要为它们创建摘要。因为直接将原始表格和文本存储到向量数据库中并进行相似性搜索不是一个好主意,所以我们对每个表格或文本内容的摘要(即文本嵌入)进行相似性搜索,这样可以更好地检索到所需数据。# 提示模板{context}"""

qingkahui24689的博客 3026

RAG相关调研

稀疏检索和稠密检索结合也是业界常用的一种办法,它在术语匹配方面就有很好的效果,很多向量数据库提供的查询方法本来就融合了这两种方式,但是其都有一个较为完整的处理逻辑。因此,为了生成答案,模型只考虑一个子问题的相关文档,而忽视了另一个子问题提出的问题。例如,在表6中,它错误地表示D组既是法国的世界杯分组,也是德国的世界杯分组,而事实上,德国实际上被分配到E组。当我们将检索到的上下文交给LLM时,模型本身在处理”噪音鲁棒性“,”负面拒绝“,”信息整合“,”反事实鲁棒性“四个方面存在一定的差异。

Ffffatass的博客 1143

[LangGraph SDK详解-06]利用StoreClient访问和管理数据存储

本文介绍了LangGraph中的存储机制,重点分析了BaseStore和StoreClient的设计与功能。BaseStore作为长期存储抽象层,支持层次化命名空间、向量检索和生命周期管理,适用于RAG架构中的多向量检索和嵌入向量缓存。文章详细列举了BaseStore提供的同步/异步操作方法,并介绍了多种实现方案(内存、Redis、文件系统等)。同时,StoreClient作为客户端SDK组件,通过RESTful API远程操作BaseStore,其接口设计与BaseStore保持高度一致。这种存储架构既支

JaydenAI的博客 522

快速入门多向量检索器

有时摘要可以更准确地提炼出一个片段的内容,从而提高检索效果。这里我们展示如何创建摘要,然后嵌入这些摘要。chain = (符号表示管道操作符,这是一种流式处理数据的方法。每个步骤的输出会成为下一个步骤的输入。这种语法通常出现在某些特定的库或框架中,表示数据处理链中的各个步骤。提取文档内容:从输入对象中提取文档的内容。生成聊天提示模板:将提取的内容传递给聊天提示模板。执行聊天模型:将提示模板传递给 OpenAI 聊天模型进行总结处理。解析输出:将聊天模型的输出传递给字符串输出解析器进行解析。

weixin_69415739的博客 1941

MultiVectorRetriever深度解析

这个处理链首先通过ChatPromptTemplate创建一个聊天提示模板,然后使用ChatOpenAI对文档进行处理,最后通过StrOutputParser将处理结果转换为字符串。然后,我们创建一个处理链,用于将文档转换为摘要。总的来说,langchain-MultiVectorRetriever是一个强大的工具,可以有效地处理和检索大量的文本文档。然后,我们创建一个Chroma对象,用于索引这些摘要文档,和一个InMemoryByteStore对象,用于存储原始文档。是一种强大的文档索引和检索工具。

weixin_44726183的博客 1748

在LangChain中实现多向量检索器

在处理大型文档集合时,为了提高检索效率和准确性,通常需要将每个文档分割成更小的块,并为每个块创建单独的向量。无论是通过分割文档成较小的块,还是通过生成摘要或假设性问题,多向量检索器都能帮助我们更好地管理大量的文档数据。我们需要将分割后的文档块添加到向量存储中,并设置文档ID与文档内容之间的映射。我们需要将分割后的文档块添加到向量存储中,并设置文档ID与文档内容之间的映射。假设性问题:创建每个文档都适合回答的假设性问题,并将这些问题与文档一起嵌入。较小的块:将文档分割成较小的块,然后嵌入这些块。

weixin_44217158的博客 1691

es混合检索与langchain检索增强

Elasticsearch全文检索,混合检索,向量检索,语义检索,kNN检索,rrf重排,langchain检索增强

峰 2859

《Learning Langchain》阅读笔记10-RAG(6)索引优化:MultiVectorRetriever方法

介绍langchain中RAG索引优化的MultiVectorRetriever方法

m0_46464899的博客 1365
上一篇: 你的AI还在“张口就来”?RAG整体流程全揭秘,让每个回答都有根有据!
下一篇: 你的AI为什么总“学歪”?问题在标注!Dify标注功能深度解析,3大模块+5案例,让你少走99%的弯路!
Python_金钱豹
博客等级 码龄5年 1万+粉丝 2840原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值