学习笔记:151617181920工具、检索RAG、数据库、回调函数、CAMEL、BabyAGI | 豆包MarsCode AI刷题

73 阅读3分钟

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:依据当前响应、总任务,创建任务列表。(生成任务列表 + 优先级排序)