当前位置: 首页 > article >正文

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 + yprompt = 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 是多少。"})

在这里插入图片描述
有路过的大佬指点一二么?

2.【解决方案】用initialize_agent

llm就按照这篇文章配置任意一个
LangChain连接国内大模型测试|智谱ai、讯飞星火、通义千问

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 herereturn "乘法计算完毕"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 herereturn "加法计算完毕"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 herereturn "幂运算计算完毕"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
    在这里插入图片描述
http://www.lryc.cn/news/2416836.html

相关文章:

  • Android学习笔记(十) 主题样式的设置
  • 渗透中寻找突破口的那些事
  • 解决QQ在线客服代码提示对方“QQ在线状态”服务尚未启用
  • VM12即VMware Workstation 12 序列号
  • linux修改vcf编码格式,飞翔vcf文件编码转换
  • [转]灰度共生矩阵(超简单理解)
  • web网页死链接检查工具——“Scrutiny 8”
  • 修改framework-res.apk的内容
  • u盘安装ubuntu 11.10的惨痛经历
  • webim--web端即时通讯的实现
  • 推荐两个软件下载网站:多特和绿盟
  • Spring源码中的工具类
  • python爬取discuz_爬虫技术实践(二)Discuz! 按板块爬取帖子内容实战
  • 一文看懂第三代E/E架构。
  • The world 浏览器 ,windows中的快捷操作
  • Response.Cookies和Request.Cookies的Cookies
  • 2014 360校园招聘技术类笔试题
  • 【Ubuntu安装QQ】
  • MikroTik RouterOS 5.x使用HunterTik 2.3.1进行破解
  • Android学习路线指南
  • 软件开发中的热更新概述
  • Doctype是什么与浏览器模式详解(标准模式混杂模式)
  • window安全小知识1——autorun.inf相关知识
  • VC++编程技巧83例
  • 【操作系统】知识梳理(六)输入输出系统
  • printf大部分参数详解
  • symfony快速构建restfull api--api-platform初体验(快速上手笔记)
  • 清除电脑各种使用记录不留痕迹,保护你的隐私!
  • jquery插件treeTable
  • 在Node.js版本v12.16.2中,`crypto`模块提供了加密功能的实现接口