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

《60天AI学习计划启动 | Day 21: LangChain 高级特性(LCEL + Structured Output》

Day 21:LangChain 高级特性(LCEL + Structured Output)

学习目标

  • 掌握 LangChain Expression Language(LCEL)基础用法
  • 会用 RunnableSequence / RunnableParallel 组合链路
  • 了解 结构化输出(Structured Output)+ zod 校验
  • 实战:把之前的 RAG / Chat 流程用 LCEL 重写一版

核心知识点

  • LCEL 核心思想

    • 一切都是 RunnablePromptTemplate、LLM、Parser、Retrievers 等
    • .pipe() / RunnableSequence.from() 串联;RunnableParallel 并行
    • 好处:声明式、可组合、易复用、易调试
  • 顺序链(RunnableSequence)

    • 典型链路:input → Prompt → LLM → Parser
    • 用法(伪代码):
      const chain = RunnableSequence.from([prompt,llm,outputParser
      ])
      const res = await chain.invoke({ question })
      
  • 并行链(RunnableParallel)

    • 同时跑多个子任务,比如:
      • 一个链做「总结」,一个链做「提取关键字」
    • 用法(伪代码):
      const parallel = RunnableParallel.from({summary: summaryChain,keywords: keywordChain
      })
      const res = await parallel.invoke({ text })
      
  • 结构化输出(Structured Output)

    • 使用 zod 定义 schema,确保 LLM 输出 JSON 符合类型
    • 适合:配置、提取字段、结构化分析结果
    • 用法(伪代码):
      const schema = z.object({title: z.string(),score: z.number().min(0).max(10)
      })
      const parser = StructuredOutputParser.fromZodSchema(schema)
      const chain = prompt.pipe(llm).pipe(parser)
      const res = await chain.invoke({ code })
      
  • LCEL + RAG 简写

    • 链路:question → retriever → context → prompt → llm → parser
    • 用一个 RunnableSequence 串起来,替代手写 try/await 流程

实战作业

  • 作业 1:用 LCEL 重写基础 Chat 链

    • 把原来 prompt + llm + 自己 parse 的逻辑改成:prompt.pipe(llm).pipe(parser)
    • 要求:保留原有功能,代码更短、更易读
  • 作业 2:实现一个「代码审查 + 打分」结构化输出链

    • zod 定义:
      const ReviewSchema = z.object({issues: z.array(z.string()),score: z.number().min(0).max(10),suggestion: z.string()
      })
      
    • 用 LCEL:prompt → llm → StructuredOutputParser,返回严格结构化对象
  • 作业 3:给 RAG 做一个 LCEL 版本

    • retriever.pipe(ragPrompt).pipe(llm).pipe(parser)
    • 对比:老版手写 await vs LCEL 写法,体会可组合性差异

思考/笔记要点(可写进博客)

  • 记录:传统 imperative 写法 vs LCEL 声明式写法代码对比
  • 总结:什么时候用 LCEL(复杂链路、多处复用)更合适
  • 反思:自己项目里哪些地方可以逐步替换成 LCEL
http://www.jsqmd.com/news/103787/

相关文章:

  • 装修用瓷砖选什么牌子,瓷砖一线品牌2025权威排名推荐 - 资讯焦点
  • Docker环境下LangGraph Agent配置实战(专家级配置方案首次公开)
  • TabPFN完整指南:如何用AI模型彻底改变表格数据预测
  • 格雷厄姆特价股票理论对公司并购策略的影响
  • 22、SSH的多功能应用:从文件共享到安全通信
  • 镜像压缩性能提升5倍的秘密,Docker Buildx高级用法全解析
  • 【高可用架构必备技能】:Docker Offload中任务状态同步的7种最佳实践
  • 【Docker-LangGraph Agent配置终极指南】:掌握高效AI代理部署的5大核心技巧
  • 边缘计算实战技巧(Docker启动脚本优化全记录)
  • HCA解码器完整教程:快速转换游戏音频的终极方案
  • 13、文本处理技巧与实践
  • 2025年12月温控仪表知名品牌top1,国产温控仪表行业厂家推荐,品质可靠、高性价比 - 品牌推荐大师1
  • Agent服务总在启动时失败?,详解Docker Compose依赖配置的8个隐藏坑点
  • 揭秘边缘 Agent 自动化启动难题:5个关键步骤打造稳定 Docker 脚本
  • FortiGate SSO遭无差别攻击,管理员权限秒破,全网紧急防护
  • 【多模态Agent架构设计】:Docker网络隔离核心技术详解与实战部署
  • 用C++ STL线程与互斥量优雅解决哲学家就餐问题
  • Mem Reduct内存管理工具:系统性能优化实战指南
  • 从零构建智能监控体系,基于Agent的Docker告警实战详解
  • Mem Reduct终极内存优化:三步让老电脑重获新生
  • 15、网页数据处理与自动化操作实用指南
  • EmotiVoice语音合成在智能穿戴设备中的低功耗运行探索
  • JRebel 激活失效?手把手教你本地搭建激活服务器(无需公网、无需 Docker)
  • 终极自适应解决方案:autofit.js一键实现完美大屏适配
  • 暗黑破坏神2存档编辑器终极指南:从入门到精通的角色定制全解析
  • OpenProject企业版价值解析:从免费开源到商业级项目管理
  • EmotiVoice语音合成在心理咨询机器人中的共情表达尝试
  • 24、SSH技术:突破网络限制与保障安全的解决方案
  • 【读书笔记】《孙子兵法》
  • Vercel AI SDK部署失败?你可能忽略了这4个Docker版本陷阱