使用 ChatGPT 构建金融系统流程图
ChatGPT 的受欢迎程度不断增长,现在被广泛用于各种应用程序。作为一名全栈工程师,出于对技术的追求,使用 ChatGPT 来探索一些可能的使用场合,之前介绍过使用 ChatGPT 协助编码 。本文就来探索 ChatGPT 设计一个金融系统并画出 Mermaid 流程图,开始之前介绍一下 Mermaid。
什么是 Mermaid
Mermaid 是一个基于 JavaScript 的图表绘制工具,通过解析类 Markdown 的文本语法来实现图表的创建和动态修改。Mermaid 诞生的主要目的是让文档的更新能够及时跟上开发进度。
可以先确认一下 ChatGPT 是否可以为案例解释生成图表并同时分析图表的影响因素。登录到 chat.openai.com,下面就来开启对话。
第 1 步:让我们定义用例:Let’s define the use-case
本来可以定义自己的用例,但可以先测试 ChatGPT 的在这方面的表现,所以要求它先来定义一个。
第 2 步:让我们为用例定义一个数据模型:Let’s define a Data Model for the use-case
看起来不错,那么就从定义数据模型开始,所以让 ChatGPT 来做,下面是结果:
听起来不错,接下来看看它可以为图表做什么。想更深入地研究数据模型,所以下一个提示是:
提示:更详细地描述数据模型或使用 Markdown 的表格格式
ChatGPT:可以使用 Markdown 以表格格式描述数据模型的结构。
这是一个好的开始。
第 3 步:定义关系,实体关系图:Let’s define relationships — Entity Relationship Diagram
提示:这太完美了,想用 Mermaid 图来描述关系,你能给我输出这个的图的 Markdown 吗?
ChatGPT:我很抱歉,但是作为一个基于文本的模型,我无法生成 Mermaid 图或任何其他视觉图。但是,我可以为你提供一个如何用 Mermaid 语法表示关系的示例:
并将其复制到包含在 {mermaid}
标签内的 Markdown 编辑器中,效果如下:
太好了,正在按照预期进展。有一个类图/实体关系图。接下来看看还有什么可能?
第 4 步:时序图 Sequence Diagram
接下来,尝试提出假设性提示来检查响应。第一个意图是创建一个序列图。
提示:资产的购买交易将如何影响上述表格,想将其描述为序列图。你能帮忙描述一下 Mermaid 的 markdown 格式的图表吗?
ChatGPT:当然,购买交易会对下表产生影响:
- 资产表
Asset
:资产的current_value
将被更新以反映资产的当前市场价值 - 投资组合表
Portfolio
:投资组合的current_value
将更新以反映新资产及其市场价值,asset_allocation
将更新以反映新资产。 - 交易表
Transaction
:一个新的交易将添加交易明细,如交易类型、交易日期、asset_id
和portfolio_id
以下是如何在 Mermaid 图中表示该过程的示例:
将其复制到 markdown 编辑器中:
第五步:状态转移图 State Transition Diagram
接下来问关于 State Transition
图
提示:账户会不会有新建、关闭、活跃不活跃等状态?想用 Mermaid 在状态图中描绘状态。你能帮忙用markdown格式描述一下图表吗
ChatGPT:金融账户通常有不同的状态,例如新的、关闭的、活跃的和不活跃的,以反映账户的当前状态。
new
账户将是一个刚刚开设并正在等待资金或验证的账户。active
帐户将是当前打开并用于交易的帐户。inactive
帐户将是当前未使用但尚未关闭的帐户。closed
帐户将是一个已被客户或金融机构关闭,并且不能再用于交易的帐户。Pending
状态可用于指示帐户正在审查或等待验证。Suspended
状态可用于指示帐户已被暂时暂停,例如,由于可疑活动或不遵守条款和条件。Frozen
状态可用于指示帐户已被冻结,例如,由于法律纠纷或监管行动。Expired
状态可用于指示该帐户已达到其到期日期并且不再使用。
这是一个帐户状态如何在 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
状态。
复制到 Markdown 编辑器中,如下所示:
ChatGPT 和 Mermaid 的结合可以获得不错的效果,效率提高不少。