构建LangChain应用程序的示例代码:1、AutoGPT

AutoGPT

实现https://github.com/Significant-Gravitas/Auto-GPT,但是使用了LangChain的基础组件(大型语言模型(LLMs)、提示模板(PromptTemplates)、向量存储(VectorStores)、嵌入(Embeddings)、工具(Tools))。

设置工具

我们将设置一个带有搜索工具、写文件工具和读文件工具的AutoGPT。

from langchain.agents import Tool
from langchain_community.tools.file_management.read import ReadFileTool
from langchain_community.tools.file_management.write import WriteFileTool
from langchain_community.utilities import SerpAPIWrapper

search = SerpAPIWrapper()
tools = [
    Tool(
        name="search",
        func=search.run,
        description="当你需要回答有关当前事件的问题时非常有用。你应该提出针对性的问题",
    ),
    WriteFileTool(),
    ReadFileTool(),
]

设置内存

这里的内存用于代理的中间步骤。

from langchain.docstore import InMemoryDocstore
from langchain_community.vectorstores import FAISS
from langchain_openai import OpenAIEmbeddings

# 定义你的嵌入模型
embeddings_model = OpenAIEmbeddings()

# 初始化向量存储为空
import faiss

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

设置模型和AutoGPT

初始化一切!我们将使用ChatOpenAI模型。

from langchain_experimental.autonomous_agents import AutoGPT
from langchain_openai import ChatOpenAI

agent = AutoGPT.from_llm_and_tools(
    ai_name="Tom",
    ai_role="Assistant",
    tools=tools,
    llm=ChatOpenAI(temperature=0),
    memory=vectorstore.as_retriever(),
)

# 设置详细模式为真
agent.chain.verbose = True

运行示例

这里我们将让它为旧金山今天的天气写一份报告。

agent.run(["write a weather report for SF today"])

聊天历史内存

除了保存代理即时步骤的内存外,我们还有一个聊天历史内存。默认情况下,代理将使用’ChatMessageHistory’,并且可以更改。当你想使用不同类型的内存时,例如’FileChatHistoryMemory’,这非常有用。

from langchain_community.chat_message_histories import FileChatMessageHistory

agent = AutoGPT.from_llm_and_tools(
    ai_name="Tom",
    ai_role="Assistant",
    tools=tools,
    llm=ChatOpenAI(temperature=0),
    memory=vectorstore.as_retriever(),
    chat_history_memory=FileChatMessageHistory("chat_history.txt"),
)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hugo_Hoo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值