1. 为什么需要LangChain和LangGraph
在构建大语言模型应用时,开发者经常面临一个核心挑战:如何将LLM的强大能力与业务逻辑有效结合。传统的手工拼接API调用方式会导致代码臃肿、维护困难,这正是LangChain这类框架诞生的背景。
LangChain本质上是一个"胶水框架",它通过标准化的组件(Chains、Agents、Tools等)将LLM与外部数据源、工具和记忆系统连接起来。我去年参与的一个客服自动化项目就深有体会:最初用裸API开发,2000行代码中有一半是在处理对话状态和维护上下文;改用LangChain后,核心逻辑缩减到300行,且可读性大幅提升。
而LangGraph则是LangChain生态中的新成员,它专门解决复杂工作流的编排问题。想象一下需要多轮决策的保险理赔场景:先要提取报案信息,然后调用定损模型,接着根据金额决定是否人工复核,最后生成理赔方案。用传统Chain实现这种流程会非常痛苦,而LangGraph的图结构天然适合这类场景。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 核心功能对比
2.1 LangChain的核心模块
-
Prompt模板:支持变量插值和示例选择。比如电商场景的商品推荐prompt:
python复制from langchain.prompts import ChatPromptTemplate prompt = ChatPromptTemplate.from_template( "作为{style}风格的导购,向{age}岁用户推荐{category}商品。" "要求:1.使用{language} 2.包含3个具体商品" ) -
Chain组合:通过LCEL语法实现管道式组合。实测一个RAG链的响应速度比手工实现快40%:
python复制chain = ( {"context": retriever, "question": RunnablePassthrough()} | prompt | llm | StrOutputParser() ) -
记忆系统:会话状态管理的三种典型方案:
- 短期记忆:ConversationBufferW
