大模型学习笔记八:手撕AutoGPT
文章目录
- 一、功能需求
- 二、演示用例
- 三、核心模块流程图
- 四、代码分析
- 1)Agent类目录创建智能体对象
- 2)开始主流程
- 3)在prompt的main目录输入主prompt和最后prompt
- 4)增加实际的工具集tools(也就是函数)
- 5)新增文件夹Utils工具来打印中间结果
一、功能需求
- 目的
设计一个 Agent,自动选择使用以下工具回答用户的问题 - 问题
1、查看目录下的文件
2、基于给定的文档回答用户问题
3、查看与分析 Excel 文件
4、撰写文档
5、调用 Email 客户端发邮件
二、演示用例
- 实验资料(实验中使用三个文档演示 Agent 的能力)
./data|__2023年8月-9月销售记录.xlsx|__供应商名录.xlsx|__供应商资格要求.pdf
-
资料展示

-
测试用例输入举例
1、9 月份的销售额是多少
2、销售总额最大的产品是什么
3、帮我找最近一个月出销售额不达标的供应商
4、给对方发一封邮通知此事
5、对比 8 月和 9 月销售情况,写一份报告
三、核心模块流程图

四、代码分析
1)Agent类目录创建智能体对象
初始化准备工作:
1、语言模型:llm
2、工具集 tools
3、工作数据地址:work_dir
4、最多能思考多少步:max_thiought_steps
5、常识记忆的向量数据库连接池:memery_retriever
6、output_parse专门解析action传出来的json格式的数据
7、robust_parser用来矫正输出json格式的错误
8、__iniy_prompt_templates用来初始化模板(需要用接口适配langchain输出中文有时候打印Unicode码,看的不舒服,函数名字是__chinese_friendly)
9、初始化chain(用主要prompt和结束的prompt串起来)

2)开始主流程
①初始化常识和短识的记忆(短识记忆初始化为空,常识是连接向量数据库)
②记录思考步数
③开始主循环推理,若输出结果为FINISH就break,否则就执行选择出来的action,并更新短识记忆
④若大于最大思考步数,则输出未能完成任务
⑤更新长识记忆

3)在prompt的main目录输入主prompt和最后prompt

- 注意点
①有时候目录会在查找过程中丢失,所以访问文件确保文件路径调整
②对于一些准则(总结方法论)告诉他约束
③输出形式要按步骤输出思考过程,然后加自我反思
④观察执行记录和自我反思,进一步思考
⑤根据反思和思考,一步步推理
4)增加实际的工具集tools(也就是函数)
①实际工具类文件是Tools.py,比如如下的FileTool.py定义了返回搜索数据文件的名字的函数


②定义读取PDF的函数,类似RAG的部分,这里拿langchain原生接口代替(不推荐,FileQATool.py)

③按照客户需求生成文档的函数

④分析Excel的函数工具(根据表名字、行列名字信息、具体格信息分析文件)ExcelTool.py和生成代码去分析数据的工具PythonTool.py,并且在prompts/tools目录下填上excel分析的prompt


⑤发邮件的工具EmailTool.py

5)新增文件夹Utils工具来打印中间结果
新文件callbackfunc.py

和带颜色的打印

相关文章:
大模型学习笔记八:手撕AutoGPT
文章目录 一、功能需求二、演示用例三、核心模块流程图四、代码分析1)Agent类目录创建智能体对象2)开始主流程3)在prompt的main目录输入主prompt和最后prompt4)增加实际的工具集tools(也就是函数)5…...
Java常用API_System——常用方法及代码演示
1.System.exit(int status) 方法的形参int status为状态码,如果是0,说明虚拟机正常停止,如果非0,说明虚拟机非正常停止。需要将程序结束时可以调用这个方法 代码演示: public class Test {public static void main(S…...
neo4j图数据库下载安装配置
neo4j下载地址Index of /doc/neo4j/3.5.8/ 1.说明:jdk 1.8 版本对应的 neo4j 数据库版本 推荐安装3.X版本 2.配置系统环境变量 3.启动 neo4j.bat console 4.访问...
结构化面试-有矛盾的人际沟通题
例题一: 你和小张一起值班,但是小张没来,刚好领导检查发现后批评了他,事后小张埋怨你, 认为你在领导面前表现,并在同事中传播,同事也觉得你不通人情,你怎么处理? 回答&a…...
AI技术创业机会之金融科技
金融科技服务(FinTech)领域正经历着一场由人工智能(AI)技术引领的深刻变革,为创业者提供了无数创新与颠覆传统金融服务模式的机会。以下详述了金融科技服务中AI技术的具体创业机会及其细节与内容,以期为有志于涉足此领域的创业者提供全面的洞察与参考。 一、智能投顾与财…...
LC低通滤波
LC滤波器,是指将电感L与电容器 C进行组合设计构成的滤波电路,可去除或通过特定频率的无源器件。电容器具有隔直流通交流,且交流频率越高越容易通过的特性。而电感则具有隔交流通直流,且交流频率越高越不易通过的特性。因此&#x…...
CS162 Operating System笔记
What is an Operating System? it’s typically a special layer of software that provides the application access to hardware resources.So.it’s convenient abs fractions of complex hardware devices....
mysql慢sql排查与分析
当MySQL遇到慢查询(慢SQL)时,我们可以通过以下步骤进行排查和优化: 标题开启慢查询日志: 确保MySQL的慢查询日志已经开启。通过查看slow_query_log和slow_query_log_file变量来确认。 如果没有开启,可以…...
基于Springboot+Vue实现前后端分离酒店管理系统
一、🚀选题背景介绍 📚推荐理由: 近几年来,随着各行各业计算机智能化管理的转型,以及人们经济实力的提升,人们对于酒店住宿的需求不断的提升,用户的增多导致酒店管理信息的不断增多,…...
2024泰迪杯c题详细思路代码讲解:竞赛论文的辅助自动评阅
C:竞赛论文的辅助自动评阅 步骤一:理解拆解题目,并对附件1中的论文集进行初步分析。 步骤二:特征构造 论文完整性:开发算法以检查论文是否全面回答了赛题。这包括自然语言处理(NLP)技术来识别关键段落和论证的完整…...
【GEE实践应用】GEE下载遥感数据以及下载后在ArcGIS中的常见显示问题处理(以下载哨兵2号数据为例)
本期内容我们使用GEE进行遥感数据的下载,使用的相关代码如下所示,其中table是我们提前导入的下载遥感数据的研究区域的矢量边界数据。 var district table;var dsize district.size(); print(dsize);var district_geometry district.geometry();Map.…...
Excel 文件底部sheet 如何恢复
偶然打开一个excel文件,惊奇地发现:原来excel文件底部的若干个sheet居然全都看不到了。好神奇啊。 用其它的电脑打开同样的excel文件,发现:其实能看到的。说明这个excel文件并没有被损坏。只要将修改相关设置。就可以再次看…...
spring boot3登录开发-3(2短信验证登录/注册逻辑实现)
⛰️个人主页: 蒾酒 🔥系列专栏:《spring boot实战》 🌊山高路远,行路漫漫,终有归途 目录 写在前面 上文衔接 内容简介 功能分析 短信验证登录实现 1.创建交互对象 用户短信登录/注册DTO 创建用户登录VO…...
ChernoCPP 2
视频链接:【62】【Cherno C】【中字】C的线程_哔哩哔哩_bilibili 参考文章:TheChernoCppTutorial_the cherno-CSDN博客 Cherno的C教学视频笔记(已完结) - 知乎 (zhihu.com) C 的线程 #include<iostream> #include<th…...
【JavaEE】_Spring MVC项目获取Header
目录 1. 使用Servlet原生方法获取Header 2. 使用Spring注解获取Header 1. 使用Servlet原生方法获取Header .java文件内容如下: package com.example.demo.controller;import com.example.demo.Person; import org.springframework.web.bind.annotation.*; impor…...
JavaScript - 请你为数组自定义一个方法myFind,使其实现find方法的功能
难度级别:中级及以上 提问概率:50% 我们知道数组的find方法是ES6之后出现的,它强调找到第一个符合条件的元素后即跳出循环,不再继续执行,那么如果不用ES6的知识,为数组添加一个自定义方法实现find方法的功能,首先要想到在数组的原型pro…...
DSOX3034T是德科技DSOX3034T示波器
181/2461/8938产品概述: 特点: 带宽:350 MHz频道:4存储深度:4 Mpts采样速率:5 GSa/s更新速率:每秒1000000个波形波形数学和FFT自动探测接口用于连接、存储设备和打印的USB主机和设备端口 触摸: 8.5英寸电容式触摸屏专为触摸界面设计 发现: 业界最快的无损波形更…...
Golang | Leetcode Golang题解之第8题字符串转换整数atoi
题目: 题解: func myAtoi(s string) int {abs, sign, i, n : 0, 1, 0, len(s)//丢弃无用的前导空格for i < n && s[i] {i}//标记正负号if i < n {if s[i] - {sign -1i} else if s[i] {sign 1i}}for i < n && s[i] >…...
3月份全球市场推出的24款网络安全热点产品和服务:应用安全和生成式AI应用是热点
CSO在线追踪了3月份全球市场推出的代表性网络安全产品和服务,从中可以观察网络安全产品创新趋势和风向。 1、Bedrock Security的数据安全平台应对云和生成式AI带来的风险 3 月 26 日: Bedrock Security 推出了数据安全平台,旨在帮助组织防范…...
如何在微信小程序中使用less来编写css
在微信小程序中使用 Less 需要一些额外的配置步骤,因为小程序本身不支持直接引用 Less 文件。我们可以借助 Webpack 进行构建,使用一些 loader 来编译 Less 文件。以下是具体步骤: 初始化项目 使用微信开发者工具新建一个小程序项目,或在已有项目的基础上操作。 安装依赖 使…...
保姆级教学:用FUTURE POLICE和MySQL管理你的语音字幕数据
保姆级教学:用FUTURE POLICE和MySQL管理你的语音字幕数据 1. 为什么需要管理语音字幕数据? 想象一下这样的场景:你刚刚用FUTURE POLICE处理了100个会议录音,得到了精确到毫秒的字幕文件。这些文件散落在各个文件夹里,…...
Omni-Vision Sanctuary 大模型一键部署:Python入门级环境配置实战
Omni-Vision Sanctuary 大模型一键部署:Python入门级环境配置实战 1. 开篇:为什么选择Omni-Vision Sanctuary 如果你刚接触AI大模型,可能会被各种复杂的部署流程吓到。别担心,今天我们要聊的Omni-Vision Sanctuary是个对新手特别…...
OpenWRT中通过Luci框架定制动态Web管理界面
1. Luci框架入门:从零理解MVC架构 第一次接触OpenWRT的Web管理界面时,我完全被Luci框架的简洁高效震惊了。这个基于Lua语言的轻量级框架,用最少的代码实现了路由器的完整配置管理。记得当时为了修改一个简单的网络参数,我翻遍了各…...
Jedi-vim与其他Vim插件的终极兼容性指南:避免冲突的10个技巧
Jedi-vim与其他Vim插件的终极兼容性指南:避免冲突的10个技巧 【免费下载链接】jedi-vim Using the jedi autocompletion library for VIM. 项目地址: https://gitcode.com/gh_mirrors/je/jedi-vim Jedi-vim是Vim编辑器中最强大的Python自动补全插件之一&…...
Phi-4-mini-reasoning效果展示:高精度数学题求解与逻辑推导实测
Phi-4-mini-reasoning效果展示:高精度数学题求解与逻辑推导实测 1. 模型核心能力概览 Phi-4-mini-reasoning是一款专注于推理任务的文本生成模型,在数学解题和逻辑分析方面展现出惊人的能力。与通用聊天模型不同,它专为多步推理和精确结论而…...
Pixel Language Portal实战教程:使用WebSockets实现低延迟流式翻译响应
Pixel Language Portal实战教程:使用WebSockets实现低延迟流式翻译响应 1. 引言:当翻译遇上像素冒险 想象你正在玩一款16-bit像素风RPG游戏,每次对话选择都会触发实时翻译效果,文字像能量块一样在屏幕上流动。这正是Pixel Langu…...
OpenClaw自动化测试:Qwen3.5-9B持续集成实践
OpenClaw自动化测试:Qwen3.5-9B持续集成实践 1. 为什么选择OpenClaw做自动化测试 去年我在迭代一个NLP模型时,每次代码提交后都需要手动跑测试用例、截图对比结果、再发邮件给团队——这套流程每周要重复十几次。直到发现OpenClaw这个"能操作电脑…...
《数字图像处理》实战:从傅里叶到小波,解锁图像变换的时空密码
1. 图像变换的时空密码:从傅里叶到小波 当你用手机拍摄一张照片时,是否想过这张看似简单的图片背后隐藏着怎样的数学奥秘?图像处理领域的变换技术就像是一把钥匙,能够解开图像中隐藏的时空密码。在众多变换方法中,傅里…...
(新)IEEE Access论文投稿全流程实战解析
1. IEEE Access投稿前的准备工作 第一次投稿到IEEE Access这种国际期刊,很多人都会感到无从下手。作为一个审过稿也投过稿的老手,我完全理解这种忐忑。别担心,跟着我的步骤走,保证你能顺利完成整个投稿流程。 首先得明确一点&…...
2026年毕业论文写作避坑:学术AI工具怎么选才靠谱?
每到开题季,后台总会收到相似的问题:现在AI这么强,写论文到底该用哪个?不少同学的教训是——随便找个通用聊天AI,输入题目“一键生成”几万字,结果查重不过、AI检测亮红灯、参考文献全是编的,导…...
