受Yoheina Kajima的Babyagi的啟發
Babyagi-Chroma存儲庫提供了免費的矢量存儲解決方案Chroma,該解決方案是在本地運行的。這對於想要避免與其他向量存儲選項(例如Pinecone)相關的潛在成本的用戶尤其有利。
該Python腳本展示了一個利用Langchain,OpenAI和Chroma的Vector數據庫來創建,優先級和執行任務的AI驅動任務管理系統的示例。該系統根據先前任務的結果和預定義的目標創建任務。然後,該腳本利用Langchain的OpenAI自然語言處理(NLP)工具包和搜索功能來基於目標創建新任務,而Chroma商店並檢索了上下文的任務結果。這是原始任務驅動的自主代理的簡化版本(3月28日,2023年)。
此讀數涵蓋以下主題:
該腳本在無限循環中執行以下步驟:
執行鏈通過考慮目標和上下文來處理給定的任務。它利用Langchain的LLMCHAIN執行任務。 The execute_task function takes a Chroma VectorStore, an execution chain, an objective, and task information as input. It retrieves a list of top k tasks from the VectorStore based on the objective, and then executes the task using the execution chain, storing the result in the VectorStore.該功能返回結果。
在此代碼塊中未明確定義執行鏈。 However, it is passed as a parameter to execute_task and can be defined separately in the code.它是Langchain的LLMCHAIN類的實例,該類別接受提示並根據提供的輸入變量生成響應。
TaskCreationChain類採用LLMCHAIN來創建新任務。 The from_llm function takes in parameters using PromptTemplate from Langchain, returning a list of new tasks as strings.然後,它創建了一個任務克雷鏈的實例,以及自定義輸入變量和指定的行為。
TaskPrioritization鏈類使用LLMCHAIN來確定任務的優先級。 The from_llm function accepts parameters through PromptTemplate from Langchain, returning a list of new tasks as strings.然後,它創建了一個任務優先鏈的實例,以及自定義輸入變量和指定的行為。
該腳本利用色度存儲,相似性搜索並檢索上下文的任務結果。 It creates a Chroma index based on the table name specified in the TABLE_NAME variable. Chroma隨後將任務以及任務名稱和任何其他元數據一起存儲在索引中。
要使用腳本,請執行以下步驟:
git clone https://github.com/alexdphan/babyagi-chroma.git and cd into the cloned directory.pip install -r requirements.txt.env.example file to .env : cp .env.example .env .在此文件中設置以下變量。OPENAI_API_KEY and SERPAPI_API_KEY .TABLE_NAME variable.OBJECTIVE variable.INITIAL_TASK variable.python babyagi-chroma.py .上面的所有可選值也可以在命令行上指定。
該腳本可與所有OpenAI模型一起使用。 The default model is gpt-3.5 (text-davinci-003) .要使用其他模型,請隨時相應地修改代碼。
該腳本旨在作為任務管理系統的一部分連續運行。連續運行腳本可以導致高度使用情況,因此請負責任地使用它。此外,腳本要求正確設置OpenAI API和SERP,因此請確保在運行腳本之前配置API。
為了保持簡單性,在提交PRS時請遵守以下準則:
隨著矢量存儲的成本昂貴,目的是在使用Babyagi時提供免費的存儲選項。因此,此模板示例證明了將Babyagi與色度使用。
Babyagi-Chroma是Babyagi的削減版本,它也是原始任務驅動的自主代理(2023年3月28日)的簡化版本,在Twitter上共享。