BabyAGI


关于 BabyAGI

BabyAGI is an AI-powered task management system that uses OpenAI and Pinecone APIs to create, prioritize, and execute tasks.



相关文章


此 Python 脚本是一个 AI 支持的任务管理系统示例。

该系统使用 OpenAI 和 Pinecone API 创建, 优先级排序和执行任务。

该系统背后的主要思想是基于 先前任务的结果 和 预定义的目标创建任务。

脚本然后使用 OpenAI 的自然语言处理(NLP)能力根据目标创建新任务, 并使用 Pinecone /Chroma/Weaviate 存储和检索任务结果以获得上下文. 这是原始的任务驱动的自驱代理(2023 年 3 月 28 日)的简化版本.


使用说明

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

  1. 从任务列表中提取第一个任务.
  2. 将任务发送给执行代理, 该代理使用 OpenAI API 根据上下文完成任务.
  3. 丰润结果并将其存储在 Pinecone/Chroma/Weaviate 中.
  4. 基于目标和前一个任务的结果创建新任务, 并根据优先级对任务列表进行排序.

在这里插入图片描述


函数 execution_agent() 使用 OpenAI API。

它接受两个参数:目标和任务. 然后它向 OpenAI 的 API 发送一个 prompt(提示), 该 API 返回任务的结果。

Prompt 包括 AI 系统任务的描述, 目标和任务本身. 结果然后以 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)一起存储在索引中。


使用步骤

要使用此脚本, 您需要按照以下步骤操作:

  1. 通过 git clone https://github.com/yoheinakajima/babyagi.git 克隆 repository(仓库), 然后使用cd进入克隆的 repo。
  2. 安装所需的包:pip install -r requirements.txt
  3. .env.example 文件复制到 .env : cp .env.example .env。在这里, 您将设置以下变量。
  4. 在 OPENAI_API_KEY, OPENAPI_API_MODEL 和 PINECONE_API_KEY 变量中设置您的 OpenAI 和 Pinecone API 密钥.
  5. 在 PINECONE_ENVIRONMENT 变量中设置 Pinecone 环境.
  6. 在 TABLE_NAME 变量中设置存储任务结果的表的名称.
  7. (可选)在 OBJECTIVE 变量中设置任务管理系统的目标.
  8. (可选)在 INITIAL_TASK 变量中设置系统的第一个任务.
  9. 运行脚本.

上面的所有可选值也可以在命令行中指定.


Docker 容器中使用

在 docker 容器中运行系统,一步步设置你的 .env 文件,然后运行下述命令:

docker-compose up

支持的模型

此脚本适用于所有 OpenAI 模型, 以及 Llama (通过 Llama.cp)。

默认模型是 gpt-3.5-turbo。

要使用不同的模型, 请通过 OPENAI_API_MODEL 指定, 或者使用命令行。

Llama

下载最新版的Llama.cpp 并按照说明进行编译。您还需要 Llama 模型的权重。

下载后,将 LLAMA_MODEL_PATH 设置到 你要是用的模型地址。

为了方便,你可以链接 BabyAGI repo 中的 models 到你的 llama 模型地址。

接着传入参数 LLM_MODEL=llama-l 运行脚本。


警告

该脚本被设计为作为任务管理系统的一部分持续运行。

持续运行此脚本可能导致 API 的使用费超高, 请务必谨慎使用并后果自负. 此外, 脚本需要正确设置 OpenAI 和 Pinecone API, 因此请确保在运行脚本之前已经设置了 API。

BabyAGI 是一个精简版本, 它的原版Task-Driven Autonomous Agent(任务驱动的自驱代理) 是在 Twitter 分享的(Mar 28, 2023)。这个版本缩减到了 140 行:13 条注释, 22 个空白行, 以及 105 行代码. Repo 的名称源于对原始自驱代理的反馈 - 作者并不是想暗示这就是 AGI。

@yoheinakajima用爱发电创作此 repo, 他碰巧是一位 VC(风险投资人) (很想看看你们在创造什么!)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

编程乐园

请我喝杯伯爵奶茶~!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值