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

大模型学习笔记八:手撕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&#xf…...

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

视频链接&#xff1a;【62】【Cherno C】【中字】C的线程_哔哩哔哩_bilibili 参考文章&#xff1a;TheChernoCppTutorial_the cherno-CSDN博客 Cherno的C教学视频笔记&#xff08;已完结&#xff09; - 知乎 (zhihu.com) C 的线程 #include<iostream> #include<th…...

【JavaEE】_Spring MVC项目获取Header

目录 1. 使用Servlet原生方法获取Header 2. 使用Spring注解获取Header 1. 使用Servlet原生方法获取Header .java文件内容如下&#xff1a; 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产品概述&#xff1a; 特点: 带宽:350 MHz频道:4存储深度:4 Mpts采样速率:5 GSa/s更新速率:每秒1000000个波形波形数学和FFT自动探测接口用于连接、存储设备和打印的USB主机和设备端口 触摸: 8.5英寸电容式触摸屏专为触摸界面设计 发现: 业界最快的无损波形更…...

Golang | Leetcode Golang题解之第8题字符串转换整数atoi

题目&#xff1a; 题解&#xff1a; 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月份全球市场推出的代表性网络安全产品和服务&#xff0c;从中可以观察网络安全产品创新趋势和风向。 1、Bedrock Security的数据安全平台应对云和生成式AI带来的风险 3 月 26 日&#xff1a; Bedrock Security 推出了数据安全平台&#xff0c;旨在帮助组织防范…...

如何在微信小程序中使用less来编写css

在微信小程序中使用 Less 需要一些额外的配置步骤,因为小程序本身不支持直接引用 Less 文件。我们可以借助 Webpack 进行构建,使用一些 loader 来编译 Less 文件。以下是具体步骤: 初始化项目 使用微信开发者工具新建一个小程序项目,或在已有项目的基础上操作。 安装依赖 使…...

draw.io桌面版终极指南:免费跨平台绘图神器完整教程

draw.io桌面版终极指南&#xff1a;免费跨平台绘图神器完整教程 【免费下载链接】drawio-desktop Official electron build of draw.io 项目地址: https://gitcode.com/GitHub_Trending/dr/drawio-desktop 还在为团队协作中绘图工具不统一而烦恼吗&#xff1f;Windows用…...

Overleaf实战:利用multicol宏包实现LaTeX文档的灵活分栏布局

1. 为什么需要分栏布局&#xff1f; 第一次用LaTeX写论文时&#xff0c;我被期刊模板要求"双栏排版"整懵了。单栏文档写得好好的&#xff0c;突然要在同一页并排显示两列内容&#xff0c;还要处理图片表格的跨栏问题。传统\twocolumn命令虽然简单&#xff0c;但调整…...

LRC Maker终极指南:零基础打造完美同步歌词的免费工具

LRC Maker终极指南&#xff1a;零基础打造完美同步歌词的免费工具 【免费下载链接】lrc-maker 歌词滚动姬&#xff5c;可能是你所能见到的最好用的歌词制作工具 项目地址: https://gitcode.com/gh_mirrors/lr/lrc-maker 还在为喜欢的歌曲找不到准确歌词而烦恼吗&#xf…...

【免费下载】 树莓派4B原理图资源下载

树莓派4B原理图资源下载 【下载地址】树莓派4B原理图资源下载分享 树莓派4B原理图资源下载本仓库提供了一个方便的途径&#xff0c;供大家下载树莓派4B的原理图资源文件 项目地址: https://gitcode.com/open-source-toolkit/ae590 本仓库提供了一个方便的途径&#xff0…...

如何零风险升级SillyTavern:保护角色数据完整的终极指南

如何零风险升级SillyTavern&#xff1a;保护角色数据完整的终极指南 【免费下载链接】SillyTavern LLM Frontend for Power Users. 项目地址: https://gitcode.com/GitHub_Trending/si/SillyTavern 还在为SillyTavern版本更新而提心吊胆吗&#xff1f;担心升级过程中珍贵…...

量子优化技术在工业数据生产规划中的应用与实践

1. 量子优化技术在工业数据生产规划中的实践探索在汽车制造领域&#xff0c;生产规划一直是个复杂难题。以冲压车间为例&#xff0c;金属板材需要通过冲压机加工成车身部件&#xff0c;每台冲压机都有不同的工作能力和成本特性&#xff0c;而每个模具组又需要分配到合适的机器上…...

英雄联盟录像编辑完整教程:5分钟掌握League Director专业工具

英雄联盟录像编辑完整教程&#xff1a;5分钟掌握League Director专业工具 【免费下载链接】leaguedirector League Director is a tool for staging and recording videos from League of Legends replays 项目地址: https://gitcode.com/gh_mirrors/le/leaguedirector …...

猫抓浏览器扩展完全指南:5步掌握网页视频资源嗅探与下载

猫抓浏览器扩展完全指南&#xff1a;5步掌握网页视频资源嗅探与下载 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 你是否曾经遇到过想保存网页上…...

从特征稀缺到精准定位:基于HS-FPN与可变形注意力的白细胞检测新范式

1. 白细胞检测的现状与挑战 在医学影像分析领域&#xff0c;白细胞检测一直是个让人头疼的问题。想象一下&#xff0c;医生需要从密密麻麻的血细胞图像中找出白细胞&#xff0c;就像在沙滩上找特定形状的贝壳一样困难。传统方法主要依赖医生手动操作显微镜&#xff0c;不仅效率…...

简历投了全石沉大海?实测3个免费AI简历神器,HR秒通过、面试翻3倍!

3个实测免费的AI简历神器&#xff0c;不用花钱、不用登录&#xff0c;直接让简历过ATS、获面试&#xff0c;应届生/职场人闭眼冲&#xff01;简历优化本身就讲究精准度&#xff0c;尤其是ATS筛选逻辑&#xff0c;很多工具要么收费高&#xff0c;要么改完还是不贴合JD&#xff0…...