AI菜鸟向前飞 — LangChain系列之六 - 深入浅出LCEL与Chain(上篇)

简介

    LCEL是 LangChain Expression Language的缩写

    先来做个程序书写的对比,观察一下、使用了Expression Language语法之后更加短小精悍(缩短了一倍长度,更加高级的用法缩短会更多)而且代码看起来更加简单易读。

  • 使用EL

from langchain_community.chat_models import ChatOllama
from langchain.schema import HumanMessage
from langchain_core.output_parsers import StrOutputParser

(ChatOllama(model="llama3", temperature=0) | StrOutputParser()).invoke([HumanMessage(content="你好啊, AI小助手")])
  • 未使用EL

from langchain_community.chat_models import ChatOllama
from langchain.schema import HumanMessage
from langchain_core.output_parsers import StrOutputParser

chat = ChatOllama(model="llama3", temperature=0)

output_parser = StrOutputParser()

response = chat.invoke([HumanMessage(content="你好啊, AI小助手")])

output_parser.invoke(response)

    Expression Language是一种将 Runnable 组成链(Runnables into chains)的声明性方式,以这种方式构建的任何链都将自动具有同步、异步、批处理、流支持等等,包含RunnableSequence 和 RunnableParallel两大部分内容。

        关于RunnableParallel内容,放到后面再介绍

RunnableSequence:按顺序调用一系列可运行对象,一个可运行对象的输出充当下一个可运行对象的输入࿰

### LangChainLCEL工作原理解释 #### 三、LangChain框架概述 LangChain是一个用于构建对话应用的强大框架,它不仅提供了丰富的功能组件还支持灵活的扩展机制。通过集成多种模型和服务,能够快速搭建起具备自然语言处理能力的应用程序[^1]。 #### 四、LCEL表达式的定义及其作用 LCEL (LangChain Expression Language) 是一种专门为简化操作而设计的小型领域特定语言(DSL),允许开发者以更直观的方式编写逻辑流程。这种表达式可以被解析成一系列可执行的操作序列,在运行时按照预定规则顺序执行各个节点上的任务[^2]。 #### 五、运算符重载技术在LCEL中的体现 为了使代码更加简洁易读,LCEL引入了Python风格的魔术方法来实现运算符重载。特别是对于管道(`|`)符号对应的`__or__()`函数进行了特殊定制,使得多个Runnable对象之间可以通过简单的竖线连接形成复杂的数据流控制结构[^3]: ```python from langchain import Runnable, LCELExpression class CustomRunnable(Runnable): pass expr = ( CustomRunnable() | CustomRunnable() ) print(expr) ``` 上述例子展示了如何利用`__or__`方法创建由两个自定义Runnable实例组成的流水线。当这条语句被执行时,输入数据会先传递给第一个CustomRunnable处理完毕后再交给下一个继续加工直至整个链条结束为止。 #### 、不同场景下的接口选用策略 针对不同的业务需求,LangChain提供了一系列优化过的API供选择。例如,在面对高并发量的在线客服系统时推荐采用异步版本;而对于大规模离线分析作业则更适合批量提交方式;至于那些对响应速度要求不高但追求简易性的内部管理平台来说同步调用无疑是最优解之一[^4]。 #### 七、总结 综上所述,LangChain借助于其独特的架构设计——尤其是内置DSL的支持——实现了高度模块化的同时保持了良好的性能表现。无论是初学者还是经验丰富的工程师都能从中受益匪浅,轻松驾驭复杂的AI项目开发过程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值