
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
摘要:Spring AI通过ChatMemoryRepository和ChatMemory实现了大模型应用的会话记忆功能。ChatMemoryRepository负责与MySQL交互,处理消息的持久化和查询;ChatMemory则管理记忆窗口和历史消息策略。项目配置只需引入相关依赖并设置数据源,Spring AI会自动创建所需组件,无需手动编写SQL。通过分层架构,实现了会话历史的存储、查询和记忆
本文演示了如何将Spring AI的会话记忆存储从MySQL平滑切换到MongoDB。首先介绍了通过Docker快速搭建带认证的MongoDB服务,包括创建持久化目录、启动容器和设置管理员用户。然后详细说明了项目集成步骤:替换Maven依赖为MongoDB相关Starter,配置MongoDB连接URI,以及保持原有ChatMemory Bean配置不变。文章验证了切换后的效果,展示了自动创建的数
Spring AI 默认的 MessageWindowChatMemory 会删除超出 maxMessages 限制的早期对话记录,导致数据库持久化失效。本文通过源码分析揭示了该问题:process 方法会丢弃旧消息后覆盖存储,造成历史数据丢失。作者提出需要区分模型短期记忆(需限制上下文长度)和业务聊天记录(需全量保存),并计划通过重写核心组件实现两者并存。最终目标是既能永久保存完整对话历史,又能

本文深入解析Java中Synchronized关键字的底层实现原理,重点探讨JDK1.6引入的锁升级机制。通过JOL工具分析对象头Mark Word的结构,详细展示了无锁、偏向锁、轻量级锁和重量级锁的状态转换过程。文章包含实战代码验证偏向锁的获取与撤销机制,并解释了JVM启动时偏向锁延迟生效的特性。锁升级机制通过根据不同竞争场景动态调整锁策略,显著提升了并发性能。
本文分析了 Spring 事务失效的四种典型场景:1) 事务方法非 public 访问权限,导致 AOP 代理无法拦截;2) 同类内部方法自调用绕过代理对象,使事务失效;3) 异常被捕获未抛出,导致事务无法回滚;4) 检查型异常不匹配默认回滚规则。针对每种场景,文章提供了具体解决方案,如确保方法为 public、使用代理对象调用、正确处理异常等。这些实践方案能有效保障 Spring 事务的可靠性,
Spring Cloud Gateway 提供了 GatewayFilter 和 GlobalFilter 两种过滤器机制,分别实现局部和全局功能。GlobalFilter 适用于所有路由,常用于鉴权、日志等全局逻辑,通过实现 GlobalFilter 接口并注册为 Spring Bean 即可生效。GatewayFilter 则针对特定路由,可通过配置文件或代码动态配置,支持自定义过滤器工厂。文
本文介绍了如何通过Java SDK接入华为云身份证OCR识别服务。主要步骤包括:1) 引入华为云OCR SDK依赖;2) 配置AK/SK和区域信息;3) 设计接口接收前端上传的身份证图片;4) 后端将图片转为Base64格式并调用华为云API;5) 处理返回结果并转换为统一格式。文章强调了使用SDK而非直接HTTP调用的优势,包括简化鉴权流程和强类型模型支持,并详细说明了图片大小限制、正反面识别、
摘要: 本文针对Spring AI默认的MessageWindowChatMemory组件导致数据库历史消息丢失的问题,通过源码分析揭示了其设计缺陷——当对话轮数超过maxMessages限制时,系统会在写入数据库时直接丢弃旧消息。作者提出"存储与使用分离"的解决方案:保持数据库全量持久化,仅在读取时截取最近N条作为上下文。通过重写核心逻辑,实现历史数据永久保存与大模型上下文限
本文演示了如何将Spring AI的会话记忆存储从MySQL平滑切换到MongoDB。首先介绍了通过Docker快速搭建带认证的MongoDB服务,包括创建持久化目录、启动容器和设置管理员用户。然后详细说明了项目集成步骤:替换Maven依赖为MongoDB相关Starter,配置MongoDB连接URI,以及保持原有ChatMemory Bean配置不变。文章验证了切换后的效果,展示了自动创建的数
摘要:Spring AI 1.0.0通过ChatMemoryRepository和ChatMemory实现了大模型应用的会话记忆功能。ChatMemoryRepository负责与MySQL交互,处理消息的持久化和查询;ChatMemory则管理记忆窗口和历史消息策略。项目配置只需引入相关依赖并设置数据源,Spring AI会自动创建所需组件,无需手动编写SQL。通过分层架构,实现了会话历史的存储







