当前位置:   article > 正文

AI人工智能 大模型开发实战出真知系列:简单了解LangChain Expression Language-实战篇_ai 算法模型 开发

ai 算法模型 开发

图片

图片

LangChain Expression Language(LCEL)是LangChain框架中一种强大和灵活的语言,用于描述和构建复杂的链式调用。它允许开发人员以声明式的方式定义数据的转换和流程,并与LangChain的其他组件无缝集成。本文将对其设计理念进行介绍,并做简单的代码实战。

图片

图片

图片

图片

设计来源及语法

前文提到,使用LangChain Expression Language主要有两个目的:统一的接口和组合原语。如果有过任务调度引擎,大数据,规则引擎等开发经验的同学应该马上可以抽象出来核心其实就是DAG(有向无环的模式)。LangChain Expression Language就是LangChain框架中一种强大而灵活的领域特定语言(DSL),用于描述和构建复杂的链式调用。下面看其标准流程:

将用户所需传递给模型的参数设计好,如:用户输入传递为 {"topic": "赛博"}

通过RunnablePassthrough函数获取用户输入传递给prompt模版,然后在使用构造提示prompt后将其用于构造 PromptValue,以给大模型输入

model组件采用生成的PromptValue提示,并传递到 OpenAI LLM 模型进行评估。模型生成的输出是一个ChatMessage对象。

output_parser组件接收 aChatMessage并将其转换为 Python 字符串的结果,从 invoke 方法返回。

示意图如下:

图片

图片

图片

图片

图片

图片

本文基础环境为anacoda,使用notebook进行示例:

首先,pip安装相关的包:

然后配置环境变量,这里以OpenAI的gpt3.5为例:

import库,进行相关包的导入:

核心逻辑如下:

运行结果如下:

图片

图片

由于有读者国内无法访问OpenAI接口的问题,这里也给出了平替的解决方案,就是国产大模型GLM,智谱AI于24年1月16日发布的GLM-4,增强了工具(tool)调用能力,API接口方式与OpenAI几乎完全相同,推理能力在GPT3.5和GPT-4之间。如果有不会申请智谱AI的接口的读者,也可以后台私信詹特曼,后台进行解答。

同样,获取到了智谱AI开放平台的API后先在notebook设置环境变量:

由于LangChain的community集成了大语言模型的接口其实并没有随模型及时更新,所以关于智谱平台的API_KEY客户端的鉴权我们需要自己手动实现,要先倒入依赖包:

这里要自己实现根据API_KEY生成客户端令牌(要不是翻了zhipu库的源码,也不会料想是这样,也是自己没详细看智谱的API文档):

智谱AI的GLM模型核心代码如上,运行结果如下:

图片

图片

当然,如果您对任何组件的输出感到好奇,您始终可以测试链的较小版本,例如prompt或 prompt | model查看中间结果都是可以的,因为,上述四个标准化流程都是有runble方法可以通过invoke进行调用的,如下:

prompt调用invoke:

图片

图片

model通过prompt返回参数调用invoke:

图片

图片

当然这里有两种方式,更地道一点为:

图片

图片

综上所述,首先带大家回顾了LangChain Expression Language的设计目的和相关设计思想理念。随后通过对LangChain大模型开发交互的基本流程进行介绍,主要是设计用户输入,Prompt渲染,模型处理,输出格式化。最后进行了简单的编码实战。

图片

图片

图片

图片

LangChain源码阅读感悟

图片

图片

图片

图片

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/735445
推荐阅读
相关标签
  

闽ICP备14008679号