网站的网页设计毕业设计,深圳方维网站设计公司,淘客网站代理,做公司门户网站上篇我们聊了#xff0c;LangChain就是AI开发界的“乐高积木”#xff0c;把那些乱七八糟的底层细节全封装起来#xff0c;让你专心搭自己的应用。但光知道它是乐高还不够——你得知道盒子里到底有哪些积木#xff0c;每种积木能拼出啥玩意儿。今天这篇下篇#xff0c;咱们…上篇我们聊了LangChain就是AI开发界的“乐高积木”把那些乱七八糟的底层细节全封装起来让你专心搭自己的应用。但光知道它是乐高还不够——你得知道盒子里到底有哪些积木每种积木能拼出啥玩意儿。今天这篇下篇咱们就把LangChain的工具箱翻个底朝天把那些听起来唬人的“模型”“链”“代理”“记忆”全拆开看看它们到底是啥能干啥。一、LangChain的六大核心组件一个都不能少LangChain把AI应用需要的能力分成了几大类组件。根据官方文档和实际使用最核心的有六种1. Models模型AI的大脑 这是最基础的组件——大模型本身。LangChain把所有模型分成三类1 LLMs大语言模型输入文字输出文字。最传统的模型类型。 2Chat Models聊天模型输入消息列表比如用户说啥、系统说啥输出消息。现在的GPT、Claude都属于这类。 3Embedding Models嵌入模型输入文字输出一串数字向量。用来做语义搜索、文本相似度比较。 LangChain对这三类模型都做了统一接口。你想从OpenAI换成Claude把导入的包名改一下其他代码照常跑。# 不管用哪家模型写法都差不多 from langchain_openai import ChatOpenAI # OpenAI版 # from langchain_anthropic import ChatAnthropic # Claude版就改这一行 llm ChatOpenAI(modelgpt-4) result llm.invoke(讲个笑话) # 调用方式完全一样2. Prompts提示词告诉AI怎么干活大模型的能力再强也得有人告诉它干啥。Prompts组件就是用来管理“怎么问”的。最常用的是提示模板PromptTemplate——把固定的格式和变化的变量分开。比如你要让AI写产品文案可以把模板写成from langchain.prompts import PromptTemplate template 你是一位专业的电商文案写手。 请为以下产品写一段吸引人的描述 产品名称{product_name} 产品特点{features} 字数控制在50字以内。 prompt PromptTemplate.from_template(template) filled_prompt prompt.format( product_name智能保温杯, features24小时保温、不锈钢内胆、三种颜色可选 )这样就不用每次重新写整段提示词了改改变量就行。3. Chains链把步骤串起来这是LangChain名字的由来也是最核心的概念。Chain就是把多个操作按顺序串在一起前一个的输出自动成为后一个的输入。就像工厂里的流水线原料进去成品出来中间不用你操心。 最新的写法用的是LCELLangChain表达式语言简单到令人发指——就用一个管道符 | 把组件连起来# 定义一个简单的链提示词 → 模型 → 输出解析器 chain prompt | model | output_parser # 调用链传入变量 result chain.invoke({product_name: 智能手表, features: 心率监测、睡眠分析})更复杂的链可以是检索文档 → 拼接提示词 → 调用模型 → 格式化输出。一套流程下来几十行代码就能搞定原本需要几百行的功能。4. Agents代理让AI自己决定下一步干啥Chain是固定的流水线——每一步干啥都写死了。但有些场景你也不知道该走哪步得让AI自己看着办。 这就是Agent代理 出场的时候。Agent的核心逻辑是给它一堆工具让它根据任务自己决定用哪个。比如你问“今天北京天气怎么样顺便帮我算一下明天比今天冷几度”Agent可能会1. 先调用天气查询工具拿到今天和明天的温度 2. 再调用计算器工具算出温差 3. 最后把结果整理成自然语言回答你 这种“思考→行动→观察结果→再思考”的循环叫做ReAct模式ReasonAct。Agent在每一步都会生成一段“内心独白”这不就是我们上篇讲的Co嘛然后决定下一步干啥。from langchain.agents import create_react_agent, AgentExecutor from langchain.tools import tool # 定义两个工具 tool def get_weather(city: str) - str: 查询某个城市的天气 # 这里调用天气API... return f{city}今天晴天15度 tool def calculate(expression: str) - str: 计算数学表达式 return str(eval(expression)) # 创建Agent agent create_react_agent(llm, tools[get_weather, calculate]) executor AgentExecutor(agentagent, tools[get_weather, calculate]) # 执行任务 executor.invoke({input: 北京今天多少度明天比今天冷几度})5. Memory记忆让AI不健忘大模型本身是“一次性”的——每次对话都是独立的聊完就忘。但很多应用需要记住上下文比如客服机器人要记得用户刚才说了啥。Memory组件就是干这个的。它可以在对话过程中保存历史信息并在下次调用时自动注入到提示词里。from langchain.memory import ConversationBufferMemory memory ConversationBufferMemory(return_messagesTrue) # 第一次对话 chain.invoke({input: 我叫小明}, memorymemory) # 第二次对话AI会记得你叫小明 chain.invoke({input: 我叫什么名字}, memorymemory) # 会回答小明6. Retrievers检索器从外部找答案这是RAG检索增强生成 的核心组件。大模型的知识有截止日期而且不可能什么都知道。Retriever的作用就是去外部数据源比如公司内部文档、数据库、搜索引擎找相关信息然后把找到的内容塞给模型让它基于这些信息回答。from langchain.retrievers import WikipediaRetriever retriever WikipediaRetriever() docs retriever.invoke(大语言模型) # 从维基百科检索相关文章 # 然后把检索到的文档拼到提示词里二、LangChain的进阶武器LangGraph和LangSmith除了上面这六大核心组件LangChain生态还有两个“重量级选手”专门解决更复杂的问题。 LangGraph给复杂流程画张“地图” 。如果Chain是直线流水线Agent是单兵作战那LangGraph就是多兵种协同作战指挥部。它能让你用“图”的方式来编排复杂的AI工作流——可以有分支、有循环、有并行、有人类介入。比如一个金融风控系统可能需要多个Agent分工一个查数据、一个做评估、一个写报告、一个审核——这用普通的Chain或Agent就很难搞定但LangGraph可以。 LangSmith给AI应用装上“监控摄像头” AI应用有个大问题模型输出不稳定出错了很难查。LangSmith就是来解决这个痛点的——它是一个商业化的监控和调试平台可以记录每次调用的输入输出、追踪整个链的执行过程、做A/B测试、分析性能瓶颈。对于上生产环境的应用这玩意儿几乎是刚需。据说某电商用上LangSmith后客服机器人的响应延迟降了40%。三、LangChain能干啥三个真实场景让你秒懂理论说完了来看看实际能干啥。1. 智能文档问答系统 把公司几百页的PDF扔进去员工想问啥直接打字AI从文档里找答案。核心流程加载文档 → 分割文本 → 向量化存储 → 用户提问时检索相关片段 → 拼提示词 → 模型回答。用LangChain几十行代码搞定。 某法律科技公司用这套方案做合同审查系统效率提升了5倍。2. 自动化客服机器人 用户问“我订单怎么还没到”机器人得知道先去查订单状态如果异常就触发售后流程如果需要人工介入就转接。 这需要多轮对话记忆 调用订单API 条件判断。用AgentMemory就能实现。某银行用这套方案95%的常见问题都能自动处理。3. 数据分析助手 你问“上个月销售额前五的产品是哪些”AI自己写SQL查数据库再把结果画成图表。流程理解自然语言 → 生成SQL → 执行查询 → 分析结果 → 生成回答。Chain或者Agent都能搞定。聊了这么多你也看出来了——LangChain确实牛逼但它不是万能药。 它有学习曲线刚开始接触那堆概念会有点懵。它也有性能开销复杂链跑起来可能比手写慢。它还依赖一堆第三方库版本冲突是家常便饭。 但它最大的价值是把AI应用开发从“玄学”变成了“工程学”。你不需要懂模型底层怎么训练的不需要操心每个API怎么调只要专注业务逻辑剩下的交给LangChain。