8 Commits
Author SHA1 Message Date
linshen e5bab3a6a3 fix: restore model tabs and adopt Node 24 2026-09-10 19:31:41 +08:00
linshen 492d220d3a fix(ui): sync model lists across workspaces after manager updates
- Add models-updated event handler in PromptOptimizerApp
- Broadcast refresh events to basic/pro/image workspaces
- Listen for refresh events in ContextSystemWorkspace and ContextUserWorkspace
- Add e2e test for Pro workspace model refresh sync
2026-03-08 11:17:00 +08:00
linshen 3115540cac fix(desktop): preserve structured IPC errors for i18n
Keep error code/params across contextBridge so renderer can translate errors reliably; harden UI error formatting and update vue-i18n test mocks.
2026-01-21 21:23:17 +08:00
linshen f4c24aaa03 refactor(core): 优化 Gemini adapter 与测试架构
主要改进:
- 优化 Gemini adapter 文本提取逻辑,优先使用 SDK response.text 属性
- 正确处理 Gemini 2.5+ 思考内容(thought)与普通文本的区分
- thinkingBudget 最小值改为 0,允许禁用思考功能
- 增强 PromptService 错误处理,验证失败时正确触发 onError 回调
- 重构集成测试,引入 createTestConfig 辅助函数消除硬编码
- 迁移 Anthropic adapter 测试到官方 SDK mock
- 添加测试间速率限制保护机制

测试结果:
- 565/566 测试通过 (99.8%)
- 类型检查全部通过
- 代码量净减少 27 行
2025-10-09 22:23:31 +08:00
linshen 69d854aa78 feat(model):重构模型管理器以支持动态提供商配置
- 统一文本模型的连接配置结构,移除冗余字段
- 引入 Provider 注册表机制,支持动态加载模型提供商
-优化模型编辑界面,使用表单布局提升用户体验
- 添加 Provider 切换功能,自动更新连接配置和模型列表
- 改进 API Key 处理逻辑,增强安全性与遮罩显示- 实现基于 Schema 的动态连接字段渲染-重构新增/编辑模型流程,确保配置一致性
- 更新核心类型定义,导出适配器注册表相关接口- 修复 OpenAI 提供商名称始终显示为 'OpenAI' 的问题
- 优化模型能力标签展示,支持流式传输、工具调用等特性标识
2025-10-05 23:23:43 +08:00
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 1ad32ca217 refactor: 完全移除 Vercel/Docker 代理功能以修复 SSRF 安全漏洞
修复 #179

## 变更内容

### 核心代码清理 (-2473行)
- 删除 api/proxy.js、api/stream.js、api/vercel-status.js 端点
- 删除 node-proxy/ 服务器实现
- 移除 environment.ts 中的代理检测逻辑
- 简化所有图像适配器和 LLM 服务,直接使用 baseURL
- 移除模型配置中的 useVercelProxy/useDockerProxy 字段

### 基础设施更新
- 更新 Dockerfile 移除 node-proxy 构建
- 更新 nginx.conf 移除代理路由
- 更新 supervisord.conf 移除 node-proxy 进程

### UI 优化
- 移除模型管理界面中的代理选项
- 清理国际化文件中的代理相关翻译
- 删除备份文件 ModelManager.bak.vue

### 文档同步
- 更新技术开发指南,说明功能移除原因
- 更新 Vercel 部署文档,移除代理相关说明
- 更新图像模式文档

## 安全说明

由于内置代理存在 SSRF (服务端请求伪造) 安全风险,完全移除相关功能。
推荐用户使用:
1. 桌面版应用 (无跨域限制)
2. 自建反向代理 (完全控制)
3. LLM 提供商的 CORS 友好端点

## 向后兼容性

历史数据中的 useVercelProxy/useDockerProxy 字段为可选,不会导致破坏性变更。
2025-09-30 22:08:00 +08:00
linshen ba63eff9ad feat: 重构图像模型管理架构并优化用户界面
## 核心改进

### 🏗️ 架构重构
- 实现ImageModelManager组件分离设计,关注点明确分离
- 重构ModelManager.vue为统一模型管理入口,支持文本/图像双模式
- 采用组件复用和扩展性设计,易于添加新模型类型

### 🎨 界面优化
- 摒弃5步导航式编辑,改为一体化界面设计
- 优化ImageModelEditModal为单页滚动布局,提升操作效率
- 统一文本和图像模型管理的交互体验和视觉风格

### 🔌 适配器扩展
- 新增OpenRouter和SiliconFlow图像适配器支持
- 完善AbstractImageProviderAdapter抽象基类设计
- 优化适配器注册表和动态模型发现机制

### 💻 类型系统
- 完善ImageModelConfig和相关类型定义
- 增强TypeScript类型安全和智能提示
- 优化服务层接口设计和依赖注入架构

### 🧪 测试覆盖
- 新增图像适配器单元测试和集成测试
- 添加E2E验收测试保证功能完整性
- 增强连接测试和参数验证测试覆盖

### 📚 文档完善
- 新增图像模型管理架构设计文档
- 添加一体化界面改进方案文档
- 更新项目结构和开发指南

## 技术特点

- **SOLID原则**:清晰的单一职责和开闭扩展设计
- **组合模式**:ImageModelManager + ModelManager.vue 组合架构
- **响应式设计**:基于Vue 3 Composition API的状态管理
- **依赖注入**:松耦合的服务架构和组件通信

这次重构显著提升了图像模型管理的用户体验和代码可维护性,
为后续音频、视频等多模态功能扩展奠定了坚实基础。
2025-09-21 20:17:03 +08:00