当前位置: 首页 > news >正文

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

  • 比如这样的代码:
@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.rkmt.cn/news/49895.html

相关文章:

  • java实现Word转Pdf(Windows、Linux通用) - IT
  • docker: ubuntu 24.04安装docker
  • 探索“AI元人文”构想:致学者、技术专家与爱好者的一篇导言
  • 实用指南:计算机视觉(opencv)——基于 MediaPipe 人体姿态检测
  • 《团队协作:如何高效进行代码审查》
  • 英国留学中介避坑指南:新通/厚仁领跑,G5录取率93%+的靠谱留学机构清单
  • C# 数据类型与运算符(学习笔记2)
  • 《移动开发:Flutter与React Native的对比》‌
  • 超参数调优:Grid Search 和 Random Search 的实战对比
  • 实用指南:26秋招三分钟快速背诵一个八股-Spring中Bean的生命周期
  • FreeSWITCH使用RNNoise进行实时通话降噪
  • Spring AI Alibaba 项目源码学习(六)-Agent Framework 工作原理与使用
  • 采用 OpenCASCADE 提取布尔运算后平面图形的外轮廓
  • 题解:AtCoder ARC209D A_A_i
  • Kotlin Coroutines
  • 我的标题
  • Java Benchmark使用
  • Go-秘籍-全-
  • Kotlin中的flow、stateflow、shareflow之间的区别和各自的功能 - 教程
  • 非离散网络流——P3347 [ZJOI2015] 醉熏熏的幻想乡
  • Dark Side of the Moon
  • 图片合集
  • 升幂引理(LTE)
  • OpenWrt路由的端口映射问题
  • 解码IPC-管道与信号
  • How-to-extract-text-from-PDF-Image-files-OCR-CarlZeng
  • 升鲜宝供应链管理系统、各端的访问地址及nginx 真实的配置方法
  • 2025.11.14模拟赛
  • uiautomator2元素查看器WEditor的安装和启动
  • MI50 在ubuntu 下 风扇控制实现