
API網關如何發展:更輕、更智能、云原生
BabyAGI通過運行一個無限循環來工作, 該循環執行以下步驟:
execution_agent()函數使用 OpenAI API。它接受兩個參數:目標和任務,然后向 OpenAI 的 API 發送一個 Prompt(包括 AI 系統任務的描述, 目標和任務本身), 該 API 結果以 string 形式返回。
task_creation_agent()函數使用 OpenAI API 根據目標和前一個任務的結果創建新任務。該函數接受 4 個參數:目標, 前一個任務的結果, 任務描述和當前任務列表。然后它向 OpenAI 的 API 發送一個 prompt, 該 API 返回一個新任務的 string 列表。函數然后將新任務作為字典列表返回, 其中每個字典包含任務的名稱。
prioritization_agent()函數使用 OpenAI API 對任務列表進行重新排序。該函數接受一個參數, 即當前任務的 ID。它向 OpenAI 的 API 發送一個 prompt, 該 API 返回一個重新排序的任務列表(以數字編號)。
最后, 腳本使用 Pinecone 存儲和檢索任務結果以獲取上下文。腳本根據 YOUR_TABLE_NAME 變量中指定的表名創建一個 Pinecone 索引,然后 Pinecone 將任務結果與任務名稱和任何其他元數據(metadata)一起存儲在索引中。
git clone https://github.com/yoheinakajima/babyagi.git
cd babyagi
pip install -r requirements.txt
cp .env.example .env
在.env文件中設置OPENAI_API_KEY、OPENAI_API_MODEL和PINECONE_API_KEY參數,在 PINECONE_ENVIRONMENT 變量中設置 Pinecone 環境,如果要使用weaviate,可以參考https://babyagi.org/docs/weaviate.html
指定存儲結果的變量TABLE_NAME值
通過設置BABY_NAME變量名來指定BabyAGI實例名,通過設置OBJECTIVE變量名來制定任務管理系統的目標,通過設置INITIAL_TASK變量名來制定第一個任務名。
python babyagi.py
PS:上述步驟同樣也可以部署到docker中,首先需要安裝docker和docker-compose,然后執行如下代碼:
docker-compose up
? ? ??BabyAGI支持OpenAI所有模型,也支持LLaMA模型以及它的擴展模型(通過Llama.cpp),默認模型是 gpt-3.5-turbo,要使用不同的模型, 請通過 OPENAI_API_MODEL 指定, 或者使用命令行。
LLaMA
下載最新版的Llama.cpp 并按照說明進行編譯,還需要 Llama 模型的權重,然后將 llama/main 鏈接到 llama.cpp/main, 將 models 鏈接到存放 Llama 模型權重的文件夾,接著傳入參數 OPENAI_API_MODEL=llama 或 -l 運行腳本。
PS:在任何情況下, 都不要在此 repo(倉庫)的任何地方(包括問題, 討論或拉取請求中)分享 IPFS, 磁力鏈接或任何其他模型下載鏈接。因為它們將被立即刪除。
? ? ? ?BabyAGI被設計為作為任務管理系統的一部分持續運行,持續運行此腳本可能導致 API 的使用費超高, 請務必謹慎使用并后果自負。此外, 腳本需要正確設置 OpenAI 和 Pinecone API, 因此請確保在運行腳本之前已經設置了API。
[1] https://github.com/yoheinakajima/babyagi
[2] http://babyagi.org/
Agent12
Agent · 目錄
文章轉自微信公眾號@ArronAI