自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(121)
  • 资源 (2)
  • 收藏
  • 关注

原创 ReAct Agent 和 Dify:选 AI 工具前一定要懂的区别

摘要: ReAct Agent和Dify是两种不同定位的AI工具。ReAct Agent是智能体,能自主思考并执行多步骤任务(如自动化办公、复杂数据分析),适合需要动态决策的场景;Dify是低门槛应用平台,可快速搭建问答系统或客服工具,适合简单需求。核心区别在于:ReAct Agent像“会思考的助手”,Dify像“现成工具箱”。选择时需匹配任务复杂度与团队技术能力——复杂任务用Agent,轻量需求用Dify,避免盲目选型浪费资源。

2025-12-19 17:01:12 650

原创 知识图谱:让信息“活起来”的秘密武器

最近在做数据整理的时候,我发现单靠传统数据库真的不够用。你可能把一堆表格、文档都存好了,但是要知道“谁和谁有关联”,或者“某个概念背后的上下文”,那就很麻烦。这时候,知识图谱(Knowledge Graph)就派上用场了。它不是单纯存数据,而是把实体和关系结构化成图,让信息有脉络可循,让电脑也能理解数据之间的联系。(想让AI操作数据库,感觉知识库图谱是非常有用的)

2025-12-19 16:46:15 463

原创 Agent 和ReAct Agent区别

本文阐述了Agent与ReAct Agent的本质区别。Agent是一个能够自主规划、调用工具、执行任务并调整行为的智能系统,包含LLM、目标、记忆、工具和控制逻辑等模块。而ReAct是Agent的一种执行范式,采用"思考-行动-观察"的循环方式完成任务。ReAct Agent是使用这种执行方式的Agent,但不是所有Agent都必须采用ReAct。其他实现方式还包括Planner+Executor等。ReAct适合任务路径不确定的场景,而固定流程则可采用更高效的方式。

2025-12-15 15:52:28 980

原创 Tools、MCP 和 Function Calling

本文基于Lynxe项目对比了AI Agent开发中的三种工具调用机制:Spring AI Tools、MCP协议和Function Calling。Spring AI Tools是框架层面的抽象,提供类型安全的工具定义和统一管理;MCP是跨平台的协议标准,支持标准化通信和外部服务集成;Function Calling则是模型层面的API能力。文档详细说明了各机制的特点、实现方式及优劣势,并通过Lynxe项目中的代码示例展示了具体应用场景,为开发者选择合适工具调用方案提供了参考依据。

2025-12-12 13:14:23 787

原创 MCP网关的实践

企业落地MCP协议面临三大核心挑战:存量业务能力快速接入、统一治理与管理、工具数量爆炸后的管理瓶颈。Higress网关提供系统性解决方案:通过REST to MCP一键转换实现存量API快速接入;作为MCP Proxy统一代理入口,解决协议适配和安全认证问题;提供SSE会话保持、协议卸载等进阶能力保障稳定性;通过权限控制和身份认证确保安全性。针对大规模工具管理难题,Higress可帮助优化上下文窗口占用问题,为企业规模化落地MCP提供技术支撑。该方案能显著降低企业AI应用开发门槛,提高系统稳定性和安全性。

2025-11-14 14:03:27 864

原创 AI网关介绍

AI网关是统一管理AI模型调用的中间层服务,位于客户端与AI模型之间,负责路由请求、流量控制、安全鉴权和监控统计。它解决了多模型、多模态、多场景下的统一接入问题,提供安全权限控制、流量优化、精细化成本管理和监控分析能力。通过AI网关,企业可以安全高效地调用各类AI模型,实现统一管控。典型应用场景包括模型访问、工具访问和Agent访问,支持多种协议转换和智能路由,提升系统稳定性和灵活性。示例代码展示了AI网关的核心功能实现,包括请求处理、服务分发和权限控制。

2025-10-15 16:05:33 1019

原创 设计模式---门面模式

门面模式是一种结构型设计模式,它为复杂子系统提供统一入口,简化客户端调用。就像公司前台协调各部门一样,门面类将多个子系统操作封装成简单接口(如家庭影院的一键观影功能)。该模式通过Java代码示例展示了如何封装DVD、投影仪等设备操作,优点包括简化调用、降低耦合,但可能造成门面类臃肿。适用于数据库访问、一键操作等需要简化复杂流程的场景,核心思想是通过"客服式"接口隐藏系统复杂性,提升易用性和可维护性。

2025-09-21 18:23:13 515

原创 权限那点事儿

权限管理是企业数据安全的重要保障。文章首先阐述了权限管理的必要性,通过支付公司案例说明不当授权可能导致数据泄露或误操作风险。其次介绍了RBAC(基于角色的访问控制)模型,通过角色中介简化用户与权限的分配关系,解决了大规模用户权限维护难题。随后提出更灵活的ABAC(基于属性的访问控制)模型,该模型通过用户属性、资源属性、环境条件等动态计算权限,适用于复杂场景。最后文章提出了一种改进方案,在RBAC基础上允许直接分配独立权限,形成"角色权限+独立权限"的混合模式,既保持RBAC的易用性,又增

2025-08-29 09:26:08 1000

原创 AI如何减少幻读

AI幻读:现象与应对策略 AI幻读(或AI幻觉)指大语言模型生成看似合理但实际错误或虚构内容的现象,本质是模型基于概率预测词语而非理解事实。幻读无法彻底避免,但可通过以下方式减少: 优化提问:要求事实核查(如“若不确定请说明”)、限定回答范围、避免误导性提问。 技术辅助:结合检索增强生成(RAG)或引用来源机制,确保回答基于真实数据。 模型训练:通过微调让AI学会拒绝编造,增强对不确定问题的克制性。 核心在于引导AI更谨慎地生成内容,并借助外部验证降低幻觉风险。

2025-07-17 13:25:20 584

原创 AI表格数据分析

AI数据分析流程可概括为四步:数据预处理(清洗、识别结构)、分析目标推断(维度推荐)、模式识别(趋势/异常检测)、可视化输出。该技术可应用于电商场景如新品监控、库存预警等,但面临脏数据和模型更新两大挑战。核心在于确保数据质量与业务匹配,AI才能发挥真正的决策辅助价值。(149字)

2025-06-27 10:23:22 736

原创 Agent介绍

智能体是具备自主决策和执行能力的AI系统,能够感知环境、制定计划并调用工具完成任务。与普通AI模型相比,智能体具有多步推理、持续学习和闭环优化的特点。根据能力可分为三类:反应式、有限规划和自主规划智能体。实现智能体的关键技术包括CoT思维链(分步推理)、Agent Loop执行循环(自主重复执行)和ReAct模式(推理-行动-观察循环)。这些技术使智能体从简单响应走向自主智能,向"数字员工"方向发展。

2025-06-24 16:41:42 899

原创 AI--知识库RAG实战

文章摘要 本文介绍了本地RAG(检索增强生成)知识库的实战应用。RAG通过结合信息检索和AI生成技术,解决大模型的知识时效性和幻觉问题。文章对比了RAG与传统AI模型的区别,详细解析了RAG的四个工作流程:文档处理、向量存储、检索过滤和查询增强,并提供了SpringAI实现的代码示例。最后展示了将Markdown文档存入PostgreSQL向量库的效果,并介绍了查询重写优化方法。

2025-05-28 17:04:20 1194

原创 SpringAI特性

SpringAI 通过 Advisors 机制增强 AI 功能,Advisors 作为可插拔的拦截器,在调用 AI 前后执行额外操作,如改写提示词、记录日志等。执行流程包括创建 AdvisedRequest 和 AdvisorContext,通过 Advisor 链处理请求和响应,最终返回给客户端。用户可以自定义拦截器,如 CallAroundAdvisor 和 StreamAroundAdvisor,实现同步或流式请求处理。Chat Memory Advisor 提供对话记忆功能

2025-05-09 17:04:51 1218

原创 MCP(Model Context Protocol)

MCP(Model Context Protocol,模型上下文协议)是由 Anthropic 提出并于 2024 年 11 月开源的一种通信协议, 其实,从本质上来讲,MCP 的灵感部分来源于 USB-C 的类比:如同 USB-C 通过统一接口连接多种设备,MCP 旨在为 AI 应用提供一个“即插即用”的上下文管理框架。

2025-04-25 15:00:17 821

原创 MyBatis-Flex关联查询

在 MyBatis-Flex 中,我们内置了 3 种方案,帮助用户进行关联查询,比如 `一对多`、`一对一`、`多对一`、`多对多`等场景,他们分别是:- 方案1:Relations 注解- 方案2:Field Query- 方案3:Join Query

2025-04-06 17:12:31 1038

原创 SSO单点登录

单点登录(简称 SSO)是一种用户鉴权过程,允许用户在多个应用系统中使用单一的登录凭证(通常是用户名和密码)进行访问。它的基本原理是创建一种中央鉴权机制,用户登录一次后,无需在其他系统中再次进行身份验证即可访问这些系统的资源。

2025-03-15 19:08:52 1064

原创 【Http和Https区别】

HTTP(超文本传输协议)就像没有封口的快递信封明文传输:快递单内容谁都能看(数据不加密)快速送货:不检查快递员身份(无身份验证)门牌号80:默认送到80号仓库(端口80)HTTPS = HTTP + 防弹玻璃(SSL/TLS加密)加密快递单:用密码书写内容(数据加密)身份检查:核对快递公司执照(CA证书)专用通道443:走VIP运输通道(端口443)HTTP是Web通信的基础协议,但因其不安全性,已逐渐被HTTPS取代。

2025-02-22 21:12:15 1796

原创 idea日志管理的插件-Grep Console

Grep Console 插件是一款功能强大的 IDE 插件,它为开发者提供了方便的日志过滤和高亮显示工具,能够帮助开发者更有效地处理大量的日志输出。希望通过这篇文章可以帮助到各位看官老爷们,节约时间和精力,提升工作的效率以及心情的愉悦度。

2025-02-07 09:37:15 1084

原创 Redis缓存

先操作缓存还是先操作数据库?

2025-02-07 08:54:41 700

原创 Springboot自动装配原理

Spring Boot 的自动装配机制大大简化了应用配置的工作,它通过条件注解和大量的默认配置,帮助开发者自动配置常见的功能(如数据源、Web 服务器等)。通过理解自动装配的原理,开发者可以更加灵活地定制自己的应用配置,同时也可以在需要时禁用某些自动装配功能。

2025-01-05 13:06:50 995

原创 踩坑之服务器时间和本地时间相差8小时

这个问题可能与服务器的时区设置有关。通常在服务器中,如果时区设置与前端应用使用的时区不一致,会导致时间显示错误,例如时差 8 小时问题,需要检查数据库的时区格式,服务器的时区,以及后台代码返回的格式数据。

2024-12-31 09:25:43 2400

原创 Java21 虚拟线程

虚拟线程与Go语言中的协程类似,使得编写高并发、高吞吐量的应用程序变得更加简单和高效,尤其在处理I/O密集型任务时,能够显著提升系统的并发能力。打个比喻,创建线程就是招人,线程池就是我们招进来的人,多线程就是多个人在一个工厂一个人看一台机器,线程池相当于一个工人可以同时看多个机器,密集io相当于需要工人介入时间较少的机器,密集计算相当于工人介入较长时间的机器。虚拟线程的引入确实极大的降低创建和管理线程的开销,使用并发编程更高效便捷,但并不意味着多线程或线程弛就变得。来创建和管理虚拟线程。

2024-12-15 14:41:00 1743

原创 使用go语言进行端口扫描

端口扫描的核心原理是基于 TCP 协议的三次握手过程。当你尝试连接一个端口时,操作系统会通过 TCP 三次握手来建立连接。如果目标端口响应了握手请求(即返回 SYN-ACK 响应),则可以认为该端口是开放的;如果没有响应,或者连接超时,则认为端口是关闭的。GO语言和Python语言都是写脚本的最佳选择,这里使用了go语言简单的写了一个端口扫描脚本。

2024-11-23 13:29:09 752

原创 docker搭建私有的仓库

我们可以自己手动的在我们的服务器上进行搭建私有的仓库。Docker Registry,在企业中自己的镜像最好是采用私有Docker Registry来实现。

2024-11-23 13:13:25 3466 1

原创 前端用docker部署

我们的前端项目是利用nginx启动的,所以我们先将前端这个项目打包成dist文件,上传到服务器,然后编写dockerfile以及nginx配置文件,将dist文件和nginx配置文件copy到容器内部。使用Docker部署若依项目的前端服务,我们最终实现的是:启动一个镜像,我们的整个前端就启动了,想要修改nginx配置,直接挂载下目录修改即可。注意:如果使用的是docker部署的nginx ,应该先把nginx 进行关闭!如果我们不用docker部署,我们会怎样部署前端项目呢?

2024-11-04 10:55:36 1041

原创 设计模式之装饰器模式

装饰模式就是将其实现的功能拆分成一个个装饰器类,然后这些装饰器类实现功能并组装起来达成预期功能,还可以在不知不觉中增加其他装饰器增加新功能,而被装饰类是无感知的

2024-11-03 20:53:07 1235

原创 @Autowired和@Resource和getBean()区别

今天遇到一个对我来说很奇葩的错误,我想在Service中注入bean,我这里使用了@Autowired和@Resource都不能注入,导致初始化失败,使用了getBean()方法就可以注入。从来没有遇到过这个问题。后来我查询了一下,才明白了原理。

2024-10-26 14:20:47 1145 1

原创 理解:QPS、TPS、RT、吞吐量

在做项目中,可能有很多人都不太清楚这几个概念,老前辈一说专业名词就不知道是什么。让我们来认识一下它们吧。

2024-08-06 15:07:20 734

原创 Springboot加载机制

Spring Boot 的加载机制通过自动装配、启动类、外部化配置、内嵌容器和启动过程等多个方面来确保应用程序的快速启动和运行。

2024-07-16 09:27:11 1080 1

原创 Java中什么是fail-fast和fail-safe?

在Java中,fail-fast和fail-safe是两种不同的迭代器行为,特别是在遍历集合时遇到并发修改的情况。

2024-06-27 08:40:20 481

原创 本地部署AI模型-phi3

Ollama也是一个开源的大型语言模型服务,提供了类似OpenAI的API接口和聊天界面,可以非常方便地部署最新版本的GPT模型并通过接口使用。它支持热加载模型文件,无需重新启动即可切换不同的模型。3、适用于资源有限的环境: 由于它的规模较小,Phi-3-mini 在资源有限的环境(如移动设备或嵌入式系统)中运行效率更高,能够提供良好的性能和体验。2、更快的响应速度: 尽管 Phi-3-mini 比较 Phi-3.5 更小,但它的推理速度更快,这意味着可以更快地对输入进行响应,减少用户等待时间。

2024-06-19 13:36:58 1523

原创 阿里云物联网平台案例教程

​ 物联网(简称IOT)把任何物体与物联网相连接,进行消息的交换和通信,实现对物品的智能化识别。简单说是:物联网就是把所有的物体连接起来相互作用,形成一个互联互通的网络,这就是物联网。如果说互联网是我们身体的虚拟大脑,那么物联网就是我们身体的感知系统,就像眼睛和耳朵一样,让我们能够感知外部事物。物联网包括感知、网络和应用三个方面。感知是数据的获取,包括听觉(语音识别)、视觉(摄像头、人脸识别)、感觉(气体、烟雾、红外传感器)、运动(振动、加速度传感器)等识别感知系统和芯片;

2024-06-12 11:27:16 3678 1

原创 springboot连接多个库

一个SpringBoot项目,同时连接两个数据库:比如一个是Mysql数据库,一个是oracle数据库(啥数据库都一样,连接两个同为oracle的数据库,或两个不同的数据库,只需要更改对应的driver-class-name和jdbc-url等即可)注意:连接什么数据库,要引入对应数据库的包。

2024-06-11 15:51:42 4509 3

原创 什么情况下数据库事务会失效?

在Java中,数据库事务失效通常指的是事务无法保证其ACID特性,即原子性、一致性、隔离性和持久性。如果一个方法内部通过this调用另一个事务方法,而不是通过代理对象调用,事务将不会生效。如果业务方法中的异常被捕获但没有抛出,Spring无法感知到异常,因此不会进行事务回滚。Spring通过事务管理器来管理事务,如果未为数据源配置事务管理器,事务将无法生效。如果抛出的异常不在回滚范围内,事务将不会回滚。在事务方法中使用合适的异常处理策略,避免异常被吞掉。在设计和实现业务逻辑时,考虑事务的边界和一致性需求。

2024-05-27 11:11:51 591

原创 为什么 Spring 和 IDEA 都不推荐使用 @Autowired 注解??

大家在使用IDEA开发的时候有没有注意到过一个提示,在字段上使用Spring的依赖注入注解@Autowired后会出现如下警告:(本人强迫证,一直用@Resource)但是使用@Resource却不会出现此提示。网上文章大部分都是介绍两者的区别,没有提到为什么,总结一下。

2024-05-21 15:48:08 659 1

原创 Spring Boot + MinIO 实现文件上传

文件切片上传是指将大文件分割成小的片段,然后通过多个请求并行上传这些片段,最终在服务器端将这些片段合并还原为完整的文件。这种方式有助于规避一些上传过程中的问题,如网络不稳定、上传中断等,并能提高上传速度。通过本文,我们深入了解了如何使用Spring Boot和MinIO实现文件切片上传技术。通过文件切片上传,我们能够提高文件上传的速度,优化用户体验。在实际应用中,我们可以根据需求进行性能优化和功能拓展,使得文件上传系统更加强大和可靠。

2024-05-17 16:07:54 1583

原创 Disruptor实现一秒 600 万订单无压力

Disruptor 是英国外汇交易公司LMAX开发的一个高性能队列,研发的初衷是解决内存队列的延迟问题(在性能测试中发现竟然与I/O操作处于同样的数量级)。基于 Disruptor 开发的系统单线程能支撑每秒 600 万订单,2010 年在 QCon 演讲后,获得了业界关注。其实 生成者 -> 消费者 模式是很常见的,通过一些消息队列也可以轻松做到上述的效果。不同的地方在于,Disruptor 是在内存中以队列的方式去实现的,而且是无锁的。这也是 Disruptor 为什么高效的原因。

2024-04-28 10:16:05 804

原创 Java设计模式-原型模式

原型模式是一种创建型设计模式,它允许通过复制现有对象来创建新对象,而无需通过标准构造函数来创建。在原型模式中,新对象的创建是通过克隆现有对象而实现的,因此它是基于原型对象的复制而创建新对象的。

2024-04-22 11:37:29 628

原创 深拷贝和浅拷贝的区别

在Java中,深拷贝(Deep Copy)是指创建一个新对象,并将原始对象中的所有字段及其引用的对象都复制一份到新对象中,即使这些引用的对象也会被复制,而不是简单地复制引用。这意味着原始对象及其所有嵌套对象的状态在内存中存在两个独立的拷贝,彼此之间互不影响。

2024-04-19 15:02:54 586

原创 Java链式编程

链式编程:顾名思义,链子嘛。它是一种编程范式,它允许将多个函数或操作连接在一起,形成一个链条,以执行复杂的操作。

2024-04-16 15:32:57 799

SSO单点登录时序图案例

SSO单点登录时序图案例

2025-03-18

ssm书籍管理系统----能运行起来

ssm书籍管理系统采用spring家族框架的ssm构建的

2022-06-19

SpringBoot前后端分离 - 预约挂号系统

选材来自生活,项目真实感强,可用学习使用和就业面试使用,适合作为面试中提高实际项目经验...该项目前后端分离,满足前沿技术点..项目技术: - 数据库:MySQL8.0 - 后端技术:SpringBoot,MyBatisPlus,JWT 等 - 日志技术:Log4j - 数据库连接池:druid - 前端技术:LayUI, axios,Echarts,Ztree 等 - Web容器:Apache Tomcat 9 - 项目管理工具:Maven3.6 - 思维导图设计工具:XMIND 8 - 开发工具: IDEA2020, WebStorm2020 - 数据库设计软件:Power Designer16.5 Bug已经修复,可以流畅运行,项目很值

2022-06-09

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除