基于Spring AI Session 短期记忆示例项目整体结构
1. Web 接入层
负责接收外部请求并返回响应,包括调用方、控制器、请求/响应模型。
2. 应用编排层
负责一次对话调用的执行顺序,重点是 Advisor 链路和模型调用。
3. 基础设施与外部依赖层
负责配置装配、会话存储、模型外部服务接入。
请求主链路
1. 调用方 -> SessionChatController
2. Controller -> ChatClient
3. ChatClient -> SessionMemoryAdvisor
4. SessionMemoryAdvisor -> LoggingSummaryAdvisor
5. LoggingSummaryAdvisor -> ChatModel
6. ChatModel -> DashScope
先做会话记忆注入,再做请求摘要日志,然后才调用模型。
会话记忆与持久化
SessionMemoryAdvisor 通过 SessionService 读写会话事件(getEvents / appendMessage)。
SessionService 默认落到 MySQL(spring_ai_session)。
H2 仅用于测试环境,图里用“测试时使用”的虚线标识。
配置关系
SessionChatConfig 负责 Bean 装配,并把 ChatClient、Memory Advisor、Logging Advisor、ChatModel 串起来。
application.properties 负责端口、数据源、模型参数,并把配置注入 SessionService 与 ChatModel。
示例项目代码已上传到github。
