- 博客(26)
- 收藏
- 关注
原创 基于 Spring AI Alibaba 搭建 Text-To-SQL 智能系统(简单实现)
创建请求参数/*** Text-to-SQL请求参数*/@Data/*** 用户自然语言查询内容*/@NotBlank(message = "查询内容不能为空")/*** 查询的数据库名,默认text_to_sql*/创建返回结果/*** Text-to-SQL返回结果*/@Data/*** 是否成功*//*** 生成的SQL语句(成功时返回)*//*** SQL执行结果(成功时返回)*//*** 错误信息(失败时返回)*/
2026-03-22 15:49:10
415
原创 基于 Spring AI Alibaba 搭建 Text-To-SQL 智能系统(初始化)
本文介绍了一个基于SpringBoot的文本转SQL项目初始化过程。项目主要依赖包括Spring Boot Web、Spring AI Alibaba、MySQL连接器和常用工具库。通过配置pom.xml添加了必要的依赖,并创建了数据库text_to_sql及其相关表(用户、分类、商品、订单等)。数据库配置文件设置了连接参数,项目中实现了MySQL DDL语句生成工具类,可获取所有表的建表语句。该项目旨在通过自然语言描述生成SQL语句,后续将实现提示词功能来完成核心功能。
2025-11-08 11:15:13
382
原创 基于 Spring AI Alibaba 搭建 Text-To-SQL 智能系统(前置介绍)
Text-To-SQL系统是一种将自然语言自动转换为SQL查询的技术,降低了数据库查询的门槛。文章分析了现有开源系统如Chat2DB、SQLChat和Vanna的特点,探讨了三种获取表元数据的方案,并提出基于RAG的优化架构。针对TableSchema检索优化问题,引入了意图识别、术语标准化和rank模型等技术;在SQL生成优化方面,设计了语法校验、危险操作拦截和性能优化模块。文章阐述了如何从基础系统逐步优化到企业级Text-To-SQL系统的实现路径,重点解决了语义匹配精度和SQL生成安全性等关键问题。
2025-10-29 23:28:48
1342
3
原创 基于模板方法模式+深度优先搜索+Vibe Coding实现人才计算器
本文介绍了一个基于用户问卷数据匹配政策规则的系统实现方案。系统采用多叉树数据结构表示复杂的嵌套规则条件,支持布尔组合、多分支等逻辑。通过深度优先搜索(DFS)算法实现两种匹配模式:模糊匹配快速判断是否匹配成功;精确匹配遵循"最小化原则",返回最少的不匹配属性。采用模板方法模式统一处理流程,将差异化步骤延迟到子类实现,提高代码复用性。同时利用AI工具快速开发了可视化规则表达式生成组件,支持管理员通过UI界面构建复杂规则。方案实现了高效、灵活的政策匹配功能,满足不同业务场景需求。
2025-10-21 10:22:27
894
原创 MySQL 中一条 SQL 语句的执行流程
MySQL执行SQL语句需要经过服务层和引擎层的协同处理。服务层包括连接器、查询缓存(5.7后弃用)、分析器、优化器和执行器,负责SQL解析、优化和执行协调;引擎层如InnoDB负责数据存储和读取。查询流程涉及连接建立、SQL解析、执行计划优化和数据获取。增删改操作还涉及事务处理,包括undolog记录、redolog持久化和两阶段提交机制,确保数据一致性和事务完整性。InnoDB通过缓冲池、changebuffer等机制提升性能,利用MVCC支持并发访问。
2025-10-05 18:26:42
966
4
原创 LangChain4j 框架 AI 无限循环调用文件创建工具解决方案记录
为此我到处在找解决方案,找了一圈也没找到,今天无意在看LangChan4j官方文档时发现工具调用的内容也会通过聊天记忆的方式传给AI让AI知道工具的执行结果,所以我在想AI循环调用工具是不是因为AI忘记了这个工具之前生成过,而之所以会忘记是因为之前的调用结果AI看不到,工程应用生成模式出现了长时间执行不结束的情况,执行30分钟+还未结束调用,看了一下日志发现是AI不断的在循环调用文件创建工具,每一个Vue项目文件都被一直循环创建。
2025-09-22 22:47:10
324
原创 Spring AI 学习笔记(2)
RAG(Retrieval-Augmented Generation,检索增强生成)是一种结合信息检索技术和 Al 内容生成的混合架构,可以解决大模型的知识时效性限制和幻觉问题。简单来说,RAG 就像给 AI 配了一个“小抄本”,让 AI 回答问题前先查一查特定的知识库来获取知识,确保回答是基于真实资料而不是凭空想象。从技术角度看,RAG 在大语言模型生成回答之前,会先从外部知识库中检索相关信息,然后将这些检索到的内容作为额外上下文提供给模型,引导其生成更准确、更相关的回答。
2025-08-24 10:47:19
1473
原创 Spring AI 学习笔记
Spring AI 是 Spring 官方推出的开源框架,旨在为 Java 开发者提供便捷的 AI 能力集成方案,于 2024 年 10 月 18 日正式发布 1.0 版本。它通过标准化接口和模块化设计,降低大模型应用开发门槛,让开发者能够充分利用现有的 Spring 生态系统来构建和部署 AI 应用。Spring AI 本质上是一个扩展模块,类似于 Spring Boot 或 Spring Cloud,但它专注于与 AI 相关的功能。
2025-07-27 17:56:47
1597
2
原创 使用策略模式重构 if-else “shi山” 代码
本文介绍了在处理复杂审批流程时,如何通过策略模式优化原本臃肿的if-else代码结构。最初项目中简单的串行审批流程随着需求变更变得异常复杂,导致代码可读性和可维护性急剧下降。作者采用策略模式将不同审批节点的处理逻辑封装为独立的策略类,通过统一的接口进行调用,实现了代码的解耦和扩展性提升。具体实现包括定义节点审批处理器接口、编写具体策略类以及重构审批主方法。这种重构不仅使代码结构更清晰,也便于后续新增审批流程时的扩展维护,体现了策略模式在动态切换算法和避免条件分支方面的优势。
2025-07-19 13:33:11
866
原创 只需三步,让暗恋的女神主动跟你表白
周末无意间刷到了声音克隆这么个玩意,看着挺有趣的所以自己也来尝试实操一下,经过一上午的操作也是完美实现。接下来就以如何克隆出女神的声音,让其给自己来了一场深情的告白为例。废话不多说直接上实操。
2025-06-14 23:03:59
554
原创 Docker从入门到精通
容器是镜像的一个运行实例,具备进程隔离网络隔离文件系统隔离等特性。Dockerfile 是一组指令脚本,描述如何构建一个镜像。是一个用于定义和运行多容器 Docker 应用的工具。通过配置多个服务(如前端 + 后端 + Redis)。仓库是用来存储和分发镜像的服务器,Docker Hub 是官方公共仓库,也可以搭建私有仓库。卷(Volume)是 Docker 推荐的持久化数据机制,用于保存容器数据到宿主机。
2025-06-08 19:25:15
1085
原创 HashMap正确初始化
size = 0,threshold = 1所以并不会发生扩容,第二次size=1,++size = 2,大于threshold因此我会触发一次扩容,扩容后的容量为4,threshold=3。第一次初始化HashMap时会通过初始容量和负载因子计算出threshold的值,我们这里容量指定的是2,而负载因子默认是0.75所以threshold的值为1。因此当我我们指定map容量为2,在put第二个元素时,map会发送扩容,要想让他不发扩容也很容易。新建一个容量为2的map,并往里put两个键值对。
2025-05-13 15:05:43
604
1
原创 交易平台审批流数据库表设计思路
要使用审批流前提是维护审批节点信息即审批流程结构。新增节点,名称,类别,级别设置审批人,下一个节点因为需要实现的审批流对应的流程比较简单所以只用了三张表,其中审批节点表就代表流程结构,如果是比较复杂的流程如条件流程,那么流程结构就不适合以这种形式维护可以用低代码流程编辑器来实现,前端提供一个可视化的界面来编辑流程结构方便又省事,编辑完后以Json格式导出流程结构信息在维护到数据库,审批时根据Json格式的流程信息来进行。
2025-02-15 16:06:31
1344
原创 Java 进程无故宕机,到底是人性的扭曲还是道德的沦丧(全是干货...)
总结一下,这两次 Java 进程无故宕机,根本原因竟然都是意外的乌龙事件。第一次是 Jenkins 帮忙每天准时“宕机闹钟”,构建项目顺带“干掉”进程,偏偏领导和我都一时想不起来有这回事;第二次是同事的脚本操作精准打击,莫名其妙连我的项目都一并送上“西天”。所以,有时候 Java 进程就像一个脾气有点大的大厦管理员,遇到妖魔鬼怪才不管三七二十一直接跑路——可当你抽丝剥茧、一顿分析,才发现是自己给自己制造了些尴尬。遇到 Java 进程宕机,先冷静再细心,除了硬核分析,别忘了排查意料之外的“操作事故”。
2024-11-17 14:42:23
1013
原创 Golang sync包介绍(1)
readerSem— 读写锁释放时通知由于获取读锁等待的 Goroutine;writerSem— 读锁释放时通知由于获取读写锁等待的 Goroutine;w互斥锁 — 保证写操作之间的互斥;— 统计当前进行读操作的协程数,触发写锁时会将其减少阻塞后续的读操作;readerWait— 当前读写锁等待的进行读操作的协程数,在触发Lock之后的每次RUnlock都会将其减一,当它归零时该 Goroutine 就会获得读写锁;当读写锁被释放Unlock。
2024-10-21 20:54:48
821
原创 Golang channel介绍
go语言有一句很经典的话,不要通过共享内存来通信,而应该通过通信来共享内存;关闭一个末初始化的 channel 会产生 panic。channel只能被关闭一次,对同一个channel重复关闭会产生 panic。向一个已关闭的 channel 发送消息会产生 panic。从一个已关闭的channel读取消息不会发生panic,会一直读取所有数据,直到零值。
2024-10-11 22:17:06
1359
6
原创 Golang Map介绍
存储基于key-value键值对模式,key不能重复,value可以重复;增、删、改、查时间复杂度为O(1);在go语言中,map底层采用hash表,用变种拉链法拉解决hash冲突;
2024-08-10 18:08:33
957
原创 SpringBoot+Vue+WebSocket实现全双工通信实践。
在浏览器(客户端)和服务器交互过程中,大部分是浏览器向服务器发送请求然后服务器响应数据给浏览器。但是在一些特定场景中(实时通信系统)需要服务器在数据更新或特定事件发生时,立即将信息推送给客户端,而无需客户端轮询(即定期请求)服务器。比如我现在就有一个需要在前端实时展示用户未读消息的需求。要实现服务器实时推送数据给前端常用的解决方案就是使用WebSocket通信。WebSocket 协议是一种在单个 TCP 连接上提供全双工通信的协议,它允许客户端和服务器之间进行实时的双向数据传输。
2024-07-10 14:05:18
887
原创 使用 MockMvc 测试 Spring Boot 接口
在 Spring Boot 应用中,测试接口是确保应用正确工作的关键步骤。MockMvc 是 Spring 提供的一个强大的测试工具,允许我们在不启动完整 Web 服务器的情况下模拟 HTTP 请求并验证响应。本文将介绍如何使用 MockMvc 测试 Spring Boot 接口。
2024-07-09 15:51:06
553
原创 Go和Java的区别
作为一名Java开发者,我早已习惯了其严谨的对象模型、丰富的API和强大的跨平台能力。然而,当我踏入Go语言的世界时,我被其简洁、高效和直接的风格深深吸引。Go语言,这个由Google精心打造的开源编程语言,不仅为我带来了全新的编程体验,也让我对编程有了更深刻的理解。在学习完Go的基本语法后,我深感两种语言在设计理念、语法特性和应用场景上的巨大差异。Go的简洁语法、强大的并发支持和静态类型安全,让我对编程有了全新的认识。与此同时,我也发现Java在面向对象编程、内存管理和生态系统方面的优势。
2024-06-11 15:45:47
1660
2
原创 扫描登录原理
在扫码登录的过程中,用户首先在需要登录的应用或平台上触发扫码登录功能,系统会生成一个包含特定信息的二维码。因为有了确认登陆这个逻辑,所以就需要临时token,这样我们才能将确认和扫码关联起来:请求中携带了临时token,这个token之前只在扫码时候返回给过手机端,通过这个凭证,可以一定程度证明扫码的是你,现在确认登陆的还是你。这里的请求登录方为 Web 端,已登录方为 APP 端,登录凭证可以是用户信息,也可以是换取用户信息的凭证,而特定媒介是某一张二维码。,此时的手机一定是登录的,不存在没登录的情况。
2024-04-28 11:36:39
1071
1
原创 数据结构——哈夫曼树(最优二叉树)
带权路径长度(WPL)是从根节点到某一节点的路径长度与该节点权的乘积。当用n个带权值的叶子节点构建一棵二叉树,如果这棵二叉树的带权路径长度最小,称这棵树为最优二叉树或哈夫曼树,因此在构建哈夫曼树应遵循权值越大的节点离根节点越近。节点的带权路劲长度:从根节点到该节点之间的长度与该节点的权的乘积。1.在n个带权节点中选出两个最小的节点,将其组成一个新的二叉树,且新二叉树的根节点的权值为左右子节点的权值和。路劲:在一棵树中从一个节点到另一个节点的通路,称为路劲。节点的权:每个节点赋予一个值称为该节点的权值。
2024-04-25 15:04:42
1760
3
原创 编辑距离算法在项目中的应用
当用户输入的关键字与文档中的关键字不完全匹配时,编辑距离算法可以帮助确定最接近的匹配结果或进行拼写纠错。利用编辑距离算法,可以比较用户输入的文字与已有文字库中的文字之间的相似度,从而推荐最合适的文字。为了让项目有亮点,引入了一些看起来高大上的东西如(指纹登录,语音识别还有推送算法),推送算法就是将老人发布的服务推送给合适的志愿者提高接单效率。项目的核心功能是老年人在APP发布需要的服务(家政服务,陪玩陪聊等),志愿者通过查看发布的服务列表选择合适的进行接单。
2024-04-15 11:34:59
911
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅