LangChain是个什么?—— 一文读懂大语言模型应用开发框架
引言AI 应用开发的新范式在 ChatGPT 引爆全球 AI 热潮之后一个核心问题摆在了开发者面前如何将强大的大语言模型LLM能力高效、可靠地集成到我们自己的业务应用和产品中直接调用 API 虽然简单但面对复杂的业务逻辑、私有的数据源以及多变的需求时往往会陷入“手工作坊”式的开发困境代码冗长、难以维护、可扩展性差。LangChain正是在此背景下应运而生。它不是一个具体的模型而是一个专为构建基于大语言模型的应用程序而设计的开源框架。你可以把它想象成 AI 应用开发的“脚手架”或“工具箱”它通过提供一套标准化的组件、接口和最佳实践极大地简化了从原型到生产级应用的开发过程。简单来说LangChain 让开发者能够像搭积木一样快速构建起功能强大、可交互、具备记忆和推理能力的智能应用。LangChain 的核心价值解决 LLM 应用的三大痛点上下文管理Context Management大语言模型有固定的上下文窗口限制如 4K、8K、128K tokens。如何让模型理解并处理远超其窗口长度的文档、对话历史或数据库信息LangChain 提供了完善的文本分割Text Splitters、向量化存储Vector Stores和检索Retrieval链轻松实现海量知识库的接入与精准召回。复杂工作流编排Orchestration现实任务很少是“一问一答”。它可能涉及多步推理、工具调用如计算器、搜索引擎、数据库、条件判断以及多个模型的协同。LangChain 的核心抽象——链Chains和智能体Agents——允许你将多个 LLM 调用、工具和逻辑步骤串联起来形成稳定、可预测的复杂工作流。记忆与状态持久化Memory State如何让 AI 记住之前的对话内容或用户偏好LangChain 内置了多种记忆Memory模块从简单的对话缓冲区到基于向量数据库的长期记忆帮助应用实现连贯的、个性化的多轮交互体验。核心概念快速入门理解 LangChain可以从以下几个核心构建块开始模型 I/OModel I/O与各种 LLM 交互的标准化接口。支持 OpenAI、Anthropic、Google、开源模型通过 Ollama、vLLM 等等数十种提供商。# 示例使用 LangChain 调用 OpenAIfromlangchain_openaiimportChatOpenAI llmChatOpenAI(modelgpt-4)responsellm.invoke(你好LangChain)提示词Prompts管理、模板化和优化你的提示词。支持变量插值、少量示例Few-shot提示等。fromlangchain_core.promptsimportChatPromptTemplate promptChatPromptTemplate.from_template(请用{style}的风格总结以下内容{text})formatted_promptprompt.invoke({style:幽默,text:一篇长文章...})链Chains将模型、提示词、工具等组合成序列化的工作流。这是构建复杂应用的基础。# 一个简单的 LLMChainfromlangchain.chainsimportLLMChain chainLLMChain(llmllm,promptprompt)resultchain.run({style:简洁,text:user_input})检索Retrieval从外部知识源文档、数据库中获取相关信息并注入给模型实现“基于知识的问答RAG”。# 简化流程加载 - 分割 - 向量化 - 检索fromlangchain_community.document_loadersimportTextLoaderfromlangchain_text_splittersimportRecursiveCharacterTextSplitterfromlangchain_openaiimportOpenAIEmbeddingsfromlangchain_chromaimportChroma loaderTextLoader(knowledge.txt)documentsloader.load()text_splitterRecursiveCharacterTextSplitter()splitstext_splitter.split_documents(documents)vectorstoreChroma.from_documents(documentssplits,embeddingOpenAIEmbeddings())retrievervectorstore.as_retriever()智能体Agents让 LLM 自主决定调用哪些工具搜索、计算、API等来完成任务是实现自动化与交互式应用的高级模式。fromlangchain.agentsimportAgentExecutor,create_tool_calling_agentfromlangchain.toolsimportTool# 定义工具tools[Tool(nameSearch,funcsearch_function,description用于搜索网络信息)]# 创建智能体并执行agentcreate_tool_calling_agent(llm,tools,prompt)agent_executorAgentExecutor(agentagent,toolstools)resultagent_executor.invoke({input:今天北京的天气怎么样})记忆Memory在对话或多次调用间保持状态。fromlangchain.memoryimportConversationBufferMemory memoryConversationBufferMemory()# 在链或智能体中使用 memory 参数典型应用场景智能问答机器人Chatbot结合记忆和检索打造能理解上下文、基于私有知识库回答的专业客服或助手。文档分析与摘要自动读取长文档、PDF、网页进行总结、问答或信息提取。代码助手分析代码库、生成单元测试、解释代码逻辑或进行代码重构。数据分析与可视化让 LLM 理解自然语言查询自动生成 SQL 或 Python 代码来分析数据并解释结果。自动化工作流如自动处理邮件、生成周报、监控信息并发送警报等。LangChain 生态与学习建议LangChain 核心包含上述主要抽象和接口是框架的基础。LangChain 社区版包含大量第三方集成文档加载器、向量数据库、工具等由社区维护。LangChain 表达式语言LCEL一种声明式的、可组合的 API用于更优雅地构建复杂链是当前官方推荐的主要编写方式。LangGraph用于构建具有循环、分支等复杂状态的工作流适合构建多智能体系统或高级自治应用。给初学者的建议从核心概念开始先理解 Model I/O, Prompts, Chains 这三个基础概念。动手实践在 Jupyter Notebook 或简单脚本中尝试上述代码示例。深入 RAG掌握文档加载、分割、向量化和检索流程这是当前最实用、最热门的技术栈。探索智能体当熟悉基础后尝试用智能体连接外部工具解锁更强大的自动化能力。

相关新闻

鸿蒙 ArkTS 实战:Fabric Size Converter 从布料尺寸换算到布料换算应用完整解析

鸿蒙 ArkTS 实战:Fabric Size Converter 从布料尺寸换算到布料换算应用完整解析

鸿蒙 ArkTS 实战:Fabric Size Converter 从布料尺寸换算到布料换算应用完整解析 前言 布料尺寸换算 是一个典型的鸿蒙 ArkTS 轻量工具页面。它围绕“输入布料米数和每米宽度后,将米数换算成码数,适合裁剪、采购和手作备料。”这个明确需求&…

2026/10/17 13:05:30 阅读更多 →
鸿蒙 ArkTS 实战:Countdown Event Planner 从倒计日计划器到事件计划应用完整解析

鸿蒙 ArkTS 实战:Countdown Event Planner 从倒计日计划器到事件计划应用完整解析

鸿蒙 ArkTS 实战:Countdown Event Planner 从倒计日计划器到事件计划应用完整解析 前言 倒计日计划器 是一个典型的鸿蒙 ArkTS 轻量工具页面。它围绕“记录事件剩余天数、任务进度和提醒开关,用倒计日视图帮助用户跟踪准备进展。”这个明确需求&#x…

2026/10/17 13:06:50 阅读更多 →
鸿蒙 ArkTS 实战:Habit Streak Tracker 从习惯连续打卡到习惯养成应用完整解析

鸿蒙 ArkTS 实战:Habit Streak Tracker 从习惯连续打卡到习惯养成应用完整解析

鸿蒙 ArkTS 实战:Habit Streak Tracker 从习惯连续打卡到习惯养成应用完整解析 前言 习惯连续打卡 是一个典型的鸿蒙 ArkTS 轻量工具页面。它围绕“在阅读、拉伸、早睡三个习惯之间切换,记录今日是否完成,并维护连续天数。”这个明确需求&a…

2026/10/17 9:08:36 阅读更多 →

最新新闻

STM32通过IIC驱动MPU6050六轴传感器:从时序到姿态解算实战指南

STM32通过IIC驱动MPU6050六轴传感器:从时序到姿态解算实战指南

做嵌入式这几年,被问到最多的传感器大概就是 MPU6050。这颗六轴芯片配合 STM32 的 IIC 接口,几乎是所有姿态相关项目的标准开局:两轮自平衡、云台增稳、手势遥控、跌倒检测……不管你是刚入门的新手,还是在做毕业设计的同学&#…

2026/10/19 5:55:34 阅读更多 →
Oracle数据泵单实例迁移全流程详解:从expdp到impdp

Oracle数据泵单实例迁移全流程详解:从expdp到impdp

搞Oracle数据库搬迁,绕不开的一个词就是数据泵(Data Pump)。单实例环境来回同步数据,expdp导出、impdp导入这套组合我这些年用了不下几十次,说它是最皮实的逻辑迁移方案不为过。别看这个标题“单实例环境使用数据泵&am…

2026/10/19 5:55:34 阅读更多 →
物联网设备WiFi配网实战:ESP32/ESP8266 SoftAP与SmartConfig详解

物联网设备WiFi配网实战:ESP32/ESP8266 SoftAP与SmartConfig详解

上个月帮朋友调一块 ESP32 开发板,设备本身跑得好好的,最后却卡在“怎么让设备连上他家的 WiFi”这一步。我说你直接把 SSID 和密码写在代码里不就行了?他说你自己调试当然没问题,可这个设备是要交给一个完全不会用串口、不会看代…

2026/10/19 5:55:34 阅读更多 →
artcraft:基于WebGL的轻量级创意合成工具实战

artcraft:基于WebGL的轻量级创意合成工具实战

1. 项目缘起与整体设计思路1.1 为什么会有 artcraft 这个想法做创意工具这些年,我最大的感受就是:灵感来得快,工具跟不上。脑子里冒出一个画面,想快速拼贴、调色、加纹理,结果打开专业软件要等半分钟加载,图…

2026/10/19 5:55:34 阅读更多 →
VS2017 64位下OSGQT整合实战:从编译到渲染的避坑指南

VS2017 64位下OSGQT整合实战:从编译到渲染的避坑指南

简介:这是一份面向Qt与OpenSceneGraph(OSG)三维渲染开发者的整合示例工程,基于Github上口碑较好的OSGtree项目整理而来,已在VS2017搭配64位OSG环境下完成调试,可直接运行,适合正在学习OSG与Qt混…

2026/10/19 5:55:34 阅读更多 →
CSerialPort串口类2017修正版:稳定嵌入工业控制的Win32封装

CSerialPort串口类2017修正版:稳定嵌入工业控制的Win32封装

简介:这是一份面向C开发者,特别是Windows平台串口通信初学者与中级工程师的轻量级串口类封装资源。CSerialPort类经2017年最新修正,显著降低MFC依赖性,新增_AFX宏适配MFC环境,并提供纯Win32验证程序,使非MF…

2026/10/19 5:54:34 阅读更多 →

日新闻

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

简介:本资源为电源技术方向的学术研究文档,聚焦介质阻挡放电型臭氧发生器电源的频率跟踪型PWM控制策略,面向电力电子、高压电源及臭氧应用领域的科研人员与工程技术人员。针对负载呈容性、等效电容随外加电压升高而增大、谐振频率随之漂移的难…

2026/10/19 0:00:47 阅读更多 →
Vibe Coding 遇上 TaoToken:把开发者思维圣殿的灵感流接入统一 Key 通道

Vibe Coding 遇上 TaoToken:把开发者思维圣殿的灵感流接入统一 Key 通道

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 0:00:47 阅读更多 →
HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

【免费下载链接】HundredCV-Chat 项目地址: https://ai.gitcode.com/hf_mirrors/Jax-dan/HundredCV-Chat 点击查看 免费下载 HundredCV-Chat 是一个由 100 位青年简历数据开发而来的中文多轮对话数据集,共包含 24,750 组日常闲聊对话和 4,871 个话题标签…

2026/10/19 0:00:47 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/19 1:30:52 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 2:54:50 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 12:16:16 阅读更多 →