Commit Graph

130 Commits

Author SHA1 Message Date
Wenjie Zhang
2f9b134242 fix: 修复文件上传API中的jsonl文件类型不支持的问题;fix: #300
- 添加了 allow_jsonl的参数在Graph的接口处
2025-10-17 12:15:40 +08:00
Wenjie Zhang
a0194b8e09 feat: 更新 MinIO 上传功能,支持指定存储桶并添加公共读取策略,修复文件上传bug 2025-10-16 14:12:59 +08:00
Wenjie Zhang
8514f18985 style: 登录样式更新 2025-10-15 22:24:33 +08:00
Wenjie Zhang
578682abfa feat: 优化聊天代理功能,增加时间成本计算;调整对话状态管理,确保消息流处理更流畅;更新样式以提升用户体验。 2025-10-15 02:37:42 +08:00
Wenjie Zhang
50d2cf850f feat: 更新模型配置和选择逻辑,修改为通过 model_spec 统一指定模型格式 2025-10-14 02:27:15 +08:00
Wenjie Zhang
be40799af9 style: 更新多个组件以使用分段控件替代按钮组 2025-10-14 01:46:43 +08:00
Wenjie Zhang
5894231d35 Merge branch 'main' of github.com:xerrors/Yuxi-Know 2025-10-13 17:30:17 +08:00
Wenjie Zhang
f8cee206c8 feat: 添加用户表软删除字段迁移脚本,更新数据库迁移逻辑以支持新字段 2025-10-13 17:29:59 +08:00
Wenjie Zhang
5871defc4e feat: 添加登录请求速率限制中间件,防止暴力破解密码 2025-10-13 15:26:36 +08:00
Wenjie Zhang
b36f6e78f3 refactor(time): 重构应用程序中的日期时间处理
- 新增工具模块 `datetime_utils.py`,用于统一处理UTC和上海时区
- 在 `manager.py`、`models.py` 等后端文件中,将直接操作日期时间的代码替换为工具函数
- 更新前端组件,使用 `dayjs` 进行时区感知的日期格式化和解析
- 移除冗余的日期格式化逻辑,将其集中到工具函数中
- 通过确保所有时间戳均以亚洲/上海时区显示,提升用户体验
2025-10-13 15:08:54 +08:00
Wenjie Zhang
a97d72c270 fix: 修复Dashboard中的数据加载问题,添加对话的更新时间 2025-10-13 12:37:06 +08:00
Wenjie Zhang
6986378e02 fix: 修复消息中断时带来的消息显示问题 2025-10-12 23:45:17 +08:00
Wenjie Zhang
4bc9a7010f fix: 优化消息保存逻辑,避免重复保存用户消息,简化日志记录 2025-10-12 21:12:52 +08:00
Wenjie Zhang
3600c7f9b7 fix: 修复部分场景下历史记录保存异常的问题。回退到使用 AsyncSaver的双线备份消息模式 2025-10-12 16:04:46 +08:00
Wenjie Zhang
2ac690eb81 feat: 更新聊天代理和任务管理器,支持通过线程ID管理消息,优化日志记录和敏感内容检查 2025-10-12 13:09:29 +08:00
Wenjie Zhang
54bb8e1e4f fix: 将异步写入函数改为同步,以确保文件写入的稳定性 2025-10-12 02:09:33 +08:00
Wenjie Zhang
246e133eb4 feat: 添加文件内容哈希计算功能,防止重复文件上传并更新相关逻辑 2025-10-11 21:52:48 +08:00
Wenjie Zhang
c8ea1e7179 feat: 添加软删除功能,更新用户模型和相关路由以支持用户注销和状态检查 2025-10-11 20:19:09 +08:00
Wenjie Zhang
43ec5a4a71 feat: 实现异步任务管理系统和任务中心UI
## 后端变更

  ### 任务管理核心
  - 新增 tasker 服务,支持异步任务队列和工作线程池
  - 添加任务执行时间追踪(started_at, completed_at)
  - 实现任务状态持久化(JSON文件存储)
  - 支持任务取消和进度更新

  ### 知识库导入优化
  - 将知识库文档导入改为异步任务处理
  - 逐个处理文档并实时更新进度(5% → 95%)
  - 支持任务取消检测

  ### API接口
  - 新增任务列表、详情、取消等REST API
  - 任务API需要管理员权限

  ### 测试
  - 添加任务路由集成测试

  ## 前端变更

  ### 任务中心UI
  - 新增任务中心抽屉组件,采用简洁的卡片式设计
  - 支持任务状态筛选(全部/进行中/已完成/失败)
  - 进行中任务显示实时进度条
  - 已完成任务显示执行时长和完成状态徽章
  - 支持相对时间显示(如:5分钟前)

  ### 状态管理
  - 新增 tasker store,管理任务列表和轮询
  - 支持任务注册、刷新、取消操作

  ### 交互优化
  - 在状态栏和侧边栏添加任务中心入口
  - 显示活跃任务数量徽章
  - 知识库导入自动注册到任务中心
2025-10-11 15:02:24 +08:00
Wenjie Zhang
c3a8360a77 fix: 修复 doc 解析的问题,并增加文件类型支持检查和相关API
- 在文件上传功能中添加对不支持文件类型的检查,返回400错误。
- 新增获取支持文件类型的API接口。
- 更新前端文件上传组件,动态加载支持的文件类型并提供用户提示。
2025-10-11 10:36:57 +08:00
Wenjie Zhang
d7e0b229c6 fix: 修复删除用户异常的问题 2025-10-11 00:43:30 +08:00
Wenjie Zhang
a31f60b0a6 refactor!: 移除自定义模型支持 2025-10-10 14:59:12 +08:00
Wenjie Zhang
02dff554ac feat(dashboard): 增强反馈列表功能,支持用户信息展示
- 在反馈列表中新增用户的用户名和头像字段
- 更新后端接口以支持根据智能体ID过滤反馈记录
- 前端实现反馈详情模态框,提升用户交互体验
- 优化反馈数据的查询逻辑,确保隐私合规性
2025-10-08 22:36:35 +08:00
Wenjie Zhang
cfc9b903de style(dashboard): uv lint 2025-10-08 21:54:10 +08:00
Wenjie Zhang
7c866e7b2b style(dashboard): 优化仪表板组件的标题和布局
- 修改仪表板组件中的标题,简化为更通用的名称
- 调整统计卡片的布局,提升响应式设计
- 更新图表样式,移除不必要的旋转设置,增强可读性
- 增加加载状态指示,改善用户体验
2025-10-07 17:14:58 +08:00
Wenjie Zhang
fdd840e8e7 fix(dashboard): 修复仪表板统计数据计算逻辑及样式优化
- 修改用户统计逻辑,确保正确计算活跃用户数量
- 更新时间序列统计的起始时间计算,包含当前时间段
- 优化仪表板样式,调整统计卡片间距和响应式布局
- 增强调用统计组件的显示效果,避免横向滚动条
2025-10-07 16:36:46 +08:00
Wenjie Zhang
e13f98f16f feat(dashboard): 新增调用统计时间序列数据接口及组件
- 在后端新增获取调用统计时间序列数据的接口,支持按模型、智能体、Token和工具分类统计
- 前端实现调用统计组件,展示不同时间范围内的调用数据
- 更新样式以提升用户体验,整合统计信息展示
- 优化仪表板布局,增强可视化效果
2025-10-07 00:15:14 +08:00
Wenjie Zhang
23f8fed679 feat(chat): 增强对话中断处理,优化用户体验
- 在 chat_agent 函数中添加对客户端主动中断连接的处理,尝试保存已生成的部分内容
- 更新前端 AgentChatComponent.vue,新增发送或中断功能,确保用户可以中断对话生成并刷新消息历史
- 优化状态处理,确保中断状态下的消息历史刷新逻辑正常工作
2025-10-06 21:44:17 +08:00
Wenjie Zhang
1487520e4e feat(user): 新增用户名更新功能,优化用户资料编辑体验
- 在后端用户资料更新接口中添加用户名验证和唯一性检查
- 前端用户信息组件支持编辑用户名,增加输入验证
- 更新用户状态管理,确保用户名和手机号的正确存储与展示
2025-10-06 21:24:02 +08:00
Wenjie Zhang
f28adaaff8 feat(chat): 优化工具调用输出处理,确保兼容性和稳定性
- 在 chat_agent 函数中,确保工具调用输出为字符串类型,避免 SQLite 不支持列表类型的问题
- 更新 load_chat_model 函数,新增 stream_usage 参数以支持流式使用
- 移除不必要的代码,简化 utils.py 文件,提升可读性
- 优化 AgentStatsComponent.vue,移除冗余样式,提升性能和用户体验
2025-10-06 21:07:33 +08:00
Wenjie Zhang
52ce5f51bd feat(dashboard): 新增用户活跃度、工具调用、知识库和智能体分析统计功能
- 在后端新增用户活跃度、工具调用、知识库和智能体分析的统计接口
- 前端实现相应的统计组件,展示各类统计信息
- 更新样式以提升用户体验,增加图表和数据展示
- 优化仪表板布局,整合各类统计信息,提升可视化效果
2025-10-05 21:45:39 +08:00
Wenjie Zhang
cdb381b0e9 feat(feedback): 新增消息反馈功能,支持用户对消息的点赞和点踩
- 在 chat_router 中添加了提交和获取消息反馈的 API 接口
- 在 dashboard_router 中更新统计信息,包含反馈统计数据
- 新增 MessageFeedback 数据模型,存储用户反馈信息
- 前端实现反馈提交和状态获取功能,优化用户体验
- 更新 DashboardView 以展示用户反馈统计信息
2025-10-05 14:50:34 +08:00
Wenjie Zhang
804bcc1abc feat(chat): 更新工具调用管理,支持 LangGraph tool_call_id 精确匹配
- 在 chat_agent 函数中,新增对 LangGraph tool_call_id 的支持,优化工具调用的保存和更新逻辑
- 修改数据库模型,新增 langgraph_tool_call_id 字段以便于匹配
- 更新时间戳字段命名为 created_at 和 updated_at,确保一致性
- 优化前端时间处理,确保使用正确的时间字段
2025-10-04 22:59:25 +08:00
Wenjie Zhang
c46dd7b073 feat! (memory)!: 重新实现了对话管理的存储与管理,不再依赖于 MemorySaver
BREAKING CHANGE: 使用了新的存储结构,因此之前存储的历史记录将不再支持迁移
2025-10-04 22:21:30 +08:00
Wenjie Zhang
c0a69fc891 fix(router): 修复知识库路由中的文件路径导入路径 #284
- 更新知识库路由中的文件路径验证导入路径,确保从正确的模块导入 validate_file_path 函数
- 维护代码一致性,提升可读性
2025-10-02 19:59:16 +08:00
Wenjie Zhang
790c068eb6 fix(docs): 更新 README 和文档路径,添加 MinIO 存储模块文档
- 修改 README 中的模型配置路径,确保指向正确的配置文件位置
- 新增 MinIO 存储模块文档,提供基本使用和高级使用示例
- 更新内容审查机制和品牌信息配置的相关路径
- 移除旧的用户模型和线程模型,重构数据库模型管理
- 优化代码结构,确保数据库管理器和模型的导入路径一致
2025-09-23 10:48:44 +08:00
Wenjie Zhang
59c60fa879 fix(security): 增强文件路径验证,防止路径遍历攻击
- 在知识库路由中添加文件路径安全检查,确保上传和下载的文件路径在允许的目录内
- 新增 validate_file_path 函数,规范化并验证文件路径,抛出相应的异常信息
- 更新文档,修复部分已知BUG,提升系统稳定性
2025-09-23 04:42:04 +08:00
Wenjie Zhang
f1fe10f22c feat(models): 添加嵌入和聊天模型状态检查接口 #282
- 在知识路由中新增获取指定嵌入模型和聊天模型状态的接口
- 实现获取所有嵌入模型和聊天模型状态的功能
- 更新前端API以支持模型状态检查,增强用户体验
- 优化日志记录格式,提升调试信息的可读性
2025-09-22 22:02:57 +08:00
Wenjie Zhang
a337cba3f7 fix(migrate): 修复用户字段迁移脚本,优化异常处理和字段检查逻辑
- 更新迁移脚本以确保在数据库中添加缺失的字段(user_id、phone_number、avatar)
- 优化异常处理,确保在迁移过程中发生错误时能够正确回滚
- 统一字符串引号格式,提升代码可读性
- 添加必要的导入语句,确保脚本正常运行
2025-09-22 17:18:07 +08:00
Wenjie Zhang
767a3d4762 refactor(user_utils): 简化拼音转换逻辑,移除备用方案,统一使用pypinyin库进行转换;优化正则表达式格式化 2025-09-22 17:13:52 +08:00
Wenjie Zhang
6d7e3ea2ef feat(knowledge): 添加文档基本信息和内容信息的获取接口,支持文件下载功能
- 在知识库路由中新增获取文档基本信息和内容信息的接口
- 实现文档下载功能,支持中文文件名处理
- 更新相关文档和API调用,确保前端能够正确下载文件
2025-09-21 23:48:56 +08:00
Wenjie Zhang
c934ccb10d feat(auth): 支持管理员初始化时使用用户ID和手机号 2025-09-21 14:31:10 +08:00
Wenjie Zhang
4cc52360b6 feat(user): 实现用户ID和头像管理功能 2025-09-21 13:33:09 +08:00
Wenjie Zhang
680dd92457 lint: Python Ruff Lint 2025-09-19 01:32:07 +08:00
Wenjie Zhang
782eb4ae31 refactor(chat): 优化异步调用及增强内容审查机制
- 将chat_router中的predict_async重命名为call_async并调用model.call替代model.predict
- 在流式消息处理中新增加基于LLM的内容审查
- 配置类中增加enable_content_guard_llm及对应LLM模型配置项
- 兼容models.private.yaml替代旧的models.private.yml文件名
- chat_model及embedding模块统一将predict方法重命名为call或encode,增强接口语义
- ContentGuard新增基于LLM的内容合规检测功能,支持动态加载审查模型
- 更新静态模型配置提示,建议使用models.private.yaml文件
- 新增示例CSV测试数据文件,补充测试用例基础数据
2025-09-19 00:57:53 +08:00
Wenjie Zhang
342c541645 feat(guard): 添加内容审查模块并集成至聊天服务(默认关闭)
- 新增内容审查关键词库 src/static/bad_keywords.txt,支持自定义敏感词
- 实现内容审查插件 src/plugins/guard.py,提供敏感词检测功能
- 配置新增 enable_content_guard 选项,支持开关内容审查功能
- 聊天路由 chat_router.py 集成输入和输出内容审查逻辑,拦截敏感内容
- 前端设置页增加内容审查开关,方便管理员启用或禁用该功能
- 错误时前端显示详细错误信息,并停止消息流,提升用户体验
- README 添加服务安全说明文档,介绍内容审查机制与配置方法
2025-09-18 20:33:38 +08:00
Wenjie Zhang
aebe63ce1c lint: 代码格式化 2025-09-18 20:32:33 +08:00
Wenjie Zhang
747c5de88f feat(auth): 实现账户登录失败次数限制和锁定机制(注意,需要迁移数据库)
- 数据库用户模型新增登录失败限制相关字段(login_failed_count, last_failed_login, login_locked_until)
- 增加用户方法判断是否处于登录锁定状态及计算锁定持续时间
- 登录接口新增登录锁定检测,密码错误时增加失败计数及设置锁定时间
- 登录成功时重置失败计数和锁定状态
- 新增数据库迁移模块,自动检测并执行数据库结构更新,确保新增字段同步
- 前端登录页添加账户锁定状态显示及倒计时功能
- 前端请求中捕获423锁定状态,展示对应锁定提示,禁用登录按钮
- 优化本地状态管理,支持登录锁定错误抛出与异常处理机制
2025-09-17 03:59:51 +08:00
Wenjie Zhang
45fb5c1b0d fix(graphbase): 修复检索过程中的 limit 不生效的问题 #260 2025-09-11 03:19:56 +08:00
Wenjie Zhang
04f49f48d5 feat(agent): 添加智能体元数据支持和示例问题展示
- 新增智能体元数据配置文件及图标资源
- 在聊天界面中显示智能体图标和示例问题
- 更新 changelog 中已完成的任务项
2025-09-09 20:25:48 +08:00