imeepos
1008eb6c72
feat: Add image gallery modal for enhanced image preview functionality
2025-07-29 17:29:57 +08:00
imeepos
2f6a4dc1be
feat: Implement image generation record management
...
- Added ImageGenerationRecordStatus enum to represent various states of image generation records.
- Created ImageGenerationRecord interface to define the structure of image generation records.
- Developed ImageGenerationStatistics interface for returning statistics related to image generation.
- Implemented ImageGenerationService in Rust to handle creation, updating, and retrieval of image generation records.
- Added methods for starting, completing, failing, and cancelling image generation tasks.
- Introduced ImageGenerationRepository for database interactions related to image generation records.
- Created SQL migration scripts for setting up the image_generation_records table and its indices.
- Implemented cleanup and statistics retrieval functionalities for image generation records.
2025-07-29 17:11:18 +08:00
imeepos
9b2c5004f3
feat: 实现完整的AI图片生成工具
...
- 新增图片生成工具页面和路由配置
- 实现提示词预审功能,支持API响应格式解析
- 实现异步图片生成任务提交和状态轮询
- 支持参考图片上传功能
- 实现多张图片结果展示(4张图片网格布局)
- 添加Bearer token认证支持
- 优化API响应解析,支持不同阶段的响应格式
- 实现错误处理和重试机制
- 遵循Tauri开发规范和UI/UX设计标准
- 使用TailwindCSS进行响应式设计
技术特性:
- 后端Rust命令:check_image_prompt, submit_image_generation_task, query_image_generation_status, upload_file_to_cloud
- 前端React组件:完整的生成流程UI,实时状态监控,多图片展示
- 类型安全:完整的TypeScript类型定义
- 用户体验:实时进度反馈,批量操作,悬停交互效果
2025-07-29 15:56:31 +08:00
imeepos
1f51263d49
feat: remove unused navigation items for video generation and material center
2025-07-29 14:52:49 +08:00
imeepos
e744648183
feat: 优化视频生成工作台用户体验
...
修复功能问题:
- 修复素材tab无法左右滑动的问题
- 添加自定义滚动条样式,隐藏默认滚动条
- 优化tab布局,支持横向滚动浏览
简化素材卡片设计:
- 创建SimpleMaterialCard组件,专用于素材选择
- 改为正方形缩略图,更适合侧边栏2列布局
- 精简信息显示:只保留名称、类型、时长/大小
- 移除繁琐的描述、标签等冗余信息
- 优化选择状态指示器位置和大小
优化布局体验:
- 素材选择器改为2列网格布局
- 缩小搜索框和间距,节省空间
- 统一使用紧凑型设计风格
- 改善滚动条样式和交互体验
用户体验提升:
- 更直观的素材浏览体验
- 减少视觉干扰,突出核心信息
- 提高操作效率和界面美观度
- 符合专业工具的简洁设计理念
2025-07-29 14:33:41 +08:00
imeepos
f906b47e9f
feat: 重新设计视频生成工作台布局
...
采用专业视频制作工具的布局方式,提升用户操作体验:
新布局设计:
- 左侧:素材区(tab切换:模特/产品/场景/动作/音乐/提示词)
- 中央:视频预览区(实时预览、播放控制、素材概览)
- 底部:紧凑型参数设置区(一行显示所有关键参数)
- 右侧:可折叠任务状态区(实时显示生成任务进度)
新增组件:
- CentralVideoPreview: 专业的中央预览组件
- CompactVideoConfigPanel: 紧凑型配置面板
- TaskStatusPanel: 任务状态管理面板
功能增强:
- 实时任务进度显示
- 任务管理(取消、重试、删除)
- 更直观的素材选择流程
- 专业的视频预览体验
- 响应式布局优化
用户体验提升:
- 一屏显示所有关键信息
- 减少页面切换和滚动
- 符合专业视频制作工具习惯
- 提高工作效率
2025-07-29 14:26:17 +08:00
imeepos
a40bb24adc
feat: 实现视频生成功能模块
...
- 新增素材中心页面,支持6种素材类型管理(模特、产品、场景、动作、音乐、提示词模板)
- 实现视频生成工作台,提供三步式工作流程(选择素材、配置参数、生成预览)
- 创建完整的组件体系:素材卡片、分类过滤器、素材选择器、配置面板、预览组件
- 优化UI/UX设计,遵循promptx/frontend-developer标准
- 添加导航路由配置,支持 /material-center 和 /video-generation 路径
- 实现响应式设计、动画效果、无障碍支持等现代化特性
- 提供完整的TypeScript类型定义和接口
功能特点:
直观的素材管理界面
专业的视频生成工作台
优雅的UI/UX设计
响应式布局支持
高性能组件架构
可扩展的模块设计
2025-07-29 14:16:08 +08:00
imeepos
63e40091ac
feat: 方案对比页面集成ImageCard组件并实现本地下载功能
...
- 将方案对比页面的素材展示替换为ImageCard组件
- 创建MaterialSearchResult到GroundingSource的数据适配器
- 实现本地文件下载功能,支持用户选择保存目录
- 添加文件扩展名自动识别和文件类型过滤
- 集成Tauri的文件保存对话框和下载命令
- 优化用户体验,提供完整的图片展示和下载功能
- 支持查看大图和本地保存功能
- 保持下拉加载更多和刷新功能的完整性
2025-07-28 16:40:18 +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
5c019b48df
fix: resolve TypeScript iterator error in OutfitRecommendationTool
...
- Fixed type error where response.recommendations could be undefined
- Added null coalescing operator to ensure safe array spreading
- Updated OutfitRecommendationCard and capabilities configuration
2025-07-28 11:56:11 +08:00
imeepos
2f845db6ac
fix: 修复字符串中中文引号导致的编译错误
...
- 将提示词中的中文引号转义为英文引号
- cargo check现在可以成功编译,只有一些无害的警告
- 保持提示词的功能完整性
2025-07-28 11:50:44 +08:00
imeepos
785502aa20
improve: 优化AI分组策略提示词
...
- 明确要求AI先确定分组策略,再为每组生成3个方案
- 添加分组示例,指导AI更好地理解分组逻辑
- 强调分组均匀分布和风格差异化
- 提供具体的分组命名建议
现在的逻辑:
1. AI分析用户查询确定分组维度
2. 创建3-4个不同分组类别
3. 每个分组生成恰好3个相关方案
4. 总共12个方案,分布均匀
2025-07-28 11:44:25 +08:00
imeepos
67574350f4
fix: 修复重复导入和未使用变量的编译警告
...
- 删除gemini_service.rs中重复的导入语句
- 修复未使用的request参数警告
- cargo check现在可以成功编译
2025-07-28 11:33:07 +08:00
imeepos
d33f7fbc7f
feat: 实现AI穿搭方案智能分组功能
...
- 修改提示词让AI直接返回分组结构
- 添加GroupingStrategy和OutfitQualityScore数据结构
- 支持按风格、场合、季节等维度智能分组
- 为每个方案添加质量评分系统
- 前端支持分组展示和获取更多同类方案
- 保持向后兼容性
主要变更:
- 后端: 更新提示词和解析逻辑支持分组JSON结构
- 前端: OutfitRecommendationList支持分组显示
- 类型: 新增分组相关TypeScript接口
- 功能: 每个分组支持'获取更多'按钮扩展方案
2025-07-28 11:26:13 +08:00
imeepos
9a764d60dc
fix: 移除QuickDirectoryButton中未使用的Settings图标导入
2025-07-25 19:05:22 +08:00
imeepos
fab29519a7
feat: 实现全局目录设置功能
...
- 添加目录设置模态框,支持管理所有导入导出的默认目录
- 实现自动记忆目录功能,可开启/关闭
- 优化目录设置开关的视觉反馈,增加明显的状态区别
- 使用统一的Modal组件替代自定义弹框,确保正确渲染到modal-root
- 在各个导入导出界面添加目录设置按钮:
* 素材导入对话框
* 模板匹配结果管理(剪影导出)
* 导出记录管理
* 批量模板导入
* 项目详情页面
* 模板管理页面
- 修改相关导出功能使用新的目录选择命令
- 创建QuickDirectoryButton组件用于快速目录选择
- 改进DirectorySettingsButton的视觉效果和交互体验
2025-07-25 19:03:00 +08:00
imeepos
7c43f7a7ed
feat: 实现全局目录设置功能
...
- 扩展AppConfig结构体,添加DirectorySettings字段
- 创建DirectorySettingsService服务,提供CRUD操作
- 添加Tauri命令接口,支持前端调用
- 修改现有文件选择逻辑,优先使用保存的目录设置
- 创建DirectorySettingsModal等UI组件
- 集成到素材导入、模板导入、剪影导出等界面
- 实现自动记忆功能,可选择是否记住路径
- 编写完整的单元测试,确保功能可靠性
功能特点:
- 支持素材导入、模板导入、剪影导出、项目导出、缩略图导出等目录设置
- 自动记忆用户选择的目录,下次使用时作为默认路径
- 提供友好的UI界面管理目录设置
- 支持批量更新、清除、重置等操作
- 完整的错误处理和验证机制
2025-07-25 18:38:50 +08:00
imeepos
05903e22fc
feat: 模板详情弹框优化和单个删除功能修复
...
- 修改模板详情弹框默认选中标签从'概览'改为'轨道'
- 修复单个模板匹配记录删除时片段使用状态未正确更新的bug
- 新增soft_delete_matching_result_with_usage_reset命令支持单个删除时重置使用状态
- 前端界面优化,提供更好的用户反馈
Changes:
- apps/desktop/src/components/template/TemplateDetailModal.tsx: 默认标签页改为tracks
- apps/desktop/src-tauri/src/business/services/template_matching_result_service.rs: 新增单个删除重置方法
- apps/desktop/src-tauri/src/presentation/commands/template_matching_result_commands.rs: 新增Tauri命令
- apps/desktop/src-tauri/src/lib.rs: 注册新命令
- apps/desktop/src/components/TemplateMatchingResultManager.tsx: 更新前端删除逻辑
2025-07-25 18:13:40 +08:00
imeepos
d259961ade
test: 添加按顺序匹配逻辑的单元测试
...
- 测试只有用户选中的分类参与匹配
- 测试权重排序逻辑(按权重降序)
- 测试分类过滤逻辑(只处理选中的分类)
- 测试匹配顺序(按权重从高到低尝试匹配)
- 测试回退机制(高权重无素材时回退到低权重)
- 测试未选中分类不参与匹配(即使有可用素材)
- 验证按顺序匹配规则的核心逻辑正确性
2025-07-25 18:01:32 +08:00
imeepos
bce0c30cab
feat: 从根本上解决权重配置问题
...
- 添加 get_segment_weights_for_categories 方法,只获取选中分类的权重
- 修改权重指示器和预览组件,使用新方法只显示实际选中的分类
- 修改权重编辑器,只加载和编辑选中分类的权重
- 确保权重配置与匹配规则完全同步
- 解决显示所有分类权重但实际只选择部分分类的根本问题
2025-07-25 17:47:45 +08:00
imeepos
d7411de33d
fix: 修复权重配置预览显示错误分类数量问题
...
- 修改 WeightPreviewTooltip 组件,只显示实际选中的分类权重
- 对于非按顺序匹配规则,不显示权重预览信息
- 确保权重指示器和预览提示都显示正确的分类数量
- 解决选择2个分类却显示4个分类的问题
2025-07-25 17:42:43 +08:00
imeepos
6c44d31666
debug: 添加权重指示器调试信息
...
- 在 SegmentWeightIndicator 中添加控制台日志
- 调试匹配规则识别和权重过滤逻辑
- 帮助定位分类数量显示错误的根本原因
2025-07-25 17:40:33 +08:00
imeepos
7fdd95bbb4
feat: 实现实时权重编辑和精确保存功能
...
- 选中分类后右侧权重立即变为可编辑输入框
- 保存时只保存选中分类的权重,删除未选中分类的记录
- 简化UI,移除重复的权重配置区域
- 优化用户体验,权重编辑更直观便捷
2025-07-25 17:35:17 +08:00
imeepos
076878287d
fix: 修复权重指示器显示错误的分类数量问题
...
- 修改 SegmentWeightIndicator 只统计实际选择的分类数量
- 对于按顺序匹配规则,只显示用户选择的分类权重统计
- 传递 segmentMatchingRule 参数以获取准确的分类选择信息
- 解决显示'4 分类'但实际只选择2个分类的问题
2025-07-25 17:30:40 +08:00
imeepos
68124b92e9
feat: 在按顺序匹配规则编辑器中集成权重配置功能
2025-07-25 17:25:52 +08:00
imeepos
7a5859e424
fix: 修复前端AiClassificationService方法调用错误
...
- 将getAllAiClassifications()调用修正为getAllClassifications()
- 修复导入路径从ai-classification改为aiClassification
- 更新所有相关组件和测试文件
- 解决'AiClassificationService.getAllAiClassifications is not a function'错误
2025-07-25 17:09:09 +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
8a74a14970
feat: 修复素材查看功能并添加详情模态框
...
修复问题:
- 修复点击查看/查看详情按钮没有反应的问题
- 完善素材选择回调处理逻辑
新增功能:
- 创建MaterialDetailModal组件,提供完整的素材详情展示
- 支持素材图片查看、下载、分享、收藏功能
- 显示完整的素材信息:基本信息、环境标签、产品详情
- 美观的模态框设计,包含操作按钮和详细信息
UI优化:
- 高质量的素材详情界面设计
- 支持图片加载状态和错误处理
- 评分标识和AI推荐标识
- 颜色信息可视化显示
- 响应式布局适配
交互改进:
- 点击查看按钮现在会打开详情模态框
- 支持在新窗口打开原图
- 支持下载和分享功能
- 收藏状态管理
现在用户可以正常查看素材详情了!
2025-07-25 15:53:19 +08:00
imeepos
99763ebefb
feat: 优化素材库检索列表视图显示效果
...
列表视图重新设计:
- 采用水平布局:左侧缩略图 + 中间内容 + 右侧操作
- 紧凑的20x20图片尺寸,保持清晰度
- 优化信息层次:标题、描述、标签分层显示
- 右侧操作区域:颜色指示器 + 查看按钮 + 时间
交互优化:
- 悬停效果:图片缩放、背景渐变、阴影变化
- 评分标识移至图片右上角
- AI推荐标识在悬停时显示
- 标签数量限制和省略显示
布局改进:
- 列表项间距调整为3px,更紧凑
- 移除不必要的flex样式冲突
- 保持网格视图原有的卡片布局
- 响应式设计适配不同屏幕尺寸
现在列表视图更加美观实用,信息密度合理!
2025-07-25 15:48:27 +08:00
imeepos
74c20f7e7b
feat: 实现素材库检索的高级设置和视图切换功能
...
新增功能:
- 高级设置面板:相关性阈值、最大结果数量、包含信息选项
- 视图切换:网格视图和列表视图切换
- 环境标签和服装类别快速过滤器
- 设置重置和应用功能
UI改进:
- 设置按钮现在可以展开/收起高级设置面板
- 视图切换按钮支持网格和列表两种显示模式
- 列表视图使用紧凑布局,网格视图保持卡片布局
- 添加悬停效果和状态指示
交互优化:
- 设置面板包含完整的搜索配置选项
- 视图模式状态管理和动态样式切换
- 响应式布局适配不同屏幕尺寸
2025-07-25 15:45:08 +08:00
imeepos
3adc1355b6
feat: 将顶部导航穿搭页面替换为AI穿搭方案推荐
...
- 路由从 /fashion-chat 改为 /outfit
- 指向 OutfitRecommendationTool 页面
- 修复导航激活冲突问题
- 更新描述为AI穿搭方案推荐与素材检索
2025-07-25 15:40:41 +08:00
imeepos
5d198c9909
fix: 完善素材库检索功能的vertex搜索逻辑
...
修复内容:
- 使用现有的outfit_search_commands中的execute_vertex_ai_search服务
- 删除重复的vertex搜索实现代码
- 将convert_vertex_response_to_search_results函数设为公共
- 简化material_search_commands,直接复用现有服务
现在素材检索功能可以正确调用Google VET API进行搜索
编译通过,功能完整可用
2025-07-25 15:28:42 +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
8f88ace388
feat: 创建简洁美观的AI服装分析展示组件
...
主要功能:
1. 新增SimpleAnalysisDisplay组件:
- 简洁美观的分析结果展示
- HSV颜色转十六进制显示
- 产品分类图标和风格标签
- 匹配度进度条可视化
2. 修改EnrichedAnalysisDemo页面:
- 移除复杂的丰富分析功能
- 直接展示原始AI分析结果
- 使用convertFileSrc修复图片预览
- 简化操作流程和界面
3. 展示内容包括:
- 整体风格描述
- 拍摄环境标签
- 主色调色块展示
- 服装单品详细分析
- 颜色匹配度可视化
4. 界面优化:
- 响应式网格布局
- 渐变背景和圆角设计
- 图标和色彩搭配
- 清晰的信息层级
现在可以美观地展示真实的AI分析结果!
2025-07-25 14:40:48 +08:00
imeepos
7fb17ea16b
fix: 修复智能服装搜索分页功能
...
主要修复:
1. 修复分页按钮点击无效问题:
- handleSearch函数支持指定页码参数
- 分页按钮点击时传递正确的页码
- 解决了setState异步导致的页码不同步问题
2. 修复函数签名问题:
- 搜索按钮使用() => handleSearch()调用
- 分页按钮使用handleSearch(newPage)传递页码
3. 分页逻辑优化:
- 上一页:setCurrentPage(newPage) + handleSearch(newPage)
- 下一页:setCurrentPage(newPage) + handleSearch(newPage)
- 确保页码状态和搜索请求同步
测试结果:
分页按钮现在可以正常点击
搜索请求包含正确的page_offset参数
分页状态与搜索请求保持同步
分页功能现在完全正常工作!
2025-07-25 13:59:09 +08:00
imeepos
c8a99606e6
fix: 成功修复智能服装搜索功能!
...
关键修复:
1. 修复API端点:从engines改为dataStores,解决404错误
2. 添加详细调试日志:完整的请求和响应信息
3. 降低相关性阈值:提高搜索结果数量
4. 简化过滤器逻辑:优先使用类别过滤
测试结果:
API调用成功,返回9个搜索结果
数据解析完整,包含产品信息、图片URL、分类等
URL转换正常,GCS路径转换为HTTPS URL
搜索功能完全正常工作
搜索结果包含:白色高定连衣裙、亮粉色长裙、黑色蕾丝连体衣、
银色亮片长裙、各种晚礼服等时尚服装数据。
智能服装搜索功能现在可以正常使用!
2025-07-25 13:55:18 +08:00
imeepos
834408addf
debug: 添加详细调试日志并修复API端点
...
主要修改:
1. 添加完整的API请求和响应调试日志
2. 修复API端点:从engines改为dataStores(符合Google Cloud文档)
3. 修正配置字段名:使用data_store_id而不是vertex_ai_data_store_id
这些修改将帮助我们:
- 查看实际发送的请求格式
- 查看API返回的响应结构
- 使用正确的Vertex AI Search API端点
下一步可以通过日志分析为什么搜索结果为0。
2025-07-25 13:45:09 +08:00
imeepos
0a9e7d4539
fix: 完成智能服装搜索功能编译错误修复
...
主要修复:
1. 修复RelevanceThreshold枚举匹配问题,移除不存在的Unspecified变体
2. 修复SearchConfig类型导入问题,使用完整路径引用
3. 修复to_string()调用问题,改用to_owned()
4. 修复未使用变量警告,添加下划线前缀
5. 清理编译缓存,确保所有修改生效
现在应用可以成功编译和启动,智能服装搜索功能已准备好进行测试。
下一步需要测试搜索功能是否能正确调用Vertex AI Search API并返回结果。
2025-07-25 13:41:27 +08:00
imeepos
798b5a2007
fix: 修复智能服装搜索功能的搜索结果为空问题
...
主要修复:
1. 添加相关性阈值到搜索请求(参考Python实现)
2. 简化过滤器构建逻辑,使其更接近Python实现
3. 修复SearchConfig导入问题
4. 修复RelevanceThreshold的字符串转换问题
5. 优化前端搜索配置,启用调试模式查看详细信息
对比Python实现发现的关键差异:
- Python使用relevanceThreshold字段,Rust之前注释说不支持
- Python使用简单的过滤器字符串,Rust使用了复杂的过滤器构建
- 需要正确的API参数格式匹配
2025-07-25 13:33:30 +08:00
imeepos
30236d5875
feat: 实现智能服装搜索工具
...
- 基于 promptx/outfit-match/src/outfit_match/frontend/search.py 设计
- 实现双列布局:左侧结果展示,右侧搜索控制面板
- 支持图像上传和AI解析功能
- 集成高级过滤器:环境标签、产品类别、相关性阈值
- 添加分页支持和搜索结果展示
- 集成LLM智能问答功能
- 遵循Tauri开发规范和UI/UX设计标准
- 添加到工具页面路由和导航
2025-07-25 13:19:21 +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
2b209e5ad2
feat: integrate advanced filter components into tools
...
- Applied AdvancedFilterPanel to SimilaritySearchTool
* Added advanced filter state management
* Extended SimilaritySearchPanelProps with filter controls
* Added toggle button for advanced filters in search panel
* Integrated filter configuration with search functionality
- Created AdvancedFilterTool for convenient tools
* New tool page wrapping AdvancedFilterDemo component
* Added to tools data configuration with proper metadata
* Integrated into routing system and navigation
* Categorized as development tool with beta status
- Enhanced SimilaritySearchPanel UI
* Added advanced filter toggle button with elegant design
* Implemented proper state management for filter visibility
* Added visual indicators and smooth animations
* Follows promptx/frontend-developer UI/UX standards
Both integrations are complete and functional.
2025-07-25 12:40:11 +08:00
imeepos
3116a4e7f0
feat: implement advanced filter UI components
...
- Created comprehensive AdvancedFilterPanel with tabbed interface
- Added CategoryFilterSelector with search and custom category support
- Implemented EnvironmentTagSelector with grouped environment options
- Built DesignStyleSelector with category-specific style management
- Created ColorDetectionFilter with HSV color picker and threshold controls
- Added AdvancedFilterDemo for testing and demonstration
- Integrated new components into OutfitSearchPanel
- Added proper component exports and TypeScript support
- Follows promptx/frontend-developer UI/UX standards
- Includes elegant animations, hover effects, and responsive design
All advanced filter UI components are now complete and functional.
2025-07-25 11:44:39 +08:00
imeepos
c6e02e0b36
feat: implement enhanced search filter system based on Python reference
...
- Enhanced SearchFilterBuilder with complex nested filter logic
- Added support for category-specific filtering with proper AND/OR logic
- Implemented enhanced query building with keyword integration
- Added comprehensive configuration validation and debugging
- Extended SearchConfig with debug mode, custom filters, and query enhancement
- Updated frontend components with debug options and advanced settings
- Added comprehensive unit tests for all new functionality
- Fixed compilation issues and ensured all tests pass
Follows promptx/tauri-desktop-app-expert development specifications
2025-07-25 11:26:06 +08:00
imeepos
722b141d22
refactor: 优化AI穿搭方案推荐功能代码结构
...
- 重构穿搭方案数据模型,简化结构
- 优化前端组件代码,提升可维护性
- 改进服务层实现,增强错误处理
- 统一代码风格和注释规范
- 修复潜在的类型安全问题
技术改进:
- 简化OutfitRecommendation数据结构
- 优化组件渲染性能
- 改进错误边界处理
- 统一导入导出规范
- 增强代码可读性
2025-07-25 11:04:51 +08:00
imeepos
f1fd62b59b
feat: 创建AI穿搭方案推荐小工具
...
- 新增独立的AI穿搭方案推荐工具页面
- 集成到便捷工具列表中,提供完整的工具体验
- 支持高级设置:风格选择、场合匹配、季节偏好等
- 实现结果导出和复制功能
- 优化用户界面和交互体验
- 添加使用提示和帮助信息
功能特点:
- 简洁易用的输入界面
- 可折叠的高级设置选项
- 实时生成个性化穿搭方案
- 支持JSON格式导出结果
- 一键复制穿搭建议文本
- 响应式设计,适配不同屏幕尺寸
2025-07-25 10:53:35 +08:00
imeepos
c4bb073507
feat: 实现AI穿搭方案推荐功能
...
- 新增穿搭方案推荐数据模型和类型定义
- 实现基于TikTok视觉趋势的Gemini AI穿搭方案生成
- 创建穿搭方案卡片和列表展示组件
- 集成Sparkles图标点击触发穿搭方案生成
- 实现穿搭方案到场景检索的无缝集成
- 添加完整的前后端API和服务层
- 遵循promptx开发规范和设计系统标准
功能特点:
- 基于用户输入关键词生成个性化穿搭推荐
- 包含色彩搭配、风格标签、场景建议等详细信息
- 提供TikTok优化建议和拍摄技巧
- 支持一键场景检索功能
- 美观的卡片式展示界面
- 完整的加载状态和错误处理
2025-07-25 10:38:11 +08:00
imeepos
9d1f962853
fix: 修复 Tauri 构建时的 TypeScript 编译错误
...
- 移除 SimilaritySearchResults.tsx 中未使用的 Clock 导入
- 移除 SimilaritySearchTool.tsx 中未使用的导入:Sparkles, Download, CustomSelect
- 移除未使用的变量:setThreshold, quickSearch
- 移除未使用的函数:handleQuickTagClick
- 修复所有 TypeScript 编译错误,确保 pnpm run tauri:build 成功执行
2025-07-24 17:37:17 +08:00
imeepos
1c409c9ef2
fix: 修复批量缩略图生成器按钮图标变形问题
...
- 修正按钮类名,使用 'btn btn-primary' 而不是 'btn-primary'
- 确保按钮继承基础 .btn 类的布局样式(inline-flex, items-center, gap-2)
- 修复选择文件夹、开始生成、扫描并生成按钮的图标显示问题
- 移除重复的 flex items-center gap-2 类,使用 CSS 中定义的样式
2025-07-24 17:25:41 +08:00
imeepos
93a6317052
fix: 修复批量缩略图生成器白屏问题和屏幕适配权限错误
...
- 启用批量缩略图生成器路由,取消注释导入和路由配置
- 添加窗口大小调整相关权限到 Tauri capabilities 配置
- 修复屏幕适配服务的权限问题,添加 core🪟 allow-set-size 等权限
- 解决批量缩略图生成器页面无法访问的白屏问题
2025-07-24 17:17:32 +08:00
imeepos
cf7b11d358
fix: 修复批量缩略图生成器白屏问题和屏幕适配权限错误
...
- 启用批量缩略图生成器路由,取消注释导入和路由配置
- 添加窗口大小调整相关权限到 Tauri capabilities 配置
- 修复屏幕适配服务的权限问题,添加 core🪟 allow-set-size 等权限
- 解决批量缩略图生成器页面无法访问的白屏问题
2025-07-24 17:16:47 +08:00
imeepos
81c16d29e5
fix: 修复相似度检索卡片悬停效果层拦截点击事件的问题
...
- 在SimilaritySearchCard悬停效果层添加pointer-events-none,让点击事件穿透
- 修复外部链接按钮无法点击的问题
- 优化SimilaritySearchPanel布局为垂直排列
2025-07-24 16:48:41 +08:00
imeepos
90aa401059
fix: 修复相似度检索工具事件冒泡问题和Rust编译错误
...
- 修复SimilaritySearchCard中外部链接按钮点击时触发卡片选择的事件冒泡问题
- 增强外部链接按钮事件处理,添加preventDefault和stopPropagation
- 改进卡片点击事件处理,检查点击目标避免按钮触发卡片选择
- 修复outfit_search_commands.rs中的lifetime错误,重构描述字段解析逻辑
- 移除相关性阈值过滤逻辑,返回所有搜索结果
- 优化相似度检索工具UI布局和详情模态框功能
- 添加详细的搜索结果展示和外部链接处理功能
2025-07-24 16:45:57 +08:00
imeepos
f859bb5322
fix: outfit search
2025-07-24 16:03:23 +08:00
imeepos
dadd13721e
fix: 修复检索逻辑
2025-07-24 16:01:36 +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
ef2a561fe2
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:21:47 +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
d935dca4e7
实现真实的服装搜索逻辑,直接调用 Google Vertex AI Search API
...
- 实现 execute_vertex_ai_search 函数,直接调用 Vertex AI Search API
- 添加 get_google_access_token 函数获取访问令牌
- 实现 convert_vertex_response_to_search_results 转换响应格式
- 添加 parse_vertex_result_to_search_result 解析单个搜索结果
- 添加 parse_vertex_product_info 解析产品信息
- 支持搜索过滤器和相关性阈值
- 添加搜索功能的单元测试
- 修复多个编译警告,移除未使用的导入和变量
2025-07-24 13:52:00 +08:00
imeepos
6d86cea892
feat: 优化RAG检索配置以增加知识库数据量
...
- 修复Vertex AI Search配置,移除不支持的API字段
- 优化system prompt以更好地利用检索信息
- 添加查询增强功能,通过关键词扩展提高检索效果
- 新增RagConfigOptimizer工具类,支持多种优化场景
- 新增RagConfigManager组件,提供可视化配置管理
- 保留客户端配置字段用于未来扩展
- 添加详细的使用示例和文档
主要改进:
1. 解决了API 400错误问题
2. 通过查询优化间接增加检索相关性
3. 提供了完整的配置管理解决方案
4. 支持场景化的RAG配置优化
2025-07-24 12:46:00 +08:00
imeepos
2fe211adb2
feat: 优化增强型Markdown渲染器和聊天消息组件
...
更新内容:
- 优化EnhancedMarkdownRenderer.tsx渲染逻辑
- 改进EnhancedChatMessageV2.tsx消息显示组件
- 提升Markdown内容的渲染质量和性能
- 优化聊天消息的展示效果和用户体验
功能改进:
- 更好的代码块语法高亮
- 优化表格和列表的渲染效果
- 改进响应式布局适配
- 提升组件的可读性和维护性
这些更新提升了聊天界面的整体显示效果和用户体验
2025-07-23 21:19:46 +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
63014471b4
refactor: 优化导航栏布局和命名
...
UI优化:
- 简化导航栏菜单名称,提升用户体验
* 项目管理 项目
* 模特管理 模特
* 模板管理 模板
* 素材绑定 素材
* AI分类设置 分类
* 服装搭配 穿搭
* 便捷工具 工具
布局调整:
- 优化导航栏间距和内边距,更加紧凑
- 调整主容器滚动区域到main元素
- 减少导航项之间的间距(space-x-4 space-x-2)
- 优化内边距(px-3 px-2, ml-10 ml-4)
代码清理:
- 移除未使用的CogIcon导入
- 移除应用设置相关的导航项
这些调整让导航栏更加简洁明了,提升了界面的整体美观度
2025-07-23 21:04:23 +08:00
imeepos
230436240d
refactor: 调整UI布局和窗口配置
...
调整内容:
- 恢复窗口尺寸为1200x900,保持原有的显示效果
- 移除屏幕适配设置页面,简化应用结构
- 优化主容器滚动样式,添加smooth-scroll效果
- 移除AI分类设置页面的高度限制,改善内容显示
UI优化:
- 主容器添加overflow-y-auto和smooth-scroll
- AI分类设置页面移除max-h限制,提升用户体验
- 保持原有的响应式布局和间距设计
这些调整确保了应用在标准屏幕上的最佳显示效果
2025-07-23 20:58:39 +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
0cfacd0662
feat: 实现模板匹配按顺序匹配功能
...
新功能:
- 添加AI分类权重字段,支持按权重顺序匹配
- 新增PriorityOrder匹配规则类型
- 实现按权重顺序的素材匹配算法
- 添加权重编辑器UI组件
数据模型扩展:
- AiClassification模型添加weight字段
- SegmentMatchingRule枚举添加PriorityOrder类型
- 扩展相关的请求和响应类型定义
数据库迁移:
- 创建019迁移脚本为ai_classifications表添加weight字段
- 为现有数据设置默认权重值
- 添加权重索引提高查询性能
后端服务实现:
- MaterialMatchingService支持按顺序匹配逻辑
- AiClassificationService添加按权重获取分类方法
- 更新所有相关的构造函数和命令处理
前端UI优化:
- SegmentMatchingRuleEditor支持按顺序匹配配置
- 新增WeightEditor组件用于权重设置
- AI分类设置页面集成权重编辑功能
- 更新TypeScript类型定义
测试验证:
- 添加完整的单元测试套件
- 6个测试用例全部通过
- 验证权重排序和匹配规则逻辑
遵循promptx/tauri-desktop-app-expert开发规范
支持用户自定义分类权重,实现智能按顺序匹配
2025-07-23 20:28:36 +08:00
imeepos
de620447b4
feat: 实现批量素材导入功能
...
新功能:
- 支持同时处理多个素材文件的批量导入
- 添加可配置的最大并发导入数量(1-8个)
- 实现基于系统资源的动态并发调整
- 添加内存监控和熔断器保护机制
技术改进:
- 重构material_commands.rs支持并发处理
- 优化MaterialRepository使用连接池
- 添加指数退避重试机制
- 实现智能资源管理和性能优化
前端优化:
- 更新MaterialImportDialog添加并发配置
- 保持原有进度显示和状态管理
- 更新TypeScript类型定义
测试:
- 添加完整的批量导入测试套件
- 7个测试用例全部通过
- 验证并发处理和资源管理功能
依赖更新:
- 添加num_cpus和winapi依赖
- 支持Windows系统内存检测
遵循promptx/tauri-desktop-app-expert开发规范
理论性能提升2-4倍,支持高并发稳定处理
2025-07-23 19:44:07 +08:00
imeepos
f10633f64d
fix: 创建material_usage_records表修复素材片段使用状态跟踪
...
- 创建material_usage_records表存储素材使用记录 (v18)
- 添加相关索引优化查询性能
- 修复模板匹配应用后片段管理显示'已使用为0'的问题
- 支持素材片段使用状态的正确跟踪和更新
现在点击'应用匹配结果'后,对应的素材片段会正确标记为已使用状态。
2025-07-23 19:11:30 +08:00
imeepos
a39cc1a12d
fix: 添加matching_segment_results表支持模板匹配详细结果
...
- 创建matching_segment_results表存储成功匹配的片段详情 (v17)
- 创建matching_failed_segment_results表存储失败匹配的片段信息
- 添加相关索引优化查询性能
- 修复'no such table: matching_segment_results'错误
现在模板匹配功能可以正常保存和查询详细的片段匹配结果。
2025-07-23 19:03:05 +08:00
imeepos
d1448f7073
fix: 修复数据库表结构问题并添加默认AI分类数据
...
- 修复video_classification_records表结构,添加缺失字段 (v10)
- 修复template_matching_results表结构,添加缺失字段 (v11)
- 创建video_classification_tasks表 (v12)
- 创建export_records表 (v13)
- 创建project_template_bindings表 (v14)
- 添加默认AI分类数据:全身、上半身、中段特写、下半身 (v15)
- 修复AI分类表中的日期时间格式问题 (v16)
解决了所有'no such table'和'no such column'错误,
现在应用程序可以正常使用所有功能模块。
2025-07-23 19:00:13 +08:00
imeepos
4291230acb
fix: 修复React渲染错误和数据库迁移问题
...
- 修复ModelDetail.tsx中直接渲染Gender枚举导致的React错误
- 修复TemplateDetailModal.tsx中直接渲染TemplateMaterialType和TrackType枚举的问题
- 添加枚举到中文文本的转换函数(getGenderText, getMaterialTypeText, getTrackTypeText)
- 实现完整的数据库迁移系统,支持版本化迁移
- 添加迁移v9修复template_materials表file_size字段允许NULL
- 改进数据库迁移执行逻辑,使用execute_batch方法
- 添加数据库集成测试和迁移测试
- 修复template_materials表约束问题,解决模板导入失败
主要变更:
- 新增数据库迁移系统(migrations.rs)
- 新增9个数据库迁移文件(v1-v9)
- 修复前端枚举渲染问题
- 完善数据库测试覆盖
2025-07-23 18:30:52 +08:00
imeepos
b5bf049371
fix: build error
2025-07-23 13:56:55 +08:00
imeepos
cef2842811
fix: image
2025-07-23 13:55:40 +08:00
imeepos
4269b72c04
feat: 实现批量缩略图生成器功能
...
- 添加批量缩略图生成的数据模型和类型定义
- 实现ThumbnailGeneratorService核心服务
- 实现BatchThumbnailProcessor批量处理器
- 添加Tauri命令接口支持前端调用
- 创建完整的前端UI组件和页面
- 支持多种时间戳配置和尺寸预设
- 支持时间轴缩略图生成
- 支持并发处理和进度监控
- 集成到便捷工具页面
遵循promptx/tauri-desktop-app-expert开发规范
2025-07-23 13:44:19 +08:00
imeepos
29a4c32096
feat: 完善水印处理工具功能
...
- 修复批量处理进度条不更新问题
- 实现任务状态管理器(task_manager.rs)
- 添加实时进度更新和任务状态跟踪
- 完善前端进度轮询逻辑
- 丰富水印检测结果展示
- 添加详细检测结果信息(位置、置信度、类型等)
- 显示处理统计和性能信息
- 优化结果展示UI和用户体验
- 修复水印模板上传和删除功能
- 实现内存存储系统管理模板
- 修复参数匹配问题
- 添加模板缩略图展示功能
- 优化文件上传体验
- 使用Tauri Dialog API替代HTML5文件输入
- 实现原生文件选择器
- 添加WatermarkTemplateThumbnail组件
- 完善水印工具集成
- 创建WatermarkTool页面
- 添加到便捷工具列表
- 完善路由配置和UI展示
2025-07-23 12:51:49 +08:00
imeepos
c3cad2254c
fix: 调整大模型参数
2025-07-22 19:11:06 +08:00
imeepos
4fd6e8b0f4
fix: system 系统提示词优化
2025-07-22 18:57:48 +08:00
imeepos
dd0a4f1470
fix: system 系统提示词优化
2025-07-22 18:57:18 +08:00
imeepos
3a67bbf52a
fix: 优化markdown解析器
2025-07-22 18:40:03 +08:00
imeepos
34895c2d55
fix: 优化markdown解析器
2025-07-22 18:36:13 +08:00
imeepos
e70bf2b6c0
fix: 优化markdown解析器
2025-07-22 18:25:21 +08:00
imeepos
26518569f4
fix: 优化markdown解析器
2025-07-22 18:23:00 +08:00
imeepos
cd7e9b351d
fix: 优化markdown解析器
2025-07-22 18:15:52 +08:00
imeepos
66c737e2ed
fix: 优化markdown解析器
2025-07-22 18:13:53 +08:00
imeepos
9d3eb6d925
fix: 优化markdown解析器
2025-07-22 18:06:46 +08:00
imeepos
9a0ddb72d5
fix: 优化markdown解析器
2025-07-22 17:47:31 +08:00
imeepos
d1a2c885fb
fix: 优化markdown解析器
2025-07-22 17:35:10 +08:00
imeepos
7fcf0a1702
fix: 优化markdown解析器
2025-07-22 17:33:09 +08:00
imeepos
16ca52fa27
fix: 优化markdown解析器
2025-07-22 17:29:21 +08:00
imeepos
0a50700e4b
fix: 优化markdown解析器
2025-07-22 17:22:25 +08:00
imeepos
8f910c033e
fix: 优化markdown解析器
2025-07-22 17:15:35 +08:00
imeepos
eb9ec73889
fix: 优化markdown解析器
2025-07-22 16:43:17 +08:00
imeepos
ba2ff0a2b0
fix: 优化markdown解析器
2025-07-22 16:16:11 +08:00
imeepos
dde679fd6e
fix: markdown解析bug
2025-07-22 16:09:31 +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
31d97834dc
fix: markdown render
2025-07-22 13:53:25 +08:00
imeepos
98254ddc09
fix: 优化界面展 及引用关系
2025-07-22 13:35:18 +08:00
imeepos
cb5a137ec9
fix: 添加文字图片关联关系
2025-07-22 12:21:39 +08:00
imeepos
e6d54e44aa
fix: remove test error
2025-07-22 11:46:04 +08:00
imeepos
730b0f32b5
fix: 修复历史消息总是0的问题
...
- 添加ensure_session_exists方法确保会话在保存消息前存在
- 修复会话ID不匹配导致的历史消息丢失问题
- 在保存消息前自动创建会话,使用前端传递的session_id
- 添加详细的调试日志跟踪会话创建和消息保存过程
- 使用INSERT OR REPLACE确保会话记录的正确性
问题原因:
- 前端传递的session_id与数据库中的会话ID不匹配
- 消息保存时会话不存在,导致外键约束失败
- 历史查询时找不到对应的会话,返回空结果
现在多轮对话应该能正确保存和加载历史消息了
2025-07-22 11:32:53 +08:00
imeepos
4293fbb4c7
fix: 重构ConversationRepository使用只读连接避免锁竞争
...
- 修改ConversationRepository使用Database而不是直接的连接
- 为读操作使用专用只读连接,避免与写操作的锁竞争
- 实现非阻塞连接获取,避免查询卡住问题
- 添加连接获取失败时的降级处理
- 优化数据库访问性能,提高并发能力
核心改进:
✅ 只读连接 - 查询操作使用专用只读连接
✅ 非阻塞获取 - 使用try_get_read_connection避免阻塞
✅ 降级处理 - 连接不可用时返回默认值而不是阻塞
✅ 性能优化 - 减少锁竞争,提高并发性能
✅ 错误恢复 - 连接问题时的优雅降级
这应该解决多轮RAG查询卡在get_conversation_history的问题
2025-07-22 11:26:48 +08:00
imeepos
dca2c15bb9
fix: 修复多轮RAG查询卡住问题
2025-07-22 11:16:30 +08:00
imeepos
35b7a489c2
debug: 添加详细调试日志定位多轮RAG查询卡住问题
2025-07-22 11:09:15 +08:00
imeepos
25eaed89d8
fix: 打开多轮会话开关
2025-07-22 11:02:30 +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
8b92cc130c
feat: 完善多轮对话功能实现
...
- 修复编译错误和类型问题
- 添加完整的单元测试套件
- 创建多轮对话测试组件和页面
- 添加详细的功能文档和使用说明
- 优化错误处理和类型安全
- 遵循promptx开发规范的完整实现
功能特性:
多轮对话支持 - 历史消息传递和上下文保持
会话管理 - session_id管理和生命周期控制
数据持久化 - 完整的会话历史存储
类型安全 - 完整的TypeScript类型定义
测试覆盖 - 单元测试和集成测试
文档完善 - 详细的实现文档和使用指南
2025-07-22 10:43:36 +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
317b9bb8b2
fix: add system prompt
2025-07-22 10:18:40 +08:00
imeepos
f467b215b5
fix: build error
2025-07-21 23:47:20 +08:00
imeepos
343688af56
chore: bump version to 0.2.1
2025-07-21 23:43:20 +08:00
imeepos
94e9f74b15
feat: 完善聊天界面功能和用户体验
...
界面优化:
- 修复页面头部信息重复问题,统一为时尚穿搭顾问
- 优化欢迎界面布局,移除重复标题
- 调整标签激活状态样式,使其更加subtle和优雅
标签系统增强:
- 实现卡片标签与底部工具栏标签完美同步
- 修复标签选中状态的实时更新问题
- 添加气泡卡片展示所有标签详情
- 优化标签折叠功能,默认隐藏,一行布局
功能完善:
- 修复输入框和发送按钮对齐问题
- 优化聊天输入框固定到底部
- 将弹框改为更优雅的气泡卡片消息
- 生成搜索和清空按钮移到外层,始终可见
导航优化:
- 服装搭配导航直接链接到AI智能聊天
- 配置独立路由避免与便捷工具冲突
- 移除原有的服装搭配页面和路由
用户体验:
- 标签选中状态双向同步更新
- 气泡卡片支持标签选择和实时反馈
- 优化加载状态显示和错误处理
- 完善的视觉反馈和交互动画
2025-07-21 23:35:04 +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
70e8669ace
refactor: 移除模板匹配中的日志并增强死循环防护
...
优化内容:
1. 移除所有println!和eprintln!日志输出,提升性能
2. 增强批量匹配的死循环防护机制:
- 添加实质性进展检测(检查是否新增已使用片段)
- 如果本轮虽有成功匹配但无实质性进展,则终止循环
- 防止部分匹配成功但不消耗新素材的无效循环
死循环防护机制:
- 原有:本轮无成功匹配时终止
- 原有:最大轮数限制(100轮)
- 原有:预检查机制(每5轮检查模板可匹配性)
- 新增:实质性进展检测,防止无效循环
这确保了批量匹配在各种边界情况下都能正确终止,避免无限循环。
2025-07-21 19:52:05 +08:00
imeepos
5ae7874792
fix: 修正文件名序号001全局限制逻辑
...
修复问题:
- 将序号001限制从仅针对FilenameSequence规则改为全局限制
- 现在所有匹配规则(AiClassification、RandomMatch、FilenameSequence)都会遵守序号001限制
- 在单个模板匹配过程中,最多只能使用一个文件名以001结尾的视频文件
实现细节:
1. 在match_single_segment方法开始时检查模板是否已使用序号001视频
2. 将此状态传递给所有匹配方法
3. 在每个匹配方法的过滤逻辑中应用序号001限制
4. 统一的过滤逻辑确保一致性
这确保了无论使用哪种匹配规则,都不会在同一个模板中使用多个序号001的视频文件。
2025-07-21 19:24:58 +08:00
imeepos
856d0b1055
fix: 修复匹配记录批量删除功能
...
- 修复 DeleteConfirmDialog 组件中确认按钮缺少 onClick 事件处理
- 修复 props 解构中缺少 onConfirm 参数的问题
- 修复文件名序号001匹配限制逻辑,确保单个模板匹配过程中只能使用一个序号001的视频
问题原因:
1. DeleteConfirmDialog 确认按钮没有绑定 onConfirm 回调函数
2. 组件 props 解构时遗漏了 onConfirm 参数
3. 序号001限制逻辑在模板匹配过程中的检查时机不正确
2025-07-21 19:18:18 +08:00
imeepos
5091493a8c
feat: 添加文件名序号匹配规则功能
...
- 新增 FilenameUtils 工具类,支持从文件名中提取3位数字序号
- 扩展 SegmentMatchingRule 枚举,添加 FilenameSequence 匹配规则
- 在 MaterialMatchingService 中实现基于文件名序号的匹配逻辑
- 确保每个模板只能使用一个序号为001的视频文件
- 添加全面的单元测试和集成测试
- 支持多种文件名格式:name_001.ext, 001_name.ext, name001.ext 等
遵循 promptx/tauri-desktop-app-expert 开发规范
2025-07-21 19:01:01 +08:00
imeepos
8dfdf36a47
feat: 添加YAML智能解析支持
2025-07-21 18:35:35 +08:00
imeepos
a8ed7ed007
feat: 添加YAML智能解析支持到容错JSON解析器
...
修复tolerant_json_parser无法处理retrievedContext.text中YAML结构的问题
新增process_yaml_in_json_value方法,递归检查JSON字符串字段中的YAML内容
即使标准JSON解析成功,也会自动检测并解析YAML字符串字段
添加YamlStringParsing恢复策略,提供详细的解析统计信息
更新前端功能特性描述,添加YAML支持说明
新增完整的测试用例验证YAML解析功能
支持复杂的YAML嵌套结构、数组和对象解析
遵循promptx/tauri-desktop-app-expert开发规范
2025-07-21 18:35:21 +08:00
imeepos
a8c8f2a085
fix: 修复TolerantJsonParser嵌套JSON解析问题
...
问题描述:
- TolerantJsonParser在处理复杂嵌套JSON时只能提取部分内容
- 原因是正则表达式模式无法正确匹配嵌套的JSON对象
- 导致Gemini API响应解析不完整,输出长度异常缩短
修复内容:
- 改进JSON对象和数组的正则表达式模式
- 添加手动括号匹配算法作为主要提取方法
- 实现字符串内容的正确处理,避免字符串中的括号干扰
- 优化JSON内容提取逻辑,优先使用最可靠的方法
- 添加comprehensive测试用例验证修复效果
测试结果:
- 复杂嵌套JSON解析测试通过
- 括号匹配算法测试通过
- 字符串处理测试通过
2025-07-21 17:18:28 +08:00
imeepos
906bea49f0
feat: 重构工具页面为卡片列表展示
...
- 创建工具卡片数据结构和类型定义
- 实现ToolCard组件,支持差异化图标和现代化设计
- 重构Tools页面为卡片列表布局,使用CardGrid组件
- 创建独立的工具详情页面:
- DataCleaningTool: AI检索图片/数据清洗工具
- JsonParserTool: 容错JSON解析器工具
- DebugPanelTool: JSON解析器调试面板工具
- 添加工具详情页面路由配置
- 优化UI/UX设计,遵循promptx/frontend-developer规范
- 支持搜索、分类筛选、新功能/热门工具筛选
- 实现响应式设计和现代化交互效果
2025-07-21 16:58:55 +08:00
imeepos
764b4d7420
fix: build error
2025-07-21 15:29:31 +08:00
imeepos
e9e5837a1f
feat: 升级Gemini服务使用TolerantJsonParser进行JSON解析
...
- 集成tolerant_json_parser.rs到GeminiService中
- 替换原有的正则匹配JSON提取逻辑
- 使用Arc<Mutex<TolerantJsonParser>>支持Clone trait
- 改进错误处理和日志输出,包含解析统计信息
- 添加回退机制,当TolerantJsonParser失败时使用传统方法
- 更新所有GeminiService::new()调用点处理Result返回类型
- 添加全面的测试用例验证新的JSON解析逻辑
- 保持API向后兼容性,方法签名不变
遵循promptx/tauri-desktop-app-expert开发规范
2025-07-21 15:02:37 +08:00
imeepos
ff31a48256
fix: resolve unused assignment warning in material_matching_service
...
- Changed termination_reason from String to Option<String> to eliminate unused assignment warning
- Updated all assignments to use Some() wrapper
- Simplified default value logic using unwrap_or_else()
- Maintains same functionality while making code more idiomatic Rust
2025-07-21 14:34:53 +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
6c795a5ddf
fix: 修复Rust编译警告,优化代码质量
...
主要修复:
- 修复snake_case命名规范问题:projectId -> project_id, templateId -> template_id
- 移除未使用的导入:std::sync::Arc
- 修复未使用变量参数:添加下划线前缀标记
- 修复未使用的错误变量:在map_err闭包中使用_e前缀
修复的警告类型:
- unused_imports: 移除未使用的导入
- unused_variables: 标记未使用的参数
- non_snake_case: 修复命名规范
- 将警告数量从29个减少到10个
剩余的10个警告主要是为未来功能预留的死代码,属于正常情况。
2025-07-21 13:57:09 +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
1a76bf6c82
feat: 实现基于Tree-sitter的容错JSON解析器
...
- 添加TolerantJsonParser核心解析器,支持多种错误恢复策略
- 实现CachedTolerantJsonParser带缓存的解析器,提升性能
- 支持Markdown代码块提取、无引号键、尾随逗号等容错功能
- 添加完整的Tauri命令接口,支持前端调用
- 包含全面的单元测试和集成测试
- 提供详细的API文档和使用示例
主要功能:
- 标准JSON解析、手动修复、正则提取、部分解析等恢复策略
- 支持处理大模型返回的不规范JSON数据
- 内置缓存机制,支持高频解析场景
- 详细的解析统计信息和错误报告
- 遵循Tauri开发规范的分层架构设计
2025-07-21 13:27:19 +08:00
imeepos
e7b48d0a7d
优化Modal弹框布局和尺寸控制
...
- 修复Modal组件尺寸类冲突问题,确保max-w-*正确生效
- 优化CreateDynamicModal表单布局,使其在小尺寸弹框中更紧凑
- 减少表单元素间距和内边距,提升视觉密度
- 优化图片预览、按钮等组件尺寸,适配sm尺寸弹框
- 移除CSS中可能干扰Tailwind尺寸类的样式设置
主要改进:
- Modal组件getSizeClasses函数优化,确保w-full和max-w-*正确配合
- CreateDynamicModal表单元素紧凑化,提升小屏幕体验
- 统一弹框尺寸控制逻辑,解决宽度限制不生效问题
2025-07-18 18:58:24 +08:00
imeepos
4da48c3281
fix: 优化动态列表和弹框UI体验
2025-07-18 18:45:13 +08:00
imeepos
da4aeaccb9
完成模特动态页面开发,移除标题和描述字段
2025-07-18 16:49:08 +08:00
imeepos
b7954497b0
chore: 发布版本 v0.2.0
...
版本更新内容:
- 更新package.json版本号至0.2.0
- 更新tauri.conf.json版本号至0.2.0
- 更新Cargo.toml版本号至0.2.0
- 添加v0.2.0版本发布说明
主要功能:
素材类型区分展示功能(图片直显、视频缩略图、音频播放)
AI分类统计数值溢出问题修复
后端API扩展和前端组件优化
安全性和性能提升
2025-07-18 14:31:49 +08:00
imeepos
82b62a4b0f
fix: 修复AI分类统计数值溢出问题
...
问题:成功分类数显示18446744073709552(接近u64最大值)
原因:错误地用分类记录总数减去失败任务数,导致负数转u64溢出
修复内容:
- 扩展ClassificationStats结构体,添加分类记录状态统计
- 改进数据库查询,正确统计各状态的分类记录数
- 修正ai_analysis_log_service中的统计计算逻辑
- 添加数值安全检查,防止负数转无符号整数
- 更新前端类型定义保持一致性
现在统计数据来源一致且逻辑正确:
- 任务统计来自video_classification_tasks表
- 分类记录统计来自video_classification_records表
2025-07-18 14:27:25 +08:00
imeepos
eb47a2b8fb
feat: 实现素材类型区分展示功能
...
- 图片素材:直接展示图片内容,支持多种格式(JPG/PNG/GIF等)
- 视频素材:展示缩略图,使用FFmpeg生成首帧
- 音频素材:提供播放控件,支持点击播放/暂停
后端改进:
- 扩展get_material_thumbnail_base64命令支持图片类型
- 新增get_audio_file_base64命令处理音频文件访问
- 自动检测文件MIME类型,安全的文件访问机制
前端改进:
- MaterialThumbnail组件重构支持三种素材类型
- 集成HTML5 Audio API实现音频播放
- 改进懒加载和缓存机制,优化性能
遵循promptx/tauri-desktop-app-expert开发规范
2025-07-18 14:20:57 +08:00
imeepos
5102923feb
feat: 添加导出到剪映成功后的数据刷新功能
...
## 功能改进
### 1. TemplateMatchingResultManager.tsx
- 在V1和V2导出成功后自动刷新匹配结果列表
- 调用loadResults()和loadStatistics()更新数据
- 确保导出记录能及时反映在界面上
### 2. ExportRecordManager.tsx
- 在重新导出成功后刷新导出记录列表
- 添加更详细的成功日志信息
## 用户体验改进
- 导出成功后无需手动刷新页面
- 数据状态实时更新,保持界面一致性
- 避免使用window.location.reload()的粗暴刷新方式
## 技术细节
- 使用现有的loadResults()和loadStatistics()方法
- 保持异步操作的错误处理机制
- 在成功提示后立即刷新数据
这样用户在导出到剪映后能立即看到最新的导出记录和状态更新。
2025-07-18 13:51:56 +08:00
imeepos
92ff1ee962
fix: 修复素材匹配时未加载片段信息的关键问题
...
## 问题根因
MaterialMatchingService中直接调用material_repo.get_by_project_id()方法,
该方法只返回素材基本信息,不包含segments字段,导致:
1. material.segments.is_empty()始终为true
2. 匹配逻辑创建虚拟片段,使用原始素材完整时长
3. 10.042秒的原始素材与1.267秒的模板片段比较,超出692.8%
## 解决方案
将所有调用material_repo.get_by_project_id()的地方改为:
MaterialService::get_project_materials()
该方法会:
1. 调用repository.get_by_project_id()获取素材基本信息
2. 为每个素材调用repository.get_segments()加载片段信息
3. 返回包含完整片段信息的素材列表
## 修改位置
1. match_materials方法 - 主要匹配逻辑
2. can_template_be_fully_matched方法 - 模板匹配检查
3. match_materials_with_used_segments方法 - 批量匹配逻辑
## 预期效果
- material.segments不再为空
- 匹配逻辑使用真实的切分片段而不是虚拟片段
- 片段时长将是合理的切分后时长(如1-5秒)而不是原始素材时长
- 时长匹配评分将更加准确
这是一个关键修复,解决了匹配逻辑的根本问题。
2025-07-18 13:48:34 +08:00
imeepos
7909a62e64
debug: 添加素材片段检查日志,确认虚拟片段问题
...
## 问题发现
从日志显示素材片段时长10.042秒,这是原始素材而不是二次切分片段。
## 添加的日志
1. **素材检查日志**:
- 素材名称和ID
- 素材片段数量
- 分类记录数量
2. **虚拟片段创建日志**:
- 当素材未切分时的警告
- 原始素材时长
- 虚拟片段的segment_id和category
- 虚拟片段时长
3. **真实片段使用日志**:
- 当素材已切分时的确认
- 真实片段的id、时长和category
## 问题分析
匹配逻辑中的问题:
- 当material.segments.is_empty()时,创建虚拟片段
- 虚拟片段使用原始素材的完整时长(如10.042秒)
- 与模板要求时长(如1.267秒)比较,导致超出692.8%
## 根本原因
素材没有被正确切分,导致匹配时使用原始素材时长而不是切分后的片段时长。
这些日志将帮助确认:
1. 素材是否被正确切分
2. 为什么会创建虚拟片段
3. 虚拟片段vs真实片段的使用情况
2025-07-18 13:45:59 +08:00
imeepos
c0ab039de9
debug: 添加时长转换和匹配的详细日志
...
## 添加的日志内容
### 1. 时长转换日志
在AI分类匹配和随机匹配方法中添加:
- 轨道片段ID和名称
- 原始时长(微秒)
- 转换后时长(秒)
- 目标分类信息
### 2. 时长匹配详细日志
在find_best_duration_match方法中添加:
- 目标时长和可选片段数量
- 每个片段的详细信息:
* 片段ID和素材名称
* 素材片段时长(秒)
* 是否满足时长要求
* 匹配评分
* 分类信息
- 最终选择的片段信息
### 3. 时长要求检查日志
在MaterialSegment的方法中添加:
- meets_duration_requirement: 显示素材时长vs要求时长的比较
- duration_match_score: 显示详细的评分计算过程
## 目的
确认单位转换是否正确:
- 模板轨道片段时长:微秒
- 素材片段时长:秒
- 转换公式:微秒 / 1,000,000 = 秒
这些日志将帮助验证时长匹配逻辑的正确性。
2025-07-18 13:40:46 +08:00
imeepos
274926182c
fix: 修复成功率计算超过100%的问题
...
## 问题分析
成功率计算逻辑有误:
- 之前的计算:matched_segments / matchable_segments (排除固定片段)
- 问题:固定片段不会被添加到matches中,但应该算作成功的片段
## 正确的成功率计算
成功率 = (成功匹配的片段数 + 固定片段数) / 总片段数
### 修复内容
1. **match_materials方法**
- 成功片段数 = matched_segments + fixed_segments_count
- 总片段数 = total_segments (包含所有片段)
- 成功率 = successful_segments / total_segments
2. **match_materials_with_used_segments方法**
- 使用相同的计算逻辑确保一致性
- 修复statistics中的total_segments字段
### 逻辑说明
- 固定片段({固定素材})总是被视为成功的,因为它们不需要匹配
- 成功匹配的片段是通过AI分类或随机匹配成功的片段
- 总成功率 = (AI匹配成功 + 固定片段) / 所有片段
## 预期效果
- 成功率将始终在0-100%范围内
- 固定片段会被正确计入成功率
- 不同匹配方法的成功率计算保持一致
2025-07-18 13:29:07 +08:00
imeepos
c5b944c4a3
fix: 修复一键匹配成功后素材片段未标记为已使用的问题
...
## 问题分析
- 单个匹配:前端会先调用save_matching_result保存匹配结果,然后额外调用create_usage_records_from_matching_result创建素材使用记录
- 一键匹配:只调用了save_matching_result保存匹配结果,但没有创建素材使用记录,导致片段管理显示已使用0
## 解决方案
在MaterialMatchingService的两个保存方法中添加创建素材使用记录的逻辑:
### 1. match_materials_and_save方法
- 在保存匹配结果成功后,自动创建素材使用记录
- 使用批量创建方法提高性能
- 失败时只记录警告,不阻断主流程
### 2. match_materials_with_used_segments方法
- 在一键匹配保存结果后,自动创建素材使用记录
- 确保一键匹配和单个匹配的行为一致
### 3. 使用记录内容
- 记录匹配分数、匹配原因、素材名称、模特名称等上下文信息
- 使用TemplateMatching类型标识使用场景
- 正确关联模板匹配结果ID
## 技术细节
- 使用create_usage_records_batch批量创建提高性能
- 在MaterialUsageRepository中自动更新素材片段的使用状态
- 保持事务一致性,确保数据完整性
- 添加详细日志便于调试和监控
## 测试验证
- 一键匹配成功后,片段管理应正确显示已使用数量
- 素材片段的is_used状态应正确更新
- 使用记录应正确保存到material_usage_records表
2025-07-18 13:24:50 +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
66ceaf3274
fix: 修复批量删除需要点击两次的问题
...
问题分析:
- 第一次点击批量删除时,onConfirm回调中使用的batchDeleteConfirm.resultIds可能因为React状态更新的异步性而被清空
- handleBatchDelete函数内部会重置batchDeleteConfirm状态,导致竞态条件
解决方案:
- 将对话框关闭逻辑从handleBatchDelete中移出
- 创建handleConfirmBatchDelete函数,在调用删除前先复制resultIds数组并立即关闭对话框
- 修复数据库查询中缺少is_exported和last_exported_at字段的问题
- 添加更好的loading状态管理和用户体验优化
修复内容:
- 修复TemplateMatchingResultRepository中SELECT语句缺少新字段的问题
- 重构批量删除的状态管理逻辑,避免竞态条件
- 添加调试日志帮助问题诊断
- 改进loading状态的视觉反馈
2025-07-18 13:03:17 +08:00
imeepos
f6041c6eea
feat: 完成模板匹配功能优化
...
- 修复重复资源使用问题:
* 修改MaterialMatchingService中的匹配算法,确保每个素材片段在一次匹配中只能被使用一次
* 添加get_classified_segments_with_exclusions方法支持额外排除片段
* 重构match_materials_with_used_segments方法正确处理全局使用状态
* 更新批量匹配逻辑使用新的匹配方法
- 添加批量删除匹配记录功能:
* 在TemplateMatchingResultService中添加批量删除方法
* 在MaterialUsageRepository中添加批量删除使用记录的方法
* 删除匹配记录时自动重置相关资源的使用状态
* 添加相应的Tauri命令和API接口
- 添加匹配记录导出状态标识:
* 在TemplateMatchingResult模型中添加is_exported和last_exported_at字段
* 更新数据库schema和仓库层支持新字段
* 在导出功能中自动更新导出状态
* 添加重置导出状态的功能
- 优化一键匹配命名逻辑:
* 改进命名规则使用模板名称+序号格式
* 为每个模板维护独立的序号计数器
* 支持自定义前缀的命名方式
- 更新前端组件支持新功能:
* 在TemplateMatchingResultManager中添加批量选择和批量删除功能
* 在TemplateMatchingResultCard中添加选择框和导出状态显示
* 添加全选/取消全选功能
* 优化UI显示导出状态标识
- 数据库迁移:
* 添加is_exported和last_exported_at字段到template_matching_results表
* 保持向后兼容性
2025-07-18 12:50:04 +08:00
imeepos
822bfe6e9c
feat: 为模板匹配片段添加缩略图功能
...
- 创建SegmentThumbnail组件,支持懒加载和缓存
- 修改TemplateMatchingResultDetailModal,集成缩略图显示
- 添加get_material_segment_by_id API命令获取片段详细信息
- 优化片段信息布局,简化显示内容(只显示片段名称和匹配原因)
- 支持通过material_segment_id获取和显示实际的片段文件名
2025-07-18 12:19:36 +08:00
imeepos
66f50a80c6
fix: 解决AI视频分类并发瓶颈问题
...
- 移除VideoClassificationService中共享的GeminiService实例
- 改为在classify_video_with_gemini方法中为每个任务创建独立的GeminiService
- 解决Arc<Mutex<GeminiService>>导致的串行处理瓶颈
- 实现真正的并发处理,提升AI分类性能
修复前:所有worker共享一个GeminiService实例,导致串行等待
修复后:每个worker使用独立的GeminiService实例,实现真正并发
2025-07-18 11:56:16 +08:00
imeepos
24d32825cd
fix: 提升到80并发
2025-07-18 11:33:54 +08:00
imeepos
176ad61ac0
feat: 实现AI视频分类10个并发任务同时运行
...
- 重构VideoClassificationQueue支持并发处理架构
- 将max_concurrent_tasks从1提升到10(根据CPU核心数动态调整)
- 实现多worker并发处理机制,使用tokio::spawn创建独立worker
- 添加智能任务分发机制,使用原子操作避免任务重复分配
- 优化错误处理:连续错误限制、超时保护、渐进式重试
- 改进资源管理:CPU核心检测、内存使用优化
- 添加统计更新worker,实时监控处理进度
- 支持worker独立错误恢复,提高系统稳定性
性能提升:理论上可提升10倍处理速度,实际受网络和AI服务限制
2025-07-18 11:32:24 +08:00
imeepos
3dbdca4ee6
feat: 实现AI生成视频前置跳过功能 v0.1.35
...
- 添加skip_start_ms参数到CreateMaterialRequest和MaterialProcessingConfig
- 在MaterialImportDialog中添加前置跳过毫秒数输入框
- 实现FFmpegService::create_trimmed_video方法创建跳过开头的临时视频
- 在场景检测前处理视频前置跳过,避免AI生成视频相同首帧问题
- 支持同步和异步处理模式,自动调整场景时间戳补偿跳过时间
- 自动清理临时文件,确保资源管理正确
解决问题:
- AI生成视频第一帧相同导致切片后视频首帧重复
- 通过跳过前置毫秒数避免相同首帧进入最终切片结果
2025-07-18 11:11:10 +08:00
imeepos
9c3f7341aa
feat: 优化模板轨道片段匹配规则编辑体验
...
新功能:
- 实现匹配规则保存后自动刷新轨道片段数据
- 优化匹配规则编辑界面的视觉设计
UI/UX 优化:
- 保存按钮从小图标改为明显的绿色按钮,包含文字标签
- 取消按钮也改为带文字的按钮,提升可发现性
- 编辑按钮从灰色图标改为蓝色带边框的按钮
- 编辑状态下添加蓝色背景和边框,突出编辑区域
- 优化标签颜色,在蓝色背景下更加清晰
- 表单控件添加白色背景和蓝色边框
数据刷新机制:
- TemplateDetailModal 添加 currentTemplate 状态管理
- 实现 refreshTemplateData 函数自动获取最新模板数据
- 匹配规则保存后触发 handleRuleUpdated 回调
- 自动刷新模板列表和详情数据
用户体验提升:
- 保存按钮更容易被发现和点击
- 编辑状态更加明显,用户不会迷失
- 保存后立即看到最新数据,无需手动刷新
- 加载状态和错误提示更加清晰
技术改进:
- 按钮样式遵循 promptx/frontend-developer 设计规范
- 响应式设计,支持不同屏幕尺寸
- 完整的状态管理和错误处理
- 优雅的动画过渡效果
2025-07-18 10:55:41 +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
9b43886a80
fix: build error
2025-07-18 00:54:41 +08:00
imeepos
c3213bc3fc
feat: 完成服装搭配筛选功能优化
...
- 修复Gemini API JSON截断问题,提高分析成功率90%+
- 实现基于AI识别商品的动态筛选选项
- 将图片分析功能集成到高级筛选面板
- 合并颜色匹配和设计风格筛选为统一商品筛选
- 统一UI颜色设计:未选中浅色,选中蓝色
- 支持AI识别商品的颜色纠正功能
- 优化响应式设计和用户体验
主要改进:
- 智能JSON修复机制处理API响应截断
- 动态生成筛选选项而非硬编码常量
- 一体化商品筛选界面设计
- 统一的颜色设计系统
- 增强的错误处理和用户反馈
2025-07-18 00:54:01 +08:00
imeepos
24d70f4e32
fix: 移除无用代码
2025-07-17 23:29:53 +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
504b1a6577
feat: 实现服装搭配智能搜索系统
...
新功能:
- 完整的服装搭配智能搜索系统
- AI图像分析和服装识别
- 智能搜索和过滤功能
- LLM搭配顾问聊天功能
- HSV颜色匹配算法
- 响应式UI界面
技术实现:
- 统一的GeminiService架构
- 完整的数据模型和类型定义
- Tauri命令接口层
- React前端组件库
- Zustand状态管理
- 数据库扩展支持
UI/UX:
- 现代化的搭配搜索界面
- 直观的颜色选择器
- 多级筛选面板
- 图像上传和分析
- 搜索结果展示
- AI聊天界面
测试:
- 核心功能单元测试
- 颜色匹配算法测试
- API集成测试
文档:
- 完整的系统设计文档
- API接口文档
- 开发指南
2025-07-17 22:35:36 +08:00
imeepos
75946c7c1e
fix: 移除无用代码
2025-07-17 21:15:03 +08:00
imeepos
0883674877
fix: 移除无用代码
2025-07-17 21:01:37 +08:00
imeepos
121f2ebc5d
fix: 移除错误代码
2025-07-17 20:59:45 +08:00
imeepos
e34701bb54
fix: 删除无用代码
2025-07-17 20:18:01 +08:00
imeepos
7f3a59282d
feat: 完成CustomMultiSelect多选组件开发并集成到顶部导航栏
2025-07-17 20:09:37 +08:00
imeepos
045de8850a
feat: 完成CustomMultiSelect多选组件开发并集成到顶部导航栏
...
新功能:
- 开发CustomMultiSelect多选下拉组件
- 支持多选功能,以标签形式显示选中项
- 支持搜索过滤功能 (可选)
- 支持全选/取消全选批量操作
- 支持单个标签移除和清空所有选择
- 智能显示:超过限制数量时显示'+N'格式
- 完整的键盘和鼠标交互支持
UI/UX优化:
- 保持与单选CustomSelect一致的设计风格
- 现代化的标签显示和交互效果
- 响应式设计,适配不同屏幕尺寸
- 悬停效果和状态反馈
- 点击外部自动关闭下拉框
技术实现:
- 重构OutfitMatchingRecommendation使用OutfitSearchPanel
- 统一筛选逻辑,避免重复代码
- 类型安全的多选数据处理
- 完善的错误处理和边界情况处理
导航栏集成:
- 将服装搭配功能添加到顶部导航栏
- 使用SparklesIcon图标,突出AI智能特性
- 路由配置:/outfit-match
- 描述:AI智能服装搭配推荐
组件特性对比:
- CustomSelect: 单选,简单文本显示
- CustomMultiSelect: 多选,标签+搜索+批量操作
应用场景:
- 服装类别筛选 (多选)
- 风格标签选择 (多选)
- 场合和季节选择 (多选)
- 颜色和材质筛选 (多选)
使用方法:
` sx
// 单选
<CustomSelect value={single} onChange={setSingle} options={options} />
// 多选
<CustomMultiSelect
value={multi}
onChange={setMulti}
options={options}
searchable={true}
maxDisplayItems={3}
/>
`
调试功能:
- 项目服装单品统计调试
- 搭配推荐生成过程跟踪
- 详细的日志输出和错误信息
现在用户可以通过顶部导航栏直接访问服装搭配功能,享受完整的AI智能搭配体验!
2025-07-17 20:08:41 +08:00
imeepos
42836784b4
feat: 完善智能搭配推荐功能和调试工具
...
新功能:
- 完整实现智能搭配推荐系统
- OutfitMatchingRecommendation: 完整的推荐界面组件
- generate_outfit_recommendations: 后端推荐算法
- 色彩和谐度和风格一致性评分算法
- 智能场合和季节标签生成
- 添加调试工具 debug_outfit_items_stats
- 检查项目中的服装单品统计
- 详细的数据分析和建议
算法实现:
- 搭配组合生成逻辑
- 上装+下装+鞋子组合
- 连衣裙+鞋子组合
- 可选外套和配饰
- 智能评分系统
- 色彩和谐度计算 (HSV色彩空间)
- 风格一致性评估
- 综合评分和筛选
- 标签生成算法
- 场合推断 (工作/休闲/正式/运动等)
- 季节适用性分析
UI/UX优化:
- 现代化的推荐卡片设计
- 智能筛选面板 (场合/季节/风格/评分)
- 收藏和保存功能
- 详情模态框展示
- 调试按钮和数据检查工具
问题诊断:
- 添加详细的调试日志
- 搭配组合生成过程跟踪
- 评分计算过程可视化
- 数据统计和分析工具
当前状态:
- 项目中有2件服装单品 (连衣裙+高跟鞋)
- 数量足够生成搭配推荐
- 正在调试为什么生成0个推荐的问题
2025-07-17 19:47:51 +08:00
imeepos
ebe4a24bc0
feat: 完善服装搭配功能 - 服装单品管理和AI分析结果转换
...
新功能:
- 完善 create_outfit_items_from_analysis 功能
- 从AI分析结果自动创建服装单品
- 智能类别映射和数据转换
- HSV颜色信息解析和处理
- 批量创建流程和错误处理
- 实现完整的服装单品管理系统
- OutfitItemList: 列表展示、搜索、筛选、详情查看
- OutfitItemForm: 创建/编辑表单,动态标签管理
- 完整的CRUD操作和状态管理
- 集成到OutfitMatch页面的标签页系统
技术改进:
- 修复编译错误和类型不匹配问题
- 完善错误处理和用户反馈机制
- 实现类型安全的数据转换
- 添加详细的操作日志和状态跟踪
UI/UX优化:
- 现代化的服装单品卡片设计
- 智能搜索和分类筛选
- 响应式网格布局
- 优雅的表单设计和交互
- 统一的模态框和通知系统
数据流程:
- 图像上传 AI分析 结果展示 一键创建单品 单品管理
- 完整的用户体验闭环
- 实时状态更新和进度跟踪
功能完成度:
- 图像上传和保存
- AI图像分析
- 分析结果展示
- 从分析结果创建服装单品
- 服装单品管理
- 下一步: 智能搭配推荐
2025-07-17 19:21:04 +08:00
imeepos
c31a8c5ba9
fix: 服装搭配
2025-07-17 19:06:15 +08:00
imeepos
7b1bb2fb0e
feat: 实现服装搭配功能的图像上传和AI分析
...
新功能:
- 实现完整的图像上传组件 (ImageUploader)
- 支持拖拽上传、文件选择、预览和验证
- 文件大小和格式限制
- 实时预览和文件管理
- 实现AI图像分析结果展示 (OutfitAnalysisResult)
- 实时状态更新和进度跟踪
- 分析结果详情查看
- 自动刷新机制
- 添加文件保存功能 (save_outfit_image 命令)
- 更新OutfitMatch页面为现代化标签页设计
技术改进:
- 修复服装搭配相关模型的编译错误
- 添加缺失的trait实现 (Eq, Hash)
- 修复生命周期参数问题
- 完善错误处理和用户反馈
UI/UX优化:
- 现代化的标签页设计
- 响应式布局和优雅动画
- 统一的设计语言和交互体验
- 完善的加载状态和错误处理
2025-07-17 19:05:40 +08:00
imeepos
7fb1dfa95a
feat: 添加便捷小工具页面 - AI检索图片/数据清洗功能
...
- 新增便捷工具页面 (/tools),提供AI检索图片/数据清洗功能
- 支持JSONL格式数据的URI匹配去重处理
- 实现实时进度显示和批量数据处理
- 添加完整的错误处理和用户反馈机制
- 遵循Tauri开发规范和UI/UX设计标准
- 包含测试数据和功能文档
技术实现:
- 后端: Rust异步处理,流式文件读取,进度事件发送
- 前端: React + TypeScript,文件选择对话框,进度条显示
- 导航: 新增便捷工具菜单项,集成到主导航栏
2025-07-17 15:29:59 +08:00
imeepos
1da647fbab
feat: 实现循环匹配功能优化
...
- 优化一键匹配算法,支持循环匹配模板直到素材耗尽
- 新增全局素材使用状态跟踪,避免重复使用素材
- 实现智能终止条件,当无法完整匹配任何模板时自动停止
- 扩展BatchMatchingResult数据结构,添加循环轮数和终止原因字段
- 更新前端界面显示循环匹配进度和详细统计信息
- 添加性能优化:日志优化、预检查机制、最大轮数限制
- 新增全面的单元测试覆盖各种边界情况
- 创建详细的功能文档说明使用方式和注意事项
核心改进:
1. 循环匹配算法 - 持续匹配直到素材不足
2. 全局素材跟踪 - 确保素材不重复使用
3. 智能终止机制 - 自动检测匹配完成条件
4. 性能优化 - 支持大量模板和素材的高效处理
5. 完整测试覆盖 - 确保功能稳定可靠
2025-07-17 14:53:14 +08:00
imeepos
3f27668c9f
style: implement left-right layout for export statistics cards
...
- Change to left-right layout: left side statistics info, right side icon
- Follow TemplateMatchingResultStatsPanel design pattern
- Use white background with subtle shadow and border
- Add percentage calculations for success/failure rates
- Add average file size calculation
- Use larger icons (w-8 h-8) with opacity-60 for visual balance
- Include subtitle information for better context
- Match the exact layout structure used in project statistics
fix: correct re_export_record command parameters
- Add newFilePath parameter using file dialog selection
- Fix parameter naming to match backend expectation (newFilePath)
- Implement proper file selection dialog for export path
2025-07-17 13:36:32 +08:00
imeepos
0e1b8d6243
style: align ExportRecordManager statistics with project statistics design
...
- Replace stat-card classes with project-style gradient cards
- Use same design pattern as ProjectCard and ProjectDetails statistics
- Add gradient backgrounds with decorative circles
- Implement hover animations with translate and shadow effects
- Use consistent color scheme: primary, green, red, purple
- Match the visual style of other project statistics throughout the app
- Improve visual hierarchy with proper spacing and typography
2025-07-17 13:32:49 +08:00
imeepos
705f7626f5
fix: apply correct stat-card color variants for proper visibility
...
- Add primary, success, warning, purple color variants to stat cards
- Remove hover-glow class that was conflicting with stat-card styling
- Ensure white background with proper color decorations
- Fix black-on-black text visibility issue in statistics section
2025-07-17 13:30:18 +08:00
imeepos
3da60d684e
feat: optimize ExportRecordManager UI to match project design system
...
- Replace native HTML table with project's DataTable component
- Upgrade to InteractiveButton, SearchInput, CustomSelect components
- Implement modern status indicators with icons and colors
- Add card-based layout for filters and statistics
- Replace window.confirm with DeleteConfirmDialog component
- Apply project's animation and hover effects
- Use Lucide React icons instead of emoji
- Follow promptx/frontend-developer standards
- Improve error handling and loading states
- Add responsive design and mobile optimization
2025-07-17 13:26:01 +08:00
imeepos
9f84ffe7f4
refactor: integrate export records into project details page
...
- Add export records tab to ProjectDetails page
- Optimize ExportRecordManager for compact tab display
- Remove global export records navigation (now project-level)
- Add showHeader and compact props to ExportRecordManager
- Remove standalone ExportRecordsPage (no longer needed)
- Update navigation structure to reflect project-level functionality
Export records are now properly scoped to individual projects and accessible through the project details interface.
2025-07-17 13:14:40 +08:00
imeepos
c190fdae1b
feat: implement export record tracking system
...
- Add export_count field to template_matching_results table
- Create ExportRecord data model with comprehensive tracking
- Implement ExportRecordRepository for CRUD operations
- Create ExportRecordService for business logic
- Add export record tracking to jianying export functions
- Create ExportRecordManager component with filtering and pagination
- Add ExportRecordsPage with full management interface
- Integrate export records into navigation and routing
- Add Tauri commands for export record management
- Include statistics, validation, and cleanup functionality
Follows Tauri development specifications and frontend standards.
2025-07-17 13:03:51 +08:00
imeepos
823a54525e
fix: 修改导出文件名为固定的draft_content.json
...
- 将动态生成的文件名改为固定的draft_content.json
- 更新前端默认保存文件名
- 简化导出相关的日志和提示信息
- 移除V1/V2版本标识,统一为导出功能
2025-07-17 12:39:57 +08:00
imeepos
e4e0d89d5b
feat: 实现v2导出
2025-07-17 12:34:10 +08:00
imeepos
fb6b345188
fix: 修复导出路径中的Windows UNC前缀问题
...
- 添加normalize_windows_path函数清理路径格式
- 移除导出结果中的\\\\?\\ UNC前缀
- 确保导出的JSON文件中包含标准Windows路径格式
- 提升剪映导入兼容性
2025-07-16 22:39:39 +08:00
imeepos
0495a32c74
feat: 实现导出到剪映功能 (v0.1.28)
...
- 新增剪映导出数据结构定义 (jianying_export.rs)
- 实现模板匹配结果导出到剪映格式的服务逻辑
- 添加导出到剪映的Tauri命令接口
- 在匹配记录卡片中添加导出按钮
- 实现文件保存对话框和用户交互
- 支持根据模板匹配结果生成完整的draft_content.json
- 自动替换匹配素材路径并生成随机素材ID
- 去除无引用素材,优化导出文件大小
功能特点:
- 完全符合剪映draft_content.json格式规范
- 准确的时间轴和素材路径映射
- 用户友好的导出界面和反馈
- 遵循promptx/tauri-desktop-app-expert开发规范
2025-07-16 22:33:57 +08:00
imeepos
e3037916c0
feat: 实现一键匹配功能 (v0.1.26)
...
- 新增一键匹配后端服务,支持遍历项目模板绑定并逐一匹配
- 在项目详情页添加一键匹配按钮,支持批量匹配操作
- 实现批量匹配进度管理,包括实时进度跟踪和取消功能
- 添加一键匹配结果汇总,包含详细统计和报告导出功能
- 新增批量匹配相关组件:进度对话框、结果对话框、汇总卡片
- 遵循 promptx/tauri-desktop-app-expert 开发规范
- 支持错误处理、状态管理和用户体验优化
2025-07-16 21:52:48 +08:00
imeepos
d3ab2aa284
fix: resolve list_matching_results deserialization error
...
- Add custom deserializer for MatchingResultStatus to handle empty strings
- Add serde(default) attributes to TemplateMatchingResultQueryOptions fields
- Update frontend to send undefined instead of empty string for status filter
- Fix 'unknown variant' and 'missing field' errors in template matching results
Resolves issue where selecting 'All Status' filter caused command failures.
2025-07-16 21:28:45 +08:00
imeepos
d5ef9851cd
feat: 实现模特详情页视频生成功能
...
- 新增模特详情页组件,支持照片上传和视频生成
- 实现视频生成数据模型和仓库层
- 集成Dify API进行视频生成
- 添加云存储上传功能,自动转换S3 URL为CDN地址
- 实现统一的删除确认弹框,替换window.confirm
- 支持照片和视频生成任务的删除功能
- 优化UI/UX设计,符合前端开发规范
- 添加完整的错误处理和状态管理
核心功能:
模特照片上传到云端
多选照片进行视频生成
实时任务状态跟踪
视频生成历史记录
统一删除确认对话框
响应式设计和优雅动画
2025-07-16 19:39:44 +08:00
imeepos
52ce437e63
fix: 修复ProjectDetails.tsx中的无限请求问题和模特名称显示
...
- 修复loadProjectClassificationStats函数的无限循环问题
- 使用useRef跟踪分类统计加载状态,避免重复请求
- 添加模特信息加载功能,显示真实模特名称而非model_id
- 优化useEffect依赖,防止不必要的重新渲染和请求
- 在项目切换和导入完成时正确重置加载状态
2025-07-16 18:33:57 +08:00
imeepos
08fa4eda61
feat: 实现项目详情页面筛选功能优化 v0.1.25
...
- 为片段管理添加使用状态筛选条件(全部/已使用/未使用)
- 为素材管理添加AI分类筛选条件(基于实际分类记录)
- 为素材管理添加模特筛选条件(全部/未指定/具体模特)
- 为素材管理添加使用状态筛选条件(全部/已使用/未使用)
- 优化UI/UX设计,添加动画效果和视觉一致性
- 实现基于视频分类记录的真实数据筛选逻辑
- 添加筛选条件显示和清除功能
- 遵循promptx/frontend-developer设计标准
2025-07-16 18:25:37 +08:00
imeepos
49b9d46a13
fix: layout bug
2025-07-16 16:52:44 +08:00
imeepos
22d079e44a
fix: style
2025-07-16 16:46:17 +08:00
imeepos
31f94a51ff
fix: 修复模板匹配结果应用时素材使用记录创建失败的问题
...
- 修复 create_usage_records_from_matching_result 命令参数命名问题
- 将前端调用参数从 snake_case 改为 camelCase 以匹配 Tauri 自动转换规则
- 确保模板匹配结果应用后能正确创建素材使用记录
- 遵循 Tauri 开发规范的参数命名约定
2025-07-16 16:40:25 +08:00
imeepos
5d39ddea80
fix: 修复保存 匹配记录的bug
2025-07-16 16:09:55 +08:00
imeepos
a325b3ccc8
feat: 实现素材使用状态管理系统
...
1. 数据库层面改进:
- 新增material_usage_records表记录素材使用历史
- 为material_segments表添加usage_count、is_used、last_used_at字段
- 实现数据库迁移逻辑
2. 数据模型和仓库:
- 创建MaterialUsageRecord、MaterialUsageStats等数据模型
- 实现MaterialUsageRepository处理使用记录的CRUD操作
- 支持批量创建使用记录和统计查询
3. 业务逻辑改进:
- 修改MaterialMatchingService,在获取素材片段时排除已使用的片段
- 实现素材使用状态的自动更新机制
- 支持重置素材使用状态功能
4. 前端集成:
- 修改handleApplyMatchingResult函数,应用匹配结果时自动创建使用记录
- 新增多个后端命令支持素材使用状态管理
- 实现从匹配结果自动创建使用记录的便捷方法
5. 核心功能:
- 一个素材片段只能使用一次的限制机制
- 模板匹配时自动排除已使用的素材片段
- 完整的使用历史记录和统计功能
- 支持项目级别的使用状态重置
这个实现确保了素材的合理使用,避免重复使用同一素材片段,
同时提供了完整的使用追踪和管理功能。
2025-07-16 14:38:08 +08:00
imeepos
730ac22b84
fix: 修复get_matching_result_detail接口数据类型错误
...
修复'Invalid column type Real at index: 9, name: match_score'错误
问题根本原因:
1. 数据库schema中match_score字段定义为REAL类型
2. 数据插入时错误地将REAL/INTEGER字段转换为字符串
3. 数据读取时错误地尝试将REAL/INTEGER字段作为String类型获取
修复内容:
1. 修正matching_segment_results表相关字段的数据插入逻辑
- match_score: 直接使用f64类型而非转换为字符串
- segment_duration, start_time, end_time: 直接使用u64类型
2. 修正matching_failed_segment_results表相关字段的数据插入逻辑
- segment_duration, start_time, end_time: 直接使用u64类型
3. 修正row_to_segment_result和row_to_failed_segment_result函数
- 直接使用原始数据类型而非字符串解析
这确保了数据库操作的类型一致性,解决了get_matching_result_detail接口的错误。
2025-07-16 14:11:14 +08:00
imeepos
3e6c05c4ac
fix: 修复模板匹配结果相关的数据类型错误
...
1. 修复list_matching_results接口'Invalid column type Integer at index: 18, name: is_active'错误
- 修正template_matching_result_repository.rs中row_to_matching_result函数的is_active字段处理
- 使用rusqlite::types::Value枚举正确处理多种数据类型
2. 修复数据插入和读取的类型不一致问题
- 修正数据插入时将INTEGER字段转换为字符串的错误
- 统一数据类型:数字字段直接使用原始类型而非字符串
3. 实现应用匹配结果功能
- 修复ProjectDetails.tsx中handleApplyMatchingResult函数
- 调用save_matching_result API保存匹配结果到数据库
- 添加成功/失败通知提示
修复的具体问题:
- template_matching_results表的is_active字段类型处理
- 数字字段(total_segments, matched_segments等)的类型转换
- quality_score字段的NULL值处理
- 前端应用匹配结果后保存到数据库的逻辑
2025-07-16 14:05:01 +08:00
imeepos
a4cacf42da
hotfix: 修复get_all_projects接口description字段NULL值处理问题
...
- 修复project_repository.rs中row_to_project函数对description字段的错误处理
- 将description字段从String类型改为Option<String>类型正确处理NULL值
- 修复material_repository.rs中类似的问题
- 解决'Invalid column type Null at index: 3, name: description'错误
问题根本原因:
数据库schema允许description为NULL,但代码尝试获取非空String类型,
当description为NULL时导致类型转换失败。
修复方案:
使用Option<String>类型和filter方法正确处理NULL和空字符串情况。
2025-07-16 13:58:04 +08:00
imeepos
94d58a5bc5
feat: UI优化 - 添加匹配记录tab并优化TemplateMatching相关组件样式
...
- 在项目详情页面添加匹配记录tab,集成TemplateMatchingResultManager组件
- 优化TemplateMatchingResultManager组件样式,使用统一的设计系统
- 优化TemplateMatchingResultCard组件,采用card样式和渐变背景
- 优化TemplateMatchingResultDetailModal组件,使用统一的模态框样式
- 优化TemplateMatchingResultStatsPanel组件,增强视觉效果和进度条样式
- 遵循promptx/frontend-developer开发规范,确保样式统一、简洁美观
2025-07-16 13:51:28 +08:00
imeepos
1d6de409ed
feat: 实现模板匹配结果保存和管理功能
...
- 新增模板匹配结果数据模型和数据库表结构
- 实现匹配结果Repository层,支持CRUD操作和查询
- 实现匹配结果Service层,提供业务逻辑和统计功能
- 新增Tauri命令接口,支持前端调用
- 实现前端TypeScript类型定义
- 更新MaterialMatchingService,支持自动保存匹配结果
- 新增前端管理界面组件:
- TemplateMatchingResultManager: 主管理界面
- TemplateMatchingResultCard: 结果卡片组件
- TemplateMatchingResultDetailModal: 详情模态框
- TemplateMatchingResultStatsPanel: 统计面板
- 编写完整的单元测试
- 新增API文档
功能特性:
- 保存匹配结果到数据库,包含成功和失败片段详情
- 支持匹配结果的查询、过滤、排序和分页
- 提供匹配统计信息和质量评分
- 支持软删除和批量操作
- 完整的前端管理界面,支持查看、编辑、删除操作
2025-07-16 13:34:32 +08:00
imeepos
1eebc98853
Update MaterialMatchingResultDialog component
2025-07-16 01:20:15 +08:00
imeepos
ef4c047b30
fix(template-matching): 修复模板素材匹配逻辑
...
修复的问题:
- 固定素材被错误计入失败统计,导致成功率偏低
- 素材未切分时无可用片段,导致匹配完全失败
- 模板绑定验证逻辑未实现,返回空数据
- 时长单位不一致影响匹配准确性
主要改进:
- 固定素材现在正确跳过匹配,不计入失败数
- 实现虚拟片段机制,为未切分素材创建虚拟片段
- 完善模板绑定验证逻辑,正确统计片段数量
- 修正时长单位转换,确保匹配准确性
- 增强错误信息,提供更详细的匹配失败原因
修复效果:
- 修复前: 0个可用片段 匹配完全失败
- 修复后: 44个可用片段 匹配正常工作
- 三种匹配规则(固定素材/AI分类/随机匹配)现在都能正常工作
技术细节:
- 在匹配前过滤固定素材,避免错误统计
- 为每个分类记录创建对应的虚拟片段
- 成功率基于可匹配片段计算,更准确反映匹配质量
- 实现完整的模板绑定验证,支持匹配预估
2025-07-16 00:56:51 +08:00
imeepos
c7f9c9f4bb
feat: 为MaterialCard添加缩略图功能并优化UI展示
...
- 为Material数据模型添加thumbnail_path字段
- 实现get_material_thumbnail_base64 API命令支持Material缩略图生成
- 创建MaterialThumbnail组件,支持懒加载和缓存机制
- 重新设计MaterialCard布局,使用缩略图替换文件类型图标
- 精简MaterialCard信息展示,将详细信息移到可折叠区域
- 优化按钮布局,使界面更加紧凑
- 简化切分片段显示方式,提升用户体验
- 修复数据库DateTime解析问题,支持SQLite和RFC3339两种格式
- 添加数据库迁移支持thumbnail_path字段
- 遵循promptx/tauri-desktop-app-expert开发规范
2025-07-16 00:25:08 +08:00
imeepos
b06cae86f9
fix: 修复缩略图生成失败问题
...
- 增强FFmpeg缩略图生成的错误处理和详细日志
- 实现缩略图生成的重试机制,包括多种时间戳策略
- 添加缩略图生成前的预检查机制
- 优化FFmpeg命令参数,提高兼容性和成功率
- 添加单元测试验证修复效果
修复内容:
1. 增强日志记录,包括FFmpeg命令和输出信息
2. 实现重试机制:原时间戳失败时尝试0秒、中间时间点等
3. 预检查视频文件有效性、时间戳合理性、输出目录可写性
4. 优化FFmpeg参数:添加hide_banner、loglevel、update等选项
5. 在material_commands中使用新的重试机制
解决了FFmpeg执行完成但缩略图文件不存在的问题
2025-07-15 23:29:51 +08:00
imeepos
8c742bf262
feat: 创建统一的缩略图获取接口,使用视频实际尺寸
...
新增get_segment_thumbnail_base64接口:
- 根据segmentId统一获取缩略图base64数据URL
- 智能检查:数据库路径 -> 文件存在性 -> 自动重新生成
- 完整的错误处理和文件验证机制
使用视频实际尺寸生成缩略图:
- 添加get_video_info方法获取视频元数据
- 保持原始宽高比,最大宽度160像素
- 支持音频流信息解析和完整的VideoMetadata结构
代码优化:
- 简化前端缩略图加载逻辑,统一使用新接口
- 移除重复的generateSegmentThumbnail函数
- 清理不必要的参数传递和依赖项
功能特点:
- 自动检测文件丢失并重新生成
- 使用视频原始尺寸保持最佳显示效果
- 统一的错误处理和缓存机制
- 减少代码重复,提高维护性
现在缩略图生成更加智能和高效,能够自动处理文件丢失的情况,并使用视频的实际尺寸生成最佳质量的缩略图。
2025-07-15 22:49:53 +08:00
imeepos
44f3f40705
fix: 修复缩略图显示权限问题,使用base64数据URL
...
解决asset.localhost访问权限问题:
- 添加read_thumbnail_as_data_url命令读取文件并转换为base64数据URL
- 避免使用convertFileSrc的asset.localhost协议访问问题
- 添加base64依赖支持文件编码
优化缩略图加载:
- 使用数据URL直接在img标签中显示缩略图
- 正确处理Windows长路径前缀 \\\\?\\
- 统一错误处理和降级机制
技术改进:
- 移除不再使用的convertFileSrc导入
- 添加详细的控制台日志便于调试
- 确保跨平台文件路径兼容性
现在缩略图可以正确显示,不会因为权限问题导致加载失败。
2025-07-15 22:38:22 +08:00
imeepos
723575ba7e
fix: 修复Windows长路径前缀问题
...
路径处理优化:
- 去掉Windows长路径前缀 \\\\?\\ 避免文件URL转换错误
- 在convertFileSrc之前清理路径格式
- 确保缩略图URL在所有平台上正确显示
修复内容:
- 数据库读取的缩略图路径处理
- 新生成缩略图的路径处理
- 统一使用convertFileSrc确保跨平台兼容性
现在缩略图可以正确显示,不会因为Windows长路径前缀导致加载失败。
2025-07-15 22:26:27 +08:00
imeepos
4d61fb69f3
fix: 修复缩略图生成功能
...
解决编译问题:
- 修复async函数中跨await点持有MutexGuard的Send trait问题
- 添加get_segment_by_id_sync同步方法避免锁生命周期冲突
- 修复Path类型推断问题
优化FFmpeg缩略图生成:
- 添加-pix_fmt yuvj420p参数解决色彩空间问题
- 添加-q:v 2参数提升图片质量
- 添加-f image2参数明确指定输出格式
- 解决MJPEG编码器参数错误问题
功能特点:
- 使用视频首帧生成缩略图
- 缩略图路径保存到数据库
- 智能缓存机制避免重复生成
- 优雅的错误处理和降级
现在缩略图生成功能可以正常工作,用户可以在MaterialSegmentView中看到实际的视频预览图。
2025-07-15 22:20:46 +08:00
imeepos
70e4acb2c2
feat: 为MaterialSegmentView添加视频片段缩略图显示功能
2025-07-15 22:02:59 +08:00
imeepos
0898b4b9e2
feat: 为MaterialSegmentView添加视频片段缩略图显示功能
...
缩略图显示功能:
- 使用视频首帧生成缩略图:取片段开始时间作为缩略图时间戳
- 智能缓存机制:避免重复生成相同片段的缩略图
- 异步加载:缩略图生成不阻塞界面渲染
- 优雅降级:生成失败时显示默认视频图标
ThumbnailDisplay组件:
- 独立的缩略图显示组件,职责单一
- 加载状态指示:显示旋转动画表示正在生成缩略图
- 错误处理:图片加载失败时自动回退到默认图标
- 响应式设计:160x120像素缩略图,适配卡片布局
技术实现:
- 利用现有generate_video_thumbnail命令生成缩略图
- Map缓存机制:segmentId -> thumbnailUrl映射
- file://协议:本地文件访问支持
- useEffect钩子:组件挂载时自动加载缩略图
用户体验优化:
- 视觉丰富:片段卡片显示实际视频内容预览
- 快速识别:用户可以通过缩略图快速识别视频内容
- 性能优化:缓存机制避免重复生成
- 加载反馈:清楚的加载状态提示
功能特点:
- 首帧缩略图:使用片段开始时间的首帧作为预览
- 自动生成:无需手动操作,自动为每个片段生成缩略图
- 内存缓存:同一会话中避免重复生成
- 错误恢复:生成失败时显示默认图标,不影响其他功能
现在MaterialSegmentView提供了更加直观的视觉体验:
1. 每个片段卡片显示实际的视频首帧缩略图
2. 用户可以快速预览视频内容
3. 加载过程有清楚的视觉反馈
4. 生成失败时有优雅的降级处理
2025-07-15 22:01:41 +08:00
imeepos
10177d2501
feat: 为MaterialSegmentView添加视频片段播放功能
...
视频播放功能:
- 为Eye按钮添加点击播放功能:点击后播放对应的视频片段
- 传递片段参数:文件路径、开始时间、结束时间
- 悬停效果优化:按钮颜色从灰色变为蓝色
- 工具提示:显示'播放视频片段'提示文字
后端播放命令:
- 新增play_video_segment命令:支持播放指定时间段的视频
- 跨平台播放器支持:
* Windows: 使用cmd /C start启动默认播放器
* macOS: 使用open命令启动默认播放器
* Linux: 使用xdg-open启动默认播放器
- 文件存在性检查:播放前验证视频文件是否存在
- 完善错误处理:播放失败时给出详细错误信息
系统集成:
- 命令注册:在lib.rs中正确注册play_video_segment命令
- 日志记录:记录播放操作的成功/失败状态
- 参数传递:支持文件路径和时间参数传递
用户体验:
- 一键播放:点击Eye按钮直接播放视频片段
- 系统默认播放器:使用用户熟悉的播放器应用
- 即时反馈:点击后立即启动播放器
- 视觉提示:按钮状态清楚表达可点击性
功能特点:
- 智能播放:虽然后端接收时间参数,但使用系统默认播放器播放完整视频
- 跨平台兼容:Windows/macOS/Linux都能正常工作
- 错误恢复:文件不存在或播放器启动失败时有相应提示
- 性能优化:异步播放,不阻塞界面操作
现在用户可以:
1. 点击任意片段的Eye按钮播放对应视频
2. 使用系统默认播放器观看视频内容
3. 享受跨平台一致的播放体验
4. 在播放失败时获得清楚的错误提示
注:当前实现使用系统默认播放器播放完整视频文件,未来可以考虑集成支持时间段播放的专业播放器。
2025-07-15 21:57:58 +08:00
imeepos
91eb22aaa9
feat: 优化MaterialSegmentView文件显示和添加打开目录功能
...
文件显示优化:
- 提取文件名显示:从完整路径中提取文件名,避免显示过长的路径
- 处理Windows长路径格式:正确处理\\\\?\\前缀的长路径
- 简洁的文件名展示:只显示文件名而不是完整路径
打开目录功能:
- 添加FolderOpen图标按钮:每个片段卡片都有打开目录按钮
- 跨平台支持:Windows使用explorer /select,macOS使用open -R,Linux使用xdg-open
- 智能路径处理:自动检测文件/目录并使用合适的打开方式
- 错误处理:完善的错误处理和日志记录
后端命令实现:
- 新增open_file_directory命令:支持打开文件所在目录
- 注册到invoke_handler:在lib.rs中正确注册新命令
- 系统集成:使用系统默认的文件管理器打开目录
UI/UX改进:
- 文件名+按钮布局:文件名和打开按钮在同一行显示
- 悬停效果:按钮有hover状态,提供良好的交互反馈
- 工具提示:按钮有'打开文件所在目录'的提示文字
- 图标设计:使用FolderOpen图标,直观表达功能
功能特点:
- 一键打开:点击按钮直接在文件管理器中打开文件所在目录
- 文件定位:Windows下会自动选中对应文件
- 路径兼容:支持各种路径格式,包括长路径
- 安全检查:文件不存在时会给出错误提示
现在用户可以:
1. 看到简洁的文件名而不是冗长的完整路径
2. 点击文件夹图标快速打开文件所在目录
3. 在文件管理器中直接定位到对应文件
4. 享受跨平台一致的用户体验
2025-07-15 21:52:58 +08:00
imeepos
30a4cfc23f
feat: 优化MaterialSegmentView筛选条件布局为单行显示
...
布局优化:
- AI分类筛选改为单行显示:'AI分类:' + 选项按钮
- 模特筛选改为单行显示:'模特:' + 选项按钮
- 使用flex布局,标签和选项在同一行
- 标签部分使用flex-shrink-0防止收缩
视觉改进:
- 标签文字添加冒号,更清晰的层次结构
- 保持原有的颜色主题:AI分类(蓝色),模特(绿色)
- 选项按钮保持原有的样式和交互效果
- 数量显示保持在按钮内的小徽章中
响应式设计:
- flex-wrap确保选项按钮在小屏幕上能够换行
- gap-4提供合适的间距
- 保持良好的移动端体验
用户体验提升:
- 更紧凑的布局,节省垂直空间
- 清晰的标签指示,用户一眼就能看到筛选维度
- 保持所有原有功能:点击筛选、数量显示、状态管理
- 筛选逻辑完全不变,只是视觉布局优化
现在筛选条件显示为:
- AI分类:全部(44) 全身(20) 半身(15) 其他(9)
- 模特:全部(44) 杨明明(44)
这种单行布局更加简洁明了,符合用户的使用习惯。
2025-07-15 21:46:45 +08:00
imeepos
6610695177
fix: 修复MaterialSegmentView数据结构不匹配问题,实现完整的多条件筛选功能
...
修复数据结构不匹配:
- 发现前端期望字段(classification_info, model_info, material_info)与后端实际返回字段(classification, model, material_name, material_type)不匹配
- 更新前端SegmentWithDetails接口定义,与后端MaterialSegmentView数据结构保持一致
- 修复所有过滤逻辑中的字段引用:classification_info -> classification, model_info -> model
- 修复渲染卡片中的字段引用:material_info.name -> material_name
完善多条件筛选功能:
- 修复分类过滤逻辑:使用segment.classification?.category进行筛选
- 修复模特过滤逻辑:使用segment.model?.name进行筛选
- 修复搜索过滤逻辑:使用segment.material_name进行搜索
- 修复标签信息显示:正确显示classification和model信息
验证数据流通:
- 后端正常返回44个片段详情
- 按分类聚合:3个分类组
- 按模特聚合:1个模特组
- 统计信息:总片段数44
- 前端成功接收并处理数据
解决的问题:
- 统计信息有数据但下方列表没数据的问题已解决
- 前后端数据结构现在完全匹配
- 多条件筛选功能正常工作
- AI分类和模特筛选都能正确过滤数据
- 搜索功能与筛选条件正确组合
功能验证:
- 后端API调用正常(get_project_segment_view)
- 数据结构匹配,字段映射正确
- 多条件筛选逻辑工作正常
- 卡片渲染显示正确信息
- 搜索和筛选组合功能正常
- 应用构建和运行成功
现在MaterialSegmentView组件完全正常工作,用户可以:
1. 看到完整的片段统计信息
2. 在下方列表中看到所有片段数据
3. 使用AI分类筛选功能
4. 使用模特筛选功能
5. 使用组合筛选(AI分类 AND 模特)
6. 使用搜索功能与筛选条件组合
2025-07-15 21:44:34 +08:00
imeepos
60cd01c1ec
feat: 重构MaterialSegmentView为多条件筛选系统 - 移除标签页设计
...
核心功能重构:
- 移除标签页(tab)设计,改为同时显示AI分类和模特的筛选条件
- 实现组合筛选:AI分类 AND 模特的多条件检索
- 支持类似'AI分类:全身 and 模特:杨明明'的筛选组合
多条件筛选系统:
- AI分类筛选:独立的筛选区域,显示所有分类选项及数量
- 模特筛选:独立的筛选区域,显示所有模特选项及数量
- 组合筛选:两个条件可以同时生效,实现精确筛选
- 当前筛选条件显示:实时显示已选择的筛选条件
UI/UX优化:
- 分区设计:AI分类和模特各自独立的筛选区域
- 视觉区分:AI分类使用蓝色主题,模特使用绿色主题
- 筛选状态显示:当有筛选条件时显示当前筛选状态栏
- 清除功能:一键清除所有筛选条件
- Card卡片风格:片段展示保持卡片设计
数据处理优化:
- 智能过滤:先获取所有片段,再依次应用分类和模特过滤
- 组合逻辑:支持分类 AND 模特的组合筛选
- 搜索集成:搜索功能与筛选条件无缝结合
- 实时更新:筛选条件变化时立即更新结果
技术实现:
- 移除activeTab状态,简化组件逻辑
- 优化过滤算法,支持多条件组合
- 保持useMemo性能优化
- 完善的错误处理和加载状态
交互体验:
- 直观的筛选界面:用户可以清楚看到所有可用的筛选选项
- 即时反馈:点击筛选条件立即看到结果变化
- 状态提示:当前筛选条件清晰显示,支持快速清除
- 空状态处理:没有匹配结果时的友好提示
功能特点:
- 支持单一条件筛选:只选择AI分类或只选择模特
- 支持组合条件筛选:同时选择AI分类和模特
- 支持搜索+筛选:搜索词与筛选条件组合使用
- 支持快速重置:一键清除所有筛选条件
这个重构完全满足了用户的新需求:
1. 移除了标签页设计
2. 实现了AI分类和模特的同时筛选
3. 支持组合筛选条件(AI分类 AND 模特)
4. 提供了清晰的筛选状态显示和管理
2025-07-15 21:36:33 +08:00
imeepos
e1e4b9d67a
feat: 重构MaterialSegmentView为多条件检索标签页风格
...
核心功能重构:
- 将MaterialSegmentView改为多条件检索的标签页风格
- 实现AI分类和模特两个主要检索维度
- 移除折叠/展开功能,改为直接平铺Card卡片风格
标签页检索系统:
- AI分类标签页:显示所有分类选项及对应数量
- 模特标签页:显示所有模特选项及对应数量
- 全部选项:显示总片段数量
- 动态数量显示:每个选项显示对应的片段数量
UI/UX优化:
- Card卡片风格:每个片段使用独立卡片展示
- 缩略图显示:支持视频缩略图预览
- 标签信息:显示分类、模特、置信度等信息
- 操作按钮:查看、编辑、删除等快捷操作
- 搜索功能:支持按片段名称、分类、模特搜索
数据展示优化:
- 时长格式化:MM:SS格式显示时间
- 置信度显示:百分比形式显示AI分类置信度
- 状态标签:不同颜色区分分类和模特信息
- 响应式布局:适配不同屏幕尺寸
技术实现:
- 使用get_project_segment_view API获取数据
- useMemo优化性能,避免不必要的重新计算
- TypeScript类型安全,完整的接口定义
- 错误处理和加载状态管理
交互体验:
- 标签页切换:平滑的标签页切换动画
- 过滤选择:点击标签即可过滤对应内容
- 实时搜索:输入即时过滤结果
- 空状态处理:友好的空数据提示
性能优化:
- 智能过滤:基于选中标签和搜索词的组合过滤
- 数据缓存:避免重复API调用
- 组件优化:使用React hooks优化渲染性能
这个重构完全满足了用户的需求:
1. 检索风格改为标签页
2. AI分类和模特维度,显示全部/具体选项+数量
3. 内容直接平铺Card卡片风格,无折叠/展开
4. 合理规划内容布局,美观易用
2025-07-15 21:28:51 +08:00
imeepos
49bc9211d6
feat: 重构MaterialSegmentView为多条件检索标签页风格
...
核心功能重构:
- 将MaterialSegmentView改为多条件检索的标签页风格
- 实现AI分类和模特两个主要检索维度
- 移除折叠/展开功能,改为直接平铺Card卡片风格
标签页检索系统:
- AI分类标签页:显示所有分类选项及对应数量
- 模特标签页:显示所有模特选项及对应数量
- 全部选项:显示总片段数量
- 动态数量显示:每个选项显示对应的片段数量
UI/UX优化:
- Card卡片风格:每个片段使用独立卡片展示
- 缩略图显示:支持视频缩略图预览
- 标签信息:显示分类、模特、置信度等信息
- 操作按钮:查看、编辑、删除等快捷操作
- 搜索功能:支持按片段名称、分类、模特搜索
数据展示优化:
- 时长格式化:MM:SS格式显示时间
- 置信度显示:百分比形式显示AI分类置信度
- 状态标签:不同颜色区分分类和模特信息
- 响应式布局:适配不同屏幕尺寸
技术实现:
- 使用get_project_segment_view API获取数据
- useMemo优化性能,避免不必要的重新计算
- TypeScript类型安全,完整的接口定义
- 错误处理和加载状态管理
交互体验:
- 标签页切换:平滑的标签页切换动画
- 过滤选择:点击标签即可过滤对应内容
- 实时搜索:输入即时过滤结果
- 空状态处理:友好的空数据提示
性能优化:
- 智能过滤:基于选中标签和搜索词的组合过滤
- 数据缓存:避免重复API调用
- 组件优化:使用React hooks优化渲染性能
这个重构完全满足了用户的需求:
1. 检索风格改为标签页
2. AI分类和模特维度,显示全部/具体选项+数量
3. 内容直接平铺Card卡片风格,无折叠/展开
4. 合理规划内容布局,美观易用
2025-07-15 21:26:53 +08:00
imeepos
19a05f4e8a
fix
2025-07-15 21:23:54 +08:00
imeepos
f67c6357e1
fix: 重构项目详情页面
2025-07-15 21:20:00 +08:00
imeepos
05c9694063
fix: Resolve all runtime errors and complete project details optimization
...
Fixed Critical Runtime Errors:
- Resolved React infinite loop caused by useCallback dependency issues
- Fixed MaterialSegmentStats null pointer exceptions with proper null checks
- Replaced non-existent get_material_segment_stats command with get_project_segment_view
- Added comprehensive error handling and loading states
Enhanced Project Details Page:
- Successfully added 'Project Overview' tab as default selection
- Consolidated all statistics into overview tab (project stats, segment stats, AI progress)
- Moved project information display to overview with formatted timestamps
- Optimized scrolling behavior with fixed height containers (calc(100vh-16rem))
Improved Data Integration:
- Integrated MaterialSegmentStats component with proper viewMode configuration
- Used existing get_project_segment_view command to fetch segment statistics
- Added proper TypeScript type handling for segment view data
- Implemented fallback data structure for error scenarios
UI/UX Enhancements:
- Added consistent padding across all tab content areas
- Implemented loading skeleton states for segment statistics
- Enhanced visual hierarchy with proper section headings
- Optimized tab content scrolling to prevent external scrollbars
Technical Improvements:
- Added useCallback for loadSegmentStats to prevent dependency loops
- Proper null checking in MaterialSegmentStats component
- Enhanced error handling with meaningful fallback states
- Maintained hot reload functionality throughout development
Current Status:
- All runtime errors resolved
- Project overview tab displays comprehensive project information
- Smooth scrolling within tab content areas
- Hot reload working correctly
- No TypeScript compilation errors
- Backend data integration functioning properly
The project details page now provides a unified overview experience with all statistics and information consolidated in a single, easily accessible location.
2025-07-15 21:09:00 +08:00
imeepos
d5335d7803
feat: Optimize project details page layout and information display
...
Enhanced Tab Structure:
- Added new 'Project Overview' tab as default selection
- Reorganized tab navigation with Brain icon for overview
- Improved tab content scrolling with fixed height containers
Consolidated Statistics Display:
- Moved all project statistics to Overview tab (materials, videos, audio, images, AI queue)
- Integrated MaterialSegmentStats for comprehensive segment analytics
- Added AI classification progress tracking in overview
- Consolidated project information display with creation/update times
Improved Layout & Scrolling:
- Fixed scrolling behavior - removed external scrollbars
- Set tab content height to calc(100vh-16rem) for optimal viewport usage
- Added consistent padding (p-4 md:p-6) across all tab content areas
- Optimized content organization for better information hierarchy
Technical Improvements:
- Added loadSegmentStats function with proper error handling
- Integrated MaterialSegmentStats component with ByClassification view mode
- Updated dependency arrays for proper data loading
- Enhanced project information display with formatted timestamps
User Experience Benefits:
- Single overview tab provides complete project status at a glance
- Improved navigation with logical information grouping
- Better scrolling performance with contained scroll areas
- Consistent visual hierarchy across all tabs
- Reduced information fragmentation across multiple views
The project details page now provides a more organized and efficient way to view all project-related information, with the overview tab serving as a comprehensive dashboard for project status, statistics, and progress tracking.
2025-07-15 21:02:41 +08:00
imeepos
a6f9e82c65
fix: Resolve TypeScript build errors and clean up unused imports
...
Fixed Build Issues:
- Removed unused imports in ProjectList, ModelList, ProjectForm, DataTable, CardGrid
- Fixed variant type mismatches in TableAction and GridAction interfaces
- Replaced InteractiveTextarea with standard textarea in ProjectForm
- Updated EmptyState usage to use correct component props
- Removed unused ModelCardSkeleton component definition
Code Cleanup:
- Cleaned up unused Search, Filter, MoreHorizontal, Eye, Edit, Trash2 imports
- Removed unused filters state in DataTable
- Removed unused actions parameter in CardGrid
- Simplified ProjectForm description field implementation
- Fixed EmptyProjectList usage in ProjectList
Build Status:
- All TypeScript errors resolved
- Hot reload working correctly
- Development server running smoothly on port 5174
- No more compilation warnings or errors
The application now builds successfully with all UI/UX enhancements intact.
2025-07-15 20:50:54 +08:00
imeepos
496b26cdeb
feat: Complete final UI/UX optimization phase - Visual hierarchy, mobile experience, and accessibility
...
Enhanced Visual Hierarchy System:
- Implemented comprehensive typography scale (display, heading, body, caption levels)
- Created semantic color system with emphasis levels (high, medium, low, disabled)
- Established consistent spacing scale (xs to 3xl) for margins, gaps, and padding
- Added shadow hierarchy (subtle to dramatic) for depth perception
- Implemented border and border-radius systems for visual consistency
Advanced Visual Effects:
- Added gradient backgrounds for primary, secondary, success, warning, error, info
- Implemented glass-morphism effects with backdrop blur
- Created glow effects for interactive elements
- Added status indicators with online/busy/away/offline states
- Built progress bars with animated stripes
- Designed badge system with semantic colors
- Created elegant dividers with gradient effects
Mobile-First Responsive Design:
- Implemented 44px minimum touch targets for accessibility
- Optimized button and input sizes for mobile devices
- Created mobile-specific navigation patterns
- Added touch-friendly modal and card layouts
- Implemented responsive table design with mobile card view
- Added swipe gesture support with scroll snap
- Optimized typography scaling for different screen sizes
Comprehensive Accessibility Features:
- Added keyboard navigation support with focus-visible indicators
- Implemented skip links for screen readers
- Created ARIA state management (expanded, selected, disabled, invalid)
- Added high contrast mode support
- Implemented focus trap for modals
- Added live regions for dynamic content announcements
- Created screen reader only content classes
Performance Optimizations:
- Added GPU acceleration for smooth animations
- Implemented content visibility for better rendering
- Created lazy loading patterns for images
- Added virtual scrolling support
- Implemented memory-efficient rendering with containment
- Added font loading optimizations (swap, block, optional)
- Created debounced animations to prevent jank
Utility Class System:
- Built comprehensive layout utilities (flex-center, flex-between, grid-center)
- Added text utilities (ellipsis, line-clamp, emphasis levels)
- Created visibility utilities (visible-on-hover, visible-on-focus)
- Implemented state utilities (loading, error, success, warning)
- Added spacing and sizing utilities for rapid development
Cross-Device Compatibility:
- Mobile devices: Touch-optimized interactions with haptic feedback
- Tablets: Balanced layout with appropriate sizing
- Desktop: Enhanced hover states and keyboard navigation
- Large screens: Optimized layouts with increased content density
- High contrast displays: Enhanced visibility and readability
- Reduced motion preferences: Respectful animation handling
This comprehensive update establishes a robust design system that provides:
- Consistent visual language across all components
- Excellent accessibility for users with disabilities
- Smooth performance on all device types
- Professional mobile experience
- Future-proof scalability for new features
The application now meets modern web standards for design, accessibility, and performance.
2025-07-15 20:42:41 +08:00
imeepos
1b7f7b44a8
feat: Complete comprehensive UI/UX enhancement phase
...
Enhanced Interactive Components:
- Created InteractiveButton with ripple effects, haptic feedback, and multiple variants
- Developed InteractiveInput and InteractiveTextarea with real-time validation and status indicators
- Added FloatingActionButton for quick actions with elegant tooltips
- Implemented comprehensive micro-interactions and animations
Advanced Loading & Skeleton States:
- Enhanced SkeletonLoader with multiple variants (model, material, template, table-row)
- Added specialized skeleton components (ModelCardSkeleton, MaterialCardSkeleton, etc.)
- Created EnhancedLoadingState with progress indicators and operation tracking
- Implemented BatchOperationLoading for complex workflows
Optimized Form Experience:
- Upgraded ProjectForm with new interactive components
- Added real-time validation feedback and error animations
- Implemented smart input states (success, error, loading)
- Enhanced user feedback with visual and haptic responses
Perfected Empty States:
- Redesigned EmptyState with multiple variants and illustrations
- Created specialized empty state components (EmptyProjectList, EmptyModelList, etc.)
- Added contextual tips and guidance for better user onboarding
- Implemented error states and recovery actions
Advanced Data Display:
- Built comprehensive DataTable with search, sort, filter, and pagination
- Created flexible CardGrid with view switching and bulk operations
- Added row selection, bulk actions, and advanced filtering
- Implemented responsive layouts and mobile optimization
Rich Animation System:
- Added 20+ new micro-interaction animations
- Implemented button press, success pulse, error shake effects
- Created smooth slide-in animations for all directions
- Added loading dots, heartbeat, and bounce-in animations
Key Features:
- Ripple effects on button clicks with haptic feedback
- Real-time form validation with animated error states
- Contextual empty states with actionable guidance
- Advanced data tables with full CRUD operations
- Responsive card grids with multiple view modes
- Comprehensive loading states for better perceived performance
All components now provide rich visual feedback, smooth animations, and professional user experience that matches modern design standards.
2025-07-15 20:38:34 +08:00
imeepos
134deb80fb
feat: Optimize UI layout with fixed navigation and scrollable content
...
Layout Optimization:
- Fixed navigation bar at the top with sticky positioning
- Main content area now properly scrollable with flex layout
- Improved overall page structure for better UX
Scrolling Enhancements:
- Added custom scrollbar styling for better visual appeal
- Implemented smooth scrolling behavior across the application
- Optimized scroll areas in ProjectDetails, TemplateManagement, AiClassificationSettings, and ModelList
- Added proper overflow handling for long content lists
Visual Improvements:
- Beautiful custom scrollbars with hover effects
- Proper height constraints for content areas (calc(100vh-16rem))
- Enhanced scrolling experience with backdrop blur effects
- Added scroll indicators and shadow effects for better UX
Responsive Design:
- Mobile-optimized scrolling behavior
- Proper touch scrolling on mobile devices
- Adaptive content heights for different screen sizes
- Maintained accessibility with reduced motion support
Technical Improvements:
- Fixed JSX syntax errors in TemplateManagement and ModelList
- Improved component structure for better maintainability
- Added comprehensive CSS classes for scroll management
- Enhanced performance with optimized overflow handling
All pages now provide a smooth, professional scrolling experience while keeping the navigation always accessible.
2025-07-15 20:18:28 +08:00
imeepos
887f5de793
feat: Complete Modal and Tab UI/UX optimization
...
Enhanced Modal Components:
- Optimized DeleteConfirmDialog with beautiful gradients and improved layout
- Enhanced MaterialEditDialog with modern design and better information hierarchy
- Improved TemplateDetailModal with elegant header and refined tab navigation
- Enhanced AiClassificationFormDialog with modern styling
Unified Tab System:
- Created reusable TabNavigation component with multiple variants (default, pills, underline)
- Implemented consistent tab design across ProjectDetails and other pages
- Added support for icons, counts, and disabled states in tabs
- Improved accessibility and keyboard navigation
Advanced Animations:
- Added comprehensive modal animations (fade-in, scale-in, slide-in)
- Enhanced backdrop blur effects and smooth transitions
- Implemented proper enter/exit animations for better UX
- Added reduced motion support for accessibility
Responsive Design:
- Optimized modal layouts for mobile, tablet, and desktop
- Improved touch-friendly interactions for mobile devices
- Enhanced modal sizing and positioning across screen sizes
- Added proper scrolling and overflow handling
Interaction Improvements:
- Enhanced ESC key support for modal closing
- Improved backdrop click handling
- Better focus management and keyboard navigation
- Consistent button styling and hover effects
All modal and tab components now follow unified design language while maintaining full functionality.
2025-07-15 20:09:54 +08:00
imeepos
5d86a6411f
feat: Complete UI/UX optimization v0.1.21 - Final enhancements
...
- Enhanced TemplateManagement page with beautiful header and improved layout
- Optimized TemplateCard with gradient backgrounds and refined visual effects
- Improved empty state design with elegant icons and better messaging
- Enhanced pagination component with modern styling
- Added comprehensive responsive design optimizations for mobile and tablet
- Implemented touch-friendly interactions for mobile devices
- Added support for different screen orientations and pointer types
- Enhanced animations with device-specific optimizations
- Improved accessibility with proper touch target sizes
- Added dark mode support and high-resolution display optimizations
- Completed comprehensive design system with reusable components
- All pages now follow consistent visual design language
2025-07-15 19:52:31 +08:00
imeepos
19903303ae
feat: UI/UX optimization v0.1.21 - Enhanced visual design and user experience
...
- Unified color system with modern blue theme
- Enhanced ProjectCard with beautiful gradients and hover effects
- Improved Navigation with modern logo and enhanced link styles
- Optimized ProjectDetails page with elegant header and statistics cards
- Enhanced ModelCard and ModelList with refined visual effects
- Improved AiClassificationSettings with beautiful page header
- Optimized TemplateManagement with modern design elements
- Added comprehensive design system with reusable component styles
- Enhanced animations and transitions for smoother interactions
- Improved responsive design for better mobile and tablet experience
- Added support for dark mode and high-resolution displays
- Maintained existing functionality while improving visual appeal
2025-07-15 19:45:02 +08:00
imeepos
fed5cdd73d
fix: UI 样式优化
2025-07-15 19:42:39 +08:00
imeepos
888675dbf1
fix: 修复 素材列表 tag项目不触发数据更新
2025-07-15 19:06:29 +08:00
imeepos
bc5d9d1054
fix: 修复素材查询
2025-07-15 19:00:58 +08:00
imeepos
0ea1b2cd38
fix: 添加只读链接 读写分离
2025-07-15 18:51:09 +08:00
imeepos
8d8e98188d
fix: 添加连接池功能
2025-07-15 18:43:22 +08:00
imeepos
86eeb90fb8
fix: 使用非阻塞锁获取
2025-07-15 18:20:00 +08:00
imeepos
6dcbd4a6e1
fix: 数据库链接 锁问题
2025-07-15 18:10:54 +08:00
imeepos
67ce7104e3
fix: 将所有仓库统一使用 database: Arc<Database> 方式
2025-07-15 17:45:08 +08:00
imeepos
54630ea2ff
fix: 修复数据库链接锁问题
2025-07-15 17:11:44 +08:00
imeepos
590e254fe1
feat: 添加项目详情/素材管理的MaterialSegment聚合视图功能
...
- 新增MaterialSegment聚合视图,支持按AI分类和模特聚合展示
- 实现后端MaterialSegmentViewService和相关API命令
- 创建前端React组件:MaterialSegmentView、MaterialSegmentGroup、MaterialSegmentCard等
- 添加MaterialSegment详细信息模态框和批量操作对话框
- 实现搜索、筛选、排序、分页功能
- 集成虚拟滚动和性能优化
- 在ProjectDetails页面添加片段管理选项卡
- 遵循promptx开发规范和UI/UX设计标准
2025-07-15 16:49:08 +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
96b420e149
fix: 优化素材绑定页面UI布局和代码格式
...
- 清理多余的空行,优化代码格式
- 调整模特选择下拉框位置,移到批量操作区域
- 改善筛选区域的布局结构
- 保持UI组件的逻辑分组和视觉一致性
2025-07-15 14:24:28 +08:00
imeepos
37cf8bb75a
feat: 为素材绑定页面添加项目筛选功能
...
- 添加项目筛选下拉框,支持按项目过滤素材
- 集成useProjectStore获取项目列表
- 修改loadMaterials函数支持项目ID筛选参数
- 在搜索条件变化时包含项目筛选条件
- 优化筛选UI布局,项目筛选位于绑定状态筛选之前
- 支持全部项目和特定项目的素材筛选功能
2025-07-15 14:23:26 +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
03f410601a
fix: 模板绑定批量删除后自动刷新列表
...
- 在ProjectDetails页面中修改批量删除回调,删除成功后自动重新获取模板绑定列表
- 简化store中batchDeleteBindings的实现,移除复杂的本地状态更新逻辑
- 确保批量删除操作完成后UI显示最新的数据状态
- 保持与单个删除操作一致的刷新机制
- 删除操作完成后清空选中状态,提升用户体验
2025-07-15 13:55:10 +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
ba34481052
fix: 修复MaterialCard中get_model命令未找到的错误
...
- 将MaterialCard组件中的'get_model'命令调用修改为'get_model_by_id'
- 确保前端调用的命令名称与后端注册的命令名称一致
- 解决'Command get_model not found'错误
- 修复素材卡片中获取关联模特信息失败的问题
2025-07-15 13:44:07 +08:00
imeepos
cc46115a26
fix: 修复素材导入时model_id为空的问题并添加调试日志
...
- 修复异步导入函数process_single_file_with_full_logic未使用model_id参数的问题
- 更新函数签名以正确传递model_id参数
- 在素材创建时使用Material::new_with_model而不是Material::new
- 在前端、Store层、后端各个环节添加详细的调试日志
- 确保model_id在整个导入流程中正确传递和使用
- 解决素材导入时选择模特但数据库中model_id为null的问题
2025-07-15 13:40:47 +08:00
imeepos
7e9190dd02
fix: 修复项目模板绑定priority列类型错误
...
- 修复project_template_binding_repository中priority列的类型不一致问题
- 将priority和is_active字段的存储从字符串改为整数类型
- 修复create、update和query操作中的类型转换错误
- 解决'Invalid column type Integer at index: 5, name: priority'错误
- 确保数据库schema与代码中的类型处理保持一致
2025-07-15 13:31:48 +08:00
imeepos
259ff992ae
fix: 修复素材导入时model_id为null的数据库问题
...
- 在materials表初始创建时添加model_id列,避免依赖迁移
- 在初始索引创建中添加model_id索引
- 添加调试日志跟踪model_id在导入过程中的传递
- 确保素材导入时选择的模特ID能正确保存到数据库
- 解决素材导入+选择模特后数据库结果model_id=null的问题
2025-07-15 13:28:47 +08:00
imeepos
5686af3199
fix: 修复MaterialEditDialog中list_models命令不存在的错误
...
- 将MaterialEditDialog.tsx中的'list_models'调用改为'get_all_models'
- 确保前端调用的命令名称与后端注册的命令名称一致
- 解决'Command list_models not found'错误
2025-07-15 13:24:37 +08:00
imeepos
0b9a90771a
fix: 修复CustomSelect组件null值警告
...
- 修复ProjectTemplateBindingList中activeFilter为null时传递给select元素的问题
- 更新getActiveFilterOptions函数,将null值改为空字符串
- 改进CustomSelect组件的类型定义和null值处理
- 添加safeValue转换确保select元素接收有效的字符串值
- 解决React警告:'value prop on select should not be null'
2025-07-15 13:21:30 +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
9aa2cdd49f
feat: 添加素材删除和重新处理功能
...
- 在MaterialCard组件中添加删除按钮,使用DeleteConfirmDialog替代window.confirm
- 在MaterialCard组件中添加重新处理按钮,当素材状态为Pending时显示
- 在ProjectDetails页面中添加删除和重新处理的处理函数
- 遵循Tauri开发规范和前端开发规范
- 实现了统一的删除确认对话框UI交互
2025-07-15 13:12:01 +08:00
imeepos
3f90013a47
feat: 完善素材导入模特绑定功能并添加测试
...
- 添加测试验证 CreateMaterialRequest 的 model_id 字段
- 添加测试验证 Material::new_with_model 方法
- 更新测试导入以包含新的 model_id 字段
- 确保数据结构和方法的正确性
2025-07-15 13:03:49 +08:00