用Langchain创建一个可以总结网页内容的Agent

LangChain 0.3实战:手把手教你用create_tool_calling_agent,把ChatGPT变成你的私人业务自动化助手 本文详细介绍了如何使用LangChain 0.3的`create_tool_calling_agent`功能构建智能业务自动化助手。通过实战案例,展示了如何设计工具集、配置环境、处理复杂任务依赖关系,以及优化性能和安全防护,帮助开发者将ChatGPT转变为高效的私人业务自动化助手。 阅读详情

去年的时候我写过一篇关于OpenAi Function Call的实践文章,就是用Function Call的功能实现抓取并总结网页内容的功能,当时写了还算比较多的代码,最近在学习了LangChain的使用后,发现LangChain封装的很好了,同样的功能几乎不需要写太多的代码了。

接下来我们还是以抓取并总结网页内容的Agent为例,来看下使用LangChain如何实现类似的功能,当然你要看懂这篇文章,必须对LangChain有一定的了解,如果完全没有任何了解,建议先去看下LangChain官网的一些入门概念,废话不说我们直接开始。

网页加载工具定义

我们首先就是要定义个可以加载到网页内容的工具,这次我们直接使用LangChain提供好的WebBaseLoader。另外借助LangChain的装饰器@tool,我也仅需要正常写一个函数并表明出入参类型和功能即可,不用提供像之前那样复杂的函数定义schema。

代码语言:javascript

复制

@tool
def web_loader(url: str) -> str:
    """抓取url对应网页的内容"""
    loader = WebBaseLoader(url)
    docs = loader.load()
    return docs[0].page_content

创建llm并绑定工具

代码语言:javascript

复制

llm = ChatOpenAI(model="gpt-3.5-turbo", max_tokens=4096)
tools = [web_loader]
llm_with_tools = llm.bind_tools(tools)

llm我使用的是OpenAi的gpt3.5,你也可以使用其他模型,另外ChatOpenAI有很多其他参数可调,你可以按自己需求调整。这里最关键的一步,就是需要将llm和工具用bind_tools()绑定在一起,不绑定的话后续llm是不知道有哪些tool可以调用的。

创建prompt

有些同学说prompt不是就一句话的事吗,还需要单独写! 我开始也是随意创建了一个prompt,结果调用报错了。 原来带有函数调用Agent的prompt是有特殊要求的,其中除了要包含input之外,还需要包含agent_scratchpad占位符,agent_scratchpad的作用就是在prompt留出函数调用中间结果的位置:

代码语言:javascript

复制

prompt = ChatPromptTemplate.from_messages(
    [
        (
            "system",
            "你是一个擅长对长文做总结的智能助手,可以精确提炼出长文中的要点。注意,请使用markdown格式返回结果。",
        ),
        ("placeholder", "{chat_history}"),
        ("user", "{input}"),
        MessagesPlaceholder(variable_name="agent_scratchpad"),
    ]
)

创建Agent并执行

agent 可以直接调用LangChain提供的create_tool_calling_agent方法,创建。

代码语言:javascript

复制

agent = create_tool_calling_agent(llm_with_tools, tools, prompt)

agent创建好之后,必须创建agent执行器才可以执行,这里直接实例化AgentExecutor即可。

代码语言:javascript

复制

agent_executor = AgentExecutor(agent=agent, tools=tools, verbose=False)

直接invoke下就可以看到我们想要的结果了~~

代码语言:javascript

复制

agent_executor.invoke(
    {
        "input": "这个链接讲了什么内容? https://blog.youkuaiyun.com/xindoo/article/details/138356308?spm=1001.2014.3001.5501"
    }
)

代码语言:javascript

复制

{'input': '这个链接讲了什么内容? https://blog.youkuaiyun.com/xindoo/article/details/138356308?spm=1001.2014.3001.5501',
 'output': '这篇博文介绍了一个命令行工具ShellGPT,它是一个开源软件,可以帮助用户快速生成 shell 命令、代码片段和文档,无需再依赖外部资源(如 Google 搜索)。以下是该文章的主要内容:\n\n- ShellGPT的配置安装:支持 Linux、macOS、Windows 等操作系统,安装简单,只需使用pip安装即可。\n- 函数调用:ShellGPT允许执行系统中的函数,如播放音乐、打开网页或执行 shell 命令。提供了一些高级配置选项。\n- 角色管理:用户可以创建自定义角色,这些角色可以用来生成代码、执行 shell 命令或满足特定需求。用户可以使用命令指定特定的角色执行指令。\n- 聊天功能:用户可以和GPT进行聊天,支持单轮聊天和多轮聊天模式。\n- 写命令并执行:用户可以借助GPT的编码能力写脚本或命令,并执行。\n- 其他功能:文章提及了一些其他细节和功能,如如何通过 API从 0 到 1 构建本地 GPTs、GPT每日面试题等。\n\n总的来说,ShellGPT是一个实用的工具,可以帮助用户在命令行环境下更高效地生成命令和代码,同时还提供了一些高级功能和配置选项。'}

至此我们就完整的创建了一个可以总结网页内容的Agent。


​

如何学习大模型

现在社会上大模型越来越普及了,已经有很多人都想往这里面扎,但是却找不到适合的方法去学习。

作为一名资深码农,初入大模型时也吃了很多亏,踩了无数坑。现在我想把我的经验和知识分享给你们,帮助你们学习AI大模型,能够解决你们学习中的困难。

我已将重要的AI大模型资料包括市面上AI大模型各大白皮书、AGI大模型系统学习路线、AI大模型视频教程、实战学习,等录播视频免费分享出来,需要的小伙伴可以扫取。

一、AGI大模型系统学习路线

很多人学习大模型的时候没有方向,东学一点西学一点,像只无头苍蝇乱撞,我下面分享的这个学习路线希望能够帮助到你们学习AI大模型。

在这里插入图片描述

二、AI大模型视频教程

在这里插入图片描述

三、AI大模型各大学习书籍

在这里插入图片描述

四、AI大模型各大场景实战案例

在这里插入图片描述

五、结束语

学习AI大模型是当前科技发展的趋势,它不仅能够为我们提供更多的机会和挑战,还能够让我们更好地理解和应用人工智能技术。通过学习AI大模型,我们可以深入了解深度学习、神经网络等核心概念,并将其应用于自然语言处理、计算机视觉、语音识别等领域。同时,掌握AI大模型还能够为我们的职业发展增添竞争力,成为未来技术领域的领导者。

再者,学习AI大模型也能为我们自己创造更多的价值,提供更多的岗位以及副业创收,让自己的生活更上一层楼。

因此,学习AI大模型是一项有前景且值得投入的时间和精力的重要选择。

使用LangChain、LangGraph和LangSmith来创建AI Agent 阅读详情

相关推荐

【LangChain Agent 】详解,构建自主决策的 LLM 应用

LangChain是一个用于构建基于大语言模型(LLM)应用的强大开发框架,特别适合创建智能问答、聊天机器人、自动化助手等 AI 驱动的应用。🚀 核心功能链式组合(Chain)可以将多个模块(例如:Prompt、模型调用、解析器等)链接在一起,形成一条“处理链”。上下文记忆(Memory)能保存用户的对话历史,实现连续对话或任务跟踪。工具集成(Tools)集成搜索引擎、数据库、API 调用等外部工具,让语言模型更具执行力。Agent(智能体)支持。

博客虽小,世界尽在其中 1748

LangChain搭建Agent | 使用initialize_agent

构建agent,这个方法是过时了吗?官方文档也没更新,官方示例也运行错误llm就按照这篇文章配置任意一个。有路过的大佬指点一二么?

sinat_29950703的博客 3280

LangChain实战(十八):构建ReAct模式的网页内容摘要与分析Agent

本文介绍了如何基于LangChain的ReAct模式构建智能网页内容分析Agent,可自动提取网页核心内容、生成摘要并进行深度分析。文章首先阐述了ReAct模式原理(推理-行动-观察循环)和网页内容分析的五大挑战,包括内容提取、信息过滤等。随后详细说明了环境配置步骤,包括安装必要的Python库和设置API密钥。核心部分展示了一个WebContentExtractor类的实现,该类整合了newspaper3k和BeautifulSoup两种技术,通过多级内容提取策略(优先使用newspaper3k解析,失败

厚积薄发的博客 983

又一突破!跨模型的Function_Calling来了

大型语言模型(LLM)通过工具调用能够与外部数据源进行交互。这项技术让开发者能够利用LLM来获取、交互和操作外部资源(比如数据库、文件和API等)。

Y525698136的博客 981

langchain—创建Agent

自定义工具来构建Agent时,通常要定义好函数,再根据函数创建工具。可以回答用户的多个问题# 定义查询订单状态的函数return "订单 1024 的状态是:已发货,预计送达时间是 3-5 个工作日。else:return f"未找到订单 {order_id} 的信息,请检查订单号是否正确。# 定义退款政策说明函数return "我们的退款政策是:在购买后7天内可以申请全额退款,需提供购买凭证。# 创建自定义工具,如果不是内置工具则需要定义函数,且写成下面的形式。

2201_76050230的博客 1043

通过 AgentExecutor 封装 tools 至 Langchain Agent 及 Memory Agent 的使用 【Langchain Agent】

本文总结了如何使用 Langchain 的 AgentExecutor 封装 tools, 构造我们自己的 Agent, 然后通过 LLM 调用,或者通过 Agent 调用,最后总结了如何让我们的 Agent 带有记忆功能,可以保存历史对话记录,这里为了简单就没有使用实际的数据库,实际生产中还是要使用数据库去保存这些信息的,感兴趣的朋友可以尝试下。

奔跑的蜗牛的博客 3169

利用Langchain构建网页内容摘要Agent

我们首先就是要定义个可以加载到网页内容的工具,这次我们直接使用LangChain提供好的WebBaseLoader。另外借助LangChain的装饰器@tool,我也仅需要正常写一个函数并表明出入参类型和功能即可,不用提供像之前那样复杂的函数定义schema。@tool"""抓取url对应网页的内容"""

2401_85343303的博客 971

(18-4-01)Agents(智能代理):Tool Calling Agent(工具调用代理)

代理类型是LangChain中用于指导代理执行任务的不同配置和策略,每种代理类型都被设计成与特定类型的语言模型(LLM)配合使用,并且具有不同的特性,比如是否支持聊天历史、多输入工具、并行函数调用,以及是否需要额外的模型参数。在LangChain中,Tool Calling Agent(工具调用代理)是一种高级的代理类型,它利用了 LangChain 提供的工具调用功能。(9)运行代理:通过代理执行器(AgentExecutor)来运行代理,它可以调用代理并执行它选择的工具,然后将工具的输出传回代理。

码农三叔 1581

用LangChain实现一个Agent

上面,我们抛开了 LangChain,基于 OpenAI Python 程序库实现了一个 Agent,主要是为了让你更好地理解 Agent 的运作机理。其中最核心的部分就是一个循环,不断地执行各种动作,直到判断运行的结果是停下来。现在,你已经知道了 Agent 是怎样运作的,这一讲,我们再回来看看如何用 LangChain 实现一个 Agent,相信有了之前的铺垫,这一讲的代码就比较容易理解了。基于 LangChain 实现的 Agent工具。

xxue345678的博客 1777

(18-3-02)Agents(智能代理):创建并使用Agents

在LangChain中构建Agents代理时,首先需要创建想要使用的工具。在接下来的内容中将使用两个工具:Tavily(用于在线搜索)和检索器。(1)Tavily在LangChain中,通过使用其内置工具TavilySearchResults,可以非常轻松的使用Tavily搜索引擎作为工具。TavilySearchResults允许开发者将Tavily搜索引擎集成到他们构建的代理中,以便执行网络搜索任务。

码农三叔 1702

AMG8833红外测温实战:在STM32F103上做个简易人体感应与温度报警器

本文详细介绍了如何在STM32F103上使用AMG8833红外测温传感器构建人体感应与温度报警系统。通过硬件连接方案、驱动代码开发、人体检测算法实现及报警系统设计,展示了如何利用8x8红外温度矩阵实现智能监测功能。文章包含实用的初始化流程、温度数据读取优化和低功耗策略,为创客项目提供完整解决方案。

weixin_33725239的博客 395

基于LangChain构建一个简单的Agent代理

本文说明如何基于LangChain构建一个简单的Agent代理;使用OpenAi模型和TAVILY搜索。 该Agent代理具备读取历史信息的能力。

java_lover222的博客 1157

RJ45以太网接口EMC设计方案

RJ45以太网接口EMC设计方案 一、 接口概述 RJ45以太网接口是目前应用最广泛的通讯设备接口,以太网口的电磁兼容性能关系到通讯设备的稳定运行。赛盛技术应用电磁兼容设计平台(EDP)软件从接口原理图、结构设计,线缆设计三个方面来设计以太网口的EMC设计方案。 二、 接口电路 原理图的EMC设计 百兆以太网接口2KV防雷滤波设计 图1 百兆以太网接口2KV防雷滤波设计 接口电路设计概述: 本方案从EMC原理上,进行了相关的抑制干扰和抗敏感度的设计;从设计层次解决EMC问题;同时此电路兼容了百兆以太网接

兰陵笑笑生SD的博客 1万+

langchain系列之基于create_react_agent 创建一个Agent

create_react_agent 是用于构建基于 ‌ReAct(思考-行动)模式‌ 的智能代理(Agent)的核心函数,其作用是将大语言模型(LLM)与工具调用能力结合,实现动态任务处理

sinat_35153174的博客 7378

stm32入门 点亮TFTLCD(NT35510驱动)

正点原子stm32f407探索者开发板屏幕使用正点原子4.3寸TFTLCDstm32f407开发使用标准库本文参考正点原子例程和NT35510的data sheet,尽量使用最少的代码点亮屏幕。

tangliang_cn的博客 1982

2022年TI杯模拟电⼦系统设计专题邀请赛——李萨如图形演示装置

本次装置主要是对输入的正弦信号进行频率变换,并将原输入正弦信号作为 X 轴信号、变换后的正弦信号作为 Y 轴信号,绘制李萨如图形。采用 EK-TM4C123GXL 板卡作为主控;频率变换采用“锁向环+计数器”实现 1-5 倍频的频率变换控制;李萨如图形采用两个 AD通道采集原输入的正弦信号作为 X 轴信号和频率变换后的正弦信号作为 Y 轴信号,绘制李萨如图形。

qq_45890466的博客 7771

AI-创建一个Agent

首先需要创建要使用的工具。我们将使用两个工具:Tavily(用于在线搜索)以及我们将创建的本地索引检索器创建在线搜索工具输出结果为创建本地本地索引检索器工具#加载一篇blog作为本地知识库#对知识库进行拆分#加载检索引擎#创建检索工具retriver,",

qq_29983883的博客 1651

小米CyberGear微电机驱动代码(CAN总线驱动,含开源地址)

小米CyberGear微电机驱动代码(ROS下的CAN总线驱动,含开源地址)

2302_80751833的博客 4444

langChain开发你的第一个 Agent

LangChain是一个强大的框架,它让开发者能够轻松构建基于大语言模型(LLM)的应用。就像乐高积木一样,LangChain提供了各种可组合的组件,让你能够快速搭建复杂的AI应用。它解决了单纯使用API调用LLM时的诸多限制,比如上下文管理、工具使用等问题。// 导入LangChain核心组件// 初始化LLMopenAIApiKey: "你的API密钥"});// 创建一个文件读取工具description: "读取指定路径的文本文件内容",try {

u013257321的博客 1617

保姆级教程:在树莓派4B上用V4L2驱动USB摄像头(附完整代码)

本文提供树莓派4B上使用V4L2驱动USB摄像头的完整教程,涵盖环境配置、V4L2架构解析、代码实现及问题排查。通过详细步骤和完整代码示例,帮助开发者快速掌握嵌入式Linux下的摄像头驱动开发,解决实际应用中的兼容性和性能问题。

weixin_30312563的博客 383

Hive中的四种排序方式(order by,sort by,distribute by,cluster by)使用与区别详解

在平时的Hive数仓开发工作中经常会用到排序,而Hive中支持的排序方式有四种,这里结合具体的案例详细介绍一下他们的使用与区别: order by sort by distribute by cluster by 一、order by(全局排序) 1、作用:全局排序,只有一个reducer。 order by 会对输入做全局排序,因此只有一个reducer(多个reducer无法保证全局有序),也正因为只有一个reducer,所以当输入的数据规模较大时会导致计算时间较长。   set hive.mapr

weixin_43230682的博客 1万+
上一篇: 有电脑就能用,像 ChatGPT 那样提问|开源、傻瓜、一站式部署本地大语言模型
下一篇: AI赋能运维:AI Agent在运维场景中的应用
AI_小站
博客等级 码龄3年 6255粉丝 1154原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值