babyagiAI 任務(wù)管理系統(tǒng)
babyagi Python 腳本是一個(gè)人工智能任務(wù)管理系統(tǒng)的示例。
該系統(tǒng)使用 OpenAI 和 Pinecone API 來創(chuàng)建任務(wù)、確定任務(wù)的優(yōu)先級和執(zhí)行任務(wù),背后的主要思想是根據(jù)先前任務(wù)的結(jié)果和預(yù)定義的目標(biāo)創(chuàng)建任務(wù)。然后,該腳本使用 OpenAI 的自然語言處理 (NLP) 功能根據(jù)目標(biāo)創(chuàng)建新任務(wù),并使用 Pinecone 存儲和檢索上下文的任務(wù)結(jié)果。
如何使用
執(zhí)行如下步驟:
- 通過
git clone https://github.com/yoheinakajima/babyagi.git和cd將存儲庫克隆到克隆的存儲庫中。 - 安裝所需的包:
pip install -r requirements.txt - 將 .env.example 文件復(fù)制到 .env:
cp .env.example .env并將在此處設(shè)置以下變量。 - 在 OPENAI_API_KEY、OPENAPI_API_MODEL 和 PINECONE_API_KEY 變量中設(shè)置 OpenAI 和 Pinecone API 密鑰。
- 在 PINECONE_ENVIRONMENT 變量中設(shè)置 Pinecone 環(huán)境。
- 在 TABLE_NAME 變量中設(shè)置將存儲任務(wù)結(jié)果的表的名稱。
- (可選)在 OBJECTIVE 變量中設(shè)置任務(wù)管理系統(tǒng)的目標(biāo)。
- (可選)在 INITIAL_TASK 變量中設(shè)置系統(tǒng)的第一個(gè)任務(wù)。
- Run the script. 運(yùn)行腳本。
運(yùn)行原理
該腳本通過運(yùn)行執(zhí)行以下步驟的無限循環(huán)來工作:
- 從任務(wù)列表中提取第一個(gè)任務(wù)。
- 將任務(wù)發(fā)送給執(zhí)行代理,執(zhí)行代理使用 OpenAI 的 API 根據(jù)上下文完成任務(wù)。
- 豐富結(jié)果,并將其存儲在 Pinecone 中。
- 創(chuàng)建新任務(wù),并根據(jù)目標(biāo)和先前任務(wù)的結(jié)果重新排列任務(wù)列表的優(yōu)先級。
其中 execution_agent() 函數(shù)是使用 OpenAI API 的地方,它有兩個(gè)參數(shù):目標(biāo)和任務(wù)。它向 OpenAI 的 API 發(fā)送提示,返回任務(wù)的結(jié)果。提示包括對 AI 系統(tǒng)任務(wù)、目標(biāo)和任務(wù)本身的描述。然后將結(jié)果作為字符串返回。
task_creation_agent() 函數(shù)是 OpenAI 的 API 用于根據(jù)目標(biāo)和先前任務(wù)的結(jié)果創(chuàng)建新任務(wù)的地方。該函數(shù)有四個(gè)參數(shù):目標(biāo)、上一個(gè)任務(wù)的結(jié)果、任務(wù)描述和當(dāng)前任務(wù)列表。然后它向 OpenAI 的 API 發(fā)送提示,該 API 以字符串形式返回新任務(wù)列表。該函數(shù)然后將新任務(wù)作為字典列表返回,其中每個(gè)字典都包含任務(wù)的名稱。
prioritization_agent() 函數(shù)是 OpenAI 的 API 用于重新確定任務(wù)列表優(yōu)先級的地方。該函數(shù)有一個(gè)參數(shù),即當(dāng)前任務(wù)的 ID。它向 OpenAI 的 API 發(fā)送提示,該 API 將重新確定優(yōu)先級的任務(wù)列表作為編號列表返回。
最后,該腳本使用 Pinecone 來存儲和檢索上下文的任務(wù)結(jié)果。該腳本根據(jù) YOUR_TABLE_NAME 變量中指定的表名創(chuàng)建一個(gè) Pinecone 索引。然后使用 Pinecone 將任務(wù)的結(jié)果連同任務(wù)名稱和任何其他元數(shù)據(jù)一起存儲在索引中。
支持的模型
此腳本適用于所有 OpenAI 模型,以及通過 Llama.cpp 的 Llama,默認(rèn)模型是 gpt-3.5-turbo。
要使用不同的模型,請通過 OPENAI_API_MODEL 指定它或使用命令行。
