首页 > 编程语言 >构建LangChain应用程序的示例代码:1、AutoGPT

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

时间:2024-05-31 17:29:18浏览次数:18  
标签:AutoGPT 示例 langchain community LangChain import tools 内存

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"),
)

标签:AutoGPT,示例,langchain,community,LangChain,import,tools,内存
From: https://blog.csdn.net/wangjiansui/article/details/139357925

相关文章

  • 大模型应用之基于Langchain的测试用例生成
    一用例生成实践效果在组内的日常工作安排中,持续优化测试技术、提高测试效率始终是重点任务。近期,我们在探索实践使用大模型生成测试用例,期望能够借助其强大的自然语言处理能力,自动化地生成更全面和高质量的测试用例。当前,公司已经普及使用JoyCoder,我们可以拷贝相关需求及设计文......
  • 5分钟明白LangChain 的输出解析器和链
    本文介绍LangChain的输出解析器OutputParser的使用,和基于LangChain的LCEL构建链。1.输出解析器OutputParser1.1、为什么需要OutputParser常规的使用LangChain构建LLM应用的流程是:Prompt输入、调用LLM、LLM输出。有时候我们期望LLM给到的数据是格式化的数据,方便做后......
  • Solidity学习-投票合约示例
    以下的合约有一些复杂,但展示了很多Solidity的语言特性。它实现了一个投票合约。当然,电子投票的主要问题是如何将投票权分配给正确的人员以及如何防止被操纵。我们不会在这里解决所有的问题,但至少我们会展示如何进行委托投票,同时,计票又是自动和完全透明的。我们的想法是......
  • React后台管理(十四)-- 完整示例页面构建教学
    文章目录前言一、组件源码+详细注释说明+技术分析二、效果展示总结前言经过了前面文章的学习,终于到最后一步了,那就是一个管理页面的构建,包括处理列表请求,搜索、重置和展开/收起等功能。结合之前封装的布局、功能相关组件,在本文只需要按需引入,统一了代码标准,减少重......
  • Langchain试用百度千帆
    之前聊了向量数据库,大模型也火了一段时间了,今天特地尝试一下基于Langchain进行百度千帆大模型的使用。Langchain相当于一个LLM编程框架,开发中无需过多关心各个大模型的接入,只需安装相关模型,统一通过Langchain去调用相关大模型进行使用。1.环境准备(1)python安装       ......
  • 【开源啦!】Langchain官方文档中文翻译项目 ——langchain-doc-zh
    【开源啦!】Langchain官方文档中文翻译项目——langchain-doc-zh一、项目简介LangChain是使用非常广的大模型编排工具,可以低代码的做大模型各种应用,有点类似在数据分析处理里面Pandas的地位。所以我有了一些想把一些工具的文档翻译成中文的想法。希望对于大家有一些帮助。......
  • 什么是状态机,用简单的java示例说明状态机的概念
    1.什么是状态机状态机(StateMachine)是一种抽象的计算模型,用于描述一个系统在不同状态之间的转换以及触发这些转换的事件。它由状态、事件、动作和转换规则组成。状态代表系统在某个时刻的行为模式;事件是引起状态转换的外部或内部信号;动作是在状态转换时执行的操作;转换规则定义......
  • golang context.Context 使用示例
    context在golang程序中经常被用到,它可以被用来携带一些变量,例如requestID,也可以用来做运行控制,比如TimeoutDeadline,或者人为逻辑控制Cancel。本实例程序用来简单展示各个context的使用方法。packagemainimport( "context" "fmt" "log" "time")typeCtxKeystring......
  • 三十二、openlayers官网示例解析Draw lines rendered with WebGL——使用WebGL动态修
     官网demo地址:DrawlinesrenderedwithWebGL这个示例展示了如何用webgl渲染矢量图形并动态修改点、线属性。首先先把基本的地图加载上去initMap(){this.map=newMap({layers:[newTileLayer({source:newXYZ({......
  • CSS3媒体查询与页面自适应示例
    CSS3媒体查询(MediaQueries)是CSS的一个强大功能,它允许你根据设备的特性(如视口宽度、分辨率等)来应用不同的样式。这在创建响应式网站(即能自动适应不同屏幕尺寸和设备的网站)时非常有用。以下是一个简单的CSS3媒体查询和页面自适应的示例:首先,我们假设有一个简单的HTML结构:<!DOCTY......