Skip to content

ycc250303/Java_Teaching_Assistant

Repository files navigation

Java_Teaching_Assistant

2025同济大学Java企业级应用开发期中作业

项目结构说明

本项目包含两个主要部分:

📦 项目组成

  1. java-teaching-assistant - IntelliJ IDEA 插件项目

    • 使用 Gradle 构建
    • 提供聊天界面、代码上下文管理、智能代码修改、请求队列系统等功能
    • 共 27 个核心 Java 文件(新增:RequestQueueManager、QueueDisplayPanel、FileDropHandler等)
  2. 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服务
  • ✅ 安装即用,开箱即用
  • ✅ 数据集中存储和管理

前置准备

  1. 安装 Java 21+

    • 下载并安装 JDK 21 或更高版本
    • 配置 JAVA_HOME 环境变量
  2. 安装 IntelliJ IDEA

    • 下载 IDEA 社区版或企业版
    • 安装 Plugin DevKit 插件

步骤1: 安装插件

方式1:从发布包安装(推荐)

  1. 下载插件 ZIP 包:java-teaching-assistant-1.0-SNAPSHOT.zip
  2. 打开 IDEA → Settings → Plugins
  3. 点击齿轮图标 ⚙️ → Install Plugin from Disk...
  4. 选择下载的 ZIP 文件
  5. 重启 IDEA

方式2:本地开发运行

  1. 克隆项目到本地
  2. 用 IDEA 打开 java-teaching-assistant 项目
  3. 打开 Gradle 面板,找到 TasksintellijrunIde
  4. 双击运行,会启动一个新的 IDEA 实例(带插件)

步骤2: 使用插件

  1. 在右侧工具栏找到 "智能会话" 窗口
  2. 输入问题,例如:"Java 中的继承是什么?"
  3. AI 会基于课程资料回答,并标注信息来源
  4. 选中代码 → 右键 → "添加到AI上下文" / "向AI提问此代码" / "AI修改代码"

步骤3: 验证连接

插件会自动连接到远程服务器(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

⚡ 快速部署流程

1. 配置 API Key

在服务器上设置环境变量:

# 编辑 /etc/environment
sudo nano /etc/environment

# 添加一行
DASHSCOPE_API_KEY=sk-your-api-key-here

# 重新加载
source /etc/environment

2. 打包并上传

本地打包:

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/

3. 配置 systemd 服务

# 创建服务文件
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.target

4. 启动服务

sudo systemctl daemon-reload
sudo systemctl enable ai-code-helper
sudo systemctl start ai-code-helper
sudo systemctl status ai-code-helper

5. 验证部署

curl 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
  • 不要将 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 文件夹下可以找到打包的插件

1761452351944

安装插件

  • 打开插件仓库,点击设置按钮,选择“从磁盘安装插件”,选择对应的jar包进行安装

1761452322684

发布插件

About

2025同济大学Java企业级应用开发期中作业

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •