news 2026/4/15 19:55:14

LangChain框架简介

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
LangChain框架简介

《AI Agent智能体开发实践+玩转FastGPT 像搭积木一样构建智能体 LLM大语言模型AI Agent开发 智能体性能优化调试部署实施方法书籍 AIAgent智能体开发实践 无规格》【摘要 书评 试读】- 京东图书

LangChain是用于开发由语言模型驱动的应用程序的框架,用于开发由大语言模型驱动的应用程序,特别是AI智能体系统。

8.1.1 LangChain的框架架构

LangChain提供了一系列工具和接口,帮助开发者更高效地构建与大型语言模型交互的应用。LangChain生态可概括为“三层主结构+一个辅助平台”,包括架构层(Architecture)、组件层(Components)、部署层(Deployment)、辅助平台。

1. 架构层

(1)LangChain Core:提供Chain、Prompt、Memory、Tool等基础抽象,用于快速拼装LLM应用。

(2)LangGraph:基于“图”的状态机引擎,支持循环、分支、子流程等复杂编排。

2. 组件层

(1)Integrations:官方与社区维护的大量模型、工具、向量库插件,如OpenAI、Anthropic、Pinecone、Google Search等。

(2)langchain-community:第三方扩展包集市。

3. 部署层

LangGraph Platform(商业):托管LangGraph工作流,提供UI、运行管理、API网关等企业级能力。

4. 辅助平台

LangSmith:覆盖开发、测试、部署、监控全生命周期的LLMOps平台,可视化追踪每一步Chain与Agent执行。

8.1.2 LangChain的基本模块

1. 模型抽象层

(1)LLM & Chat Model:支持与OpenAI、Hugging Face、Azure等多种LLM提供商集成,提供统一接口。

(2)Embedding:支持文本向量化模型,用于语义搜索和相似度计算。

模型接口示例:

from langchain.llms import OpenAI, HuggingFaceHub

# OpenAI接口

openai_llm = OpenAI(

model_name="text-davinci-003",

temperature=0.7,

max_tokens=256

)

# HuggingFace接口

hf_llm = HuggingFaceHub(

repo_id="google/flan-t5-large",

model_kwargs={"temperature":0.6}

)

2. 数据连接层

(1)Document Loaders:从各种来源(PDF、网页、数据库等)加载和解析文档。

(2)Text Splitters:将长文本分割成适合模型处理的小块。

(3)Vector Stores:向量数据库(如Chroma、Pinecone),用于存储和检索嵌入向量。

(4)Indexes:索引结构,优化文档检索效率。

处理外部知识源示例:

from langchain.document_loaders import WebBaseLoader

from langchain.indexes import VectorstoreIndexCreator

loader = WebBaseLoader("https://example.com/article")

index = VectorstoreIndexCreator().from_loaders([loader])

query = "这篇文章的主要内容是什么?"

answer = index.query(query)

3. 调用链

(1)基础链:将多个组件(如模型、提示模板、文档检索器)组合成工作流。

(2)检索增强生成(RAG):结合外部知识源(如文档)和LLM生成答案。

(3)LLMChain:最基本的链类型,将提示模板和LLM结合。

调用链示例:

from langchain.chains import LLMChain, SimpleSequentialChain

#创建单个LLM

qa_chain = LLMChain(llm=openai_llm, prompt=prompt)

#创建顺序链

overall_chain = SimpleSequentialChain(

chains=[qa_chain, summary_chain],

verbose=True

)

result = overall_chain.run("输入问题")

4. 代理系统

(1)工具(Tool):预定义的功能(如搜索引擎、计算器、API调用)。

(2)代理执行器:根据用户输入动态决定使用哪些工具和链,实现复杂决策逻辑。

代理系统示例:

from langchain.agents import load_tools, initialize_agent

tools = load_tools(["serpapi", "llm-math"], llm=openai_llm)

agent = initialize_agent(

tools,

openai_llm,

agent="zero-shot-react-description",

verbose=True

)

agent.run("2023年北京的平均气温是多少?比上海高多少度?")

5. 记忆系统

支持会话历史存储,使应用能够保持对话上下文,实现有状态的交互。记忆管理示例:

from langchain.memory import ConversationBufferMemory

memory = ConversationBufferMemory()

memory.chat_memory.add_user_message("你好!")

memory.chat_memory.add_ai_message("你好!有什么可以帮你的?")

#获取历史对话

history = memory.load_memory_variables({})

6. 回调系统

监控和记录链或代理的执行过程,支持自定义日志、追踪和调试。回调系统示例:

from langchain.callbacks import FileCallbackHandler

handler = FileCallbackHandler('log.json')

chain.run(input_text, callbacks=[handler])


8.1.3LangChain基本应用场景

LangChain是一个用于构建基于大型语言模型应用的框架,它通过模块化设计简化了与大语言模型交互的流程。以下是LangChain的基本应用场景。

1. 智能问答系统(QA)

基于特定知识库回答用户问题,避免LLM幻觉(生成错误信息),适用于企业文档、知识库查询等场景。

1)实现方式

通过“文档加载→文本分割→嵌入向量→存储到向量数据库”流程,将知识转换为可检索的向量。用户提问时,先从数据库中匹配相关文档片段,再让LLM基于这些片段生成答案。

2)示例

(1)企业内部:员工查询公司规章制度、产品手册(如通过LangChain连接Confluence文档)。

(2)客服领域:自动回复用户关于产品功能、售后政策的问题(如结合客服历史对话库)。

2. 聊天机器人

构建具备上下文理解、多轮对话能力的聊天机器人(Chatbots),支持个性化交互。

1)核心能力

(1)维护对话历史(通过ConversationBufferMemory等组件存储上下文)。

(2)结合外部工具(如查询实时天气、预订服务)。

2)示例

(1)电商客服机器人:根据用户历史订单推荐商品,解答物流问题(连接订单数据库)。

(2)教育助手:辅导学生做题,结合教材内容解释知识点(检索教材向量库)。

3. 数据处理与分析

让LLM与结构化/非结构化数据交互,实现数据提取、分析、可视化等功能。

典型场景如下。

(1)数据提取:从PDF合同中自动提取甲方、乙方、金额等关键信息(结合UnstructuredFileLoader和LLM解析)。

(2)SQL生成与查询:用户用自然语言提问(如“本月销售额前5的产品”),LangChain 将其转换为SQL语句,查询数据库后返回结果(通过SQLDatabaseChain实现)。

(3)数据分析报告:基于Excel表格数据,让LLM生成趋势分析、异常值说明(连接Pandas数 据框)。

4. 自动化工作流

构建具备自主决策能力的智能代理(Agent),自动规划步骤并调用工具完成复杂任务。

1)工作原理

Agent会根据用户目标判断是否需要调用工具(如搜索引擎、计算器、API),并根据工具返回结果调整下一步行动,直至完成任务。

2)示例

(1)旅行规划:用户输入“规划从北京到上海的3天行程”,Agent会依次调用“航班查询API→酒店预订接口→景点推荐数据库”,生成完整行程。

(2)市场调研:自动搜索某行业最新报告、统计数据,汇总后生成分析简报(调用搜索引擎+文档解析工具)。

5. 文档生成与自动化写作

批量生成结构化文档(如报告、邮件、合同),或基于模板和数据自动填充内容。

1)实现方式

结合LLM的文本生成能力与LangChain的模板工具(PromptTemplate),输入变量(如用户信息、数据指标)后生成定制化内容。

2)示例

(1)周报/月报自动生成:从业务系统提取本周数据(如销售额、用户增长),按固定格式生成报告(搭配jinja2模板)。

(2)法律文书生成:输入合同双方信息、条款细节,自动生成符合规范的合同文本(确保格式和法律术语准确)。

6. 代码开发辅助

辅助开发者编写、解释、调试代码,或连接代码库实现自动化任务。

功能如下。

(1)生成代码:根据自然语言需求(如“写一个Python爬虫爬取豆瓣电影”)生成代码片段。

(2)代码解释:解析复杂函数或框架逻辑(如解释LangChain中Chain的工作原理)。

(3)自动化部署:调用云服务API(如AWS、Docker),实现代码部署、容器管理等操作(通过Tool组件连接API)。

7. 多模态应用(文本+图像/语音)

结合图像、语音等模态数据,扩展LLM的处理能力(需搭配多模态模型或工具)。

示例如下。

(1)图像分析:用户上传图片,LangChain调用图像识别API(如CLIP)生成描述,再让LLM基于描述回答问题(如“这幅图片中的建筑是什么风格?”)。

(2)语音交互:将用户语音转换为文本(如调用Whisper API),处理后再将答案转换为语音输出(连接TTS工具)。

LangChain的核心价值是“连接LLM与外部世界”,通过模块化组件(Chains、Agents、Memory、Tools等)降低开发门槛,让LLM从“通用对话模型”升级为“能解决实际问题的工具”。其应用场景覆盖客服、教育、企业办公、开发等多个领域,且可通过自定义组件扩展至更复杂的业务需求。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/7 13:57:58

LangChain框架的输入输出

LangChain框架的输入输出(I/O)流程是一个标准化的数据处理管道,主要由提示、语言模型和输出解析器三个核心组件构成,它们协同工作实现与语言模型的交互。8.2.1 提示提示(Prompt)是向语言模型提供的输入文本…

作者头像 李华
网站建设 2026/4/3 14:34:34

终极指南:5分钟零代码搭建智能QQ机器人

终极指南:5分钟零代码搭建智能QQ机器人 【免费下载链接】LiteLoaderQQNT-OneBotApi NTQQ的OneBot API插件 项目地址: https://gitcode.com/gh_mirrors/li/LiteLoaderQQNT-OneBotApi 还在为复杂的编程技术发愁吗?想要一个专属的智能QQ助手却无从下…

作者头像 李华
网站建设 2026/4/13 8:30:54

Node-QRCode 深度解析:从零掌握专业级二维码生成技术

Node-QRCode 深度解析:从零掌握专业级二维码生成技术 【免费下载链接】node-qrcode qr code generator 项目地址: https://gitcode.com/gh_mirrors/no/node-qrcode 还在为如何快速生成高质量二维码而烦恼吗?想要在项目中集成专业的二维码功能却不…

作者头像 李华
网站建设 2026/4/13 14:57:30

链游赛道爆发前夜!这家公司如何用“下一代架构”点燃元宇宙?

GameFi的浪潮从未如此汹涌。从Axie Infinity到StepN,每一次爆款的出现都在重塑我们对游戏与金融结合的认知。然而,高Gas费、游戏体验割裂、经济模型失衡……种种问题仍在困扰着这个新兴领域。但技术破局者已经出现。达普韦伯——这个在Web3开发者圈层悄然…

作者头像 李华
网站建设 2026/4/13 16:52:50

Android投屏革命:从手机到电脑的无缝体验指南

Android投屏革命:从手机到电脑的无缝体验指南 【免费下载链接】QtScrcpy Android实时投屏软件,此应用程序提供USB(或通过TCP/IP)连接的Android设备的显示和控制。它不需要任何root访问权限 项目地址: https://gitcode.com/barry-ran/QtScrcpy 想要…

作者头像 李华
网站建设 2026/4/12 16:10:49

LangChain1.0教程:从零开始学RAG,构建你的第一个大模型问答机器人

本文详细介绍如何使用RAG技术构建问答聊天机器人,涵盖索引(加载、切分、存储)和检索与生成两大核心环节,分别讲解RAG Agent和RAG Chain两种实现方式。通过LangChain框架,将非结构化文本数据转化为可检索的向量数据库&a…

作者头像 李华