babyagi

AI 任务管理系统
授权协议 MIT
开发语言 Python
所属分类 神经网络/人工智能、 自然语言处理
软件类型 开源软件
地区 不详
投 递 者 端木野
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

babyagi Python 脚本是一个人工智能任务管理系统的示例。

该系统使用 OpenAI 和 Pinecone API 来创建任务、确定任务的优先级和执行任务,背后的主要思想是根据先前任务的结果和预定义的目标创建任务。然后,该脚本使用 OpenAI 的自然语言处理 (NLP) 功能根据目标创建新任务,并使用 Pinecone 存储和检索上下文的任务结果。

如何使用

执行如下步骤:

  1. 通过 git clone https://github.com/yoheinakajima/babyagi.git  cd 将存储库克隆到克隆的存储库中。
  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. Run the script. 运行脚本。

运行原理

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

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

其中 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 指定它或使用命令行。

 相关资料
  • 每个新创建的任务都是 org.gradle.api.DefaultTask 类型, org.gradle.api.Task 的标准实现,DefaultTask 所有的域都是私有的,意味着他们只能通过 setter 和 getter 方法来访问,庆幸的是Groovy提供了一些语法糖来允许你通过名字来使用域。 管理项目的版本 许多公司或者开源组织有他们自己的发布版本的措施,一般用主版本号和次版本号来表

  • 用 ceph-deploy 建立一个集群后,你可以把客户端管理密钥和 Ceph 配置文件发给其他管理员,以便让他用 ceph 命令管理集群。 创建一管理主机 要允许一主机以管理员权限执行 Ceph 命令,用 admin 命令: ceph-deploy admin {host-name [host-name]...} 分发配置文件 要把改过的配置文件分发给集群内各主机,可用 config push

  • 在San CLI中主要通过san serve和san build命令进行生产和开发环境的打包,San的脚手架工程内置了四个命令,包括启动本地服务、生产环境打包、打包分析、现代模式打包等,脚手架工程的package.json内可执行的命令有: npm run start // 打包+启动本地服务 npm run build // 打包发布 npm run analyzer // 打包分析 npm r

  • 任务管理(又称 构建)工具 任务管理/构建 工具: Gulp Grunt Tasking/build and more tools: Brunch Mimosa

  • 主要内容:Eclipse 任务管理,打开任务视图,使用任务视图Eclipse 任务管理 程序员喜欢在他们的代码中放置 TODO 标记,作为需要完成的任务的提醒。Java 代码中包含 TODO 一词的注释被识别为任务并显示在标记栏和任务视图中。 通过右键单击标记栏并选择添加任务,可以使用 Eclipse 编辑器将任务与正在编辑的文件相关联。在出现的对话框中输入任务描述并从优先级下拉列表中选择一个优先级,然后单击确定按钮。 要使用 Eclipse 编辑器移除任务

  • 管理任务 在Eclipse中用TODO标签管理任务,利用这个功能可以方便地将项目中一些需要处理的任务记录下来。 我们可以在 Java 代码中的注释添加 TODO 单词来标记一个任务,任务可以通过 Tasks(任务) 视图查看。 在Eclipse中我们可以通过鼠标右击垂直标尺并选择 Add Task 菜单来添加任务,在弹出的对话框中输入任务描述信息: 如果需要删除任务,只需右击任务图标选择 Remo

  • 我想知道有没有一种方法可以在显示系统对话框时获取事件(例如任务管理器、关闭警报、...)。 我可以通过下面的意图关闭我的活动中的系统对话框 但是在我的代码中,我需要知道屏幕上显示了一个系统对话框(它们可以是任务管理器/关闭对话框……),这样我就可以调用上面的代码来关闭它。 我搜索了意图过滤器没有找到。

  • 管理任务 程序员喜欢在他们的代码中放置TODO标记,作为需要完成的任务的提醒。 Java代码中包含单词TODO的注释被识别为任务并显示在标记栏和“任务”视图中。 通过右键单击标记栏并选择“添加任务”,可以使用eclipse编辑器将任务与正在编辑的文件相关联。 在出现的对话框中输入任务说明并从优先级下拉列表中选择优先级,然后单击“确定”按钮。 要使用Eclipse编辑器删除任务,请右键单击标记栏中的