当前位置: 首页 > 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 文件。以下是具体步骤: 初始化项目 使用微信开发者工具新建一个小程序项目,或在已有项目的基础上操作。 安装依赖 使…...

保姆级教学:用FUTURE POLICE和MySQL管理你的语音字幕数据

保姆级教学&#xff1a;用FUTURE POLICE和MySQL管理你的语音字幕数据 1. 为什么需要管理语音字幕数据&#xff1f; 想象一下这样的场景&#xff1a;你刚刚用FUTURE POLICE处理了100个会议录音&#xff0c;得到了精确到毫秒的字幕文件。这些文件散落在各个文件夹里&#xff0c…...

Omni-Vision Sanctuary 大模型一键部署:Python入门级环境配置实战

Omni-Vision Sanctuary 大模型一键部署&#xff1a;Python入门级环境配置实战 1. 开篇&#xff1a;为什么选择Omni-Vision Sanctuary 如果你刚接触AI大模型&#xff0c;可能会被各种复杂的部署流程吓到。别担心&#xff0c;今天我们要聊的Omni-Vision Sanctuary是个对新手特别…...

OpenWRT中通过Luci框架定制动态Web管理界面

1. Luci框架入门&#xff1a;从零理解MVC架构 第一次接触OpenWRT的Web管理界面时&#xff0c;我完全被Luci框架的简洁高效震惊了。这个基于Lua语言的轻量级框架&#xff0c;用最少的代码实现了路由器的完整配置管理。记得当时为了修改一个简单的网络参数&#xff0c;我翻遍了各…...

Jedi-vim与其他Vim插件的终极兼容性指南:避免冲突的10个技巧

Jedi-vim与其他Vim插件的终极兼容性指南&#xff1a;避免冲突的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效果展示&#xff1a;高精度数学题求解与逻辑推导实测 1. 模型核心能力概览 Phi-4-mini-reasoning是一款专注于推理任务的文本生成模型&#xff0c;在数学解题和逻辑分析方面展现出惊人的能力。与通用聊天模型不同&#xff0c;它专为多步推理和精确结论而…...

Pixel Language Portal实战教程:使用WebSockets实现低延迟流式翻译响应

Pixel Language Portal实战教程&#xff1a;使用WebSockets实现低延迟流式翻译响应 1. 引言&#xff1a;当翻译遇上像素冒险 想象你正在玩一款16-bit像素风RPG游戏&#xff0c;每次对话选择都会触发实时翻译效果&#xff0c;文字像能量块一样在屏幕上流动。这正是Pixel Langu…...

OpenClaw自动化测试:Qwen3.5-9B持续集成实践

OpenClaw自动化测试&#xff1a;Qwen3.5-9B持续集成实践 1. 为什么选择OpenClaw做自动化测试 去年我在迭代一个NLP模型时&#xff0c;每次代码提交后都需要手动跑测试用例、截图对比结果、再发邮件给团队——这套流程每周要重复十几次。直到发现OpenClaw这个"能操作电脑…...

《数字图像处理》实战:从傅里叶到小波,解锁图像变换的时空密码

1. 图像变换的时空密码&#xff1a;从傅里叶到小波 当你用手机拍摄一张照片时&#xff0c;是否想过这张看似简单的图片背后隐藏着怎样的数学奥秘&#xff1f;图像处理领域的变换技术就像是一把钥匙&#xff0c;能够解开图像中隐藏的时空密码。在众多变换方法中&#xff0c;傅里…...

(新)IEEE Access论文投稿全流程实战解析

1. IEEE Access投稿前的准备工作 第一次投稿到IEEE Access这种国际期刊&#xff0c;很多人都会感到无从下手。作为一个审过稿也投过稿的老手&#xff0c;我完全理解这种忐忑。别担心&#xff0c;跟着我的步骤走&#xff0c;保证你能顺利完成整个投稿流程。 首先得明确一点&…...

2026年毕业论文写作避坑:学术AI工具怎么选才靠谱?

每到开题季&#xff0c;后台总会收到相似的问题&#xff1a;现在AI这么强&#xff0c;写论文到底该用哪个&#xff1f;不少同学的教训是——随便找个通用聊天AI&#xff0c;输入题目“一键生成”几万字&#xff0c;结果查重不过、AI检测亮红灯、参考文献全是编的&#xff0c;导…...