首页 > 其他分享 >AI菜鸟向前飞 — LangChain系列之十七 - 剖析AgentExecutor

AI菜鸟向前飞 — LangChain系列之十七 - 剖析AgentExecutor

时间:2024-06-09 21:57:56浏览次数:28  
标签:AI 菜鸟 tool LangChain intermediate steps Agent

AgentExecutor 顾名思义,Agent执行器,本篇先简单看看LangChain是如何实现的。

    先回顾

图片

AI菜鸟向前飞 — LangChain系列之十四 - Agent系列:从现象看机制(上篇)

AI菜鸟向前飞 — LangChain系列之十五 - Agent系列:从现象看机制(中篇)一个Agent的“旅行”

AI菜鸟向前飞 — LangChain系列之十六 - Agent系列:从现象看机制(下篇)一款“无需传递中间步骤"的Agent

当时在介绍Agent,给大家的一个让Agent执行的示例,

intermediate_steps = []
while not isinstance(
    res := agent.invoke({"input": "AI菜鸟向前飞系列文章出自哪里?", "intermediate_steps": intermediate_steps}), AgentFinish):
    for each in res:
        observation = {tool.name: tool for tool in tools}[each.tool].invoke(each.tool_input)
        intermediate_steps.append((each, observation))

这次为了方便与AgentExecutor更好的对比,将程序微调如下样式:

intermediate_steps = []
while True:
    res = agent.invoke({"input": "AI菜鸟向前飞系列文章出自哪里?", "intermediate_steps": intermediate_steps})
    if isinstance(res, AgentFinish):
        break
    for each in res:
        observation = {tool.name: tool for tool in tools}[each.tool].invoke(each.tool_input)
        intermediate_steps.append((each, observation))

抽丝剥茧,从下图可以更好的看出官方是如何实现的,其实、“几乎一样”

图片

释义:

  • 蓝色:官方用迭代次数 与耗时多方面判断是否要进入循环(即:while True)

  • 褐色:官方也是AgentFinish判断,和拼接intermediate_steps(即:循环体内部处理)

  • 敲黑板、划重点

    • 粉色:特有的类型,AgentStep,它将每一个要执行的方法和返回值都作为一个AgentStep,例如:

      图片

    • 绿色:另一种实现方法,封装为def plan作用是调用LLM(大语言模型)后,大模型响应的内容(这个很好理解,就不晒图了)

One more thing...

谈谈Tool的return_direct属性   为啥之前讲tool时不介绍它,因为学会了AgentExecutor再了解它会更有意义:) 

AI菜鸟向前飞 — LangChain系列之十三 - 关于Tool的必知必会

若看不懂的话,咱们做个实验 ,tool的return_direct取值

  • True

{'input': 'AI菜鸟向前飞系列文章出自哪里?', 'output': 'AI菜鸟向前飞文章出自Song榆钱儿的公众号。'
  • False(默认)

// 不同的LLM的output内容可能会不同
{'input': 'AI菜鸟向前飞系列文章出自哪里?', 'output': 'AI菜鸟向前飞系列文章出自Song榆钱儿的公众号。'

简单来说,True:直接返回函数的返回值,False:将函数返回值再经过‘润色’返回

标签:AI,菜鸟,tool,LangChain,intermediate,steps,Agent
From: https://blog.csdn.net/soukingang/article/details/139564243

相关文章

  • [AIGC] 字典树Trie树详解及其Java实现
    字典树,也称为Trie树或前缀树,是一种常见的搜索数据结构,广泛应用于字符串查询的场景中,比如网络词典的实现,或者是搜索引擎中词语的自动补全。文章目录Trie树的概念Trie树特性Trie树的操作插入操作查询操作Java实现Trie树Trie树的概念Trie树是一种特别的n叉树模型......
  • OpenAI 推出适用于 .NET 的 OpenAI 库
    微软宣布面向.NET开发人员官方OpenAI库。OpenAI库支持完整的OpenAIAPI和OpenAI的最新旗舰模型GPT-4o,该模型可以实时推理音频、视觉和文本。OpenAI.NETAPI库目前提供第一个测试版,可通过NuGet 访问。OpenAI.NETAPI库是微软与OpenAI合作的成果,它提供了从.N......
  • [AI资讯·0609] SamAltman建立了庞大投资帝国,通义千问Qwen2发布即爆火,OpenAI泄密者公
    AI资讯奥特曼28亿「投资帝国」曝光!不要OpenAI股份,当CEO最不赚钱开源超闭源!通义千问Qwen2发布即爆火,网友:GPT-4o危OpenAI泄密者公布165页文件:2027年实现AGI、计算集群将耗资千亿美元清华系细胞大模型登Nature子刊!能对人类2万基因同时建模奥特曼百万年薪挖角谷歌TPU人才,欲砸7万......
  • 端午节赛龙舟,我们的新队员---AI大模型
       赛龙舟的比赛通常在一个湖泊或河流上进行,参赛队伍会驾驭着长形的龙舟,每艘船上有一名鼓手和多名桨手。比赛开始时,鼓手会击鼓来指挥桨手的划桨节奏,而桨手们则要协同合作,以最快的速度将龙舟划向终点。   赛龙舟不仅仅是一项体育竞技活动,更是一项富有文化内涵的民......
  • OpenCV与AI深度学习 | 实战 | OpenCV实现扫描文本矫正应用与实现详解(附源码)
    本文来源公众号“OpenCV与AI深度学习”,仅用于学术分享,侵权删,干货满满。原文链接:实战|OpenCV实现扫描文本矫正应用与实现详解(附源码)1导 读    本文主要介绍使用OpenCV对扫描文本矫正的应用实例及详细实现步骤。    2背景介绍  在使用打印机或扫描仪......
  • AI搜索哪家强?16款产品实战测评,效率飙升秘籍!
    文章推荐AI日报|国产大模型迎来新卷王,天工MoE全球首用4090推理,马斯克计划豪掷90亿购买GPUAI日报|斯坦福团队被曝抄袭国内大模型已删库跑路!英伟达打破摩尔定律,机器人时代到来AI搜索,不只是技术,它是一种理解世界的新方式。最近Perplexity被传出正进行新一轮2.5亿美元融资,短短6个......
  • 加油站AI智能视频监控分析系统 YOLOv8
    加油站AI智能视频监控分析系统可以根据视频总流量分析技术,使优化算法实体模型替代人的眼睛,加油站AI智能视频监控分析系统即时鉴别加油站内部的工作过程中的安全规范、员工行为准则等问题。加油站AI智能视频监控分析系统优化算法实体模型可以精确捕获违规操作,全年度24个小时无间......
  • 【知识点】C++ STL 中的 iterator_traits 类
    iterator_traits讲解基本定义iterator_traits是一个模板类,用于提供与迭代器相关的类型信息。以下是iterator_traits的基本定义:#include<iterator>template<typenameIterator>structiterator_traits{typedeftypenameIterator::difference_typediffere......
  • AI学习的基础理论路径
    目录一、基础阶段二、进阶阶段三、高级阶段四、涉及到的算法现在AI已经火了一段时间了,对于想入局AI的大伙,除了可以使用具体的AI产品外,还应可使用具体的模型训练自己的数据,最终形成自己的模型,最后,高阶的可开发自己的模型(需要大量物力财力做支撑),因此,无论在哪个层面,系统地......
  • 初入职场的程序员如何选择AI大模型产品:全面分析
    作为初入职场的程序员,面对层出不穷的AI大模型产品,选择适合自己的工具至关重要。这不仅关系到工作效率的提升,也影响到职业发展的方向。本文将从几个关键方面,详细分析初入职场的程序员该如何选择AI大模型产品,帮助你做出明智的决策。1.了解自己的需求1.1工作内容需求首先,......