mirror of
https://github.com/linshenkx/prompt-optimizer.git
synced 2026-05-06 13:40:14 +08:00
243 lines
9.0 KiB
Markdown
243 lines
9.0 KiB
Markdown
# 项目结构文档
|
||
|
||
> **注意:** 本文档专注于项目的文件和目录结构。关于技术栈详情和实现流程,请参考 [技术文档](./technical-documentation.md)。
|
||
|
||
## 1. 项目整体架构
|
||
|
||
### 1.1 根目录结构
|
||
```
|
||
prompt-optimizer/
|
||
├── packages/ # 项目包
|
||
│ ├── core/ # 核心功能包
|
||
│ │ ├── src/ # 核心源代码
|
||
│ │ ├── tests/ # 核心包测试
|
||
│ │ └── package.json # 核心包配置
|
||
│ ├── web/ # Web版本
|
||
│ │ ├── src/ # Web源代码
|
||
│ │ ├── tests/ # Web测试
|
||
│ │ └── package.json # Web包配置
|
||
│ └── extension/ # Chrome插件
|
||
├── docs/ # 项目文档
|
||
├── tools/ # 工具脚本
|
||
└── ...配置文件
|
||
```
|
||
|
||
### 1.2 配置文件
|
||
- `pnpm-workspace.yaml` - 工作区配置
|
||
- `.env.example` - 环境变量示例
|
||
- `package.json` - 项目配置
|
||
- `.vscode/` - VSCode配置目录
|
||
- `.gitignore` - Git忽略配置
|
||
|
||
### 1.3 工作区文件
|
||
- `README.md` - 项目说明文档
|
||
- `scratchpad.md` - 开发笔记和任务规划(已迁移到docs/workspace/)
|
||
- `experience.md` - 项目经验总结(已迁移到docs/workspace/)
|
||
|
||
### 1.4 文档目录 (docs/)
|
||
- `README.md` - 文档索引
|
||
- `development-guidelines.md` - 开发指南
|
||
- `project-status.md` - 项目状态
|
||
- `project-structure.md` - 项目结构
|
||
- `technical-documentation.md` - 技术文档
|
||
- `prd.md` - 产品需求文档
|
||
- `CHANGELOG.md` - 更新日志
|
||
|
||
## 2. 核心包结构 (packages/core)
|
||
|
||
### 2.1 源代码目录 (packages/core/src/)
|
||
```
|
||
src/
|
||
├── services/ # 核心服务
|
||
│ ├── llm/ # LLM服务
|
||
│ │ ├── service.ts # LLM服务实现
|
||
│ │ ├── types.ts # 类型定义
|
||
│ │ └── errors.ts # 错误定义
|
||
│ ├── model/ # 文本模型管理
|
||
│ │ ├── manager.ts # 模型管理器
|
||
│ │ ├── types.ts # 类型定义
|
||
│ │ └── defaults.ts# 默认配置
|
||
│ ├── image/ # 图像服务(新增)
|
||
│ │ ├── service.ts # 图像生成服务
|
||
│ │ ├── types.ts # 图像服务类型定义
|
||
│ │ ├── electron-proxy.ts # Electron代理
|
||
│ │ └── adapters/ # 图像提供商适配器
|
||
│ │ ├── abstract-adapter.ts # 抽象适配器基类
|
||
│ │ ├── registry.ts # 适配器注册表
|
||
│ │ ├── openai.ts # OpenAI DALL-E适配器
|
||
│ │ ├── gemini.ts # Google Gemini适配器
|
||
│ │ ├── siliconflow-adapter.ts # SiliconFlow适配器
|
||
│ │ └── seedream.ts # SeeDream适配器
|
||
│ ├── image-model/ # 图像模型管理(新增)
|
||
│ │ ├── manager.ts # 图像模型管理器
|
||
│ │ ├── types.ts # 类型定义
|
||
│ │ └── defaults.ts# 默认配置
|
||
│ ├── prompt/ # 提示词服务
|
||
│ │ ├── service.ts # 提示词服务实现
|
||
│ │ ├── types.ts # 类型定义
|
||
│ │ └── errors.ts # 错误定义
|
||
│ ├── template/ # 模板服务
|
||
│ │ ├── manager.ts # 模板管理器
|
||
│ │ ├── types.ts # 类型定义
|
||
│ │ └── default-templates/ # 默认模板
|
||
│ │ ├── image-optimize/ # 图像模板(新增)
|
||
│ │ │ ├── text2image/ # 文生图模板
|
||
│ │ │ ├── image2image/ # 图生图模板
|
||
│ │ │ └── iterate/ # 图像迭代模板
|
||
│ │ ├── basic/ # 基础模板
|
||
│ │ └── context/ # 上下文模板
|
||
│ └── history/ # 历史记录服务
|
||
│ ├── manager.ts # 历史管理器
|
||
│ └── types.ts # 类型定义
|
||
├── types/ # 公共类型定义
|
||
└── utils/ # 工具函数
|
||
```
|
||
|
||
### 2.2 API目录 (src/api/)
|
||
- `api/llm.js` - LLM API调用封装
|
||
|
||
### 2.3 配置目录 (packages/core/config/)
|
||
- `models.js` - LLM模型配置
|
||
- `prompts.js` - 提示词模板配置
|
||
|
||
### 2.4 测试目录 (packages/core/tests/)
|
||
```
|
||
tests/
|
||
├── unit/ # 单元测试
|
||
│ └── services/ # 服务测试
|
||
│ ├── llm/ # LLM服务测试
|
||
│ ├── model/ # 模型管理测试
|
||
│ └── prompt/ # 提示词服务测试
|
||
└── integration/ # 集成测试
|
||
└── services/ # 服务集成测试
|
||
```
|
||
|
||
### 2.5 核心包配置
|
||
- `package.json` - 核心包配置
|
||
- `tsconfig.json` - TypeScript配置
|
||
- `vitest.config.ts` - 测试配置
|
||
|
||
## 3. Web包结构 (packages/web)
|
||
|
||
### 3.1 源代码目录 (packages/web/src/)
|
||
```
|
||
src/
|
||
├── components/ # Vue组件
|
||
│ ├── PromptPanel.vue # 提示词面板
|
||
│ ├── ModelManager.vue # 统一模型管理器(支持文本/图像模型切换)
|
||
│ ├── ImageModelManager.vue# 图像模型专用管理组件
|
||
│ ├── ImageModelEditModal.vue # 图像模型编辑弹窗
|
||
│ ├── TemplateManager.vue # 模板管理器
|
||
│ ├── InputPanel.vue # 输入面板
|
||
│ ├── OutputPanel.vue # 输出面板
|
||
│ └── image-mode/ # 图像模式专用组件
|
||
│ └── ImageWorkspace.vue # 图像工作区
|
||
├── composables/ # Vue组合式函数
|
||
│ ├── useImageModelManager.ts # 图像模型管理composable
|
||
│ ├── useImageGeneration.ts # 图像生成composable
|
||
│ └── useImageWorkspace.ts # 图像工作区composable
|
||
├── services/ # 业务逻辑
|
||
│ ├── llm/ # LLM服务
|
||
│ ├── model/ # 模型配置
|
||
│ ├── prompt/ # 提示词服务
|
||
│ ├── promptManager.js # 提示词管理
|
||
│ └── themeManager.js # 主题管理
|
||
├── assets/ # 静态资源
|
||
│ ├── images/ # 图片资源
|
||
│ └── styles/ # 样式资源
|
||
├── prompts/ # 提示词模板
|
||
├── App.vue # 根组件
|
||
└── main.ts # 入口文件
|
||
```
|
||
|
||
### 3.2 组件目录详情 (packages/web/src/components/)
|
||
|
||
#### 核心组件
|
||
- `PromptPanel.vue` - 提示词输入和优化面板
|
||
- `InputPanel.vue` - 输入面板组件
|
||
- `OutputPanel.vue` - 输出面板组件
|
||
- `TemplateManager.vue` - 模板管理器
|
||
- `ThemeToggle.vue` - 主题切换组件
|
||
- `LoadingSpinner.vue` - 加载动画组件
|
||
|
||
#### 模型管理架构
|
||
- `ModelManager.vue` - **统一模型管理器**
|
||
- 支持文本模型和图像模型的标签页切换
|
||
- 文本模型:直接在该组件内管理
|
||
- 图像模型:委托给 `ImageModelManager.vue` 组件处理
|
||
- 替代了原有的单一模型管理方案(`ModelManager.vue.bak`)
|
||
|
||
- `ImageModelManager.vue` - **图像模型专用管理组件**
|
||
- 专门负责图像模型的列表展示、连接测试、启用/禁用等操作
|
||
- 与 `useImageModelManager` composable 配合使用
|
||
- 支持图像提供商(OpenAI DALL-E、Gemini、SiliconFlow等)的模型管理
|
||
|
||
- `ImageModelEditModal.vue` - **图像模型编辑弹窗**
|
||
- 用于添加/编辑图像模型配置
|
||
- 提供商选择、模型选择、连接配置等表单功能
|
||
|
||
#### 图像模式组件
|
||
- `image-mode/ImageWorkspace.vue` - **图像工作区**
|
||
- 图像模式的主要工作界面
|
||
- 整合文生图、图生图、图像迭代等功能
|
||
|
||
### 3.3 测试目录 (packages/web/tests/)
|
||
```
|
||
tests/
|
||
├── unit/ # 单元测试
|
||
│ ├── components/ # 组件测试
|
||
│ └── services/ # 服务测试
|
||
└── integration/ # 集成测试
|
||
└── services/ # 服务集成测试
|
||
```
|
||
|
||
### 3.4 Web包配置
|
||
- `package.json` - Web包配置
|
||
- `vite.config.ts` - Vite配置
|
||
- `tailwind.config.js` - TailwindCSS配置
|
||
- `.env.local` - 本地环境变量
|
||
- `postcss.config.js` - PostCSS配置
|
||
- `index.html` - 项目入口HTML文件
|
||
|
||
## 4. 扩展包结构 (packages/extension)
|
||
|
||
### 4.1 源代码目录 (packages/extension/src/)
|
||
```
|
||
src/
|
||
├── popup/ # 弹出窗口界面
|
||
├── background/ # 后台脚本
|
||
├── content/ # 内容脚本
|
||
└── manifest.json # 扩展配置文件
|
||
```
|
||
|
||
### 4.2 扩展包配置
|
||
- `package.json` - 扩展包配置
|
||
- `vite.config.ts` - 构建配置
|
||
|
||
## 5. 依赖关系
|
||
|
||
### 5.1 核心包依赖 (@prompt-optimizer/core)
|
||
```
|
||
@prompt-optimizer/core
|
||
├── @openai/openai ^4.83.0 # OpenAI SDK
|
||
├── @google/generative-ai ^0.21.0 # Google Generative AI SDK
|
||
└── uuid ^11.0.5 # UUID生成
|
||
```
|
||
|
||
### 5.2 Web包依赖 (@prompt-optimizer/web)
|
||
```
|
||
@prompt-optimizer/web
|
||
├── @prompt-optimizer/core # 依赖核心包
|
||
├── vue ^3.5.x # Vue框架
|
||
├── pinia ^2.1.x # 状态管理
|
||
└── tailwindcss ^3.4.1 # 样式框架
|
||
```
|
||
|
||
### 5.3 扩展包依赖 (@prompt-optimizer/extension)
|
||
```
|
||
@prompt-optimizer/extension
|
||
├── @prompt-optimizer/core # 依赖核心包
|
||
├── @prompt-optimizer/ui # 依赖UI组件包
|
||
└── vue ^3.5.x # Vue框架
|
||
```
|