logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

Spring AI Alibaba 的 Function Calling 使用 @Tool 调用中,无法获取用户ID踩坑记录

开发AI对话功能时,遇到异步线程中用户ID获取失效问题。Spring AI流式输出采用异步线程池,导致基于ThreadLocal的若依框架SecurityUtils无法跨线程传递用户身份。尝试改用InheritableThreadLocal和手动传递SecurityContext均失败,最终发现还需同步传递RequestContextHolder。该问题揭示了异步场景下身份认证的复杂性,建议采用显

文章图片
#人工智能#spring#java +1
使用Docker Compose 部署时网络冲突问题排查与解决

Docker Compose部署周报系统时遇到网络创建失败问题,主要有两种错误:1) Docker默认IPv4地址池耗尽;2) 子网地址冲突。分析发现,默认地址池(172.17.0.0/16系列)被占用或指定子网(172.20.0.0/24)与现有网络冲突。解决方案包括:更换子网地址(如改用10.0.0.0/24)、清理未使用网络、移除过时version字段等。最佳实践建议使用10.x.x.x私有

文章图片
#docker#网络#spring boot +2
Spring AI Alibaba 模块化重构:从单体到分层架构实践

本文介绍了MindCampus高校心理健康平台的AI模块重构方案。原架构存在代码耦合、职责混乱等问题,AI功能与业务逻辑混杂在mc-project模块中。重构后新增独立mc-ai模块,专注于AI底层能力,与业务层形成单向依赖关系。关键设计包括: 模块职责分离:mc-ai负责AI交互,mc-project处理业务逻辑和数据库操作 解决循环依赖:通过运行时动态扫描Spring Bean实现工具注册,避

文章图片
#spring#人工智能#重构
Spring AI Alibaba 多模态模型踩坑记录

ChatClient中defaultOptions和多模态参数的使用要点。defaultOptions用于配置全局默认的大模型调用参数(如模型类型、Temperature、MaxTokens),支持局部覆盖。多模态模式需开启.withMultiModel(true),以适配底层API协议差异,包括请求报文结构和流式响应解析。文章强调应根据请求是否含附件动态选择客户端实例,并严格区分纯文本与多模态场

文章图片
#人工智能#spring
Docker Compose 部署 Spring Boot 应用 502 Bad Gateway 问题排查与解决

Docker Compose部署周报系统时出现502错误,原因是后端jar包缺少主清单属性导致无法启动。排查发现pom.xml配置错误或网络问题导致打包失败。解决方案包括:修正pom.xml主类配置、移除skip标签、重新打包生成完整Spring Boot jar包,并重新构建Docker镜像。验证清单文件应包含Main-Class和Start-Class等关键属性,确保后端服务正常启动后502问

文章图片
#docker#spring boot#gateway +1
Spring AI Alibaba 的 ChatClient 工具注册与 Function Calling 实践

使用Spring AI开发聊天应用时工具注册与函数调用的实践经验。主要内容包括:1) ChatClient Builder的核心配置方法,如系统提示、会话记忆和工具注册;2) 两种函数调用实现方式:Supplier/Function Bean和@Tool注解方法;3) 重点区分.defaultTools()与.defaultToolNames()的使用场景;4) 提供自动收集Bean注册工具的优化

文章图片
#人工智能#spring#python +1
Spring AI 使用阿里百炼平台实现流式对话:基于 SSE 的实践

本文介绍如何利用Spring AI和SSE实现流式对话功能。文章首先对比了SSE与WebSocket的特性差异,指出SSE更适合单向推送场景。随后详细展示了项目搭建过程,包括依赖配置和模型服务设置。核心实现部分包含ChatClient配置(支持记忆功能和参数调节)和流式对话控制器(具备中断机制和日志记录)。通过Flux实现响应式流式输出,takeWhile控制动态中断,concatWithValu

文章图片
#spring#人工智能#java
基于Spring AI Alibaba的AI聊天系统中,流式输出暂停时出现重复插入问题的分析与解决

基于Spring AI Alibaba的AI聊天系统中SSE流式输出暂停时出现的重复插入问题。当用户暂停流式输出时,系统会同时触发doOnCancel和doOnComplete回调,导致同一条AI消息被重复保存两次。解决方案采用CAS(Compare-And-Set)机制,通过原子操作确保消息只保存一次。具体实现包括添加消息保存标识、初始化标识状态,以及在完成回调中使用CAS进行幂等性控制,有效解

文章图片
#spring#人工智能#java
Spring AI 使用阿里百炼平台实现流式对话:基于 SSE 的实践

本文介绍如何利用Spring AI和SSE实现流式对话功能。文章首先对比了SSE与WebSocket的特性差异,指出SSE更适合单向推送场景。随后详细展示了项目搭建过程,包括依赖配置和模型服务设置。核心实现部分包含ChatClient配置(支持记忆功能和参数调节)和流式对话控制器(具备中断机制和日志记录)。通过Flux实现响应式流式输出,takeWhile控制动态中断,concatWithValu

#spring#人工智能#java
到底了