Skip to content

对于大模型绘制UML图的调研

在2024年年底,我简单考察了市面上一些大模型对UML图绘制的能力。

提示词

提示词都是一样的:画一个应用程序调用第三方支付接口的流程图

调研的大模型

般若

这是时序图吧?我要的是流程图啊。不过般若能直接浏览,这挺好的。

image-20241202141327633
mermaid
sequenceDiagram
    participant 用户
    participant 应用程序
    participant 第三方支付接口

    用户->>应用程序: 发起支付请求
    应用程序->>第三方支付接口: 调用支付接口
    第三方支付接口-->>应用程序: 返回支付页面URL
    应用程序->>用户: 跳转到支付页面
    用户->>第三方支付接口: 在支付页面完成支付
    第三方支付接口-->>应用程序: 支付结果通知
    应用程序->>用户: 显示支付结果

豆包

比较符合,不过缺点就是不能预览。

image-20241202141627680
mermaid
graph TD;
    A[用户在应用程序中发起支付请求] --> B[应用程序将支付请求信息发送给第三方支付接口];
    B --> C[第三方支付接口验证请求信息合法性];
    C -->|信息合法| D[第三方支付平台生成支付订单并跳转至支付页面(如收银台页面)];
    D --> E[用户在支付页面选择支付方式(如银行卡、微信支付、支付宝支付等)];
    E --> F[用户完成支付操作(输入密码、指纹验证等)];
    F --> G[第三方支付平台将支付请求发送给相应支付渠道(如银行、微信支付服务器、支付宝服务器等)];
    G --> H[支付渠道处理支付请求并进行资金结算等操作];
    H --> I[支付渠道将支付结果反馈给第三方支付平台];
    I --> J[第三方支付平台将支付结果更新到订单状态并通知应用程序];
    J --> K[应用程序根据支付结果更新界面展示给用户(如显示支付成功或失败信息)];
    C -->|信息不合法| L[第三方支付接口返回错误信息给应用程序];
    L --> M[应用程序展示错误提示给用户];

KIMI

KIMI也不错,比般若体验更好,可以切换markdown的预览和源码,不过这个图严格来说是时序图吧

image-20241202142630756
mermaid
sequenceDiagram
    participant A as 应用程序
    participant B as 第三方支付平台
    participant C as 用户
    participant D as 银行

    A->>C: 请求支付
    Note over C: 用户输入支付信息
    C->>A: 确认支付
    A->>B: 发送支付请求
    Note over B: 第三方支付平台验证请求
    B->>D: 请求银行扣款
    D->>B: 扣款成功
    B->>A: 支付成功通知
    A->>C: 显示支付结果

这个流程图描述了以下步骤:

  1. 应用程序(A)向用户(C)请求支付。
  2. 用户输入支付信息并确认支付。
  3. 应用程序发送支付请求到第三方支付平台(B)。
  4. 第三方支付平台验证请求的合法性。
  5. 第三方支付平台请求银行(D)扣款。
  6. 银行扣款成功后,通知第三方支付平台。
  7. 第三方支付平台将支付成功的通知发送给应用程序。
  8. 应用程序将支付结果展示给用户。

请注意,实际的支付流程可能会更加复杂,涉及到更多的安全验证、错误处理和异步通信等步骤。这个流程图仅作为一个基本的参考。

通义千问

好家伙,直接玩拟人的了……

image-20241202141903861
+-------------------+       +---------------------+       +---------------------+
|  用户选择支付     |       | 应用程序准备支付    |       | 应用程序调用支付    |
|  方式并提交订单   | ----> | 请求(创建支付      | ----> | 接口,传递支付      |
|                   |       | 订单,获取支付参数)|       | 参数                |
+-------------------+       +---------------------+       +---------------------+
                                                         |
                                                         v
                                                  +---------------------+
                                                  | 第三方支付平台处理  |
                                                  | 支付请求,返回支付  |
                                                  | 结果或重定向到支付  |
                                                  | 网关页面            |
                                                  +---------------------+
                                                         |
                                                         v
                                                  +---------------------+
                                                  | 用户完成支付        |
                                                  | (通过网银、移动支  |
                                                  | 付应用等)          |
                                                  +---------------------+
                                                         |
                                                         v
                                                  +---------------------+
                                                  | 第三方支付平台通知  |
                                                  | 应用程序支付结果    |
                                                  +---------------------+
                                                         |
                                                         v
                                                  +---------------------+
                                                  | 应用程序验证支付结  |
                                                  | 果,并更新订单状    |
                                                  | 态                  |
                                                  +---------------------+
                                                         |
                                                         v
                                                  +---------------------+
                                                  | 应用程序向用户显示  |
                                                  | 支付成功/失败信息  |
                                                  +---------------------+

这个流程图可以分为以下几个关键步骤:

  1. 用户在应用程序中选择支付方式并提交订单。
  2. 应用程序准备好支付请求,这通常包括创建一个支付订单,并从第三方支付平台获取必要的支付参数。
  3. 应用程序调用第三方支付接口,传递支付参数给支付平台。
  4. 第三方支付平台处理支付请求,这可能涉及到重定向用户到银行或其他支付网关的页面。
  5. 用户通过选定的方式完成支付过程。
  6. 第三方支付平台将支付结果通知给应用程序,这通常是通过回调URL或服务器间的通知来完成。
  7. 应用程序验证支付结果,并根据支付结果更新订单状态。
  8. 应用程序向用户展示支付成功的确认信息或支付失败的消息。

当您绘制这个流程图时,确保使用清晰的箭头来表示数据流和控制流的方向,并且为每个步骤提供简短的描述。如果您需要更详细的流程或者针对特定支付平台的流程图,请提供更多的上下文信息。

智谱清言

这位更是重量级……而且图中的单词都是乱码

image-20241202142018980

ChatGPT

OpenAI也干了,不过图中的单词起码看得清……

image-20241202142111474

总结

般若豆包KIMI都挺不错的,看得出对程序员的使用场景有特殊优化,对markdown语法的支持也比较好,反而是之前市面上比较火的通义和CHatGPT直接拉了,这是没想到的。