LLM之Agent(二):BabyAGI的详细教程

news2024/12/27 13:48:54

       

图片

      BabyAGI是一个 AI 支持的任务管理系统(Python脚本),使用 OpenAI 和 Pinecone API 创建, 优先级排序和执行任务。该系统背后的主要思想是基于先前任务的结果和预定义的目标创建任务。脚本然后使用 OpenAI 的自然语言处理(NLP)能力根据目标创建新任务, 并使用 Pinecone 存储和检索任务结果以获得上下文. 这是原始的任务驱动的自驱代理(2023 年 3 月 28 日)的简化版本。

一、BabyAGI工作原理

BabyAGI的整体原理如下图所示:

图片

BabyAGI通过运行一个无限循环来工作, 该循环执行以下步骤:

  1. 从任务列表中提取第一个任务;

  2. 将任务发送给执行代理, 该代理使用 OpenAI API 根据上下文完成任务;

  3. 整理结果并将其存储在 Pinecone 中;

  4. 基于目标和前一个任务的结果创建新任务, 并根据优先级对任务列表进行排序。

execution_agent()函数使用 OpenAI API。它接受两个参数:目标和任务,然后向 OpenAI 的 API 发送一个 Prompt(包括 AI 系统任务的描述, 目标和任务本身), 该 API 结果以 string 形式返回。

task_creation_agent()函数使用 OpenAI API 根据目标和前一个任务的结果创建新任务。该函数接受 4 个参数:目标, 前一个任务的结果, 任务描述和当前任务列表。然后它向 OpenAI 的 API 发送一个 prompt, 该 API 返回一个新任务的 string 列表。函数然后将新任务作为字典列表返回, 其中每个字典包含任务的名称。

prioritization_agent()函数使用 OpenAI API 对任务列表进行重新排序。该函数接受一个参数, 即当前任务的 ID。它向 OpenAI 的 API 发送一个 prompt, 该 API 返回一个重新排序的任务列表(以数字编号)。

      最后, 脚本使用 Pinecone 存储和检索任务结果以获取上下文。脚本根据 YOUR_TABLE_NAME 变量中指定的表名创建一个 Pinecone 索引,然后 Pinecone 将任务结果与任务名称和任何其他元数据(metadata)一起存储在索引中。

二、BabyAGI如何使用

Step1 克隆仓库​​​​​​​

git clone https://github.com/yoheinakajima/babyagi.git

cd babyagi

Step2 安装所需要的库​​​​​​​

pip install -r requirements.txt
cp .env.example .env

Step3 设置OpenAI Key

    在.env文件中设置OPENAI_API_KEY、OPENAI_API_MODEL和PINECONE_API_KEY参数,在 PINECONE_ENVIRONMENT 变量中设置 Pinecone 环境,如果要使用weaviate,可以参考https://babyagi.org/docs/weaviate.html

Step4 设置存储结果的表名

指定存储结果的变量TABLE_NAME值

Step5 配置其他变量(可选)

     通过设置BABY_NAME变量名来指定BabyAGI实例名,通过设置OBJECTIVE变量名来制定任务管理系统的目标,通过设置INITIAL_TASK变量名来制定第一个任务名。

Step6 运行BabyAGI

python babyagi.py

PS:上述步骤同样也可以部署到docker中,首先需要安装docker和docker-compose,然后执行如下代码:

docker-compose up

三、BabyAGI支持的模型

      BabyAGI支持OpenAI所有模型,也支持LLaMA模型以及它的扩展模型(通过Llama.cpp),默认模型是 gpt-3.5-turbo,要使用不同的模型, 请通过 OPENAI_API_MODEL 指定, 或者使用命令行。

LLaMA

      下载最新版的Llama.cpp 并按照说明进行编译,还需要 Llama 模型的权重,然后将 llama/main 链接到 llama.cpp/main, 将 models 链接到存放 Llama 模型权重的文件夹,接着传入参数 OPENAI_API_MODEL=llama 或 -l 运行脚本。

PS:在任何情况下, 都不要在此 repo(仓库)的任何地方(包括问题, 讨论或拉取请求中)分享 IPFS, 磁力链接或任何其他模型下载链接。因为它们将被立即删除。

四、连续运行BabyAGI的警告

       BabyAGI被设计为作为任务管理系统的一部分持续运行,持续运行此脚本可能导致 API 的使用费超高, 请务必谨慎使用并后果自负。此外, 脚本需要正确设置 OpenAI 和 Pinecone API, 因此请确保在运行脚本之前已经设置了API。

参考文献:

[1] https://github.com/yoheinakajima/babyagi

[2] http://babyagi.org/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1258773.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

文献速递:超声影像人工智能专题文献分享

文献速递:超声影像人工智能专题文献分享 01 文献速递介绍 本文综述了超声影像组学在甲状腺疾病研究中的应用及其局限性。近年来,甲状腺疾病的发病率逐渐增加,传统超声是最关键的甲状腺成像方法之一,但仍存在一定局限性。超声影…

Syncovery Mac/win中文版:快速、方便的数据备份和同步工具

备份和同步数据是现代生活中不可或缺的任务。无论是个人用户还是企业用户,都需要一款可靠的工具来保护和同步他们的数据。Syncovery是一款备份数据和同步工具,它能够提供全面的数据保护和灵活的数据同步功能。 首先,Syncovery具有强大的备份…

每日一练:简易计算器

1.设计思路 创建一个简单的用户界面,可以使用 Python 的 Tkinter模块。在界面上放置按钮,每个按钮代表一个数字、运算符或其他功能。使用变量来追踪用户输入的表达式。在用户点击按钮时,更新表达式并在界面上显示。 当用户点击“”按钮时&am…

window关于下载anaconda 2023年以后的版本,jupyter notebook闪退,没有内核的问题

这种问题的解决办法: 下载anaconda较早版本,比如我下载的是:2022年5月的版本。 下载之后,打开jupyter好像也会没有内核和闪退。 下面解决步骤: 1.注意:打开anaconda powershell prompt 2.重点来了&#xf…

漏洞复现--致远 M3 反序列化 mobile_portal RCE

免责声明: 文章中涉及的漏洞均已修复,敏感信息均已做打码处理,文章仅做经验分享用途,切勿当真,未授权的攻击属于非法行为!文章中敏感信息均已做多层打马处理。传播、利用本文章所提供的信息而造成的任何直…

Uni-app智慧工地可视化信息云平台源码

智慧工地的核心是数字化,它通过传感器、监控设备、智能终端等技术手段,实现对工地各个环节的实时数据采集和传输,如环境温度、湿度、噪音等数据信息,将数据汇集到云端进行处理和分析,生成各种报表、图表和预警信息&…

支持向量机:Python实践

支持向量机(Support Vector Machine,简称SVM)是机器学习领域中一种常用的分类算法,其在处理线性可分和线性不可分问题上表现出色。Python作为一种广泛应用的编程语言,提供了众多强大的机器学习库和工具,使得…

Mysql数据库多表数据查询问题

1、背景 线上某个业务数据分表存储在10个子表中,现在需要快速按照条件(比如时间范围)筛选出所有的数据,主要是想做一个可视化的数据查询工具,给产研团队使用。 2、实践 注意:不要在线上真实数据库操作&am…

【JavaEE初阶】 博客系统项目--前端页面设计实现

文章目录 🌲主要内容🎍预期效果🚩博客列表页效果🚩博客详情页🚩博客登录页🚩博客编辑页 🍀实现博客列表页🚩实现导航栏🎈页面主体部分 🎄实现博客详情页&…

无公网IP环境如何实现远程访问连接家里内网的威联通QNAP NAS

🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…

JAVA进阶之路JVM-1:jvm基本组成、java程序执行过程、java程序的跨平台、静态编译器、jvm执行方式

JVM基本组成 当线上系统突然宕机,系统无法访问,甚至直接OOM; 线上系统响应速度太慢,优化系统性能过程中发现CPU占用过高,原因也许是因为JVM的GC次数过于频繁 因此,新项目上线,需要设置JVM的各…

高精度基准电压源测试方法有哪些

高精度基准电压源是一种能够产生稳定、可控的电压信号的设备,广泛应用于科学研究、工业检测和仪器仪表校准等领域。为了保证电压信号的准确性和可靠性,在使用高精度基准电压源进行测试时,需要采取一系列的测试方法和技术手段。 校准和验证是使…

软著项目推荐 深度学习 植物识别算法系统

文章目录 0 前言2 相关技术2.1 VGG-Net模型2.2 VGG-Net在植物识别的优势(1) 卷积核,池化核大小固定(2) 特征提取更全面(3) 网络训练误差收敛速度较快 3 VGG-Net的搭建3.1 Tornado简介(1) 优势(2) 关键代码 4 Inception V3 神经网络4.1 网络结构 5 开始训练5.1 数据集…

AIGC文生图及工具产品简介

AIGC,全称是人工智能生成内容(Artificial Intelligence Generated Content)是继UGC(用户生成内容),PGC(平台生成内容)后,利用人工智能技术,自动生成内容的生产…

无mac电脑生成uniapp云打包私钥证书的攻略

uniapp顾名思义是一个跨平台的开发工具,大部分uniapp的开发者,其实并没有mac电脑来开发,但是生成ios的证书,官网的教程却是需要mac电脑的,那么有没有办法无需mac电脑即可生成uniapp云打包的私钥证书呢? 下…

深入理解计算机中的程序

目录 程序的存储 程序的编译过程 各位宝宝好&#xff0c;我们这次从计算机底层来讲一下程序是如何存储&#xff0c;编译的 程序的存储 我们拿一个最简单的程序来举个例子&#xff1a; #include<stdio.h> int main() {printf("hello world");return 0; } …

吐血整理,Jmeter性能测试常见问题+解决汇总(详细)

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 1、request 请求超…

【好书推荐-第30期】开发者请注意!因果推断与机器学习,终于有人能讲明白啦!

本文目录 一、因果推断二、因果推断的前世今生三、总结四、赠书条件 今天给各位读者推荐一本好书&#xff1a;《机器学习高级实践&#xff1a;计算广告、供需预测、智能营销、动态定价》&#xff0c;好书链接。 2023年初是人工智能爆发的里程碑式的重要阶段&#xff0c;以Open…

Linux MeterSphere一站式开源持续测试平台远程访问

文章目录 前言1. 安装MeterSphere2. 本地访问MeterSphere3. 安装 cpolar内网穿透软件4. 配置MeterSphere公网访问地址5. 公网远程访问MeterSphere6. 固定MeterSphere公网地址 前言 MeterSphere 是一站式开源持续测试平台, 涵盖测试跟踪、接口测试、UI 测试和性能测试等功能&am…

C++ 红黑树插入详解

前言 在之前&#xff0c;我们学习了AVL树&#xff0c;知道了AVL树是一个平衡二叉搜索树&#xff0c;如果没学过AVL树&#xff0c;这篇文章看起来会很吃力&#xff0c;不清楚如何旋转的&#xff0c;建议可以先看AVL树的内容。 今天我们要学习的红黑树&#xff0c;他也是一颗平衡…