使用AI聊天机器人生成软件架构语法图
在当今快节奏的开发环境中,高效的沟通和协作是项目成功的关键。在本文中,我们将探讨生成式 AI(尤其是 Amazon Bedrock)的力量如何彻底改变跨职能工程团队的协作方式。
从破译现有代码到将解决方案架构师注释转换为可操作的序列流,甚至促进敏捷项目管理,人工智能驱动的 Mermaid 语法图有可能重新定义团队可视化和执行工作的方式。
Mermaid图表:基于 JavaScript 的图表和图表工具,可呈现 Markdown 启发的文本定义以动态创建和修改图表。
我们可以通过简单的基于代码的语法生成许多不同样式的图表,在本文中,我们将介绍如何通过 Generative AI 和 Amazon Bedrock 以及基于文本的提示动态生成代码。
以通过以下页面访问 Mermaid 网站以了解更多信息:https ://mermaid.js.org/
让我们看一下为跨职能工程团队中的不同团队成员生成Mermaid图的不同用例。
理解并记录现有代码
我们的第一个基本示例是,工程经理需要以状态图的形式理解和记录现有的代码逻辑,支持 QA 团队测试功能,而工程师和业务分析师则需要一目了然地了解现有的逻辑是什么。
让我们采用 .NET C# API 控制器的现有基本代码,如下所示:
using Microsoft.AspNetCore.Mvc; |
我们可以使用类似下面的提示:
人类:请以Mermaid状态图的形式总结一下这段代码?<此处的代码>"。 |
这将通过亚马逊 Bedrock 使用生成式人工智能动态生成以下美人鱼语法的状态图:
stateDiagram-v2 |
-->ValidateOrderQuantity
ValidateOrderQuantity-->ValidQuantity: Total quantity <= 1000
ValidateOrderQuantity-->InvalidQuantity: Total quantity > 1000
ValidQuantity-->ValidateAddress: Order address
ValidateAddress-->UKAddress: Address country = UK
ValidateAddress-->NonUKAddress: Address country != UK
UKAddress-->ValidateCustomerStatus: Customer status
NonUKAddress-->BadRequest: Return 400
ValidateCustomerStatus-->ValidStatus: Status != Hold
ValidateCustomerStatus-->InvalidStatus: Status = Hold
ValidStatus-->ValidateOrderLines: Each order line
InvalidStatus-->BadRequest: Return 400
ValidateOrderLines-->ValidLine: Quantity, ID and Description valid
ValidateOrderLines-->InvalidLine: Quantity, ID or Description invalid
ValidLine-->CreateOrder: Return 200 OK
InvalidLine-->BadRequest: Return 400
CreateOrder-->: Order created
BadRequest-->: Bad request error
如果我们使用 Mermaid playground 来查看这个图表,就会发现它准确地记录了代码中的业务逻辑。
好了,这只是一个非常基本的代码示例,但我们可以看到团队根据状态图一目了然地了解现有代码的业务逻辑的价值所在
项目负责人的甘特图
现在让我们举一个例子,项目负责人试图通过使用人工智能生成的甘特图直观地展示三个团队完成的工作及其依赖关系。我们可以给出下面的示例提示:人类:请为我创建一个Mermaid 语法甘特图,其中显示以下内容:
Order Domain 团队将于 2023 年 10 月 1 日至 2023 年 11 月 28 日期间开发功能 X。然后,他们将在 2023 年 11 月 31 日至 2024 年 2 月 10 日期间启动功能 Y。
Customer Domain 团队将于 2023 年 9 月 1 日至 2023 年 10 月 1 日期间开发功能 Z。
平台团队正在 2023 年 11 月 1 日至 2023 年 12 月 1 日期间开发功能 A。
日期格式应为月/年这会生成以下 Mermaid 语法图代码:
gantt
title Project Timeline
dateFormat MM/YYYY
axisFormat %m/%Y
section Order Domain
Feature X :10/2023, 11/2023
Feature Y :11/2023, 02/2024
section Customer Domain
Feature Z :09/2023, 10/2023
section Platform
Feature A :11/2023, 12/2023
支持解决方案架构师生成用户流程
让我们看一个更基本的示例,在事件风暴和需求收集之后,解决方案架构师生成一个序列图以更好地说明流程。我们可以在这个虚构的示例中使用以下示例提示:
人类:请为我创建一个美人鱼语法序列类型图,其中显示以下内容:
一位顾客走进分店并选择产品。
分行经理扫描收银台的产品并向用户提供总数。
然后,分行经理询问客户的电子邮件地址。
顾客使用现金或银行卡支付产品费用。
客户的电子邮件地址会收到一封电子邮件收据。
客户还可以从分行经理处获得下一笔订单 10% 的折扣。使用生成式 AI,我们可以动态生成以下 Mermaid 语法输出:
sequenceDiagram
participant C as Customer
participant BM as Branch Manager
participant E as Email System
C->>BM: Selects products
BM->>BM: Scans products at till
BM-->>C: Gives total cost
BM->>C: Asks for email address
C->>BM: Provides email address
C->>BM: Pays with cash/card
BM->>E: Sends receipt to email
E-->>C: Emails receipt
BM->>C: Gives 10% off next order结论
我们可以利用生成式人工智能和亚马逊 Bedrock 的强大功能,以多种方式为跨职能工程团队提供支持。