Skip to main content

BabyAGI 用户指南 (BabyAGI User Guide)

本笔记本演示了如何通过 Yohei NakajimaBabyAGI 实现 BabyAGI。BabyAGI 是一个可以根据给定目标生成并模拟执行任务的 AI 代理。

本指南将帮助您了解创建自己递归代理的组件。

尽管 BabyAGI 使用特定的向量存储/模型提供程序 (Pinecone, OpenAI),但使用 LangChain 实现的一个好处是您可以轻松地将其替换为其他选项。在本实现中,我们使用了一个 FAISS 向量存储 (因为它在本地运行且免费)。

安装和导入所需模块 (Install and Import Required Modules)

import os
from collections import deque
from typing import Dict, List, Optional, Any

from langchain import LLMChain, OpenAI, PromptTemplate
from langchain.embeddings import OpenAIEmbeddings
from langchain.llms import BaseLLM
from langchain.vectorstores.base import VectorStore
from pydantic import BaseModel, Field
from langchain.chains.base import Chain
from langchain_experimental.autonomous_agents import BabyAGI

连接到向量存储 (Connect to the Vector Store)

根据您使用的向量存储,此步骤可能会有所不同。

from langchain.vectorstores import FAISS
from langchain.docstore import InMemoryDocstore
# 定义您的嵌入模型 (Define your embedding model)
embeddings_model = OpenAIEmbeddings()
# 将向量存储初始化为空 (Initialize the vector store as empty)
import faiss

embedding_size = 1536
index = faiss.IndexFlatL2(embedding_size)
vectorstore = FAISS(embeddings_model.embed_query, index, InMemoryDocstore({}), {})

运行 BabyAGI (Run the BabyAGI)

现在是时候创建 BabyAGI 控制器并观察它尝试完成您的目标了。

OBJECTIVE = "Write a weather report for SF today"
llm = OpenAI(temperature=0)
# LLMChains 的日志记录 (Logging of LLMChains)
verbose = False
# 如果为 None,则会一直继续下去
max_iterations: Optional[int] = 3
baby_agi = BabyAGI.from_llm(
llm=llm, vectorstore=vectorstore, verbose=verbose, max_iterations=max_iterations
)
baby_agi({"objective": OBJECTIVE})
    
*****任务列表*****

1: 制作一个待办事项清单

*****下一个任务*****

1: 制作一个待办事项清单

*****任务结果*****



1. 检查今天旧金山的天气预报
2. 记录温度、湿度、风速和其他相关天气条件
3. 撰写一份总结天气预报的天气报告
4. 检查是否有任何天气警报或警告
5. 将报告与相关利益相关者共享

*****任务列表*****

2: 检查旧金山的当前温度
3: 检查旧金山的当前湿度
4: 检查旧金山的当前风速
5: 检查旧金山是否有任何天气警报或警告
6: 检查旧金山未来 24 小时的天气预报
7: 检查旧金山未来 48 小时的天气预报
8: 检查旧金山未来 72 小时的天气预报
9: 检查旧金山未来一周的天气预报
10: 检查旧金山未来一个月的天气预报
11: 检查旧金山未来三个月的天气预报
1: 为今天的旧金山撰写一份天气报告

*****下一个任务*****

2: 检查旧金山的当前温度

*****任务结果*****



我将检查旧金山的当前温度。我将使用在线天气服务获取最新信息。

*****任务列表*****

3: 检查旧金山的当前紫外线指数。
4: 检查旧金山的当前空气质量。
5: 检查旧金山的当前降水水平。
6: 检查旧金山的当前云覆盖率。
7: 检查旧金山的当前气压。
8: 检查旧金山的当前露点。
9: 检查旧金山的当前风向。
10: 检查旧金山的当前湿度水平。
1: 检查旧金山的当前温度与今年同期的平均温度。
2: 检查旧金山的当前能见度。
11: 为今天的旧金山撰写一份天气报告。

*****下一个任务*****

3: 检查旧金山的当前紫外线指数。

*****任务结果*****



旧金山的当前紫外线指数为中等。预计紫外线指数在全天保持中等水平。建议户外活动时使用防晒霜和防护服装。

*****任务结束*****






{'objective': 'Write a weather report for SF today'}