# AIUML **Repository Path**: lyycodebase/aiuml ## Basic Information - **Project Name**: AIUML - **Description**: No description available - **Primary Language**: Unknown - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-11-03 - **Last Updated**: 2025-11-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # AI UML Generator 一个基于AI的UML图表生成工具,支持通过自然语言提示词生成PlantUML代码,并实时渲染为UML图表。 ## 功能特性 ### 🎨 智能布局 - **左右分栏布局**:左栏包含提示词输入和PlantUML编辑,右栏显示UML图预览 - **可拖动调整**:所有分栏支持拖动调整宽度,方便查看和编辑 - **响应式设计**:界面自适应,图片按比例显示不被挤压 ### 🤖 AI 代码生成 - **多API支持**:兼容所有 OpenAI-like API(OpenAI、DeepSeek等) - **简单配置**:只需配置API URL、API Key和Model即可使用 - **自动URL规范化**:支持base_url或完整URL两种格式 - **智能错误处理**:完整显示API返回的错误信息,便于调试 ### 📊 UML 图表渲染 - **PlantUML支持**:使用PlantUML库渲染多种UML图表类型 - **Graphviz支持**:可配置Graphviz路径,支持复杂图表渲染 - **实时预览**:代码修改后立即渲染预览 - **图片下载**:支持将UML图保存为PNG格式 ### ⚙️ 配置管理 - **持久化配置**:配置保存到本地JSON文件 - **API测试**:内置API连接测试功能 - **Graphviz配置**:可选配置Graphviz路径,增强渲染能力 ## 系统要求 - **Java 11** 或更高版本 - **Maven 3.6+**(用于构建) - **Graphviz**(可选,用于渲染复杂图表) ## 快速开始 ### 1. 编译项目 ```bash mvn clean package ``` 编译完成后,可执行JAR文件位于:`target/AIUML-1.0-SNAPSHOT.jar` ### 2. 运行程序 ```bash java -jar target/AIUML-1.0-SNAPSHOT.jar ``` 或者使用Maven直接运行: ```bash mvn exec:java -Dexec.mainClass="org.example.Main" ``` ### 3. 配置API 1. 点击"设置"按钮 2. 填写以下信息: - **API URL**:例如 `https://api.deepseek.com/chat/completions` 或 `https://api.deepseek.com` - **API Key**:您的API密钥 - **Model**:例如 `deepseek-chat`、`gpt-3.5-turbo` 等 - **Graphviz 路径**:(可选)如果安装了Graphviz,可指定dot可执行文件路径 3. 点击"测试连接"验证配置 4. 点击"保存"保存配置 ### 4. 使用流程 1. **输入提示词**:在左上栏输入您的UML需求描述 2. **生成代码**:点击"生成 PlantUML"按钮,AI将生成PlantUML代码并显示在左下栏 3. **编辑代码**:可以在左下栏直接编辑生成的PlantUML代码 4. **渲染预览**:点击"渲染 UML 图"按钮,在右栏查看渲染结果 5. **下载图片**:点击"下载 UML 图"按钮保存PNG图片 ## 支持的API服务 本程序兼容所有遵循OpenAI API格式的服务: - ✅ **DeepSeek**:`https://api.deepseek.com/chat/completions` - ✅ **OpenAI**:`https://api.openai.com/v1/chat/completions` - ✅ **其他OpenAI兼容API**:任何支持OpenAI格式的API服务 ### API URL格式说明 支持两种URL格式: 1. **完整URL**:`https://api.deepseek.com/chat/completions` 2. **Base URL**:`https://api.deepseek.com`(程序会自动添加 `/chat/completions`) ## 使用示例 ### 示例1:生成类图 **提示词**: ``` 创建一个用户管理系统的类图,包含User类和System类,User有name和age属性,有login和logout方法,System有authenticate和grantAccess方法,User使用System ``` **生成的PlantUML代码**: ```plantuml @startuml class User { +name: String +age: int +login() +logout() } class System { +authenticate(user: User) +grantAccess() } User --> System : uses @enduml ``` ### 示例2:生成时序图 **提示词**: ``` 创建一个登录流程的时序图,包含User、System和Database三个参与者,User调用System的authenticate方法,System再调用Database的validate方法 ``` ## 配置说明 ### 配置文件位置 配置文件保存在项目根目录的 `config.json`: ```json { "apiUrl": "https://api.deepseek.com/chat/completions", "apiKey": "your-api-key", "model": "deepseek-chat", "graphvizDotPath": "C:\\Program Files\\Graphviz\\bin\\dot.exe" } ``` ### Graphviz配置(可选) 如果需要渲染复杂的UML图表(如组件图、部署图等),需要安装Graphviz: 1. **下载安装**:[Graphviz官网](https://graphviz.org/download/) 2. **配置路径**:在设置中指定Graphviz的dot可执行文件路径 - Windows: `C:\Program Files\Graphviz\bin\dot.exe` - Linux: `/usr/bin/dot` - macOS: `/usr/local/bin/dot` 如果未配置Graphviz,类图、时序图等简单图表仍可正常渲染。 ## 项目结构 ``` AIUML/ ├── pom.xml # Maven配置文件 ├── README.md # 项目说明文档 ├── config.json # 配置文件(自动生成) ├── src/ │ └── main/ │ └── java/ │ └── org/ │ └── example/ │ ├── Main.java # 主窗口和UI逻辑 │ ├── ApiClient.java # API调用封装 │ ├── ConfigManager.java # 配置管理 │ └── SettingsDialog.java # 设置对话框 └── target/ # 编译输出目录 ``` ## 发布Release版本 ### 方法一:使用Maven打包 1. **修改版本号**:在 `pom.xml` 中将版本从 `1.0-SNAPSHOT` 改为 `1.0`(或其他release版本) 2. **打包项目**: ```bash mvn clean package ``` 3. **打包结果**:可执行JAR位于 `target/AIUML-1.0.jar` ### 方法二:创建可执行JAR(推荐) 1. **添加Maven插件配置**到 `pom.xml`(见下方配置) 2. **打包**: ```bash mvn clean package ``` 3. **运行**: ```bash java -jar target/AIUML-1.0.jar ``` ### Maven打包插件配置 在 `pom.xml` 的 `` 标签后添加: ```xml org.apache.maven.plugins maven-compiler-plugin 3.8.1 11 11 org.apache.maven.plugins maven-jar-plugin 3.2.0 org.example.Main org.apache.maven.plugins maven-shade-plugin 3.2.4 package shade org.example.Main ``` ## 常见问题 ### Q: 提示"API端点不存在"或404错误? **A:** 请检查: 1. API URL格式是否正确(支持base_url或完整URL) 2. 如果使用base_url,程序会自动添加 `/chat/completions` 路径 3. 确保API服务支持OpenAI兼容格式 ### Q: 图片显示被挤压变形? **A:** 已修复。程序现在会自动按比例缩放图片,保持原始宽高比。 ### Q: 提示需要Graphviz? **A:** - 简单图表(类图、时序图)不需要Graphviz - 复杂图表(组件图、部署图)需要安装Graphviz - 可以在设置中配置Graphviz路径,或在系统PATH中配置 ### Q: 如何更换API服务? **A:** 在设置中修改API URL、API Key和Model即可。程序兼容所有OpenAI-like API。 ## 技术栈 - **Java 11**:开发语言 - **Java Swing**:GUI框架 - **PlantUML**:UML图表渲染库 - **Gson**:JSON解析库 - **Java HttpClient**:HTTP客户端(Java 11内置) - **Maven**:项目构建工具 ## 许可证 本项目采用 MIT 许可证。 ## 贡献 欢迎提交Issue和Pull Request! ## 更新日志 ### v1.0 - ✅ 初始版本发布 - ✅ 支持AI生成PlantUML代码 - ✅ 支持UML图表实时预览和下载 - ✅ 兼容OpenAI-like API - ✅ 支持Graphviz配置 - ✅ 可拖动调整的界面布局 - ✅ 完善的错误处理和提示