当前位置: 首页 > news >正文

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):"""负责生成任务的链"""@classmethoddef 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和大模型做什么。我也 是管中窥豹。只知一二。

相关文章:

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

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

二进制安全找实习记录

就安全岗而言,这里笔者仅仅面试了腾讯的科恩实验室内核安全和浏览器安全(其它的就面了一下前后端开发,这就不说了,笔者也没打算搞开发),然后倒在了一面。然后有的问题忘记了,仅仅记录一下自己回…...

列表(list)篇(一)

文章目录 2.1 创建列表2.2 append()函数2.3 clear()函数2.4 copy()函数2.5 count()函数2.6 del2.7 enumerate()函数2.8 extend()函数2.9 index()函数 2.1 创建列表 在Python中,列表(list)是一种基础的数据结构,可以包含不同类型的…...

spring整合Sentinel

安装sentinel: 执行命令; java -jar sentinel-dashboard-1.8.6.jar 注:sentinel的默认端口为8080,容易出现tomcat的冲突。 当端口冲突,可以使用该指令修改sentinel的端口 默认账号和密码都为sentinel Springcloud整合sentinel:…...

MFC 自定义分发消息方法

重点: 1.创建一个专门自定义消息的头文件 constValue.h #define WM_MY_CUSTOM_MESSAGE (WM_USER 101) // 自定义消息ID 2.在你需要发送和接收该消息的类中,首先注册这个自定义消息。一般在窗口类(如CWnd派生类)的OnInitDialog…...

FPGA的应用方向

文章目录 FPGA是什么?FPGA的发展FPGA有哪些公司国内的FPGA发展如何?国内FPGA应用情况怎样?FPGA的发展方向有哪些?FPGA在工业界的应用有哪些?FPGA在科研界的方向有哪些?FPGA在高频信号处理的应用场景FPGA应用…...

河南大学大数据平台技术实验报告二

大数据平台技术课程实验报告 实验二:HDFS操作实践 姓名:杨馥瑞 学号:2212080042 专业:数据科学与大数据技术 年级:2022级 主讲教师:林英豪 实验时间:2024年3月15日3点 至 2024年3月15日4点40 …...

Spring Cloud Gateway如何实现熔断

Spring Cloud Gateway熔断集成 熔断应用: 金融市场中的熔断机制:在金融交易系统中,熔断机制(Circuit Breaker)是一种市场保护措施,旨在预防市场剧烈波动时可能导致的系统性风险。当某个基准指数&#xff08…...

2403d,d的com哪里错了

原文 感谢任意见解.细节: >dmd --version DMD64 D Compiler v2.107.0参考: ComObject类 IUnknown接口 我只使用了ComObject类和隐式继承了IUnknown接口,用用ImportC编译并包含以下内容的comheaders.c编写了一些COM测试代码. #define WINVER 0x0A00 #define _WIN32_WINNT…...

LeetCode151:反转字符串中的单词

题目描述 给你一个字符串 s ,请你反转字符串中 单词 的顺序。 单词 是由非空格字符组成的字符串。s 中使用至少一个空格将字符串中的 单词 分隔开。 返回 单词 顺序颠倒且 单词 之间用单个空格连接的结果字符串。 注意:输入字符串 s中可能会存在前导空…...

Linux入门-常见指令及权限理解

目录 1、Linux背景 1.1、发展历史 1.2、开源 1.3Linux企业应用现状 2、Linux下的基本命令 2.1、ls 指令 2.2、pwd 命令 2.3、cd 命令 2.4、touch命令 2.5、mkdir 命令 2.6、rmdir 指令和 rm指令 2.7 man 指令 2.8、cp指令 2.9、mv 指令 2.10 cat 2.11 more 2…...

找工作的经验总结一——渠道与简历

关于简历与面试的经验总结,也可以说是关于找工作的方法论。 这里我们用第一性原理的方法论来分析找工作这件事。 首先,我们的目的是什么? 当然是找工作,不论你是大学刚毕业,还是创业失败,或者是在家闲着…...

第 126 场 LeetCode 双周赛题解

A 求出加密整数的和 模拟 class Solution { public:int sumOfEncryptedInt(vector<int> &nums) {int res 0;for (auto x: nums) {string s to_string(x);char ch *max_element(s.begin(), s.end());for (auto &c: s)c ch;res stoi(s);}return res;} };B 执行…...

固态浸压计

Solid State Dip Meter(固态浸没仪/固态浸压计) 是真空管栅极浸入式仪表的固态半导体版本。它是一种用于测量 LC 电路谐振频率的仪器。LC 电路是由电感 (L) 和电容 (C) 组成的电路。当电感的感抗与电容的容抗相互抵消时&#xff0c;这些元件可以谐振于特定频率。 固态浸入式仪…...

Ubuntu上搭建TFTP服务

Ubuntu上搭建TFTP服务 TFTP服务简介搭建TFTP服务安装TFTP服务修改配置文件 重启服务 TFTP服务简介 TFTP是一个基于UDP协议实现的用于在客户机和服务器之间进行简单文件传输的协议&#xff0c;适用于开销不大、不复杂的应用场合。TFTP协议专门为小文件传输而设计&#xff0c;只…...

SpringBoot3框架,事件和监听器、SPI

事件和监听器 生命周期监听 自定义监听器的步骤&#xff1a; 编写SpringApplicationRunListener实现类&#xff08;各个实现方法的功能写在其sout内&#xff09; public class MyAppListener implements SpringApplicationRunListener {Overridepublic void starting(Configu…...

sadtalker-api/

———— 下载sadtalker工程文件&#xff0c;包括844个模型 。。。。。。。。。。。。。。。。 配置环境&#xff1a; pip源&#xff0c;设置&#xff1a; pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple anaconda prompt, 进入命令行 how在 …...

vue+elementUI实现指定列的单元格可编辑

template中的代码如下&#xff1a; <div v-if"(item.label 高压侧 || item.label 低压侧)&&coloumnHeader.label 单柱片数"><div class"editableCell"><div v-if"item.label 高压侧" dblclick"changeValue(sco…...

RK3568平台开发系列讲解(基础篇)内核是如何发送事件到用户空间

🚀返回专栏总目录 文章目录 一、相关接口函数二、udevadm 命令三、实验沉淀、分享、成长,让自己和他人都能有所收获!😄 一、相关接口函数 kobject_uevent 是 Linux 内核中的一个函数, 用于生成和发送 uevent 事件。 它是 udev 和其他设备管理工具与内核通信的一种方式。…...

力扣---打家劫舍---动态规划

思路 1&#xff1a; 我将res[i]定义为&#xff1a;一定要取第 i 个房子的前提下&#xff0c;能获取的最大金额。那么直接用cnt从头记录到尾&#xff0c;每个房子的res最大值即是答案。那么递推公式是什么&#xff1f;res[i]max(res[i-2],res[i-1],...,res[0])nums[i]。数组初始…...

Python爬虫实战:研究MechanicalSoup库相关技术

一、MechanicalSoup 库概述 1.1 库简介 MechanicalSoup 是一个 Python 库,专为自动化交互网站而设计。它结合了 requests 的 HTTP 请求能力和 BeautifulSoup 的 HTML 解析能力,提供了直观的 API,让我们可以像人类用户一样浏览网页、填写表单和提交请求。 1.2 主要功能特点…...

vscode里如何用git

打开vs终端执行如下&#xff1a; 1 初始化 Git 仓库&#xff08;如果尚未初始化&#xff09; git init 2 添加文件到 Git 仓库 git add . 3 使用 git commit 命令来提交你的更改。确保在提交时加上一个有用的消息。 git commit -m "备注信息" 4 …...

多场景 OkHttpClient 管理器 - Android 网络通信解决方案

下面是一个完整的 Android 实现&#xff0c;展示如何创建和管理多个 OkHttpClient 实例&#xff0c;分别用于长连接、普通 HTTP 请求和文件下载场景。 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas…...

AI,如何重构理解、匹配与决策?

AI 时代&#xff0c;我们如何理解消费&#xff1f; 作者&#xff5c;王彬 封面&#xff5c;Unplash 人们通过信息理解世界。 曾几何时&#xff0c;PC 与移动互联网重塑了人们的购物路径&#xff1a;信息变得唾手可得&#xff0c;商品决策变得高度依赖内容。 但 AI 时代的来…...

R语言速释制剂QBD解决方案之三

本文是《Quality by Design for ANDAs: An Example for Immediate-Release Dosage Forms》第一个处方的R语言解决方案。 第一个处方研究评估原料药粒径分布、MCC/Lactose比例、崩解剂用量对制剂CQAs的影响。 第二处方研究用于理解颗粒外加硬脂酸镁和滑石粉对片剂质量和可生产…...

LLMs 系列实操科普(1)

写在前面&#xff1a; 本期内容我们继续 Andrej Karpathy 的《How I use LLMs》讲座内容&#xff0c;原视频时长 ~130 分钟&#xff0c;以实操演示主流的一些 LLMs 的使用&#xff0c;由于涉及到实操&#xff0c;实际上并不适合以文字整理&#xff0c;但还是决定尽量整理一份笔…...

在Mathematica中实现Newton-Raphson迭代的收敛时间算法(一般三次多项式)

考察一般的三次多项式&#xff0c;以r为参数&#xff1a; p[z_, r_] : z^3 (r - 1) z - r; roots[r_] : z /. Solve[p[z, r] 0, z]&#xff1b; 此多项式的根为&#xff1a; 尽管看起来这个多项式是特殊的&#xff0c;其实一般的三次多项式都是可以通过线性变换化为这个形式…...

iview框架主题色的应用

1.下载 less要使用3.0.0以下的版本 npm install less2.7.3 npm install less-loader4.0.52./src/config/theme.js文件 module.exports {yellow: {theme-color: #FDCE04},blue: {theme-color: #547CE7} }在sass中使用theme配置的颜色主题&#xff0c;无需引入&#xff0c;直接可…...

日常一水C

多态 言简意赅&#xff1a;就是一个对象面对同一事件时做出的不同反应 而之前的继承中说过&#xff0c;当子类和父类的函数名相同时&#xff0c;会隐藏父类的同名函数转而调用子类的同名函数&#xff0c;如果要调用父类的同名函数&#xff0c;那么就需要对父类进行引用&#…...

Linux入门课的思维导图

耗时两周&#xff0c;终于把慕课网上的Linux的基础入门课实操、总结完了&#xff01; 第一次以Blog的形式做学习记录&#xff0c;过程很有意思&#xff0c;但也很耗时。 课程时长5h&#xff0c;涉及到很多专有名词&#xff0c;要去逐个查找&#xff0c;以前接触过的概念因为时…...