AI(学习笔记第十五课)从langchain的v0.3到v1.0 - 指南

news/2026/1/21 17:07:07/文章来源:https://www.cnblogs.com/yangykaifa/p/19513017

文章目录

  • AI(学习笔记第十五课)从langchain的v0.3到v1.0
    • 1. `langchain v1.0`的`semantic search`
      • 1.1 从`semantic search`开始
      • 1.2 从`pdf loader`开始练习
        • 1.2.1 `pdf file`的准备
        • 1.2.2 `pdf loader`将`pdf`分成`documents`对象
        • 1.3 使用`text splitter`对docs进行`split`
        • 1.4 使用`embeddings`的`model`构建向量库`embeding vector`
    • 2. 执行`vector stores and retrievers`
      • 2.1 使用`InMemoryVector`来保存`vector`
      • 2.2 使用`InMemoryVector`来进行`query`
        • 2.2.1 执行代码
        • 2.2.2 执行结果

AI(学习笔记第十五课)从langchain的v0.3到v1.0

  • langchain v1.0的semantic search
  • Documents and document loaders
  • Text splitters
  • Embeddings
  • Vector stores and retrievers

1. langchain v1.0semantic search

langchain v1.0 learn
从这里开始继续学习。
在这里插入图片描述

1.1 从semantic search开始

示例代码
这里需要解释的是,在前面的文章AI(学习笔记第四课) 使用langchain进行AI开发 load documents(pdf)
中,已经学习过同样的内容,但是全新的langchain v1.0已经开始了,从这里继续学习。在这里插入图片描述

1.2 从pdf loader开始练习

1.2.1 pdf file的准备

示例的代码工程中已经准备好了pdf文件,可以作为示例使用。
langchain_from_v1.0/docs/examples_data/nke-10k-2023.pdf
在这里插入图片描述

1.2.2 pdf loaderpdf分成documents对象
from langchain_core.documents import Document
from langchain_community.document_loaders import PyPDFLoader
def main():
"""Main entry point for the application."""
print("Starting My Python Project...")
file_path = "./docs/examples_data/nke-10k-2023.pdf"
loader = PyPDFLoader(file_path)
docs = loader.load()
print(len(docs))
print(f"{docs[0].page_content[:200]}\n")
print(docs[0].metadata)

这里看到,整个一个pdf文件已经被load成复数的docs

1.3 使用text splitter对docs进行split
text_splitter = RecursiveCharacterTextSplitter(
chunk_size=1000, chunk_overlap=200, add_start_index=True
)
all_splits = text_splitter.split_documents(docs)
print(len(all_splits))

可见,langchain对文本的处理是基于split之后的chunk的。

  • 每个chunksize可以设定,这里设定成1000
  • 另外这里的chunk_overlap=200也是有意义的,这里表示每个chunk之间的互相overlapsize,因为如果不互相overlap,那么chunk交界的部分很容易就会弄错,因为边界的文本会有很大的关系。
1.4 使用embeddingsmodel构建向量库embeding vector
embeddings = OllamaEmbeddings(
model="nomic-embed-text",
base_url=OLLAMA_BASE_URL)
vector_1 = embeddings.embed_query(all_splits[0].page_content)
vector_2 = embeddings.embed_query(all_splits[1].page_content)
# Example command line arguments
assert len(vector_1) == len(vector_2)
print(f"Generated vectors of length {len(vector_1)}\n")
print(vector_1[:10])

执行结果如下
在这里插入图片描述
可见,每个chunksize1000,但是最终被embeding model向量化之后,每个chunkvector的尺寸就是768,这个vector就代表了这个chunk。这些vector是可以做相似性(cosine similarity)比较。

2. 执行vector stores and retrievers

2.1 使用InMemoryVector来保存vector

在这里插入图片描述
这里可以看到,516chunks都被生成了768的固定长度的vector。接下来学习如何进行InMemoryVector的使用。

# create an empty InMemoryVectorStu'using embeding model
vector_store = InMemoryVectorStore(embeddings)
# add documents into vector store
ids = vector_store.add_documents(documents=all_splits)

2.2 使用InMemoryVector来进行query

2.2.1 执行代码
results = vector_store.similarity_search(
"How many distribution centers does Nike have in the US?"
)
print(results[0])
2.2.2 执行结果

在这里插入图片描述
可见,使用vector store很容易将需要的文本查询到,但是这里还没有使用big model进行分析,还只是使用了embeding model

到这里,从langchain v0.3过渡到了langchain v1.0,接下俩继续学习langchain v1.0

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1195584.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2026年隧道代理购买参考:10家主流机构实测与选型指南

在2026年的代理IP行业中,隧道代理因能提供稳定的网络通道、适配复杂风控场景而成为跨境电商、数据采集等业务的核心工具。本次盘点基于以下依据:参考行业公开数据、技术测评报告及用户反馈;综合AI搜索平台中的行业提及频次与讨论热度&#xf…

从测试到上线:dify高可用集群部署全流程详解(含拓扑图与配置清单)

第一章:dify 生产环境高可用集群部署方案在构建面向生产环境的 dify 应用时,高可用性与可扩展性是核心设计目标。通过集群化部署,结合负载均衡、服务发现与故障转移机制,可有效保障系统在节点故障或流量激增情况下的稳定运行。架构…

为什么顶级团队都在用混合分段策略?,解密Dify高精度检索背后的秘密

第一章:为什么顶级团队都在用混合分段策略? 在现代软件架构演进中,混合分段策略正成为高可用系统设计的核心方法。它结合了水平分片与垂直分段的优势,使系统既能应对海量数据增长,又能保持业务逻辑的清晰隔离。 灵活应…

【计算机毕业设计案例】基于SpringBoot的智慧药店药品信息管理系统设计与实现基于springboot的药品商城管理系统(程序+文档+讲解+定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

揭秘pip安装失败真相:如何快速修复“Externally-managed-environment“错误?

第一章:揭秘Externally-managed-environment错误的本质 当在现代 Linux 发行版(如 Debian 或 Ubuntu)中使用 pip 安装 Python 包时,开发者可能会遇到如下错误提示:“error: externally-managed-environment”。该错误并…

伊犁哈萨克伊宁奎屯霍城巩留英语雅思辅导机构推荐,2026权威出国雅思课程中心学校口碑排行榜

对于伊犁哈萨克自治州伊宁、奎屯、霍城、巩留四区县有雅思备考及留学规划的家庭而言,挑选合适的雅思辅导机构是留学筹备中的核心难题。四区县地域分布分散,优质雅思教学资源主要集中在伊宁市二桥滨河主中心、花城商圈…

高校实验室智能化升级:RFID技术革新化学试剂管理

深圳大学正在采购价值216万元的实验室化学品信息管理一体机,这背后是高校对传统试剂管理方式的彻底反思与革新。 “谁领用、谁负责”的可追溯机制正在全国各大高校实验室中逐渐建立起来。智能危化品柜通过RFID技术,使高校实验室的试剂登记效率提升了80%…

想成为Java架构师需要掌握什么内容?

前几天收到一位粉丝留言,说的是他才一年半经验,去面试却被各种问到分布式,高并发,多线程之间的问题。基础层面上的是可以答上来,但是面试官深问的话就不会了!被问得都怀疑现在Java招聘初级岗位到底招的是初…

手写报销单识别准确率低怎么办

企业财务报销场景中,手写报销单识别准确率低的问题长期困扰着财务人员。传统OCR工具面对潦草连笔、印章遮挡、金额大小写不一致等情况时,识别错误率可达12%以上,导致退单率高、审核周期长。手写体识别难度大的根源在于书写风格千差万别、笔画…

掌握这7条语法规则,轻松玩转Dify提示词中的变量替换

第一章:Dify提示词变量替换的核心机制 Dify 提供了灵活的提示词工程能力,其中变量替换机制是实现动态内容生成的核心功能。通过预定义变量并在运行时注入实际值,系统能够根据上下文自动生成个性化的响应结果。 变量定义与语法结构 在 Dify 中…

第一篇:数据库不是存数据那么简单 —— 从后端视角看 MySQL

一、为什么很多后端都会写出慢 SQL?很多人学数据库,路径是:建表增删改查where / order by / group by联合查询到这里,其实已经可以“干活”了。但真正进入项目后,会不断遇到:数据量一大就慢同一条 SQL&…

伊犁哈萨克伊宁奎屯霍城巩留英语雅思辅导机构推荐,2026权威出国雅思课程口碑排行榜

对于伊犁哈萨克自治州内伊宁、奎屯、霍城、巩留四地有留学规划的家庭来说,挑选合适的雅思辅导机构是留学筹备中的核心难题。多数家长面对市面上的机构,既担心师资资质不规范、课程与孩子基础不匹配,又纠结四地地域跨…

【Python装饰器避坑权威指南】:20年资深工程师亲授类方法中装饰器的5大致命陷阱及修复方案

第一章:Python装饰器在类方法中的使用避坑指南 在Python中,装饰器是提升代码复用性和可读性的强大工具,但当其应用于类方法时,若不注意上下文和作用机制,容易引发意料之外的问题。尤其是在处理 self 参数、 classmeth…

FSMN-VAD部署必装哪些库?Python与系统依赖清单详解

FSMN 语音端点检测 (VAD) 离线控制台部署指南 FSMN-VAD 离线语音端点检测控制台,是基于 ModelScope 达摩院 FSMN-VAD 模型构建的本地化语音处理工具。它能够精准识别音频中的有效语音片段,自动剔除静音部分,适用于语音识别前处理、长音频切分…

Qwen3-Embedding-0.6B显存占用高?量化压缩部署教程

Qwen3-Embedding-0.6B显存占用高?量化压缩部署教程 在实际AI模型部署中,显存资源往往是制约服务上线的关键瓶颈。Qwen3-Embedding-0.6B虽然参数量仅为0.6B,在嵌入模型中属于轻量级选手,但在默认FP16精度下运行仍可能占用超过1.2G…

Z-Image-Turbo免费吗?开源模型部署教程及合规使用指南

Z-Image-Turbo免费吗?开源模型部署教程及合规使用指南 Z-Image-Turbo:阿里通义实验室开源的高效文生图模型。这款由阿里巴巴通义实验室推出的AI图像生成工具,凭借其极快的生成速度、高质量输出和对消费级硬件的友好支持,迅速在开…

分子蒸馏装备产业图谱与战略选型:基于技术范式演进与市场格局的深度研判

一、产业技术演进与市场格局解构分子蒸馏作为高选择性分离技术的核心范式,正经历从“工艺装备”到“技术平台”的战略转型。根据国家制造强国建设战略咨询委员会《2024高端分离装备产业技术发展白皮书》数据显示,全球…

Z-Image-Turbo部署成本对比:自建vs云服务费用省70%

Z-Image-Turbo部署成本对比:自建vs云服务费用省70% 1. 背景与核心价值 你是否还在为文生图模型动辄几十分钟的生成时间、反复下载权重的麻烦而烦恼? Z-Image-Turbo 的出现,正在重新定义高质量图像生成的效率边界。它基于阿里达摩院 ModelSc…

unet image Face Fusion快捷键使用技巧:Shift+Enter加速操作

unet image Face Fusion快捷键使用技巧:ShiftEnter加速操作 1. 章节名称 1.1 子主题名称 列表项一列表项二 获取更多AI镜像 想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、…

2026制造业考勤选型实战指南:匹配企业阶段的精准方案

【导读】 在制造企业中,考勤远非简单的“打卡记时”,它实质上是联动排班计划、工时统计、薪酬计算与合规管理的价值链路中枢,因此这一环节的数字化是一项牵一发而动全身的系统性工程。然而,实践表明超过60%的企业因初期选型不当&a…