Anyesh/wardrowbe
Put your wardrobe in rows. Self-hosted AI-powered wardrobe management app.
wardrowbe – 自托管 AI 驱动的数字衣橱管理器
是什么 – 一个全栈 Web 应用,允许你拍摄衣物照片,将它们存入可搜索的目录,并使用多模态 LLM(通过 OpenAI、Ollama、LocalAI 等)为每件物品打标签,根据天气、场合和个人偏好生成每日穿搭建议。所有数据都存储在你自己的硬件上;AI 组件可本地运行(Ollama)或通过任何 OpenAI 兼容服务运行。
核心功能(README 中列出)
- 基于照片的目录 – 上传图片;AI 提取颜色、图案、风格,可选地移除背景。
- 智能穿搭推荐 – 多模态 LLM 根据天气(Open-Meteo)和用户定义的场合,建议穿什么。
- 定时通知 – 每日建议可通过 ntfy、Mattermost 或电子邮件推送。
- 家庭账户 – 为多个家庭成员设置独立衣橱。
- 穿着记录与反馈 – 记录何时穿着某件物品,评分穿搭并添加评论。
- 分析仪表板 – 可视化颜色分布、最常穿的单品、从未使用的物品等。
- 完全自托管 – 使用 Docker Compose(或 Kubernetes)部署;无 SaaS 锁定。
- AI 无关性 – 支持任何 OpenAI 兼容 API:Ollama(免费,本地运行)、OpenAI、LocalAI 或其他托管模型。
- 国际化 UI – 通过
next-intl支持八种语言。
工作原理(来自 README 的架构)
前端 (Next.js 14 + React Query) <---> 后端 (FastAPI + async SQLAlchemy)
│ │
│ PostgreSQL (衣橱数据) │ Redis (任务队列)
│ │
└───► 后台工作器 (arq) ──► AI 服务 (Ollama/OpenAI/etc.)
- 上传 – 前端将图像发送到 FastAPI 后端。
- 后台任务 –
arq工作器接收请求,调用配置的视觉模型(例如通过 Ollama 的gemma3)提取标签并可选地移除背景。 - 存储 – 标签和元数据保存在 PostgreSQL 中;图像(或裁剪版本)存储在主机卷上。
- 推荐引擎 – 定时任务(或按需请求)调用文本模型(相同或不同),结合当前天气(Open-Meteo)和用户偏好,返回自然语言穿搭建议。
- 交付 – 建议通过选定的通知渠道发送给用户。
技术栈(明确提及)
| 层级 | 技术 |
|---|---|
| 前端 | Next.js 14, TypeScript, Tailwind CSS, shadcn/ui, TanStack Query |
| 后端 | FastAPI, async SQLAlchemy, Pydantic, Python 3.11 |
| 数据库 | PostgreSQL 15 |
| 缓存 / 队列 | Redis 7(由 arq 工作器使用) |
| 后台任务 | arq(异步任务队列) |
| 认证 | NextAuth.js(开发凭证或 OIDC) |
| AI 集成 | 任意 OpenAI 兼容 API(Ollama、OpenAI、LocalAI 等) |
| 容器化 | Docker Compose(多架构镜像) – 可选 Kubernetes 清单 |
快速入门(快速启动摘要)
- 安装 Docker + Compose,如果需要本地 LLM,则 安装 Ollama 并拉取
gemma3(或其他多模态模型)。 - 克隆仓库 并将
.env.example→.env复制。 - 编辑
.env,指向你的 AI 服务(Ollama URL 或 OpenAI 密钥),并设置密钥(SECRET_KEY、NEXTAUTH_SECRET)。 - 运行生产 compose 文件:
docker compose pull docker compose up -d docker compose exec backend alembic upgrade head # 迁移 - 打开
http://localhost:3000查看 UI,http://localhost:8000/docs查看 API 文档。
开发时,添加 -f docker-compose.dev.yml 以启用热重载,并使用 npm run dev 本地运行前端。
典型使用场景
- 个人衣橱数字化 – 一次性扫描所有衣物,让 AI 自动打标签。
- 每日穿搭规划 – 每天早上接收天气感知的建议。
- 家庭共享 – 为配偶、孩子等设置独立衣橱,全部托管于一个自托管实例中。
- 数据驱动的整理 – 使用分析视图查看哪些颜色或物品从未被使用。
限制与注意事项
- AI 质量取决于模型 – 免费本地模型(如
gemma3)可能不如 OpenAI 的视觉模型准确。 - 硬件要求 – 至少 4 GB 内存;更大的多模态模型需要更多内存。
- 背景移除为可选 – 需要
rembg或外部 HTTP 服务;否则按钮返回 501 错误。 - 位置信息回退的隐私 – 启用
NEXT_PUBLIC_ENABLE_IP_LOCATION_FALLBACK会将用户 IP 发送到第三方服务。 - 尚无移动应用 – README 提到即将上线 Play 商店;目前仅支持 Web 界面。
哪些人可能需要
- 希望拥有隐私优先数字衣橱的科技爱好者。
- 寻找无需依赖云服务的共享衣橱管理器的小家庭。
- 对构建 AI 增强型个人助手工具感兴趣的开发者,需要一个现成的视觉+文本集成示例。
总结 – wardrowbe 是一个真正的自托管应用,结合现代 Web 技术与多模态 LLM,实现衣橱管理与穿搭推荐自动化。它完全文档化、容器化,并可配置为与任何 OpenAI 兼容后端运行,是 AI 增强型个人生产力工具的优秀范例。
相关
- 项目
- 项目
- 项目
- 项目
- Dispatch