Kaleido AI 智能衣柜是一个采用 微服务架构 的AI智能穿搭管理系统,基于 DDD领域驱动设计 + CQRS + 整洁架构 理念构建。
-
👑 后台管理系统
- 完善的用户权限管理(RBAC)
- AI Agent 创建与管理
- 工作流编排引擎
- 数据可视化与运营监控
-
📱 App客户端系统
- 服装管理:创建服装、管理衣橱、批量导入
- 智能搭配:AI创建搭配方案、风格推荐
- 个性化配置:用户信息管理、偏好设置
- 激励体系:金币机制、用户行为返利、积分兑换
- 智能助手:AI对话咨询、实时穿搭建议
💡 核心价值:将传统的衣柜管理升级为智能化、个性化的穿搭体验
| 特性 | 说明 |
|---|---|
| DDD + CQRS | 领域驱动设计,读写分离,领域模型独立 |
| 整洁架构 | 四层架构(接口层、应用层、领域层、基础设施层),依赖倒置 |
| Spring AI集成 | 无缝对接LLM、向量数据库、RAG能力 |
| 微服务架构 | 11个业务服务 + 23个通用模块,独立部署、弹性扩展 |
- Java 21(LTS版本,虚拟线程支持)
- Spring Boot 3.5.6 + Spring Cloud 2025.0.0
- Spring AI 1.1.2(AI集成框架)
- Spring Cloud Alibaba 2025.0.0.0
- Nacos 2.3:服务注册 + 配置中心
- Sentinel 1.8.7:流量控制 + 降级熔断
- Dubbo 3.3.0:高性能RPC框架
- Seata 1.8.0:分布式事务(AT模式)
- XXL-Job 3.3.2:分布式任务调度
- MySQL 8.4.0:关系型数据,ShardingSphere分库分表
- MongoDB 7.0+:文档型数据,灵活Schema
- Milvus 2.4+:向量数据库,AI特征存储和相似度搜索
- Redis 6+:缓存,JetCache多级缓存(Caffeine + Redis)
- MinIO 8.6.0:对象存储,图片、文件管理
- RabbitMQ 3.13+:消息队列,异步解耦
- Redisson 3.52.0:Redis客户端,分布式锁
- JetCache 2.7.8:多级缓存框架
- Sa-Token 1.44.0:轻量级权限认证
- MyBatis-Plus 3.5.9:ORM框架
- MapStruct 1.6.3:类型安全的对象映射
- Smart-Doc 2.7.7:零侵入API文档生成
- Dynamic-TP 1.2.2-x:动态线程池监控
📋 点击展开完整技术版本清单
| 技术 | 版本 | 说明 |
|---|---|---|
| Java | 21 | 开发语言 |
| Spring Boot | 3.5.6 | 应用框架 |
| Spring Cloud | 2025.0.0 | 微服务框架 |
| Spring Cloud Alibaba | 2025.0.0.0 | 阿里云微服务组件 |
| Spring AI | 1.1.2 | AI集成框架 |
| MyBatis-Plus | 3.5.9 | ORM框架 |
| MySQL | 8.4.0 | 关系型数据库 |
| MongoDB | 7.0+ | 文档数据库,用于非结构化数据存储 |
| Milvus | 2.4+ | 向量数据库,用于AI特征存储和相似度搜索 |
| MinIO | 8.6.0 | 对象存储 |
| shardingsphere-jdbc | 5.5.2 | 分库分表 |
| Redis | 6+ | 缓存 |
| Redisson | 3.52.0 | Redis客户端 |
| JetCache | 2.7.8 | 多级缓存框架 |
| Caffeine | 3.2.3 | 本地缓存 |
| Sa-Token | 1.44.0 | 权限认证框架 |
| Sentinel | 1.8.7 | 流量控制和服务降级 |
| Dubbo | 3.3.0 | RPC框架 |
| Nacos | 2.3.0 | 服务注册与配置中心 |
| Seata | 1.8.0 | 分布式事务解决方案 |
| XXL-Job | 3.3.2 | 分布式任务调度 |
| RabbitMQ | 3.13+ | 消息中间件,用于异步通信和解耦系统 |
| Spring AMQP | 3.1.8 | RabbitMQ集成框架 |
| Smart-doc | 2.7.7 | API文档生成 |
| MapStruct | 1.6.3 | 对象映射工具 |
| Lombok | 1.18.36 | 代码简化工具 |
| Hutool | 5.8.38 | Java工具库 |
| PageHelper | 2.1.1 | MyBatis分页插件 |
| Dynamic-tp | 1.2.2-x | 动态线程池 |
kaleido-server/
├── kaleido-common/ # 公共模块
│ ├── kaleido-aop/ # AOP切面
│ ├── kaleido-api/ # API接口定义
│ ├── kaleido-base/ # 基础工具类
│ ├── kaleido-cache/ # 缓存模块
│ ├── kaleido-distribute/ # 分布式相关
│ ├── kaleido-doc/ # 文档生成
│ ├── kaleido-ds/ # 数据源
│ ├── kaleido-dynamic-tp/ # 动态线程池
│ ├── kaleido-file/ # 文件服务
│ ├── kaleido-job/ # 任务调度
│ ├── kaleido-limiter/ # 限流器
│ ├── kaleido-lock/ # 分布式锁
│ ├── kaleido-mq/ # 消息队列
│ ├── kaleido-nacos/ # 配置中心
│ ├── kaleido-rpc/ # RPC相关
│ ├── kaleido-sa-token/ # 权限认证
│ ├── kaleido-seata/ # 分布式事务
│ ├── kaleido-sentinel/ # 限流降级
│ ├── kaleido-sms/ # 短信服务
│ └── kaleido-web/ # Web相关配置
│
├── kaleido-gateway/ # API网关
├── kaleido-auth/ # 认证授权服务
├── kaleido-biz/ # 业务服务集合
│ ├── kaleido-user/ # 用户服务
│ ├── kaleido-wardrobe/ # 衣柜服务
│ ├── kaleido-ai/ # AI服务
│ ├── kaleido-recommend/ # 推荐服务
│ ├── kaleido-tag/ # 标签服务
│ ├── kaleido-coin/ # 金币服务
│ └── kaleido-mcp/ # MCP服务
├── kaleido-notice/ # 通知服务
├── kaleido-admin/ # 管理后台服务
├── doc/ # 项目文档
├── scripts/ # 脚本文件
├── .gitignore # Git忽略配置
├── pom.xml # 父POM文件
└── README.md # 项目说明文档
在开始之前,请确保您的开发环境已安装以下软件:
- JDK 21+: 项目基于 Java 21 开发 (参考 pom.xml)。
- Maven: 用于项目构建和依赖管理。
- Docker & Docker Compose: 用于运行数据库、中间件等基础环境。
请根据您的网络环境选择代码仓库:
-
Gitee (国内推荐)
git clone https://gitee.com/ou-yucheng/kaleido-ai.git
-
GitHub
git clone https://github.com/yucheng-ou/kaleido-ai.git
项目依赖 MySQL, Redis, Nacos, MinIO 等中间件,使用 Docker Compose 一键启动。
# 将doc/deploy/dev-ops目录拷贝到服务器上
cd doc/deploy/dev-ops
# 启动基础环境 (加上 -d 后台运行)
docker-compose -f docker-compose.yml up -d
⚠️ 环境自检 启动命令执行后,请务必执行以下检查,确保所有容器运行正常:
1. 检查容器状态
docker compose -f docker-compose.yml ps请确认以下关键容器的状态为 Up。
2. 检查数据库是否已经成功创建
默认会自动创建数据库,不需要再手动创建脚本,连接并检查数据库是否已经创建完成。
务必完成以下配置,否则微服务将无法启动。
登录 Nacos 控制台,进入 命名空间 (Namespaces),创建以下两个命名空间(id可以使用下面表格中的 也可以自己生成):
| 命名空间名称 | 命名空间 ID (必填) | 用途 |
|---|---|---|
| kaleido | 30d71fbd-2d24-4757-81f4-679d26f0ed93 | 主配置与服务发现 |
| dubbo | aa3a3ee8-fb98-43e5-b3da-11b368d88c21 | Dubbo RPC 服务 |
- 进入 配置管理 -> 配置列表。
- 顶部切换到
kaleido命名空间。 - 点击 导入配置,选择文件:
doc/deploy/nacos/nacos_config_export.zip。 - 检查配置列表是否已成功加载
kaleido-gateway-dev.yml等文件。
修改 kaleido-common/kaleido-ds/src/main/resources/sharding.yaml,将数据库地址改成自己的。
Docker 启动的 MinIO 默认密钥可能与配置不一致,建议手动创建或同步:
- 登录 MinIO 控制台
- 进入 Access Keys -> Create access key。
- 记录生成的 Access Key 和 Secret Key。
- 修改 :修改
doc/deploy/init_env.bat脚本,将配置替换为自己的,主要修改ip地址、minio密钥与模型的配置信息,对于AI的API调用,我是用的硅基流动,你可以替换为你自己的。 - 执行: 双击运行或在终端执行该脚本。
- 重启: 必须重启 IDE (IntelliJ IDEA) 以加载新的环境变量,如果还不行重启电脑。
按依赖顺序启动微服务:
- Gateway 服务:
kaleido-gateway(端口 9010) - Auth 服务:
kaleido-auth - Admin 服务:
kaleido-admin - 业务服务:
kaleido-user,kaleido-wardrobe等
项目启动成功后检查服务是否已经成功注册到nacos上面。
💬 有问题欢迎提Issue或者进群联系,我会尽可能解决 😺
本项目采用 MIT License 开源协议。
如果这个项目对你有帮助,请给一个 ⭐️ Star 支持一下!








