feat: 65个PS操作工具 + ai_chat拆分 + 开发准则更新 - ps-operations.ts 1361行(图层/变换/选区/蒙版/调色/文字/文档管理) - ai_llm.py 模型调用层独立 - ai_tools.py 65个function calling schema - aiToolExecutor.ts 全量映射 - 开发准则新增AI模块规范

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-02-07 18:52:34 +08:00
parent dae906aba7
commit 8688422578
22 changed files with 1014 additions and 574 deletions

View File

@@ -213,18 +213,64 @@
### 3.4 目录结构建议 (参考)
```
src/
├── assets/ # 静态资源
Designer/src/
├── api/
│ ├── ai.ts # AI 聊天/图片/模型 API 接口
│ ├── auth.ts # 认证接口
│ ├── user.ts # 用户接口
│ └── jsxApi/inline/
│ ├── utils.ts # JSX 公共工具库 (evalInlineJSX)
│ ├── pattern-ai.ts # AI 套图 JSX置入/填色/标签/剪贴蒙版)
│ ├── layer.ts # 图层操作
│ ├── document.ts # 文档操作
│ └── ...
├── view/
│ ├── AiChat.vue # AI 聊天页面Gemini 风格 UI
│ └── ...
├── utils/
│ ├── aiToolExecutor.ts # AI 工具执行器tool_call → JSX 映射)
│ ├── aiCanvasCapture.ts # 画布截图 / 临时文件管理
│ ├── logger.ts # 日志工具
│ └── request.ts # Axios 封装
├── components/ # 通用组件
├── view/ # 页面视图 (Pages)
├── router/ # 路由配置
├── hooks/ # 组合式函数 (Composables)
├── types/ # TypeScript 类型定义
├── utils/ # 工具函数 (含 CSInterface 封装)
├── App.vue
└── main.ts
Server/app/api/v1/
├── ai_chat.py # AI 聊天路由(对话/会话/图片处理端点)
├── ai_llm.py # AI 模型调用层Qwen/Gemini/Vision/Image 统一路由)
├── ai_tools.py # AI 工具定义PS 操作的 function calling schema
├── auth.py # 认证路由
└── ...
```
### 3.5.5 AI 模块开发规范
1. **模型调用统一走 `ai_llm.py`**
- 所有 LLM/Vision/Image 调用逻辑集中在此文件
- 自动路由 QwenDashScope和 Gemini第三方代理
- 禁止在路由端点中直接调用 `OpenAI()` 客户端
2. **工具执行器模式**(前端):
- AI 返回 `tool_calls` → 前端 `aiToolExecutor.ts` 执行 → 回传结果给后端
- 工具函数映射表 `toolHandlers` 统一管理
- 状态(预览图 URL、裁片分析结果等存在模块级变量中
3. **CEP 中的 IME中文输入兼容**
- ❌ **禁止使用 Arco Design 的 `a-textarea` 做主输入框**(会拦截 IME composition 事件)
- ✅ **使用原生 `<textarea>`** 确保输入法正常工作
- ✅ **必须注册全量键盘事件**`registerKeyEventsInterest` 要注册所有 keyCode × 16 种 modifier 组合
- ✅ **Enter 发送时检查 IME 状态**`e.isComposing && e.keyCode !== 229`
4. **图案分层处理**4 种类型):
- `solid` — 纯色 PS 填充
- `fill_pattern` — AI 花型铺满
- `theme_pattern` — AI 主题图案(白底)+ PS 纯色底 + 正片叠底
- `mixed_pattern` — AI 主题图案(白底)+ AI 花型底 + 正片叠底
### 3.5 CEP 插件 UI/UX 设计规范 ⭐⭐⭐
#### 1. **面板尺寸规范**(基于竞品实测)
@@ -463,17 +509,19 @@ p {
```
Server/
├── app/
│ ├── api/ # 路由层 (Endpoints)
│ │ ── v1/ # 版本控制
│ │ ├── auth.py # 认证相关接口
│ │ └── user.py # 用户相关接口
├── core/ # 核心配置 (Config, Security, Exceptions)
├── schemas/ # 数据模型 (Pydantic Models) - 用于请求/响应
├── services/ # 业务逻辑服务层
│ ├── models/ # 数据库模型 (SQLAlchemy/Tortoise) - 如需数据库
── main.py # 程序入口
├── requirements.txt # 依赖列表
── .env # 环境变量
│ ├── api/v1/
│ │ ── ai_chat.py # AI 聊天路由(对话/会话/图片处理)
│ │ ├── ai_llm.py # AI 模型调用层Qwen/Gemini 统一路由)
│ │ ├── ai_tools.py # AI 工具定义function calling schema
│ ├── auth.py # 认证接口
│ ├── algorithm.py # 算法接口PLT 处理等)
│ └── ...
│ ├── core/ # 核心配置 (Config, Security)
── models/ # 数据库模型 (SQLAlchemy)
│ └── main.py # 程序入口
── debug_images/ # AI 调试图片(自动生成,不提交)
├── pyproject.toml # uv 依赖管理
└── .env # 环境变量
```
### 4.3 编码规范
@@ -676,7 +724,7 @@ def calculate_bonus(consecutive_days):
| :------------- | :------------------------------- | :------------------ | :--------------------------------------------------------------------------------------------- |
| **Designer** | `d:\main\DesignerCEP\Designer` | **核心业务 (Core)** | 包含所有设计工具、UI 界面和业务逻辑。开发时的主要工作区。 |
| **AdminPanel** | `d:\main\DesignerCEP\AdminPanel` | **加载壳 (Shell)** | 一个轻量级的 CEP 容器,负责在 PS 中运行。它不包含业务代码,只负责通过 `iframe` 加载 Designer。 |
| **Server** | `d:\main\DesignerCEP\Server` | **后端 (API)** | 基于 FastAPI 的数据接口服务。不负责托管静态页面(由 Caddy/Nginx 接管)。 |
| **Server** | `d:\main\DesignerCEP\Server` | **后端 (API)** | 基于 FastAPI 的数据接口服务,含 AI 模型调用层Qwen/Gemini 双路由)。 |
| **AdminTool** | `d:\main\DesignerCEP\AdminTool` | **运维工具** | 负责自动化部署、版本管理和配置修改的 Python GUI 工具。 |
### 6.2 开发流程 (Dev Workflow)