Commit Graph

49 Commits

Author SHA1 Message Date
imeepos 6d4bf9150c fix: 修复系统音色列表显示问题 - 修复枚举序列化格式不匹配和CSS类名问题 2025-07-31 11:14:24 +08:00
imeepos fcc0b64488 feat: 添加系统音色管理功能和修复穿搭生成问题
- 新增系统音色管理模块
  - 创建 SystemVoice 数据模型,支持多种音色类型和性别分类
  - 添加系统音色数据库表和迁移文件,内置46个预设音色
  - 实现 SystemVoiceRepository 仓库层,支持分页、搜索、分类查询
  - 添加系统音色 Tauri 命令,提供完整的 API 接口

- 修复穿搭图片生成问题
  - 修复 prompt 替换逻辑,避免错误覆盖模特描述节点
  - 实现商品编号调试文件命名,支持 debug_replaced_1.json 等格式
  - 添加 product_index 字段支持,便于多商品生成调试
  - 修复编译错误,确保所有结构体字段完整

- 完善穿搭生成功能
  - 添加分页加载功能,支持下拉加载更多记录
  - 实现失败重试机制,提供用户友好的错误处理
  - 支持多商品并发生成,每个商品独立任务处理
  - 添加详细的测试验证文档

内置音色包括:
- 基础系统音色:青涩青年、精英青年、霸道青年等
- 精品音色:所有基础音色的 beta 版本
- 童声音色:聪明男童、可爱男童、萌萌女童等
- 角色音色:病娇弟弟、俊朗男友、甜心小玲等
- 节日音色:Santa Claus、Grinch、Rudolph
- 英文音色:Arnold、Charming Lady、Sweet Girl等
2025-07-31 10:54:19 +08:00
imeepos 5e92c47835 refactor: 清理调试日志和优化代码
- 移除outfit_image_commands.rs中的调试println语句
- 移除outfitImageService.ts中的调试console.log语句
- 优化outfit_image_repository.rs代码结构
- 改进connection_pool.rs连接管理

提升代码质量,减少不必要的日志输出。
2025-07-30 23:40:27 +08:00
imeepos a477999445 feat: 实现穿搭图片生成异步后台任务模式
- 新增 execute_outfit_image_task 命令用于后台异步执行生成任务
- 修改前端流程:点击生成按钮后立即关闭弹框,任务在后台执行
- 添加 Tauri 事件系统支持实时进度更新和完成通知
- 前端服务层新增 createOutfitImageTask 和 executeOutfitImageTask 方法
- 支持任务状态实时更新:等待中 -> 生成中 -> 已完成/失败
- 保持向后兼容:原有同步 generateOutfitImages 方法仍可用
- 优化用户体验:无需等待生成完成即可继续操作其他功能

技术改进:
- 使用 tokio::spawn 实现真正的后台任务执行
- 通过 Tauri 事件系统实现前后端实时通信
- 复用现有生成逻辑,确保功能一致性
- 修复编译错误:正确的数据库导入路径和方法调用
2025-07-30 23:20:16 +08:00
imeepos 441d3f6cff feat: 完成核心功能开发
新增功能:
- 修复模特图片获取逻辑 - 从数据库查询真实模特照片
- 完善前端服务对接 - 替换模拟数据为真实API调用
- ComfyUI工作流配置 - 实现工作流文件管理功能
- 错误处理优化 - 完善异常情况的用户反馈机制

 技术改进:
- 新增 WorkflowManagementService 用于工作流文件管理
- 新增 ErrorHandlingService 用于统一错误处理
- 优化模特图片URL获取逻辑,支持头像和照片优先级
- 新增工作流验证、保存、删除、复制等完整功能
- 新增用户友好的错误信息和处理建议

 遵循开发规范:
- 按照 promptx/tauri-desktop-app-expert 规定的开发规范
- 实现模块化、组件化的架构设计
- 完善的错误处理和用户反馈机制
- 类型安全的API设计
2025-07-30 19:59:44 +08:00
imeepos 1e03afdecb feat: 实现穿搭照片生成功能
- 添加基于 ComfyUI 工作流的 AI 穿搭照片生成功能
- 实现完整的前端界面和后端服务集成
- 支持模特形象选择、商品图片上传、智能提示词生成
- 提供实时进度监控和历史记录管理
- 集成 ComfyUI 设置面板和连接状态检测
- 添加响应式设计和现代化 UI/UX
- 完善的 TypeScript 类型系统和错误处理
- 包含完整的功能文档和实现说明

主要组件:
- OutfitPhotoGenerator: 主生成器组件
- OutfitPhotoGenerationHistory: 历史记录管理
- ComfyUISettingsPanel: ComfyUI 设置面板
- OutfitPhotoGenerationPage: 主页面集成

技术特性:
- React 18 + TypeScript + Tailwind CSS
- Tauri 事件系统集成
- 实时进度监控和状态管理
- 拖拽上传和图片预览
- 批量处理和错误重试机制
2025-07-30 17:28:31 +08:00
imeepos 44ef1959cc 修复数据库迁移版本冲突和outfit_image_records表缺失问题
- 修复migrations.rs中两个版本23迁移的冲突,将声音克隆表迁移改为版本25
- 添加force_run_database_migrations命令用于强制运行数据库迁移
- 创建DatabaseService前端服务类提供数据库操作接口
- 解决穿搭图片功能中'no such table: outfit_image_records'错误
- 移除ModelImageUploader组件中的照片类型选择和说明部分,简化上传流程
2025-07-30 15:39:19 +08:00
imeepos 7552761d9a feat: 模特详情页改版 - 实现个人看板、形象图片管理和穿搭图片生成功能
新功能:
- 个人看板统计信息展示 (照片数量、穿搭图片、生成记录等)
- 个人形象图片管理 (上传、删除、预览、收藏)
- 穿搭图片生成功能 (选择模特图片 + 上传商品图片 => AI生成穿搭效果)
- 穿搭图片管理界面 (生成记录展示、状态跟踪、结果预览)

 技术实现:
- 新增穿搭图片相关数据模型和数据库表
- 实现OutfitImageService服务层
- 创建多个UI组件 (ModelDashboardStats, ModelImageGallery, OutfitImageGenerator等)
- 优化模特详情页整体布局,采用响应式设计

 UI/UX优化:
- 遵循promptx/frontend-developer设计规范
- 统一的视觉风格和动画效果
- 支持拖拽上传、图片预览、状态指示等交互
- 响应式布局适配不同屏幕尺寸

 测试:
- Rust编译检查通过 (cargo check)
- 前端构建检查通过 (pnpm run -w tauri:web:build)
- 所有TypeScript类型检查通过
2025-07-30 12:51:34 +08:00
imeepos 8a5988b3de feat: add Outfit Comparison Tool and Outfit Favorites Tool
- Implemented OutfitComparisonTool for comparing two favorite outfits side by side.
- Added OutfitFavoritesTool for managing and searching favorite outfits.
- Created OutfitFavoriteService for handling API interactions related to outfit favorites.
- Defined types for material search and outfit favorites to ensure type safety.
- Enhanced UI components for better user experience in selecting and displaying outfits.
2025-07-28 15:53:20 +08:00
imeepos bce0c30cab feat: 从根本上解决权重配置问题
- 添加 get_segment_weights_for_categories 方法,只获取选中分类的权重
- 修改权重指示器和预览组件,使用新方法只显示实际选中的分类
- 修改权重编辑器,只加载和编辑选中分类的权重
- 确保权重配置与匹配规则完全同步
- 解决显示所有分类权重但实际只选择部分分类的根本问题
2025-07-25 17:47:45 +08:00
imeepos 68124b92e9 feat: 在按顺序匹配规则编辑器中集成权重配置功能 2025-07-25 17:25:52 +08:00
imeepos 30ecaf56ec feat: 实现模板片段权重配置功能
新功能:
- 模板片段级别的AI分类权重配置
- 权重继承机制(全局权重作为默认值)
- 批量权重配置操作
- 直观的权重管理界面

 后端实现:
- 新增 template_segment_weights 数据表
- 实现 TemplateSegmentWeightRepository 仓储层
- 实现 TemplateSegmentWeightService 业务逻辑层
- 新增 Tauri 命令接口

 前端实现:
- TemplateSegmentWeightEditor 权重配置编辑器
- SegmentWeightIndicator 权重状态指示器
- BatchWeightConfigModal 批量配置模态框
- 集成到模板详情页面

 测试:
- 单元测试覆盖核心功能
- 集成测试验证端到端流程
- E2E测试确保用户体验

 技术特性:
- 权重范围:0-100,数值越大优先级越高
- 支持单个和批量更新操作
- 事务处理确保数据一致性
- 类型安全的API设计

 文档:
- 完整的功能文档和使用指南
- 技术架构说明
- 最佳实践建议

这个功能将显著提升模板匹配的灵活性和准确性!
2025-07-25 17:04:45 +08:00
imeepos 82d9ccfe21 feat: 实现AI穿搭方案推荐素材库检索功能
新增功能:
- 为每个穿搭方案添加素材库检索功能
- 智能生成检索条件基于穿搭方案内容
- 调用Google VET API进行素材检索
- 实现分页展示和导航功能

 架构改进:
- 新增MaterialSearchService前端服务
- 新增material_search_commands后端命令
- 新增material_search数据模型
- 遵循Tauri开发规范的组件设计

 UI/UX优化:
- 美观的素材卡片展示
- 流畅的分页导航体验
- 响应式设计和动画效果
- 遵循promptx/frontend-developer标准

 组件结构:
- MaterialSearchPanel: 素材检索面板
- MaterialSearchResults: 搜索结果列表
- MaterialCard: 素材卡片组件
- MaterialSearchPagination: 分页组件

 技术实现:
- TypeScript类型安全
- React Hooks状态管理
- TailwindCSS样式系统
- 错误处理和加载状态
- 无障碍访问支持
2025-07-25 15:05:22 +08:00
imeepos 0a89efd394 fix: resolve advanced filter data flow issue in similarity search
**Root Cause Fixed**: Advanced filter conditions were not being applied because:
- SimilaritySearchRequest lacked config field for SearchConfig
- Backend quick_similarity_search created empty default config
- Frontend searchConfig state was not passed to search requests

 **Changes Made**:

**Frontend Fixes:**
- Extended SimilaritySearchRequest interface with optional config field
- Modified SimilaritySearchService to pass config parameter
- Updated all search calls in SimilaritySearchTool to include searchConfig
- Enhanced handleSearch, threshold change listener, and scene search

**Backend Fixes:**
- Added config parameter to quick_similarity_search command
- Implemented config merging logic (use provided config or create default)
- Added comprehensive debug logging for filter configuration
- Fixed Rust compilation error with threshold.clone()

**Data Flow Now Working:**
Frontend SearchConfig  SimilaritySearchRequest.config  Backend SearchRequest  Filter Application

**Testing:**
-  Frontend builds successfully
-  Backend compiles without errors
-  Advanced filters now properly transmitted to search engine
-  Debug mode shows filter details in console

Advanced filter conditions now properly affect similarity search results!
2025-07-25 12:52:15 +08:00
imeepos a1c40a13ad fix: resolve compilation errors in advanced filter integration
- Fixed AdvancedFilterPanel import issues by removing unused DEFAULT_COLOR_FILTER
- Fixed EnvironmentTagSelector type errors with proper Record<string, string[]> typing
- Fixed SimilaritySearchTool executeSearch call by providing required SimilaritySearchRequest parameter
- Fixed intelligentSearchService mergeSearchConfigs by adding missing SearchConfig fields:
  * debug_mode, custom_filters, query_enhancement_enabled, color_thresholds
- Made availableEnvironments optional in EnvironmentTagSelector props
- Updated type definitions to support enhanced search configuration

All compilation errors resolved, build now passes successfully.
2025-07-25 12:44:12 +08:00
imeepos c4bb073507 feat: 实现AI穿搭方案推荐功能
- 新增穿搭方案推荐数据模型和类型定义
- 实现基于TikTok视觉趋势的Gemini AI穿搭方案生成
- 创建穿搭方案卡片和列表展示组件
- 集成Sparkles图标点击触发穿搭方案生成
- 实现穿搭方案到场景检索的无缝集成
- 添加完整的前后端API和服务层
- 遵循promptx开发规范和设计系统标准

功能特点:
- 基于用户输入关键词生成个性化穿搭推荐
- 包含色彩搭配、风格标签、场景建议等详细信息
- 提供TikTok优化建议和拍摄技巧
- 支持一键场景检索功能
- 美观的卡片式展示界面
- 完整的加载状态和错误处理
2025-07-25 10:38:11 +08:00
imeepos 00855e6861 feat: 相似度检索工具全面优化
 新功能:
- 相关性阈值选择器移至页面顶部,使用CustomSelect组件
- 智能分页系统支持大量页面(如1981页)
- 悬浮上一页/下一页按钮固定在屏幕两侧
- 每页显示数量选择器(6-96条可选)
- 参数持久化到本地存储(关键字/阈值/每页数量)

🔄 自动重新加载:
- 关键字变化:防抖搜索(800ms)
- 相关性阈值变化:立即重新搜索
- 每页数量变化:重置到第一页并重新搜索
- 页码变化:加载对应页面数据

💫 加载状态优化:
- 页面顶部全局搜索状态指示器
- 各控件旁的局部加载状态
- 搜索结果区域加载遮罩
- 分页按钮加载状态

🔧 技术改进:
- S3/GS URL自动转换为CDN URL
- Zustand persist中间件实现状态持久化
- 智能分页算法优化
- 防抖搜索机制
- 完善的错误处理和重试机制
2025-07-24 15:45:37 +08:00
imeepos 0436267266 feat: 实现相似度检索工具
- 基于现有search_similar_outfits功能开发独立的相似度检索小工具
- 遵循promptx/tauri-desktop-app-expert开发规范
- 实现完整的前后端架构:
  * Rust后端命令接口 (similarity_search_commands.rs)
  * TypeScript类型定义 (similaritySearch.ts)
  * Zustand状态管理 (similaritySearchStore.ts)
  * React组件 (SimilaritySearchTool, SimilaritySearchPanel, SimilaritySearchResults, SimilaritySearchCard)
  * 服务层 (similaritySearchService.ts)

功能特性:
- 智能搜索建议和自动完成
- 可调节的相关性阈值 (LOWEST/LOW/MEDIUM/HIGH)
- 快速搜索标签
- 响应式网格布局结果展示
- 优雅的加载状态和错误处理
- 遵循UI/UX设计标准的美观界面

技术实现:
- 复用现有outfit search API和数据模型
- 简化的搜索配置,专注核心功能
- 完整的TypeScript类型安全
- 现代化的React Hooks和状态管理
- TailwindCSS响应式设计
- 平滑的动画和交互效果

集成:
- 添加到快捷工具列表 (/tools/similarity-search)
- 配置React Router路由
- 注册Tauri命令处理器
2025-07-24 14:14:12 +08:00
imeepos 5a60fb8c04 feat: 优化对话服务和RAG功能
更新内容:
- 优化conversation_service.rs对话服务逻辑
- 改进gemini_service.rs API集成
- 更新ChatInterface组件用户体验
- 优化MultiTurnChatTest多轮对话测试
- 改进MultiTurnRagChatTest RAG对话测试
- 更新conversationService前端服务

功能改进:
- 支持maxHistoryMessages历史消息数量控制
- 优化对话上下文管理
- 改进RAG检索和对话集成
- 提升多轮对话的稳定性和准确性

这些更新提升了AI对话功能的整体性能和用户体验
2025-07-23 21:14:17 +08:00
imeepos 78f27983a6 feat: 实现智能屏幕适配功能
新功能:
- 根据用户屏幕尺寸自动调整窗口大小
- 支持小屏幕、中等屏幕、大屏幕、超宽屏的智能适配
- 提供屏幕适配设置页面,用户可自定义配置
- 应用启动时自动应用屏幕适配

技术实现:
- 创建ScreenAdaptationService服务类
- 支持动态获取屏幕信息和显示器配置
- 提供智能适配和手动配置两种模式
- 集成到应用设置页面,提供友好的UI界面

配置选项:
- 默认宽度/高度比例可调节
- 最小窗口尺寸限制
- 最大窗口尺寸比例
- 支持不同屏幕类型的预设配置

用户体验:
- 应用启动时自动适配屏幕
- 设置页面提供实时预览
- 支持一键智能适配和手动微调
- 窗口居中显示,提升视觉体验

适配策略:
- 小屏幕(<1366x768): 95%宽度, 90%高度
- 中等屏幕(1366-1920): 85%宽度, 85%高度
- 大屏幕(>=1920x1080): 75%宽度, 80%高度
- 超宽屏(21:9+): 70%宽度, 85%高度

解决了固定窗口尺寸在不同屏幕上显示不佳的问题
2025-07-23 20:55:51 +08:00
imeepos 3d24f5b908 fix: 修复按顺序匹配功能的TypeScript编译错误
修复内容:
- 在AiClassificationFormErrors接口中添加weight字段
- 修复AiClassificationRealTimePreview组件中缺少weight字段的问题
- 更新所有测试文件中的mock数据,添加weight字段
- 确保所有AI分类相关的类型定义完整一致

构建状态:
-  TypeScript编译通过
-  Rust编译通过
-  生成可执行文件和安装包
-  仅有编译警告,无错误

所有按顺序匹配功能现已可正常使用
2025-07-23 20:42:08 +08:00
imeepos 725514af2d fix: 匹配markdown 2025-07-22 15:57:36 +08:00
imeepos f92d9a7c39 fix: 优化markdown解析器 2025-07-22 15:04:37 +08:00
imeepos cb5a137ec9 fix: 添加文字图片关联关系 2025-07-22 12:21:39 +08:00
imeepos 0b42ea8dcc feat: 改造query_llm_with_grounding支持多轮对话
- 扩展RAG Grounding数据模型支持会话管理
- 添加多轮对话的RAG查询方法query_llm_with_grounding_multi_turn
- 集成现有会话管理服务,支持历史消息存储和检索
- 更新前端类型定义和服务层,支持多轮对话参数
- 创建多轮RAG对话测试组件和页面
- 支持系统提示词、历史消息数量控制等配置选项
- 保持向后兼容,单轮对话功能不受影响

核心功能:
 多轮RAG对话 - 基于检索增强生成的多轮对话
 会话历史管理 - 自动保存和加载对话历史
 智能检索增强 - 结合Vertex AI Search的知识检索
 上下文保持 - 在多轮对话中保持对话上下文
 灵活配置 - 支持历史消息数量、系统提示词等配置
 来源追踪 - 显示检索来源和相关性信息

遵循promptx/tauri-desktop-app-expert开发规范
2025-07-22 10:56:54 +08:00
imeepos 5296039785 feat: 实现多轮对话功能
- 添加会话管理数据模型和仓库层
- 扩展Gemini服务支持多轮对话的contents数组构建
- 实现会话历史存储和检索功能
- 添加多轮对话业务服务层
- 创建前端TypeScript类型定义和服务层
- 实现Tauri命令处理多轮对话请求
- 添加会话管理功能(创建、删除、更新标题等)
- 创建多轮对话测试组件和页面
- 遵循promptx/tauri-desktop-app-expert开发规范
- 支持session_id管理和历史消息传递
- 实现完整的四层架构设计
2025-07-22 10:39:26 +08:00
imeepos f467b215b5 fix: build error 2025-07-21 23:47:20 +08:00
imeepos 07ecd9cee7 feat: 优化聊天界面为女装穿搭专业顾问
-  更新UI主题为粉色系,适配女装穿搭业务
-  默认展示12张图片卡片,支持展开查看全部
-  默认隐藏AI文字回答,点击查看详情时显示
-  新增智能标签汇总功能,支持多选标签生成搜索
-  优化提示词和建议问题,专注女装穿搭场景
-  修复加载状态显示问题,优化用户体验
-  支持gs://到Google Storage的URI转换
-  增强图片卡片交互,悬停显示查看原图按钮
2025-07-21 22:56:57 +08:00
imeepos 1fb5468ecc feat: 实现RAG Grounding服务功能
基于promptx/outfit-match中的query_llm_with_grounding实现,遵循Tauri开发规范

## 新增功能
- 实现RAG Grounding核心服务逻辑
- 支持基于Vertex AI Search的检索增强生成
- 集成Cloudflare Gateway和Google Gemini API
- 提供完整的TypeScript类型定义和前端服务封装

## 技术架构
- Rust后端:GeminiService扩展RAG功能
- Tauri命令:query_rag_grounding, test_rag_grounding_connection, get_rag_grounding_config
- 前端服务:RagGroundingService类,支持统计监控和错误处理
- 数据模型:完整的请求/响应结构和配置管理

## 核心特性
- 检索增强生成:基于数据存储的智能检索和内容生成
- 容错机制:内置重试机制和错误处理
- 性能监控:响应时间统计和性能指标
- 类型安全:完整的TypeScript类型定义
- 会话管理:支持上下文保持的对话功能

## 测试覆盖
- 25个单元测试,覆盖核心功能和边界情况
- 包括序列化/反序列化、错误处理、配置验证等
- 所有测试通过,确保功能正确性

## 文档和示例
- 完整的API文档 (docs/rag-grounding-api.md)
- 详细的使用示例 (examples/rag-grounding-usage.ts)
- 包含最佳实践和错误处理指南

## 遵循规范
- 严格遵循promptx/tauri-desktop-app-expert开发规范
- 安全第一:最小权限原则,数据加密保护
- 性能优先:异步处理,响应时间优化
- 模块化设计:清晰的架构分层
- 错误处理完善:全面的错误处理和用户反馈
2025-07-21 21:07:03 +08:00
imeepos c3c72ce8bd feat: 实现一键匹配实时进度通讯
修复问题:
- 一键匹配进度条没有逐步递增,只在开始和结束时更新

实现内容:
1. 后端进度事件发送:
   - 在事件总线中添加BatchMatchingProgress事件类型
   - 在批量匹配服务中集成Tauri事件发送
   - 在每个模板匹配开始时发送实时进度事件

2. 前端进度事件监听:
   - 修改BatchMatchingService支持事件监听
   - 添加batch_matching_progress事件监听器
   - 实时更新进度条状态

3. 事件通讯机制:
   - 使用Tauri的emit系统发送事件到前端
   - 前端通过listen监听实时进度更新
   - 确保进度条能够逐步递增显示

技术细节:
- 后端:使用app_handle.emit()发送进度事件
- 前端:使用listen()监听batch_matching_progress事件
- 进度计算:基于当前轮数、绑定索引和总绑定数

现在一键匹配过程中进度条会实时更新,用户可以看到匹配的实际进展。
2025-07-21 20:07:27 +08:00
imeepos 8dfdf36a47 feat: 添加YAML智能解析支持 2025-07-21 18:35:35 +08:00
imeepos 6bd12a4a63 feat: 实现项目素材批量删除功能
- 后端实现:
  * 在MaterialRepository中添加batch_delete方法,支持事务处理
  * 在MaterialService中添加batch_delete_materials业务逻辑
  * 添加BatchDeleteResult和BatchDeleteFailedItem数据结构
  * 新增batch_delete_materials Tauri命令接口
  * 实现参数验证和错误处理机制

- 前端实现:
  * 创建useBatchSelection Hook管理批量选择状态
  * 实现BatchDeleteConfirmDialog批量删除确认对话框
  * 在MaterialCard组件中添加批量选择支持
  * 在ProjectDetails页面集成批量选择和删除功能
  * 添加批量操作UI控件(全选/取消全选/批量删除按钮)

- 功能特性:
  * 支持最多50个素材的批量选择
  * 单次最多删除100个素材的限制
  * 详细的删除结果反馈(成功/失败统计)
  * 失败项目的具体错误信息显示
  * 批量选择模式的视觉反馈
  * 完善的用户确认和通知机制

- 测试:
  * 添加批量删除功能的单元测试
  * 测试数据结构创建和验证逻辑

遵循Tauri开发规范和前端UI/UX设计标准,提供安全可靠的批量删除体验。
2025-07-21 14:28:06 +08:00
imeepos dc61de7cad fix: 修复容错JSON解析器的解析逻辑和前端集成
主要修复:
- 修复extract_pair函数,正确处理object/array/number等直接节点类型
- 在预处理阶段修复无引号键和尾随逗号,避免Tree-sitter解析错误
- 添加详细的调试日志,便于问题诊断
- 优化JsonParserState,每次使用新配置创建解析器实例
- 创建TolerantJsonParser前端组件,支持配置和示例
- 创建TolerantJsonService服务类,封装API调用
- 添加JsonParserDebugPanel调试面板,便于测试后端命令
- 集成到便捷工具页面,提供完整的用户界面

技术改进:
- 支持预设配置模式(严格/宽松/AI模式/快速模式)
- 增强错误恢复策略的调试信息
- 优化前端组件的用户体验和交互设计
- 添加解析统计信息展示和结果导出功能
2025-07-21 13:46:49 +08:00
imeepos da4aeaccb9 完成模特动态页面开发,移除标题和描述字段 2025-07-18 16:49:08 +08:00
imeepos 483d63caaa fix: 修复一键匹配失败入库和成功率超过100%的问题
## 修复内容

### 1. 修复匹配失败时仍然入库的问题
- 在match_materials_with_used_segments方法中添加匹配成功判断
- 只有当所有需要匹配的片段都成功匹配时才保存到数据库
- 匹配失败时不记录资源使用,确保资源可以被后续匹配使用
- 修改match_materials_and_save方法,确保一致的失败处理逻辑

### 2. 修复匹配失败时的资源释放
- 部分匹配失败时,已分配的资源不会被标记为已使用
- 在批量匹配中正确处理部分匹配失败的情况
- 失败的匹配不会影响全局资源使用状态

### 3. 修复成功率计算超过100%的问题
- 统一所有地方的成功率计算逻辑,确保基于可匹配片段计算
- 在前端显示时添加Math.min限制,确保成功率不超过100%
- 修复前端多个组件中成功率显示不一致的问题:
  * BatchMatchingSummaryCard.tsx
  * BatchMatchingResultDialog.tsx
  * TemplateMatchingResultCard.tsx
  * TemplateMatchingResultDetailModal.tsx
  * TemplateMatchingResultStatsPanel.tsx
  * materialMatchingService.ts

### 4. 改进批量匹配逻辑
- 区分完全匹配失败和部分匹配失败
- 部分匹配失败时提供详细的失败原因
- 保持匹配结果用于分析,但不保存到数据库

## 技术细节
- 后端成功率统一为0-1的小数格式
- 前端显示时统一乘以100并限制最大值为100
- 确保匹配失败时的事务一致性
- 添加详细的日志输出便于调试
2025-07-18 13:16:45 +08:00
imeepos 025237f753 feat: 实现服装搭配/高级筛选功能 - 自定义标签系统
新功能:
- 完整的自定义标签管理系统
- 支持标签分类和标签的CRUD操作
- 标签与实体(素材、模特、项目等)的关联管理
- 批量标签操作支持
- 标签使用统计功能

 数据库:
- 新增 custom_tag_categories 表(标签分类)
- 新增 custom_tags 表(自定义标签)
- 新增 tag_associations 表(标签关联)
- 支持默认标签数据初始化(暂时禁用)

 后端 (Rust):
- CustomTagRepository: 完整的数据访问层
- CustomTagCommands: Tauri命令接口
- 完善的错误处理和类型安全

 前端 (React + TypeScript):
- CustomTagSelector: 功能完整的标签选择器组件
- CustomTagService: API调用服务层
- 完整的TypeScript类型定义
- 集成到FilterPanel中的高级筛选功能

 技术特性:
- 遵循promptx/tauri-desktop-app-expert开发规范
- 使用连接池避免数据库死锁
- 响应式UI设计,支持实时创建标签
- 支持多维度筛选和搜索
- 完整的数据验证和错误处理

 注意事项:
- 默认标签初始化暂时禁用以避免启动阻塞
- 所有功能已编译通过并可正常使用
2025-07-18 10:40:26 +08:00
imeepos c3213bc3fc feat: 完成服装搭配筛选功能优化
-  修复Gemini API JSON截断问题,提高分析成功率90%+
-  实现基于AI识别商品的动态筛选选项
-  将图片分析功能集成到高级筛选面板
-  合并颜色匹配和设计风格筛选为统一商品筛选
-  统一UI颜色设计:未选中浅色,选中蓝色
-  支持AI识别商品的颜色纠正功能
-  优化响应式设计和用户体验

主要改进:
- 智能JSON修复机制处理API响应截断
- 动态生成筛选选项而非硬编码常量
- 一体化商品筛选界面设计
- 统一的颜色设计系统
- 增强的错误处理和用户反馈
2025-07-18 00:54:01 +08:00
imeepos fa194a5db2 feat: 服装搭配页面UI美化和UX改进
UI优化内容:
- 重新设计页面头部,使用优雅的渐变背景和现代化图标
- 优化标签导航,采用卡片式设计和平滑动画效果
- 美化搜索面板,改进输入框、筛选器和按钮的视觉设计
- 重构图片上传组件,添加拖拽区域样式和上传进度动画
- 优化搜索结果展示,使用网格布局和悬停效果
- 改进AI分析结果展示,采用卡片式布局和颜色编码
- 增强LLM聊天界面,现代化消息气泡和打字动画

 响应式设计:
- 实现移动优先的响应式布局
- 优化平板端和桌面端适配
- 修复1200px宽度下的左右布局显示问题
- 添加触摸友好的交互元素

 用户体验提升:
- 统一设计语言和视觉风格
- 添加流畅的页面切换和组件加载动画
- 优化加载状态、错误提示和空状态设计
- 改进信息层次和视觉可读性

 技术改进:
- 使用Tailwind CSS类替代内联样式
- 统一使用Lucide React图标库
- 完善CSS变量和设计令牌系统
- 添加兼容性变量支持旧的命名格式

符合promptx/frontend-developer规定的前端开发规范,确保界面美观、操作流畅、动画优美,符合用户操作习惯和大众审美习惯。
2025-07-17 23:27:52 +08:00
imeepos 1da647fbab feat: 实现循环匹配功能优化
- 优化一键匹配算法,支持循环匹配模板直到素材耗尽
- 新增全局素材使用状态跟踪,避免重复使用素材
- 实现智能终止条件,当无法完整匹配任何模板时自动停止
- 扩展BatchMatchingResult数据结构,添加循环轮数和终止原因字段
- 更新前端界面显示循环匹配进度和详细统计信息
- 添加性能优化:日志优化、预检查机制、最大轮数限制
- 新增全面的单元测试覆盖各种边界情况
- 创建详细的功能文档说明使用方式和注意事项

核心改进:
1. 循环匹配算法 - 持续匹配直到素材不足
2. 全局素材跟踪 - 确保素材不重复使用
3. 智能终止机制 - 自动检测匹配完成条件
4. 性能优化 - 支持大量模板和素材的高效处理
5. 完整测试覆盖 - 确保功能稳定可靠
2025-07-17 14:53:14 +08:00
imeepos e3037916c0 feat: 实现一键匹配功能 (v0.1.26)
- 新增一键匹配后端服务,支持遍历项目模板绑定并逐一匹配
- 在项目详情页添加一键匹配按钮,支持批量匹配操作
- 实现批量匹配进度管理,包括实时进度跟踪和取消功能
- 添加一键匹配结果汇总,包含详细统计和报告导出功能
- 新增批量匹配相关组件:进度对话框、结果对话框、汇总卡片
- 遵循 promptx/tauri-desktop-app-expert 开发规范
- 支持错误处理、状态管理和用户体验优化
2025-07-16 21:52:48 +08:00
imeepos d5ef9851cd feat: 实现模特详情页视频生成功能
- 新增模特详情页组件,支持照片上传和视频生成
- 实现视频生成数据模型和仓库层
- 集成Dify API进行视频生成
- 添加云存储上传功能,自动转换S3 URL为CDN地址
- 实现统一的删除确认弹框,替换window.confirm
- 支持照片和视频生成任务的删除功能
- 优化UI/UX设计,符合前端开发规范
- 添加完整的错误处理和状态管理

核心功能:
 模特照片上传到云端
 多选照片进行视频生成
 实时任务状态跟踪
 视频生成历史记录
 统一删除确认对话框
 响应式设计和优雅动画
2025-07-16 19:39:44 +08:00
imeepos bab1dfc5fd feat: 实现素材匹配功能 v0.1.19
- 新增素材匹配服务 (MaterialMatchingService)
  - 支持AI分类匹配、随机匹配等规则
  - 实现模特限制逻辑(每个模特素材只能使用一次)
  - 时长匹配优化(相差越小越好)
  - 详细的匹配统计和失败原因分析

- 新增Tauri API命令
  - execute_material_matching: 执行素材匹配
  - get_project_material_stats_for_matching: 获取项目素材统计
  - validate_template_binding_for_matching: 验证模板绑定

- 新增前端组件和服务
  - MaterialMatchingResultDialog: 匹配结果对话框
  - MaterialMatchingService: 前端服务层
  - 完整的TypeScript类型定义

- UI集成
  - 在模板绑定列表添加匹配素材按钮
  - 集成到项目详情页面
  - 支持完整的匹配流程和结果展示

- 核心匹配规则
  - 只使用已AI分类的MaterialSegment
  - 每个素材只能使用一次
  - 模特限制:优先同一模特,失败后尝试其他模特
  - 视频时长必须大于模板需求,相差越小匹配度越高

- 测试覆盖
  - 后端服务单元测试
  - 覆盖正常匹配、失败场景、边界情况
2025-07-15 14:56:10 +08:00
imeepos 7c40da1b83 fix: 修复素材绑定页面显示暂无素材的问题
- 添加get_all_materials后端命令获取所有项目的素材
- 在MaterialRepository中实现get_all方法
- 在MaterialService中添加get_all_materials方法
- 修改MaterialModelBindingService的getMaterialsByFilter方法,在没有指定项目时获取所有素材而不是返回空数组
- 确保素材绑定页面能正确显示所有素材数据,与统计信息保持一致
- 支持在全局素材列表上应用绑定状态和搜索过滤
2025-07-15 14:18:48 +08:00
imeepos de446b6410 fix: 修复项目详情页面模板绑定和素材绑定页面的搜索功能
- 修复项目详情页面模板绑定搜索功能:使用过滤后的绑定详情而不是原始数据
- 修复素材绑定页面搜索功能:添加useEffect监听搜索条件变化并重新加载数据
- 修复素材绑定页面统计功能:实现全局模特绑定统计API和前端调用
- 优化MaterialModelBindingService的getMaterialsByFilter方法,正确处理多重过滤条件
- 添加后端get_global_model_binding_stats命令和相关仓库方法
- 确保搜索和统计功能在所有相关页面正常工作
2025-07-15 14:10:29 +08:00
imeepos a1ccde6b89 fix: 修复get_model_by_id死锁问题和批量删除模板功能
- 修复ModelService中get_model_by_id使用get_basic_by_id避免数据库死锁
- 解决MaterialCard组件中关联模特一直加载中的问题
- 修复ProjectTemplateBindingList中executeDelete函数的异步处理
- 在get_model_by_id命令中添加详细的调试日志
- 在MaterialCard中添加组件卸载时的状态清理机制
- 在批量删除服务中添加调试日志追踪问题
- 解决页面切换时loading状态不清除的问题
2025-07-15 13:49:43 +08:00
imeepos 8f1355ba16 fix: 修复数据库查询NULL值错误和Tauri命令参数命名问题
- 修复video_classification_repository中get_classification_stats函数的NULL值处理
- 将SUM()查询结果从直接获取i32改为Option<i32>并提供默认值0
- 修复get_templates_by_project等命令的参数命名,使用camelCase以匹配前端调用
- 解决'Invalid column type Null at index: 1, name: pending'错误
- 解决'invalid args projectId for command get_templates_by_project'错误
2025-07-15 13:18:04 +08:00
imeepos 730402aba0 feat: 实现项目-模板绑定和素材-模特绑定管理功能
新功能:
- 项目-模板绑定管理系统
  - 支持主要/次要模板绑定类型
  - 绑定优先级和状态管理
  - 批量绑定操作
  - 绑定关系的CRUD操作

- 素材-模特绑定管理系统
  - 素材与模特的关联管理
  - 批量绑定/解绑操作
  - 绑定统计和分析
  - 素材编辑对话框

 架构改进:
- 新增项目-模板绑定数据模型和仓库层
- 新增素材-模特绑定业务服务层
- 完善的API命令层实现
- 响应式前端界面设计

 用户体验优化:
- 统一的通知系统
- 增强的加载状态组件
- 流畅的交互动画
- 优雅的确认对话框

 测试覆盖:
- 单元测试和集成测试
- 业务逻辑验证
- API接口测试

 技术栈:
- 后端: Rust + Tauri + SQLite
- 前端: React + TypeScript + TailwindCSS
- 状态管理: Zustand
- 测试: Vitest + Rust测试框架

 配置更新:
- 更新数据库迁移脚本
- 完善测试配置
- 优化构建流程
2025-07-15 12:50:30 +08:00
imeepos ca63da30ff feat: 实现AI分类设置功能 (v0.1.7)
新增功能:
- AI分类CRUD操作 (创建、读取、更新、删除)
- 实时提示词预览功能
- 分类排序和状态管理
- 完整的表单验证和错误处理

 后端架构:
- 数据层: AiClassification模型和仓储
- 业务层: AiClassificationService业务逻辑
- 表示层: 10个Tauri命令接口
- 数据库: ai_classifications表和索引

 前端架构:
- 类型系统: 完整的TypeScript类型定义
- 服务层: AiClassificationService API封装
- 组件层: 5个专用组件 (主页面、表单、预览、删除确认、实时预览)
- 路由集成: /ai-classification-settings

 质量保证:
- 52个单元测试 (100%通过)
- TypeScript和Rust编译无错误
- 遵循promptx开发规范

 核心特性:
- 支持分类名称和提示词定义
- 实时生成完整AI分类提示词
- 拖拽排序和批量操作
- 优雅的用户界面和交互体验
2025-07-14 11:39:44 +08:00
imeepos 5cf1f8bfca feat: 实现模特管理功能
- 新增模特数据模型和数据库表结构
- 实现模特的完整CRUD操作
- 添加模特照片管理功能
- 实现素材与模特关联功能
- 创建模特管理前端界面
- 集成到主应用导航和路由
- 修复数据库连接死锁问题

功能特性:
- 模特基本信息管理(姓名、艺名、性别、年龄等)
- 照片管理和封面设置
- 标签系统
- 状态管理(活跃、不活跃、退役、暂停)
- 评分系统
- 搜索和过滤功能
- 素材关联功能
2025-07-14 01:39:14 +08:00