LangChain深度解析:从入门到实战,解锁AI应用开发新技能!

📅 2026/6/18 22:33:05 👤 管理员 👁 次浏览
LangChain深度解析:从入门到实战,解锁AI应用开发新技能!
什么是 LangChain它解决了什么问题LangChain 是一个基于大语言模型LLM构建应用的开发框架。LLM 本身只能「接收文本 → 生成文本」但实际应用通常还需要访问外部知识库调用工具搜索、数据库、API管理多轮对话记忆实现复杂工作流构建 AI Agent一句话总结LangChain 把 LLM 从一个“只会聊天的模型”变成一个“能获取信息、使用工具、完成复杂任务的应用系统”。LangChain 的核心模块有哪些核心其实就三件事跟模型对话Model I/O Prompt给模型外部能力Tool Retrieval把流程串起来Chain Agent常见核心模块如下模块作用Model I/O与 LLM 交互PromptTemplate管理提示词模板OutputParser解析模型输出Memory管理上下文记忆Retriever检索外部知识VectorStore向量数据库Tool给模型调用外部能力Chain串联多个步骤Agent动态决策调用工具LangChain 中 PromptTemplate 有什么作用作用把提示词模板化 —— 固定结构 动态变量避免每次手动拼字符串。示例from langchain_core.prompts import ChatPromptTemplateprompt ChatPromptTemplate.from_messages([ (system, 你是一个{role}回答要简洁。), (human, {question}),])prompt.invoke({ role: Hadoop专家, question: HDFS的读写流程是什么})优点提高 Prompt 复用性结构更清晰动态参数更安全更适合复杂 Agent 系统LangChain 中如何实现对话记忆有哪些常见类型核心思想把历史对话存起来每次调用 LLM 时自动注入让模型记住之前聊了什么。常见 Memory 类型存储方式类特点内存InMemoryChatMessageHistory开发调试用进程结束即丢失文件FileChatMessageHistoryJSON 文件持久化单机简单场景SQLiteSQLChatMessageHistory单文件数据库轻量持久化PostgreSQLPostgresChatMessageHistory生产级支持并发RedisRedisChatMessageHistory高性能支持 TTL 自动过期MongoDBMongoDBChatMessageHistory文档型灵活 Schema如何在 LangChain 中搭建 RAG 流程RAG 核心流程加载文档 ↓切分文档 ↓向量化存储 ↓检索相关内容 ↓拼接 Prompt ↓LLM 生成答案示例代码from langchain_openai import ChatOpenAI, OpenAIEmbeddingsfrom langchain_community.document_loaders import TextLoaderfrom langchain.text_splitter import RecursiveCharacterTextSplitterfrom langchain_community.vectorstores import FAISSfrom langchain_core.prompts import ChatPromptTemplatefrom langchain_core.runnables import RunnablePassthroughfrom langchain_core.output_parsers import StrOutputParser# 1. 加载文档loader TextLoader(knowledge.txt, encodingutf-8)docs loader.load()# 2. 切分文档splitter RecursiveCharacterTextSplitter( chunk_size500, chunk_overlap50)chunks splitter.split_documents(docs)# 3. 向量化并存入向量数据库embeddings OpenAIEmbeddings()vectorstore FAISS.from_documents(chunks, embeddings)# 4. 创建检索器retriever vectorstore.as_retriever( search_kwargs{k: 3})# 5. 定义 Promptprompt ChatPromptTemplate.from_template(基于以下上下文回答问题。如果上下文中没有相关信息请说“我不知道”。上下文{context}问题{question})# 6. 组装 Chainllm ChatOpenAI(modelgpt-4o)chain ( { context: retriever, question: RunnablePassthrough() } | prompt | llm | StrOutputParser())# 7. 调用answer chain.invoke(HDFS的读写流程是什么)print(answer)如何用 LangChain 加载和处理 TXT、CSV、PDF、MD 等格式的数据数据加载from langchain_community.document_loaders import ( TextLoader, CSVLoader, PyPDFLoader, UnstructuredMarkdownLoader,)txt_docs TextLoader( data.txt, encodingutf-8).load()csv_docs CSVLoader( data.csv, encodingutf-8).load()pdf_docs PyPDFLoader( report.pdf).load()md_docs UnstructuredMarkdownLoader( readme.md).load()文本切分from langchain.text_splitter import ( RecursiveCharacterTextSplitter)splitter RecursiveCharacterTextSplitter( chunk_size500, # 每段最大字符数 chunk_overlap50, # 段间重叠字符 separators[ \n\n, \n, 。, , ])chunks splitter.split_documents(docs)LangChain 中文本分割有哪些策略如何选择常见文本分割策略分割方式特点适用场景CharacterTextSplitter固定字符切分简单文本RecursiveCharacterTextSplitter递归智能切分通用 RAG最常用TokenTextSplitter按 Token 切分控制模型上下文MarkdownHeaderTextSplitter按 Markdown 标题切分技术文档PythonCodeTextSplitter按代码结构切分代码库 RAGHTMLHeaderTextSplitter按 HTML 标签切分网页内容选择建议普通文档 →RecursiveCharacterTextSplitter代码库 →CodeTextSplitterMarkdown 文档 →MarkdownHeaderTextSplitter严格控制 Token →TokenTextSplitterLangChain 如何实现 Agent整个实现逻辑分为三层定义能力Tool先告诉 Agent 它会做什么。通过tool把普通函数注册为工具。每个工具都有名称描述参数定义LLM 会根据这些信息决定“什么时候调用哪个工具”。组装大脑Agent把LLMToolsPrompt组装成 Agent。其中agent_scratchpad是 Agent 的“工作记忆”。它会保存工具调用过程中间推理结果多步执行轨迹驱动循环AgentExecutorAgentExecutor 负责不断驱动 Agent 执行用户输入 ↓LLM 分析是否需要调用工具 ↓调用 Tool ↓获得结果 ↓追加到工作记忆 ↓继续推理 ↓最终输出答案本质上就是“思考 → 行动 → 观察”的循环。其中LLM 负责思考和决策Tool 负责执行动作AgentExecutor 负责串联整个流程直到 LLM 认为已经可以回答用户问题为止。Agent 示例代码from langchain_openai import ChatOpenAIfrom langchain_core.tools import toolfrom langchain.agents import ( create_tool_calling_agent, AgentExecutor)from langchain_core.prompts import ChatPromptTemplate# 定义工具tooldef get_weather(city: str) - str: 查询城市天气 returnf{city}今天晴25°Ctooldef search(query: str) - str: 搜索信息 returnf搜索结果: {query}# 初始化 LLMllm ChatOpenAI(modelgpt-4o)# Prompt 模板prompt ChatPromptTemplate.from_messages([ (system, 你是一个有用的助手。), (human, {input}), (placeholder, {agent_scratchpad}),])# 创建 Agenttools [get_weather, search]agent create_tool_calling_agent( llm, tools, prompt)agent_executor AgentExecutor( agentagent, toolstools, verboseTrue)# 运行result agent_executor.invoke({ input: 北京今天天气怎么样})print(result[output])0 AI行业迎来前所未有的爆发式增长从DeepSeek百万年薪招聘AI研究员到百度、阿里、腾讯等大厂疯狂布局AI Agent再到国家政策大力扶持数字经济和AI人才培养所有信号都在告诉我们AI的黄金十年真的来了在行业火爆之下AI人才争夺战也日趋白热化其就业前景一片蓝海我给大家准备了一份全套的《AI大模型零基础入门进阶学习资源包》包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。有需要的小伙伴可以V扫描下方二维码免费领取人才缺口巨大人力资源社会保障部有关报告显示据测算当前****我国人工智能人才缺口超过500万****供求比例达1∶10。脉脉最新数据也显示AI新发岗位量较去年初暴增29倍超1000家AI企业释放7.2万岗位……单拿今年的秋招来说各互联网大厂释放出来的招聘信息中我们就能感受到AI浪潮比如百度90%的技术岗都与AI相关就业薪资超高在旺盛的市场需求下AI岗位不仅招聘量大薪资待遇更是“一骑绝尘”。企业为抢AI核心人才薪资给的非常慷慨过去一年懂AI的人才普遍涨薪40%脉脉高聘发布的《2025年度人才迁徙报告》显示在2025年1月-10月的高薪岗位Top20排行中AI相关岗位占了绝大多数并且平均薪资月薪都超过6w在去年的秋招中小红书给算法相关岗位的薪资为50k起字节开出228万元的超高年薪据《2025年秋季校园招聘白皮书》AI算法类平均年薪达36.9万遥遥领先其他行业总结来说当前人工智能岗位需求多薪资高前景好。在职场里选对赛道就能赢在起跑线。抓住AI风口轻松实现高薪就业但现实却是仍有很多同学不知道如何抓住AI机遇会遇到很多就业难题比如❌ 技术过时只会CRUD的开发者在AI浪潮中沦为“职场裸奔者”❌ 薪资停滞初级岗位内卷到白菜价传统开发3年经验薪资涨幅不足15%❌ 转型无门想学AI却找不到系统路径83%自学党中途放弃。他们的就业难题解决问题的关键在于不仅要选对赛道更要跟对老师我给大家准备了一份全套的《AI大模型零基础入门进阶学习资源包》包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。有需要的小伙伴可以V扫描下方二维码免费领取