快速入门LangChain的六大核心模块之Agents

Agents的核心思想是使用LLM来选择要采取的一系列操作。在Cahin中,一系列操作是硬编码的(在代码中)。在agents中,语言模型用作推理引擎,以确定要执行的操作以及顺序。

关键组件

1、工具 (tools):负责决定下一步要采取的步骤的类,由语言模型和提示提供支持。这个prompt可以包括代理的个性(有助于使其以某种方式做出反应)、代理的背景上下文(有助于为其提供有关要求它执行的任务类型的更多上下文)、提示策略以调用更好的推理。

2、代理 (agents):介绍不同代理类型的概述。

3、工具包 (toolkits):通代理可以访问的工具集比单个工具更重要。为此,LangChain提供了工具包的概念——实现特定目标所需的工具组。工具包中通常有大约 3-5 个工具。

准备工作

安装依赖

pip install langchain
pip install openai

设置密钥

import os
import openai os.environ["OPENAI_API_KEY"] = 'your_openai_key'
os.environ['OPENAI_API_BASE'] = ''

导入库

from langchain.chat_models import ChatOpenAI
from langchain.agents import tool
from langchain.schema import SystemMessage
from langchain.ag
### LangChain六大核心模块及其功能 #### 1. **模型输入输出 (Model I/O)** 此模块负责处理语言模型的输入和输出。它提供了灵活的方式来准备数据供模型消费,并解析模型返回的结果以便进一步使用[^2]。 ```python from langchain.prompts import PromptTemplate template = "{question}" prompt = PromptTemplate(template=template, input_variables=["question"]) print(prompt.format(question="What is the capital of France?")) ``` --- #### 2. **数据连接 (Data Connection)** 该模块用于将外部数据源集成到工作流中,例如数据库、文件系统或其他API服务。通过这些连接器,可以轻松加载结构化或非结构化数据作为模型的一部分输入。 ```python from langchain.document_loaders import TextLoader loader = TextLoader("data.txt") documents = loader.load() ``` --- #### 3. **链 (Chains)** 链条表示一系列按特定顺序排列的操作序列。与代理不同的是,在链条中,这些操作是由开发者预先定义好的固定流程[^4]。这使得链条非常适合解决那些具有明确步骤的任务。 ```python from langchain.chains import LLMChain from langchain.llms import OpenAI llm = OpenAI(temperature=0.9) chain = LLMChain(llm=llm, prompt=prompt) response = chain.run({"question": "Who won the world series in 2020?"}) ``` --- #### 4. **记忆 (Memory)** 记忆模块允许应用程序保留上下文信息,从而实现更加连贯和个性化的对话体验。具体来说,它可以存储先前的交互记录并在后续请求时重新利用这些历史数据[^5]。 ```python from langchain.memory import ConversationBufferMemory memory = ConversationBufferMemory(memory_key="chat_history", return_messages=True) ``` --- #### 5. **代理 (Agents)** 代理人是一种高级形式的链条,其中每一步骤并非完全由程序员指定而是交给了大型语言模型自行决定如何行动。这种灵活性让代理人特别适合应对动态变化环境下的挑战。 ```python from langchain.agents import initialize_agent, Tool from langchain.tools import BaseTool tools = [ Tool( name="Search", func=search_tool, description="useful for when you need to answer questions about current events" ) ] agent_chain = initialize_agent(tools, llm, agent="zero-shot-react-description", verbose=True) result = agent_chain.run(input="How many people live in Shanghai?") ``` --- #### 6. **回调 (Callbacks)** 最后这个部分涉及监控整个运行过程中的事件通知机制。借助于回调函数的支持,我们可以跟踪每次调用的状态更新情况或者捕获异常错误等等有用的信息。 ```python from langchain.callbacks.base import CallbackManager from langchain.callbacks.streaming_stdout import StreamingStdOutCallbackHandler callback_manager = CallbackManager([StreamingStdOutCallbackHandler()]) llm_with_callback = OpenAI(callback_manager=callback_manager, temperature=0) ``` ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值