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:
80
开发准则.md
80
开发准则.md
@@ -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 调用逻辑集中在此文件
|
||||
- 自动路由 Qwen(DashScope)和 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)
|
||||
|
||||
Reference in New Issue
Block a user