2025同济大学Java企业级应用开发期中作业
本项目包含两个主要部分:
-
java-teaching-assistant - IntelliJ IDEA 插件项目
- 使用 Gradle 构建
- 提供聊天界面、代码上下文管理、智能代码修改、请求队列系统等功能
- 共 27 个核心 Java 文件(新增:RequestQueueManager、QueueDisplayPanel、FileDropHandler等)
-
ai-code-helper - Spring Boot AI 后端服务
- 使用 Maven 构建
- 基于 Langchain4j 框架
- 提供 AI 对话、RAG 检索、代码修改、自主代码读取、意图识别等功能
- 共 13 个核心 Java 文件
完整的项目结构说明(精确到每个文件)请查看: 👉 项目结构说明.md
该文档包含:
- 所有目录和文件的详细列表(最新更新:27个前端核心文件)
- 每个文件的职责和关键功能
- 项目架构关系图
- 核心功能与文件映射表
- 技术栈总结
功能完成情况清单: 👉 功能完成情况清单.md
包含:
- F0基础功能完成情况(100%)
- F2扩展功能完成情况(100%)
- 新增功能:请求队列系统、多文件修改、HTTPS部署等
- 技术亮点和附加功能(包含部署与安全特性)
- 待开发功能规划(包括多会话管理设计方案)
- ✅ F0基础功能:100%(RAG、来源引用、UI、上下文、请求队列)
- ✅ F2扩展功能:100%(代码修改、AI意图识别、多文件修改)
本项目采用集中后端服务器架构:
┌─────────────────────┐ ┌────────────────────────┐
│ IntelliJ IDEA │ │ 远程服务器 │
│ 插件 (客户端) │ ────────>│ Spring Boot 后端 │
│ │ HTTP │ (统一配置API Key) │
└─────────────────────┘ └────────────────────────┘
多个用户 集中管理
特点:
- ✅ 用户无需配置API Key
- ✅ 后端统一管理AI服务
- ✅ 安装即用,开箱即用
- ✅ 数据集中存储和管理
-
安装 Java 21+
- 下载并安装 JDK 21 或更高版本
- 配置
JAVA_HOME环境变量
-
安装 IntelliJ IDEA
- 下载 IDEA 社区版或企业版
- 安装 Plugin DevKit 插件
方式1:从发布包安装(推荐)
- 下载插件 ZIP 包:
java-teaching-assistant-1.0-SNAPSHOT.zip - 打开 IDEA → Settings → Plugins
- 点击齿轮图标 ⚙️ → Install Plugin from Disk...
- 选择下载的 ZIP 文件
- 重启 IDEA
方式2:本地开发运行
- 克隆项目到本地
- 用 IDEA 打开
java-teaching-assistant项目 - 打开 Gradle 面板,找到
Tasks→intellij→runIde - 双击运行,会启动一个新的 IDEA 实例(带插件)
- 在右侧工具栏找到 "智能会话" 窗口
- 输入问题,例如:"Java 中的继承是什么?"
- AI 会基于课程资料回答,并标注信息来源
- 选中代码 → 右键 → "添加到AI上下文" / "向AI提问此代码" / "AI修改代码"
插件会自动连接到远程服务器(http://111.229.81.45:8081)
测试方法:
curl http://111.229.81.45:8081
# 应该返回服务信息如果连接失败,请联系管理员检查服务器状态。
Q: 插件无法连接后端服务
A: 检查远程服务器是否正常运行(http://111.229.81.45:8081),联系管理员确认服务状态。
Q: AI 回复速度慢
A: 这是正常现象,AI 需要思考时间。请耐心等待流式响应。
Q: 想要修改后端服务器地址
A: 打开 java-teaching-assistant/src/main/java/com/javaProgram/services/AiServiceClient.java,修改 REMOTE_SERVER 常量。
- Linux (Ubuntu 20.04+, CentOS 7+, Debian 10+)
- Java 21+
- 至少 2GB RAM
- 通义千问 API Key
在服务器上设置环境变量:
# 编辑 /etc/environment
sudo nano /etc/environment
# 添加一行
DASHSCOPE_API_KEY=sk-your-api-key-here
# 重新加载
source /etc/environment本地打包:
cd ai-code-helper
mvnw.cmd clean package -DskipTests上传到服务器:
scp target/ai-code-helper-0.0.1-SNAPSHOT.jar root@111.229.81.45:/opt/ai-code-helper/# 创建服务文件
sudo nano /etc/systemd/system/ai-code-helper.service[Unit]
Description=AI Code Helper Service
After=network.target
[Service]
Type=simple
User=root
WorkingDirectory=/opt/ai-code-helper
Environment="DASHSCOPE_API_KEY=sk-your-api-key-here"
ExecStart=/usr/bin/java -jar ai-code-helper-0.0.1-SNAPSHOT.jar --spring.profiles.active=prod
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.targetsudo systemctl daemon-reload
sudo systemctl enable ai-code-helper
sudo systemctl start ai-code-helper
sudo systemctl status ai-code-helpercurl http://localhost:8081
# 应该返回服务信息sudo systemctl start ai-code-helper # 启动
sudo systemctl stop ai-code-helper # 停止
sudo systemctl restart ai-code-helper # 重启
sudo systemctl status ai-code-helper # 状态
sudo journalctl -u ai-code-helper -f # 日志- 使用环境变量存储 API Key
- 不要将 API Key 提交到 Git
- 定期更换 API Key
- 监控 API 使用量
- 下载 IDEA 社区版/企业版
- 下载 Plugin DevKit 插件
- 新建项目,选择类型
IDE 插件 - 点击
Gradle图标构建Gradle,完成后会生成.gradle,.intelljPlatfrom,build三个文件夹 - 将
src/main/kotlin文件夹改为src/main/java
build.gradle.kts:配置文件,我的IDEA创建的默认设置可以直接跑src/main/resources/MAIN-INF/plugin.xml:插件信息,包括了插件的id<id>、名称<name>、开发者信息<vendor>、描述<description>- 在
src/main/java/*文件夹内创建操作类action后,需要在plugin.xml文件中添加信息,举例:
<actions>
<action id="SelectAction" class="com.example.demo.SelectAction" text="SelectAction"
description="SelectAction">
<add-to-group group-id="ToolsMenu" anchor="first"></add-to-group>
</action>
</actions>- 说明
- id:操作的id
- class:操作的类,要和目录结构一致
- text:操作名称
- description:操作描述
- add-to-group:操作添加的位置,此处的含义是添加到在“工具”菜单项的最上层(在IDEA页面,按下ctrl+alt+鼠标左键可以查看具体UI位置的信息)(不过这部分建议直接问AI)
- 点击
Gradle图标,打开build文件夹,点击jar,开始打包插件 - 打包完成后,会输出
执行完成 'jar',此时在build\libs文件夹下可以找到打包的插件
- 打开插件仓库,点击设置按钮,选择“从磁盘安装插件”,选择对应的jar包进行安装
- 进入jetbrains插件开发平台,注册账号
- 点击Upload Plugin上传插件,上传插件jar包,编写相关信息
- 上传成功,等待审核

