Other
BabyAGI是一个基于OpenAI的AI支持的任务管理系统(Python脚本),同时也是一个轻量化的人工智能自主代理框架。
系统特点 基于目标的任务管理:BabyAGI能够基于先前任务的结果和预定义的目标创建任务,并根据这些任务执行相应的操作。 动态优先级排序:它能够动态地调整任务的优先级,确保重要的任务能够优先被执行。 使用OpenAI和Pinecone API:BabyAGI通过调用OpenAI的自然语言处理(NLP)能力来创建和执行任务,同时使用Pinecone(或Chroma/Weaviate)来存储和检索任务结果,以获取上下文信息。
主要模块 任务生成Agent:通过调用OpenAI的API,基于当前目标和前一个任务的结果来创建新任务。它接受四个参数:目标、前一个任务的结果、任务描述和当前任务列表,然后返回一个包含新任务名称的字典列表。 执行Agent:系统的核心部分,它利用OpenAI的API来处理任务。它接受两个参数:目标和任务,然后向OpenAI的API发送一个提示(prompt),并返回任务的结果。 优先级排序Agent:对任务列表进行重新排序。它接受一个参数,即当前任务的ID,然后向OpenAI的API发送一个提示,并返回一个重新排序的任务列表。
15 工具
工具是代理的武器。
某些工具直接初始化,某些工具(如链、代理)需要llm。
16 检索增强生成RAG
- RAG工作原理:(不仅依赖于训练数据,还可源于大型外部数据库)
检索:从大型文档中查找相关文档,如各种向量数据库。
上下文编码:将相关文档与原始输入问题一起编码。
生成:依据大模型生成回答。
- 过程
文档加载:不同形式
文本转换:切割文本、过滤冗余等
文本嵌入:文本转换为数值类型,方便计算机理解
存储嵌入:缓存存储(文本哈希处理)、向量数据库
数据检索:各种检索器
index.query(query) #检索时启用chain
索引
17 数据库
告诉智能体我们想查什么,自动生成数据库语句查找,并为我们解析展现。
-
创建数据库表
-
使用chain访问SQL
chain(llm , db)
- 使用Agent访问SQL
agent_executor ReAct风格
18 回调函数
19 CAMEL (角色扮演)
-
交流、代理、心智、探索、 LLM
1、交互式代理
2、角色扮演
3、启示式提示
1、场景和角色设置:任务指定代理
2、提示模板设计:角色提示、任务明确指示(具体)
- 应用实例
1、CAMELAgent类:管理语言模型交互
2、预设角色、任务
3、任务指定代理:任务具体化
4、系统消息模板:每个角色的提示
5、创建Agent,引导二者聊天
20 BabyAGI (自治代理)
ChatGPT:复杂任务需用户多次提示;
Auto-GPT:复杂任务-->若干子任务、自我提示;
BabyAGI:依据当前响应、总任务,创建任务列表。(生成任务列表 + 优先级排序)