wanghanlin
|
9338fcbd5f
|
feat(security): JWT token_version 服务端撤销与登录安全加固
- 新增 token_version 服务端撤销机制:改密/禁用/角色变更/登出时自增,使已签发 token 立即失效
- refresh token 从 localStorage 迁移到 httpOnly Cookie,access token 有效期缩短至 15 分钟
- 新增登录失败锁定(LoginAttemptService)与密码强度校验(PasswordValidator)
- SDK JWT 密钥支持环境变量注入,使用默认密钥时告警
修复:
- assignRoles 角色未变化仍自增 token_version,导致用户新建用户时 token 被误失效而跳转登录
- 角色 ID 解析兼容前端字符串传输,避免雪花 ID 精度丢失导致 ClassCastException
- updateFill 改用 setFieldValByName,修复 update_time 未自动填充的问题
|
3 weeks ago |
wanghanlin
|
d6a20f228a
|
feat: 支持图片/附件 SFTP 上传、多模态对话与 FAQ Markdown 编辑器
后端:
- 新增 SFTP 附件上传服务与 /attachment/upload 接口
- 新增 StorageProperties 集中化存储配置(支持 DataSize 50MB)
- ChatContext 新增 imageUrls,AI 调用链路透传多模态图片
- AssistantApp 构造 UserMessage(text, Media) 实现视觉输入
- ContentSafetyAdvisor MASK 脱敏时保留原消息图片 Media
- 配置拆分到 application-dev.yml / application-prod.yml(对齐参考项目)
前端:
- 对话面板支持图片/附件上传与缩略图/下载链接展示
- chat.ts 透传 imageUrls,chatAdapter 增加 Attachment 模型
- FAQ 编辑器替换为 md-editor-v3,支持粘贴图片自动上传
- FAQ 表格答案摘要去除 markdown 语法
- UI-DEV-GUIDE 补充 FormDrawer 使用规范
|
3 weeks ago |
wanghanlin
|
321bee93ff
|
fix(mcp): 修复 SSE 端点带路径前缀时连接 404
HttpClientSseClientTransport 内部用 URI.resolve 拼接端点,对以 / 开头的
sseEndpoint 会整体替换 path,导致 /mcp-cdw/sse 被解析成 /sse 丢失前缀。
改为显式拆分 origin 与 path,分别作为 baseUri 与 sseEndpoint 传入,
并兼容用户填 base 或完整 SSE URL 两种写法。
|
3 weeks ago |
wanghanlin
|
a1328994a5
|
feat(mcp): MCP 服务配置支持自定义请求头鉴权
- mcp_server_config 新增 headers JSONB 字段,SSE 模式通过 customizeRequest 注入请求头
- 敏感头(Authorization 等)返回前脱敏,更新时未改动保留原值
- DatabaseInitConfig 与 init-database.sql 同步新增 headers 列迁移
- McpClientManager 增加 @DependsOn(databaseInitConfig) 保证列迁移先于客户端加载
- 前端 MCP 配置弹窗新增请求头输入框
|
4 weeks ago |
wanghanlin
|
23f195326d
|
feat(llm-trace): 提示词追踪增强与缺陷修复
新增追踪字段与落库链路:
- FAQ 命中详情(faqId/faqQuestion/faqMatchType/faqScore)
- 错误分类(errorType/errorMessage)与 Token 用量三档
- MCP 工具调用事件(toolCallsJson)、多轮历史(historyMessagesJson/historyTurns)
- RAG 命中片段(ragHitsJson)、检索模式(searchMode)、账户/API Key
- 数据库迁移新增 13 列 + 3 索引,同步 init-database.sql
前端增强:
- 筛选新增 API Key / 错误类型下拉,列表新增 RAG 列与刷新按钮
- 详情 Tab 扩展 FAQ / 工具调用 / 对话上下文,Prompt 关键词搜索高亮
- 新增会话时间线抽屉、调用趋势图(Chart.js 双轴折线)
缺陷修复:
- MCP 工具事件采集改用 ToolContext 显式收集器,修复 Reactor 流式跨线程丢 ThreadLocal 导致 toolCallsJson 为空
- 趋势统计 GROUP BY 别名改为 date_trunc 表达式,修复 PostgreSQL 语法错误
- 详情表格移除重复 row-key,新增 /error-types 与 /trend 接口
|
4 weeks ago |
wanghanlin
|
2fe322aa7d
|
完成「LLM 调用追踪面板」开发
|
4 weeks ago |
wanghanlin
|
a8cb53b171
|
fix(mcp): MCP 客户端服务端重启后自动重连
|
1 month ago |
wanghanlin
|
1ed6c8fb43
|
新增反馈运营看板
|
1 month ago |
wanghanlin
|
bfb5a66393
|
AI回复增加推荐问题功能
|
1 month ago |
wanghanlin
|
de38fc4b90
|
调试日志:输出 MCP 调用原始返回结果
|
2 months ago |
wanghanlin
|
527d9e71b7
|
AI 对话执行链路流程图
|
2 months ago |
wanghanlin
|
f397fda3ca
|
修复 API Key 日志泄露、模型配置缓存、JWT 误报、IntentRouter JSON 解析异常、事务噪声及 MCP 超时重连
|
2 months ago |
wanghanlin
|
4eb726a056
|
SDK 聊天窗口底部的保密声明
|
2 months ago |
wanghanlin
|
b9e14a2547
|
优化回答规则提示词并修复SSE流式换行丢失
|
2 months ago |
wanghanlin
|
14c5ccf6ab
|
、API Key 绑定客服角色、编写 SDK 集成文档
|
2 months ago |
wanghanlin
|
631398833a
|
添加文件存储和下载功能
|
2 months ago |
wanghanlin
|
5ab0cc756a
|
优化客服角色管理页面,修复角色数据重启后被覆盖的问题
|
2 months ago |
wanghanlin
|
8c02a3f054
|
为客服角色管理页面的字段添加 label
并移除排序字段
|
2 months ago |
wanghanlin
|
747a9ab558
|
支持mcp服务加入对话链
|
2 months ago |
wanghanlin
|
db292ff4d0
|
fix(知识库): 修复文档分块查询和切换状态功能
- 修复 vector_store 表缺少 create_time 列导致分块查询失败
- 添加幂等迁移方法,自动为 vector_store 表添加 create_time 列
- 兼容 Spring AI 自动建表时不含此列的情况
- 修复切换文档启用/禁用状态失败
- 解决 PostgreSQL json/jsonb 类型不匹配问题
- 使用 metadata::jsonb 显式类型转换
- 统一 enabled 值写入为字符串类型,与搜索过滤条件一致
- 修复批量启用/禁用文档功能
- 同步修复 batchToggleDocuments 方法的相同问题
影响范围:
- 文档分块查看/编辑/删除功能恢复正常
- 文档启用/禁用功能恢复正常
- 批量操作功能恢复正常
测试验证:
- 文档分块查询:✅ 通过
- 切换文档状态:✅ 通过
- 批量启用文档:✅ 通过
- 全量回归测试:✅ 无新增问题
|
2 months ago |
wanghanlin
|
43449bc59a
|
fix(model-config): AI 大模型配置管理全面排查修复(20 项)
后端修复:
- 修复 updateConfig 激活逻辑竞态条件:appType 变更时只停用目标类型的活跃配置
- 修复 getConfigDetail 直接修改 MyBatis 缓存实体的安全隐患,改为防御性拷贝
- 修复 persistExtraConfig 异常被静默吞掉的问题,改为抛出异常触发事务回滚
- 修复 deleteConfig 缺失 @Transactional 注解
- 修复 updatePriority 未校验配置存在性
- 修复 updateConfig 空 apiKey(trim 后)会覆盖已有值的问题
- createConfig 增加 provider 字段非空校验
- 导入接口增加 100 条数据量限制,导出接口移除 maskApiKey 参数强制脱敏
- ChatModelFactory.testConnection 使用专用线程池替代 ForkJoinPool.commonPool
- EmbeddingModelFactory RetryTemplate 显式设置最大重试次数
- ModelConfigLoader 增加 RERANK 类型启动校验
- RERANK 健康状态从误报 ONLINE 改为 UNKNOWN
- listConfigs 从原生 SQL 重构为 MyBatis Plus LambdaQueryWrapper
前端修复:
- 新建模式切换提供商时始终重置 model_name 为新提供商默认模型
- 编辑模式切换提供商时清理不属于新提供商的无效 model_name
- extraConfig 始终发送(含空对象),确保后端能清空已废弃的高级参数
- 关闭导入弹窗时重置预览和结果状态
- 健康看板支持 UNKNOWN 状态(🟡 未检测)展示
|
2 months ago |
wanghanlin
|
e2ff2a9c3d
|
修复DatabaseInitConfig数据库初始化遗漏问题
|
2 months ago |
wanghanlin
|
0414e209cb
|
大模型配置管理功能增强
|
2 months ago |
wanghanlin
|
cdaff49533
|
优化前端操作交互体验。
ai大模型配置错误不影响启动服务。
去除后台系统提示词,直接使用前端角色设定提示词。
|
2 months ago |
pyx
|
1e0c9a7f11
|
智能客服支持角色知识库并修复 SDK 历史会话隔离
|
3 months ago |
wanghanlin
|
dec3d19f3c
|
用户认证/运营看板/API开放平台
|
3 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 配置
|
3 months ago |
wanghanlin
|
8e586a8c35
|
求移除未使用的 PRODUCT_EXTRACT(商品信息抽取)类型配置
|
3 months ago |
wanghanlin
|
f73aee1616
|
中移除 AI 大模型配置相关的初始化数据
|
3 months ago |
wanghanlin
|
26d6f9823b
|
增加项目数据库初始化sql
增加前端模型配置校验
设置默认向量维度为1024(豆包模型低向量维度)
|
3 months ago |
wanghanlin
|
476e34f704
|
ChatSDK完善客服 SDK 的页面样式与交互功能。两轮共落地 13 项改进(快捷问题、暗色模式、停止生成、消息反馈、a11y等)
增加开发、生产配置文件
增加部署文档DEPLOY.md
|
3 months ago |
wanghanlin
|
ed3f3b3070
|
豆包多模态向量模型能正常工作
|
3 months ago |
wanghanlin
|
c4af6699cf
|
把嵌入模型支持从仅千问扩展到多厂商。前端限制、后端自动覆盖
|
3 months ago |
pyx
|
d3ed72f62b
|
fix: restore model config flow and make RAG optional
|
3 months ago |
pyx
|
9482a9e573
|
样式调整,角色账号权限初始化提交
|
3 months ago |
wanghanlin
|
f79350c363
|
完成了模型配置管理页面(5家AI提供商集成+运行时动态切换)
|
3 months ago |
pyx
|
dd103639f8
|
初次提交
|
3 months ago |
wanghanlin
|
4a69fa047f
|
三期- 前端会话管理功能
- 统计卡片:展示总会话数、总消息数、今日会话、今日消息
- 搜索栏:支持按会话ID或消息内容模糊搜索
- 会话列表表格:展示会话ID、消息数、最后消息时间、预览
- 消息详情弹窗:分类展示用户/AI/系统消息,带时间戳
- 导出功能:一键下载 .txt 格式的会话记录
- 删除功能:逻辑删除整会话的所有消息
|
3 months ago |
wanghanlin
|
6f861fcf79
|
二期-文档列表完善批量操作、上传校验、去重、分块配置与上传进度功能
|
3 months ago |
wanghanlin
|
95a54f3c87
|
一期
|
3 months ago |
hygl
|
f937ea2756
|
AI 应用接口开发, 支持流式输出
|
1 year ago |
hygl
|
936bcbdc70
|
新增查询重写器、翻译器、压缩器和多查询扩展器
|
1 year ago |