让PlantUML的布线更加简洁的一个方法

news/2025/11/14 23:10:08/文章来源:https://www.cnblogs.com/ligaohe/p/19223709
  • 比如这样的代码:
@startuml 系统架构图
title IntelliJ IDEA AI编程助教插件 - 系统架构图
package "AI编程助教插件" {package "表示层 (Presentation Layer)" {[Tool Window] as ToolWindow[Editor Actions] as EditorActions}package "应用层 (Application Layer)" {[TaToolWindowPanel] as ChatService[AskSelectedCodeAction\nCodeRefactorAction] as CodeModificationService}package "领域层 (Domain Layer)" {[SimpleRetriever] as RAGEngine[DocumentIndexer] as KnowledgeBaseManager[ContextAwareProcessor] as ContextAnalyzer[OpenRouterClient] as LLMEngine}package "基础设施层 (Infrastructure Layer)" {[Apache Tika] as DocParser[VectorStore] as VectorStore[SimpleRetriever] as RetrievalEngine}package "工具类" {[IndexFileManager] as IndexFileManager}
}package "外部系统" {[Course Documents] as CourseDocs[Large Language Model] as LLM
}/' 层间关系 '/
ToolWindow --> ChatService : 用户提问
EditorActions --> CodeModificationService : 代码操作请求ChatService --> RAGEngine : 触发检索流程
CodeModificationService --> ContextAnalyzer : 获取代码上下文
CodeModificationService --> LLMEngine : 调用大语言模型RAGEngine --> KnowledgeBaseManager : 查询知识库
KnowledgeBaseManager --> RetrievalEngine : 检索相关文档
KnowledgeBaseManager --> DocParser : 解析课程文档
KnowledgeBaseManager --> VectorStore : 存储/检索向量LLMEngine --> LLM : 调用大语言模型VectorStore --> RetrievalEngine : 提供向量检索
RetrievalEngine --> RAGEngine : 返回检索结果DocParser --> CourseDocs : 读取课程文档/' 数据存储 '/
folder "数据存储" {[Index File] as IndexFile[Vector Database] as VectorDB
}IndexFileManager --> IndexFile : 管理文档索引路径
VectorDB --> VectorStore : 存储向量数据@enduml
  • 图的效果是这样的:

系统架构图

  • 布线很乱

解决方法

  • 在@startuml下方添加skinparam linetype ortho设置布线为直线

  • skinparam defaultFontSize 12调小字体大小
    skinparam Padding 20调大元素间距

  • 图的效果:

系统架构图

  • 好像没有整齐多少, 但是线变直了!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/965768.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《Java工程师必看:JVM性能调优的7个核心参数》‌

1、非修改序列算法 这些算法不会改变它们所操作的容器中的元素。 1.1 find 和 find_if find(begin, end, value):查找第一个等于 value 的元素,返回迭代器(未找到返回 end)。 find_if(begin, end, predicate):查找…

20232301郑好 实验五 信息搜集技术实践

20232301郑好 实验五 信息搜集技术实践实验五 信息搜集技术与实践 一、实验要求 (1)从www.besti.edu.cn、baidu.com、sina.com.cn中选择一个DNS域名进行查询,获取如下信息: DNS注册人及联系方式 该域名对应IP地址 …

2025年澳洲留学中介机构推荐榜单:八大名校offer保障/全流程服务/高性价比机构推荐​

2025年澳洲留学中介机构推荐榜单:八大名校offer保障/全流程服务/高性价比机构推荐​近年来,中国学生赴澳留学热度持续攀升,澳洲八大名校以其优质教育资源、宽松移民政策成为热门选择。但澳洲院校申请体系复杂,专业…

java实现Word转Pdf(Windows、Linux通用) - IT

java实现Word转Pdf(Windows、Linux通用) 最近,需要实现在linux服务器上将Word文档转成PDF文档的功能,接手其他人项目使用的是Jacob,但是需要往jdk里面添加文件,所以想换一个方法实现,根据前者和相关资料决定使用…

docker: ubuntu 24.04安装docker

一,docker官网文档 https://docs.docker.com/engine/install/ubuntu/ 参考上面官方的安装文档 二,安装docker 更新软件包索引并安装软件包以允许使用 基于 HTTPS 的存储库 # apt update # apt install ca-certificat…

探索“AI元人文”构想:致学者、技术专家与爱好者的一篇导言

探索“AI元人文”构想:致学者、技术专家与爱好者的一篇导言 尊敬的学者、技术专员与各位爱好读者: 在人工智能伦理与治理的探索正陷入“价值对齐”之困的今天,我们荣幸地向您引荐一个充满活力与潜力的前沿思想体系—…

实用指南:计算机视觉(opencv)——基于 MediaPipe 人体姿态检测

实用指南:计算机视觉(opencv)——基于 MediaPipe 人体姿态检测pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "…

《团队协作:如何高效进行代码审查》

1、非修改序列算法 这些算法不会改变它们所操作的容器中的元素。 1.1 find 和 find_if find(begin, end, value):查找第一个等于 value 的元素,返回迭代器(未找到返回 end)。 find_if(begin, end, predicate):查找…

英国留学中介避坑指南:新通/厚仁领跑,G5录取率93%+的靠谱留学机构清单

英国留学中介避坑指南:新通/厚仁领跑,G5录取率93%+的靠谱留学机构清单行业权威榜单发布,优质中介综合测评​ 随着英国G5名校申请竞争的持续升温,专业英国留学中介已成为学子冲刺梦校的核心助力。优质中介不仅能精准…

C# 数据类型与运算符(学习笔记2)

1. 变量 int i = 10; 变量类型+空格+变量名称+空格+初始值。2. 常量const double PI = 3.1415926;固定不变的值用常量表示,只能赋值一次。3.基本数据类型 用C#编程有两套数据类型,一是C#语言自带的,二是.Net Fram…

《移动开发:Flutter与React Native的对比》‌

1、非修改序列算法 这些算法不会改变它们所操作的容器中的元素。 1.1 find 和 find_if find(begin, end, value):查找第一个等于 value 的元素,返回迭代器(未找到返回 end)。 find_if(begin, end, predicate):查找…

20232420 2025-2026-1 《网络与系统攻防技术》实验五实验报告

1.实验内容 (1)选择一个DNS域名进行查询,获取如下信息:DNS注册人及联系方式、该域名对应IP地址、IP地址注册人及联系方式、IP地址所在国家、城市和具体地理位置。 (2)尝试获取QQ中某一好友的IP地址,并查询获取该…

kde neon: 配置国内源

编辑neon的源 # vi /etc/apt/sources.list.d/neon.list内容:// 注释原有内容,新增下面一行 sudo vi /etc/apt/sources.list.d/neon.list deb https://mirrors.bfsu.edu.cn/kde-neon/user noble main 完成后updatesu…

CF1606F Tree Queries

题目大意: 你有一棵 \(n\) 个点的树,你有一种操作,每次选择一个节点,将他的儿子全连向它的夫亲,然后把这个点删掉。 设 \(f_{u,m}\) 表示 \(u\) 这个点操作完 \(m\) 次之后最大的儿子数量,求 \(\max_{1 \le m \l…

2025.11.14总结

pycharm配置镜像源的方法,点击加号可以配置仓库,我这里使用的是清华的,大家也可以选择阿里等仓库

JWT笔记

JWT笔记 一、简单介绍 JWT由三部分组成: header,payload,Signature(头部,载荷,签证) 二、工具类 工具类是一个封装类,将一些对Jwt相关的操作进行整理,以便调用。 1. JwtToken创建 (不同版本,方法或有变动)调用…

2025藤校申请少走弯路!5家权威机构测评,从申请到就业一站式护航

2025藤校申请少走弯路!5家权威机构测评,从申请到就业一站式护航随着全球顶尖教育资源竞争的加剧,藤校申请已进入"精准规划+实力赋能"的新阶段。专业的藤校申请留学机构不仅能精准匹配院校录取偏好,深度挖…

词向量:开启自然语言处理的奇妙之旅 - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

11.14日学习笔记

类图设计 text +------------------------+ | Computer | +------------------------+ | -memory: Memory | | -cpu: CPU | | -hardDisk: HardDisk | | -os: OS …

[Python刷题记录]-有效的括号-栈-简单

[Python刷题记录]-有效的括号-栈-简单链接:20. 有效的括号 - 力扣(LeetCode) python中list就可以直接当栈用1 class Solution(object):2 def isValid(self, s):3 """4 :type s:…