Spring AI学习 📅 发布时间:2026/7/13 11:01:52 👁️ 浏览次数: ChatClient是一个用于与 LLM 进行聊天对话交互的客户端封装。它屏蔽了很多底层 HTTP 调用、请求构造、响应解析等细节开发者只需要通过它简单的 API就可以发起问题并得到 AI 的回答。核心功能● 自动注入底层模型如 OpenAI、DeepSeek 等● 支持设置默认的 system prompt系统角色描述● 支持拦截器advisor扩展比如记录日志、预处理消息等● 提供同步/异步的聊天接口ChatClient的配置BeanpublicChatClientchatClient(DeepSeekChatModelmodel){returnChatClient.builder(model).build();}public ChatClient chatClient(DeepSeekChatModel model)定义一个返回ChatClient的Bean方法并接收一个DeepSeekChatModel对象作为参数是Spring AI 中对DeepSeek模型的封装负责和DeepSeek API通信。ChatClient.builder(model)创建一个ChatClient的构建器告诉客户端使用哪个模型。示例RestControllerRequestMapping(/simple)publicclassSimpleChatController{ResourceprivateChatClientchatClient;RequestMapping(value/chat,producestext/html;charsetutf-8)publicFluxStringchat(RequestParam(prompt)Stringprompt){returnchatClient.prompt()//传入用户的对话.user(prompt)//进行调用,流式调用.stream()//返回内容.content();}}SpringAI – Advisor设计思想类似于AOP是于大模型Chat请求和响应的拦截器。在请求发给LLM之前做一些事情比如记录日志检查输入添加元数据在LLM返回响应之后做一些事情比如记录响应对响应进行过滤修改请求--Advisor前置处理--模型调用--Advisor后置处理--返回响应SpringAI – SimpleLoggerAdvisor是SpringAI官方内置的一个简单日志记录器作用打印请求和响应不会做任何修改参数校验或安全检查privatevoidlogRequest(ChatClientRequestrequest){logger.debug(request: {},this.requestToString.apply(request));}privatevoidlogResponse(ChatClientResponsechatClientResponse){logger.debug(response: {},this.responseToString.apply(chatClientResponse.chatResponse()));}**注意**SimpleLoggerAdvisor的打印日志级别是debug所以要把把项目log4j中的配置文件改成debug级别ConsolenameConsoletargetSYSTEM_OUT!--控制台只输出level及以上级别的信息(onMatch),其他的直接拒绝(onMismatch)--!--ThresholdFilterleveltraceonMatchACCEPTonMismatchDENY/--!--输出日志的格式--PatternLayoutpattern${PATTERN}/ThresholdFilterleveldebug//ConsoleLoggers!--过滤掉spring和mybatis的一些无用的DEBUG信息--logger nameorg.springframeworkleveldebugadditivitytrue/logger nameorg.mybatisleveldebugadditivitytrue/!--配置日志的根节点--root leveldebugappender-ref refConsole/appender-ref refRollingFile/appender-ref refRollingFileError//root/LoggersSpringAI - defaultAdvisors在SpringAI 的ChatClient构建时传入的一个 全局默认拦截器列表。所有通过这个ChatClient发出的请求都会经过这些advisor简单类比AOP就是串联一系列的切面。.defaultAdvisors(newSimpleLoggerAdvisor())提示词BeanpublicChatClientchatClient(DeepSeekChatModelmodel){returnChatClient.builder(model).defaultSystem(你是一位智能助手你的特点是温柔、善良你的名字叫智能小艾要结合你的特点积极的回答用户的问题。).defaultAdvisors(newSimpleLoggerAdvisor()).build();}
SVG 在线编辑器:设计自由,创意无限 SVG 在线编辑器:设计自由,创意无限 引言 随着互联网技术的飞速发展,矢量图形编辑器(SVG)因其灵活性和可扩展性,已经成为网页设计、动画制作等领域的重要工具。SVG 在线编辑器的出现,使得设计师和开发者无需安装额外的软件,即可在线进行SVG图形的编辑和创作。本文将深… 2026/7/12 13:33:37
大模型上下文工程深度解析:从提示工程到智能体构建 前言 在应用AI领域,“提示工程”(Prompt Engineering)多年来一直是关注焦点,如今一个新术语逐渐凸显:上下文工程(Context Engineering)。基于语言模型进行开发,正从“为提示找到合适… 2026/7/11 6:41:31
JavaScript 错误处理指南 JavaScript 错误处理指南 引言 JavaScript 作为一种广泛使用的编程语言,在网页开发中扮演着至关重要的角色。然而,在使用 JavaScript 开发过程中,错误是不可避免的。本文将详细介绍 JavaScript 中常见的错误类型,以及如何有效地处理这些错误,以提高代码的健壮性和可维护… 2026/7/12 12:57:22
魔兽争霸III终极优化方案:WarcraftHelper深度配置指南 魔兽争霸III终极优化方案:WarcraftHelper深度配置指南 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper WarcraftHelper是一款免费开源的魔兽… 2026/7/13 10:59:08
Java Swing开发的葫芦娃横版闯关游戏完整工程包,含源码、资源、演示视频与运行日志 本文还有配套的精品资源,点击获取 简介:这个资源包提供了一个基于Java SE和Swing实现的横版动作闯关小游戏,主角为七个葫芦娃,玩家可操作不同娃对抗蛇精、蝎子精、喽啰等经典反派角色。项目采用标准Maven结构,包含可… 2026/7/13 10:57:08
GTA5线上小助手:一站式开源游戏增强工具完全指南 GTA5线上小助手:一站式开源游戏增强工具完全指南 【免费下载链接】GTA5OnlineTools GTA5线上小助手 项目地址: https://gitcode.com/gh_mirrors/gt/GTA5OnlineTools 在《侠盗猎车手5》线上模式中,玩家们常常面临角色外观定制繁琐、载具升级昂贵、… 2026/7/13 10:57:08
算法分析与设计 4次上机实战:渗透/排序/路由/索引问题 Java 源码解析 算法分析与设计四次上机实战:从渗透问题到文本索引的Java实现精要 1. 课程实验概览与开发环境配置 西电《算法分析与设计》课程的四次上机实验涵盖了算法领域的核心问题,这些实验不仅是普林斯顿大学的经典练习题,更是检验学生算法实现能力的… 2026/7/13 10:55:07
蓝牙5.4 LE Audio硬件选型与优化实践 1. 蓝牙5.4 LE Audio技术现状与硬件选型考量在2023年蓝牙技术联盟正式发布LE Audio标准后,采用LC3编解码器的低功耗音频方案开始快速普及。IDC777-1作为高通平台的双模蓝牙模块,其最大特点是同时支持传统A2DP协议和LE Audio标准,这为开发者提… 2026/7/13 10:53:06
1995年7月13日:佳士得拍卖行失窃乌龙——当高雅现代艺术遭遇保洁大妈的“强力垃圾回收协议” 在软件工程与数据中台的日常运维中,我们经常会提到一个经典的策略:垃圾回收(Garbage Collection, GC)。为了防止内存泄漏或磁盘空间过载,系统通常会挂载一个具备高优先级的后台守护进程,专门负责扫描那些失… 2026/7/13 10:53:06
HS2-HF Patch终极指南:如何用3步解决Honey Select 2的70+个痛点 HS2-HF Patch终极指南:如何用3步解决Honey Select 2的70个痛点 【免费下载链接】HS2-HF_Patch Automatically translate, uncensor and update HoneySelect2! 项目地址: https://gitcode.com/gh_mirrors/hs/HS2-HF_Patch 你是否曾经在Honey Select 2中遇到过… 2026/7/13 0:01:19
语音转文字工具AsrTools:让音频整理变得简单高效 语音转文字工具AsrTools:让音频整理变得简单高效 【免费下载链接】AsrTools ✨ AsrTools: Smart Voice-to-Text Tool | Efficient Batch Processing | User-Friendly Interface | No GPU Required | Supports SRT/TXT Output | Turn your audio into accurate text … 2026/7/13 0:03:19
基于深度学习的蘑菇或花卉或动漫人物或中草药货水果蔬菜等识别系统31(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_ 基于深度学习的蘑菇或花卉或动漫人物或中草药货水果蔬菜等识别系统31(设计源文件万字报告讲解)(支持资料、图片参考_相关定制)_ 独家界面!不会重复,此项目属于本人原创,若有雷同,均是盗卖,各位买… 2026/7/13 0:05:20
Git reset 与 revert 深度对比:5个关键差异与 3 种典型应用场景 Git Reset 与 Revert 深度对比:5个关键差异与3种典型应用场景在团队协作开发中,代码版本管理如同行走钢丝——一步失误可能导致整个项目陷入混乱。作为Git进阶用户,你是否曾在深夜面对错误的提交束手无策?是否在强制推送后收到同事… 2026/7/13 8:31:55
GitHub 学生包申请避坑:5个常见失败原因与开发者工具调试方案 GitHub 学生包申请技术排障指南:5个高频失败场景与开发者工具实战方案第一次尝试申请GitHub学生包时,我盯着屏幕上那个不断转圈的加载动画整整15分钟,最终只等来了一行冰冷的错误提示。这可能是许多开发者共同的经历——明明按照教程操作&… 2026/7/13 9:31:08
冒烟测试用例设计规范:5%-10%覆盖率下的3类核心场景与执行标准 冒烟测试用例设计的黄金法则:5%-10%覆盖率下的精准筛选策略在快节奏的敏捷开发环境中,冒烟测试作为质量保障的第一道防线,其重要性不言而喻。当测试资源有限而时间紧迫时,如何从海量测试用例中精准筛选出那关键的5%-10%࿰… 2026/7/13 2:34:55