受Yoheina Kajima的Babyagi的启发
Babyagi-Chroma存储库提供了免费的矢量存储解决方案Chroma,该解决方案是在本地运行的。这对于想要避免与其他向量存储选项(例如Pinecone)相关的潜在成本的用户尤其有利。
该Python脚本展示了一个利用Langchain,OpenAI和Chroma的Vector数据库来创建,优先级和执行任务的AI驱动任务管理系统的示例。该系统根据先前任务的结果和预定义的目标创建任务。然后,该脚本利用Langchain的OpenAI自然语言处理(NLP)工具包和搜索功能来基于目标创建新任务,而Chroma商店并检索了上下文的任务结果。这是原始任务驱动的自主代理的简化版本(3月28日,2023年)。
此读数涵盖以下主题:
该脚本在无限循环中执行以下步骤:
执行链通过考虑目标和上下文来处理给定的任务。它利用Langchain的LLMCHAIN执行任务。 execute_task函数采用Chroma VectorStore,一个执行链,目标和任务信息作为输入。它根据目标从向量存储中检索了最高K任务的列表,然后使用执行链执行任务,并将结果存储在矢量站中。该功能返回结果。
在此代码块中未明确定义执行链。但是,它作为参数传递给execute_task ,并且可以在代码中分别定义。它是Langchain的LLMCHAIN类的实例,该类别接受提示并根据提供的输入变量生成响应。
TaskCreationChain类采用LLMCHAIN来创建新任务。 from_llm函数使用langchain的提示板列入参数,返回新任务列表作为字符串。然后,它创建了一个任务克雷链的实例,以及自定义输入变量和指定的行为。
TaskPrioritization链类使用LLMCHAIN来确定任务的优先级。 from_llm函数通过langchain的提示板接受参数,返回新任务列表作为字符串。然后,它创建了一个任务优先链的实例,以及自定义输入变量和指定的行为。
该脚本利用色度存储,相似性搜索并检索上下文的任务结果。它根据TABLE_NAME变量中指定的表名称创建一个色度索引。 Chroma随后将任务以及任务名称和任何其他元数据一起存储在索引中。
要使用脚本,请执行以下步骤:
git clone https://github.com/alexdphan/babyagi-chroma.git和cd进入克隆目录。pip install -r requirements.txt.env.example文件复制到.env : cp .env.example .env 。在此文件中设置以下变量。OPENAI_API_KEY和SERPAPI_API_KEY中提供API键。TABLE_NAME变量中。OBJECTIVE变量中设置任务管理系统的目标。INITIAL_TASK变量中设置系统的第一个任务。python babyagi-chroma.py运行脚本。上面的所有可选值也可以在命令行上指定。
该脚本可与所有OpenAI模型一起使用。默认模型是GPT-3.5(Text-Davinci-003) 。要使用其他模型,请随时相应地修改代码。
该脚本旨在作为任务管理系统的一部分连续运行。连续运行脚本可以导致高度使用情况,因此请负责任地使用它。此外,脚本要求正确设置OpenAI API和SERP,因此请确保在运行脚本之前配置API。
为了保持简单性,在提交PRS时请遵守以下准则:
随着矢量存储的成本昂贵,目的是在使用Babyagi时提供免费存储选项。因此,此模板示例证明了将Babyagi与色度使用。
Babyagi-Chroma是Babyagi的削减版本,它也是原始任务驱动的自主代理(2023年3月28日)的简化版本,在Twitter上共享。