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

【GPT入门】第22课 langchain LCEL介绍

【GPT入门】第22课 langchain LCEL介绍

  • 1. LCEL介绍与特点
  • 2. 原生API与LCEL的对比
  • 2. 简单demo

1. LCEL介绍与特点

LCEL 即 LangChain Expression Language,是 LangChain 推出的一种声明式语言,用于简化和优化在 LangChain 框架内构建复杂链和应用的过程。以下详细介绍其特点和作用:
特点
声明式语法:传统的链式操作构建方式可能需要编写较多的代码和复杂的逻辑,而 LCEL 使用简洁的声明式语法,让开发者能够以一种直观的方式描述数据在各个组件之间的流动。例如,使用 | 操作符来连接不同的组件,就像搭积木一样轻松组合各个模块,大大提高了代码的可读性和可维护性。
易于组合:支持将不同的 LangChain 组件(如提示模板、语言模型、文档加载器、检索器等)灵活组合在一起,形成复杂的处理流程。开发者可以根据具体需求,快速调整和扩展链的结构,而无需对底层代码进行大规模修改。
流式处理:能够对数据进行流式处理,这意味着在处理大型数据集或长时间运行的任务时,可以逐步获取和处理结果,而不是等待整个任务完成后再获取输出。这种流式处理的方式可以提高系统的响应速度和用户体验。
作用
简化开发流程
开发者可以使用 LCEL 快速搭建起复杂的自然语言处理应用,而无需编写大量的样板代码。例如,在构建一个知识问答系统时,可以通过简单的链式操作将文档检索器、提示模板和语言模型连接起来,实现从文档中检索相关信息并生成答案的功能。

2. 原生API与LCEL的对比

在这里插入图片描述

2. 简单demo

from langchain.prompts import PromptTemplate
from langchain_openai import ChatOpenAI
from langchain.schema.runnable import RunnablePassthrough

# 定义提示模板
prompt = PromptTemplate.from_template("关于 {topic} 的信息:")

# 初始化语言模型
llm = ChatOpenAI()

# 使用 LCEL 构建链式操作
chain = (
    {"topic": RunnablePassthrough()} | prompt | llm
)

# 运行链式操作
topic = "历史故事"
result = chain.invoke(topic)
print(result)

支持流式输出: 对于需要实时反馈的应用场景,如聊天机器人,LCEL 的流式处理功能可以让用户更快地看到部分结果,增强交互的实时性和流畅性。

for chunk in chain.stream("科技前沿"):
    print(chunk, end="", flush=True)

相关文章:

  • 基于SpringBoot和Thymeleaf的仿商城系统开发与设计
  • HTB 学习笔记 【中/英】《前端 vs. 后端》P3
  • Qt程序基于共享内存读写CodeSys的变量
  • MySQL面试题
  • C++学习之动态数组和链表
  • 【SpringMVC】常用注解:@SessionAttributes
  • 阿里百炼Spring AI Alibaba
  • Windows安装Apache Maven 3.9.9
  • 手机验证码
  • 组合 力扣77
  • 3.14-进程间通信
  • LeetCode 第8题:字符串转换整数 (atoi)
  • 【最后203篇系列】016 Q201架构思考
  • vue 导航跳转created不执行,页面不刷新的解决办法
  • Web自动化测试框架
  • 虚拟电商-数据库分库分表(二)
  • CockroachDB MCP -cursor适用
  • 搞定python之六----文件读写
  • 基于深度学习的蛀牙智能检测与语音提示系统【python源码+Pyqt5界面+数据集+训练代码】
  • Vue2+Vant2 项目初学
  • 山西太原一小区发生爆炸,造成1人遇难21人受伤2人失联
  • 山西太原一居民小区发生爆炸,应急管理部派工作组赴现场
  • 黄宾虹诞辰160周年|一次宾翁精品的大集结
  • 南京航空航天大学启动扁平化改革:管理岗规模控制在20%,不再统一设科级机构
  • 媒体:黑话烂梗包围小学生,“有话好好说”很难吗?
  • 建行一季度净利833.51亿同比下降3.99%,营收降5.4%