- 博客(172)
- 收藏
- 关注
原创 AI Coding 零基础实战教程
在正式开始之前,先了解本教程中使用的标记约定:想象这样一个场景:产品经理小王完全不会写代码,但他用自然语言向AI描述了自己想要的功能 —— “帮我做一个团队内部的书签收藏工具,支持按标签分类和搜索”。三天后,一个功能完整、界面美观的Web应用上线了。这不是科幻,这是2026年正在发生的事情。传统的编程学习路径是这样的:花几个月学语法 → 花几个月做练习 → 花几个月做项目 → 终于能写出可用的软件。而AI编程的路径完全不同:你只需要学会"如何清晰地表达你想要什么",AI来负责把它变成代码。这就像你不需要学会
2026-10-03 22:55:06
291
原创 Cursor快速上手+科学使用指南
Cursor 是一款功能强大的 AI 优先代码编辑器,可增强我们的开发工作流程。深度集成AI模型,不是简单地接入模型,而是让AI充当了编译器的核心交互方式。支持代码块对话、项目级对话、模型自由选择。强上下文理解能力,可以自动识别项目文件、代码块、错误信息等等,提供更直观准确的AI修改能力。对话式开发体验,仅需用自然语言沟通,Cursor就会根据指令完成布置的任务,使用者可以轻松扮演产品经理,让Cursor理解你的命令自行工作。
2026-09-05 00:17:39
280
原创 LangChain4J
Prompt:好比UI层,进行用户交互Langchain4j, Spring AI:好比Controller,调用AI大模型各类AI大模型:好比Service,提供人工智能服务向量数据库:好比Mapper,进行数据存储。
2026-08-21 17:22:00
223
原创 算法学习,面试突击
给定一个只包括 ‘(’,‘)’,‘{’,‘}’,‘[’,‘]’ 的字符串 s ,判断字符串是否有效。输入: nums=[-2,1,-3,4,-1,2,1,-5,4]给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.解释:连续子数组[4,-1,2,1]的和最大,为6。输入: 1->2->3->3->4->4->5。输入:nums=[2,3,1,1,4]输入:nums=[3,2,1,0,4]输入: 1->1->1->2->3。
2026-06-22 15:02:58
258
原创 SpringAi 1.1更新
KeywordMetadataEnricher 用于RAG场景, 可以将文档进行关键字提取, 但是以前无法指定范围, 后续检索不不可控, 现在可以自定义了:示例.build();.build();PropertyDefault如果true,工具调用错误将作为异常抛出,供调用者处理。如果false,错误将转换为消息并发送回 AI 模型,使其能够处理并响应错误。false@BeanOllama的Think模式居然还不支持关闭。
2026-05-31 01:21:34
266
原创 Agent5种模式详细应用
什么是ai agent:你给个任务,它自己拆分、规划、调用资源、执行链路,直到返回结果。你给个任务,它自己规划(根据你指定的规划方式)、拆分(根据你指定的拆分方式)、调用资源(根据你提供的资源)、(自动)执行链路,直到返回结果。
2026-03-15 01:54:12
365
原创 模型RAG评测
模型理解力评测RAG 之所以广受欢迎,是因为它(基于检索到的真实资料)能够减少幻觉。然而, RAG 并不一定意味着幻觉会被完全消除。现实中出现事实性幻觉的常见场景问:马云在阿里巴巴创办初期遇到了哪些具体困难?RAG:马云,著名企业家,阿里巴巴创始人。答A(幻觉):马云在阿里巴巴创立初期曾因办公楼失火导致数据全部丢失,团队一度陷入危机。怎么你确定是否有这些问题:事实性的评估。
2026-03-15 01:23:28
247
原创 《基于航空智能客服+RAG》
可以在用户发起的提问时,先向数据库查询相关的文档,再把相关的文档拼接到用户的提问中,再让模型生成答案。那就是RAG的实现了。,将提问变成向量,然后与向量数据库中的文档向量进行相似度计算(cosine值)。要注意:此时向量数据库不会回答用户的提问。要回答用户的提问需要指定advisor。把文本变成向量然后再存入向量数据库。时同样会先把用户的提问给。
2026-03-15 00:21:53
65
原创 Tools/function-call使用+原理+7大痛点
想做企业级智能应用开发, 你肯定会有需求要让大模型和你的企业API能够互连,因为对于基础大模型来说, 他只具备通用信息,他的参数都是拿公网进行训练,并且有一定的时间延迟, 无法得知一些具体业务数据和实时数据, 这些数据往往被各软件系统存储在自己数据库中:比如我问大模型:“中国有多少个叫徐庶的” 他肯定不知道, 我们就需要去调用政务系统的接口。比如我现在开发一个智能票务助手, 我现在跟AI说需要退票, AI怎么做到呢?就需要让AI调用我们自己系统的退票业务方法,进行操作数据库。
2026-03-04 23:01:21
405
原创 结构化输出和初代Tools实现
大模型如果它无法和企业API互联那将毫无意义!比如我们开发一个智能票务助手, 当用户需要退票, 基础大模型它肯定做不到, 因为票务信息都存在了我们系统中, 必须通过我们系统的业务方法才能进行退票。那怎么能让大模型“调用”我们自己系统的业务方法呢?以Boolean为例 , 在agent中可以用于判定用于的内容2个分支, 不同的分支走不同的逻辑。用购物APP应该见过复制一个地址, 自动为你填入每个输入框。
2026-03-03 21:57:34
76
原创 对话记忆—数据库和Redis不同的实现
但是一旦聊天记录多了依然会超过token上限, 但是有时候我们依然希望存储更多的聊天记录,这样才能保证整个对话更像“人”。可以在每次对话的时候把当前聊天信息和模型的响应存储到ChatMemory, 然后下一次对话把聊天记录取出来再发给大模型。大模型的token是有上限了, 如果你发送过多聊天记录,可能就会导致token过长。如果有多个用户在进行对话, 肯定不能将对话记录混在一起, 不同的用户的对话记忆需要隔离。会发现, 不同的CONVERSATION_ID,会有不同的记忆。
2026-02-28 00:21:52
723
原创 Advisor对话拦截的使用和自定义
重读策略的核心在于让LLMs重新审视输入问题,这借鉴了人类解决问题的思维方式。通过这种方式,LLMs能够更深入地理解问题,发现复杂的模式,从而在各种推理任务中表现得更加强大。再次阅读问题:{Input_Query}可以基于BaseAdvisor来实现自定义Advisor, 他实现了重复的代码 提供 模板方法让我们可以专注自己业务编写即可。""";@Override// 获得用户输入文本// 定义重复输入模版// 设置请求的提示词// 不保留。
2026-02-27 22:44:48
299
原创 ChatClient的基本使用及实战
这种方式会在底层自动注入1个ChatModel , 如果你配置了多个模型依赖, 会无法注入。定义3个ChatClient的bean。也可以根据请求动态创建, 看需求。
2026-02-26 22:46:53
79
原创 SpringAi快速使用
接入deepseek1.依赖获取deepseek api-key● API Key:需从 DeepSeek 创建并获取 API 密钥:https://platform.deepseek.com/api_keys3.配置4.4. 测试spring-ai-starter-model-deepseek 会为你增加自动配置类, 其中DeepSeekChatModel这个就是专门负责智能对话的。options配置选项temperature(温度)0-2 浮点数值 更有创造性 热情
2026-02-25 23:28:56
582
原创 SpringAI1.0
Spring AI 是一个面向人工智能工程的应用框架。解决了 AI 集成的基本挑战:将企业数据和API与AI 模型连接起来。
2026-02-25 20:49:45
325
原创 SpringAI RAG全链路讲解
检索增强生成(Retrieval-augmented Generation)对于基础大模型来说, 他只具备通用信息,他的参数都是拿公网进行训练,并且有一定的时间延迟, 无法得知一些具体业务数据和实时数据, 这些数据往往在各种文件中(比如txt、word、html、数据库…)虽然function-call、SystemMessage可以用来解决一部分问题但是它只能少量,并且针对的场景不一样如果你要提供大量的业务领域信息, 就需要给他外接一个知识库:比如。
2026-01-30 22:31:46
420
原创 Prometheus
prometheus受启发于Google的Brogmon监控系统(相似kubernetes是从Brog系统演变而来)。2016年5月继kubernetes之后成为第二个加入CNCF基金会的项目,同年6月正式发布1.0版本。2017年底发布基于全新存储层的2.0版本,能更好地与容器平台、云平台配合。官方网站:https://prometheus.io项目托管:https://github.com/prometheus。
2025-05-20 23:17:04
1313
原创 云原生Java架构师----part02 Kubernetes核心实战
PVC:持久卷申明(Persistent Volume Claim),申明需要使用的持久卷规格。配置值未更改,因为需要重新启动 Pod 才能从关联的 ConfigMap 中获取更新的值。PV:持久卷(Persistent Volume),将应用需要持久化的数据保存到指定位置。运行中的一组容器,Pod是kubernetes中应用的最小单位.NodePort范围在 30000-32767 之间。原因:我们的Pod部署的中间件自己本身没有热更新能力。控制Pod,使Pod拥有多副本,自愈,扩缩容等能力。
2025-04-29 23:38:06
895
原创 云原生Java架构师----part01 Kubernetes基础概念
kubelet 接收一组通过各类机制提供给它的 PodSpecs,确保这些 PodSpecs 中描述的容器处于运行状态且健康。控制平面组件可以在集群中的任何节点上运行。然而,为了简单起见,设置脚本通常会在同一个计算机上启动所有控制平面组件, 并且不会在此计算机上运行用户容器。控制平面的组件对集群做出全局决策(比如调度),以及检测和响应集群事件(例如,当不满足部署的 replicas 字段时,启动新的。节点组件在每个节点上运行,维护运行的 Pod 并提供 Kubernetes 运行环境。
2025-04-29 23:07:56
1029
原创 电商---part02 项目环境准备
SpringCloudAlibaba GitHub地址:https://github.com/alibaba/spring-cloud-alibaba/中文网站对应的地址:https://github.com/alibaba/spring-cloud-alibaba/blob/master/README-zh.md注册中心:Nacos配置中心:Nacos负载均衡:Ribbon声明式服务调用:OpenFegin服务容错:Sentinel网关服务:Gateway链路监控:Sleuth。
2025-04-04 20:04:42
909
原创 电商---part01 项目整体
单体架构应该是最先接触到的架构实现了,在单体架构中使用经典的三层模型,即表现层,业务逻辑层和数据访问层。单体架构只适合在应用初期,且访问量比较下的情况下使用,优点是性价比很高,开发速度快,成本低,但缺点也很明显,这时扩展的首先就是考虑服务器的集群处理。
2025-03-31 20:59:16
1013
原创 kubernetes——part3-5 核心概念 Service
使用kubernetes集群运行工作负载时,由于Pod经常处于用后即焚状态,Pod经常被重新生成,因此Pod对应的IP地址也会经常变化,导致无法直接访问Pod提供的服务,Kubernetes中使用了Service来解决这一问题,即在Pod前面使用Service对Pod进行代理,无论Pod怎样变化 ,只要有Label,就可以让Service能够联系上Pod,把PodIP地址添加到Service对应的端点列表(Endpoints)实现对Pod IP跟踪,进而实现通过Service访问Pod目的。
2025-03-09 11:20:05
1001
原创 云原生实战
云平台是一种基于互联网的服务提供模式,它允许用户通过网络访问和使用计算资源、存储空间、数据库、应用程序等各种服务,而无需拥有或直接管理这些资源的实际物理设备。简单来说,想象有一个超级大型的计算机,但并不需要亲自购买、维护或者放置它。相反,只需通过互联网连接到这台计算机,像访问一个网站一样,就可以使用它提供的各种功能和服务。这就是云平台的核心理念。
2025-02-06 00:04:46
1105
原创 React
需求,组件0 改变了数据,其它组件也想获得改变后的数据,如图所示这种多个组件之间要共享状态数据,useState 就不够用了,useContext 也不好用了能够和 react 配合使用的状态管理库有MobXRedux其中 Redux API非常难以使用,这里选择了更加符合人类习惯的 MobX,它虽然采用了面向对象的语法,但也能和函数式的代码很好地结合。
2025-02-02 22:46:41
1032
原创 如何快速上手二手项目
首先要保证资料齐全下载代码,并运行,评估注释如何,查看代码规范代码不一定能完整看出项目打开对应文档文档不明了,直接打开可以访问的地方,看看需求最好还是运行一下。
2025-01-12 18:50:55
261
原创 mybatis
Mybatis简介MyBatis历史MyBatis最初是Apache的一个开源项目iBatis, 2010年6月这个项目由Apache Software Foundation迁移到了Google Code。随着开发团队转投Google Code旗下,iBatis3.x正式更名为MyBatis。代码于2013年11月迁移到GithubiBatis一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。iBatis提供的持久层框架包括SQL Maps和Data Acces
2025-01-07 21:14:29
783
原创 Kubernetes——part4-3 基于Ingress Nginx实现灰度发布系统
工作中,会经常对应用进行升级发版,在互联网公司尤为频繁,主要是为了满足业务的快速发展。经常用到的发布方式有滚动更新、蓝绿发布、灰度发布。
2025-01-05 22:40:04
1271
原创 Redis核心技术与实战
首先理解一点,把Redis称为KV数据库,键值对数据库,那就可以把Redis内部的存储视为存在着一个巨大的Map,对Map的操作无非就是get和put,然后通过key操作这个key所对应的value,而这个value的类型可以多种多样,也就是Redis提供的那些数据结构,比如字符串(String)、哈希(Hash)等等。如果是集群,还容易丢失数据。这些年李老师的经历,我发现,很多技术人都有一个误区,那就是,只关注零散的技术点,没有建立起一套完整的知识框架,缺乏系统观,但是系统观其实是至关重要的。
2024-12-21 22:41:23
2744
原创 MySQL性能调优与架构设计
目前关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴斯-科德范式(BCNF)、第四范式(4NF)和第五范式5NF,又称完美范式)。满足最低要求的范式是第一范式(1NF),在第一范式的基础上进一步满足更多规范要求的称为第二范式(2NF),其余范式以次类推。一般来说,数据库只需满足第三范式(3NF)就行了。
2024-12-05 23:45:56
1133
原创 Java算法(高)
回溯算法也叫试探法,是一种系统地搜索问题的解的方法。回溯算法的基本思想是:从一条路往前走,能进则进,不能进则退回来,换一条路再试。在探路的过程中一般使用深度优先搜索策略进行遍历,遍历的过程中记录和寻找所有可行解或者最优解。从前面对回溯算法的说明可以看到,回溯的本质是穷举,穷举所有可能,然后选出想要的答案,只是在穷举的过程中可以根据一些条件避免无效的遍历,这个避免的过程也叫剪枝。所以回溯法并不是什么很高效的算法,那么既然回溯法并不高效为什么还要用呢?因为一些问题只能靠暴力搜索,没有更高效的解法。
2024-11-24 15:13:22
1150
原创 JAVA 算法 (中)
仔细分析题目,需要找的是数组排序后的第 k 个最大的元素,所以最简单的办法,首先把数组排序后,返回第 k 个最大的元素就行了。这道题是面试的高频考题,同时也是基础排序算法的应用。
2024-11-24 00:34:08
431
原创 tcpdump抓包 & wireShark
TCPdump,全称dump the traffic on anetwork,是一个运行在linux平台可以根据使用者需求对网络上传输的数据包进行捕获的抓包工具。1、在Linux平台将网络中传输的数据包全部捕获过来进行分析2、支持网络层、传输层协议等协议捕获过滤3、数据发送和接收的主机、网卡和端口等各种过滤捕获数据规则4、提供and、or、not等语句进行逻辑组合捕获数据包或去掉不用的信息5、结合wireshark工具分析捕获的报文要灵活使用 tcpdump 工具必须要有两个必备的知识基础:第一、
2024-11-23 01:21:39
1863
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅