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

系列文章地址

【可能是全网最丝滑的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 ChatOpenAI

llm = ChatOpenAI()

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

from langchain_openai import ChatOpenAI

llm = 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 StrOutputParser

output_parser = StrOutputParser()

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

chain = prompt | llm | output_parser

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

输出:

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

 总结

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

Peace Guys

  • 6
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值