社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  chatgpt

解放大脑:ChatGPT + PlantUML = 不用画图了

芋道源码 • 5 月前 • 344 次点击  

👉 这是一个或许对你有用的社群

🐱 一对一交流/面试小册/简历优化/求职解惑,欢迎加入芋道快速开发平台知识星球。下面是星球提供的部分资料: 

👉这是一个或许对你有用的开源项目

国产 Star 破 10w+ 的开源项目,前端包括管理后台 + 微信小程序,后端支持单体和微服务架构。

功能涵盖 RBAC 权限、SaaS 多租户、数据权限、商城、支付、工作流、大屏报表、微信公众号、CRM 等等功能:

  • Boot 仓库:https://gitee.com/zhijiantianya/ruoyi-vue-pro
  • Cloud 仓库:https://gitee.com/zhijiantianya/yudao-cloud
  • 视频教程:https://doc.iocoder.cn
【国内首批】支持 JDK 21 + SpringBoot 3.2.2、JDK 8 + Spring Boot 2.7.18 双版本 

来源:古时的风筝


对于程序员来说,写文档这件事是绝大多数程序员不喜欢甚至非常讨厌的一件事儿,枯燥、乏味。我本身其实并不太排斥写文档、画图这些,当然了,比起写代码来说,我还是更喜欢写代码的。

但是写文档和补文档是两码事,有类似经历的同学应该能够理解,懂的都懂。项目开始前写文档还好,比如写登录功能、画登录流程图,这其实是一个设计的过程,写好文档后可以直接作为开发指导,还是很有价值的。而项目完成后补文档,感觉就是在浪费生命。

刚写的时候还行,一边写一边画图,还有精力注意图的美感,写了两天就彻底放飞了,美感不美感的放一边,关键是已经不想画了。

于是我找到了这个方法,用 ChatGPT 直接生成 PlantUML,微调一下就可以了,甚至有的调都不调,直接用了。

什么是 PlantUML

PlantUML是一个通用性很强的工具,可以快速、直接地创建各种图表。利用简单直观的语言,用户可以毫不费力地绘制各种类型的图表。支持序列图、用例图、类图、对象图、活动图、组件图、部署图、状态图、时序图。

「毫不费力」这个特点非常有吸引力,当然没那么夸张,还是要费点力气的。它有自己的一套语法,类似于写代码的方式表示各个实体之间的关系、指示要生成哪种类型的图。用过 Markdown 的一下就能理解。

举个例子,下面的代码可以表示 Client 向 Server 发送 Hello。

@startuml
!theme materia-outline
Client -> Server : Hello
@enduml

如果你想自己用它的语法规则,通过写代码的方式画图,可以到官网 https://plantuml.com/zh/ 上学习一下语法。

可以直接在 PlantUML 在线环境上运行

https://www.plantuml.com/plantuml/uml/SyfFKj2rKt3CoKnELR1Io4ZDoSa70000

上方写代码,下面就直接生成对应的 UML 图了,可以调整样式,可以下载各种格式的图片。

也可以在本地安装运行,支持 Java 包运行,也支持 Docker 。

另外,像 VSCode 这些编辑器或者一些笔记软件都有对应的插件支持,可以搜索安装。

基于 Spring Boot + MyBatis Plus + Vue & Element 实现的后台管理系统 + 用户小程序,支持 RBAC 动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城等功能

  • 项目地址:https://github.com/YunaiV/ruoyi-vue-pro
  • 视频教程:https://doc.iocoder.cn/video/

ChatGPT + PlantUML

如果你还是觉得不够「毫不费力」,那可以让 ChatGPT 直接生成给你。

打开 ChatGPT ,在「探索 GPT」里面可以搜索 “PlantUML Diagram Wizard”,这个应用是专门用来帮你画 PlantUML 的,但是使用的话需要 GPT-4o,如果超过最大限制,则需要开通 plus 才能用,有实力的同学可以用这个。

不用它也完全可以,我就直接用的免费版 ChatGPT-3.5,效果也没有问题。除此之外,用 Kimi 等大模型应该也问题不大。

那应该怎么给 ChatGPT 提示词呢?

  1. 首先你必须知道你要画的是什么类型的图,序列图、用例图、类图、对象图、活动图、组件图、部署图、状态图、时序图,类型关键词必须准确给到 GPT。
  2. 描述要清晰,这是必须的,就像你解释给别人一样,只不过 GPT 的理解能力更强一些。
  3. 如果有代码的话,必要情况下给一些解释。

下面我举几个例子,不一定是最好的,但是基本上能解决问题。

画类图

有时候 IDEA 能解决一部分问题,比如我查看一个 serverImpl的类图,但是更大范围的关系就不行了,比如我还想看到 Controller 调用 Service 的关系。

用 ChatGPT 怎么做呢?

第一步就是将代码给到 ChatGPT。这一步要看你的代码量有多少,如果代码量不多的话,可以一次性都给它,如果多的话,ChatGPT 的输入token 是有限制的,就要分批次告诉它。

第一步 prompt:接下来我会发给你几个 java 文件,在我告诉你开始画图之前,你只需要记住文件的内容就好了。之后GPT会表示明白了,请你发送文件内容。

第二步:将你要画的文件一个个的输送给 GPT。

第三步:好了,请帮我生成 PlantUML 格式的类图,请开始画图吧

然后 GPT 就会输出一个 PlantUML 代码段。

之后粘贴到 https://www.plantuml.com/plantuml/uml/SyfFKj2rKt3CoKnELR1Io4ZDoSa70000  在线环境中,然后选一个主题,就可以把图弄下来了。

基于 Spring Cloud Alibaba + Gateway + Nacos + RocketMQ + Vue & Element 实现的后台管理系统 + 用户小程序,支持 RBAC 动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城等功能

  • 项目地址:https://github.com/YunaiV/yudao-cloud
  • 视频教程:https://doc.iocoder.cn/video/

时序图

接下来我将一个登录流程的描述告诉 GPT 让它画出时序图。

prompt 如下:

以客户端、登录服务、数据库为3个主体,画出整个登录过程的Sequence diagrams:客户端输入手机号,调用登录服务,查询数据库,查看手机号是否存在,如果不存在,直接通知客户端用户不存,如果存在,登录服务查询数据库验证手机号和密码是否匹配,如果匹配,返回用户信息,客户端跳转到首页

其实描述的并不是那么条理很清晰,但是 GPT 比较聪明,它能理解。

最后还是粘贴到在线环境上,查看并下载最终的UML图。

怎么样,是不是能够偷下懒了。


欢迎加入我的知识星球,全面提升技术能力。

👉 加入方式,长按”或“扫描”下方二维码噢

星球的内容包括:项目实战、面试招聘、源码解析、学习路线。

文章有帮助的话,在看,转发吧。

谢谢支持哟 (*^__^*)

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/173197
 
344 次点击