LangChain搭建Agent | 使用initialize_agent

在这里插入图片描述

1.create_tool_calling_agent

构建agent,这个方法是过时了吗?官方文档也没更新,官方示例也运行错误

from langchain_core.prompts import ChatPromptTemplate
from langchain_core.runnables import ConfigurableField
from langchain_core.tools import tool
from langchain.agents import create_tool_calling_agent, AgentExecutor

@tool
def multiply(x: float, y: float) -> float:
    """将 'x' 乘以 'y'。"""
    return x * y

@tool
def exponentiate(x: float, y: float) -> float:
    """将 'x' 乘以 'y' 的指数。"""
    return x**y

@tool
def add(x: float, y: float) -> float:
    """将 'x' 和 'y' 相加。"""
    return x + y

prompt = ChatPromptTemplate.from_messages([
    ("system", "你是一个有用的助手"), 
    ("human", "{input}"), 
    ("placeholder", "{agent_scratchpad}"),
])

tools = [multiply, exponentiate, add]

# llm = ChatZhipuAI(
#     model="glm-4",
#     temperature=0.5,
# )

agent = create_tool_calling_agent(llm, tools, prompt)
agent_executor = AgentExecutor(agent=agent, tools=tools, verbose=True)

agent_executor.invoke({"input": "3 加上 5 的 2.743 次方是多少。还有 17.24 减去 918.1241 是多少。"})

llm就按照这篇文章配置任意一个
LangChain连接国内大模型测试|智谱ai、讯飞星火、通义千问
在这里插入图片描述
有路过的大佬指点一二么?

2.initialize_agent

from langchain.tools import BaseTool
from langchain.agents import initialize_agent
from langchain.agents import AgentType
import os
from langchain_community.chat_models import ChatZhipuAI
os.environ["ZHIPUAI_API_KEY"] = 'xxx'
llm = ChatZhipuAI(
    model="glm-4",
    temperature=0.5,
)
class Multiply(BaseTool):
    name = "乘法"
    description = "只做乘法运算"
 
    def _run(self, input: str) -> str:
        # Your logic here
        return "乘法计算完毕"
 
    def _arun(self, query: str):
        raise NotImplementedError("This tool does not support async")
class Add(BaseTool):
    name = "加法"
    description = "只做加法运算"
 
    def _run(self, input: str) -> str:
        # Your logic here
        return "加法计算完毕"
 
    def _arun(self, query: str):
        raise NotImplementedError("This tool does not support async")
class Exponentiate(BaseTool):
    name = "幂运算"
    description = "只做幂运算"
 
    def _run(self, input: str) -> str:
        # Your logic here
        return "幂运算计算完毕"
 
    def _arun(self, query: str):
        raise NotImplementedError("This tool does not support async")

tools = [Multiply(),Add(),Exponentiate()]

# agent = initialize_agent(tools, agent=AgentType.DEFAULT)
agent = initialize_agent(tools, 
                         llm, 
                         verbose=True)
agent("3乘以6,加上 5 的 4 次方是多少?")

在这里插入图片描述
就说清不清楚吧!

{'input': '3乘以6,加上 5 的 4 次方是多少?', 'output': '643'}

【官方文档】

  • initialize_agent 在这里插入图片描述
  • create_tool_calling_agent
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/631810.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

医院污水一体化处理设备有哪些

医院污水一体化处理设备通常包括以下几个主要组件: 预处理单元:用于去除污水中的固体悬浮物、颗粒物、油脂等,常见的预处理单元包括格栅、沉砂池、油水分离器等。生物处理单元:用于降解有机物质和去除氮、磷等营养物质。常见的生物…

基坑监测识别摄像机

基坑是建筑施工中的一个重要环节,它对整个建筑工程的安全和稳定性起着至关重要的作用。为了监测基坑的状态和确保施工的安全进行,基坑监测识别摄像机被广泛应用于建筑工程中。这种摄像机可以实时监测基坑施工的情况,识别可能存在的问题并提供…

如何在Spring启动的时候执行一些操作

如何在Spring启动的时候执行一些操作 在Spring启动的时候执行一些操作有多种方式。你可以通过实现ApplicationRunner或者CommandLineRunner接口,在Spring Boot应用程序启动后执行特定操作。另外,你也可以使用PostConstruct注解,在Spring Bea…

圆片/圆盘测厚设备 HW01-SG系列单点测厚仪

关键字:圆片测厚仪圆盘测厚仪, 圆形测厚仪, 单点测厚仪, 汽车工件测厚仪, 产品简介: 测厚仪采用上下两个对射的激光位移传感器测量圆盘状物体边缘的厚度。圆盘放置在由步进电机驱动的托盘上,点按测量按钮托盘旋转一周,可测量被测物整个圆周上…

立即注册 | 线上讲座:基于 NGINX 为现代应用构筑三大安全防线

原文作者:NGINX 原文链接:立即注册 | 线上讲座:基于 NGINX 为现代应用构筑三大安全防线 转载来源:NGINX 开源社区 NGINX 唯一中文官方社区 ,尽在 nginx.org.cn 基本信息 课程主题:基于 NGINX 为现代应用构…

大模型算法(零) - Transformer中的细节与实现

讲transformer的文章已经铺天盖地了,但是大部分都是从原理的角度出发的文章,原理与实现之间的这部分讲解的较少,想要了解实现细节,还是要去看代码才行。记录一下自己学习过程中遇见的细节问题和实现问题。 Transformer整体架构 图…

Android面试题之Kotlin的几种常见的类

本文首发于公众号“AntDream”,欢迎微信搜索“AntDream”或扫描文章底部二维码关注,和我一起每天进步一点点 初始化的顺序 主构造函数里声明的属性 类级别的属性赋值 init初始化块里的属性赋值和函数调用 次构造函数里的属性赋值和函数调用 延迟初始…

Chirpstack配合网关与lora设备通信

之前的章节讲过chirpstack的下载和安装部署,这节算是后续,利用chirpstack和lora设备做通信, 首先开启chirpstack,并登录,登录完成之后需要添加网关和设备,添加网关也就是Gatway,所以点开左侧的G…

搜索二维矩阵 - LeetCode 热题 64

大家好!我是曾续缘🧡 今天是《LeetCode 热题 100》系列 发车第 64 天 二分查找第 2 题 ❤️点赞 👍 收藏 ⭐再看,养成习惯 搜索二维矩阵 给你一个满足下述两条属性的 m x n 整数矩阵: 每行中的整数从左到右按非严格递增…

激光切割机哪家可靠?

激光切割机哪家可靠?市面上的激光切割机牌子很多,具体什么牌子好,建议综合考虑一下企业成立时间、技术实力、设备工艺做工、售后服务,一般成立时间长,设备装配经验丰富,售后服务完善的企业,能够…

深度学习之卷积神经网络理论基础

深度学习之卷积神经网络理论基础 卷积层的操作(Convolutional layer) 在提出卷积层的概念之前首先引入图像识别的特点 图像识别的特点 特征具有局部性:老虎重要特征“王字”仅出现在头部区域特征可能出现在任何位置下采样图像&#xff0c…

银行业数据分析专家视角:业务场景中的深度解析与应用

一、引言 在数字化和大数据时代的浪潮下,银行业正经历着前所未有的变革。作为数据分析领域的资深专家,我深知数据分析在银行业务发展中的重要性和价值。本文将从银行业数据分析的角度出发,深入探讨相关业务场景下的数据分析应用,…

Linux 操作系统MySQL 数据库指令

1.MySQL 数据库 数据库是“按照数据结构来组织、 存储和管理数据的仓库”。 是一个长期存储在计算机内的、 有组织的、 可共享的、 统一管理的大量数据的集合。 它的存储空间很大, 可以存放百万条、 千万条、 上亿条数据。 但是数据库并不是随意地将数据进行…

[vue] nvm use时报错 exit status 1:一堆乱码,exit status 5

报错exit status 5:�ܾ����ʡ� 原因:因为当前命令提示符窗口是user权限, 解决:cmd使用管理员方式打开就可以 参考: vm use时报错 exit status 1…

24长三角A题思路+分析选题

需要资料的宝子们可以进企鹅获取 A题 问题1:西湖游船上掉落华为 mate 60 pro 手机 1. 手机掉落范围分析 物品特征:华为 mate 60 pro 手机的尺寸、重量、形状等特性。静水假设:西湖水面平静,不考虑水流影响。掉落位置&#xff…

Linux基础之进程的优先级

目录 一、进程优先级的概念 二、进程优先级的查看 三、怎么修改进程优先级 四、进程饥饿 一、进程优先级的概念 cpu资源分配的先后顺序,就是指进程的优先权(priority)。优先权高的进程有优先执行权利。配置进程优先权对多任务环境的linu…

从零入门激光SLAM(十七)——SLAM中为什么用ESKF误差卡尔曼滤波器

上一节,介绍了卡尔曼滤波的基本原理,但在SLAM中却使用ESKF,让我们一起看看具体的原因是什么吧 一、误差卡尔曼滤波器ESKF(Error State Kalman Filter) 1.1动机 在常规的卡尔曼滤波器中,需要假定系统的状态服从高斯分布&#xf…

语法分析-文法

如果对于一部文法中,存在至少一个句子有两个或者两个以上的语法树则该文法是二义性的。 我们可以以上面的例子进行解释,对于第棵个语法树,我们可以看到是先进行了加法运算再进行的乘法运算,因为需要先把EE作为整体运算完后再成为E…

github新手用法

目录 1,github账号注册2,github登录3,新建一个仓库4,往仓库里面写入东西或者上传东西5, 下载Git软件并安装6 ,获取ssh密钥7, 绑定ssh密钥8, 测试本地和github是否联通9,从…

研发数据在企业内部多重传输场景,怎样才能有效响应?

研发数据因行业不同包含的种类各异,主要有设计和仿真数据、研发投入、进展和成果数据、生产过程数据、维护和保养数据、质量数据等,企业研发数据对企业而言具有至关重要的意义。特别是以研发为核心业务及定位的企业, 如半导体 IC 设计、生物制…