# woniu-ai **Repository Path**: lin2in97/woniu-ai ## Basic Information - **Project Name**: woniu-ai - **Description**: 蜗牛AI后端 - **Primary Language**: Java - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2 - **Created**: 2026-04-06 - **Last Updated**: 2026-04-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 蜗牛学苑 智能AI应用系统 ## 项目简介 蜗牛学苑 智能AI应用系统是基于 Spring Boot 3.5.9 和阿里巴巴云 AI 技术栈构建的现代化智能应用平台。系统融合了先进的人工智能能力、向量数据库技术和企业级应用架构,为用户提供智能对话、知识库管理、文件处理等全方位的AI服务。 ### 核心技术栈 - **后端框架**: Spring Boot 3.5.9 - **AI能力**: 阿里巴巴云 AI (DashScope) - **向量存储**: Redis Vector Store - **数据持久化**: MySQL + JPA - **前端技术**: Vue3 + Element-Plus + Element-Plus-X - **认证机制**: JWT ## 项目结构 ``` springbootproject/ ├── src/ │ ├── main/ │ │ ├── java/com/woniuxy/ │ │ │ ├── config/ # 配置类 │ │ │ │ ├── ChatClientConfig.java # AI聊天客户端配置 │ │ │ │ ├── RedisConfig.java # Redis基础配置 │ │ │ │ └── RedisVectorConfig.java # Redis向量存储配置 │ │ │ ├── controller/ # 控制器 │ │ │ │ ├── AiChatController.java # 智能对话接口 │ │ │ │ ├── AuthController.java # 认证授权接口 │ │ │ │ ├── FileUploadController.java # 文件上传接口 │ │ │ │ ├── IndexController.java # 首页控制器 │ │ │ │ ├── KnowledgeBaseController.java # 知识库管理接口 │ │ │ │ ├── LocalVectorStoreController.java # 本地向量存储接口 │ │ │ │ ├── PendingApprovalController.java # 待审批文件管理接口 │ │ │ │ ├── RedisVectorStoreController.java # Redis向量存储接口 │ │ │ │ ├── SessionController.java # 会话管理接口 │ │ │ │ └── ThreadAdd.java # 线程处理示例 │ │ │ ├── entity/ # 实体类 │ │ │ │ ├── dto/ # 数据传输对象 │ │ │ │ │ ├── AiMessagesDTO.java # AI消息数据结构 │ │ │ │ │ ├── GetSessionListParams.java # 获取会话列表参数 │ │ │ │ │ └── UserInfoDTO.java # 用户信息数据传输对象 │ │ │ │ ├── knowledge/ # 知识库相关实体 │ │ │ │ │ ├── FileVectorMetadata.java # 文件向量元数据 │ │ │ │ │ ├── KnowledgeBase.java # 知识库实体 │ │ │ │ │ ├── MyDocument.java # 自定义文档实体 │ │ │ │ │ └── MyMetadataEnum.java # 元数据枚举 │ │ │ │ ├── Goods.java # 商品实体 │ │ │ │ ├── Orders.java # 订单实体 │ │ │ │ ├── ResponseEntity.java # 统一响应实体 │ │ │ │ ├── SessionList.java # 会话列表实体 │ │ │ │ └── UserInfo.java # 用户信息实体 │ │ │ ├── mapper/ # 数据访问层 │ │ │ │ ├── FileVectorMetadataRepository.java # 文件向量元数据仓库 │ │ │ │ ├── GoodsMapper.java # 商品数据访问 │ │ │ │ ├── KnowledgeBaseMapper.java # 知识库数据访问 │ │ │ │ ├── OrderMapper.java # 订单数据访问 │ │ │ │ ├── SessionListMapper.java # 会话列表数据访问 │ │ │ │ └── UserInfoMapper.java # 用户信息数据访问 │ │ │ ├── service/ # 服务层 │ │ │ │ ├── impl/ # 服务实现 │ │ │ │ │ ├── AuthServiceImpl.java # 认证服务实现 │ │ │ │ │ ├── FileChunkServiceImpl.java # 文件分块服务实现 │ │ │ │ │ ├── FileVectorMetadataServiceImpl.java # 文件向量元数据服务实现 │ │ │ │ │ ├── GoodsServiceImpl.java # 商品服务实现 │ │ │ │ │ ├── KnowledgeBaseServiceImpl.java # 知识库服务实现 │ │ │ │ │ ├── OrderServiceImpl.java # 订单服务实现 │ │ │ │ │ └── SessionServiceImpl.java # 会话服务实现 │ │ │ │ ├── AuthService.java # 认证服务接口 │ │ │ │ ├── FileChunkService.java # 文件分块服务接口 │ │ │ │ ├── FileVectorMetadataService.java # 文件向量元数据服务接口 │ │ │ │ ├── GoodsService.java # 商品服务接口 │ │ │ │ ├── KnowledgeBaseService.java # 知识库服务接口 │ │ │ │ ├── OrderService.java # 订单服务接口 │ │ │ │ └── SessionService.java # 会话服务接口 │ │ │ ├── tools/ # 工具类 │ │ │ │ ├── enums/ # 枚举类 │ │ │ │ │ └── TokenEnum.java # 令牌枚举 │ │ │ │ ├── JWTUtils.java # JWT工具类 │ │ │ │ └── SimpleWeather.java # 简单天气工具 │ │ │ └── WoniuAiApplication.java # 应用启动类 │ │ └── resources/ # 资源文件 │ │ ├── templates/ # 前端模板 │ │ │ └── index.html # 首页模板 │ │ └── application.yml # 应用配置文件 │ └── test/ # 测试代码 │ └── java/com/woniuxy/ │ └── JpaTest.java # JPA测试类 ├── .gitignore # Git忽略文件 ├── README.en.md # 英文README ├── README.md # 中文README ├── mvnw # Maven包装器(Linux/Mac) ├── mvnw.cmd # Maven包装器(Windows) └── pom.xml # Maven项目配置文件 ``` ### 项目结构详解 #### 1. 配置层 (config/) 配置层负责系统的各种配置,包括: - **ChatClientConfig.java**: 配置AI聊天客户端,集成阿里巴巴云AI服务 - **RedisConfig.java**: 配置Redis基础连接,用于会话管理和缓存 - **RedisVectorConfig.java**: 配置Redis向量存储,用于文档向量化和相似度搜索 #### 2. 控制器层 (controller/) 控制器层处理HTTP请求,实现RESTful API: - **AiChatController.java**: 实现智能对话接口,支持SSE流式响应和知识库集成 - **AuthController.java**: 处理用户认证和授权 - **FileUploadController.java**: 处理文件上传功能 - **KnowledgeBaseController.java**: 管理知识库的CRUD操作 - **RedisVectorStoreController.java**: 处理Redis向量存储的相关操作 - **SessionController.java**: 管理用户会话 #### 3. 实体层 (entity/) 实体层定义系统的数据模型: - **dto/**: 数据传输对象,用于API请求和响应 - **knowledge/**: 知识库相关实体,包括文档、元数据等 - **核心实体**: 如UserInfo、Goods、Orders等业务实体 #### 4. 数据访问层 (mapper/) 数据访问层负责与数据库交互: - 使用JPA和MyBatis实现数据持久化 - 提供对各种实体的CRUD操作 #### 5. 服务层 (service/) 服务层实现业务逻辑: - **impl/**: 服务接口的具体实现 - 提供知识库管理、文件处理、认证授权等核心业务逻辑 #### 6. 工具层 (tools/) 工具层提供各种工具类: - **JWTUtils.java**: 处理JWT令牌的生成和验证 - **SimpleWeather.java**: 提供简单的天气查询功能 - **enums/**: 定义系统中使用的枚举类型 #### 7. 资源文件 (resources/) - **templates/**: 前端HTML模板 - **application.yml**: 系统配置文件,包含数据库连接、Redis配置、AI服务配置等 #### 8. 测试代码 (test/) - **JpaTest.java**: 测试JPA数据访问功能 #### 9. 项目配置文件 - **pom.xml**: Maven项目配置,定义依赖和构建配置 - **.gitignore**: Git版本控制忽略文件配置 - **README.md**: 项目说明文档 ## 核心功能 ### 1. 智能对话系统 - 基于阿里巴巴云 AI 的智能对话能力 - 支持多轮对话和上下文记忆 - 集成商品查询等业务工具 - 支持基于知识库的问答 ### 2. 知识库管理 - 知识库的创建、更新、删除 - 文件上传与管理 - 文档向量化存储 - 知识库文件审批流程 ### 3. 向量存储管理 - Redis 向量数据库集成 - 文档相似度搜索 - 异步向量化处理 - 多知识库检索 ### 4. 文件处理 - 支持多种文件格式解析(PDF、Office文档、图片等) - 大文件上传支持 - 文件内容向量化 ### 5. 认证与授权 - JWT 基于令牌的认证 - 用户会话管理 ## 主要接口 ### AI 对话接口 - **POST /ai/sse/{conversationId}**: 智能对话接口,支持SSE流式响应 ### 知识库管理接口 - **GET /knowledge/list**: 获取所有知识库 - **GET /knowledge/{id}**: 获取指定知识库详情 - **POST /knowledge/**: 创建知识库 - **PUT /knowledge/**: 更新知识库 - **DELETE /knowledge/{id}**: 删除知识库 - **GET /knowledge/approved/list/{knowledgeBaseId}**: 获取已审批的知识库文件列表 ### 向量存储接口 - **POST /redis/save/{fileName}**: 审批通过后将文档添加到向量库 - **GET /redis/store**: 存储文档到向量库 - **GET /redis/search**: 搜索向量库中的文档 ### 文件上传接口 - **POST /upload**: 文件上传接口 ### 认证接口 - **POST /auth/login**: 用户登录 - **POST /auth/register**: 用户注册 ## 技术依赖 ### 核心依赖 - **spring-boot-starter-web**: Web应用支持 - **spring-boot-starter-thymeleaf**: 模板引擎 - **spring-boot-starter-data-redis**: Redis支持 - **spring-boot-starter-data-jpa**: JPA数据访问 - **mysql-connector-j**: MySQL驱动 ### AI 相关依赖 - **spring-ai-alibaba-extensions-bom**: 阿里巴巴云 AI 扩展 - **spring-ai-alibaba-starter-dashscope**: 通义千问模型支持 - **spring-ai-alibaba-starter-memory-redis**: Redis 对话记忆 - **spring-ai-alibaba-agent-framework**: 智能体框架 - **spring-ai-starter-vector-store-redis**: Redis 向量存储 - **spring-ai-alibaba-starter-document-parser-tika**: 文档解析 ### 其他依赖 - **lombok**: 代码简化工具 - **java-jwt**: JWT 认证 ## 环境配置 ### 系统要求 - JDK 17+ - Maven 3.8+ - MySQL 8.0+ - Redis 7.0+ (支持向量功能) ### 配置文件 主要配置文件:`src/main/resources/application.yml` 核心配置项: - 服务器端口 - 数据库连接信息 - Redis 连接信息 - 阿里巴巴云 AI API Key ## 快速开始 ### 1. 环境准备 - 安装 JDK 17+ - 安装 Maven 3.8+ - 安装 MySQL 8.0+ - 安装 Redis 7.0+ (建议使用 Redis Stack) ### 2. 安装 Redis Stack 使用 Docker 安装 Redis Stack,包含向量搜索功能: ```bash docker run -d --name redis-stack \ -e REDIS_ARGS="--requirepass woniuxy123_@123" \ -v /data/redis:/data \ -p 6379:6379 \ -p 8001:8001 \ redis/redis-stack:latest ``` ### 3. 项目构建 ```bash # 克隆项目 git clone https://gitee.com/wasp_nest/woniu-ai.git # 进入项目目录 cd woniu-ai # 构建项目 mvn clean package # 运行项目 java -jar target/spring-ai-0.0.1-SNAPSHOT.jar ``` ### 4. 访问系统 系统默认运行在 http://localhost:8080 ## 项目亮点 1. **先进的 AI 集成**: 基于阿里巴巴云 AI 技术栈,提供强大的智能对话能力 2. **向量数据库应用**: 集成 Redis 向量存储,实现高效的相似度搜索 3. **模块化架构**: 清晰的分层设计,易于扩展和维护 4. **异步处理**: 采用线程池处理耗时的向量化操作,提高系统响应速度 5. **完整的知识库管理**: 支持从文件上传、审批到向量化的全流程管理 6. **安全认证**: 基于 JWT 的安全认证机制 ## 应用场景 - **智能客服系统**: 基于知识库的智能问答 - **企业知识管理**: 文档向量化存储与检索 - **个人助手**: 基于 AI 的个性化服务 - **教育辅助工具**: 智能答疑系统 ## 未来规划 1. **AI 能力扩展** - 支持更多 AI 模型集成 - 多模态图像生成功能 - AI 翻译功能 - 知识图谱构建与应用 2. **功能增强** - PPT 制作功能 - 支持对话文件下载 - 业务系统跳转集成 - 增强文件处理能力,支持更多文件格式 3. **性能优化** - 优化向量存储性能,支持更大规模的知识库 - 提升系统响应速度和并发处理能力 4. **系统完善** - 增加用户权限管理 - 提供更丰富的前端交互界面 5. **教育功能集成** - 学习计划管理 - 考试系统 - 刷题测试功能 - 学习进度跟踪 未来,我们将持续进行技术探索,不断提升系统的智能化水平和用户体验。 --- **成都蜗牛学苑 © 2026** - 专注于高端IT人才培养,引领技术创新"