wanghanlin
|
d0cd06f9fc
|
fix(document): 修复批量上传向量化只成功小文档问题并加固处理链路
- 移除逐 chunk 串行 AI 关键词提取(MyKeywordEnricher):产出 excerpt_keywords 全库无检索消费点,却将外部调用放大 chunkCount 倍且与在线对话共用模型抢限流
- 向量化改按批入库(默认 50 块/批, knowledge.vector.batch-size)逐批 try-catch 隔离:失败批只记录缺失区间继续,已入库块保留,error_message 聚合"已入库 x/y 块+缺失区间+原因",chunk_count 改为实际入库块数
- 新增文档级失败自动整体重试(≤2 次, 仅 timeout/429/5xx 等瞬时错误):重试前清残留向量防重复;处理期间删除文档即终止写入避免孤儿向量;外层兜底保证状态不悬挂 PROCESSING
- Embedding 客户端(DashScope/OpenAI 兼容/豆包多模态)补显式 connect 10s/read 60s 超时,避免慢响应无限挂起占死 documentExecutor 线程
- 文档同步 CLAUDE.md/README.md,新增 knowledge.vector.batch-size 配置说明
|
2 months ago |
wanghanlin
|
2668b8e73b
|
feat(document): 文档列表支持移动到目录(统一分类根/目录)
- 后端 moveDocuments 统一移动:目标为目录时校验存在并强制采用目录所属分类,分类变更时同步 vector_store 的 categoryId metadata
- DocumentController 批量移动接口新增 folderId 参数(extractLong 兼容雪花 ID 字符串)
- 前端 DocList 新增单行/批量「移动」弹窗,复用目录树 t-tree 选目标,替换原「移动分类」
|
2 months ago |
wanghanlin
|
1ffd960377
|
feat(document): 目录树独立滚动与文件夹上传完善
- 文档列表目录树独立滚动
- 上传页目录选择器改为先选分类再选目录
- 文件夹上传标题剥离目录前缀(原样文件名)
- 部分文件失败时弹窗按原因分组展示失败明细
|
2 months ago |
wanghanlin
|
780917561b
|
feat(document): 新增知识库文档目录(文件夹)功能
- 新增 KnowledgeFolder 实体/Mapper、FolderService、FolderController,支持目录树增删改查
- 文档新增 folderId 字段,列表支持按目录筛选与服务端排序
- 新增文件夹批量上传(按相对路径自动创建子目录)
- 文档列表页新增左侧目录树面板,上传页新增目录选择与文件夹上传
|
2 months ago |
wanghanlin
|
8256e9ee85
|
fix(upload): 文档上传去重改为仅同分类内查重
去重范围从全局收窄为按分类:checkContentDuplicate 增加 category_id 条件,不同分类允许内容重复,未分类按 0 归并;修正误导文案并改用 selectList 规避多结果异常
|
2 months ago |
wanghanlin
|
ba3393d897
|
重构后台前端项目,整体迁移到TDesign Starter for Vue架构下,并已全部测试通过
|
3 months ago |
wanghanlin
|
91c4c185b3
|
重构(AI对话): 统一对话管道,收敛接口形态,补齐Open API能力
|
3 months ago |
wanghanlin
|
14c5ccf6ab
|
、API Key 绑定客服角色、编写 SDK 集成文档
|
4 months ago |
wanghanlin
|
631398833a
|
添加文件存储和下载功能
|
4 months ago |
wanghanlin
|
db68b13cad
|
修复配置管理编辑保存报错问题
|
4 months ago |
wanghanlin
|
db292ff4d0
|
fix(知识库): 修复文档分块查询和切换状态功能
- 修复 vector_store 表缺少 create_time 列导致分块查询失败
- 添加幂等迁移方法,自动为 vector_store 表添加 create_time 列
- 兼容 Spring AI 自动建表时不含此列的情况
- 修复切换文档启用/禁用状态失败
- 解决 PostgreSQL json/jsonb 类型不匹配问题
- 使用 metadata::jsonb 显式类型转换
- 统一 enabled 值写入为字符串类型,与搜索过滤条件一致
- 修复批量启用/禁用文档功能
- 同步修复 batchToggleDocuments 方法的相同问题
影响范围:
- 文档分块查看/编辑/删除功能恢复正常
- 文档启用/禁用功能恢复正常
- 批量操作功能恢复正常
测试验证:
- 文档分块查询:✅ 通过
- 切换文档状态:✅ 通过
- 批量启用文档:✅ 通过
- 全量回归测试:✅ 无新增问题
|
4 months ago |
wanghanlin
|
0414e209cb
|
大模型配置管理功能增强
|
4 months ago |
wanghanlin
|
e5cf51c507
|
知识库文档管理 P0 阶段功能完善与体验优化
- 新增文档关键词搜索(title + source_name LIKE 查询,前端 300ms 防抖)
- 文档列表增加文件大小(formatBytes)和分类名称列
- 分类管理支持编辑弹窗、树形层级展示(最多3级)、创建时选择父分类
- 新建 DocumentProcessingService 异步处理服务,上传/重处理改为同步插入
PROCESSING 记录 + 异步执行,前端自动轮询状态
- 修复分页参数越界、LIKE 通配符未转义、异步删除竞态条件等安全问题
- 修复全选 checkbox 始终选中、分类排序方向不一致、文本上传缺少认证头等缺陷
- 移除 DocUpload.js 遗留调试日志
|
4 months ago |
pyx
|
1e0c9a7f11
|
智能客服支持角色知识库并修复 SDK 历史会话隔离
|
4 months ago |
wanghanlin
|
f7eb0bfaf1
|
feat(P0): 完成阶段一全部需求 — 混合检索/内容安全/用户反馈/FAQ精准匹配
P0-001 混合检索+重排序引擎:
- HybridSearchService 支持 VECTOR/KEYWORD/HYBRID 三种检索模式
- RrfFusion RRF 融合算法 (k=60)
- RerankerService 支持 DashScope + OpenAI 兼容多提供商
- vector_store 新增 content_tsvector 列 + GIN 索引 + 触发器
- DocSearch.js 增加检索模式下拉选择
P0-004 内容安全过滤:
- ContentSafetyService DFA 字典树引擎(volatile + copy-on-write 线程安全)
- ContentSafetyAdvisor BaseAdvisor 实现,输入/输出双向审核
- SensitiveWordService 敏感词 CRUD + 批量导入 + 字典树热加载
- SensitiveWordManager.js 前端管理组件
P0-002 用户反馈系统:
- MessageFeedbackService upsert 语义反馈提交 + 统计 API
- ChatPanel.js 添加 👍/👎 反馈按钮
- Chat SDK handleFeedback() 对接后端 POST /feedback
- ConversationService 导出集成反馈信息
P0-003 意图识别+FAQ精准匹配:
- IntentRouter LLM 意图分类(FAQ/RAG/CHITCHAT)
- FaqMatchEngine 三级匹配(精确→关键词→向量语义,阈值 0.85)
- FaqService FAQ CRUD + 异步向量化
- FaqManager.js 前端管理(CRUD + 批量导入/导出 + 启用/禁用)
共享变更:
- DatabaseInitConfig 新增 5 张表 + 全文检索初始化
- api.js 新增反馈/敏感词/FAQ API 封装
- app.js 注册 SensitiveWordManager + FaqManager 组件
- application.yml 新增 knowledge.faq.semantic-threshold 配置
|
4 months ago |
pyx
|
dd103639f8
|
初次提交
|
4 months ago |
wanghanlin
|
6f861fcf79
|
二期-文档列表完善批量操作、上传校验、去重、分块配置与上传进度功能
|
4 months ago |
wanghanlin
|
95a54f3c87
|
一期
|
4 months ago |