【可能是全网最丝滑的LangChain教程】三、快速入门LLMChain

2024-03-17 17:20

本文主要是介绍【可能是全网最丝滑的LangChain教程】三、快速入门LLMChain,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

系列文章地址

【可能是全网最丝滑的LangChain教程】一、LangChain介绍

【可能是全网最丝滑的LangChain教程】二、LangChain安装

使用LangChain构建应用

LangChain支持构建应用程序,将外部数据源和计算源连接到LLM。我们将从一个简单的 LLM 链开始,它只依赖于提示模板中的信息来响应。 接下来,我们将构建一个检索链,该链从单独的数据库获取数据并将其传递到提示模板中。 然后,我们将添加聊天记录,以创建对话检索链。这允许您以聊天方式与此 LLM 进行交互,因此它会记住以前的问题。 最后,我们将构建一个代理,利用 LLM 来确定它是否需要获取数据来回答问题。

LLMChain

LangChain可以通过 API 提供的模型(如 OpenAI)和本地开源模型(如 Ollama)等集成。开源模型的部署依赖于我们拥有的硬件配置,我将不做过多分析。

这里我将使用OpenAI提供的API做示例。

首先,我们需要导入 LangChain x OpenAI 集成包。

pip install langchain-openai

访问 API 需要一个 API 密钥,您可以通过创建一个帐户并前往此处来获取该密钥。

一旦我们有了密钥,我们就要通过运行以下命令将其设置为环境变量(非必须): 

export OPENAI_API_KEY="..."

然后,我们可以初始化模型: 

from langchain_openai import ChatOpenAIllm = ChatOpenAI()

如果您不想设置环境变量,则可以在启动 OpenAI LLM 类时直接通过命名参数传入密钥:openai_api_key 

from langchain_openai import ChatOpenAIllm = ChatOpenAI(openai_api_key="...")

一旦你安装并初始化了你选择的LLM,我们就可以尝试使用它了!

让我们问它“请介绍一下李白?” 。 

llm.invoke("介绍一下李白?")

输出如下:

AIMessage(content='李白(701年-762年),字太白,号青莲居士,唐朝时期伟大的浪漫主义诗人,被后人誉为“诗仙”。他出生于今天的陕西省凤翔县,自幼聪明好学,擅长诗词歌赋,一生创作了大量的诗歌,其作品风格豪放奔放,语言优美,富有想象力,具有极高的艺术价值。李白的诗歌题材广泛,包括山水田园、历史人物、神话传说、饮酒抒怀等,他的诗歌充满了浪漫主义色彩,表现出对自由、理想和自然的热爱。他的代表作有《静夜思》、《将进酒》、《庐山谣》、《早发白帝城》等,这些作品在中国文学史上占有重要地位。李白的一生充满了传奇色彩,他曾游历过许多地方,与当时的文人墨客交往甚广,他的诗歌也深受人们的喜爱。然而,他的生活并不平稳,曾多次遭遇政治挫折,但他始终保持乐观豁达的态度。晚年,李白因病返回故乡,最终在安徽当涂去世。李白的诗歌对中国文学产生了深远影响,他的作品被后世广为传颂,成为中国古代诗歌的瑰宝。 ')

 我们还可以使用提示模板来指导它的响应。 提示模板用于将原始用户输入转换为更好的 LLM 输入。

from langchain_core.prompts import ChatPromptTemplate
prompt = ChatPromptTemplate.from_messages([("system", "你是世界级的历史人物研究人员,擅长用一句话输出回答。"),("user", "{input}")
])

现在,我们可以将它们组合成一个简单的 LLM 链:

chain = prompt | llm

 我们现在可以调用它并提出相同的问题,理论上它应该输出一句介绍李白的话。

chain.invoke({"input": "请介绍一下李白?"})

输出:

AIMessage(content='李白,唐朝浪漫主义诗人,被誉为“诗仙”。 ')

模型的输出是一条消息。但是,使用字符串通常要方便得多。让我们添加一个简单的输出解析器,将聊天消息转换为字符串。

from langchain_core.output_parsers import StrOutputParseroutput_parser = StrOutputParser()

现在,我们可以将其添加到上一个链中:

chain = prompt | llm | output_parser

 我们现在可以调用它并提出相同的问题。答案现在将是一个字符串(而不是 AIMessage)

输出:

李白,唐朝浪漫主义诗人,被誉为“诗仙”。 

 总结

至此,我们就学会了LangChain中所谓的“Chain”的基本使用。既然是基本使用,肯定也有高级用法,甚至我们可以自己“自定义Chain”来处理我们逻辑。具体怎么使用,请关注后续文章更新。

Peace Guys

这篇关于【可能是全网最丝滑的LangChain教程】三、快速入门LLMChain的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/819625

相关文章

Python pandas库自学超详细教程

《Pythonpandas库自学超详细教程》文章介绍了Pandas库的基本功能、安装方法及核心操作,涵盖数据导入(CSV/Excel等)、数据结构(Series、DataFrame)、数据清洗、转换... 目录一、什么是Pandas库(1)、Pandas 应用(2)、Pandas 功能(3)、数据结构二、安

Spring WebClient从入门到精通

《SpringWebClient从入门到精通》本文详解SpringWebClient非阻塞响应式特性及优势,涵盖核心API、实战应用与性能优化,对比RestTemplate,为微服务通信提供高效解决... 目录一、WebClient 概述1.1 为什么选择 WebClient?1.2 WebClient 与

2025版mysql8.0.41 winx64 手动安装详细教程

《2025版mysql8.0.41winx64手动安装详细教程》本文指导Windows系统下MySQL安装配置,包含解压、设置环境变量、my.ini配置、初始化密码获取、服务安装与手动启动等步骤,... 目录一、下载安装包二、配置环境变量三、安装配置四、启动 mysql 服务,修改密码一、下载安装包安装地

电脑提示d3dx11_43.dll缺失怎么办? DLL文件丢失的多种修复教程

《电脑提示d3dx11_43.dll缺失怎么办?DLL文件丢失的多种修复教程》在使用电脑玩游戏或运行某些图形处理软件时,有时会遇到系统提示“d3dx11_43.dll缺失”的错误,下面我们就来分享超... 在计算机使用过程中,我们可能会遇到一些错误提示,其中之一就是缺失某个dll文件。其中,d3dx11_4

Linux下在线安装启动VNC教程

《Linux下在线安装启动VNC教程》本文指导在CentOS7上在线安装VNC,包含安装、配置密码、启动/停止、清理重启步骤及注意事项,强调需安装VNC桌面以避免黑屏,并解决端口冲突和目录权限问题... 目录描述安装VNC安装 VNC 桌面可能遇到的问题总结描js述linux中的VNC就类似于Window

Go语言编译环境设置教程

《Go语言编译环境设置教程》Go语言支持高并发(goroutine)、自动垃圾回收,编译为跨平台二进制文件,云原生兼容且社区活跃,开发便捷,内置测试与vet工具辅助检测错误,依赖模块化管理,提升开发效... 目录Go语言优势下载 Go  配置编译环境配置 GOPROXYIDE 设置(VS Code)一些基本

Spring Boot 与微服务入门实战详细总结

《SpringBoot与微服务入门实战详细总结》本文讲解SpringBoot框架的核心特性如快速构建、自动配置、零XML与微服务架构的定义、演进及优缺点,涵盖开发环境准备和HelloWorld实战... 目录一、Spring Boot 核心概述二、微服务架构详解1. 微服务的定义与演进2. 微服务的优缺点三

从入门到精通详解LangChain加载HTML内容的全攻略

《从入门到精通详解LangChain加载HTML内容的全攻略》这篇文章主要为大家详细介绍了如何用LangChain优雅地处理HTML内容,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录引言:当大语言模型遇见html一、HTML加载器为什么需要专门的HTML加载器核心加载器对比表二

从入门到进阶讲解Python自动化Playwright实战指南

《从入门到进阶讲解Python自动化Playwright实战指南》Playwright是针对Python语言的纯自动化工具,它可以通过单个API自动执行Chromium,Firefox和WebKit... 目录Playwright 简介核心优势安装步骤观点与案例结合Playwright 核心功能从零开始学习

Windows环境下解决Matplotlib中文字体显示问题的详细教程

《Windows环境下解决Matplotlib中文字体显示问题的详细教程》本文详细介绍了在Windows下解决Matplotlib中文显示问题的方法,包括安装字体、更新缓存、配置文件设置及编码調整,并... 目录引言问题分析解决方案详解1. 检查系统已安装字体2. 手动添加中文字体(以SimHei为例)步骤