linshen
5de5614664
refactor(core): 重构LLM服务为Adapter模式架构
...
重大架构升级:
- 引入Adapter模式,实现Provider解耦
- 新增7个Provider适配器(OpenAI、Gemini、Anthropic等)
- 精简LLMService从2000+行到300+行
- 引入TextModelConfig新类型系统,支持向后兼容
- 完善类型定义和测试覆盖
架构改进:
- 抽象基类AbstractTextProviderAdapter提供模板方法
- TextAdapterRegistry统一管理所有适配器
- 支持动态模型获取(OpenAI兼容API)
- 提供配置转换器实现平滑升级
新增文件:
- packages/core/src/services/llm/adapters/ (8个文件)
- packages/core/src/services/model/converter.ts
- packages/core/src/services/model/text-model-defaults.ts
- docs/architecture/llm-refactor.md
- 9个新增测试文件
修改文件:
- packages/core/src/services/llm/service.ts
- packages/core/src/services/model/types.ts
- packages/core/src/index.ts
- 31个测试文件更新
- UI组件和composables适配新类型
BREAKING CHANGE: 模型配置结构从ModelConfig升级为TextModelConfig
(已提供converter.ts确保向后兼容和自动转换)
测试结果:
✅ TypeScript类型检查通过 (core + ui)
✅ 563个测试通过,90个跳过
✅ Core包构建成功
2025-10-04 01:01:08 +08:00
linshen
71600b5081
feat: 重构导入导出架构
...
## 核心架构重构
- 创建IImportExportable接口,定义统一的导入导出规范
- 新增ImportExportError错误类,提供专门的错误处理
- 将导入导出逻辑从集中式DataManager分散到各个服务
- DataManager职责精简:从375行减至67行(-308行),仅负责协调
## 存储键架构优化
- 移动storage-keys.ts从ui包到core包,实现统一管理
- 修复存储键双重用途问题:物理存储键vs逻辑JSON导出键
- PreferenceService添加'pref:'前缀处理物理存储
- 解决数据导出不完整的关键架构缺陷
## 服务层改造
### ModelManager
- 实现IImportExportable接口(+209行,-153行)
- 添加exportData/importData/validateData方法
- 保持向后兼容的数据格式
### TemplateManager
- 实现分布式导入导出逻辑
- 移除过度设计的configurable storageKey
- 统一使用PreferenceService管理用户偏好
### HistoryManager
- 添加完整的导入导出实现
- 支持数据验证和错误处理
### PreferenceService
- 实现统一的用户设置导入导出
- 处理存储键前缀转换逻辑
- 支持builtin-template-language等核心设置
## Electron桌面端更新
- main.js: 新增148行IPC处理逻辑
- preload.js: 新增177行API暴露
- 更新所有service proxy类支持新接口
- 保持IPC通信的类型安全
## 测试体系完善
- 新增各服务专门的import-export.test.ts文件
- 创建data/import-export-integration.test.ts集成测试
- 建立AI自动化测试框架验证存储键一致性
- 更新现有测试适配新架构
## 文档与架构说明
- 创建import-export-interface-design.md设计文档
- 添加storage-key-architecture.md架构说明
- 建立AI自动化测试文档体系
- 更新workspace文档记录重构过程
BREAKING CHANGE: 导入导出接口从集中式DataManager重构为分布式服务实现,
各服务现在必须实现IImportExportable接口,存储键架构发生变化
2025-07-12 11:56:14 +08:00
linshen
6c6b68726f
feat: 接口驱动架构改造与TemplateManager重构
...
本次提交主要完成了以下变更:
- 在`experience.md`中新增接口驱动架构改造的核心原则、最佳实践和审核检查清单,确保所有模块通过明确定义的接口进行交互。
- 重构`TemplateManager`,移除复杂的异步初始化逻辑,简化其依赖关系,确保其只关注核心业务。
- 在`scratchpad.md`中更新当前任务进展,记录了对各个服务的重构状态和计划步骤。
- 在`todo.md`中添加了紧急任务和重要任务,确保架构改造的顺利进行。
这些更新旨在提升项目的可维护性和一致性,确保开发者能够更专注于核心功能的开发。
2025-06-29 20:31:42 +08:00
linshen
31b807ba0b
feat: 重构核心服务以支持Electron环境,并增强历史管理器功能
...
- 核心服务:
- 移除单例导出,引入工厂函数模式以提升灵活性和可测试性。
- 显式接收依赖并处理重构中的依赖问题,更新文档以反映新的服务创建方式和依赖注入策略。
- 添加相应的代理和管理器工厂函数,优化服务初始化逻辑,确保在Electron环境下的配置同步。
- 历史管理器:引入 `IModelManager` 支持模型管理,修改构造函数并恢复模型名称获取逻辑。
- 构建配置:
- 更新 `.gitignore` 文件,添加桌面应用相关构建和分发文件的忽略规则。
- 在 `package.json` 中新增桌面应用构建和开发命令。
- 更新 `pnpm-lock.yaml` 以包含新依赖。
- 重构计划文档:移除循环依赖描述,增加重构反思与后续决策,优化 `ensureInitialized()` 调用,修正错误处理行为并提升测试代码严谨性。
2025-06-28 11:21:33 +08:00
linshen
ff21975d9d
feat(template): 重构模板管理,每个功能提示词版本单独一个文件
...
- 移除默认模板文件,改为使用静态加载器加载模板
- 在模板元数据中添加语言字段,支持中英文模板切换
- 更新模板验证逻辑,确保语言字段的正确性
- 修改相关测试用例,验证新功能的正确性和稳定性
2025-06-19 22:17:23 +08:00
linshen
ebf4d2730b
feat(prompt): 增强提示词服务以支持用户和系统提示词优化
...
- 新增提示词类型选择功能,允许用户选择优化模式(系统或用户)
- 更新优化提示词接口,支持传入优化请求对象
- 修改相关模板管理和测试用例,以适应新的提示词类型
- 增强国际化支持,更新相关语言文件以反映新功能
2025-06-18 22:25:02 +08:00
linshen
f89fbb76eb
feat(template): 增强模板管理器以支持内置模板语言切换
...
- 新增内置模板语言服务,支持中英文切换
- 更新模板管理器以根据当前语言加载相应的内置模板
- 实现语言切换功能,允许用户动态更改模板语言
- 增强错误处理,确保在语言切换和模板加载过程中稳定性
- 更新相关测试用例以验证新功能的正确性
2025-06-08 21:58:32 +08:00
linshen
8c7eebe12a
feat(prompt): 增强提示词服务以支持模板ID和错误信息国际化
...
- 更新 PromptService 以接受可选的 templateId 参数,支持不同模板的优化和迭代
- 增加默认模板ID常量,简化模板管理
- 优化错误信息,提供英文提示以增强可读性
- 更新 TemplateProcessor 以验证模板内容和上下文兼容性
- 修改相关测试用例以适应新功能
2025-06-08 16:00:46 +08:00
linshen
316893023b
feat(template): 实现高级模板支持并优化提示词服务
...
- 新增 TemplateProcessor 类实现模板处理功能
- 更新 PromptService 以支持高级模板
- 修改 Template 类增加 MessageTemplate 类型
- 优化迭代模板以支持变量替换
- 增加模板验证和错误处理
2025-06-08 14:49:18 +08:00
linshen
a2173548d7
feat(core): 重构数据管理器并添加 UI 配置导入导出功能
...
- 重构了 DataManager 类,增加了 UI 配置导入导出功能
- 优化了数据导入流程,能够处理部分数据导入失败的情况
- 添加了对 UI 配置数据的导入导出支持
- 重构了部分错误处理逻辑,提高了代码的健壮性
2025-05-26 22:48:01 +08:00
linshen
98522a1306
refactor: 清理测试文件并移除不必要的测试代码
...
移除了 Web 包中的测试设置文件和 App 测试文件,同时在 LLM 服务中移除了 max_tokens 参数,并调整了 Prompt 服务的测试用例
2025-03-05 22:36:34 +08:00
linshen
4d88c3093d
refactor: Consolidate and clean up test files across core and web packages
...
- Remove redundant integration and unit test files from web package
- Update import paths in remaining test files to use local source
- Remove console logs and unnecessary comments in test files
- Simplify test structure and remove duplicate test scenarios
- Add dotenv dependency to core package for environment variable support
2025-02-22 16:02:52 +08:00