134 b4b6e1a738 Size dropped image nodes to intrinsic aspect ratio
Dropped images landed in fixed 420x280 nodes and rendered with
object-cover, cropping portraits and wide photos. Read the image's
natural size during ingestion and fit the node frame to the aspect
ratio (landscape caps height, portrait caps width) so the full
picture stays visible like the reference product.
2026-09-18 18:34:23 +08:00
2025-12-17 20:15:18 +08:00
2026-07-27 18:24:43 +08:00
2026-09-18 18:21:47 +08:00
2025-12-29 00:33:12 +08:00
2026-05-27 11:36:03 +08:00
2026-05-26 19:32:19 +08:00
2026-05-26 19:32:19 +08:00
2026-05-27 11:39:03 +08:00
2025-12-17 20:15:18 +08:00

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。

pnpm install
cp .env.example .env.local
pnpm db:migrate
AUTH_TRUST_HOST=true PORT=3001 pnpm dev

默认访问地址:

http://localhost:3001/

后台设置页:

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。

常用命令

pnpm dev
pnpm lint
pnpm check:logs
pnpm check:brand
pnpm check:ci
pnpm check:branch
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 verify:release
pnpm exec tsc --noEmit --pretty false
pnpm test
pnpm build
pnpm build:with-migrate
pnpm db:migrate
pnpm db:generate

推荐提交前至少运行:

git fetch origin --prune
pnpm check:branch
pnpm check:quality
pnpm audit:security
pnpm build
AUTH_TRUST_HOST=true PORT=3001 pnpm dev
SMOKE_BASE_URL=http://127.0.0.1:3001 pnpm smoke:routes

发布或创建 PR 前可使用一条命令串起质量、安全、生产构建和路由烟测:

SMOKE_BASE_URL=http://127.0.0.1:3001 pnpm verify:release

目录结构

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/           Manual quality gates, dependency audit and Playwright CI

部署与运维

  • 生产部署建议使用受控反向代理,并只在 Host 头可信时设置 AUTH_TRUST_HOST=true。
  • 首页公开接口应保持快速返回,慢数据库或外部服务异常时返回缓存或 fallback。
  • 生产日志默认通过 LOG_LEVEL=info 控制,敏感字段会被 lib/observability 脱敏。
  • GitHub Actions workflow 默认只允许手动触发,避免私有仓库免费额度被 push 自动消耗。
  • Dependency Audit workflow 独立守住 high/critical 依赖审计基线,避免安全回归只靠人工发现。
  • Playwright workflow 独立于基础质量门禁,避免把密钥依赖和 e2e 成本混入每次 lint/typecheck。

详细说明:

开发边界

  • /classic 和 /chat/[id] 旧 Chat UI 已重定向到 /。
  • /api/chat 暂时是内部生成 API,不作为公开旧 Chat 页面入口。
  • Canvas、Agent、图像处理和后台设置仍有大型历史模块,后续应按领域继续拆分。
  • License 以仓库根目录 LICENSE 为准;本阶段未修改许可证和版权主体。
Description
AI Chatbot Project
Readme 431 MiB
Languages
TypeScript 97.4%
HTML 1.4%
Shell 0.5%
JavaScript 0.4%
Python 0.2%
Other 0.1%