- 博客(104)
- 收藏
- 关注
原创 AI的Tools与Skills详解
AI开发中的"工具"与"技能":核心概念解析 本文深入解释了AI开发中的两个关键概念:Tools(工具)和Skills(技能)。Tools是AI调用的具体函数或API,具有原子性和通用性,但存在使用门槛高、缺乏上下文的问题。Skills则是Tools的高级封装,针对特定场景将多个Tools组织成完整的专业能力,如数据分析、代码审查等。 当前AI开发转向Skills架构的主要原因包括:降低用户使用门槛、提升AI自主决策能力、优化Token使用效率,以及实现知识的标准化沉淀和共享。Skills通过场景化的封装,
2026-07-23 10:42:53
516
原创 生活与工作AI高效使用指南
《AI实用指南:减少幻觉与理解偏差的关键策略》 本文针对AI使用中的常见问题,提出了系统化解决方案。文章首先揭示AI的本质是概率预测引擎而非真正智能,解释了幻觉产生的四大原因。核心部分提出"上下文为王"原则,强调提供技术栈、代码片段、业务规则等详细信息的重要性。通过5大实际场景(写作、学习、编程、决策、生活)的对比案例,展示了从模糊提问到结构化提示词的转变方法。特别在编程场景中,详细演示了如何分步骤生成可靠的单元测试代码,并指出三大常见陷阱及规避策略。文章最后提供了交叉验证技巧,帮助用户获得更可靠的AI建议
2026-07-23 10:17:08
218
原创 Query 改写:让 AI 检索更聪明的秘密武器
*** 改写单个查询* @param originalQuery 原始查询文本* @return 改写后的查询列表(至少包含一个元素)*/Query 改写是什么?将用户的"自然语言查询"转换为"检索系统友好的查询"解决指代不明、口语化、术语不匹配等问题为什么需要 Query 改写?提升检索准确率 30-50%减少 LLM 幻觉改善用户体验CoPaw 如何实现 Query 改写?规则方法(RuleBasedQueryRewriter):快速、低成本、可控。
2026-06-06 08:00:00
322
原创 AI如何赋能现代项目
只负责接收HTTP请求和返回响应AiService:专注于业务逻辑(构建提示词、调用AI、解析响应)前端组件:处理用户交互和UI渲染每个组件都有明确的职责,便于维护和测试。AI的价值在于辅助决策,而非取代人类AI提供建议,用户做最终决定AI处理繁琐的分解工作,人类专注创造性思考良好的架构设计让AI能力灵活可扩展单一接口支持多种场景配置驱动适配不同AI提供商模块化设计便于维护和测试用户体验是AI功能成功的关键清晰的交互流程即时的反馈和加载状态一键操作的便捷性。
2026-06-06 08:00:00
235
原创 AI Agent 为什么这么“费钱“?—— Token 消耗深度解析(结合实际项目)
Token 是 AI 理解和生成文本的基本单位。📝英文:大约 1 个 Token = 3-4 个字母(如 “hello” ≈ 1-2 tokens)🀄中文:大约 1 个 Token = 1-2 个汉字(如 “你好” ≈ 2 tokens)💻代码:特殊符号单独计算(如function()1000 Tokens ≈ 750 个英文单词 ≈ 500-800 个汉字普通聊天机器人只能说话,但AI Agent可以"做事"!📖 读取和写入文件🔍 搜索代码库💻 执行 Shell 命令🌐 访问网络。
2026-05-13 10:05:14
1014
原创 RAG向量检索所用文档分块策略对比分析-记录用
本文对比了RAG系统中的六种主流文档分块策略,重点分析了固定字符数分块和基于段落分块两种方法。固定字符数分块实现简单、速度快但容易破坏语义;基于段落分块能更好保持语义连贯性但存在段落长度不均的问题。文章提供了详细的代码实现示例、工作流程说明、优缺点对比及适用场景分析,并给出了性能指标评分表,为选择合适的分块策略提供了实用参考。
2026-05-13 09:29:47
431
原创 RustDesk 自建远程控制服务器部署全记录(含错误排查与最终方案)
在阿里云轻量应用服务器上自建RustDesk远程控制服务的完整指南: 服务器准备 选择2核2G配置的轻量应用服务器(Ubuntu 22.04 LTS) 关键配置防火墙规则,开放TCP/UDP 21115-21119端口 部署方案对比 Docker方案:因网络问题和镜像验证失败被放弃 二进制方案:最终采用,直接从GitHub下载官方编译好的程序 实施步骤 下载并解压RustDesk服务端程序 手动运行hbbs和hbbr服务 获取连接密钥用于客户端配置 优化配置 创建systemd服务实现开机自启 配置日志监控
2026-04-14 15:11:22
1192
原创 AI 开发核心名词全解(LLM 全栈开发必备)
以下覆盖大语言模型(LLM)应用 / 全栈开发全流程,包含你指定的所有术语,按开发链路分类,每个名词均附带精准定义、核心作用、落地场景与关键细节,适配实际开发需求。
2026-04-06 10:10:41
439
原创 初识AI Agent
AI Agent(人工智能体 / 智能代理),是。它彻底打破了传统 LLM“只能对话、无法行动” 的边界,实现了 AI 从 “被动问答的知识工具” 到 “主动代理的任务执行者” 的跃迁,也是你之前视频中提到的 “LLM 作为下一代操作系统内核,调用各类工具解决问题” 的核心落地载体。
2026-04-06 09:58:23
456
原创 一文读懂 LLM:大语言模型到底是什么
大语言模型(LLM)是当前主流AI技术,其本质是基于海量数据训练的语言预测机器,通过计算词汇概率生成连贯文本。LLM工作流程包括预训练、微调和架构支撑三个阶段,核心是预测下一个最可能出现的词。它能辅助文字工作、编程等任务,但存在幻觉问题、知识滞后和能力局限等短板。注意力机制帮助模型识别词间关联,提升预测准确性,但并未赋予模型真正的理解能力。使用时需注意验证重要信息,不可盲目依赖其输出。
2026-04-06 08:25:31
658
原创 LangChain4j 的基础运用
本文介绍了LangChain4j(Java版LangChain)的集成与使用,重点演示了如何通过SpringBoot快速接入大语言模型。文章详细说明了环境配置(JDK17+、SpringBoot3.2+)、Maven依赖添加和YAML配置方法。通过测试案例展示了基础对话、流式输出、多轮对话记忆保持等功能实现,其中多轮对话测试验证了AI能准确记忆用户提供的信息(姓名、职业等)。特别介绍了工具调用功能,以联网搜索为例展示了AI自主决策搜索时机的实现逻辑,包括JSON格式的决策响应解析和搜索结果整合。文章还对比了
2026-03-27 16:27:29
471
原创 从ChatGPT到Open Claw:生成式AI的跃迁之路
ChatGPT 3.5的发布标志着AI从"识别分析"向"创造生成"的根本性转变。这款基于GPT-3.5架构的对话式AI在没有任何大规模营销的情况下,仅用5天就突破了百万用户,2个月后月活跃用户突破1亿,成为史上用户增长速度最快的消费级应用程序。ChatGPT 3.5 的核心,是一个LLM(Large Language Model,大语言模型)。你可以把它理解为一个“超级接龙游戏玩家”。训练方式:在互联网上数万亿字的文本中,学习“在给定上文的情况下,下一个词最可能是什么”。本质。
2026-03-21 08:26:03
637
原创 Mysql中模糊匹配常被忽略的坑
可以看到这里跟我们预期的结果并不一样,我们预期应该只返回一个数据:20%第二组数据。2,使用mysql的拦截器,拦截sql的like查询,修改实际的执行sql(方便)1,使用util方法,在需要处理的地方调用方法进行处理(常见)这个时候就需要使用转义符'\',而转义符本身也是需要转义的。拦截器修改sql(这里还有存量的打印sql信息的内容),具有特殊含义,不能直接作为普通字符进行匹配。需要转义的原因在于它们是 SQL 标准中。但是这里将我们的测试数据全部都返回了。准备测试数据库的数据。
2025-09-05 21:35:01
408
1
原创 策略模式 + 工厂模式
修改一种支付方式的逻辑时,可能会无意中影响到其他支付方式的代码(虽然逻辑上独立,但物理上靠近,容易误触)。:所有的支付逻辑都堆积在一个方法里。如果每种支付方式的逻辑都很复杂(例如涉及不同的参数组装、加密算法、第三方API调用),这个方法会变得非常长,难以阅读和理解。你很难模拟(Mock)各种支付方式的具体实现,因为它们都紧耦合在这个方法里。:如果其他业务逻辑(如退款、查询订单)也需要根据支付类型进行类似的判断,那么同样的。解决的是具有相同属性的对象创建问题,如BeanFactory创建bean对象。
2025-09-03 21:35:12
974
1
原创 Mysql的Update的执行流程是怎么样的?
我们知道Mysql分Server层和存储引擎层。Server层负责处理连接,解析,执行等。引擎层负责数据的读写。
2025-05-06 10:43:17
1084
原创 为什么执行了删除语句后mysql内存无变化?
后台的 Purge 线程异步回收被标记的记录空间,但这些空间仍保留在表中供后续插入重用,若在优化过程中发生服务器崩溃、断电或强制终止进程,可能导致表损坏。被删除的数据在磁盘文件中仍可能以碎片形式存在,直到被新数据覆盖。重建表需要大量磁盘读写,可能导致I/O瓶颈,影响其他查询性能。在复制或替换表文件时,若文件系统出现错误,可能破坏数据完整性。,而是通过标记删除和后台清理机制延迟释放空间。重建表和索引需要复制数据,可能导致长时间锁定。:将记录标记为“已删除”,并保留在存储页中。在 InnoDB 中,
2025-04-28 18:32:06
499
原创 单例模式介绍
单例模式大家都很清楚,最常见的是饿汉式与懒汉式。也有不常见的静态内部类式与枚举式以及,懒汉式的线程安全版本。单例模式常被用于全局式的配置管理(数据库连接池,日志管理器),资源共享(线程池,缓存控制器),状态管理(程序计数器)等。
2025-04-26 13:24:23
687
原创 写时复制Copy-on-Write(COW)
写时复制多用于读多写少的场景,因为写操作是用悲观锁进行的,如果写的场景多,容易产生等待阻塞。写的时候,对复制原对象,对副本进行写操作,最后将副本替换原对象。读的时候,直接访问原对象。2,复制原对象并增加长度。4,将副本替换为原对象。
2025-04-09 17:42:46
408
原创 数据库的MVCC机制详解
MVCC(Multi-Version Concurrency Control,多版本并发控制)是数据库系统中常用的并发控制机制,它允许数据库在同一时间点保存数据的多个版本,从而实现非阻塞的读操作,提高并发性能。
2025-04-09 17:14:01
1198
原创 如何为服务自定义链路追踪(traceID)
链路追踪是一种追踪,监控服务请求的技术概称。主要是为了帮助开发者了解一个请求在服务间的流转路径,执行时间,延迟以及问题追踪定位。特点:可视化请求流:展示一个请求的完整调用路径。性能分析:识别请求在哪个环节出现延迟,优化系统性能。问题排查:快速定位错误发生的位置,提高故障恢复效率。调用关系分析:帮助理解微服务之间的依赖关系。链路追踪的工作流程请求进入系统:用户发起 HTTP 请求,链路追踪系统生成一个Trace ID。请求传播Trace ID。
2025-03-15 15:27:12
2052
原创 如何为服务设置合理的线程数
在使用线程池管理线程的过程中,如何设置核心线程数、最大线程数、队列类型和拒绝策略这些都会影响实际能创建的线程数量。比如,每个请求处理时间短的话,线程可以快速回收,但处理时间长的话,线程会长时间占用资源,导致需要更多线程。一般来说,CPU密集型任务的最佳线程数是核心数加一,而IO密集型任务可能需要更多线程,因为线程在等待IO时会阻塞,可以充分利用CPU。比如,每个线程都需要一定的栈内存,默认情况下Java线程的栈大小是1MB(64位系统可能更大),所以如果内存不足,创建太多线程会导致OOM错误。
2025-03-10 23:05:05
956
原创 线程的生命周期与线程池的生命周期(示例代码感受整个生命周期)
线程是进程中的一个执行单元,是 CPU 调度的基本单位,一个进程可以包含多个线程,它们共享该进程的资源。进程是程序在操作系统中的一个执行实例,是操作系统进行资源分配和调度的基本单位。特点每个进程都有自己独立的地址空间、数据、代码、文件等资源,进程之间相互独立。不同进程之间不能直接访问彼此的内存,需要通过 管道(Pipe)、消息队列(Message Queue)、共享内存(Shared Memory)、Socket 等 方式进行通信。// 当前持有锁的线程// 锁状态while (!
2025-03-10 22:39:55
864
原创 异或的用法(神奇)
给定一个整数数组,所有数字都出现两次,只有一个数字出现一次,找出这个唯一的数字。异或(XOR,Exclusive OR)是一种逻辑运算和按位运算。的数组中,缺失一个数。的完整序列,结果即为缺失数。假设发送方发送了一组数据。解法:异或所有元素和。
2025-03-06 23:10:33
411
原创 浅聊一下日本的开发与国内开发
博主在国内工作了几年,觉得技术学的用的也差不多了,加上会点日语,就想着去东京看看小日本这边it行情如何,大概是什么样的。就这篇文章,想简单说说感想吧,给一些准备来日本干开发或者对这方面感兴趣的人一点直白话。
2025-02-13 11:47:35
651
原创 过滤器(Filter) vs. 拦截器(Interceptor)
请求到达 -> Filter (前) -> Interceptor (前) -> Controller -> Interceptor (后) -> Filter (后) -> 响应返回。,执行一些额外的操作,比如权限校验、日志记录等。它们的作用相似,但底层实现和适用场景有所不同。在 Spring MVC 或 Java Web 开发中,定义一个拦截器,一个过滤器。简单测试看看执行顺序。
2025-02-12 14:57:44
266
原创 Theadlocal之InheritableThreadLocal
底层是一个ThreadLocalMap对象(这个也是线程独有的),里面维护着一个个Entry,Entry的键是 ThreadLocal 实例的引用,而值是存储在 ThreadLocal 中的数据。如果只在当前线程中使用threadlocal,本身没有什么问题,但是如果你开启了子线程,这个时候再想去获取你存放的值,就获取不到了。当前线程启动线程池去执行任务时,线程池是无法获取到已存的ThreadLocal对象的。他们都属于线程自带的属性,是ThreadLocalMap,实际存储的对象。
2025-02-11 21:27:51
433
原创 来看一下对userBean的使用升级点
正常,我们在系统中会使用过滤器(Filter)或者拦截器(Interceptor)来处理用户的token,缓存用户的信息,方便后续继续使用。简单 说一下拦截器与过滤器首先是归属不同,过滤器属于Servlet规范,拦截器属于Spring框架。然后是作用范围,过滤器处理所有Web资源,拦截器只处理Spring MVC的Controller。触发时机的话,过滤器在Servlet之前,拦截器在进入Controller前后。然后是实现方式,过滤器用回调函数实现,拦截器用反射机制实现。
2025-02-11 17:15:26
1218
原创 避开Arrays.asList使用的坑
注:测试Arrays.asList的坑。学习内容来自图灵--徐庶。针对这一现象,只需要将int转为封装类型即可。
2025-02-09 15:12:51
541
原创 从0开始,来看看怎么去linux排查Java程序故障
从上面可以看出fullGC的次数才3次,且回收时间不大,说明内存情况很健康。编写一个简单的让程序不断创建新对象,然后GC在不停地回收,但是又回收不掉地样例。export JAVA_HOME=/usr/local/java/jdk-17.0.2 # 替换为实际解压路径。nano ~/.bashrc # 或 ~/.bash_profile、~/.zshrc(根据Shell类型)观察GC回收状况,从上面命令可以看出内存资源并不紧张,所以这里只做展示。# 当前系统的实时数据面板,按 ctrl+c 退出。
2025-01-31 20:12:16
1705
原创 Python图形界面 GUI -- tkinter(含简单windows桌面项目)
是 Python 的标准图形用户界面(GUI)工具包,用于创建桌面应用程序。它是 Python 标准库的一部分,无需单独安装即可使用。Tkinter 是基于 Tcl/Tk 的一个封装,具有简单易用的特点,是开发 GUI 程序的一个非常流行的选择。
2025-01-22 13:50:56
3773
原创 接上回--综合AIDemo测试
上回外挂了知识库之后,我们需要使用知识库中的信息,让AI为我们实际处理业务上的需求。这里我们让AI扮演公司的人事助手,帮我们处理员工请假的业务。具体流程如下感知用户需要请假提取用户请假信息获取用户数据库中的信息根据用户角色判断请假时长是否符合公司要求(或者是否需要推送给上级审批)不符合返回理由,符合返回确认信息用户确认后往数据库中写入请假信息在获取请假信息这块上,如果我们手动去提取用户的msg,那么会有很大的可能会提取失败,所以这块尽可能让ai从我们的对话上下文去提取所需要的信息。
2025-01-19 15:41:30
809
原创 接上回,AI外挂知识库
这里使用最方便扩展的文本格式txt文档,作为外扩知识库的来源。扩展方向有很多如使用服务器硬盘存储,云端文件存储,数据库DB存储等等。
2025-01-15 20:44:34
492
原创 SpringAi整合免费大模型(NVIDIA)
接上回,发布了springAI整合本地大模型之后,我们来看看怎么去利用别人已经训练好的大模型。同样这里只做一些最基本的调用构造讲解,如果对深入使用比较感兴趣的,请阅读本文最后的Demo讲解。
2024-11-30 14:53:17
1645
原创 响应式网页设计--html
<title>使用 main 标签示例</title><a href="#">首页</a></li><li><a href="#">关于我们</a>
2024-11-10 16:58:16
2480
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅