Version: 0.4.3.dev.260305

perf:  引入 Redis 缓存优化上下文读写性能

* 为上下文写入与提取逻辑新增 Redis 缓存层,减少数据库直接读取开销
* 在 Redis 中实现简单滑动窗口裁剪策略,控制上下文消息数量并降低存储压力

refactor: ♻️ 上下文持久化逻辑改为异步执行

* 对写缓存与写数据库逻辑引入 `goroutine` 实现简单异步处理
* 降低接口阻塞时间,提高 Agent 对话接口响应性能
* 当前尚未完善异步流程中的错误传递与处理机制,后续将补充完整错误链路管理
This commit is contained in:
LoveLosita
2026-03-05 22:36:53 +08:00
parent cb5ac07e3c
commit 204e78d1fe
3 changed files with 215 additions and 30 deletions

View File

@@ -44,7 +44,7 @@ func Start() {
rdb := inits.InitRedis()
//工具包
limiter := pkg.NewRateLimiter(rdb)
//初始化agent
//初始化eino
aiHub, err := inits.InitEino()
if err != nil {
log.Fatalf("Failed to initialize Eino: %v", err)
@@ -53,6 +53,7 @@ func Start() {
//dao 层
cacheRepo := dao.NewCacheDAO(rdb)
agentCacheRepo := dao.NewAgentCache(rdb)
_ = db.Use(middleware.NewGormCachePlugin(cacheRepo)) // 注册 GORM 插件
userRepo := dao.NewUserDAO(db)
taskRepo := dao.NewTaskDAO(db)
@@ -67,7 +68,7 @@ func Start() {
courseService := service.NewCourseService(courseRepo, scheduleRepo)
taskClassService := service.NewTaskClassService(taskClassRepo, cacheRepo, scheduleRepo, manager)
scheduleService := service.NewScheduleService(scheduleRepo, userRepo, taskClassRepo, manager, cacheRepo)
agentService := service.NewAgentService(aiHub, agentRepo)
agentService := service.NewAgentService(aiHub, agentRepo, agentCacheRepo)
//api 层
userApi := api.NewUserHandler(userService)
taskApi := api.NewTaskHandler(taskSv)