babyagiAI 任务管理系统
babyagi Python 脚本是一个人工智能任务管理系统的示例。
该系统使用 OpenAI 和 Pinecone API 来创建任务、确定任务的优先级和执行任务,背后的主要思想是根据先前任务的结果和预定义的目标创建任务。然后,该脚本使用 OpenAI 的自然语言处理 (NLP) 功能根据目标创建新任务,并使用 Pinecone 存储和检索上下文的任务结果。
如何使用
执行如下步骤:
- 通过
git clone https://github.com/yoheinakajima/babyagi.git
和cd
将存储库克隆到克隆的存储库中。 - 安装所需的包:
pip install -r requirements.txt
- 将 .env.example 文件复制到 .env:
cp .env.example .env
并将在此处设置以下变量。 - 在 OPENAI_API_KEY、OPENAPI_API_MODEL 和 PINECONE_API_KEY 变量中设置 OpenAI 和 Pinecone API 密钥。
- 在 PINECONE_ENVIRONMENT 变量中设置 Pinecone 环境。
- 在 TABLE_NAME 变量中设置将存储任务结果的表的名称。
- (可选)在 OBJECTIVE 变量中设置任务管理系统的目标。
- (可选)在 INITIAL_TASK 变量中设置系统的第一个任务。
- Run the script. 运行脚本。
运行原理
该脚本通过运行执行以下步骤的无限循环来工作:
- 从任务列表中提取第一个任务。
- 将任务发送给执行代理,执行代理使用 OpenAI 的 API 根据上下文完成任务。
- 丰富结果,并将其存储在 Pinecone 中。
- 创建新任务,并根据目标和先前任务的结果重新排列任务列表的优先级。
其中 execution_agent() 函数是使用 OpenAI API 的地方,它有两个参数:目标和任务。它向 OpenAI 的 API 发送提示,返回任务的结果。提示包括对 AI 系统任务、目标和任务本身的描述。然后将结果作为字符串返回。
task_creation_agent() 函数是 OpenAI 的 API 用于根据目标和先前任务的结果创建新任务的地方。该函数有四个参数:目标、上一个任务的结果、任务描述和当前任务列表。然后它向 OpenAI 的 API 发送提示,该 API 以字符串形式返回新任务列表。该函数然后将新任务作为字典列表返回,其中每个字典都包含任务的名称。
prioritization_agent() 函数是 OpenAI 的 API 用于重新确定任务列表优先级的地方。该函数有一个参数,即当前任务的 ID。它向 OpenAI 的 API 发送提示,该 API 将重新确定优先级的任务列表作为编号列表返回。
最后,该脚本使用 Pinecone 来存储和检索上下文的任务结果。该脚本根据 YOUR_TABLE_NAME 变量中指定的表名创建一个 Pinecone 索引。然后使用 Pinecone 将任务的结果连同任务名称和任何其他元数据一起存储在索引中。
支持的模型
此脚本适用于所有 OpenAI 模型,以及通过 Llama.cpp 的 Llama,默认模型是 gpt-3.5-turbo。
要使用不同的模型,请通过 OPENAI_API_MODEL 指定它或使用命令行。