使用 ChatGPT 构建金融系统流程图

使用 ChatGPT 构建金融系统流程图

ChatGPT 的受欢迎程度不断增长,现在被广泛用于各种应用程序。作为一名全栈工程师,出于对技术的追求,使用 ChatGPT 来探索一些可能的使用场合,之前介绍过使用 ChatGPT 协助编码 。本文就来探索 ChatGPT 设计一个金融系统并画出 Mermaid 流程图,开始之前介绍一下 Mermaid。

什么是 Mermaid

Mermaid 是一个基于 JavaScript 的图表绘制工具,通过解析类 Markdown 的文本语法来实现图表的创建和动态修改。Mermaid 诞生的主要目的是让文档的更新能够及时跟上开发进度。

可以先确认一下 ChatGPT 是否可以为案例解释生成图表并同时分析图表的影响因素。登录到 chat.openai.com,下面就来开启对话。

第 1 步:让我们定义用例:Let’s define the use-case

本来可以定义自己的用例,但可以先测试 ChatGPT 的在这方面的表现,所以要求它先来定义一个。

可以先测试 ChatGPT 定义用例

第 2 步:让我们为用例定义一个数据模型:Let’s define a Data Model for the use-case

看起来不错,那么就从定义数据模型开始,所以让 ChatGPT 来做,下面是结果:

ChatGPT为用例定义一个数据模型

听起来不错,接下来看看它可以为图表做什么。想更深入地研究数据模型,所以下一个提示是:

提示:更详细地描述数据模型或使用 Markdown 的表格格式

ChatGPT:可以使用 Markdown 以表格格式描述数据模型的结构。

ChatGPT使用 Markdown 以表格格式描述数据模型的结构

这是一个好的开始。

第 3 步:定义关系,实体关系图:Let’s define relationships — Entity Relationship Diagram

提示:这太完美了,想用 Mermaid 图来描述关系,你能给我输出这个的图的 Markdown 吗?

ChatGPT:我很抱歉,但是作为一个基于文本的模型,我无法生成 Mermaid 图或任何其他视觉图。但是,我可以为你提供一个如何用 Mermaid 语法表示关系的示例:

ChatGPT提供一个如何用 Mermaid 语法表示关系的示例

并将其复制到包含在 {mermaid} 标签内的 Markdown 编辑器中,效果如下:

复制到包含在 {mermaid} 标签内的 Markdown 编辑器中效果

太好了,正在按照预期进展。有一个类图/实体关系图。接下来看看还有什么可能?

第 4 步:时序图 Sequence Diagram

接下来,尝试提出假设性提示来检查响应。第一个意图是创建一个序列图。

提示:资产的购买交易将如何影响上述表格,想将其描述为序列图。你能帮忙描述一下 Mermaid 的 markdown 格式的图表吗?

ChatGPT:当然,购买交易会对下表产生影响:

  • 资产表 Asset:资产的 current_value 将被更新以反映资产的当前市场价值
  • 投资组合表 Portfolio:投资组合的 current_value 将更新以反映新资产及其市场价值,asset_allocation 将更新以反映新资产。
  • 交易表 Transaction:一个新的交易将添加交易明细,如交易类型、交易日期、asset_idportfolio_id

以下是如何在 Mermaid 图中表示该过程的示例:

ChatGPT设计购买交易流程图

将其复制到 markdown 编辑器中:

ChatGPT设计的流程图代码效果图

第五步:状态转移图 State Transition Diagram

接下来问关于 State Transition

提示:账户会不会有新建、关闭、活跃不活跃等状态?想用 Mermaid 在状态图中描绘状态。你能帮忙用markdown格式描述一下图表吗

ChatGPT:金融账户通常有不同的状态,例如新的、关闭的、活跃的和不活跃的,以反映账户的当前状态。

  • new 账户将是一个刚刚开设并正在等待资金或验证的账户。
  • active 帐户将是当前打开并用于交易的帐户。
  • inactive 帐户将是当前未使用但尚未关闭的帐户。
  • closed 帐户将是一个已被客户或金融机构关闭,并且不能再用于交易的帐户。
  • Pending 状态可用于指示帐户正在审查或等待验证。
  • Suspended 状态可用于指示帐户已被暂时暂停,例如,由于可疑活动或不遵守条款和条件。
  • Frozen 状态可用于指示帐户已被冻结,例如,由于法律纠纷或监管行动。
  • Expired 状态可用于指示该帐户已达到其到期日期并且不再使用。

这是一个帐户状态如何在 Mermaid 状态图中表示的示例:

帐户状态如何在 Mermaid 状态图中表示的示例

看起来,这种格式比较旧,可能会由于循环依赖而中断。所以需要 ChatGPT 改进这个。

提示:你可以尝试使用 [*] 以新格式给出状态图 Markdown 语法吗?

ChatGPT:当然,这里有一个示例,说明财富管理系统的账户管理组件的状态图如何使用带有 [*] 的新格式在 Mermaid 中表示:

财富管理系统的账户管理组件的状态图

复制到 Markdown 编辑器中效果如下:

帐户的不同状态以及它们之间可能的转换

上面的图展示了帐户的不同状态以及它们之间可能的转换。

  • 初始状态是 [*],表示开始状态。
  • 帐户可以通过激活它从状态 New 转换到 Active 状态。
  • 帐户可以通过关闭它从状态 New 转换到状态 Closed
  • 帐户可以通过停用它来从状态 Active 转换为状态 Inactive
  • 帐户可以通过关闭它来从状态 Active 转换为状态 Closed
  • 帐户可以通过激活它从状态 Inactive 转换到状态 Active
  • 帐户可以通过关闭它从 Inactive 状态转换到 Closed 状态。

提示:请同时包括过期、冻结等相关状态

ChatGPT:当然,这里有一个示例,说明财富管理系统的账户管理组件的状态图如何在 Mermaid 中表示,包括过期 Expired、冻结 Frozen 等其他状态。

描述: 此图显示了帐户的不同状态以及它们之间可能的转换。

  • 初始状态是 [*],表示开始状态。
  • 初始状态是 [*],表示开始状态。
  • 帐户可以通过激活它从状态 New 转换到 Active 状态。
  • 帐户可以通过关闭它从状态 New 转换到状态 Closed
  • 帐户可以通过停用它来从状态 Active 转换为状态 Inactive
  • 帐户可以通过关闭它来从状态 Active 转换为状态 Closed
  • 帐户可以通过激活它从状态 Inactive 转换到状态 Active
  • 帐户可以通过关闭它从 Inactive 状态转换到 Closed 状态。
  • 帐户可以通过解冻从 Frozen 状态转换到 Active 状态。
  • 帐户可以通过关闭它从 Frozen 状态转换到 Closed 状态。
  • 如果帐户已过期,则帐户可以从 Closed 状态转换为 Expired 状态。

财富管理系统的账户管理组件的状态图如何在 Mermaid 中表示

复制到 Markdown 编辑器中,如下所示:

使用 ChatGPT 构建金融系统流程图在Markdown中的效果

ChatGPT 和 Mermaid 的结合可以获得不错的效果,效率提高不少。