【AIGC X UML 落地】通过多智能体实现自然语言绘制UML图
前天写了篇博文讲到用PlantUML来绘制C++类图和流程图。后台有读者留言,问这步能否自动化生成,不想学习 PlantUML 语法。
我想了下,发现这事可行,确实可以做到通过自然语言的描述就能实现 UML图的绘制,昨天晚上加了个班到凌晨,做了两个智能体,确实可以实现,效果还不错。
今天抽空把这篇文章写了,算是告诉读者如何去使用那两个智能体,直接通过自然语言对话的形式来快速画 UML 图,解决掉学习新语言的门槛。
如果还没读过前文的读者可以去看下:
👇👇👇👇👇
用PlantUML描绘C++世界:通过文本描述精准控制UML图的生成
👆👆👆👆👆
进入正题
话不多说,我们进入正题。
这两个智能体分别是:


通过名字,大家其实很容易看出这两个的区别。
- 前者 UML 图片生成大师 主要服务于完全不想了解
PlantUML的使用者,直接进行自然语言描述,就可以生成图片。优点很明显,就是通过聊天就能生成UML图片,不用太多的关注工具的绘制和语言的编写;自然的,也有弊端,就是格式定死了,不能干涉UML图片样式的生成。 - 为了满足使用者更精细的控制生成UML的效果,就做了 标准 PlantUML 语句自动生成器,其可以先通过自然语言与智能体进行对话,生成标准的
PlantUML语句,自己可以觉得语句上又要修改的,可以进行修改,然后在这个网址上进行生成:https://www.plantuml.com/plantuml/uml/SyfFKj2rKt3CoKnELR1Io4ZDoSa70000。
好,了解了这些之后,我们分别来看下如何使用:
UML 图片生成大师的使用介绍
根据代码生成类图


点开图片看全图:

根据自然语言生成派生图

点开图片看全图:

根据给定代码生成状态图


点开图片查看全图:

除了上述介绍的这三点,由于篇幅原因,再次就不在介绍,大家可以在智能体上自己使用体验下。
当然了,有些用户肯定想进行更精细的控制,那我们就把它分为两步:
- 生成 PlantUML 语句
- 修改语句后,在生成图片
前者,我们可以借助下面的工具描述,后者可在 PlantUML的在线窗口中生成器。
标准 PlantUML 语句自动生成器的使用介绍
对这块基本上该智能体的能力上限由 PlantUML 的能力所决定。PlantUML 能做什么事情,该智能体就能做。
在此就仅举三例作为抛砖引玉,更多功能,欢迎使用者在用智能体的时候去体验。
根据自然语言描述生成派生图的标准语句。


根据给定代码生成类图


标准 PlantUML 语法解释

体验地址 && 后记
【1】UML 图片生成大师
【2】标准 PlantUML 语句自动生成器
大家在使用中有什么问题,或是想添加更多能力,欢迎私信联系!!
相关文章:
【AIGC X UML 落地】通过多智能体实现自然语言绘制UML图
前天写了篇博文讲到用PlantUML来绘制C类图和流程图。后台有读者留言,问这步能否自动化生成,不想学习 PlantUML 语法。 我想了下,发现这事可行,确实可以做到通过自然语言的描述就能实现 UML图的绘制,昨天晚上加了个班到…...
C++访问越界
常见场景 访问数组元素越界vector容器访问等 vector<int>;vec<2>;字符串访问越界string str;str[2];array数组访问越界字符串处理,没有添加’\0’字符,导致访问字符串的时候越界了;使用类型强转,让一个大…...
MATLAB format
在MATLAB中,format 是一个函数,用于控制命令窗口中数值的显示格式。这个函数可以设置数值的精度、显示的位数等。以下是一些常用的 format 命令: format long:以默认的长格式显示数值,通常显示15位有效数字。format s…...
Face Forgery Detection by 3D Decomposition
文章目录 Face Forgery Detection by 3D Decomposition研究背景研究目标创新点方法提出问题研究过程技术贡献实验结果未来工作Face Forgery Detection by 3D Decomposition 会议:CVPR2021 作者: 研究背景 面部伪造引发关注传统面部伪造检测主要关注原始RGB图像研究目标 将…...
socket网络编程——多进程、多线程处理并发
如下图所示, 当一个客户端与服务器建立连接以后,服务器端 accept()返回,进而准备循环接收客户端发过来的数据。 如果客户端暂时没发数据,服务端会在 recv()阻塞。此时,其他客户端向服务器发起连接后,由于服务器阻塞了,无法执行 accept()接受连接,也就是其他客户端发送…...
C++---模板进阶(非类型模板参数,模板的特化,模板分离编译)
我们都学习和使用过模板,而这篇文章我们来将一些更深入的知识。在此之前,我们在使用C编程时可以看到模板是随处可见的,它能支持泛型编程。模板包括函数模板和类模板,我们有的人可能会说是模板函数和模板类,但严格讲这样…...
锂电池寿命预测 | Matlab基于SSA-SVR麻雀优化支持向量回归的锂离子电池剩余寿命预测
目录 预测效果基本介绍程序设计参考资料 预测效果 基本介绍 【锂电池剩余寿命RUL预测案例】 锂电池寿命预测 | Matlab基于SSA-SVR麻雀优化支持向量回归的锂离子电池剩余寿命预测(完整源码和数据) 1、提取NASA数据集的电池容量,以历史容量作…...
整理好了!2024年最常见 20 道 Kafka面试题(十)
上一篇地址:整理好了!2024年最常见 20 道 Kafka面试题(九)-CSDN博客 十九、Kafka的消费者如何实现幂等性? 在Kafka中,幂等性指的是消费者处理消息时,即使多次接收到同一条消息,也能…...
Paper Survey——3DGS-SLAM
之前博客对多个3DGS SLAM的工作进行了复现及代码解读 学习笔记之——3DGS-SLAM系列代码解读_gs slam-CSDN博客文章浏览阅读1.9k次,点赞15次,收藏45次。最近对一系列基于3D Gaussian Splatting(3DGS)SLAM的工作的源码进行了测试与…...
搜索与图论:深度优先搜索
搜索与图论:深度优先搜索 题目描述参考代码 题目描述 参考代码 #include <iostream>using namespace std;const int N 10;int n; int path[N]; bool st[N];void dfs(int u) {// u n 搜索到最后一层if (u n){for (int i 0; i < n; i) printf("%d …...
AMD显卡和英伟达显卡哪个好?
显卡是计算机中负责处理图形和视频输出的硬件设备,主要分为两种类型:AMD的A卡和NVIDIA的N卡。那么AMD显卡和英伟达显卡哪个好?怎么选? 答:不能一概而论地说哪个好,因为它们各有优势,选择应基于…...
5.31.8 学习深度特征以实现判别定位
1. 介绍 尽管没有对物体的位置提供监督,但卷积神经网络 (CNN) 各层的卷积单元实际上可以充当物体检测器。尽管卷积层具有这种出色的物体定位能力,但当使用全连接层进行分类时,这种能力就会丧失。最近,一些流行的全卷积神经网络,如 Network in Network (NIN) [13] 和 Goog…...
uniapp小程序多线程 Worker 实战【2024】
需求 最近遇到个小程序异步解码的需求,采用了WebAssembly,涉及大量的计算。由于小程序的双线程模型只有一个线程处理数据,因此智能寻求其它的解决方案。查看小程序的文档,发现小程序还提供一个异步线程的Worker方案,可…...
C语言基础——数组(2)
ʕ • ᴥ • ʔ づ♡ど 🎉 欢迎点赞支持🎉 个人主页:励志不掉头发的内向程序员; 专栏主页:C语言基础; 文章目录 前言 一、二维数组的创建 1.1 二维数组的概念 1.2二维数组的创建 二、二维数组…...
封装PHP用于发送GET和POST请求的公共方法
封装了ThinkPHP用于发送GET和POST请求的公共方法。这个方法可以放在你的公共函数文件中,或者创建一个独立的类来管理这些请求。 <?php namespace app\common\utils;use think\facade\Log; use think\exception\HttpException;class HttpRequest {/*** 发送GET请…...
MongoDB~基础知识记录
为何要学Mongodb 工作以来,使用最多、了解最多的是MySQL。但技术的发展一定是依据痛点来的,就比如我遇到的痛点,一个业务、一个平台能力、存储的一个对象,随着产品和运营的需求,不断的进行变更,每一次的变…...
DSP28335模块配置模板系列——ADC配置模板
一、配置步骤 1.使能并配置高速时钟HSPCLK、ADC校验 EALLOW;SysCtrlRegs.PCLKCR0.bit.ADCENCLK 1; EDIS;EALLOW;SysCtrlRegs.HISPCP.all ADC_MODCLK; // HSPCLK SYSCLKOUT/(2*ADC_MODCLK)ADC_cal();EDIS; 这里ADC_MODCLK3,所以HSPCLK时钟为150/625Mhz 2.配…...
字符串转换为字节数组、16进制转换为base64、base64转换为字符串数组、base64转换为16进制(微信小程序)
1、字符串转换为字节数组 // 字符串转为字节数组 function stringToByteArray(str) {var array new Uint8Array(str.length);for (var i 0; i < str.length; i) {array[i] str.charCodeAt(i);}return array; } 2、16进制转换为base64 // 16进制转换为base64 function H…...
c++中, 直接写浮点数, 是float 还是 double?
如果直接一个浮点数, 那么他默认是float还是double呢? 测试用例 #include <iostream> using namespace std;int main() {auto x 0.2;float f 0.2;double d 0.2;cout << "x Size : " << sizeof(x) << " bytes" << endl…...
C++核心编程友元的应用
文章目录 1.友元1.什么是友元2.全局函数做友元2.类做友元3.成员函数做友元 1.友元 1.什么是友元 在C中,友元(friend)是一种允许一个类或函数访问另一个类的非公有(private 或 protected)成员的机制。这种机制打破了类…...
linux之kylin系统nginx的安装
一、nginx的作用 1.可做高性能的web服务器 直接处理静态资源(HTML/CSS/图片等),响应速度远超传统服务器类似apache支持高并发连接 2.反向代理服务器 隐藏后端服务器IP地址,提高安全性 3.负载均衡服务器 支持多种策略分发流量…...
Leetcode 3576. Transform Array to All Equal Elements
Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接:3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院挂号小程序
一、开发准备 环境搭建: 安装DevEco Studio 3.0或更高版本配置HarmonyOS SDK申请开发者账号 项目创建: File > New > Create Project > Application (选择"Empty Ability") 二、核心功能实现 1. 医院科室展示 /…...
【决胜公务员考试】求职OMG——见面课测验1
2025最新版!!!6.8截至答题,大家注意呀! 博主码字不易点个关注吧,祝期末顺利~~ 1.单选题(2分) 下列说法错误的是:( B ) A.选调生属于公务员系统 B.公务员属于事业编 C.选调生有基层锻炼的要求 D…...
Rust 异步编程
Rust 异步编程 引言 Rust 是一种系统编程语言,以其高性能、安全性以及零成本抽象而著称。在多核处理器成为主流的今天,异步编程成为了一种提高应用性能、优化资源利用的有效手段。本文将深入探讨 Rust 异步编程的核心概念、常用库以及最佳实践。 异步编程基础 什么是异步…...
大数据学习(132)-HIve数据分析
🍋🍋大数据学习🍋🍋 🔥系列专栏: 👑哲学语录: 用力所能及,改变世界。 💖如果觉得博主的文章还不错的话,请点赞👍收藏⭐️留言Ǵ…...
Android第十三次面试总结(四大 组件基础)
Activity生命周期和四大启动模式详解 一、Activity 生命周期 Activity 的生命周期由一系列回调方法组成,用于管理其创建、可见性、焦点和销毁过程。以下是核心方法及其调用时机: onCreate() 调用时机:Activity 首次创建时调用。…...
Spring Security 认证流程——补充
一、认证流程概述 Spring Security 的认证流程基于 过滤器链(Filter Chain),核心组件包括 UsernamePasswordAuthenticationFilter、AuthenticationManager、UserDetailsService 等。整个流程可分为以下步骤: 用户提交登录请求拦…...
redis和redission的区别
Redis 和 Redisson 是两个密切相关但又本质不同的技术,它们扮演着完全不同的角色: Redis: 内存数据库/数据结构存储 本质: 它是一个开源的、高性能的、基于内存的 键值存储数据库。它也可以将数据持久化到磁盘。 核心功能: 提供丰…...
c# 局部函数 定义、功能与示例
C# 局部函数:定义、功能与示例 1. 定义与功能 局部函数(Local Function)是嵌套在另一个方法内部的私有方法,仅在包含它的方法内可见。 • 作用:封装仅用于当前方法的逻辑,避免污染类作用域,提升…...
