BabyAGI通過運行一個無限循環(huán)來工作, 該循環(huán)執(zhí)行以下步驟:

  1. 從任務(wù)列表中提取第一個任務(wù);
  2. 將任務(wù)發(fā)送給執(zhí)行代理, 該代理使用 OpenAI API 根據(jù)上下文完成任務(wù);
  3. 整理結(jié)果并將其存儲在 Pinecone 中;
  4. 基于目標(biāo)和前一個任務(wù)的結(jié)果創(chuàng)建新任務(wù), 并根據(jù)優(yōu)先級對任務(wù)列表進行排序。

execution_agent()函數(shù)使用 OpenAI API。它接受兩個參數(shù):目標(biāo)和任務(wù),然后向 OpenAI 的 API 發(fā)送一個 Prompt(包括 AI 系統(tǒng)任務(wù)的描述, 目標(biāo)和任務(wù)本身), 該 API 結(jié)果以 string 形式返回。

task_creation_agent()函數(shù)使用 OpenAI API 根據(jù)目標(biāo)和前一個任務(wù)的結(jié)果創(chuàng)建新任務(wù)。該函數(shù)接受 4 個參數(shù):目標(biāo), 前一個任務(wù)的結(jié)果, 任務(wù)描述和當(dāng)前任務(wù)列表。然后它向 OpenAI 的 API 發(fā)送一個 prompt, 該 API 返回一個新任務(wù)的 string 列表。函數(shù)然后將新任務(wù)作為字典列表返回, 其中每個字典包含任務(wù)的名稱。

prioritization_agent()函數(shù)使用 OpenAI API 對任務(wù)列表進行重新排序。該函數(shù)接受一個參數(shù), 即當(dāng)前任務(wù)的 ID。它向 OpenAI 的 API 發(fā)送一個 prompt, 該 API 返回一個重新排序的任務(wù)列表(以數(shù)字編號)。

      最后, 腳本使用 Pinecone 存儲和檢索任務(wù)結(jié)果以獲取上下文。腳本根據(jù) YOUR_TABLE_NAME 變量中指定的表名創(chuàng)建一個 Pinecone 索引,然后 Pinecone 將任務(wù)結(jié)果與任務(wù)名稱和任何其他元數(shù)據(jù)(metadata)一起存儲在索引中。

二、BabyAGI如何使用

Step1?克隆倉庫

git clone https://github.com/yoheinakajima/babyagi.git

cd babyagi

Step2?安裝所需要的庫

pip install -r requirements.txt

cp .env.example .env

Step3 設(shè)置OpenAI Key

    在.env文件中設(shè)置OPENAI_API_KEY、OPENAI_API_MODEL和PINECONE_API_KEY參數(shù),在 PINECONE_ENVIRONMENT 變量中設(shè)置 Pinecone 環(huán)境,如果要使用weaviate,可以參考https://babyagi.org/docs/weaviate.html

Step4 設(shè)置存儲結(jié)果的表名

指定存儲結(jié)果的變量TABLE_NAME值

Step5 配置其他變量(可選)

     通過設(shè)置BABY_NAME變量名來指定BabyAGI實例名,通過設(shè)置OBJECTIVE變量名來制定任務(wù)管理系統(tǒng)的目標(biāo),通過設(shè)置INITIAL_TASK變量名來制定第一個任務(wù)名。

Step6 運行BabyAGI


python babyagi.py

PS:上述步驟同樣也可以部署到docker中,首先需要安裝docker和docker-compose,然后執(zhí)行如下代碼:

docker-compose up

三、BabyAGI支持的模型

? ? ??BabyAGI支持OpenAI所有模型,也支持LLaMA模型以及它的擴展模型(通過Llama.cpp),默認模型是 gpt-3.5-turbo,要使用不同的模型, 請通過 OPENAI_API_MODEL 指定, 或者使用命令行。

LLaMA

      下載最新版的Llama.cpp 并按照說明進行編譯,還需要 Llama 模型的權(quán)重,然后將 llama/main 鏈接到 llama.cpp/main, 將 models 鏈接到存放 Llama 模型權(quán)重的文件夾,接著傳入?yún)?shù) OPENAI_API_MODEL=llama 或 -l 運行腳本。

PS:在任何情況下, 都不要在此 repo(倉庫)的任何地方(包括問題, 討論或拉取請求中)分享 IPFS, 磁力鏈接或任何其他模型下載鏈接。因為它們將被立即刪除。

連續(xù)運行BabyAGI的警告

? ? ? ?BabyAGI被設(shè)計為作為任務(wù)管理系統(tǒng)的一部分持續(xù)運行,持續(xù)運行此腳本可能導(dǎo)致 API 的使用費超高, 請務(wù)必謹慎使用并后果自負。此外, 腳本需要正確設(shè)置 OpenAI 和 Pinecone API, 因此請確保在運行腳本之前已經(jīng)設(shè)置了API。

參考文獻:

[1] https://github.com/yoheinakajima/babyagi

[2] http://babyagi.org/

Agent12

Agent · 目錄

文章轉(zhuǎn)自微信公眾號@ArronAI

上一篇:

LLM之Agent(一):使用GPT-4開啟AutoGPT Agent自動化任務(wù)完整指南

下一篇:

LLM之Agent(三):HuggingGPT根據(jù)用戶需求自動調(diào)用Huggingface合適的模型
#你可能也喜歡這些API文章!

我們有何不同?

API服務(wù)商零注冊

多API并行試用

數(shù)據(jù)驅(qū)動選型,提升決策效率

查看全部API→
??

熱門場景實測,選對API

#AI文本生成大模型API

對比大模型API的內(nèi)容創(chuàng)意新穎性、情感共鳴力、商業(yè)轉(zhuǎn)化潛力

25個渠道
一鍵對比試用API 限時免費

#AI深度推理大模型API

對比大模型API的邏輯推理準確性、分析深度、可視化建議合理性

10個渠道
一鍵對比試用API 限時免費