# yedir-ai yedir-ai 是一个面向商业化交付的 AI 设计工作台。它把 Lovart 风格的新首页、无限画布、Agent 工作流、图像生成与编辑、3D/CAD、本地 AI 配置中心和后台治理能力整合到同一个 Next.js 应用中。 这个仓库已经不再定位为通用 Chat 模板。旧 Chat 页面入口已移除,`/api/chat` 目前保留为 Canvas/Agent 等内部生成链路使用。 ## 当前能力 - **Lovart 风格首页**:静态轻量壳优先渲染,站点配置、精选图、项目、教程和会员信息通过客户端渐进加载。 - **Canvas/Agent 工作台**:支持多模态生成、图片编辑、素材编排、Agent 模式和项目化创作流程。 - **图像与视频生成链路**:支持 Gemini、Volcano、Qwen、FAL、RUXA、Krea、Runway、Midjourney 等可配置供应商。 - **3D / CAD 能力**:集成 Tripo3D、World Labs、KittyCAD/Zoo,并支持后台模型别名和 Key 池配置。 - **后台设置中心**:本地 AI 设置已拆分为领域组件,支持折叠持久化、状态摘要、快捷目录和统一 section shell。 - **生产治理**:包含类型检查、lint、日志脱敏、首页公开接口缓存/降级、仓库污染物检查和 CI 质量门禁。 ## 技术栈 - Next.js 16 App Router - React 19 RC - TypeScript - Tailwind CSS + Radix UI - Drizzle ORM + Postgres - Auth.js - Vercel Blob / S3-compatible object storage - Playwright - Ultracite / Biome ## 快速开始 准备 Node.js 20、pnpm 9.12.3 和 Postgres。 ```bash pnpm install cp .env.example .env.local pnpm db:migrate AUTH_TRUST_HOST=true PORT=3001 pnpm dev ``` 默认访问地址: ```text http://localhost:3001/ ``` 后台设置页: ```text http://localhost:3001/settings ``` 未登录访问后台会重定向到 `/login?callbackUrl=%2Fsettings`。 ## 环境变量 先从 `.env.example` 复制到 `.env.local`,再按部署环境填写真实值。不要提交 `.env.local` 或任何真实密钥。 最小本地运行通常需要: - `AUTH_SECRET` - `AUTH_URL` 或本地开发使用 `AUTH_TRUST_HOST=true` - `POSTGRES_URL` - `BLOB_READ_WRITE_TOKEN` 或一组 S3 配置 - 至少一个可用 AI Provider Key,或在后台设置中配置供应商 更多分组说明见 [docs/deployment.md](docs/deployment.md)。 ## 常用命令 ```bash pnpm dev pnpm lint pnpm check:logs pnpm check:brand pnpm check:ci pnpm check:env pnpm check:secrets pnpm check:metadata pnpm check:tests pnpm test:helpers pnpm check:artifacts pnpm check:quality pnpm clean:artifacts pnpm audit:security pnpm exec tsc --noEmit --pretty false pnpm test pnpm db:migrate pnpm db:generate ``` 推荐提交前至少运行: ```bash pnpm check:quality AUTH_TRUST_HOST=true PORT=3001 pnpm dev SMOKE_BASE_URL=http://127.0.0.1:3001 pnpm smoke:routes ``` ## 目录结构 ```text app/ Next.js routes, route handlers, admin pages components/ UI, Canvas, home, editor and product modules components/home/lovart/ Lovart home focused render sections lib/ DB, AI providers, storage, observability, domain logic docs/ Deployment, operations, architecture and feature notes tests/ Playwright e2e and route-level tests .github/workflows/ Quality gates and Playwright CI ``` ## 部署与运维 - 生产部署建议使用受控反向代理,并只在 Host 头可信时设置 `AUTH_TRUST_HOST=true`。 - 首页公开接口应保持快速返回,慢数据库或外部服务异常时返回缓存或 fallback。 - 生产日志默认通过 `LOG_LEVEL=info` 控制,敏感字段会被 `lib/observability` 脱敏。 - Playwright workflow 独立于基础质量门禁,避免把密钥依赖和 e2e 成本混入每次 lint/typecheck。 详细说明: - [部署指南](docs/deployment.md) - [运维与质量门禁](docs/operations.md) - [系统架构说明](docs/architecture.md) - [发布就绪检查清单](docs/release-readiness.md) - [依赖风险登记](docs/dependency-risk-register.md) - [安全策略](SECURITY.md) - [贡献指南](CONTRIBUTING.md) - [行为准则](CODE_OF_CONDUCT.md) - [支持说明](SUPPORT.md) - [更新日志](CHANGELOG.md) ## 开发边界 - `/classic` 和 `/chat/[id]` 旧 Chat UI 已重定向到 `/`。 - `/api/chat` 暂时是内部生成 API,不作为公开旧 Chat 页面入口。 - Canvas、Agent、图像处理和后台设置仍有大型历史模块,后续应按领域继续拆分。 - License 以仓库根目录 [LICENSE](LICENSE) 为准;本阶段未修改许可证和版权主体。