使用 LangChain 表达式语言构建第一个简单的 LLM 应用

使用 LangChain 表达式语言构建第一个简单的 LLM 应用

在本教程中,我将向你展示如何使用 LangChain 构建一个简单的 LLM 应用程序。此应用程序会将文本从英语翻译成另一种语言。这是一个相对简单的 LLM 应用程序:它只是一个 LLM 调用加上一些提示。不过,这仍然是开始使用 LangChain 的好方法:只需一些提示和一个 LLM 调用就可以构建许多功能!

你应该使用哪种 LLM?

LangChain 本身支持很多种 LLM,我将使用阿里的 Qwen2.5 系列的 LLM,因为可以和 OpenAI 兼容使用,具体怎么兼容,请看下面的介绍。

首先,在项目根目录中新建一个 .env 文件:

img

.env 文件内容写上:

img

然后我们将加载 .env 中环境变量:

img

然后我们初始化一个 model 对象:

img

让我们首先直接使用该模型。ChatModel 是 LangChain Runnable 的实例,这意味着它们公开了一个用于与其交互的标准接口。为了简单地调用该模型,我们可以将消息列表传递给 .invoke 方法:

img

这样我们得到了模型返回的消息,这是一个 AIMessage 对象。

输出解析器

请注意,模型的响应是 AIMessage。它包含字符串响应以及有关响应的其他元数据。通常我们可能只想处理字符串响应。我们可以使用简单的输出解析器来解析此响应。

我们首先导入简单的输出解析器:

img

从名字也能看出来这是一个字符串输出解析器。

我们有多种方法可以使用输出解析器,,一种使用方法是直接使用它。例如,我们可以保存语言模型调用的结果,然后将其传递给解析器:

img

不过你知道 LangChain 中的 Chain 是什么意思吗?

img

所以更常见的使用方法是将模型和输出解析器连接起来成为一个链。

我们将输入到语言模型的输入(字符串或消息列表)输入到链,链返回输出解析器的输出类型(字符串)。

我们可以使用 | 运算符轻松创建链。| 运算符在 LangChain 中用于将两个元素组合在一起。

img

看到没,结果是一样的,我们将 messages 通过 invoke 方法传到链中,首先调用 model 处理,然后 parser 会解析 model 返回的处理结果。

提示模板

也许你曾经听过:提示工程(Prompt Engineering,是一种强大的工具,可帮助 AI 聊天机器人在实时对话中生成与上下文相关且连贯的响应。聊天机器人开发人员可以通过设计有效的提示来确保 AI 理解用户查询并提供有意义的答案)。

截至目前,我们都是手工构建消息列表并将其直接传递到语言模型中。这个消息列表从何而来?通常,它由用户输入和应用程序逻辑组合而成。此应用程序逻辑通常获取原始用户输入并将其转换为可传递给语言模型的消息列表。常见的转换包括添加系统消息或使用用户输入格式化模板。

PromptTemplates 是 LangChain 中的一个概念,旨在协助进行这种转换。它们接收原始用户输入并返回可传递给语言模型的数据(提示)。

让我们在这里创建一个 PromptTemplate。它将接收两个用户变量:

  • language:要将文本翻译成的语言
  • text:要翻译的文本

img

  1. 我们创建了一个用来格式化系统消息的字符串:system_template。
  2. 创建 PromptTemplate。这将是 system_template 和用于放置要翻译的文本的简单模板。
  3. 提示模板的输入是一个字典

我们可以看到 result 是一个由两条消息组成的 ChatPromptValue。如果我们想直接访问这些消息,我们可以这样做:

img

将这些组件组成一个链

我们现在可以使用管道(|)运算符将提示模板和上面的模型和输出解析器结合起来:

img

这是一个使用 LangChain 表达语言 (LangChain Expression Language,LCEL) 将 LangChain 模块链接在一起的简单示例。这种方法有几个好处,包括优化的流式传输和跟踪支持。

LangServer

到现在为止,我们都在 Jupyter Notebook 中使用 LangChain,如果你想为别人提供 REST API 服务的话,可以使用 LangServer。

首先创建一个包含为应用程序提供服务的逻辑的 serve.py 文件。它由三部分组成:

  1. 我们刚刚在上面构建的链的定义
  2. 我们的 FastAPI 应用程序
  3. 为链提供服务的路由的定义,这是通过 langserve.add_routes 完成的

server.py 文件我已经上传到 GitHub 了。

然后在终端输入 python server.py 就可以了:

img

然后你的小伙伴就能调用你提供的应用服务程序了:

img

零基础入门AI大模型

今天贴心为大家准备好了一系列AI大模型资源,包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

有需要的小伙伴,可以点击下方链接免费领取【保证100%免费

点击领取 《AI大模型&人工智能&入门进阶学习资源包》

1.学习路线图

在这里插入图片描述

第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;

第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;

第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;

第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;

第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;

第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;

第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。

2.视频教程

网上虽然也有很多的学习资源,但基本上都残缺不全的,这是我自己整理的大模型视频教程,上面路线图的每一个知识点,我都有配套的视频讲解。

在这里插入图片描述

在这里插入图片描述

(都打包成一块的了,不能一一展开,总共300多集)

3.技术文档和电子书

这里主要整理了大模型相关PDF书籍、行业报告、文档,有几百本,都是目前行业最新的。
在这里插入图片描述

4.LLM面试题和面经合集

这里主要整理了行业目前最新的大模型面试题和各种大厂offer面经合集。
在这里插入图片描述

👉学会后的收获:👈

• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。

1.AI大模型学习路线图
2.100套AI大模型商业化落地方案
3.100集大模型视频教程
4.200本大模型PDF书籍
5.LLM面试题合集
6.AI产品经理资源合集

5.免费获取

这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码或者点击以下链接都可以免费领取【保证100%免费】

点击领取 《AI大模型&人工智能&入门进阶学习资源包》

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值