<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[qq_44749491的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/qq_44749491</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; qq_44749491]]></copyright><item><title><![CDATA[OpenClaw的安装、QQ机器人的介入、deepseek模型的介入]]></title><link>https://blog.youkuaiyun.com/qq_44749491/article/details/159381543</link><guid>https://blog.youkuaiyun.com/qq_44749491/article/details/159381543</guid><author>qq_44749491</author><pubDate>Mon, 23 Mar 2026 10:13:09 +0800</pubDate><description><![CDATA[直接在终端输入
1.2 可能出现的node错误(无误可跳过)
如果出现如图所示错误，可以自己先手动安装node卸载之前的node

应输出重新安装Node22
完成之后输入进行安装
安装完成后检查版本
如果输出v22.x.x则证明安装成功安装成功后重新执行
1.3 安装过程选择
1.同意协议
第一步安装成功后会进入交互式引导程序，一步步带你完成配置。一开始会弹出一个使用协议，需要确认同意。也可以执行如下命令换出这个交互式引导程序。
确认没问题，就选 Yes 进入下一步。选择 Quickstart（快速开始）]]></description><category></category></item><item><title><![CDATA[SpringAI多模态的基本使用]]></title><link>https://blog.youkuaiyun.com/qq_44749491/article/details/159115322</link><guid>https://blog.youkuaiyun.com/qq_44749491/article/details/159115322</guid><author>qq_44749491</author><pubDate>Mon, 16 Mar 2026 10:39:49 +0800</pubDate><description><![CDATA[首先，定义一个用于AI对话的ChatClient的bean，将模型修改为，不仅如此，由于其它业务使用的是不同模型，不能改变，只需添加自定义配置，将模型改为.defaultSystem("你是可爱且热情、人见人爱，花见花开的AI助手，你的名字是墩墩，请用墩墩的身份回答用户的问题！")MessageChatMemoryAdvisor.builder(chatMemory).build() // 如果失去它，系统就不再有会话记忆功能了，不过这个会话记忆是在内存里的，重启项目就不存在了.build();]]></description><category></category></item><item><title><![CDATA[SpringAI 使用 RAG]]></title><link>https://blog.youkuaiyun.com/qq_44749491/article/details/159113759</link><guid>https://blog.youkuaiyun.com/qq_44749491/article/details/159113759</guid><author>qq_44749491</author><pubDate>Mon, 16 Mar 2026 09:38:28 +0800</pubDate><description><![CDATA[由于训练大模型非常耗时，再加上训练语料本身比较滞后，所以大模型存在为了解决这些问题，我们就需要用到RAG了。]]></description><category></category></item><item><title><![CDATA[SpringAI 使用FunctionCalling实现智能客服]]></title><link>https://blog.youkuaiyun.com/qq_44749491/article/details/159003065</link><guid>https://blog.youkuaiyun.com/qq_44749491/article/details/159003065</guid><author>qq_44749491</author><pubDate>Fri, 13 Mar 2026 09:06:46 +0800</pubDate><description><![CDATA[这里定义AI要用到的Function，在SpringAI中叫做Tool根据条件筛选和查询课程查询校区列表新增试听预约单课程并不是适用于所有人，会有一些限制条件，比如：学历、课程类型、价格、学习时长等学生在与智能客服对话时，会有一定的偏好，比如兴趣不同、对价格敏感、对学习时长敏感、学历等。edu：例如学生学历是高中，则查询时要满足 edu <= 2type：学生的学习兴趣，要跟类型精确匹配，type = ‘自媒体’]]></description><category></category></item><item><title><![CDATA[SpringAI 使用Redis完成会话记忆和会话历史功能]]></title><link>https://blog.youkuaiyun.com/qq_44749491/article/details/158963035</link><guid>https://blog.youkuaiyun.com/qq_44749491/article/details/158963035</guid><author>qq_44749491</author><pubDate>Thu, 12 Mar 2026 10:57:20 +0800</pubDate><description><![CDATA[SpringAI默认提供的会话记忆功能是基于内存的。如果程序重新启动，那么会话记忆和会话历史都会丢失。但是SpringAI也提供了会话记忆和会话历史的持久化做法，只不过只是提供的接口，具体需要用户自己实现。这里就使用Redis进行持久化。]]></description><category></category></item><item><title><![CDATA[AI大模型基础和SpringAI1.0.1的接入和基本使用]]></title><link>https://blog.youkuaiyun.com/qq_44749491/article/details/151611177</link><guid>https://blog.youkuaiyun.com/qq_44749491/article/details/151611177</guid><author>qq_44749491</author><pubDate>Fri, 12 Sep 2025 10:16:44 +0800</pubDate><description><![CDATA[目前大模型应用开发比较常见的框架是基于Python语言的LangChain，但是对于Java程序员平时使用Spring生态开发的大量应用来说，适配性就稍微差了些。而Spring公司推出的SpringAI框架，充分利用了Spring框架中AOP、IOC的能力，可以与现有的Java项目无缝合，非常方便。但是Spring AI要求的JDK版本至少是JDK17SpringBoot也必须是3.x的版本才可以，JDK8是不支持使用Spring AI的。// 保存会话历史的接口/*** 保存会话历史记录。]]></description><category></category></item><item><title><![CDATA[SpringBoot项目中如何使用Redisson队列详解]]></title><link>https://blog.youkuaiyun.com/qq_44749491/article/details/139316492</link><guid>https://blog.youkuaiyun.com/qq_44749491/article/details/139316492</guid><author>qq_44749491</author><pubDate>Thu, 30 May 2024 10:16:59 +0800</pubDate><description><![CDATA[快速使用Redisson在项目中使用队列，解决并发请求或者耗时请求队系统资源在访问频繁时被过度消耗的问题]]></description><category></category></item><item><title><![CDATA[Java8中Optional使用详解，优雅的消灭空指针异常]]></title><link>https://blog.youkuaiyun.com/qq_44749491/article/details/131527944</link><guid>https://blog.youkuaiyun.com/qq_44749491/article/details/131527944</guid><author>qq_44749491</author><pubDate>Tue, 04 Jul 2023 09:26:29 +0800</pubDate><description><![CDATA[一文学会Java8中重要特性Optional]]></description><category></category></item><item><title><![CDATA[Java8中Lambda表达式和方法引用]]></title><link>https://blog.youkuaiyun.com/qq_44749491/article/details/131509667</link><guid>https://blog.youkuaiyun.com/qq_44749491/article/details/131509667</guid><author>qq_44749491</author><pubDate>Mon, 03 Jul 2023 09:45:29 +0800</pubDate><description><![CDATA[一、Lambda表达式
1.1 函数式编程思想
1）概念
​	面向对象思想需要关注用什么对象完成什么事情。而函数式编程思想就类似于我们数学中的函数。它主要关注的是对数据进行了什么操作。
2）优点

代码简洁，开发快速
接近自然语言，易于理解
易于"并发编程"

1.2 Lambda表达式基础
1）概述
Lambda是JDK8中一个语法糖。他可以对某些匿名内部类的写法进行简化。
它是函数式编程思想的一个重要体现。
让我们不用关注是什么对象。而是更关注我们对数据进行了什么操作。
2）核心原则
可推导可省略。
需]]></description><category></category></item><item><title><![CDATA[SpringSecurity授权流程详解和代码实现]]></title><link>https://blog.youkuaiyun.com/qq_44749491/article/details/131469886</link><guid>https://blog.youkuaiyun.com/qq_44749491/article/details/131469886</guid><author>qq_44749491</author><pubDate>Fri, 30 Jun 2023 09:42:44 +0800</pubDate><description><![CDATA[承接上一篇博客SpringSecurity认证流程详解和代码实现除了使用自带的权限校验方法，也可以定义自己的权限校验方法，在注解中使用自定义的方法。//获取当前用户的权限 Authentication authentication = SecurityContextHolder . getContext() . getAuthentication();//判断用户权限集合中是否存在authority return permissions . contains(authority);} }在SPEL。]]></description><category></category></item><item><title><![CDATA[SpringSecurity认证流程详解和代码实现]]></title><link>https://blog.youkuaiyun.com/qq_44749491/article/details/131450204</link><guid>https://blog.youkuaiyun.com/qq_44749491/article/details/131450204</guid><author>qq_44749491</author><pubDate>Thu, 29 Jun 2023 09:58:56 +0800</pubDate><description><![CDATA[/ 封装该用户拥有的权限信息，这里还只是讲认证，所以直接返回null跳过 @Override public Collection ]]></description><category></category></item><item><title><![CDATA[SpringBoot整合SpringSecurity]]></title><link>https://blog.youkuaiyun.com/qq_44749491/article/details/131430150</link><guid>https://blog.youkuaiyun.com/qq_44749491/article/details/131430150</guid><author>qq_44749491</author><pubDate>Wed, 28 Jun 2023 09:44:28 +0800</pubDate><description><![CDATA[SpringSecurity整合基础]]></description><category></category></item><item><title><![CDATA[Activiti7流程操作详解]]></title><link>https://blog.youkuaiyun.com/qq_44749491/article/details/130499960</link><guid>https://blog.youkuaiyun.com/qq_44749491/article/details/130499960</guid><author>qq_44749491</author><pubDate>Fri, 05 May 2023 09:55:37 +0800</pubDate><description><![CDATA[流程定义是线下按照bpmn2.0标准去描述 业务流程，通常使用idea中的插件对业务流程进行建模。使用idea下的designer.bpmn和.png查询流程相关信息也是经常要用到的操作，通常包含对流程定义，流程部署，流程定义版本的查询。/*** 查询流程定义// 1.创建流程引擎 ProcessEngine processEngine = ProcessEngines . getDefaultProcessEngine();]]></description><category></category></item><item><title><![CDATA[使用EasyExcel导出模板并设置级联下拉及其原理分析]]></title><link>https://blog.youkuaiyun.com/qq_44749491/article/details/130314456</link><guid>https://blog.youkuaiyun.com/qq_44749491/article/details/130314456</guid><author>qq_44749491</author><pubDate>Sun, 23 Apr 2023 09:31:24 +0800</pubDate><description><![CDATA[对Java中的Excel导出模板的下拉实现及其原理进行了详细分析，并且对其它导出策略原理进行了示例演示。]]></description><category></category></item><item><title><![CDATA[Activiti7原生整合和工作流相关概念详解]]></title><link>https://blog.youkuaiyun.com/qq_44749491/article/details/130198454</link><guid>https://blog.youkuaiyun.com/qq_44749491/article/details/130198454</guid><author>qq_44749491</author><pubDate>Mon, 17 Apr 2023 13:57:53 +0800</pubDate><description><![CDATA[Activiti原生整合基础]]></description><category></category></item><item><title><![CDATA[SpringBoot集成Kafka详解]]></title><link>https://blog.youkuaiyun.com/qq_44749491/article/details/130152503</link><guid>https://blog.youkuaiyun.com/qq_44749491/article/details/130152503</guid><author>qq_44749491</author><pubDate>Fri, 14 Apr 2023 14:18:20 +0800</pubDate><description><![CDATA[一文学会Kafka整合SpringBoot及其基本使用]]></description><category></category></item><item><title><![CDATA[Java8日期类LocalDate、LocalTime、LocalDateTime使用详解]]></title><link>https://blog.youkuaiyun.com/qq_44749491/article/details/130123065</link><guid>https://blog.youkuaiyun.com/qq_44749491/article/details/130123065</guid><author>qq_44749491</author><pubDate>Thu, 13 Apr 2023 09:55:18 +0800</pubDate><description><![CDATA[一文学会Java8新增日期类的各种使用方法]]></description><category></category></item><item><title><![CDATA[Kafka的命令行操作]]></title><link>https://blog.youkuaiyun.com/qq_44749491/article/details/130113726</link><guid>https://blog.youkuaiyun.com/qq_44749491/article/details/130113726</guid><author>qq_44749491</author><pubDate>Wed, 12 Apr 2023 18:32:33 +0800</pubDate><description><![CDATA[每个分区多个副本的主节点编号，这个在集群中才会是其它值，这里是单机模式，值等于唯一副本编号。执行此命令后，再来新的数据，也会被继续消费，就和普通的消费者一样。如果想要读取历史数据，可以选择把主题中的数据全部读取出来。就是在刚才的光标下继续输入一个数据，再回车即可。：分区编号是0，代表只有一个分区，编号从0开始。此时光标处就可以输入数据，输入的数据会放入本机。数据然后回车，队列中就加入了一条数据。： 指定副本数，也有根据有几个。：指定分区数，参数要根据。：副本编号，也是从0开始。数和数据量决定，有几个。]]></description><category></category></item><item><title><![CDATA[Kafka在Windows下的安装和目录结构]]></title><link>https://blog.youkuaiyun.com/qq_44749491/article/details/129928014</link><guid>https://blog.youkuaiyun.com/qq_44749491/article/details/129928014</guid><author>qq_44749491</author><pubDate>Mon, 03 Apr 2023 13:57:35 +0800</pubDate><description><![CDATA[这只是基本的启动，如果要实现消息发送，还需要创建topic、producer和consumer。解压目录不要层级过深，要不然启动时会出现，命令行输入行太长 命令语法不正确的异常。这里主要要注意消费者配置文件、生产者配置文件、服务端配置文件、这里主要要注意生产者消费者启动脚本、服务开始关闭脚本、这里选择2.13-3.2.1的版本下载，2.13是。要不然可能会导致Kafka进程关不掉。下载完成后在非中文目录下进行解压。这里主要是一些执行脚本。下也是一样的，毕竟这就是从。包，可以自行了解一下。]]></description><category></category></item><item><title><![CDATA[Kafka的基本概念和架构]]></title><link>https://blog.youkuaiyun.com/qq_44749491/article/details/129911221</link><guid>https://blog.youkuaiyun.com/qq_44749491/article/details/129911221</guid><author>qq_44749491</author><pubDate>Sun, 02 Apr 2023 15:13:49 +0800</pubDate><description><![CDATA[Kafka是一个开源的分布式事件流平台 （），被广泛用于高性能数据管道、流分析、数据集成和关键任务应用。]]></description><category></category></item></channel></rss>