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

DB-GPT系列(六):数据Agent开发part1-光速创建AWEL Agent应用

前面的系列文章介绍了:

DB-GPT的总体功能

DB-GPT部署(镜像一键部署、源码部署)

DB-GPT底层模型设置(开源模型、在线模型)

DB-GPT的基础对话、知识库对话、excel对话

DB-GPT的数据库对话、数据对话、仪表盘对话

通过这些内容,我们已经可以进行一些简单的数据对话分析,覆盖了excel数据文件、数据库、知识库、数据分析报告等常见且重要的数据分析场景。

接下来的几篇文章将介绍DB-GPT的数据Agent开发的内容。

一、为什么需要进行数据Agent开发

虽然DB-GPT提供了一系列的AI数据分析的产品功能(链接DB-GPT六大基础应用场景),可以在此基础上进行数据分析。但是,实际业务分析场景中,往往会涉及更加复杂的数据分析任务。这些复杂任务可能涉及用户意图识别、外部工具调用、复杂聚合逻辑、多分支工作流等。在这些复杂情况下,DB-GPT原生的数据分析功能就难以一一覆盖。

因此,DB-GPT开源了一整套Agent搭建框架,通过AWEL(Agentic Workflow Expression Language) ,也就是智能体工作流编排,让围绕数据库构建大模型应用更简单,更方便。

DB-GPT六大基础应用场景,实际上就是不同的Agent,例如ChatData其实就是一个能够链接多种不同类型数据库并进行SQL代码编写和执行的Agent,而ChatKnowledge则是一个基于RAG的私有知识库问答Agent。

二、Agent与AWEL的关系

AWEL(Agentic Workflow Expression Language)是是 DB-GPT 的工作流程编排语言,简洁灵活地定义Agents 间交互与任务执行。实际上AWEL是一套专为大模型应用开发设计的智能体工作流表达语言,提供了强大的功能和灵活性。

三、AWEL简要介绍

1、AWEL特点

AWEL有下面一些特点:

  • 分层设计:灵活易用,底层操作符与高层 DSL 结合。
  • 简化开发:快速构建数据处理流程,减少代码量。
  • 自动化编排:支持条件、循环,实现流程自动化。
  • 可读性强:简洁语法,便于团队协作与维护。

通过 AWEL API 可以专注于大模型应用业务逻辑的开发,而不需要关注繁琐的模型和环境细节,AWEL 采用分层 API 的设计, AWEL 的分层 API 设计架构如下图所示:

2、AWEL分层设计

AWEL在设计上分为三个层次,依次为算子层、AgentFrame层以及DSL层

(1)算子层

算子层是指LLM应用开发过程中一个个最基本的操作原子,比如在一个RAG应用开发时。 检索、向量化、模型交互、Prompt处理等都是一个个基础算子。 在后续的发展中,框架会进一步对算子进行抽象与标准化设计。 可以根据标准API快速实现一组算子。

(2)AgentFrame层

AgentFrame层将算子做进一步封装,可以基于算子做链式计算。 这一层链式计算也支持分布式,支持如filter、join、map、reduce等一套链式计算操作。 后续也将支持更多的计算逻辑。

(3)DSL层

DSL层提供一套标准的结构化表示语言,可以通过写DSL语句完成AgentFrame与算子的操作,让围绕数据编写大模型应用更具确定性,避免通过自然语言编写的不确定性,使得围绕数据与大模型的应用编程变为确定性应用编程。

三、使用AWEL工作流创建数据Agent应用

在DB-GPT工作流的管理与编辑界面,可以通过智能体表达式语言AWEL来编排智能体Agent,形成确定工作流, 这些工作流可以用于后续的应用创建。

1、5分钟创建第一个AWEL工作流应用

点击“应用管理 -> AWEL工作流 -> 创建工作流”创建工作流。

进入后会看到有不同类型的的算子。关于各个算子的用法,后续文章将会详细描述,目前先简单了解下。

目前Agent算子分为算子Operator和资源Resource两种:

  • Operator主要用于Agent直接的上下文交互和Agent之间的串联
  • Resource主要是实际工作的Agent(Awel Layout Agent),和Agent需要绑定的资源(Awel Agent Resource 例如知识库),以及大模型相关配置(Awel Agent LLM Config)。

注意高级筛选按钮,切换到全部。

找到并选中AWEL Agent Operator拖拉到画布中。

AWEL Agent Operator Agent算子,用于串联不同的Agent,涉及参数:

  • AgentGenerateContext: 用于保存Agent直接的上下文信息
  • AwelAgent: 绑定和串联具体的Agent,需要和Agent资源型算子进行绑定

分别点击+选中Agent TriggerAwel Layout Agent

进行工作流连线编排

重复上面2步,构建如下的工作流。

分别需要点击+拖入画布中的算子有:AWEL Agent Resource KnowledgeAWEL Agent LLM ConfigDefault LLM Client

点击右上角保存工作流。

在我写这篇文章的时候,搭建的DB-GPT使用的是0.6.1版本。保存工作流会出现如下错误,提示Request error,Unable to generate pydantic-core schema for <class 'dbgpt.core.awel.dag.base.DAG'>

经查代码,主要是因为fastapi的版本问题导致,修改一下fastapi版本,再重启DB-GPT就可以了。

# 修改fastapi版本
pip install fastapi==0.111.0 
# 重启DB-GPT(在DB-GPT主目录下)
python dbgpt/app/dbgpt_server.py

不再报错,保存工作流成功。

应用管理->AWEL工作流中可查看创建的工作流。

创建应用,选择任务流编排模式。

绑定创建好的AWEL工作流。

进入应用进行对话。

2、利用社区资源,快速创建复杂的AWEL聚合应用

应用管理->DBGPTS社区->从社区Git仓库刷新更新社区应用

刷新后如下图所示。

选择一个应用从DBGPTS社区下载安装到本地,这里选择db-expert-assisant。

在我写这篇文章的时候,搭建的DB-GPT使用的是0.6.1版本。点击Install时会报错,提示错误

Message: 'Plugin Install Error!' Arguments: (ValueError("Install dbgpts [agents:summarizer-agent-example] Failed! [Errno 2] No such file or directory: 'poetry'", FileNotFoundError(2, 'No such file or directory')),)

这里只需要补充安装poetry的python包就可以解决。

# 安装poetry包
pip install poetry 
# 重启DB-GPT(在DB-GPT主目录下)
python dbgpt/app/dbgpt_server.py

创建应用,选择任务流编排模式。

绑定创建好的AWEL工作流。

进入应用进行对话。


http://www.kler.cn/a/398225.html

相关文章:

  • 基于视觉智能的时间序列基础模型
  • ubuntu 安装kafka-eagle
  • 【Chapter 3】Machine Learning Classification Case_Prediction of diabetes-XGBoost
  • Redis实战案例(黑马点评)
  • 神经网络的正则化(一)
  • 动态规划-完全背包问题——518.零钱兑换II
  • Java 全栈知识体系
  • Oracle Instant Client 23.5安装配置完整教程
  • django框架-settings.py文件的配置说明
  • 【C语言】前端未来
  • 公开一下我的「个人学习视频」!
  • 【系统架构设计师】真题论文: 论基于 REST 服务的 Web 应用系统设计(包括解题思路和素材)
  • SQL面试题——日期交叉问题
  • PMP–一、二、三模、冲刺–分类–5.范围管理–技巧–引导
  • 三种网络模式固定IP
  • python关键字和内置函数有哪些?
  • AIGC学习笔记(5)——AI大模型开发工程师
  • Scala-迭代器
  • 31-Shard Allocation Awareness(机架感知)
  • 渑池县中药材产业党委莅临河南广宇企业管理集团有限公司参观交流
  • C++和OpenGL实现3D游戏编程【连载18】——加载OBJ三维模型
  • Elasticsearch 查询时 term、match、match_phrase、match_phrase_prefix 的区别
  • UNIAPP发布小程序调用讯飞在线语音合成+实时播报
  • Ubuntu nginx let‘s encrypt免费 https 设置
  • 针对股票评论的情感分类器
  • Spring Cloud Eureka 服务注册与发现