✨V0.5.0版本说明
经过紧锣密鼓的开发,耗时两月多时间V0.5.0版本终于跟大家见面了。V0.5.0版本是DB-GPT第一个长期维护的版本。 同时也正式确立了DB-GPT项目的长期定位: AI Native Data App Development framework with AWEL(Agentic Workflow Expression Language) and Agents. 即通过智能体表达式语言与智能体开发原生数据应用的框架。
✨版本更新介绍
在早期的版本中,DB-GPT项目默认提供了六大使用场景, 分别为:
- 数据对话
- 数据库对话
- Excel对话
- 知识库
- 智能报表
- Agents
这些场景可以满足基本的简单使用,但在大规模生产落地,尤其是面对复杂的业务场景时,还需要结合实际的业务情况做定制场景的开发,在灵活性、开发复杂度等方面都有较大的挑战。
为了进一步提升业务框架的易用性与灵活性,我们在之前的多模型管理(SMMF)、知识库、Agents、数据源、插件、以及Prompts之上, 进一步抽象了智能体编排(AWEL)与应用构建的能力。 同时为了进一步做到应用的管理与分发,我们提供了dbgpts子项目,专门管理构建在DB-GPT之上的,原生智能数据应用、AWEL通用算子、AWEL通用工作流模版以及Agents。
本次的版本变化,不影响前面六大场景的使用,但随着后续的迭代。 之前版本中默认的六个使用场景,会逐步改写成<font style="color:rgb(31, 35, 40);">Data App</font>
, 后续我们也会逐步将其放入到dbgpts项目中,作为默认应用,便于大家安装使用。
接下来对本地的主要更新,做一个系统的说明。
名词解释
- Data App: 构建在DB-GPT之上的智能数据应用。
- AWEL: Agentic Workflow Expression Language, 智能体工作流表达式语言
- AWEL Flow: 使用智能体工作流表达式语言编排的工作流
- SMMF: 服务化的多模型管理框架。
- Datasource: 数据源,如MySQL、PG、StarRocks、Clickhouse等。
✨AWEL工作流与应用
AWEL工作流
如下图所示,在左侧的菜单栏中,有AWEL工作流菜单, 打开之后可以进行工作流的编排。
默认安装之后,AWEL流中是没有内容的,你可以通过两种方式进行构建。1. 从DB-GPT官方提供的应用仓库中进行安装。2. 自己新建。 下面分别介绍以下两种方式的简单使用,更加详细的使用可以参见后续DB-GPT使用教程。
从官方仓库安装
在安装AWEL工作流之前,首先需要做好DB-GPT的安装部署。安装部署好之后,即可使用默认的dbgpt命令进行操作。
如图所示,dbgpt命令支持多种操作,包括model相关操作、知识库操作、Trace日志等等。 这里我们重点介绍一下app的操作。
通过 dbgpt app list-remote
命令,我们可以看到当前仓库中有三个可用的AWEL工作流。 这里我们安装awel-flow-web-info-search
这个工作流。执行命令dbgpt app install awel-flow-web-info-search
安装成功之后,重启DB-GPT服务(动态热加载正在路上😊), 刷新页面,即可在AWEL工作流
页面看到对应的工作流。
自己构建
除了通过官方提供的命令安装默认的AWEL流之外,在实际场景中使用时,更多的需要进行自己构建。 如下图所示,点击 新建AWEL流程(NEW AWEL FLOW)
即可看到如下的编辑页面。
在编辑过程中,每个任务的下游节点与算子,支持自动联想。 点击每个算子右下角的➕即可联想出可以连接的下游算子。
✨创建数据应用
前面我们介绍了AWEL工作流的构建与安装。 接下来我们介绍一下如何基于大模型创建数据应用。
搜索对话应用
搜索对话应用的核心能力是,通过搜索引擎(如百度、Google)搜索相关知识,然后进行总结回答。 效果如下:
创建如上应用非常简单,在应用创建面板,点击创建
, 输入以下参数,即可完成创建。这里需要注意几个参数。 1. 工作模式 2. Flows 这里我们采用的工作模式是awel_layout
选择的AWEL工作流是前面安装的awel-flow-web-info-search
这个工作流。
数据报表分析助手
通过Multi-Agents编写一个数据分析助手应用,效果如下。
在应用面板,点击创建应用,填写如图下的参数。 需要注意,这里工作模式选择是auto_plan
。 这里的依赖两个Agents协作。 1. DataScientist 2. Reporter 他们俩依赖的资源都是database, 数据库可以用之前官方教程中提供的默认数据库与数据进行测试。
✨其他更新说明
- 发布dbgpt core sdk (#1092) 目前提供了awel算子编排能力
pip install dbgpt
- 支持 Jina Embeddings (#1105)
- 新增 schema-linking awel 使用示例 (#1081)
样例: https://www.yuque.com/eosphoros/dbgpt-docs/xwiarvom1nnhyb20
- 统一卡片UI样式, 包括知识库卡片、模型管理卡片等
🐞 Bug 修复
- MySQL数据库不再支持自动建表和字段自动更新 (#1133)
- 修复默认对话带历史消息记录问题 (#1117)
- 修复 examples/awel 从model_config获取model_name问题 (#1112)
- Fix DAGs 共享数据问题 (#1102)
- Fix examples/awel default loading model text2vec-large-chinese issue (#1095)
✨官方文档地址
:::color2 英文
:::
:::color2 中文
:::
✨升级版本到V0.5.0
如果你当前的版本是V0.4.6或者V0.4.7, 需要升级到V0.5.0,需要做以下操作。
- 暂停服务
- 升级数据库表结构
-- dbgpt.dbgpt_serve_flow definition
CREATE TABLE `dbgpt_serve_flow` (
`id` int NOT NULL AUTO_INCREMENT COMMENT 'Auto increment id',
`uid` varchar(128) NOT NULL COMMENT 'Unique id',
`dag_id` varchar(128) DEFAULT NULL COMMENT 'DAG id',
`name` varchar(128) DEFAULT NULL COMMENT 'Flow name',
`flow_data` text COMMENT 'Flow data, JSON format',
`user_name` varchar(128) DEFAULT NULL COMMENT 'User name',
`sys_code` varchar(128) DEFAULT NULL COMMENT 'System code',
`gmt_created` datetime DEFAULT NULL COMMENT 'Record creation time',
`gmt_modified` datetime DEFAULT NULL COMMENT 'Record update time',
`flow_category` varchar(64) DEFAULT NULL COMMENT 'Flow category',
`description` varchar(512) DEFAULT NULL COMMENT 'Flow description',
`state` varchar(32) DEFAULT NULL COMMENT 'Flow state',
`source` varchar(64) DEFAULT NULL COMMENT 'Flow source',
`source_url` varchar(512) DEFAULT NULL COMMENT 'Flow source url',
`version` varchar(32) DEFAULT NULL COMMENT 'Flow version',
`label` varchar(128) DEFAULT NULL COMMENT 'Flow label',
`editable` int DEFAULT NULL COMMENT 'Editable, 0: editable, 1: not editable',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_uid` (`uid`),
KEY `ix_dbgpt_serve_flow_sys_code` (`sys_code`),
KEY `ix_dbgpt_serve_flow_uid` (`uid`),
KEY `ix_dbgpt_serve_flow_dag_id` (`dag_id`),
KEY `ix_dbgpt_serve_flow_user_name` (`user_name`),
KEY `ix_dbgpt_serve_flow_name` (`name`)
) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
-- dbgpt.gpts_app definition
CREATE TABLE `gpts_app` (
`id` int NOT NULL AUTO_INCREMENT COMMENT 'autoincrement id',
`app_code` varchar(255) NOT NULL COMMENT 'Current AI assistant code',
`app_name` varchar(255) NOT NULL COMMENT 'Current AI assistant name',
`app_describe` varchar(2255) NOT NULL COMMENT 'Current AI assistant describe',
`language` varchar(100) NOT NULL COMMENT 'gpts language',
`team_mode` varchar(255) NOT NULL COMMENT 'Team work mode',
`team_context` text COMMENT 'The execution logic and team member content that teams with different working modes rely on',
`user_code` varchar(255) DEFAULT NULL COMMENT 'user code',
`sys_code` varchar(255) DEFAULT NULL COMMENT 'system app code',
`created_at` datetime DEFAULT NULL COMMENT 'create time',
`updated_at` datetime DEFAULT NULL COMMENT 'last update time',
`icon` varchar(1024) DEFAULT NULL COMMENT 'app icon, url',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_gpts_app` (`app_name`)
) ENGINE=InnoDB AUTO_INCREMENT=39 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
CREATE TABLE `gpts_app_collection` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'autoincrement id',
`app_code` varchar(255) NOT NULL COMMENT 'Current AI assistant code',
`user_code` int(11) NOT NULL COMMENT 'user code',
`sys_code` varchar(255) NOT NULL COMMENT 'system app code',
`created_at` datetime DEFAULT NULL COMMENT 'create time',
`updated_at` datetime DEFAULT NULL COMMENT 'last update time',
PRIMARY KEY (`id`),
KEY `idx_app_code` (`app_code`),
KEY `idx_user_code` (`user_code`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT="gpt collections";
-- dbgpt.gpts_app_detail definition
CREATE TABLE `gpts_app_detail` (
`id` int NOT NULL AUTO_INCREMENT COMMENT 'autoincrement id',
`app_code` varchar(255) NOT NULL COMMENT 'Current AI assistant code',
`app_name` varchar(255) NOT NULL COMMENT 'Current AI assistant name',
`agent_name` varchar(255) NOT NULL COMMENT ' Agent name',
`node_id` varchar(255) NOT NULL COMMENT 'Current AI assistant Agent Node id',
`resources` text COMMENT 'Agent bind resource',
`prompt_template` text COMMENT 'Agent bind template',
`llm_strategy` varchar(25) DEFAULT NULL COMMENT 'Agent use llm strategy',
`llm_strategy_value` text COMMENT 'Agent use llm strategy value',
`created_at` datetime DEFAULT NULL COMMENT 'create time',
`updated_at` datetime DEFAULT NULL COMMENT 'last update time',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_gpts_app_agent_node` (`app_name`,`agent_name`,`node_id`)
) ENGINE=InnoDB AUTO_INCREMENT=23 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
ALTER TABLE `gpts_conversations`
ADD COLUMN `team_mode` varchar(255) NULL COMMENT 'agent team work mode';
ALTER TABLE `gpts_conversations`
ADD COLUMN `current_goal` text COMMENT 'The target corresponding to the current message';
ALTER TABLE dbgpt_serve_flow
ADD COLUMN `error_message` varchar(512) null comment 'Error message' after `state`;
- 重新安装依赖
pip install -e ".[default]"
- 启动服务