From d479504f125e3aa4aaf42a0aefdc4511f8e5ba19 Mon Sep 17 00:00:00 2001 From: wonder Date: Sat, 30 May 2026 14:22:50 +0800 Subject: [PATCH] feat: restructure gen2D deck with enriched content and frankfurt theme components - Restructure from 12 slides to 21 slides with proper section navigation - Split into pages/ for modular maintenance (15 page files) - Use frankfurt theme: cover layout, Item component, section frontmatter - Remove all two-cols layouts to avoid rendering issues - Add rich content from tmp/ docs: Eino pipeline, prompt agent, async tasks, data model, deployment - Use Item component for structured content blocks - Add mermaid ER diagram for data model - Add Go code block for pipeline type definitions --- decks/gen2D/pages/architecture.md | 46 ++++++ decks/gen2D/pages/async-task.md | 34 ++++ decks/gen2D/pages/data-model.md | 39 +++++ decks/gen2D/pages/dedup-ws.md | 32 ++++ decks/gen2D/pages/deployment.md | 40 +++++ decks/gen2D/pages/eino-graph.md | 47 ++++++ decks/gen2D/pages/highlights.md | 29 ++++ decks/gen2D/pages/pipeline.md | 34 ++++ decks/gen2D/pages/problem.md | 33 ++++ decks/gen2D/pages/prompt-agent.md | 29 ++++ decks/gen2D/pages/roadmap.md | 32 ++++ decks/gen2D/pages/solution.md | 29 ++++ decks/gen2D/pages/style-keys.md | 35 ++++ decks/gen2D/pages/style-system.md | 35 ++++ decks/gen2D/pages/tech-stack.md | 52 ++++++ decks/gen2D/slides.md | 266 ++++-------------------------- 16 files changed, 577 insertions(+), 235 deletions(-) create mode 100644 decks/gen2D/pages/architecture.md create mode 100644 decks/gen2D/pages/async-task.md create mode 100644 decks/gen2D/pages/data-model.md create mode 100644 decks/gen2D/pages/dedup-ws.md create mode 100644 decks/gen2D/pages/deployment.md create mode 100644 decks/gen2D/pages/eino-graph.md create mode 100644 decks/gen2D/pages/highlights.md create mode 100644 decks/gen2D/pages/pipeline.md create mode 100644 decks/gen2D/pages/problem.md create mode 100644 decks/gen2D/pages/prompt-agent.md create mode 100644 decks/gen2D/pages/roadmap.md create mode 100644 decks/gen2D/pages/solution.md create mode 100644 decks/gen2D/pages/style-keys.md create mode 100644 decks/gen2D/pages/style-system.md create mode 100644 decks/gen2D/pages/tech-stack.md diff --git a/decks/gen2D/pages/architecture.md b/decks/gen2D/pages/architecture.md new file mode 100644 index 0000000..6f70ad0 --- /dev/null +++ b/decks/gen2D/pages/architecture.md @@ -0,0 +1,46 @@ +# 系统架构全景 + +
+ +``` +┌──────────────────────────────────────────────────────────────────┐ +│ Frontend (React + Vite + TypeScript) │ +│ │ +│ ┌──────────┐ ┌──────────────┐ ┌──────────┐ ┌───────────┐ │ +│ │ 项目画廊 │ │ 工作台面板 │ │ 结果预览 │ │ 风格编辑器 │ │ +│ └──────────┘ └──────────────┘ └──────────┘ └───────────┘ │ +│ │ Zustand 状态管理 │ +│ │ react-router v7 路由 │ +└────────────────────────┼─────────────────────────────────────────┘ + │ HTTP (REST API) + WebSocket +┌────────────────────────┼─────────────────────────────────────────┐ +│ Backend (Go + Gin + Eino) │ +│ │ │ +│ ┌────────────────────▼─────────────────────────────────────┐ │ +│ │ Handler Layer (Gin Router) │ │ +│ │ JWT 中间件 · 请求校验 · 错误处理 │ │ +│ └────────────────────┬─────────────────────────────────────┘ │ +│ │ │ +│ ┌────────────────────▼─────────────────────────────────────┐ │ +│ │ Service Layer (业务逻辑) │ │ +│ │ ┌─────────────────────────────────────────────────────┐ │ │ +│ │ │ Eino compose.Graph Pipeline │ │ │ +│ │ │ PromptOptimizer → AssetGenerator → QualitySupervisor│ │ │ +│ │ │ ↓ │ │ │ +│ │ │ FormatAdapter │ │ │ +│ │ └─────────────────────────────────────────────────────┘ │ │ +│ │ ┌──────────┐ ┌───────────┐ ┌──────────┐ │ │ +│ │ │ 项目管理 │ │ 风格系统 │ │ 用户认证 │ │ │ +│ │ └──────────┘ └───────────┘ └──────────┘ │ │ +│ └──────────────────────────────────────────────────────────┘ │ +│ │ │ +│ ┌────────────────────▼─────────────────────────────────────┐ │ +│ │ Data Layer (数据访问) │ │ +│ │ GORM + SQLite sync.Map 缓存 │ │ +│ └──────────────────────────────────────────────────────────┘ │ +│ │ +│ 外部依赖:DeepSeek LLM · Stability AI · 七牛云 Kodo │ +└──────────────────────────────────────────────────────────────────┘ +``` + +
diff --git a/decks/gen2D/pages/async-task.md b/decks/gen2D/pages/async-task.md new file mode 100644 index 0000000..e952e80 --- /dev/null +++ b/decks/gen2D/pages/async-task.md @@ -0,0 +1,34 @@ +# 异步任务模型 + +提交即返回,后台并发执行 + + + +1. 用户提交生成请求 → 创建 Task 记录(状态 `running`) +2. 立即返回 `taskId`,前端开始轮询 / 建立 WebSocket +3. 后台启动 goroutine 执行管线 + + + + + +| 阶段 | 进度范围 | 说明 | +|------|---------|------| +| PromptOptimizer | 5% → 25% | 风格合并 + LLM 优化 | +| AssetGenerator | 25% → 60% | 调用文生图 API | +| QualitySupervisor | 60% → 80% | 视觉模型质检 | +| FormatAdapter | 80% → 100% | 格式组装 + 上传 | + + + + + +- **质检重试**(管线内):QualitySupervisor 不合格 → 回退 PromptOptimizer,最多 3 次 +- **任务级重试**(管线外):整个管线失败 → 5 秒间隔重试,最多 1 次 +- **降级兜底**:超过重试次数后,使用当前最优结果输出 + + + +
+ 任务生命周期:running → completed / failed +
diff --git a/decks/gen2D/pages/data-model.md b/decks/gen2D/pages/data-model.md new file mode 100644 index 0000000..efb3bc6 --- /dev/null +++ b/decks/gen2D/pages/data-model.md @@ -0,0 +1,39 @@ +# 数据模型与存储 + +四表结构,清晰的实体关系 + +```mermaid {scale: 0.8} +erDiagram + USER ||--o{ PROJECT : "拥有" + PROJECT ||--|| PROJECT_STYLE : "配置" + PROJECT ||--o{ TASK : "生成" + TASK ||--o{ ASSET : "产出" +``` + +
+ + +- `id`:前缀 + 随机 base62(6 字节 crypto/rand) +- `username`:唯一用户名 +- `password_hash`:bcrypt 哈希 + + + +- `id`:唯一标识 +- `user_id`:外键关联用户 +- `name` / `description`:工程信息 + + + +- `project_id`:一对一关联工程 +- `kv_pairs`:JSON 存储风格键值对 +- 支持 `custom:` 前缀自定义标签 + + + +- Task:`id` / `project_id` / `prompt` / `status` / `style_override` +- Asset:`id` / `task_id` / `file_url` / `metadata` +- 文件存储:七牛云 Kodo,CDN 签名访问 + + +
diff --git a/decks/gen2D/pages/dedup-ws.md b/decks/gen2D/pages/dedup-ws.md new file mode 100644 index 0000000..5556e39 --- /dev/null +++ b/decks/gen2D/pages/dedup-ws.md @@ -0,0 +1,32 @@ +# 请求去重 + 实时推送 + +两项关键的工程优化 + + + +- **策略**:`hash(prompt + assetType + params)` 生成唯一键 +- **存储**:`sync.Map` 内存缓存,TTL 自动过期 +- **逻辑**:相同参数的并发请求自动合并,返回已有 `taskId` +- **效果**:避免重复生成,节省 API 调用成本,提升用户体验 + + + + + +- 用户建立 `ws://host/api/v1/tasks/:taskId/ws` 连接 +- 管线各阶段执行时推送实时状态消息: + +```json +{ + "type": "progress", + "stage": "asset_generator", + "progress": 45, + "message": "正在生成素材..." +} +``` + +- 质检重试时推送额外信息:重试次数、重试原因 +- 管线完成时推送最终结果:素材 URL、元数据 +- **兼容方案**:同时支持 HTTP 轮询(`GET /api/v1/tasks/:taskId`) + + diff --git a/decks/gen2D/pages/deployment.md b/decks/gen2D/pages/deployment.md new file mode 100644 index 0000000..a0ec09d --- /dev/null +++ b/decks/gen2D/pages/deployment.md @@ -0,0 +1,40 @@ +# 部署架构 + +Docker Compose 双容器 + 一键部署 + +```mermaid {scale: 0.8} +graph TB + subgraph Docker Compose + A[nginx 容器
前端静态文件 + 反向代理] + B[app 容器
Go 后端 + SQLite] + end + A -->|proxy_pass| B + B --> C[七牛云 Kodo
素材文件存储] + B --> D[DeepSeek LLM
提示词优化] + B --> E[Stability AI
文生图 API] + User -->|HTTP| A +``` + + + +- **nginx 容器**:Vite 构建产物 + 反向代理 `/api` 到后端 +- **app 容器**:Go 二进制 + SQLite 数据库文件挂载 +- **网络**:Docker 内部网络通信,nginx 暴露 8080 端口 + + + + + +```bash +# 构建并启动 +docker compose up -d --build + +# 或使用部署脚本 +./deploy.sh +``` + +- Gitee CI/CD 自动触发:push → 构建 → 部署 +- SQLite 嵌入式数据库,无需额外数据库服务 +- 配置通过环境变量 / `.env` 文件注入 + + diff --git a/decks/gen2D/pages/eino-graph.md b/decks/gen2D/pages/eino-graph.md new file mode 100644 index 0000000..b62c648 --- /dev/null +++ b/decks/gen2D/pages/eino-graph.md @@ -0,0 +1,47 @@ +# Eino 管线编排 — compose.Graph + +四阶段智能体协作的核心实现 + +
+ +```go {all|1-8|10-15|17-22|24-28} +// 类型定义 +type PipelineInput struct { + UserID string + ProjectID string + TaskID string + Prompt string + AssetType string + StyleMap map[string]string +} + +type PipelineState struct { + OptimizedPrompt string + ImageURL string + QualityPassed bool + RetryCount int +} + +type PipelineOutput struct { + AssetURL string + Metadata map[string]any +} +``` + +
+ + + + +使用 `compose.NewGraph[PipelineInput, PipelineOutput]()` 创建有向图,依次注册四个节点:PromptOptimizer → AssetGenerator → QualitySupervisor → FormatAdapter。质检节点支持条件分支:通过则进入格式适配,不通过则回退到提示词优化。 + + + +通过 `AddLambda` 注册状态处理器,在节点间传递优化后的提示词、图片 URL、重试计数等状态。质检节点根据 `RetryCount` 决定重优化还是降级输出。 + + + +传入 `PipelineInput`,管线自动按拓扑顺序执行各节点。每个节点执行完成后通过回调更新进度(5% → 25% → 60% → 80% → 100%)。 + + + diff --git a/decks/gen2D/pages/highlights.md b/decks/gen2D/pages/highlights.md new file mode 100644 index 0000000..d0dc377 --- /dev/null +++ b/decks/gen2D/pages/highlights.md @@ -0,0 +1,29 @@ +# 核心亮点总结 + + + + +Eino `compose.Graph` 编排四阶段智能体,支持质检重试(最多 3 次)与降级输出。每个节点独立可测试、可替换。 + + + +Eino Chain 驱动,支持任意 OpenAI 兼容 API(默认 DeepSeek)。无 API Key 自动回退模板,保证功能可用。 + + + +WebSocket 推送管线各阶段状态、进度百分比与质检重试信息。兼容 HTTP 轮询方案。 + + + +`hash(prompt + assetType + params)` + `sync.Map` 缓存,相同参数并发请求自动合并,节省 API 调用成本。 + + + +两层风格架构(Project Style + Task Override),六个维度预设键 + 自定义标签,保证素材风格一致性。 + + + +Docker Compose 双容器架构 + Gitee CI/CD 自动部署。SQLite 嵌入式数据库,零外部依赖。 + + + diff --git a/decks/gen2D/pages/pipeline.md b/decks/gen2D/pages/pipeline.md new file mode 100644 index 0000000..4dd7813 --- /dev/null +++ b/decks/gen2D/pages/pipeline.md @@ -0,0 +1,34 @@ +# 核心生成管线 + +基于 Eino `compose.Graph` 编排的四阶段智能体协作管线 + +```mermaid {scale: 0.75} +graph LR + A[用户输入] --> B[PromptOptimizer
提示词优化] + B --> C[AssetGenerator
素材生成] + C --> D{QualitySupervisor
质检} + D -->|通过| E[FormatAdapter
格式适配] + D -->|不通过| B + E --> F[输出素材] + D -->|重试 ≥ 3| E +``` + + + + +合并工程风格 + 任务风格覆盖,将用户描述转化为三段式规范提示词(主体描述 + 风格约束 + 技术规格)。调用 Eino Chain 驱动的 LLM 优化,无 API Key 时自动回退模板。 + + + +调用 OpenAI 兼容的文生图 API(默认 Stability AI),根据优化后的提示词生成素材。支持 `/v1/images/generations` 标准接口。 + + + +使用视觉模型自动检测生成结果,不合格则触发重优化流程(最多 3 次)。超过重试次数后降级输出当前最优结果。 + + + +组装输出素材与元数据,支持 Spritesheet 打包。素材上传至七牛云 Kodo,返回 CDN 访问链接。 + + + diff --git a/decks/gen2D/pages/problem.md b/decks/gen2D/pages/problem.md new file mode 100644 index 0000000..f7d32cc --- /dev/null +++ b/decks/gen2D/pages/problem.md @@ -0,0 +1,33 @@ +# 痛点:2D 游戏素材制作 + +
+ + + +- 像素画 / 手绘需要专业美术人员,独立开发者难以负担 +- 外包费用高,单张精绘素材 50-500 元不等 +- 迭代周期长,试错成本高 —— 一次修改可能需要数天 + + + + + +- 生成素材尺寸 / 格式不统一,无法直接导入游戏引擎 +- 精灵表(Spritesheet)需手动拆分与对齐 +- 多张素材之间风格一致性难以保证 + + + + + +- 通用文生图模型缺乏游戏素材领域知识 +- 无法理解 "像素风"、"赛璐璐" 等游戏美术术语 +- 输出结果不可控,没有质检和重试机制 + + + +
+ +
+ 核心诉求:低门槛 · 风格一致 · 管线友好 · 质量可控 +
diff --git a/decks/gen2D/pages/prompt-agent.md b/decks/gen2D/pages/prompt-agent.md new file mode 100644 index 0000000..730750b --- /dev/null +++ b/decks/gen2D/pages/prompt-agent.md @@ -0,0 +1,29 @@ +# 提示词优化 Agent + +Eino Chain 驱动的智能提示词生成 + +```mermaid {scale: 0.8} +graph LR + A[用户描述] --> B[风格合并] + B --> C[三段式组装] + C --> D[LLM 优化] + D --> E[最终提示词] + F[工程风格] --> B + G[任务覆盖] --> B + H[重试注入] --> D +``` + + +`finalStyle = merge(projectStyle, taskStyle)` — 工程风格为基底,任务风格逐键覆盖。自定义标签(`custom:` 前缀)自动提取。 + + + +将合并后的风格信息组装为三段式规范提示词: +- **主体描述**:用户输入的角色/场景描述 +- **风格约束**:美术风格、色调、线条等风格键 +- **技术规格**:尺寸、格式、透明背景等引擎适配参数 + + + +调用 Eino Chain 将三段式提示词发给 DeepSeek 等 LLM 进行润色优化。**无 API Key 时自动回退到模板生成**,保证功能可用。优化失败时注入重试上下文,指导模型修正。 + diff --git a/decks/gen2D/pages/roadmap.md b/decks/gen2D/pages/roadmap.md new file mode 100644 index 0000000..7c5df1a --- /dev/null +++ b/decks/gen2D/pages/roadmap.md @@ -0,0 +1,32 @@ +# 路线图 + +
+ + + +- 提示词优化 Agent(Eino Chain) +- 多智能体生成管线(Eino Graph) +- 工程风格系统 + 任务级覆盖 +- 用户认证(JWT + bcrypt) +- 异步任务 + 进度轮询 +- 素材帧预览、GIF 动画与导出 +- 自定义标签系统 +- Docker Compose 部署 +- 请求去重 + 降级兜底 + + + + + +- WebSocket 实时进度推送 +- 批量生成与队列调度 +- 文生图多模型适配(DALL-E、Midjourney) +- 素材版本管理与历史记录 +- 分布式令牌桶限流(Redis + Lua) +- 自定义协程池(NumCPU × 4 workers) +- RabbitMQ 消息队列解耦 +- Prometheus 监控 + Grafana 看板 + + + +
diff --git a/decks/gen2D/pages/solution.md b/decks/gen2D/pages/solution.md new file mode 100644 index 0000000..809a486 --- /dev/null +++ b/decks/gen2D/pages/solution.md @@ -0,0 +1,29 @@ +# gen2D 的解决方案 + +
+ +| 输入 | 处理 | 输出 | +|------|------|------| +| 自然语言描述 + 风格参数 | 多智能体协作管线 | Sprite、背景、UI 元素、动画帧 | + +
+ + + + +用文字描述你想要的素材,AI 自动理解需求并生成。支持中英文,无需编写 Prompt 工程。 + + + +工程级风格预设系统(Project Style)+ 任务级覆盖(Task Override),保证同一项目素材风格统一。 + + + +标准尺寸输出,适配 Unity / Godot 等主流引擎。自动组装 Spritesheet,附带元数据。 + + + +多智能体质检(QualitySupervisor)自动检测不合格素材,触发重优化(最多 3 次),最终降级兜底。 + + + diff --git a/decks/gen2D/pages/style-keys.md b/decks/gen2D/pages/style-keys.md new file mode 100644 index 0000000..fb34508 --- /dev/null +++ b/decks/gen2D/pages/style-keys.md @@ -0,0 +1,35 @@ +# 预设风格键一览 + +六个维度覆盖游戏素材的核心视觉属性 + +
+ + +pixel(像素)、cartoon(卡通)、vector(矢量)、realistic(写实)、flat(扁平)、anime(动漫) + + + +warm(暖色)、cool(冷色)、vibrant(鲜艳)、muted(灰暗)、pastel(粉彩)、monochrome(单色) + + + +thin(细线)、medium(中等)、thick(粗线)、none(无线条)、sketch(手绘感) + + + +forest(森林)、dungeon(地牢)、city(城市)、space(太空)、underwater(水下)、desert(沙漠) + + + +bright(明亮)、dramatic(戏剧)、neon(霓虹)、soft(柔光)、sunset(日落)、dark(暗调) + + + +cheerful(欢快)、dark(暗黑)、epic(史诗)、calm(宁静)、mysterious(神秘)、playful(活泼) + + +
+ +
+ 支持自定义标签:custom: 前缀的键值对会被自动提取到提示词中 +
diff --git a/decks/gen2D/pages/style-system.md b/decks/gen2D/pages/style-system.md new file mode 100644 index 0000000..5f5b630 --- /dev/null +++ b/decks/gen2D/pages/style-system.md @@ -0,0 +1,35 @@ +# 风格系统 — 两层架构 + +保证一致性与灵活性的风格管理方案 + + + +- 工程级别的全局风格配置,存储在 `project_style` 表中 +- 以 Key-Value 对(kvPairs)形式存储,如 `artStyle=pixel`, `palette=warm` +- 同一工程下所有素材自动继承,保证风格统一 + + + + + +- 单次生成任务可覆盖部分风格键,仅指定需要变化的项 +- 未指定的键自动继承工程风格 +- 适合在同一工程下生成不同变体(如:同一角色的不同表情) + + + +
+ + + +``` +finalStyle = merge(projectStyle, taskStyle) +``` + +- 工程风格作为基底,任务风格逐键覆盖 +- 自定义标签(`custom:` 前缀)自动提取到 Prompt 中 +- 合并后的风格键注入三段式提示词的风格约束段 + + + +
diff --git a/decks/gen2D/pages/tech-stack.md b/decks/gen2D/pages/tech-stack.md new file mode 100644 index 0000000..f90a693 --- /dev/null +++ b/decks/gen2D/pages/tech-stack.md @@ -0,0 +1,52 @@ +# 技术栈一览 + +
+ + + +- **语言**:Go 1.26 +- **框架**:Gin 1.12 +- **AI 编排**:Eino 0.8(compose.Graph) +- **ORM**:GORM + SQLite +- **认证**:JWT + bcrypt +- **配置**:Viper(多层配置) +- **存储**:七牛云 Kodo + + + + + +- **框架**:React 18 + TypeScript 5.6 +- **构建**:Vite 6 +- **状态管理**:Zustand +- **路由**:react-router v7 +- **样式**:CSS Modules + 暗色主题 +- **API 层**:封装 Fetch + 类型安全 + + + + + +- **容器化**:Docker 多阶段构建 +- **反向代理**:nginx +- **CI/CD**:Gitee Actions 自动部署 +- **数据库**:SQLite 嵌入式 +- **文件存储**:七牛云 Kodo CDN +- **通信**:REST API + WebSocket + + + +
+ +
+ + + +- **Handler 层**(薄):请求校验、参数绑定、错误处理 +- **Service 层**(厚):业务逻辑、管线编排、风格合并 +- **Model 层**(数据):GORM 实体定义、数据库操作 +- **日志系统**:基于 `log/slog`,分级别记录(Debug / Info / Warn / Error) + + + +
diff --git a/decks/gen2D/slides.md b/decks/gen2D/slides.md index 1b11162..bdb8ea8 100644 --- a/decks/gen2D/slides.md +++ b/decks/gen2D/slides.md @@ -23,272 +23,68 @@ AI 驱动的 2D 游戏素材生成工具 --- - -# 痛点:2D 游戏素材制作 - -
-
- -### 🎨 美术成本高 - -- 像素画 / 手绘需专业美术人员 -- 独立开发者难以负担外包费用 -- 迭代周期长,试错成本高 - -
-
- -### 🔧 管线适配难 - -- 生成素材尺寸 / 格式不统一 -- 精灵表需手动拆分与对齐 -- 风格一致性难以保证 - -
-
- -
- 核心诉求:低门槛、风格一致、管线友好 -
- +src: ./pages/problem.md --- -# gen2D 的解决方案 - -
- -| 输入 | 处理 | 输出 | -|------|------|------| -| 文本描述 + 风格参数 | 多智能体协作管线 | Sprite、背景、UI 元素、动画帧 | - -
- - - -- **自然语言驱动** — 用文字描述你想要的素材,AI 自动生成 -- **风格一致性** — 工程级风格预设,保证同一项目素材风格统一 -- **管线友好** — 标准尺寸、格式适配 Unity / Godot 等主流引擎 -- **质量可控** — 自动质检 + 重试机制,不合格素材自动优化 - - +--- +src: ./pages/solution.md +--- --- -layout: section section: '产品演示' +src: ./pages/pipeline.md --- -# 产品演示 - --- -layout: default +src: ./pages/style-system.md --- -# 核心生成管线 - -基于 Eino `compose.Graph` 的四阶段智能体协作管线 - -```mermaid {scale: 0.85} -graph LR - A[用户输入] --> B[PromptOptimizer
提示词优化] - B --> C[AssetGenerator
素材生成] - C --> D{QualitySupervisor
质检} - D -->|通过| E[FormatAdapter
格式适配] - D -->|不通过| B - E --> F[输出素材] - D -->|重试 ≥ 3| E -``` - - - -- **PromptOptimizer** — 合并工程风格 + 任务风格覆盖,生成三段式规范提示词 -- **AssetGenerator** — 调用文生图 API 生成素材 -- **QualitySupervisor** — 自动质检,不合格触发重优化(最多 3 次) -- **FormatAdapter** — 组装输出素材与元数据,降级兜底 - - - --- -layout: two-cols +src: ./pages/style-keys.md --- -# 风格系统 - -两层风格架构,保证一致性与灵活性 - -### 工程风格(Project Style) - -- 工程级别的风格配置 -- 保证同一工程下所有素材风格一致 - -### 任务风格覆盖(Task Override) - -- 单次生成任务的风格差异 -- 仅覆盖需要变化的键 - -
- 合并逻辑:finalStyle = merge(project, task) -
- -::right:: - -
- -### 预设风格键 - -| 分类 | 示例 | -|------|------| -| 美术风格 | pixel, cartoon, vector | -| 色调 | warm, cool, vibrant | -| 线条 | thin, medium, thick | -| 场景 | forest, dungeon, city | -| 光照 | bright, dramatic, neon | -| 情绪 | cheerful, dark, epic | - -
- --- -layout: section section: '技术架构' +src: ./pages/architecture.md --- -# 技术架构 - --- -layout: two-cols +src: ./pages/tech-stack.md --- -# 系统架构 - -
- -``` -┌─────────────────────────────┐ -│ Frontend (React + Vite) │ -│ 画廊 / 工作台 / 结果预览 │ -└──────────────┬──────────────┘ - │ HTTP / WS -┌──────────────▼──────────────┐ -│ Backend (Go + Gin + Eino) │ -│ ┌───────────────────────┐ │ -│ │ Eino Graph Pipeline │ │ -│ │ 4-Stage Agent Flow │ │ -│ └───────────────────────┘ │ -│ ┌────┐ ┌─────┐ ┌──────┐ │ -│ │ DB │ │ Kodo│ │ LLM │ │ -│ └────┘ └─────┘ └──────┘ │ -└─────────────────────────────┘ -``` - -
- -::right:: - -
- -### 技术栈 - -| 层 | 技术 | -|----|------| -| 后端 | Go + Gin + Eino | -| ORM | GORM + SQLite | -| 认证 | JWT + bcrypt | -| 存储 | 七牛云 Kodo | -| 前端 | React + TypeScript | -| 状态 | Zustand | -| 构建 | Vite 6 | -| 部署 | Docker Compose | - -
- +--- +section: '核心实现' +src: ./pages/eino-graph.md --- -# 核心亮点 - - - -- **多智能体协作管线** — Eino `compose.Graph` 编排四阶段智能体,支持质检重试与降级输出 -- **提示词优化 Agent** — Eino Chain 驱动,支持任意 OpenAI 兼容 API,无 key 自动回退模板 -- **实时进度推送** — WebSocket 推送管线各阶段状态、进度与质检重试信息 -- **请求去重** — 相同 prompt + 参数的并发请求自动合并,返回已有 taskId -- **异步任务模型** — goroutine 并发控制,支持失败重试(最多 3 次)与降级输出 -- **一键部署** — Docker Compose 双容器架构 + deploy.sh 脚本 - - - --- -layout: default +src: ./pages/prompt-agent.md --- -# 技术栈一览 - -
-
- -### 后端 - -- Go 1.26 + Gin -- Eino 管线编排 -- GORM + SQLite -- JWT 认证 -- 七牛云 Kodo - -
-
- -### 前端 - -- React 18 + TS -- Vite 6 -- Zustand 状态管理 -- react-router v7 -- CSS Modules 主题 - -
-
- -### 基础设施 - -- Docker 多阶段构建 -- nginx 反向代理 -- Gitee CI/CD -- SQLite 嵌入式 DB -- 暗色主题支持 - -
-
- +--- +src: ./pages/async-task.md --- -# 路线图 +--- +src: ./pages/dedup-ws.md +--- -
-
+--- +src: ./pages/data-model.md +--- -### ✅ 已完成 +--- +src: ./pages/deployment.md +--- -- 提示词优化 Agent(Eino Chain) -- 多智能体生成管线(Eino Graph) -- 工程风格系统 + 任务级覆盖 -- 用户认证(JWT + bcrypt) -- 异步任务 + 实时进度推送 -- 素材帧预览、GIF 动画与导出 -- 自定义标签系统 +--- +section: '总结' +src: ./pages/highlights.md +--- -
-
- -### 🔲 规划中 - -- WebSocket 实时进度推送 -- 批量生成与队列调度 -- 文生图多模型适配 -- 素材版本管理与历史记录 -- 分布式令牌桶限流 -- 自定义协程池 -- RabbitMQ 消息队列 - -
-
+--- +src: ./pages/roadmap.md +--- --- layout: center