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
|
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
|
e3037916c0
|
feat: 实现一键匹配功能 (v0.1.26)
- 新增一键匹配后端服务,支持遍历项目模板绑定并逐一匹配
- 在项目详情页添加一键匹配按钮,支持批量匹配操作
- 实现批量匹配进度管理,包括实时进度跟踪和取消功能
- 添加一键匹配结果汇总,包含详细统计和报告导出功能
- 新增批量匹配相关组件:进度对话框、结果对话框、汇总卡片
- 遵循 promptx/tauri-desktop-app-expert 开发规范
- 支持错误处理、状态管理和用户体验优化
|
2025-07-16 21:52:48 +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
|
1d6de409ed
|
feat: 实现模板匹配结果保存和管理功能
- 新增模板匹配结果数据模型和数据库表结构
- 实现匹配结果Repository层,支持CRUD操作和查询
- 实现匹配结果Service层,提供业务逻辑和统计功能
- 新增Tauri命令接口,支持前端调用
- 实现前端TypeScript类型定义
- 更新MaterialMatchingService,支持自动保存匹配结果
- 新增前端管理界面组件:
- TemplateMatchingResultManager: 主管理界面
- TemplateMatchingResultCard: 结果卡片组件
- TemplateMatchingResultDetailModal: 详情模态框
- TemplateMatchingResultStatsPanel: 统计面板
- 编写完整的单元测试
- 新增API文档
功能特性:
- 保存匹配结果到数据库,包含成功和失败片段详情
- 支持匹配结果的查询、过滤、排序和分页
- 提供匹配统计信息和质量评分
- 支持软删除和批量操作
- 完整的前端管理界面,支持查看、编辑、删除操作
|
2025-07-16 13:34:32 +08:00 |
imeepos
|
ef4c047b30
|
fix(template-matching): 修复模板素材匹配逻辑
修复的问题:
- 固定素材被错误计入失败统计,导致成功率偏低
- 素材未切分时无可用片段,导致匹配完全失败
- 模板绑定验证逻辑未实现,返回空数据
- 时长单位不一致影响匹配准确性
主要改进:
- 固定素材现在正确跳过匹配,不计入失败数
- 实现虚拟片段机制,为未切分素材创建虚拟片段
- 完善模板绑定验证逻辑,正确统计片段数量
- 修正时长单位转换,确保匹配准确性
- 增强错误信息,提供更详细的匹配失败原因
修复效果:
- 修复前: 0个可用片段 匹配完全失败
- 修复后: 44个可用片段 匹配正常工作
- 三种匹配规则(固定素材/AI分类/随机匹配)现在都能正常工作
技术细节:
- 在匹配前过滤固定素材,避免错误统计
- 为每个分类记录创建对应的虚拟片段
- 成功率基于可匹配片段计算,更准确反映匹配质量
- 实现完整的模板绑定验证,支持匹配预估
|
2025-07-16 00:56:51 +08:00 |
imeepos
|
67ce7104e3
|
fix: 将所有仓库统一使用 database: Arc<Database> 方式
|
2025-07-15 17:45: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 |