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

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

  • [1. LCEL介绍与特点](#1. LCEL介绍与特点)
  • [2. 原生API与LCEL的对比](#2. 原生API与LCEL的对比)
  • [2. 简单demo](#2. 简单demo)

1. LCEL介绍与特点

LCEL 即 LangChain Expression Language,是 LangChain 推出的一种声明式语言,用于简化和优化在 LangChain 框架内构建复杂链和应用的过程 。以下详细介绍其特点和作用:
特点

声明式语法:传统的链式操作构建方式可能需要编写较多的代码和复杂的逻辑,而 LCEL 使用简洁的声明式语法,让开发者能够以一种直观的方式描述数据在各个组件之间的流动。例如,使用 | 操作符来连接不同的组件,就像搭积木一样轻松组合各个模块,大大提高了代码的可读性和可维护性。

易于组合:支持将不同的 LangChain 组件(如提示模板、语言模型、文档加载器、检索器等)灵活组合在一起,形成复杂的处理流程。开发者可以根据具体需求,快速调整和扩展链的结构,而无需对底层代码进行大规模修改。

流式处理:能够对数据进行流式处理,这意味着在处理大型数据集或长时间运行的任务时,可以逐步获取和处理结果,而不是等待整个任务完成后再获取输出。这种流式处理的方式可以提高系统的响应速度和用户体验。

作用
简化开发流程

开发者可以使用 LCEL 快速搭建起复杂的自然语言处理应用,而无需编写大量的样板代码。例如,在构建一个知识问答系统时,可以通过简单的链式操作将文档检索器、提示模板和语言模型连接起来,实现从文档中检索相关信息并生成答案的功能。

2. 原生API与LCEL的对比

2. 简单demo

c 复制代码
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 的流式处理功能可以让用户更快地看到部分结果,增强交互的实时性和流畅性。

c 复制代码
for chunk in chain.stream("科技前沿"):
    print(chunk, end="", flush=True)
相关推荐
赢乐4 小时前
大模型学习笔记:LangChain核心组件-消息(Messages)
langchain·systemmessage·消息(messages)·角色role·humanmessage·aimessage·toolmessage
Nayxxu5 小时前
Gemini、Claude、GPT 多模型网关最小实现方案
人工智能·gpt
完成大叔5 小时前
Agent入门:用本地模型从零搭建
开发语言·python·langchain
夜雪闻竹6 小时前
Codex CLI / Trae / Copilot 数据源接入
gpt·copilot·ai-native
Mr.朱鹏8 小时前
9-检索增强生成RAG详解
python·gpt·langchain·大模型·llm·rag
怪祝浙9 小时前
AI学习-LangChain实战-多模态识别agent
人工智能·学习·langchain
情绪总是阴雨天~9 小时前
深入理解A2A协议:从零搭建多Agent协作系统实战
python·langchain·langgraph·a2a
C137的本贾尼9 小时前
融会贯通:打造完整的 RAG 问答链
python·langchain
暗不需求11 小时前
深入浅出 LangChain Memory:从无状态到有记忆的智能对话
面试·langchain·ai编程
怪祝浙11 小时前
AI实战之LangChain开发(prompt;tools;memory)
langchain