暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

DB-GPT V0.5.0 发布 | 通过工作流与智能体开发原生数据应用

EosphorosAI 2024-02-22
860

亲爱的 DB-GPT 社区伙伴们,经过紧锣密鼓地开发,耗时两月多时间 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。

本次的版本变化,不影响前面六大场景的使用,但随着后续的迭代。之前版本中默认的六个使用场景,会逐步改写成 Data App,  后续我们也会逐步将其放入到 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 流中是没有内容的,你可以通过两种方式进行构建。

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 ,这两个Agents 依赖的资源都是 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)





       升级版本到 V0.5.0 









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

      1. 暂停服务

      2. 升级数据库表结构

        -- 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';

          1. 重新安装依赖

            pip install -e ".[default]"

            1. 启动服务


            更多细节请到官方文档中查看,点击「阅读原文」跳转到 B 站查看相关视频教程




             致谢 



            感谢所有贡献者使这次发布成为可能!

            @Aralhi, @Aries-ckt, @JoanFM, @csunny, @fangyinc, @Hzh_97, @junewgl, @lcxadml, @likenamehaojie, @xiuzhu9527 and @yhjun1026




            附录


            01
             DB-GPT 框架

            https://github.com/eosphoros-ai/DB-GPT

            02
            Text2SQL 微调

            https://github.com/eosphoros-ai/DB-GPT-Hub

            03
             DB-GPT 前端可视化项目

            https://github.com/eosphoros-ai/DB-GPT-Web

            04
             DB-GPT 插件仓库
            https://github.com/eosphoros-ai/DB-GPT-Plugins
            05
             Text2SQL学习资料和前沿跟踪
            https://github.com/eosphoros-ai/Awesome-Text2SQL
            06
             中文官方文档
            https://www.yuque.com/eosphoros/dbgpt-docs/bex30nsv60ru0fmx
            07
             英文官方文档
            http://docs.dbgpt.site/docs/overview


            文章转载自EosphorosAI,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

            评论