使用langchain与你自己的数据对话(二):向量存储与嵌入_langchain chat with your data

使用langchain与你自己的数据对话(二):向量存储与嵌入 今天我们学习了嵌入和向量数据库的基本原理,并且对嵌入(Embeddings)和开源数据库Chroma进行了实际的操作,并观察了各种的返回结果,同时我们还发现了两种Chroma数据库相似搜索失效的场景。关于如何避免失效的应用我们将在下一篇博客中进行讨论。 阅读详情

之前我以前完成了“使用langchain与你自己的数据对话(一):文档加载与切割这篇文章,没有阅读的朋友可以先阅读一下,今天我们来继续讲解第三门课:向量存储与嵌入。

Langchain在实现与外部数据对话的功能时需要经历下面的5个阶段,它们分别是:Document Loading->Splitting->Storage->Retrieval->Output,如下图所示:

在上一篇博客:文档加载与切割)中我已经介绍了如何使用Langchain来加载外部的文档,以及如何切割文档,之所以要对文档做加载与切割的操作,是因为外部数据类型和属性有所不同,比如外部数据可能是pdf, text, 网页,youtube视频等,要读取不同类型的外部数据我们就需要有专门的Loader来加载这些数据,所以我们就需要各种类型的文档加载器,当数据被加载器加载以后,接下来我们需要做文档的切割,这是因为外部数据的体量可能比较大,如pdf文档可能会有几十页,几百页的内容,所以我们需要将文档内容按一点尺寸(chunk_size)均匀的切成小块(chunks), 在上一篇博客中我们介绍了几种Langchain常用的文档切割器如RecursiveCharacterTextSplitter, CharacterTextSplitter,TokenTextSplitter,MarkdownHeaderTextSplitter等,其中Langchain默认使用RecursiveCharacterTextSplitter切割器。当文档被切割以后,加下来就到了嵌入(Embeddings)和向量存储(vectorstores)的环节,如下图所示:

所谓的向量存储是指被切割的文档需要经过向量化操作以后存储到向量数据库的过程,因为大型语言模型(LLM)无法理解文字信息(只能理解数字),所以我们必须对文字信息进行编码,这里说的编码就是只嵌入(Embeddings), 嵌入操作可以将文本转换成数字编码并以向量的形式存储在向量数据库中,如下图所示:

当文档被切割成块(chunks)后,每一个块都会经嵌入操作后转换成向量并存储在向量数据库中,当用户对文档内容提出问题时,用户的问题也会经嵌入操作后被转换成向量并与向量数据库中的所有向量做相似度比较,最后找出与问题最相关的n个向量,如下图所示:

当找到与用户问题最相关的n个向量以后,这些向量会被还原成原始文本,然后将用户的问题和这些文本信息发送给LLM, LLM会针对用户的问题对这些文本内容做提炼和汇总,最后给出正确合理的答案,如下图所示:

整个与文档对话的过程大致就是这样,下面我们来实操一下上面的嵌入和向量存储的过程,不过首先我们还是需要做一下些基础性工作,比如设置一下openai的api key:

import os
import openai
import sys
sys.path.append('../..')

from dotenv import load_dotenv, find_dotenv
_ = load_dotenv(find_dotenv()) # read local .env file

openai.api_key  = os.environ['OPENAI_API_KEY']

Document Loading & Splitting

接下来我们首先来实现文档的加载和切割,这里我们会加载一组吴恩达老师著名的机器学习课程cs229的pdf讲义稿:

from langchain.document_loaders import PyPDFLoader

# Load PDF
loaders = [
    # Duplicate documents on purpose - messy data
    PyPDFLoader("docs/cs229_lectures/MachineLearning-Lecture01.pdf"),
    PyPDFLoader("docs/cs229_lectures/MachineLearning-Lecture01.pdf"),
    PyPDFLoader("docs/cs229_lectures/MachineLearning-Lecture02.pdf"),
    PyPDFLoader("docs/cs229_lectures/MachineLearning-Lecture03.pdf")
]
docs = []
for loader in loaders:
    docs.extend(loader.load())

需要说明一下的是这里我们加载了2篇相同的pdf文档:Lecture01.pdf,之所以要加载两篇相同的pdf文档,是为了后面我们需要做一些测试看看当文档内容相同的时候LLM的表现。当文档完成加载以后,下面我们就需要对文档进行切割,首先我们需要创建一个文档切割器RecursiveCharacterTextSplitter:

# Split
from langchain.text_splitter import RecursiveCharacterTextSplitter
text_splitter = RecursiveCharacterTextSplitter(
    chunk_size = 1500,
    chunk_overlap = 150
)

这里关于参数chunk_size ,和chunk_overlap 的含义在文档加载与切割这篇博客中已经详细说明过了,这里不再赘述。当文档切割器创建完成以后,我们可以开始切割文档的操作:

#切割文档
splits = text_splitter.split_documents(docs)

#查看切割后文档的数量
print(len(splits))

这里我们看到切割后的文档长度是209,也就是说所有的pdf文档被切割成了209块(chunks),我们可以查看其中的某一块的文档内容:

splits[0]

我们看到被切换的文档块中包含了文档的内容(page_content)和元数据(metadata),在元数据中记录了文档的位置和该块内容所在的页数。那么现在在splits中就包含了209个这样的文档块。

Embeddings

所谓的嵌入(Embeddings)是一种文本的编码的方法,它可以一段文字转换成一定长度的一组向量,下面我们来做一下简单的embedding测试:

from langchain.embeddings.openai import OpenAIEmbeddings
embedding = OpenAIEmbeddings()


sentence1 = "我喜欢小狗。"
sentence2 = "我喜欢小动物。"
sentence3 = "我今天心情很差。"

embedding1 = embedding.embed_query(sentence1)
embedding2 = embedding.embed_query(sentence2)
embedding3 = embedding.embed_query(sentence3)

这里我们有三句简单的中文句子,前两句表达人和动物之间的关系,第三句表达人的心情,所以前两句的含义应该比较相似,后第三句和前两句的含义完全不同,下面我们可以通过计算两个向量的点积来得到两个向量的相似度:

np.dot(embedding1, embedding2)

np.dot(embedding1, embedding3)

np.dot(embedding2, embedding3)

我们可以看到embedding1与embedding2之间有较高的相似性达到了0.94,而embedding3与embedding1和embedding2的相似度只都只有0.8以下,这说明第一句和第二句话有较高的相似度。下面我们看一下经过embedding操作以后的结果是怎么样的:

print(embedding1)

这里我们看到经过embdding操作后生成的向量是一个python的list, 其中包含了很多数字,下面我们再看一下这个embdding的长度:

print(len(embedding1))

这里我们可以看到经过embdding操作以后生成的向量的长度是1536,也就是说由1536个数字来表示了被embdding的这句文本,我们也可以看成是由1536个维度来表示这句文本。

向量数据库

当我们知道了Embedding的原理以后,接下来我们来介绍一种向量数据库Chroma,Chroma 是开源嵌入(Embedding)数据库。Chroma 通过为大型语言模型(LLM)提供可嵌入的知识、事实和技能,让构建大型语言模型(LLM)的应用程序变得更加容易,如下图所示:

接下来我们来实际操作创建向量数据库的过程,并且将生成的向量数据库保存在本地。当我们在创建Chroma数据库时,我们需要传递如下参数:

  • documents: 切割好的文档对象
  • embedding: embedding对象
  • persist_directory: 向量数据库存储路径
from langchain.vectorstores import Chroma

#向量数据库保存位置
persist_directory = 'docs/chroma/'

#创建向量数据库
vectordb = Chroma.from_documents(
    documents=splits,
    embedding=embedding,
    persist_directory=persist_directory
)


#查看向量数据库中的文档数量
print(vectordb._collection.count())

这里我们看到向量数据库中存储这209个向量,这和我们之前切割文档后的splits 中的数量是一至的,这说明原来209个文档块已经被转换成了209个向量并且被保存在了Chroma数据库中。

相似度搜索(Similarity Search)

当文档被切割并经embedding操作后转换成向量存储到Chroma数据库中后,我们可以对Chroma数据库中的向量进行相似度的比较,也就是我们可以模拟用户提出问题,然后去Chroma执行相似内容搜索,并返回与问题相似度较高的文本内容:

question = "is there an email i can ask for help"

docs = vectordb.similarity_search(question,k=3)

#打印文档数量
print(len(docs))

这里我们要求向量数据库对问题进行相似度搜索,找出和问题最相关的3个(k=3)文档。下面我们查看其中的一个文档的内容:

docs[0].page_content

我们看到第一篇文档中包含了"email"这个单词,这和我们的问题显然是相关的。接下来我们来实现向量数据库的持久化:

vectordb.persist()

执行了persist()操作以后向量数据库才真正的被保存到了本地,下次在需要使用该向量数据库时我们只需要从本地加载数据库即可,无需再根据原始文档来生成向量数据库了。

失败的应用场景

虽然有了向量数据库,基本上可以让我们轻松完成 80% 的相似性搜索任务。但也存在一些失败的场景,比如下面的例子:

question = "what did they say about matlab?"

docs = vectordb.similarity_search(question,k=5)

这里我们要求向量数据库搜索5个和问题相关的答案,但是大家还记得之前我们在创建文档加载器时加载了两篇相同的文档(Lecture01.pdf),所以现在向量数据库中应该有重复的向量,因此如果当用户的问题和Lecture01.pdf中的内容相关时,向量数据库会返回重复的内容:

docs[0]

docs[1]

这两我们看到docs[0]和docs[1]的内容是完全一样的,这是因为我们之前加载了重复的文档(Lecture01.pdf)所导致的。如何避免让向量数据库返回重复的内容,我们将在下一篇博客中讨论这个问题,下面我们再看一种失败的场景,这里我们要求向量数据库在第三篇原始文档()中搜索相关答案:

question = "what did they say about regression in the third lecture?"

docs = vectordb.similarity_search(question,k=5)

for doc in docs:
    print(doc.metadata)


从上面的返回结果中我们看到,虽然我们要求向量数据库只能从第三篇文档中搜索相关答案,但是从返回结果的元数据中我们看到第一篇(Lecture01.pdf)和第二篇(Lecture02.pdf)的内容也在其中,这与我们的要求(问题)相违背,因为我们只要求搜索第三篇文档(Lecture03.pdf)即可。这似乎说明向量数据库并没有很好的理解问题的语义。下面我们查看一下返回的最后一个文档的内容(Lecture01.pdf):

print(docs[4].page_content)

这里我们看到docs[4]对应的是Lecture01.pdf中的第8页的内容,其中也包含了“regression”,这和我们的问题相关。

关于如何避免上述失效的应用场景,我们将会在下一篇博客中进行讨论。

总结

今天我们学习了嵌入和向量数据库的基本原理,并且对嵌入(Embeddings)和开源数据库Chroma进行了实际的操作,并观察了它们的返回结果,同时我们还发现了两种Chroma数据库相似搜索失效的场景。关于如何避免产生失效的结果我们将在下一篇文章中进行讨论。

​

如何学习大模型

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

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

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

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

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

在这里插入图片描述

二、AI大模型视频教程

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

五、结束语

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

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

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

LangChain对话记忆实战:从Buffer到向量库的选型与避坑指南 大语言模型天然缺乏长期记忆能力,而对话记忆(ChatBots Memory)是构建可用AI应用的核心基础设施。其本质是通过信息压缩、上下文管理与外部持久化,在有限上下文窗口内实现关键历史信息的精准召回。技术原理涵盖缓冲机制(Buffer)、语义摘要(Summary)、滑动窗口(BufferWindow)和实体抽取(Entity)四类抽象,并需结合Redis、PostgreSQL或Chroma等存储层完成热冷分离与语义增强。该能力直接决定客服机器人能否记住用户偏好、法律助手是否追溯前序条款、知识助手能否关联历 阅读详情

相关推荐

LangChain+FAISS中文向量检索实战:从嵌入选型到生产调优

向量检索是现代RAG系统的核心基础设施,其本质是将文本映射至高维语义空间,通过相似度计算实现语义搜索。原理上依赖嵌入模型的语义表征能力与向量数据库的高效近似最近邻查询,技术价值在于突破关键词匹配局限,显著提升长尾问题召回率与大模型输入质量。典型应用场景包括智能文档助手、法规知识库、客户访谈分析等需处理非结构化中文文本的领域。本文聚焦LangChain生态下FAISS向量存储与中文嵌入(如bge-m3)的深度集成,覆盖文档加载、智能切片、索引构建、检索调优及故障恢复等全链路工程实践。

www.itmmd.com 439

LangChain手册01-基本概念

要记住的重要一点是,即使您使用的是聊天模型,API 本身也是无状态的,这意味着它不会记住以前的交互 - 您必须将它们传递进来。代理执行器负责调用代理,取回动作和动作输入,用相应的输入调用动作引用的工具,获取工具的输出,然后将所有信息传递回代理以获取它应该采取的下一步行动。链是一系列预先确定的步骤,因此可以很好地开始,因为它们可以让您更好地控制并让您更好地了解正在发生的事情。我们的意思是,您首先自己总结每个块,然后将摘要分组并总结每个块的摘要,并继续这样做,直到只剩下一个。一个常见的用例是想要总结长文档。

记录学习中的点点滴滴,分享学习中的分分秒秒 1587

LangChain+Dash构建可审计的数据对话系统

自然语言数据查询是BI与数据分析领域的基础能力,其核心在于将用户意图精准解析为可执行、可验证的分析动作。该技术路径依托语义解析框架(如LangChain)实现意图识别与工具调度,结合前端可视化库(如Plotly Dash)完成交互式图表渲染,兼顾结果准确性、过程可审计性与界面响应实时性。相比Streamlit等轻量框架,Dash凭借React底层与客户端图表引擎,支持零刷新交互与会话状态持久化,更适合企业级部署;而LangChain的Tool抽象机制,则有效隔离大模型不确定性与业务逻辑确定性,显著提升系统鲁

weixin_34335458的博客 460

Langchain 使用 Elasticsearch,对 Metadata 同一字段的多个属性值进行筛选

使用Langchain做向量知识库检索时,可能会需要根据metadata做数据筛选。(本文主要演示对一个字段的多个属性值进行精确或模糊筛选。假设metadata如果需要根据metadata筛选符合条件的数据,则需要增加filter。

薄荷你玩的博客。个人博客:薄荷分享【www.bhshare.cn】 1780

基于LangChain与向量数据库构建企业知识库AI问答助手实战指南

1. 引言:当AI Agent开始“理解”你的公司 最近,AI领域的一个新动向引发了广泛讨论:Google推出了一项新的协议或技术框架,旨在让AI Agent能够更快速、更深入地理解一个公司的内部运作、数据和业务流程。这听起来像是科幻电影里的情节——一个数字助手入职第一天,就能秒懂公司的组织架构、项目历史和客户需求。对于开发者、技术负责人乃至所有关注企业数字化转型的人来说,这不仅仅是一个新闻热点,更是一个即将到来的技术拐点。 本文将深入探讨这一技术趋势背后的核心概念、潜在实现原理,并为你提供一个从零开始的实

weixin_30480075的博客 395

LangChain构建交互式产品文档对话系统实战

交互式产品文档是一种将静态帮助中心升级为上下文感知、多轮对话式Q&A服务的技术范式,其核心在于通过结构化文档处理、语义检索与LLM协同生成实现精准应答。原理上依赖RAG架构,但关键突破在于利用LangChain对文档元数据(如版本、平台、文档类型)进行可编程建模,解决传统方案中语义漂移、版本冲突与术语歧义等顽疾。技术价值体现在首次解决率提升近一倍、平均解决时长压缩至23秒,显著降低客服重复咨询与用户流失。典型应用场景包括SaaS产品嵌入式帮助、API文档智能导航及多端(iOS/Android/Web)差异化

weixin_30265103的博客 538

Langchain的向量存储 - Document高级运用之metadata

前几篇文章中,我们在代码示例里看见Document的组成部分里有metadata。在 LangChain 的向量存储和检索过程中,metadata可以在多个方面发挥重要作用。虽然在简单的相似性搜索中,主要是通过文本内容的向量进行匹配,但元数据在多个方面可以增强搜索和后处理的效果。元数据在 LangChain 的向量存储和检索过程中具有重要作用,能够显著提高搜索的准确性和相关性,提供更丰富的搜索结果展示,并支持多种检索模式。通过合理利用元数据,可以构建更智能、更高效的搜索和推荐系统。

一起来研究langchain和langchain-chatchat 3547

Linux下用SquareLine Studio开发LVGL界面:从安装到实战的完整避坑指南

本文提供了一份在Linux系统下使用SquareLine Studio开发LVGL图形界面的完整实战指南。内容涵盖从SDL库安装、SquareLine Studio环境配置、界面可视化设计,到工程导出、源码编译及常见错误排查的全流程。重点解析了如何将设计界面无缝集成到Linux开发流程中,并针对嵌入式设备移植提供了关键步骤,旨在帮助开发者高效避坑,快速上手LVGL界面开发。

egg99的博客 905

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

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

2301_81888214的博客 1750

服务器被黑?快速检测和识别系统中的恶意进程

在管理服务器时,检测和识别系统中的恶意进程至关重要。本文介绍了使用 `ps`、`top`、`htop` 等系统监控工具,分析日志文件,以及使用 `chkrootkit` 和 `rkhunter` 等安全工具的方法。通过这些步骤,可以有效地检测和处理恶意进程,确保系统的安全和稳定。

_midnight的博客 1417

AI 模型训练核心方法论:零基础也能落地的 8 个关键阶段

本文是为 AI 零基础学习者打造的模型训练入门指南,以生活化语言拆解核心概念,规避专业术语壁垒。内容先通俗阐释模型训练、监督学习、数据集划分等基础概念,再按问题定义、数据准备、模型选择、环境搭建、训练、评估、调参、部署 8 个阶段,拆解完整训练流程,搭配 PyTorch 代码示例与实战案例,同时提供资源预算、常见问题解决方案及学习路径。指南强调数据的核心重要性,推荐新手优先使用迁移学习和免费 GPU 资源,兼顾理论与实操,帮助学习者快速上手,避开训练误区,独立完成从模型搭建到部署的全流程。

weixin_52741870的博客 469

用通俗易懂的方式讲解大模型:LangChain 知识库检索常见问题及解决方案

本文介绍了 LangChain 打造知识库过程中遇到的文档检索问题以及解决方案,这也是在 Deeplearning 推出的关于 LangChain 最新短课程——《LangChain: Chat with Your Data》[2]中学到的,里面还讲解了更多关于知识库文档方面的实用技术,感兴趣的同学可以去 Deeplearning 官网了解一下。关注我,一起学习各种人工智能和 AIGC 新技术,欢迎交流,如果你有什么想问想说的,欢迎在评论区留言。

2301_78285120的博客 6124

在macOS上使用GitHub的超详细指南

GitHub:免费的远程仓库,可用来托管自己的开源项目。它利用了Git强大的克隆和分支功能,让我们参与别人的开源项目和让别人参与自己的开源项目变得简单高效。

Mars的博客 3391

使用langchain与你自己的数据对话(四):问答(question answering)

今天我们介绍了如何通过答链RetrievalQA,来检索向量数据库并回答用户的问题。其中我们介绍了几种RetrievalQA检索向量数据库的工作方式,也就是chain type方式,其实默认方式是stuff,除此之外还有map_reduce,refine, map_rerank等几种方式,它们都有各自的优缺点。同时我们还介绍了通过使用prompt模板,可以让LLM返回格式化的结果。希望今天的内容对大家学习langchain有所帮助!

weixin_42608414的博客 8330

Qt之自定义QToolTip,去掉显示动画和隐藏延时

先来看看Qt原生QToolTip的缺点:1.当提示内容无变化时,弹窗无法移动。只能先传个空字符串强制弹窗隐藏,然后在新位置再传个字符串。2.默认显示10多秒才消失,当然这个时间是可以设置的,但是如果我想一直显示呢?总不能设置一个超级大的时间吧。3.鼠标移出控件后(调用QToolTip::showText时传入了控件指针)默认300毫秒弹窗才隐藏。而且这个时间没法设置,如果想立即隐藏就没办法了。

草上爬的博客 4268

【大模型】百度千帆大模型对接LangChain使用详解

百度千帆大模型对接LangChain使用详解

congge 5065

LangChain学习:Chat with Your Data

大模型会对输入的 token 数量有限制,可以使用这种切分方法,token 通常大约是4个英文字符。由于加载文档的时候有一个重复的 PDF,所以查询的时候可能会出现两个一样的查询结果。让它从第三个文档中去查,会查出来一些不是第三个文档中的结果。这块没有跑通,大概就是下载视频提取语音,调用。上面的结果中有重复的,如果要去重加一个参数。封装函数:加载文档、切分、LLM链。,需要在切分点往前再找些字符补上。第二个字符串超过了,且设置了。构建用户界面及其响应处理。,只切出来1个字符串。切分效果较好,推荐使用。

Michael是个半路程序员 988

Tessent ATPG Flow 流程 (代码和注释)

**摘要:Tessent ATPG流程分为五个阶段:1) 环境初始化(加载设计文件、库和扫描链配置);2) DRC规则检查(验证设计可测试性并修复违例);3) ATPG向量生成(设置故障模型并运行引擎优化覆盖率);4) 向量验证与后处理(仿真验证并生成ATE格式文件);5) 进阶操作(多电压域和存储器测试)。流程输出包括测试向量、覆盖率报告和验证日志,支持stuck-at和transition故障模型,使用Tcl脚本控制。关键步骤包含扫描链配置、EDT压缩和覆盖率优化。

QQ_778132974的博客 931

【亲测免费】 推荐开源项目:Chat-Your-Data - 在您自己的数据上打造ChatGPT体验

在这个信息爆炸的时代,快速准确地获取和理解数据至关重要。为此,我们很高兴向大家推荐一个创新的开源项目——[Chat-Your-Data](https://github.com/yourusername/Chat-Your-Data),它利用先进的自然语言处理技术和LangChain库,让您能以ChatGPT式的对话方式探索自己的定制文档。 ## 项目介绍 Chat-Your-Data是一个基于...

gitblog_00073的博客 461

高通平台 Android T 蓝牙技术全解析:A2DP 与 AVRCP 核心代码路径与交互流程

A2DP 接收端 - 连接流程(AVDTP 打开)

专业开发者的博客,一个从事Android WiFi和蓝牙的工程师 289

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

基于LLM与向量数据库的对话知识库构建:从信息抽取到智能检索

在信息爆炸的时代,如何高效管理和利用非结构化对话数据成为团队协作的关键挑战。传统的关键词检索难以理解语义,而结合大语言模型(LLM)与向量数据库的技术方案,正成为解决这一问题的核心路径。其原理在于,通过LLM对自然语言对话进行深度理解与结构化信息抽取,再借助嵌入模型将文本转化为高维向量,存储于向量数据库中实现语义相似度检索。这项技术的核心价值在于,能将散落在各处的、易逝的对话内容,转化为可沉淀、可检索、可复用的组织知识资产,极大提升了信息查找与决策追溯的效率。典型的应用场景包括技术讨论复盘、项目决策归档、会

weixin_34408717的博客 352

VB摄像头监控

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

【AI日记】24.11.02 LangChain Chat with Your Data

日记:主要学习了这门课 LangChain Chat with Your Data

AI完全体 327

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

大模型开发手记(二):基于 LangChain 的 RAG 架构全面解析与落地实践

这个系列博客主要打算汇总一下python大模型开发的所有知识体系,大模型知识点太多,包括langchain、langgraph、deepagent、RAG应用等等,时间长了脑子就乱子,这篇博客主要汇总一下基于langchain的RAG开发的相关知识点,重点在整个流程和原理,只要弄懂了原理,不一定是基于langchain,用java调用各个组件,也是可以实现rag的大部分流程。

勇往直前的博客 912

[deeplearning-ai] langchain-chat-with-your-data 学习笔记

在执行 RetrievalQA 时,LangChain 会通过 retriever(这里是 vectordb.as_retriever())从你的向量数据库中找出与 question 最相关的文本片段(通常是 1~k 个 chunk)。分隔符,所以不会被分割成多个段落,LangChain 会当成一个整体段落处理,然后判断该段落是否超过 chunk_size,但实际字符数(:你想限定检索范围,例如只问《第三讲》中关于 regression 的内容,但结果却混入了《第一讲》和《第二讲》的片段。

dark 168

langchain 使用

官方定义是:LangChain是一个强大的框架,旨在帮助开发人员使用语言模型构建端到端的应用程序,它提供了一套工具、组件和接口,可简化创建由大型语言模型 (LLM) 和聊天模型提供支持的应用程序的过程。LangChain是一个语言模型集成框架,其使用案例与语言模型的使用案例大致重叠,包括文档分析和摘要、聊天机器人和代码分析。简单来说,LangChain提供了灵活的抽象和AI优先的工具,可帮助开发人员将LLM应用程序从原型转化为生产环境。

大模型工程师老蓝的博客 1061

langchain 使用指南

官方定义是:LangChain是一个强大的框架,旨在帮助开发人员使用语言模型构建端到端的应用程序,它提供了一套工具、组件和接口,可简化创建由大型语言模型 (LLM) 和聊天模型提供支持的应用程序的过程。LangChain是一个语言模型集成框架,其使用案例与语言模型的使用案例大致重叠,包括文档分析和摘要、聊天机器人和代码分析。简单来说,LangChain提供了灵活的抽象和AI优先的工具,可帮助开发人员将LLM应用程序从原型转化为生产环境。

大模型工程师老蓝的博客 1587
上一篇: 使用langchain与你自己的数据对话(一):文档加载与切割_langchain加载word
下一篇: 使用langchain与你自己的数据对话(三):检索(Retrieval)_langchain 数据收集
AI大模型_学习君
博客等级 码龄3年 6137粉丝 551原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值