15|BabyAGI:根据气候变化自动制定鲜花存储策略

一种新型的代理——Autonomous Agents(自治代 理或自主代理), 在 LangChain 的代理、工具和记忆这些组件的支持下,它们能够在无需外部干预的情况下自主 运行,这在真实世界的应用中具有巨大的价值

AutoGPT

它的主要功能是自动链接多个任务,以实现用户设定的大目标
用户只需提供一个提示或一组自然语言指令,Auto-GPT 就会通过自动化多步提示过程,将目标分解为子任务,以达到其目标。
技术上,Auto-GPT 使用短期记忆管理来保存上下文;同时 Auto-GPT 是多模态的,可以处 理文本和图像作为输入。
从具体应用上说,Auto-GPT 可以用于各种任务,例如生成文本、执行特定操作和进行网络搜 索等。它还可以作为研究助手,帮助用户进行科学研究、市场研究、内容创建、销售线索生 成、业务计划创建、产品评论、播客大纲制定等。
当然,Auto-GPT 并不完善,作为一个实验性质的项目,它还存在诸多挑战,比如它的运行成 本可能很高,而且它可能会分心或陷入循环。技术上,它的缺陷是没有长期记忆。

Baby AGI

你向系统提出一个目标之后,它将不断优先考虑需要实现或完成的任务,以 实现该目标。具体来说,系统将形成任务列表,从任务列表中拉出优先级最高的第一个任务, 使用 OpenAI API 根据上下文将任务发送到执行代理并完成任务,一旦这些任务完成,它们就 会被存储在内存(或者 Pinecone 这类向量数据库)中,然后,根据目标和上一个任务的结果 创建新任务并确定优先级。
image.png

HuggingGPT

HuggingGPT 的工作流程包 括四个阶段

  1. 任务规划:LLM(例如 ChatGPT)解析用户请求,生成任务列表,并确定任务之间的执行 顺序和资源依赖关系。
  2. 模型选择:LLM 根据 Hugging Face 上的专家模型描述,为任务分配适当的模型。
  3. 任务执行:整合各个任务端点上的专家模型,执行分配的任务。
  4. 响应生成:LLM 整合专家的推断结果,生成工作流摘要,并给用户提供最终的响应。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

根据气候变化自动制定鲜花存储策略

我们就解析一下 LangChain 中 BabyAGI 的具体实现
我们导入相关的库

# 设置API Key
import os
os.environ["OPENAI_API_KEY"] = 'Your OpenAI API Key

# 导入所需的库和模块
from collections import deque
from typing import Dict, List, Optional, Any
from langchain.chains import LLMChain
from langchain.prompts import PromptTemplate
from langchain.embeddings import OpenAIEmbeddings
from langchain.llms import BaseLLM, OpenAI
from langchain.vectorstores.base import VectorStore
from pydantic import BaseModel, Field
from langchain.chains.base import Chain
from langchain.vectorstores import FAISS
import faiss
from langchain.docstore import InMemoryDocstore

初始化 OpenAIEmbedding 作为嵌入模型,并使用 Faiss 作为向量数据库存储任 务信息

# 定义嵌入模型
embeddings_model = OpenAIEmbeddings()
# 初始化向量存储
embedding_size = 1536
index = faiss.IndexFlatL2(embedding_size)
vectorstore = FAISS(embeddings_model.embed_query, index, InMemoryDocstore({}), {})

定义任务生成链,基于给定的条件,这个链可以创建新任务

# 任务生成链
class TaskCreationChain(LLMChain):
    """负责生成任务的链"""
    @classmethod
    def from_llm(cls, llm: BaseLLM, verbose: bool = True) -> LLMChain:
        """从LLM获取响应解析器"""
        task_creation_template = (
            "You are a task creation AI that uses the result of an execution agent"
            " to create new tasks with the following objective: {objective},"
            " The last completed task has the result: {result}."
            " This result was based on this task description: {task_description}."
            " These are incomplete tasks: {incomplete_tasks}."
            " Based on the result, create new tasks to be completed"
            " by the AI system that do not overlap with incomplete tasks."
            " Return the tasks as an array."
        )
        prompt = PromptTemplate(
            template=task_creation_template,
            input_variables=[
                "result",
                "task_description",
                "incomplete_tasks",
                "objective",
            ],
        )
        return cls(prompt=prompt, llm=llm, verbose=verbose)

定义任务优先级链,这个链负责重新排序任务的优先级。给定一个任务列表,它会返回 一个新的按优先级排序的任务列表。

***************
从结构上看,内容以循环方式进行组织,首先是 TASK LIST(任务列表),接着是 NEXT TASK(下一个任务),然后是 TASK RESULT(任务结果)。
每个任务结果似乎都是基于前一个任务的输出。随着自主代理思考的逐步深入,子任务的重点 从获取当前的天气数据,到确定最佳的花朵储存策略,再到对策略的实际执行和调整。
6 轮循环之后,在任务的最终结果部分提供了具体的步骤和策略,以确保花朵在最佳的条件下 储存。至于这个策略有多大用途,就仁者见仁智者见智了吧。

image.png

从目前项目需求的角度来讲,LangChain在企业应用较多的地方还是通过企业内部的文档 资料,开发RAG文档系统,用于资料检索。目前有很多这方面的项目,研究型的,以及企业希望实 际部署的。 从纯AI应用角度,我看到有合作的初创公司在开发基于LLM的个人助理。从产品设计的角度,发布的 App会比单纯使用ChatGPT更方遍,比如说可以根据你手机内的图片自动记账,自动添加行程表什么 的。 很多可能性。同学也可以多参与一些AI的峰会,交流会。看看大家都在用AI和大模型做什么。我也 是管中窥豹。只知一二。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/470159.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Win11用户必备:轻松将右键菜单改回Win10的几种方法

Win11系统的右键菜单相较于Win10系统有所改变,许多用户可能更喜欢Win10系统的样式。下面小编将分享几种方法,帮助用户将Win11的右键菜单恢复为Win10的风格。这些方法简单易行,用户只需按照步骤进行操作即可完成设置,让Win11电脑上…

Flutter 初始WidgetState 简单应用案例分析

本系列文章主要整理Flutter的知识汇总,由浅入深,从Widget的搭建到其中的原理。本文还是围绕Widget在开发中应用和理解。 关于Flutter环境配置和首次创建可以参考前面文章。链接如下: Flutter 安装部署与认识Dart语言 Flutter 使用AndroidS…

湖北省地质灾害分布数据 崩塌滑坡泥石流空间分布地质灾害详查等数据集

地质灾害是指在自然或者人为因素的作用下形成的,对人类生命财产造成的损失、对环境造成破坏的地质作用或地质现象。地质灾害在时间和空间上的分布变化规律,既受制于自然环境,又与人类活动有关,往往是人类与自然界相互作用的结果。…

代码随想录算法训练营第day36|435. 无重叠区间 、 763.划分字母区间 、 56. 合并区间

目录 435. 无重叠区间 763.划分字母区间 56. 合并区间 435. 无重叠区间 力扣题目链接(opens new window) 给定一个区间的集合,找到需要移除区间的最小数量,使剩余区间互不重叠。 注意: 可以认为区间的终点总是大于它的起点。 区间 [1,2] 和 [2,3] …

vue3实现输入框短信验证码功能---全网始祖

组件功能分析 1.按键删除,清空当前input,并跳转prevInput & 获取焦点,按键delete,清空当前input,并跳转nextInput & 获取焦点。按键Home/End键,焦点跳转first/最后一个input输入框。ArrowLeft/ArrowRight键点击…

【日常记录】【插件】使用 html2canvas增加水印

文章目录 1、需求2、html2canvas3、实现4、参考链接 1、需求 实际开发中,经常需要将网页元素转换为图片,以便进行保存、分享或打印等用途。,一般想到的方案就是canvas 比如这个,需要把这个DOM转化成一个图片 2、html2canvas html2canvas 可以把DOM结构转…

vivado 物理优化约束、交互式物理优化

物理优化约束 Vivado Design Suite在物理优化过程中尊重DONT_TOUCH特性。它不在具有这些属性的网络或小区上执行物理优化。要加快网络选择过程中,具有DONT_TOUCH属性的网络经过预过滤,不被考虑用于物理优化。此外,还遵守Pblock分配&#xff…

ClickHouse--13--springboot+mybatis配置clickhouse

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 ClickHouse1.添加maven依赖2.配属数据源3.参数配置4.Druid连接池配置5.entity6.Mapper接口7.Mapper.xml8.controller接口9.创建一个clickhouse表10.测试 ClickHouse…

MySQL数据库概念及MySQL的安装

文章目录 MySQL数据库一、数据库基本概念1、数据2、数据表3、数据库4、数据库管理系统(DBMS)4.1 数据库的建立和维护功能4.2 数据库的定义功能4.3 数据库的操纵功能4.4 数据库的运行管理功能4.5 数据库的通信功能(数据库与外界对接&#xff0…

网络简略总结

目录 一、三次握手 四次挥手 1、三次握手:为了建立长链接进行交互即建立一个会话,使用http/https协议 2、四次挥手是一个断开连接释放服务器资源的过程 3、如果已经建立了连接,但是客户端突然出现故障了怎么办? 4、谁可以中断连接?客户端还是服务端还是都可以? 5、…

小朋友排队(蓝桥杯,acwing,归并)

题目描述: n 个小朋友站成一排。 现在要把他们按身高从低到高的顺序排列,但是每次只能交换位置相邻的两个小朋友。 每个小朋友都有一个不高兴的程度。 开始的时候,所有小朋友的不高兴程度都是 0。 如果某个小朋友第一次被要求交换&#…

解决NameError:name ‘file‘ is not defined 方法

方法1: import os base_diros.path.dirname(os.path.realpath(_file_) print(base_dir)方法2: import os base_diros.getcwd() print(base_dir)

PTA一笔画

作者 张志梅 单位 青岛大学 小丁最近迷恋上一个游戏,传说中的“一笔画”游戏。 那么什么是一笔画?如下图,顾名思义就是一笔可以完成的图。一笔画最基本的要求是在画图的过程中,笔不能离开纸,且笔所画过的线不能重复…

SAR ADC系列6——比较器输入失调电压仿真

ADC中比较器输入失调电压的仿真方法 比较器输入端输入一个共模电平(1.65V),一个斜坡信号(1.64V-1.66V) 时序大概长下面这样 测量在发生翻转时的输入电压之间的差值,进行多次蒙特卡洛的仿真 用公式计算发…

【DNDC模型】土壤碳储量、温室气体排放、农田减排、土地变化、气候变化

由于全球变暖、大气中温室气体浓度逐年增加等问题的出现,“双碳”行动特别是碳中和已经在世界范围形成广泛影响。国家领导人在多次重要会议上讲到,要把“双碳”纳入经济社会发展和生态文明建设整体布局。同时,提到要把减污降碳协同增效作为促…

mapstruct学习笔记-pojo之间的转换

1、前言 mapstruct中常用注解如Mapping,AfterMapping,BeanMapping等的使用,通过案例说明各式各样的业务pojo对象之间如何借助mapstruct完成相互之间的转换,减少代码量的同时也能突出业务逻辑流程,让你的代码里写起来更有规范可言。 2、简介 Reference Guide – MapStruct 3…

mysql中的非空间数据导入sqlserver中空间化

以下操作都在Navicat Premium 15软件中操作 1、mysql导出数据 以导出csv为例 不修改导出路径的话默认就是在桌面 设置编码UTF-8 这边还是默认,最好不要修改,如果文本识别符号为空,导入的时候可能字段会错乱 开始即可 2、导入sqlserver数据库中

排序——直接插入排序

排序之——直接插入排序 插入排序的基本思想 每次将一个待排序的记录按其关键字大小插入前面已经排好序的子序列,直到全部记录插入完成。 步骤(从小到大排序) 找到没有排序的元素标记元素将已排好序的序列中大于标记元素的往后移插入元素 …

从Excel到山海鲸:我的数据可视化升级之旅

作为一名新用户,我最近有幸体验了山海鲸可视化软件,近期山海鲸可视化产品开放了可视化编辑全部功能,并支持本地化部署功能,在使用过程中它不仅打开了我对数据可视化全新世界的大门,而且在实际操作中为我带来了不少惊喜…

深圳市蕾奥规划设计咨询股份有限公司入围《信用中国》栏目

为进一步推进商业信用体系建设,促进企业诚实守信经营,面向企业普及诚信与品牌建设的意义,指导企业加强诚信品牌建设,提升其整体竞争力,《信用中国》栏目组以诚信为内涵,在全国范围内遴选出有行业代表性的民营企业作为扶持对象,旨在通过大力宣传自主品牌,提高自主品牌影响力和认…
最新文章