LangChain 第一课:核心架构与组件(前端友好版)
一、先一句话搞懂LangChain 到底是什么LangChain 是一个大模型应用开发框架专门帮你把「大模型、RAG、Agent、工具调用」这些功能像搭积木一样快速拼起来不用从零写复杂逻辑。前端类比秒懂你写 Vue 要用到 Vue、Vuex、Vue Router、Axios这些是零散的库LangChain 就像大模型版的 “前端全家桶框架”把这些组件都封装好了开箱即用。没有 LangChain你要自己写提示词拼接、自己写文档加载、自己写向量库交互、自己写记忆管理。有了 LangChain这些功能都有现成组件几行代码就能搭出 RAG、Agent 应用。二、LangChain 核心架构4 大模块面试必背我给你拆成前端能秒懂的类比每个模块都讲清作用。表格模块名称大白话作用前端类比Models模型层对接各种大模型OpenAI、文心一言、本地开源模型提供统一调用接口像 Axios不管后端是什么服务都用统一的方式发请求Prompts提示词层管理提示词模板、动态拼接、格式化输出像 Vue 的模板字符串把变量动态注入生成完整提示词Chains链层把多个组件串起来形成工作流比如加载文档→分块→向量化→检索→生成答案像前端的管道 / 中间件把多个步骤按顺序串成一条流水线Memory记忆层管理对话上下文、用户历史支持短时 / 长时记忆像 sessionStorage /localStorage帮你存对话状态和用户信息三、LangChain 核心组件详解1. Models 模型组件核心作用统一封装不同大模型的调用方式不管用 OpenAI 还是本地开源模型代码写法基本一样。包含LLMs文本生成模型、Chat Models对话模型带上下文、Embeddings文本转向量模型。前端类比统一的 API 请求适配器屏蔽不同后端接口的差异。2. Prompts 提示词组件核心作用管理提示词支持模板化、变量注入、格式化输出。包含PromptTemplate基础模板、ChatPromptTemplate对话模板、FewShotPromptTemplate少样本模板。前端类比模板引擎比如 Handlebars把变量填充进固定模板。3. Chains 链组件LangChain 灵魂核心作用把多个步骤 / 组件按顺序串起来形成一个可复用的工作流。比如RAG 链 文档加载链 → 分块链 → 向量存储链 → 检索链 → 问答链。前端类比中间件 / 拦截器链请求经过一层层处理最后返回结果。4. Memory 记忆组件核心作用给对话加上上下文记忆支持不同类型的存储。包含ConversationBufferMemory完整对话缓存、ConversationSummaryMemory对话摘要、VectorStoreRetrieverMemory向量库记忆。前端类比状态管理Vuex/Pinia 本地存储保存对话状态和用户信息。5. 其他常用组件简单了解Document Loaders加载各种格式的文档PDF、Word、TXT、网页等不用自己写解析。Vector Stores对接向量数据库FAISS、Chroma、Milvus 等实现向量存储和检索。Tools / Agents封装工具调用和之前学的 Agent 工具调用无缝衔接。一、Models 模型层核心作用对接大模型、对话模型、向量嵌入模型是所有能力的基础python运行# 导入普通文本生成大模型 from langchain_openai import OpenAI # 初始化模型指定模型版本、温度(控制随机性) llm OpenAI(model_namegpt-3.5-turbo-instruct, temperature0.7) # invoke 调用模型传入问题 res llm.invoke(什么是 LangChain) # 打印模型返回结果 print(res) # 导入对话专用模型支持多轮对话格式 from langchain_openai import ChatOpenAI # 初始化对话模型 chat_llm ChatOpenAI(model_namegpt-3.5-turbo, temperature0.7) # 调用对话模型提问 res2 chat_llm.invoke(简单解释 RAG 原理) print(res2) # 导入向量嵌入模型把文本转成向量给RAG检索用 from langchain_openai import OpenAIEmbeddings # 初始化向量模型 embeddings OpenAIEmbeddings() # 把一句话转为向量数组 vec embeddings.embed_query(大模型学习路线) # 打印向量长度验证转换成功 print(len(vec))二、Prompts 提示词层核心作用定义提示词模板、预留变量占位动态拼接完整提问话术python运行# 导入提示词模板组件 from langchain.prompts import PromptTemplate # 1. 自定义提示词模板{question} 是变量占位符后续可以动态传值 template 请用通俗易懂的语言回答问题 问题{question} 回答 # 2. 实例化提示词模板 # input_variables声明模板里有哪些变量 # template传入上面写好的模板文本 prompt PromptTemplate( input_variables[question], templatetemplate ) # 3. 给变量赋值填充模板生成完整可以发给大模型的提示词 final_prompt prompt.format(question什么是链 Chain) # 打印生成好的完整提示词 print(final_prompt)三、Chains 链层核心作用把「提示词模板 大模型」自动组装成一条工作链一键执行python运行# 导入大模型 from langchain_openai import OpenAI # 导入提示词模板 from langchain.prompts import PromptTemplate # 导入链组件用来把模型和模板串起来 from langchain.chains import LLMChain # 1. 初始化大模型 llm OpenAI(temperature0.5) # 2. 定义提示词模板{topic} 是动态变量 prompt PromptTemplate( input_variables[topic], template用三句话解释 {topic} ) # 3. 组装成一条链 Chain # 内部自动逻辑接收变量 → 填充提示词 → 调用大模型 → 返回结果 chain LLMChain(llmllm, promptprompt) # 4. 直接运行链给 topic 传参 result chain.run(topicLangChain 的 Chain 链) # 打印链执行后的最终回答 print(result)四、Memory 记忆层核心作用自动保存多轮对话历史让模型记住上下文不用手动拼接聊天记录python运行# 导入大模型 from langchain_openai import OpenAI # 导入对话链自带多轮对话能力 from langchain.chains import ConversationChain # 导入记忆组件缓存完整对话历史 from langchain.memory import ConversationBufferMemory # 1. 初始化记忆对象专门用来存聊天记录 memory ConversationBufferMemory() # 2. 创建带记忆的对话链 # llm绑定大模型 # memory绑定记忆组件自动存上下文 conv_chain ConversationChain( llmOpenAI(temperature0.7), memorymemory ) # 第一轮对话内容会自动存入 memory print(conv_chain.predict(input我正在学 LangChain)) # 第二轮对话内部自动带上一轮聊天历史模型能记住上文 print(conv_chain.predict(input帮我总结一下它的核心组件))四、LangChain 能做什么快速搭 RAG 知识库几行代码实现文档加载、分块、向量化、检索、问答。开发 Agent 智能体封装工具调用、记忆管理快速实现 ReAct 智能体。构建复杂工作流用 Chains 串起多个步骤实现自动化任务。对接各种大模型不用改太多代码就能切换不同的模型服务。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2613285.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!