ITPub博客

首页 > 人工智能 > 人工智能 > LangChain框架简介

LangChain框架简介

原创 人工智能 作者:brucexia 时间:2025-12-22 07:54:46 0 删除 编辑

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

的框架架构

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 执行。

的基本模块

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.3  LangChain 的 基本应用场景

 

8.1.3  LangChain 基本应用场景

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 从“通用对话模型”升级为“能解决实际问题的工具”。其应用场景覆盖客服、教育、企业办公、开发等多个领域,且可通过自定义组件扩展至更复杂的业务需求。


本文节选自《AI Agent智能体开发实践》,获出版社和作者授权发布。


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/18841117/viewspace-3105820/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2022-02-14

  • 博文量
    219
  • 访问量
    196282