LLM之LangChain(二)| LangChain中的Agent

8 篇文章 5 订阅

       在本文中,我们将讨论LangChain中的Agent及其各种类型。但在深入研究Agent之前,让我们先了解一下什么是LangChain和Agent。

一、什么是LangChain?

       LangChain是一种功能强大的自动化工具,可用于各种任务,它提供了可用于创建agent的各种工具。

Agents:agent是一种旨在与现实世界交互的软件程序。LangChain提供不同类型的代理商。

Tools:LangChain提供有助于开发agent的工具。

要了解更多关于LangChain的信息,可以参考:https://www.c-sharpcorner.com/article/getting-started-with-langchain/

二、什么是Agent?

       LangChain中的Agent是为了与现实世界互动而构建的,它们可以自动执行任务并参与现实世界的场景。LangChain代理可用于各种任务,如回答问题、生成文本、翻译语言、总结文本等。

三、LangChain中的代理类型

       LangChain中的Agent使用LLM(语言学习模型)来确定要采取的操作以及顺序。

3.1 Zero-shot ReAct

       Zero-shot ReAct Agent是一种语言生成模型,即使不经过特定数据的训练,也可以创建真实的上下文。它可以用于各种任务,如生成创造性的文本格式、语言翻译和生成不同类型的创造性内容。

from langchain.agents import initialize_agent, load_tools, AgentTypefrom langchain.llms import OpenAIllm = OpenAI(openai_api_key="your_api_key")tools = load_tools(["wikipedia", "llm-math"], llm=llm)agent = initialize_agent(tools , llm, agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION, verbose=True)output_1=agent.run("4 + 5 is ")output_2=agent.run("when you add 4  and 5 the result comes 10.")print(output_1)print(output_2)

       在上面的代码中,导入了LangChain库,并通过设置OpenAI API Key来初始化OpenAI语言模型(LLM)。该代码使用维基百科和数学信息工具设置AI代理,将代理类型指定为ZERO_SHOT_REACT_DESCRIPTION代理。然后,代码提供两个提示来演示与代理的一次性交互。

3.2 Conversational ReAct

       此代理是为在会话设置中使用而设计的,它结合了React框架来确定使用哪个工具,并利用内存来记住以前的对话交互。

from langchain.agents import initialize_agent, load_toolsfrom langchain.llms import OpenAIfrom langchain.memory import ConversationBufferMemoryllm = OpenAI(openai_api_key="...")tools = load_tools(["llm-math"],  llm=llm)memory = ConversationBufferMemory(memory_key="chat_history")conversational_agent = initialize_agent(    agent="conversational-react-description",     tools=tools,     llm=llm,    verbose=True,    max_iterations=3,    memory=memory,)output_1=conversational_agent.run("when you add 4  and 5 the result comes 10.")output_2=conversational_agent.run("4 + 5 is ")print(output_1)print(output_2)

      上面的代码通过导入必要的模块、设置了OpenAI LLM API Key、加载LLM-math等特定工具进行数学运算以及创建会话缓冲内存来演示LangChain库的使用。然后使用指定的代理类型、工具、LLM和其他参数初始化会话代理。该代码展示了与代理交互的两个提示。

3.3 ReAct Docstore

       该代理使用React框架与文档存储进行通信。它要求提供名称相同的“搜索”工具和“查找”工具。“搜索”工具用于搜索文档,而“查找”工具则在最近找到的文档中查找术语。

from langchain.agents import initialize_agent, Toolfrom langchain.llms import OpenAIfrom langchain import Wikipediafrom langchain.agents.react.base import DocstoreExplorerllm = OpenAI(openai_api_key="...")docstore = DocstoreExplorer(Wikipedia())tools=[    Tool(name="Search", func=docstore.search, description="useful for when you need to ask with search"),    Tool(name="Lookup", func=docstore.lookup, description="useful for when you need to ask with lookup")]react_agent= initialize_agent(tools, llm, agent="react-docstore")print(react_agent.run("Full name of Narendra Modi is Narendra Damodardas Modi?")) # look on the keywords then go for searchprint(react_agent.run("Full name of Narendra Modi is Narendra Damodardas Modi."))

        上面的代码从LangChain导入必要的模块,并使用API Key初始化OpenAI语言模型(LLM)。它建立了一个以维基百科为源的文档存储资源管理器。定义了两个工具,“搜索”和“查找”,其中“搜索”工具搜索文档,“查找”工具执行术语查找。

3.4 Self-ask with Search

        此代理使用中间回答工具进行自我提问。

from langchain.agents import initialize_agent, Toolfrom langchain.llms import OpenAIfrom langchain import Wikipediallm = OpenAI(openai_api_key="...")wikipedia = Wikipedia()tools = [    Tool(        name="Intermediate Answer",        func=wikipedia.search,        description='wikipedia search'    )]agent = initialize_agent(    tools=tools,    llm=llm,    agent="self-ask-with-search",    verbose=True,)print(agent.run("what is the capital of Japan?"))

       上述代码从LangChain库导入必要的模块,包括代理和语言模型,它设置了一个具有特定代理配置的会话代理,称为“self-ask-with-search”。该代理使用“Intermediate Answer”工具来执行维基百科搜索。

四、常见问题FAQ

问:在LangChain中,Chain和Agent有什么区别?

答:LangChain中Agent和Chain之间的主要区别在于,Agent使用语言模型来确定其动作,而Chain是由开发人员设置的预定义动作序列。Agent使用语言模型根据用户输入和可用工具生成响应,而Chain遵循固定的输入/输出过程。

问:Verbose()做什么?

答:verbose选项可以在屏幕上显示详细的运行信息。

问:LangChain的温度是多少?

答:默认情况下,LangChain聊天模型的创建温度值为0.7。温度参数控制输出的随机性。较高的值(如0.7)使输出更随机,而较低的值(例如0.2)使输出更有重点和确定性。

参考文献:

[1] https://bakshiharsh55.medium.com/agents-in-langchain-3eb92f206a5f

  • 26
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wshzd

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值