8 Commits

Author SHA1 Message Date
ymq
789960a1cf refactor(schema): rag 模块全部数据表加 rag_ 前缀(模块跨应用复用防冲突)
- models/ 重建为正确表定义格式(summary+fields+indexes),覆盖全部 11 个表
  修正原 models/ 误放 CRUD 格式副本(缺 summary)导致 json2ddl 100% 失败被静默忽略
- json/ 6 个 CRUD 定义 tblname 加前缀 + 文件改名
- 129 处 SQL/sor 表名加 rag_ 前缀(URL 路径 knowledge_bases_list 保持不变)
- 新增 init/migrate_rag_prefix.sql 幂等 RENAME TABLE 迁移
2026-08-25 14:24:37 +08:00
rag
9c602a0e8d fix: media_cards 标签同时读取 media_tags 表和 metadata.tags 2026-08-12 10:59:24 +08:00
rag
afae286434 fix: 声纹页面修复 - 移除broken quotes+暂时跳过tags查询 2026-08-11 18:06:43 +08:00
rag
51ea4096aa fix: 声纹页面显示+tags查询sqlor兼容 2026-08-11 18:01:09 +08:00
rag
da0ec1397b fix: 声纹页面查询包含已提取声纹的视频 2026-08-11 17:11:31 +08:00
1dd59f7caa feat(tags): multi-select tag list + dedup create + tag_sync endpoint
- tag_form.dspy: rewrite as multi-select checkbox list (clickable rows with toggle)
  + input field for new tag with + button (calls /api/tag/create with dedup)
  + submit button calls /api/tag/sync to sync media_tags
  + dynamically add new tag row to list after creation
- media_cards.dspy: read tags from media_tags table instead of metadata
- init.py: tag_create_handler adds dedup (check existing by kb_id+name)
- init.py: new tag_sync_handler (full sync: delete old + insert selected)
- config.json: add /api/tag/sync route
2026-08-05 15:36:44 +08:00
267fd276c5 fix: escape literal % in LIKE patterns (aiomysql %-format conflict -> TypeError) 2026-08-05 11:55:18 +08:00
3cb591ed92 feat: detail.ui face/voiceprint media card popups (DynamicColumn, image/audio playback) + tag buttons on cards and file list rows (tag_form.dspy -> add_tag.dspy, refresh media panel) 2026-08-05 10:55:50 +08:00