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. 即通过智能体表达式语言与智能体开发原生数据应用的框架。

v0.5.0 版本更新 - 图1

版本更新介绍

在早期的版本中,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项目中,作为默认应用,便于大家安装使用。 接下来对本地的主要更新,做一个系统的说明。

名词解释

  1. Data App: 构建在DB-GPT之上的智能数据应用。
  2. AWEL: Agentic Workflow Expression Language, 智能体工作流表达式语言
  3. AWEL Flow: 使用智能体工作流表达式语言编排的工作流
  4. SMMF: 服务化的多模型管理框架。
  5. Datasource: 数据源,如MySQL、PG、StarRocks、Clickhouse等。

AWEL工作流与应用

AWEL工作流

如下图所示,在左侧的菜单栏中,有AWEL工作流菜单, 打开之后可以进行工作流的编排。

v0.5.0 版本更新 - 图2

默认安装之后,AWEL流中是没有内容的,你可以通过两种方式进行构建。1. 从DB-GPT官方提供的应用仓库中进行安装。2. 自己新建。 下面分别介绍以下两种方式的简单使用,更加详细的使用可以参见后续DB-GPT使用教程。

v0.5.0 版本更新 - 图3

从官方仓库安装

在安装AWEL工作流之前,首先需要做好DB-GPT的安装部署。安装部署好之后,即可使用默认的dbgpt命令进行操作。

v0.5.0 版本更新 - 图4

如图所示,dbgpt命令支持多种操作,包括model相关操作、知识库操作、Trace日志等等。 这里我们重点介绍一下app的操作。

v0.5.0 版本更新 - 图5

通过 dbgpt app list-remote 命令,我们可以看到当前仓库中有三个可用的AWEL工作流。 这里我们安装awel-flow-web-info-search 这个工作流。执行命令dbgpt app install awel-flow-web-info-searchv0.5.0 版本更新 - 图6

安装成功之后,重启DB-GPT服务(动态热加载正在路上😊), 刷新页面,即可在AWEL工作流页面看到对应的工作流。

v0.5.0 版本更新 - 图7

自己构建

除了通过官方提供的命令安装默认的AWEL流之外,在实际场景中使用时,更多的需要进行自己构建。 如下图所示,点击 新建AWEL流程(NEW AWEL FLOW) 即可看到如下的编辑页面。

v0.5.0 版本更新 - 图8

在编辑过程中,每个任务的下游节点与算子,支持自动联想。 点击每个算子右下角的➕即可联想出可以连接的下游算子。

v0.5.0 版本更新 - 图9

创建数据应用

前面我们介绍了AWEL工作流的构建与安装。 接下来我们介绍一下如何基于大模型创建数据应用。

搜索对话应用

搜索对话应用的核心能力是,通过搜索引擎(如百度、Google)搜索相关知识,然后进行总结回答。 效果如下:v0.5.0 版本更新 - 图10

创建如上应用非常简单,在应用创建面板,点击创建, 输入以下参数,即可完成创建。这里需要注意几个参数。 1. 工作模式 2. Flows 这里我们采用的工作模式是awel_layout 选择的AWEL工作流是前面安装的awel-flow-web-info-search这个工作流。

v0.5.0 版本更新 - 图11

数据报表分析助手

通过Multi-Agents编写一个数据分析助手应用,效果如下。

v0.5.0 版本更新 - 图12

v0.5.0 版本更新 - 图13

在应用面板,点击创建应用,填写如图下的参数。 需要注意,这里工作模式选择是auto_plan。 这里的依赖两个Agents协作。 1. DataScientist 2. Reporter 他们俩依赖的资源都是database, 数据库可以用之前官方教程中提供的默认数据库与数据进行测试。

v0.5.0 版本更新 - 图14

其他更新说明

  1. 发布dbgpt core sdk (#1092) 目前提供了awel算子编排能力

pip install dbgpt

  1. 支持 Jina Embeddings (#1105)
  2. 新增 schema-linking awel 使用示例 (#1081)

样例: https://www.yuque.com/eosphoros/dbgpt-docs/xwiarvom1nnhyb20

  1. 统一卡片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 英文

:::

Overview | DB-GPT

:::color2 中文

:::

概览

升级版本到V0.5.0

如果你当前的版本是V0.4.6或者V0.4.7, 需要升级到V0.5.0,需要做以下操作。

  1. 暂停服务
  2. 升级数据库表结构
  1. -- dbgpt.dbgpt_serve_flow definition
  2. CREATE TABLE `dbgpt_serve_flow` (
  3. `id` int NOT NULL AUTO_INCREMENT COMMENT 'Auto increment id',
  4. `uid` varchar(128) NOT NULL COMMENT 'Unique id',
  5. `dag_id` varchar(128) DEFAULT NULL COMMENT 'DAG id',
  6. `name` varchar(128) DEFAULT NULL COMMENT 'Flow name',
  7. `flow_data` text COMMENT 'Flow data, JSON format',
  8. `user_name` varchar(128) DEFAULT NULL COMMENT 'User name',
  9. `sys_code` varchar(128) DEFAULT NULL COMMENT 'System code',
  10. `gmt_created` datetime DEFAULT NULL COMMENT 'Record creation time',
  11. `gmt_modified` datetime DEFAULT NULL COMMENT 'Record update time',
  12. `flow_category` varchar(64) DEFAULT NULL COMMENT 'Flow category',
  13. `description` varchar(512) DEFAULT NULL COMMENT 'Flow description',
  14. `state` varchar(32) DEFAULT NULL COMMENT 'Flow state',
  15. `source` varchar(64) DEFAULT NULL COMMENT 'Flow source',
  16. `source_url` varchar(512) DEFAULT NULL COMMENT 'Flow source url',
  17. `version` varchar(32) DEFAULT NULL COMMENT 'Flow version',
  18. `label` varchar(128) DEFAULT NULL COMMENT 'Flow label',
  19. `editable` int DEFAULT NULL COMMENT 'Editable, 0: editable, 1: not editable',
  20. PRIMARY KEY (`id`),
  21. UNIQUE KEY `uk_uid` (`uid`),
  22. KEY `ix_dbgpt_serve_flow_sys_code` (`sys_code`),
  23. KEY `ix_dbgpt_serve_flow_uid` (`uid`),
  24. KEY `ix_dbgpt_serve_flow_dag_id` (`dag_id`),
  25. KEY `ix_dbgpt_serve_flow_user_name` (`user_name`),
  26. KEY `ix_dbgpt_serve_flow_name` (`name`)
  27. ) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
  28. -- dbgpt.gpts_app definition
  29. CREATE TABLE `gpts_app` (
  30. `id` int NOT NULL AUTO_INCREMENT COMMENT 'autoincrement id',
  31. `app_code` varchar(255) NOT NULL COMMENT 'Current AI assistant code',
  32. `app_name` varchar(255) NOT NULL COMMENT 'Current AI assistant name',
  33. `app_describe` varchar(2255) NOT NULL COMMENT 'Current AI assistant describe',
  34. `language` varchar(100) NOT NULL COMMENT 'gpts language',
  35. `team_mode` varchar(255) NOT NULL COMMENT 'Team work mode',
  36. `team_context` text COMMENT 'The execution logic and team member content that teams with different working modes rely on',
  37. `user_code` varchar(255) DEFAULT NULL COMMENT 'user code',
  38. `sys_code` varchar(255) DEFAULT NULL COMMENT 'system app code',
  39. `created_at` datetime DEFAULT NULL COMMENT 'create time',
  40. `updated_at` datetime DEFAULT NULL COMMENT 'last update time',
  41. `icon` varchar(1024) DEFAULT NULL COMMENT 'app icon, url',
  42. PRIMARY KEY (`id`),
  43. UNIQUE KEY `uk_gpts_app` (`app_name`)
  44. ) ENGINE=InnoDB AUTO_INCREMENT=39 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
  45. CREATE TABLE `gpts_app_collection` (
  46. `id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'autoincrement id',
  47. `app_code` varchar(255) NOT NULL COMMENT 'Current AI assistant code',
  48. `user_code` int(11) NOT NULL COMMENT 'user code',
  49. `sys_code` varchar(255) NOT NULL COMMENT 'system app code',
  50. `created_at` datetime DEFAULT NULL COMMENT 'create time',
  51. `updated_at` datetime DEFAULT NULL COMMENT 'last update time',
  52. PRIMARY KEY (`id`),
  53. KEY `idx_app_code` (`app_code`),
  54. KEY `idx_user_code` (`user_code`)
  55. ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT="gpt collections";
  56. -- dbgpt.gpts_app_detail definition
  57. CREATE TABLE `gpts_app_detail` (
  58. `id` int NOT NULL AUTO_INCREMENT COMMENT 'autoincrement id',
  59. `app_code` varchar(255) NOT NULL COMMENT 'Current AI assistant code',
  60. `app_name` varchar(255) NOT NULL COMMENT 'Current AI assistant name',
  61. `agent_name` varchar(255) NOT NULL COMMENT ' Agent name',
  62. `node_id` varchar(255) NOT NULL COMMENT 'Current AI assistant Agent Node id',
  63. `resources` text COMMENT 'Agent bind resource',
  64. `prompt_template` text COMMENT 'Agent bind template',
  65. `llm_strategy` varchar(25) DEFAULT NULL COMMENT 'Agent use llm strategy',
  66. `llm_strategy_value` text COMMENT 'Agent use llm strategy value',
  67. `created_at` datetime DEFAULT NULL COMMENT 'create time',
  68. `updated_at` datetime DEFAULT NULL COMMENT 'last update time',
  69. PRIMARY KEY (`id`),
  70. UNIQUE KEY `uk_gpts_app_agent_node` (`app_name`,`agent_name`,`node_id`)
  71. ) ENGINE=InnoDB AUTO_INCREMENT=23 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
  1. ALTER TABLE `gpts_conversations`
  2. ADD COLUMN `team_mode` varchar(255) NULL COMMENT 'agent team work mode';
  3. ALTER TABLE `gpts_conversations`
  4. ADD COLUMN `current_goal` text COMMENT 'The target corresponding to the current message';
  5. ALTER TABLE dbgpt_serve_flow
  6. ADD COLUMN `error_message` varchar(512) null comment 'Error message' after `state`;
  1. 重新安装依赖
  1. pip install -e ".[default]"
  1. 启动服务

致谢

感谢所有贡献者使这次发布成为可能! @Aralhi, @Aries-ckt, @JoanFM, @csunny, @fangyinc, @Hzh_97, @junewgl, @lcxadml, @likenamehaojie, @xiuzhu9527 and @yhjun1026

附录