ai-chatbot/README.md
2026-05-27 12:24:57 +08:00

134 lines
4.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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 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)
- [安全策略](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) 为准;本阶段未修改许可证和版权主体。