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.)
  1. 上传 – 前端将图像发送到 FastAPI 后端。
  2. 后台任务arq 工作器接收请求,调用配置的视觉模型(例如通过 Ollama 的 gemma3)提取标签并可选地移除背景。
  3. 存储 – 标签和元数据保存在 PostgreSQL 中;图像(或裁剪版本)存储在主机卷上。
  4. 推荐引擎 – 定时任务(或按需请求)调用文本模型(相同或不同),结合当前天气(Open-Meteo)和用户偏好,返回自然语言穿搭建议。
  5. 交付 – 建议通过选定的通知渠道发送给用户。

技术栈(明确提及)

层级 技术
前端 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 清单

快速入门(快速启动摘要)

  1. 安装 Docker + Compose,如果需要本地 LLM,则 安装 Ollama 并拉取 gemma3(或其他多模态模型)。
  2. 克隆仓库 并将 .env.example.env 复制。
  3. 编辑 .env,指向你的 AI 服务(Ollama URL 或 OpenAI 密钥),并设置密钥(SECRET_KEYNEXTAUTH_SECRET)。
  4. 运行生产 compose 文件:
    docker compose pull
    docker compose up -d
    docker compose exec backend alembic upgrade head   # 迁移
    
  5. 打开 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