当前位置: 首页 > article >正文

LangChain 第一课:核心架构与组件(前端友好版)

一、先一句话搞懂LangChain 到底是什么LangChain 是一个大模型应用开发框架专门帮你把「大模型、RAG、Agent、工具调用」这些功能像搭积木一样快速拼起来不用从零写复杂逻辑。前端类比秒懂你写 Vue 要用到 Vue、Vuex、Vue Router、Axios这些是零散的库LangChain 就像大模型版的 “前端全家桶框架”把这些组件都封装好了开箱即用。没有 LangChain你要自己写提示词拼接、自己写文档加载、自己写向量库交互、自己写记忆管理。有了 LangChain这些功能都有现成组件几行代码就能搭出 RAG、Agent 应用。二、LangChain 核心架构4 大模块面试必背我给你拆成前端能秒懂的类比每个模块都讲清作用。表格模块名称大白话作用前端类比Models模型层对接各种大模型OpenAI、文心一言、本地开源模型提供统一调用接口像 Axios不管后端是什么服务都用统一的方式发请求Prompts提示词层管理提示词模板、动态拼接、格式化输出像 Vue 的模板字符串把变量动态注入生成完整提示词Chains链层把多个组件串起来形成工作流比如加载文档→分块→向量化→检索→生成答案像前端的管道 / 中间件把多个步骤按顺序串成一条流水线Memory记忆层管理对话上下文、用户历史支持短时 / 长时记忆像 sessionStorage /localStorage帮你存对话状态和用户信息三、LangChain 核心组件详解1. Models 模型组件核心作用统一封装不同大模型的调用方式不管用 OpenAI 还是本地开源模型代码写法基本一样。包含LLMs文本生成模型、Chat Models对话模型带上下文、Embeddings文本转向量模型。前端类比统一的 API 请求适配器屏蔽不同后端接口的差异。2. Prompts 提示词组件核心作用管理提示词支持模板化、变量注入、格式化输出。包含PromptTemplate基础模板、ChatPromptTemplate对话模板、FewShotPromptTemplate少样本模板。前端类比模板引擎比如 Handlebars把变量填充进固定模板。3. Chains 链组件LangChain 灵魂核心作用把多个步骤 / 组件按顺序串起来形成一个可复用的工作流。比如RAG 链 文档加载链 → 分块链 → 向量存储链 → 检索链 → 问答链。前端类比中间件 / 拦截器链请求经过一层层处理最后返回结果。4. Memory 记忆组件核心作用给对话加上上下文记忆支持不同类型的存储。包含ConversationBufferMemory完整对话缓存、ConversationSummaryMemory对话摘要、VectorStoreRetrieverMemory向量库记忆。前端类比状态管理Vuex/Pinia 本地存储保存对话状态和用户信息。5. 其他常用组件简单了解Document Loaders加载各种格式的文档PDF、Word、TXT、网页等不用自己写解析。Vector Stores对接向量数据库FAISS、Chroma、Milvus 等实现向量存储和检索。Tools / Agents封装工具调用和之前学的 Agent 工具调用无缝衔接。一、Models 模型层核心作用对接大模型、对话模型、向量嵌入模型是所有能力的基础python运行# 导入普通文本生成大模型 from langchain_openai import OpenAI # 初始化模型指定模型版本、温度(控制随机性) llm OpenAI(model_namegpt-3.5-turbo-instruct, temperature0.7) # invoke 调用模型传入问题 res llm.invoke(什么是 LangChain) # 打印模型返回结果 print(res) # 导入对话专用模型支持多轮对话格式 from langchain_openai import ChatOpenAI # 初始化对话模型 chat_llm ChatOpenAI(model_namegpt-3.5-turbo, temperature0.7) # 调用对话模型提问 res2 chat_llm.invoke(简单解释 RAG 原理) print(res2) # 导入向量嵌入模型把文本转成向量给RAG检索用 from langchain_openai import OpenAIEmbeddings # 初始化向量模型 embeddings OpenAIEmbeddings() # 把一句话转为向量数组 vec embeddings.embed_query(大模型学习路线) # 打印向量长度验证转换成功 print(len(vec))二、Prompts 提示词层核心作用定义提示词模板、预留变量占位动态拼接完整提问话术python运行# 导入提示词模板组件 from langchain.prompts import PromptTemplate # 1. 自定义提示词模板{question} 是变量占位符后续可以动态传值 template 请用通俗易懂的语言回答问题 问题{question} 回答 # 2. 实例化提示词模板 # input_variables声明模板里有哪些变量 # template传入上面写好的模板文本 prompt PromptTemplate( input_variables[question], templatetemplate ) # 3. 给变量赋值填充模板生成完整可以发给大模型的提示词 final_prompt prompt.format(question什么是链 Chain) # 打印生成好的完整提示词 print(final_prompt)三、Chains 链层核心作用把「提示词模板 大模型」自动组装成一条工作链一键执行python运行# 导入大模型 from langchain_openai import OpenAI # 导入提示词模板 from langchain.prompts import PromptTemplate # 导入链组件用来把模型和模板串起来 from langchain.chains import LLMChain # 1. 初始化大模型 llm OpenAI(temperature0.5) # 2. 定义提示词模板{topic} 是动态变量 prompt PromptTemplate( input_variables[topic], template用三句话解释 {topic} ) # 3. 组装成一条链 Chain # 内部自动逻辑接收变量 → 填充提示词 → 调用大模型 → 返回结果 chain LLMChain(llmllm, promptprompt) # 4. 直接运行链给 topic 传参 result chain.run(topicLangChain 的 Chain 链) # 打印链执行后的最终回答 print(result)四、Memory 记忆层核心作用自动保存多轮对话历史让模型记住上下文不用手动拼接聊天记录python运行# 导入大模型 from langchain_openai import OpenAI # 导入对话链自带多轮对话能力 from langchain.chains import ConversationChain # 导入记忆组件缓存完整对话历史 from langchain.memory import ConversationBufferMemory # 1. 初始化记忆对象专门用来存聊天记录 memory ConversationBufferMemory() # 2. 创建带记忆的对话链 # llm绑定大模型 # memory绑定记忆组件自动存上下文 conv_chain ConversationChain( llmOpenAI(temperature0.7), memorymemory ) # 第一轮对话内容会自动存入 memory print(conv_chain.predict(input我正在学 LangChain)) # 第二轮对话内部自动带上一轮聊天历史模型能记住上文 print(conv_chain.predict(input帮我总结一下它的核心组件))四、LangChain 能做什么快速搭 RAG 知识库几行代码实现文档加载、分块、向量化、检索、问答。开发 Agent 智能体封装工具调用、记忆管理快速实现 ReAct 智能体。构建复杂工作流用 Chains 串起多个步骤实现自动化任务。对接各种大模型不用改太多代码就能切换不同的模型服务。

相关文章:

LangChain 第一课:核心架构与组件(前端友好版)

一、先一句话搞懂:LangChain 到底是什么?LangChain 是一个大模型应用开发框架,专门帮你把「大模型、RAG、Agent、工具调用」这些功能,像搭积木一样快速拼起来,不用从零写复杂逻辑。前端类比秒懂你写 Vue 要用到 Vue、V…...

银行AI大模型应用火爆!小白也能学会的数智转型秘籍,速收藏!

文章阐述了银行业在金融行业AI转型中的领先地位,AI大模型已从试点探索进入规模化落地阶段。银行采用自研与合作模式发展大模型,应用场景覆盖智能客服、信贷风控、运营自动化、财富管理及合规审计等核心业务。文章通过多个银行案例展示了AI大模型在降本增…...

ES数据库安装

ES数据库安装 # 拉取 Elasticsearch 镜像 docker pull public-docker-virtual.artsz.zte.com.cn/elasticsearch:8.8.2创建宿主机挂载目录# 统一放在 /data/es,便于管理mkdir -p /mnt/data/es/{data,config,logs,plugins}# 权限必须给足(否则容器内用户无…...

如何在Windows上使用iperf3进行专业级网络性能测试:完整指南

如何在Windows上使用iperf3进行专业级网络性能测试:完整指南 【免费下载链接】iperf3-win-builds iperf3 binaries for Windows. Benchmark your network limits. 项目地址: https://gitcode.com/gh_mirrors/ip/iperf3-win-builds iperf3作为专业的网络性能基…...

3步解锁WeMod Pro:Wand-Enhancer免费增强工具完全指南

3步解锁WeMod Pro:Wand-Enhancer免费增强工具完全指南 【免费下载链接】Wand-Enhancer Advanced UX and interoperability extension for Wand (WeMod) app 项目地址: https://gitcode.com/gh_mirrors/we/Wand-Enhancer 阅读预期:你能从本文获得什…...

互联网大厂 Java 求职面试:微服务与云原生

互联网大厂 Java 求职面试:微服务与云原生 在某互联网大厂的面试中,面试官与求职者燕双非展开了一场关于微服务与云原生的深入对话。以下是他们的问答记录。第一轮提问 面试官:燕双非,首先请你简单介绍一下你对微服务架构的理解。…...

SAST 静态代码分析平台命令行接口介绍(终结篇)

下面软件工厂生成的报告展示,可以根据客户需要定制。特别说明,下面图中的所有数据均是虚构数据,仅仅是为了做图展示。1、扫描覆盖与项目分布2、漏洞总览和项目红黑榜3、按语言统计和项目修复趋势4、合规性分析5、人员缺陷统计和型号版本质量趋…...

对抗AI焦虑的最好方式是搞懂大模型的底层原理

文章指出,尽管AI技术如RAG、MCP、Skill、Agent、Harness等迭代迅速,但程序员应专注于掌握大模型的底层原理,如记忆、信息获取、操作能力等,这些原理不会因技术变迁而失效。通过理解这些基础认知,程序员能更好地应对技术…...

保姆级教程:在GD32F103上配置USART1的DMA通道5和6(附避坑指南)

GD32F103 USART1 DMA配置全攻略:从手册解读到实战避坑 在嵌入式开发中,USART与DMA的配合使用是提升串口通信效率的黄金组合。对于刚从STM32转向GD32F103的开发者来说,手册中DMA通道映射关系的不明确常常成为第一个"拦路虎"。本文将…...

Design - 一些免费图标网站

一些有用的工具网站;除了直接AI生成外,仍然有些有用的Icon免费网站,比较适合游戏的有:1. icons8.com最适合综合型游戏项目图标、插画、UI 资源比较全风格统一,适合游戏界面、按钮、功能图标可在线调整颜色和尺寸&#…...

为什么这个电路可以放大1V信号?

你的经验可能是你的枷锁这个三级直接耦合放大电路对于1kHz峰值1V信号的放大三极直接耦合放大电路参数优化被AI欺骗啦:一个有趣的三极直接耦合放大电路的调整一个三极直接耦合放大电路的设计 01 为何能够放大1V信号? 一、电路配置结果 今天很高兴&#xf…...

学生毕业管理系统(文档+源码)_kaic

第五章 详细设计与实现5.1系统前台功能的实现5.1.1登录界面的实现首先双击打开微信小程序客户端系统,连上网络之后会显示出本系统的登录界面,这是进入小程序的第初始页面“登录”,能成功进入到该登录界面则代表小程序的开启是成功的&#xff…...

算法融合自动紧急制动控制策略【附程序】

✨ 长期致力于自动紧急制动、路面识别、模糊算法、模型预测控制、联合仿真研究工作,擅长数据搜集与处理、建模仿真、程序编写、仿真设计。 ✅ 专业定制毕设、代码 ✅ 如需沟通交流,点击《获取方式》 (1)基于模糊逻辑的路面附着系数…...

用C语言和mciSendString函数,在VS2019里写一个带进度条的音乐播放器(附完整源码)

用C语言打造可视化音乐播放器:从零实现带进度条的音频控制工具 在枯燥的控制台程序与炫酷的图形界面之间,存在一个被许多C语言学习者忽视的中间地带——通过Windows API实现简单而实用的可视化反馈。本文将带你用mciSendString函数构建一个带有实时进度条…...

基于STM32F103C8T6标准库驱动2.4寸SPI TFT触摸屏:从零搭建嵌入式GUI交互系统

1. 项目概述与硬件准备 最近在做一个智能家居控制面板的项目,选用了STM32F103C8T6这块性价比超高的开发板作为主控,搭配2.4寸SPI接口的TFT触摸屏作为人机交互界面。说实话,刚开始接触这个组合时踩了不少坑,特别是用标准库开发的时…...

RJ45连接器工程实战:从PoE热故障到户外防水的12个设计禁区

一句话核心:RJ45连接器选型失败,往往不是速率不达标,而是热、水、地、工艺四个字中的一个出了问题。本文从电源供电发热、户外环境腐蚀、屏蔽接地错误、现场压接失控四个维度,梳理12个容易被忽视的设计禁区,并提供可复…...

Guava Ratelimiter实现单机接口限流

废话不多说直接上代码&#xff1a;1.依赖&#xff1a;<dependency><groupId>com.google.guava</groupId><artifactId>guava</artifactId><version>31.1-jre</version></dependency>2.配置类注册bean&#xff1a;package com.h…...

通过 Taotoken CLI 工具一键配置开发环境中的多工具 API 端点

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 通过 Taotoken CLI 工具一键配置开发环境中的多工具 API 端点 在接入多个大模型服务时&#xff0c;开发者常常需要为不同的工具和 …...

大模型产品经理进阶指南:从零基础到行业精英的完整学习路线图!

随着人工智能技术的发展&#xff0c;尤其是大模型&#xff08;Large Model&#xff09;的兴起&#xff0c;越来越多的企业开始重视这一领域的投入。作为大模型产品经理&#xff0c;你需要具备一系列跨学科的知识和技能&#xff0c;以便有效地推动产品的开发、优化和市场化。以下…...

八大网盘直链解析工具:告别限速,实现高速下载自由

八大网盘直链解析工具&#xff1a;告别限速&#xff0c;实现高速下载自由 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 &#xff0c;支持 百度网盘 / 阿里云盘 / 中国移动云盘…...

AI产品经理的进阶路线图

本文深入探讨了AI产品经理的核心特质&#xff0c;强调AI思维的重要性远超单纯的技术知识。文章解析了AI产品设计以极度简单为标准背后的复杂系统&#xff0c;以及AI产业链的三大结构层——基础层、技术层与应用层。此外&#xff0c;文章还详细阐述了AI产品经理的四象限分类&…...

大模型“开源”到底开了什么?不同协议有什么区别?

大模型发布常以“开源”为噱头&#xff0c;但与传统软件开源不同&#xff0c;大模型开源可能仅开放代码、权重、训练方法或数据说明&#xff0c;且协议复杂多样。企业需关注开放深度&#xff0c;区分开放权重、开放代码、开放训练过程三个层次&#xff0c;警惕GPL、AGPL、CC-BY…...

ESP32-S3物联网开发实战:从ADC采样到MQTT云端通信

1. 项目概述&#xff1a;从传感器到云端的数据之旅在物联网项目的开发中&#xff0c;我们常常需要解决一个核心问题&#xff1a;如何让物理世界的信息被数字系统感知、处理&#xff0c;并最终在云端呈现或接受远程控制&#xff1f;这背后涉及三个关键环节&#xff1a;感知、处理…...

柔性构建板原理与实战:从材料科学到3D打印取模难题的工程解法

1. 项目概述&#xff1a;为什么你需要一块柔性构建板&#xff1f;如果你玩3D打印有一段时间了&#xff0c;大概率经历过这样的抓狂时刻&#xff1a;打印完成&#xff0c;模型牢牢地“焊”在玻璃板或者美纹纸胶带上&#xff0c;你用铲刀、刮片又撬又掰&#xff0c;结果要么是模型…...

2230固态硬盘延长安装技巧指南!

2230规格的M.2固态硬盘因体积小巧&#xff0c;广泛应用于掌机、轻薄笔记本和微型PC&#xff0c;但许多主板的M.2插槽默认为2280规格&#xff0c;导致2230硬盘“装不稳”。本文详细讲解2230与2280的尺寸差异、延长安装的核心方法&#xff08;转接支架、螺丝柱调整、散热适配&…...

【ITIL4】32服务实践 - 问题管理(Problem Management)

【ITIL4】32服务实践 - 问题管理&#xff08;Problem Management&#xff09; 文章目录【ITIL4】32服务实践 - 问题管理&#xff08;Problem Management&#xff09;一、核心定义1. 问题&#xff08;Problem&#xff09;2. 已知错误&#xff08;Known Error&#xff09;3. 变通…...

别再死记硬背MPNN公式了!用“邻居传纸条”的比喻彻底搞懂消息传递神经网络

用"班级传纸条"游戏理解消息传递神经网络 想象一下&#xff0c;你正坐在教室里&#xff0c;老师突然宣布要进行一个特殊的游戏——每个同学可以给任意一位朋友传递一张写有秘密信息的纸条。这个看似简单的游戏&#xff0c;恰恰揭示了人工智能领域最前沿的图神经网络(…...

深度学习优化算法(二)—— SGD + Momentum + Nesterov(三十四)

1. 定位导航 第 33 篇讲了为什么训练困难(病态、鞍点、梯度爆炸)。本篇正式介绍解决方案的第一波——三个经典优化算法: 算法 关键思想 年代 SGD 随机梯度估计 + 学习率衰减 1951(Robbins-Monro) Momentum 累积梯度方向加速 1964(Polyak) Nesterov 先"前瞻"再…...

深度学习优化算法(一)—— 学习 vs 纯优化 + 优化挑战(三十三)

1. 定位导航 第 7 章我们解决了"怎么防过拟合"。第 8 章正式进入深度学习的另一个核心——怎么训练得快、稳、好。 第 8 章规划(5 篇): 篇号 主题 33(本篇) 学习 vs 纯优化 + 优化挑战 34 基本优化算法(SGD + Momentum + Nesterov) 35 自适应学习率(AdaGra…...

新手入门,用外卖系统吃透Tomcat与Java Web全流程

对于刚接触Java Web的小伙伴来说&#xff0c;Tomcat、Servlet、端口号、网络请求这些概念&#xff0c;很容易越学越懵。今天全程用外卖系统做统一比喻&#xff0c;把复杂技术名词全部转化为生活场景&#xff0c;从零梳理Java Web核心流程&#xff0c;看完彻底理清浏览器、服务器…...