mirror of
https://github.com/linshenkx/prompt-optimizer.git
synced 2026-05-06 21:50:27 +08:00
- 添加模板管理故障排除清单,以帮助用户解决模板管理中遇到的常见问题。 - 统一服务注入逻辑,移除不必要的props定义,增强错误处理机制。 - 优化模板管理,统一服务注入与存储键管理。 - 更新 `TemplateSelect.vue`,移除 `services` prop,改用 `inject` 注入服务。 - 整合 `useTemplateManager`,统一模板选择保存逻辑及存储键管理。 - 新增 `storage-keys.ts`,集中管理存储键常量,避免重复定义,便于维护与遍历。 - 更新相关组件以适配新的模板管理方式,确保模板选择状态正确保存和恢复。 - 修正了模板类型错误的问题,确保在管理界面切换分类后添加的模板类型与当前显示的分类一致。 - 修复了模板管理器打开位置错误的问题,确保从不同入口打开模板管理器时,定位到正确的分类。 - 优化了模板保存和导入逻辑,增加了错误处理和提示。 - 确保所有异步模板操作都使用了 `await` 关键字,避免潜在的时序问题。 - 移除了 `usePromptOptimizer` 中 `selectedOptimizationMode` 的默认值,强制传入该参数。 - 优化了 `TemplateSelect` 组件中 `optimizationMode` prop 的处理,设为 `required`。
6.3 KiB
6.3 KiB
项目结构文档
注意: 本文档专注于项目的文件和目录结构。关于技术栈详情和实现流程,请参考 技术文档。
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配置目录.cursorrules- Cursor IDE配置.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# 默认配置
│ ├── prompt/ # 提示词服务
│ │ ├── service.ts # 提示词服务实现
│ │ ├── types.ts # 类型定义
│ │ └── errors.ts # 错误定义
│ ├── template/ # 模板服务
│ │ ├── manager.ts # 模板管理器
│ │ ├── types.ts # 类型定义
│ └── 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 # 模型管理器
│ ├── TemplateManager.vue# 模板管理器
│ ├── InputPanel.vue # 输入面板
│ └── OutputPanel.vue # 输出面板
├── composables/ # Vue组合式函数
├── 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- 输出面板组件ModelConfig.vue- 模型配置组件ThemeToggle.vue- 主题切换组件LoadingSpinner.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框架