# AetherAI **Repository Path**: MISSMYSEIF/aether-ai ## Basic Information - **Project Name**: AetherAI - **Description**: Aether AI是一个基于SpringAI框架的前后端分离AI助手智能体项目,专注于教育领域的创新应用。该项目整合了Java与AI大模型技术,实现了Prompt工程、RAG增强检索和Tool Calling等核心功能,构建了智能课程推荐、实时学习咨询、自动化交易服务体系,通过AI大模型与传统教育系统的深度融合,推动教育服务智能化升级 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-22 - **Last Updated**: 2026-08-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Aether AI - 智能教育助手平台 ## 项目简介 Aether AI是一个基于SpringAI框架的前后端分离AI助手智能体项目,专注于教育领域的创新应用。该项目整合了Java与AI大模型技术,实现了Prompt工程、RAG增强检索和Tool Calling等核心功能,构建了智能课程推荐、实时学习咨询、自动化交易服务体系,通过AI大模型与传统教育系统的深度融合,推动教育服务智能化升级。 ## 核心特性 ### 1. Prompt工程 - **智能提示词构建**: 根据不同场景(课程推荐、学习咨询等)动态构建优化的提示词 - **模板化管理**: 支持预定义模板和自定义模板,灵活应对各种对话场景 - **上下文增强**: 自动整合用户画像、历史对话等信息,提升AI理解能力 ### 2. RAG增强检索 - **向量检索**: 基于Pinecone向量数据库,实现语义相似度搜索 - **知识库集成**: 支持PDF、文本等多种格式文档导入,构建专属知识库 - **检索增强**: 将检索结果整合到Prompt中,为AI提供准确的上下文信息 ### 3. Tool Calling - **工具自动调用**: AI根据用户需求自动选择并调用相应工具 - **业务集成**: 支持课程查询、用户查询、订单管理等业务工具 - **结果整合**: 自动将工具执行结果整合到AI回复中 ### 4. 智能课程推荐 - **个性化推荐**: 基于用户画像、学习偏好、历史行为进行智能推荐 - **多维度评分**: 综合考虑兴趣匹配、学习历史、课程热度、课程质量等因素 - **推荐解释**: AI生成推荐理由,提高推荐透明度和可信度 ### 5. 实时学习咨询 - **智能问答**: 解答学习过程中的各类问题 - **学习建议**: 提供学习方法、资源推荐、路径规划等建议 - **上下文理解**: 支持多轮对话,理解对话上下文 ### 6. 自动化交易服务 - **订单管理**: 订单创建、支付、取消、退款等全流程管理 - **支付集成**: 支持多种支付方式(支付宝、微信、模拟支付) - **状态跟踪**: 实时跟踪订单状态,支持自动取消超时订单 ## 技术架构 ### 后端技术栈 - **Spring Boot 3.2.2**: 应用框架 - **Spring Security**: JWT认证与授权 - **Spring AI 1.0.0-M4**: AI集成框架 - **OpenAI GPT-4**: AI大模型 - **Pinecone**: 向量数据库 - **MyBatis Plus 3.5.5**: ORM框架 - **MySQL 8.0**: 关系型数据库 - **Redis**: 缓存数据库 - **Knife4j**: API文档工具 - **JJWT 0.12.3**: JWT Token工具 ### 前端技术栈 - **Vue 3.4**: 前端框架 - **Vite 5.0**: 构建工具 - **Element Plus 2.5**: UI组件库 - **Pinia 2.1**: 状态管理 - **Vue Router 4.2**: 路由管理 - **Axios**: HTTP客户端 ### 移动端技术栈(React Native) - **React Native 0.73**: 移动应用框架 - **React Navigation 6**: 导航库 - **React Native Elements**: UI组件库 - **Axios**: HTTP客户端 ### HarmonyOS技术栈 - **HarmonyOS 6**: 华为鸿蒙系统 - **ArkTS**: HarmonyOS开发语言 - **ArkUI**: HarmonyOS UI框架 ## 项目结构 ``` Aether/ ├── aether-ai-backend/ # 后端项目 │ ├── src/ │ │ ├── main/ │ │ │ ├── java/com/aether/ai/ │ │ │ │ ├── config/ # 配置类 │ │ │ │ │ └── SpringAiConfig.java # Spring AI配置 │ │ │ │ ├── controller/ # 控制器 │ │ │ │ │ ├── AiAssistantController.java # AI助手控制器 │ │ │ │ │ ├── CourseController.java # 课程控制器 │ │ │ │ │ └── OrderController.java # 订单控制器 │ │ │ │ ├── service/ # 服务层 │ │ │ │ │ ├── AiAssistantService.java # AI助手核心服务 │ │ │ │ │ ├── UserService.java # 用户服务 │ │ │ │ │ ├── CourseService.java # 课程服务 │ │ │ │ │ └── OrderService.java # 订单服务 │ │ │ │ ├── mapper/ # 数据访问层 │ │ │ │ ├── entity/ # 实体类 │ │ │ │ │ ├── BaseEntity.java # 基础实体 │ │ │ │ │ ├── User.java # 用户实体 │ │ │ │ │ ├── Course.java # 课程实体 │ │ │ │ │ └── Order.java # 订单实体 │ │ │ │ ├── dto/ # 数据传输对象 │ │ │ │ │ ├── Result.java # 统一响应结果 │ │ │ │ │ ├── ChatRequest.java # 对话请求 │ │ │ │ │ └── ChatResponse.java # 对话响应 │ │ │ │ ├── prompt/ # Prompt工程 │ │ │ │ │ └── PromptEngineeringService.java │ │ │ │ ├── rag/ # RAG检索 │ │ │ │ │ └── RagService.java │ │ │ │ ├── tool/ # Tool Calling │ │ │ │ │ └── ToolCallingService.java │ │ │ │ └── AetherAiApplication.java # 主启动类 │ │ │ └── resources/ │ │ │ └── application.yml # 配置文件 │ │ └── test/ # 测试代码 │ └── pom.xml # Maven配置 │ ├── aether-ai-frontend/ # 前端项目 │ ├── src/ │ │ ├── views/ # 页面组件 │ │ │ ├── Layout.vue # 布局组件 │ │ │ ├── Home.vue # 首页 │ │ │ ├── Chat.vue # AI对话页面 │ │ │ ├── Course.vue # 课程中心 │ │ │ ├── Order.vue # 我的订单 │ │ │ ├── Login.vue # 登录页面 │ │ │ └── NotFound.vue # 404页面 │ │ ├── components/ # 公共组件 │ │ ├── router/ # 路由配置 │ │ │ └── index.js │ │ ├── store/ # 状态管理 │ │ ├── api/ # API接口 │ │ │ └── index.js │ │ ├── utils/ # 工具函数 │ │ │ └── request.js # Axios封装 │ │ ├── App.vue # 根组件 │ │ └── main.js # 入口文件 │ ├── index.html # HTML模板 │ ├── vite.config.js # Vite配置 │ └── package.json # 依赖配置 │ ├── aether-ai-app/ # 移动端APP项目(React Native) │ ├── src/ │ │ ├── screens/ # 页面组件 │ │ │ ├── HomeScreen.js # 首页 │ │ │ ├── ChatScreen.js # AI对话页面 │ │ │ ├── CourseScreen.js # 课程中心 │ │ │ ├── OrderScreen.js # 我的订单 │ │ │ └── LoginScreen.js # 登录页面 │ │ ├── components/ # 公共组件 │ │ ├── navigation/ # 导航配置 │ │ ├── services/ # API服务 │ │ │ └── api.js # API封装 │ │ ├── utils/ # 工具函数 │ │ └── assets/ # 静态资源 │ ├── App.js # 主组件 │ ├── index.js # 入口文件 │ └── package.json # 依赖配置 │ ├── aether-ai-harmonyos/ # HarmonyOS应用项目 │ ├── entry/ │ │ └── src/main/ │ │ ├── ets/ # ArkTS代码 │ │ │ ├── pages/ # 页面 │ │ │ │ ├── Index.ets # 首页 │ │ │ │ └── ChatPage.ets # AI对话页面 │ │ │ ├── components/ # 组件 │ │ │ ├── common/ # 公共代码 │ │ │ └── utils/ # 工具类 │ │ │ └── HttpUtil.ets # HTTP工具 │ │ └── resources/ # 资源文件 │ └── build-profile.json5 # 构建配置 │ └── README.md # 项目文档 ``` ## 快速开始 ### 环境要求 - JDK 17+ - Node.js 16+ - MySQL 8.0+ - Redis 6.0+ - Maven 3.8+ ### 环境变量 - `OPENAI_API_KEY`: OpenAI API密钥 - `OPENAI_BASE_URL`: OpenAI API地址(可选) - `PINECONE_API_KEY`: Pinecone API密钥 - `JWT_SECRET`: JWT签名密钥(生产环境必须设置) - `DB_PASSWORD`: 数据库密码(生产环境必须设置) ### 后端启动 1. **克隆项目** ```bash git clone cd Aether/aether-ai-backend ``` 2. **配置数据库** ```sql CREATE DATABASE aether_ai DEFAULT CHARACTER SET utf8mb4; ``` 3. **修改配置文件** 编辑 `src/main/resources/application.yml`,配置数据库、Redis、OpenAI等: ```yaml spring: datasource: url: jdbc:mysql://localhost:3306/aether_ai username: root password: your-password ai: openai: api-key: your-openai-api-key ``` 4. **启动应用** ```bash mvn clean install mvn spring-boot:run ``` 后端服务将在 `http://localhost:8080` 启动 ### 前端启动 1. **安装依赖** ```bash cd aether-ai-frontend npm install ``` 2. **启动开发服务器** ```bash npm run dev ``` 前端应用将在 `http://localhost:3000` 启动 ### 移动端APP启动(React Native) 1. **安装依赖** ```bash cd aether-ai-app npm install ``` 2. **iOS启动** ```bash npm run ios ``` 3. **Android启动** ```bash npm run android ``` ### HarmonyOS应用启动 1. **安装DevEco Studio** 下载并安装HarmonyOS官方开发工具DevEco Studio 2. **打开项目** 使用DevEco Studio打开`aether-ai-harmonyos`目录 3. **运行应用** 点击运行按钮,选择模拟器或真机运行 ## API文档 启动后端服务后,访问以下地址查看API文档: - Swagger UI: `http://localhost:8080/api/doc.html` - Druid监控: `http://localhost:8080/api/druid` ### 主要API接口 #### 认证接口 - `POST /api/auth/login` - 用户登录 - `POST /api/auth/register` - 用户注册 #### AI助手接口 - `POST /api/ai/chat` - 智能对话 - `POST /api/ai/recommend` - 课程推荐 - `POST /api/ai/consult` - 学习咨询 #### 课程接口 - `GET /api/course/{id}` - 查询课程详情 - `GET /api/course/search` - 搜索课程 - `GET /api/course/hot` - 获取热门课程 - `GET /api/course/recommended` - 获取推荐课程 #### 订单接口 - `POST /api/order/create` - 创建订单 - `POST /api/order/pay` - 支付订单 - `POST /api/order/cancel` -= 取消订单 - `GET /api/order/user/{userId}` - 查询用户订单 #### 会话接口 - `GET /api/conversation/user/{userId}` - 查询用户会话列表 - `GET /api/conversation%/{conversationId}/messages` - 查询会话消息 - `DELETE /api/conversation/{conversationId}` - 删除会话 ## 核心功能说明 ### Prompt工程实现 Prompt工程是AI应用的核心技术,通过精心设计的提示词引导AI生成更准确的回复。 **实现类**: `PromptEngineeringService.java` **主要方法**: - `buildCourseRecommendPrompt()`: 构建课程推荐场景的提示词 - `buildLearningConsultPrompt()`: 构建学习咨询场景的提示词 - `buildRagEnhancedPrompt()`: 构建RAG增强的提示词 - `buildToolCallingPrompt()`: 构建工具调用的提示词 **设计原则**: 1. 明确性 - 清晰表达需求和期望 2. 具体性 - 提供具体的上下文和示例 3. 结构化 - 使用结构化的格式组织信息 4. 迭代优化 - 根据效果持续改进 ### RAG增强检索实现 RAG(检索增强生成)将检索系统与生成模型结合,为AI提供额外的知识上下文。 **实现类**: `RagService.java` **工作流程**: 1. 用户提问 → 文本向量化 2. 向量相似度搜索 → 检索相关文档 3. 文档内容整合 → 构建增强提示词 4. AI生成回复 → 基于检索内容的回答 **配置参数**: - `topK`: 检索返回的文档数量(默认5) - `similarityThreshold`: 相似度阈值(默认0.7) ### Tool Calling实现 Tool Calling允许AI模型调用外部工具,实现与业务系统的交互。 **实现类**: `ToolCallingService.java` **可用工具**: 1. `queryCourse(courseId, courseName)` - 查询课程信息 2. `queryUser(userId)` - 查询用户信息 3. `queryOrders(userId, status)` - 查询订单 4. `recommendCourses(userId, preferences, limit)` - 推荐课程 **工作流程**: 1. AI分析用户请求,判断需要调用哪些工具 2. AI生成工具调用请求,包含工具名称和参数 3. 系统执行工具调用,返回结果 4. AI根据工具结果生成最终回复 ### 智能课程推荐算法 基于多维度评分的个性化推荐算法。 **实现类**: `CourseService.java` **推荐权重**: - 用户兴趣匹配度: 40% - 学习历史相关性: 30% - 课程热度: 20% - 课程质量评分: 10% **推荐流程**: 1. 获取用户画像(学习偏好、学习目标) 2. 计算候选课程与用户画像的匹配度 3. 综合多维度评分进行排序 4. 返回Top-N推荐结果 ## 数据库设计 ### 用户表(t_user) ```sql CREATE TABLE t_user ( id BIGINT PRIMARY KEY AUTO_INCREMENT, username VARCHAR(50) NOT NULL, password VARCHAR(100) NOT NULL, real_name VARCHAR(50), email VARCHAR(100), phone VARCHAR(20), avatar VARCHAR(255), role VARCHAR(20), status VARCHAR(20), learning_preferences TEXT, learning_goal TEXT, last_login_time DATETIME, last_login_ip VARCHAR(50), create_time DATETIME, update_time DATETIME, deleted INT DEFAULT 0 ); ``` ### 课程表(t_course) ```sql CREATE TABLE t_course ( id BIGINT PRIMARY KEY AUTO_INCREMENT, course_name VARCHAR(100) NOT NULL, course_code VARCHAR(50), description TEXT, cover_image VARCHAR(255), category_id BIGINT, instructor_id BIGINT, instructor_name VARCHAR(50), price DECIMAL(10,2), original_price DECIMAL(10,2), difficulty VARCHAR(20), duration INT, tags TEXT, status VARCHAR(20), student_count INT DEFAULT 0, rating DECIMAL(3,2), review_count INT DEFAULT 0, syllabus TEXT, is_recommended BOOLEAN DEFAULT FALSE, create_time DATETIME, update_time DATETIME, deleted INT DEFAULT 0 ); ``` ### 订单表(t_order) ```sql CREATE TABLE t_order ( id BIGINT PRIMARY KEY AUTO_INCREMENT, order_no VARCHAR(50) NOT NULL, user_id BIGINT NOT NULL, course_id BIGINT NOT NULL, course_name VARCHAR(100), amount DECIMAL(10,2), paid_amount DECIMAL(10,2), discount_amount DECIMAL(10,2), status VARCHAR(20), payment_method VARCHAR(20), payment_time DATETIME, transaction_id VARCHAR(100), remark VARCHAR(255), cancel_reason VARCHAR(255), expire_time DATETIME, create_time DATETIME, update_time DATETIME, deleted INT DEFAULT 0 ); ``` ## 部署说明 ### Docker部署(推荐) 1. **构建后端镜像** ```bash cd aether-ai-backend docker build -t aether-ai-backend:1.0.0 . ``` 2. **构建前端镜像** ```bash cd aether-ai-frontend npm run build docker build -t aether-ai-frontend:1.0.0 . ``` 3. **使用Docker Compose启动** ```bash docker-compose up -d ``` ### 传统部署 1. **后端部署** ```bash mvn clean package java -jar target/aether-ai-backend-1.0.0.jar ``` 2. **前端部署** ```bash npm run build # 将dist目录部署到Nginx或其他Web服务器 ``` ## 开发指南 ### 添加新的AI功能 1. 在`PromptEngineeringService`中添加新的Prompt构建方法 2. 在`AiAssistantService`中添加新的业务处理逻辑 3. 在`AiAssistantController`中添加新的API接口 4. 在前端添加对应的页面和交互逻辑 ### 添加新的工具函数 1. 在`ToolCallingService`中添加新的工具方法 2. 在`getAvailableTools()`中添加工具描述 3. 在`registerToolFunctions()`中注册工具函数 ### 扩展RAG知识库 1. 准备知识文档(PDF、TXT等格式) 2. 使用`RagService.addDocument()`添加文档 3. 文档会自动向量化并存储到Pinecone ## 多端支持 Aether AI支持多端部署,包括: ### 1. Web端(Vue3) - 现代化的Web界面 - 响应式设计,支持PC和移动浏览器 - 完整的功能支持 ### 2. 移动APP(React Native) - 支持iOS和Android双平台 - 原生性能体验 - 离线缓存支持 - 推送通知功能 ### 3. HarmonyOS应用 - 支持HarmonyOS 6系统 - 原生鸿蒙应用体验 - 支持手机、平板等多设备 - 鸿蒙特色功能集成 ## 常见问题 ### Q: 如何配置OpenAI API? A: 在`application.yml`中配置`spring.ai.openai.api-key`,或设置环境变量`OPENAI_API_KEY` ### Q: 如何配置向量数据库? A: 在`application.yml`中配置Pinecone的API Key和Environment,或设置环境变量`PINECONE_API_KEY` ### Q: 如何启用/禁用RAG检索? A: 在对话请求中设置`enableRag`参数为true/false ### Q: 如何启用/禁用Tool Calling? A: 在对话请求中设置`enableToolCalling`参数为true/false ## 贡献指南 欢迎提交Issue和Pull Request参与项目开发。 1. Fork本仓库 2. 创建特性分支 (`git checkout -b feature/AmazingFeature`) 3. 提交更改 (`git commit -m 'Add some AmazingFeature'`) 4. 推送到分支 (`git push origin feature/AmazingFeature`) 5. 提交Pull Request ## 许可证 本项目采用MIT许可证,详见LICENSE文件。 ## 联系方式 - 项目主页: https://github.com/aether-ai - 问题反馈: https://github.com/aether-ai/issues - 邮箱: support@aether-ai.com ## 致谢 感谢以下开源项目: - Spring AI - Vue.js - Element Plus - React Native - HarmonyOS - OpenAI - Pinecone --- **Aether AI** - 让AI赋能教育,创造更智能的学习体验!