首页 > 其他分享 >langchain学习之agent

langchain学习之agent

时间:2024-07-05 16:59:27浏览次数:16  
标签:python langchain 学习 agent import 工具 model

系列文章目录

第一部分 langchain入门以及prompt、解析器使用

第二部分langchain学习之memory机制

第三部分langchain学习之chain机制


文章目录


前言

LangChain 的代理(Agents)是一个强大的工具,可以将语言模型与外部工具结合起来,以便在处理复杂任务时提供更丰富的功能。


一、导入需要的库

有些库会更新,如用不了在langchain查找导入就行
# from langchain.agents.agent_toolkits import create_python_agent  # 移走了
# from langchain.tools.python.tool import PythonREPLTool           # 移走了
# from langchain.python import PythonREPL                          # 移走了
from langchain_experimental.agents.agent_toolkits import create_python_agent
from langchain_experimental.tools.python.tool import PythonREPLTool
from langchain.agents import load_tools, initialize_agent, AgentType
from langchain_experimental.utilities import PythonREPL
from langchain_wenxin.chat_models import ChatWenxin

二、准备模型

创建LLMChain的大模型,这里我们用的是文心大模型
WENXIN_APP_Key = "xxx"
WENXIN_APP_SECRET = "xxx"

model = ChatWenxin(
    temperature=0.9,
    model="ernie-bot-turbo",
    baidu_api_key = WENXIN_APP_Key,
    baidu_secret_key = WENXIN_APP_SECRET,
    verbose=True, # 
    )

三、使用网上的工具

这里使用llm-math和wikipedia维基百科,如果输入的语句没用到这两个工具可以加前缀使用xx工具来使用,或者直接使用大模型来识别。
!pip install -q wikipedia
#加载两个工具
tools = load_tools(['llm-math','wikipedia'],llm=model)agent = initialize_agent(
        tools,
        model,
        agent=AgentType.CHAT_ZERO_SHOT_REACT_DESCRIPTION,
        handle_parsing_errors=True,  #遇见了错误,传回model进行处理
        verbose=True
)
#数学
agent('what is the answer about 30 + 2')
#wikipedia维基百科
question = '能在wikipedia上看看中国的历史有多少年了'
res = agent(question)

四、代理写代码

使用PythonREPLTool可以实现写代码,或者直接使用大模型写。
agent = create_python_agent(
        model,
        tool=PythonREPLTool(),
        verbose=True
)
agent.run('写一个python代码,关于a=3,b=4,c=a+b的')

结果如图所示:
在这里插入图片描述

五、自定义写方法

使用@tool可以自定义,这里演示的是求当天日期。
#自定义
from langchain.agents import tool  #可以应用任何函数,将其转换成langchain使用的工具
from datetime import date

#代理也能把''信息看懂来识别这个函数干嘛的
@tool  
def time(text:str)-> str:
    '不用输入数据,返回当天日期'
    return str(date.today())

agent = initialize_agent(
        tools+[time],
        model,
        agent=AgentType.CHAT_ZERO_SHOT_REACT_DESCRIPTION,
        handle_parsing_errors=True,  #遇见了错误,传回model进行处理
        verbose=True
)
agent.run('使用time工具,告诉我今天的日期')

结果如图所示:

在这里插入图片描述


总结

通过组合多个工具,代理可以处理更复杂的任务。例如,除了搜索工具,还可以定义计算、翻译等工具,代理可以根据查询自动选择和调用这些工具。
LangChain 代理是一个非常灵活和强大的工具,通过定义和组合不同的工具,可以处理多种复杂的任务。代理可以根据用户的输入自动选择和调用适当的工具,从而提供丰富的功能和更好的用户体验。

标签:python,langchain,学习,agent,import,工具,model
From: https://blog.csdn.net/zc1226/article/details/140117887

相关文章

  • 还在为如何学Python而犯难吗?在这里分享下最全的Python学习路线!
    先是Python基础知识的看完基础的,那就来进阶的,前面的是入门,现在的也就是作为一个程序员的基础最后在来个爬虫的觉得有用的朋友,记得点赞哟,如果觉得还看得不过瘾,可以私信我,我这里有Python爬虫系统教学的免费直播观看名额或者还想看其他知识点的,可以在下面留言。......
  • Python学习篇:流程控制详细介绍(四)
    目录1前言2条件判断2.1基本语法2.2使用示例2.3注意事项3循环3.1for循环3.2while循环3.3循环控制语句 4异常处理 4.1基本语法4.2使用示例 4.3注意事项 1前言Python中的流程控制是编程中非常重要的一部分,它允许你根据条件、循环或其他因素来......
  • SpringCloud Alibaba Nacos 配置动态更新源码学习总结(二)
    书接上回SpringCloudAlibabaNacos配置动态更新源码学习总结主要看了SpringCloudAlibabNacos的动态配置原理,依赖于部分的springcloud的组件,比如org.springframework.cloud.bootstrap.BootstrapConfiguration,在启动之前进行干预项目启动,那么在之前springboot项目怎么实现的......
  • C#学习—集合与运算符
    目录1.实现通用打印泛型类,可以打印各个集合中的值,方便调试2. 计算遍历目录的耗时        2.1使用Stopwatch                2.2 使用DateTime和DateTime.Now或DateTime.UtcNow3.有哪些算术运算符,有哪些关系运算符,有哪些逻辑运算符,有哪些位......
  • C#的学习基础篇(3)——字符串的常见方法
    目录1.字符串的常见方法    1.1Format         1.2IsNullOrEmpty        1.3IsNullOrWhiteSpace        1.4Equals        1.5Contains        1.6Length        1.7 Substring        1.8......
  • C#的学习(4)
    1.整数转换,整数和字符串,字符串和整数之间的转换怎么实现?        1.1整数转字符串    intn=123;//第一种方式:任何类型和字符串连接,结果都是字符串Console.WriteLine(""+n);//第二种方式:通过Convert.ToString()方法进行转换Console.WriteLine(C......
  • 《python机器学习从入门到高级》
    《python机器学习从入门到高级》分类算法:引言我们在之前的文章已经介绍了机器学习的一些基础概念,当拿到一个数据之后如何处理、如何评估一个模型、以及如何对模型调参等。接下来,我们正式开始学习如何实现机器学习的一些算法。回归和分类是机器学习的两大最基本的问题,对于......
  • 网络开始学习
    今天是2024年7月5日,我已经快30的人了,今日重拾电脑,开始学习web安全;这个想法想了很久了,什么时候开始学习都不算晚。准备阶段了解网络通信协议和网络知识了解系统Linux,Windows的命令和服务系统了解docker,k8s了解中间件nginx,iis,apach了解html,css,javascapit,xml,php语言漏洞......
  • 全网最全网络安全入门指南(2024版)零基础可学_网络安全学习指南
    下一个十年的饭碗就是它了!据悉,2019年9月27日,工信部发布**《关于促进网络安全产业发展的指导意见(征求意见稿)》,明确提出2025年培育形成一批营收20亿元以上的网络安全企业,网络安全产业规模超过2000亿元的发展目标;据市场调研机构Gartner预测,我国网络安全预计将以......
  • 深度学习 - 稠密张量与稀疏张量的区别
    稠密张量与稀疏张量的区别在机器学习和数据处理领域,张量是处理和存储多维数据的核心结构。张量主要分为两类:稠密张量(DenseTensor)和稀疏张量(SparseTensor)。它们在数据存储和计算效率方面有显著的区别。稠密张量定义:稠密张量是最常见的张量形式,每个元素都显式地存储在内......