3.2 KiB
接口性能管理
管理员入口:设置 → Redis 与性能。页面集中管理 Redis 读取缓存、浏览器状态接口访问、历史统计数据定时清理。
控制项
- Redis 总开关及有效期:1–3600 秒,默认 300 秒。已有管理员设置优先于 YAML 默认值。
- 接口列表:15 组,支持搜索和单独开关。同组路径共用一个开关;总开关关闭时保留每组选择。列表由后端实际接入目录返回。
- 浏览器状态:允许/拒绝
GET /api/browser-context/status,保存后生效。为兼容现有插件,升级默认允许;关闭时返回 403,错误码browser_status_disabled,并建议客户端 300 秒后重试。此开关只控制状态查询,不改变 capture/ask/task 接口的原有权限。 - 定时清理:复用原有审计清理调度及持久化暂停标记。关闭时在当前小批次完成后停止;重启保持关闭。清理范围仍是超过 90 天的工具调用、模型调用、已结束运行摘要和排行榜快照,不清理对话消息。页面仅打开时或手动刷新状态,不新增轮询。
缓存覆盖
智能体列表、技能列表、展示脱敏词、个人偏好、常用提示词、推荐问题、轻应用列表/侧栏/详情、完整菜单、简洁菜单、任务按钮、业务映射、HTML 模板、模型能力目录、标签及资源标签、浏览器状态。
模型配置仍按当前配置即时组装,缓存的是其数据库能力目录。智能体、技能和推荐问题保留原有可缓存请求条件。用户相关数据保持用户隔离,菜单同时按角色和菜单类型隔离。对话、流式响应和写入操作不缓存。
写入后使相关缓存失效;同键并发未命中请求合并填充。Redis 未配置、超时或不可用时回到原读取逻辑。超出大小限制的结果不缓存。
持久化和升级
api_read_cache_settings 保存总开关、有效期、逐组配置和浏览器状态开关。迁移 20261029_01 增加有效期,20261029_02 增加逐组配置、浏览器开关和缓存代次。沿用项目正常数据库迁移流程后再启动新版服务。
每次保存配置都会轮换持久化缓存代次,避免在 Redis 离线时关闭/开启缓存、随后 Redis 恢复或 Gateway 重启后重新命中旧数据。设置写入在进程内串行化,并使用数据库行锁合并更新;其他 Gateway 进程最多约 2 秒刷新设置。
浏览器扩展也应同步更新:修复服务地址不变时探测时间戳未更新的问题,成功状态短暂缓存、同地址鉴权请求合并,禁用/失败至少退避 5 分钟。旧扩展仍可能发送请求,服务端关闭开关会拒绝这些请求。
管理员排行榜
移除 GET /api/admin/users/{user_id}/analytics 及用户详情展示/调用;排行榜聚合统计和用户管理保留。旧详情 URL 返回 404。
回归入口
后端:test_api_read_cache.py、test_api_performance_controls.py、test_api_performance_edge_cases.py、test_catalog_cache_routes.py、test_admin_analytics_removed.py,以及菜单、模型管理和审计清理现有测试。
浏览器扩展:node --test browser-extension/deer-web-clipper/background.test.cjs。