智云星课是一个基于Spring Boot和AI技术的智能学习平台系统,提供了丰富的教学管理功能和AI互动特性,为用户打造全方位、智能化的学习体验。项目集成了Dify AI接口,支持AI聊天、课程学习、资料分享、打卡记录、单词记忆、课程表等多种智能学习功能。




CREATE DATABASE smart_class DEFAULT CHARACTER SET utf8mb4;
mysql -u username -p smart_class < sql/create_table.sql
git clone https://github.com/Ubanillx/smartclass-backend.git
cd smartclass-backend
根据环境配置src/main/resources/application.yml文件
# 数据库配置
spring:
datasource:
url: jdbc:mysql://localhost:3306/smart_class
username: root
password: your_password
# Redis配置
redis:
host: localhost
port: 6379
password: your_redis_password
mvn spring-boot:run
使用Docker Compose一键部署(包含MySQL和Redis):
docker-compose up -d
访问Knife4J接口文档:http://服务器IP地址:8101/api/doc.html
src/
├── main/
│ ├── java/com/ubanillx/smartclass/
│ │ ├── annotation/ # 自定义注解
│ │ ├── aop/ # 切面逻辑
│ │ ├── common/ # 通用组件
│ │ ├── config/ # 配置类
│ │ ├── constant/ # 常量定义
│ │ ├── controller/ # 控制器
│ │ ├── esdao/ # ES数据访问
│ │ ├── exception/ # 异常处理
│ │ ├── job/ # 定时任务
│ │ ├── manager/ # 业务管理
│ │ ├── mapper/ # MyBatis映射
│ │ ├── model/ # 数据模型
│ │ ├── service/ # 业务服务
│ │ ├── util/ # 工具类
│ │ ├── wxmp/ # 微信公众号
│ │ └── MainApplication.java # 应用入口
│ │
│ └── resources/ # 配置资源
│ ├── application.yml # 应用配置
│ ├── mapper/ # MyBatis XML
│ └── static/ # 静态资源
│
└── test/ # 测试代码
项目集成了Dify API用于智能对话功能,详细配置和使用方法请参考DifyAPI.md文档。
首先,在Dify平台创建您的智能体:

配置完成后,需要发布智能体:

为了在系统中使用智能体,需要创建API密钥:

完成上述步骤后,可以在智云星课管理系统中添加智能体:
http://10.0.124.181/v1)
在添加智能体时,需要配置以下关键参数:
| 参数 | 说明 | 示例 |
|---|---|---|
| 名称 | 智能体显示名称 | 智能学习助手 |
| 描述 | 智能体功能描述 | 专业的学习辅导AI助手 |
| 头像 | 智能体头像图片 | 上传PNG/JPG格式图片 |
| Base URL | Dify API基础地址 | http://10.0.124.181/v1 |
| API Key | Dify API密钥 | Bearer app-xxx... |
| App ID | 智能体应用ID | 从Dify平台获取 |
| 状态 | 智能体启用状态 | 启用/禁用 |
添加完成后,可以通过以下方式测试智能体:
验证流式响应和文件上传功能
API测试:
/chat/message/send 接口Q: 智能体无法正常响应? A: 请检查以下项目: - API密钥是否正确 - Base URL是否可访问 - 智能体是否已发布 - 网络连接是否正常
Q: 如何更新智能体配置? A: 在管理后台找到对应的智能体,点击编辑按钮即可修改配置。
Q: 是否支持多个智能体? A: 是的,系统支持同时配置多个不同的智能体,用户可以在前端选择不同的AI助手进行对话。
// 在DifyServiceImpl中配置流式响应
@Override
public void sendChatMessageStreaming(String userId, String content,
StreamingCallback callback) {
// 配置流式响应参数
DifyChatRequest request = new DifyChatRequest();
request.setResponseMode("streaming");
request.setUser(userId);
request.setQuery(content);
// ...
}
系统支持文本、图片等多模态输入: - 文本对话 - 图片识别与分析 - 文件上传与处理
详细的技术实现请参考 Dify集成技术文档。
启动项目后,访问Knife4j接口文档:

http://localhost:8101/api/doc.html
详细的部署步骤和配置说明请参考doc/deployment.md文档。
git checkout -b feature/amazing-feature)git commit -m 'Add some amazing feature')git push origin feature/amazing-feature)本项目采用AGPL-3.0许可证,仅供个人学习、研究和非商业用途使用。未经授权,不得将本项目用于任何商业目的。




智慧课堂后端现已支持Postman接口文档和WebSocket调试。
http://<your-server-ip>:12345/api/doc/postman-collection 下载Postman Collection更多详细信息,请参考 Postman调试指南
本系统使用SSE(Server-Sent Events)技术实现了实时消息推送功能,包括以下特性:
/chat/connect: 建立SSE连接,前端使用EventSource订阅此端点/chat/disconnect: 关闭SSE连接/chat/send: 发送实时聊天消息/chat/notify: 发送系统通知(仅管理员可用)/chat/status: 获取聊天状态(未读数量、在线状态等)chat: 聊天消息事件read_status: 消息已读状态更新事件unread_count: 未读消息数量更新事件user_status: 用户在线状态更新事件system: 系统通知事件$ claude mcp add smartclass-backend \
-- python -m otcore.mcp_server <graph>