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

本文介绍了LangChain的基本概念,包括安装、使用OpenAIAPI集成、构建应用实例(如介绍李白的简单链和提示模板的应用)。作者展示了如何通过LangChain实现基于API的LLM交互,以及如何处理输出结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

系列文章地址

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

### 关于 LangChain入门教程 #### 了解 LangChain 基本概念和核心功能 LangChain 是一种用于构建语言模型应用的强大框架,旨在简化开发者创建复杂自然语言处理系统的流程。该框架不仅提供了多种预训练的大规模语言模型(LLMs),还支持定制化的提示模板(Prompt Templates)、代理(Agents)、记忆(Memory)、索引(Indexes)以及链条(Chains)。这些特性使得开发人员能够更灵活地设计对话系统和其他基于文本的应用程序[^1]。 #### 组件详解 - **Models**: 支持不同种类的语言模型,如 ChatGPT、ChatGLM 和 T5 等。 - **Prompts**: 提供管理和自定义提示的功能,有助于优化与 LLMs 的交互效果。 - **Agents**: 负责决策并执行特定任务,允许大型语言模型访问外部工具和服务。 - **Memory**: 记录会话历史记录,保持上下文连贯性。 - **Indexes**: 对文档进行结构化处理,便于后续查询操作。 - **Chains**: 定义了一系列组件之间的调用顺序,形成完整的业务逻辑流[^4]。 #### 实际应用场景展示——简单问答系统 为了更好地理解如何利用 LangChain 创建实际项目,在此提供了一个简易版的问答系统实例: ```python from langchain import LangChain, PromptTemplate, LLMMemory, SimpleIndexCreator, AgentExecutor import json # 加载配置文件中的参数设置 with open('config.json', 'r') as f: config = json.load(f) # 初始化内存对象来存储聊天记录 memory = LLMMemory() # 设置索引来加速检索过程 index_creator = SimpleIndexCreator() indexes = index_creator.create_indexes(config['documents']) # 配置提示模板以指导模型生成合适的回复 prompt_template = PromptTemplate( input_variables=["history", "input"], template="Based on the following conversation history:\n{history}\nThe user asks: {input}" ) # 构造Agent执行器来进行具体的操作 agent_executor = AgentExecutor.from_llm_and_tools(llm=config['llm'], tools=[...], memory=memory) while True: question = input("Ask a question:") # 获取当前对话的历史作为背景信息的一部分 context = agent_executor.memory.get_context(inputs={"question": question}) # 将问题传递给Agent执行器获取答案 response = agent_executor.run(prompt=prompt_template.format(history=context["history"], input=question)) print(response) ``` 这段代码片段展示了如何结合多个 LangChain 组件建立一个可以持续互动的基础架构,并通过循环读取用户的输入来维持整个交流的过程[^3]。
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值