当前位置: 首页 > article >正文

真正通俗易懂的Langchain入门学习(二)


一、基础认知:用“搭积木”思维理解LangChain

1. 什么是LangChain?

想象你买了一个超智能的机器人(比如ChatGPT),它能说会道、知识渊博,但有个问题:

  • 它像一本百科全书,却不知道你公司的产品信息
  • 它擅长聊天,但不会帮你查天气、订机票
  • 它能写诗,但无法自动分析Excel表格

LangChain就是给这个机器人装上的“万能工具箱”

  • 连接能力:让机器人能读取你的本地文档、访问数据库
  • 流程控制:把“查资料→分析→写报告”这样的多步骤任务串成流水线
  • 记忆管理:让机器人记住昨天的对话,像老朋友一样聊天

生活案例
普通聊天机器人:
你问:“帮我查订单123456的状态” → 它回答:“抱歉,我无法访问订单系统”

用LangChain改造后的机器人:

  1. 识别“订单查询”意图 → 2. 调用公司数据库API → 3. 返回:“订单123456已发货,预计明天送达”

2. 为什么需要LangChain?

传统LLM的三大局限

  • 信息孤岛:模型训练数据截止于某个时间点,无法获取最新信息(如实时股价)
  • 功能单一:只能生成文本,不能执行实际动作(如发送邮件、修改数据库)
  • 缺乏逻辑:复杂任务需要人工拆解步骤(如“分析销售数据→生成图表→总结问题→给出建议”需要多次交互)

LangChain的解决方案

传统LLMLangChain增强版
静态知识库实时连接数据库/互联网
单次问答多步骤自动化流程
失忆式对话带记忆的连续对话
纯文本输出调用API生成PPT/Excel

比喻理解
把LangChain想象成乐高积木底座——单独的语言模型是积木块,LangChain提供拼接规则和连接件,让你能搭建出城堡、飞船等复杂结构。


3. 核心组件详解(配生活化案例)
(1) Models(模型层)
  • 作用:对接不同的大脑(语言模型)
  • 常见类型
    • 云端模型:OpenAI的GPT、Anthropic的Claude(像租用超级计算机)
    • 本地模型:Llama2、ChatGLM(像自家装的服务器)

案例对比

# 使用OpenAI  
from langchain.llms import OpenAI  
llm = OpenAI(model_name="gpt-3.5-turbo")  
  
# 使用本地模型  
from langchain.llms import HuggingFaceHub  
llm = HuggingFaceHub(repo_id="google/flan-t5-xxl")  

(2) Chains(任务链)
  • 作用:把零散操作串成工作流,像工厂流水线
  • 典型结构
    输入 → 数据清洗 → 调用模型 → 结果解析 → 输出

生活案例:自动写周报

  1. 读取本周工作日志(Markdown文件)
  2. 提取关键事件
  3. 让LLM生成总结段落
  4. 自动格式化为公司模板
  5. 发送邮件给主管
from langchain.chains import TransformChain, LLMChain, SimpleSequentialChain  

# 第一步:清洗数据  
clean_chain = TransformChain(...)  
# 第二步:生成总结  
report_chain = LLMChain(...)  
# 串联成完整链  
weekly_report_chain = SimpleSequentialChain(chains=[clean_chain, report_chain])  

(3) Agents(智能代理)
  • 作用:给机器人配备瑞士军刀,动态选择工具
  • 核心要素
    • 工具库:搜索引擎、计算器、数据库连接器等
    • 决策逻辑:根据问题自动选择工具

经典场景:旅行规划助手
用户问:“我想去巴黎玩三天,预算5000元”

  1. 调用天气API查巴黎近期天气
  2. 访问机票数据库查低价航班
  3. 使用LLM生成景点推荐
  4. 组合结果生成完整攻略
from langchain.agents import load_tools  

tools = load_tools(["serpapi", "llm-math"], llm=llm)  
agent.run("巴黎三日游5000元预算,推荐行程?")  

(4) Memory(记忆管理)
  • 作用:让对话有连续性,像人类一样记住上下文
  • 实现方式
    • 短期记忆:记住最近5轮对话
    • 长期记忆:将关键信息存入数据库

对比示例
无记忆对话
用户:“昨天的会议结论是什么?” → AI:“请提供会议记录”

有记忆对话
用户:“把昨天的会议结论总结成邮件” → AI自动调取之前的会议摘要 → 生成邮件草稿

from langchain.memory import ConversationBufferMemory  

memory = ConversationBufferMemory()  
memory.save_context({"input": "周二会议讨论了什么"}, {"output": "决定推进A项目"})  
print(memory.load_memory_variables({})) # 输出:{'history': 'Human: 周二会议...\nAI: 决定推进A项目'}  

(5) Indexes(数据索引)
  • 作用:把外部数据变成模型能理解的“营养餐”
  • 处理流程
    文档 → 分割成片段 → 向量化存储 → 语义检索

企业应用案例

  1. 上传公司产品手册(PDF)
  2. 员工问:“X型号设备的最大负载是多少?”
  3. 系统自动检索手册相关内容 → 生成精准回答
from langchain.document_loaders import PyPDFLoader  

loader = PyPDFLoader("manual.pdf")  
pages = loader.load_and_split()  
# 后续进行向量存储与检索...

4. LangChain vs 普通LLM开发

通过一个对比场景理解差异:

任务:构建一个股票分析助手

步骤普通LLM开发LangChain方案
获取实时股价无法实现调用Yahoo Finance API
生成分析报告手动拼接提示词自动组装数据→分析→生成
多轮对话每次需重复输入股票代码自动记忆上下文
输出格式纯文本自动生成Markdown报告

5. 学习路线图建议
理解核心概念
安装配置环境
运行第一个示例
分模块实践
整合项目实战

现在你已经掌握了LangChain的基础逻辑,就像一个厨师了解了厨房的工具布局。接下来可以点火开灶,开始动手做第一道菜了!


http://www.kler.cn/a/545776.html

相关文章:

  • Kotlin 扩展函数与内联函数
  • DeepSeek处理自有业务的案例:让AI给你写一份小众编辑器(EverEdit)的语法着色文件
  • 微信小程序组件间通信与传值的全面解析
  • 【Kubernetes】常用命令全解析:从入门到实战(中)
  • FastAPI 高并发与性能优化
  • CSS实现中心放大动画
  • 【AI大模型】Ollama部署本地大模型DeepSeek-R1,交互界面Open-WebUI,RagFlow构建私有知识库
  • github上创建person access token
  • 21道关于Vue3的面试题及其解析
  • 网络安全|网络安全学习方法
  • cpp--实战项目,list的模拟实现,注释超详细!
  • 架构设计系列(二):CI/CD
  • 2024 CyberHost 语音+图像-视频
  • 多模态本地部署ConVideoX-5B模型文生视频
  • Electron视图进程和主进程通讯
  • Mybatis 配置Mybatis 一、框架的概述
  • 数据结构结尾
  • Repo命令使用
  • LVS集群模式
  • Ubuntu 上安装 GitLab