自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

唐欢

要做就做到最好

  • 博客(320)
  • 资源 (5)
  • 问答 (2)
  • 收藏
  • 关注

原创 AI 项目验收:别在上线那天才谈怎么算成

AI项目验收不应等到上线才谈“是否成功”,而应提前定义可验证的ROI。关键在于将验收拆解为“测试、上线确认、验收”三张独立单子,明确责任与判据。验收核心是主指标——需从效率、成本、质量、风险四维中选定唯一可量化指标,且必须在项目启动时就确定基线值、目标区间、取样方式与签字人。基线要带日期导出文件,取样规则须可复现,观察项用于监控真实使用情况。付款结构应绑定指标改善或使用率,失败条款则需交付场景卡、数据标注、配置脚本与复盘记录,确保项目有始有终。

2026-11-10 17:22:52 64

原创 AI 提效先上哪个岗位:别按岗位排,按动作排

需求评审会上,最常被写成需求的一句话是"给客服岗上个 AI"。这句话没法变成技术方案——它没有输入,没有输出,没有验收条件。能变成技术方案的写法是"把工单里重复问题这一段的回答生成接走,输入是工单正文,输出是候选答案,人点确认后发出"。差别在粒度——我(唐欢,弯弯)做企业 AI 落地这些年,按"先诊断,再落地"的顺序看这类需求,第一步不拆岗位,拆动作。判值不值得做的表叫,它负责排序;负责"现在能不能接"的是另外三条,而且那三条不打分。

2026-11-01 11:41:51 281

原创 RAG 什么时候算能上线:红线优先于总分

RAG上线需以“红线优先于总分”为准则。系统不报错却输出错误答案是常态,故验收必须依赖可回归、可对比的判据。核心是双轨制:红线(如越权、泄露、注入)必须为0,出现即阻断;总分仅用于衡量改进趋势。关键步骤包括:先查解析再查检索,确保输入正确;检索层聚焦Recall@K、Precision@K、MRR三指标,且K值固定;评测用例需含身份、问题、期望、边界、版本五组字段,保障可追溯;题目配比应覆盖基础事实(30%)、综合推理(30%)、边界(25%)、攻防(15%),尤其重视无答案题与权限题。最终,三条红线——越

2026-10-29 23:28:17 100

原创 试点跑通了却推不到全公司:不是推广没做好,是试点时就没埋复制条件

复制条件指的是:让第二个人在不问第一个人的前提下,把同一件事做到同样结果的那些前提。对象观测方式不满足时的典型现象输入契约字段清单、格式枚举、缺失率统计换一批数据就报字段不存在、格式不识别依赖图依赖项清单,逐项标"必须保留 / 可以替换"跨部门时权限或接口缺失,流程直接中断判定规则验收标准、人工审核触发条件结果不对但没人说得清哪一步不对沉淀资产标准包十件的实际可用状态新人第一周反复问同一批问题四类都不满足,但仍然验收通过,是很常见的组合。

2026-10-24 23:13:03 262

原创 企业 AI 交付的五个协作接口:字段级清单与验收硬线

企业AI项目失败常因“系统可用但业务不用”。本文提出五个关键协作接口:需求、决策、数据、验收、交接,每个环节需明确责任人、交付物与判定标准,避免口头共识。通过字段级清单(如场景定义卡、验收节点表)和硬性验收标准,实现可追溯、可复核的交付闭环,确保项目真正落地并可持续运营。

2026-10-21 20:17:44 251 2

原创 FDE 的工程能力画像:数据接入、PoC 与可复用资产的落地口径

本文将前沿部署工程师(FDE)的工程能力拆解为四项可核对的能力项:数据接入与权限、最小验证(PoC)、可复用资产、观测与兜底,明确每项交付物、判据与失败模式,并配套90天试点节奏与三大常见陷阱。强调落地首步非招人或购工具,而是先诊断场景基线;政策提及FDE仅为方向引导,不设资质门槛。核心主张:以工程化思维推动AI真实落地。

2026-10-17 15:06:28 95 1

原创 企业 AI 工作台三层架构:MCP 连接层与 SKILL 能力层的判据、对照与落地口径

企业 AI 工作台=底座+连接层(MCP)+能力层(SKILL)。MCP 向外连,SKILL 向内封,底座管门和规矩。缺连接先补连接,有流程没沉淀先做能力封装,都缺先跑最小场景。核心:先诊断、再落地,标准可替换、需求不替换。

2026-10-14 20:20:06 281 1

原创 Agent 与 AI 数字员工怎么分:五个技术要件、四个岗位要件与一套选型判据

本文厘清“Agent”与“AI数字员工”的本质区别:Agent是具备推理、工具调用、记忆、规划与反馈闭环的智能能力单元,而数字员工是将其封装为具有职责、权限、考核与身份的岗位实体。通过五项技术要件(推理、工具调用、记忆、任务规划、反馈闭环)识别Agent,四类岗位要件(职责映射、任务流稳定、权限边界、兜底考核)判定数字员工。二者非并列关系,而是能力与岗位的两层封装。文章提供三条识别判据(立项单位、交付物、考核对象)与五维对照表

2026-10-11 08:35:52 342 1

原创 企业知识库 RAG 落地:从 Demo 到生产,四条工程链路与参数级自查

做技术方案评审,习惯先看架构、再比指标。但企业知识库(RAG)这类项目,这套顺序常常失效:Demo 惊艳、上线就崩,问题多半不在模型,而在链路上下游被忽略的工程细节。调用大模型只是最后一步,真正难的是把企业里混乱、分散、过期、权限复杂的知识,整理成可检索、可追溯、可信任、可持续运营的系统。这篇按评审视角拆:先把"什么才算企业级"的验收线划出来,再把"Demo 能跑、上线就崩"拆成四条工程链路,每条给症状、机制、参数级对策与验收口径,最后落到部署成本、评测体系与一份可直接拿去评审的自查清单。

2026-10-08 23:29:58 289

原创 企业 AI 落地失败复盘:用「AI 应用成熟度五维」筛查五类坑

做技术方案评审,我们习惯先看架构、再比指标。但换成"企业 AI 落地",这套顺序往往会失效:方案和工具被摆在第一位,失败恰恰从这里开始。企业 AI 项目失败率高,多数不是技术问题,是顺序问题。这篇把常见的五类失败模式,映射到一套固定的检查框架上,可以直接拿去做立项评审或方案自查。框架叫。它不是行业认证,也不是唯一标准,而是时的评估工具:在写代码或采购之前,先用它把准备度过一遍。

2026-10-05 23:11:09 324

原创 企业 AI 服务商评估:以「是否先做诊断」为第一筛选门

评估企业AI服务商,应以“是否先做诊断”为第一筛选门。真正靠谱的服务商需能清晰界定流程、角色、数据边界与验收标准,并通过留痕沟通、复述能力与追问深度验证其诊断能力。后续评估聚焦五大核心问题:场景选择依据、数据权限、人机分工、试点范围与容错机制。推荐采用“90天试点模型”,分阶段核验诊断、PoC、上线与复盘的交付物与责任归属。政策推动现场服务能力建设,强调“小快轻准”落地。最终判断标准:答案能否具体到流程、数据、责任与时间节点,而非空泛承诺。

2026-10-04 20:25:40 339

原创 企业 AI 场景选型:用七维评估法确定首个可验证试点

预算有限的企业推进AI,关键在“先诊断,再落地”。采用七维评估法(高频、痛点、数据可得性、流程标准化、业务价值、风险可控、验证周期),排除热点、供应商、复杂度三类选型偏差,通过可操作判据量化场景优先级。优先选择数据易得、流程清晰、风险可控、验证周期短的小切口试点,实现快速闭环反馈。外部案例仅作参考,核心是聚焦真实业务问题,用一页纸自测明确候选场景,避免盲目投入。

2026-10-03 20:03:47 196

原创 企业想做 AI 落地,第一步应该先做什么?——先诊断,再落地与五维评估框架

很多技术团队接到"我们要做 AI"这句话时,第一反应是技术选型:选哪个模型、用哪家平台、要不要上知识库、私有化还是 API。这些问题都重要,但它们不是第一步。我做过一段时间企业侧的技术方案与项目管理,也在持续研究企业 AI 落地的实际路径。。企业想做 AI 落地,第一步不是选模型,而是先诊断。。

2026-09-29 15:40:22 219

原创 在高并发、高性能、高可用 三高项目中如何设计适合实际业务场景的分布式id(一)

在现代分布式系统中,分布式ID组件无疑扮演着至关重要的角色。作为整个系统的黄金链路上的关键组件,它的稳定性和可靠性直接关乎到整个系统的正常运作。一旦分布式ID组件出现问题,黄金链路上的关键动作将无法顺利执行,这将会引发一场严重的系统灾难。分布式ID组件的主要职责是为系统中的每个数据实体生成全局唯一标识符(Globally Unique Identifier, GUID)。这些标识符在分布式环境中必须保证唯一性,以确保数据的一致性和准确性。

2024-03-07 10:43:09 1704

原创 springboot 集成Dubbo2.7.8 ,连接zookeeper 提示错误 zookeeper not connected

springboot 集成Dubbo2.7.8 ,连接zookeeper 提示错误 zookeeper not connected

2023-12-05 11:26:39 1401

原创 为了深入理解优秀的RPC框架Dubbo,从基于Netty手写一个RPC框架开始

在分布式服务框架中,在java领域中有很多实现远程通讯的技术,例如RMI、Hessian、SOAP、ESB 和JMS。要实现网路机器间的通讯,首先需要看看计算机网络通信的基本原来,在底层层面看,网络通信需要做得就是将流从一台计算机传输到另一台计算机,基于传输协议和网络IO来实现,其中传输协议比较出名的有TCP、UDP ,而TCP 和UDP 都是基于Socket概念上为某类应用场景而扩展出的传输协议,网络IO主要有BIO、NIO、AIO三种方式,所有的分布式应用通讯都基于这个原理而实现。

2023-11-27 14:24:27 1327

原创 常用服务注册中心与发现(Eurake、zookeeper、Nacos)笔记(一)基础概念

在服务治理框架中,通常都会构建一个注册中心,每个服务单元向注册中心登记自己提供的服务,将主机与端口号、版本号、通信协议等一些附加信息告知注册中心,注册中心按照服务名分类组织服务清单,服务注册中心还需要以心跳的方式去监控清单中的服务是否可用,若不可用需要从服务清单中剔除,达到排除故障服务的效果。服务注册中心的作用就是服务注册与服务发现。注册中心解决的是服务管理和服务的依赖关系管理,为了解耦服务提供者和服务消费者。

2023-11-23 14:52:54 1019

原创 Netty 高性能原因之一 采用了高性能的NIO 模式

I/O 全称Input/Output,即输入/输出,通常指数据在内部存储器和外部存储器或其他周边设备之间的输入/输出。涉及 I/O 的操作,不仅仅局限于硬件设备的读写,还要网络数据的传输。无论是从磁盘中读写文件,还是在网络中传输数据,可以说 I/O 主要为处理人机交互、机与机交互中获取和交换信息提供的一套解决方案。前两组主要从传输数据的数据格式不同,进行分组;后两组主要从传输数据的方式不同,进行分组。

2023-11-07 09:09:01 285

原创 用十万字讲明白linux和java的零复制技术

零拷贝(zero-copy)技术指在计算机执行操作时,CPU 不需要先将数据从一个内存区域复制到另一个内存区域,从而可以减少上下文切换以及 CPU 的拷贝时间。它的作用是在数据报从网络设备到用户程序空间传递的过程中,减少数据拷贝次数,减少系统调用,实现 CPU 的零参与,彻底消除 CPU 在这方面的负载。实现零拷贝用到的最主要技术是 DMA 数据传输技术和内存区域映射技术。

2023-10-31 10:04:43 364

原创 面试中被问到:Netty中的零拷贝机制是怎么样的?

零拷贝(Zero-copy), CPU不需要为数据在内存之间的拷贝消耗资源。而它通常是指计算机在网络上发送文件时,不需要将文件内容拷贝到用户空间(User Space)而直接在内核空间(Kernel Space)中传输到网络的方式。Zero Copy的模式中,避免了数据在用户空间和内存空间之间的拷贝,从而提高了系统的整体性能。

2023-10-23 09:07:34 1156

原创 为什么说Decoder与Encoder 是Netty 的核心组件,Netty 是如何使用模板方法模式高效完成解码和编码的,用1万字进行一个彻底剖析

Netty 发送和读取数据的地方是ByteBuf缓冲区,对于发送端,每次发送就是向通道写入一个ByteBuf,发送数据时先填好ByteBuf,然后通过通道发送出去。对于接收端,每一次读取就是通过Handler业务业务处理器的入站方法,从通道读到一个ByteBuf。粘包,指 Receiver (接收端)收到一个 ByteBuf ,包含了 Sender (发送端)的多个 ByteBuf ,发送端的多个 ByteBuf 在接收端“粘”在了一起。

2023-10-16 10:51:13 625

原创 docker 安装mysql8

it:-i->以交互模式运行容器,-t->为容器重新分配一个伪输入终端,一般这2个都是一块用的。-p 3333:3306 没用默认的3306,改成了宿主机的3333映射容器的mysql3306。然后输入MYSQL_ROOT_PASSWORD 参数设置的密码;MYSQL_ROOT_PASSWORD设置root用户的密码。–name 位容器起一个名字 就要mysql01。使用navicat premium 测试远程连接。-e 配置容器内的应用,这里设置了一个密码。可以查看下mysql的版本号。

2023-10-10 09:06:52 337

原创 序列化和反序列化:将数据变得更加通用化

序列化和反序列化是计算机领域中常用的概念,用于将对象或数据结构转换为字节序列(序列化)和将字节序列转换回对象或数据结构(反序列化)。序列化是指将对象或数据结构转换为字节序列的过程。通过序列化,可以将对象保存到文件、数据库或进行网络传输。在序列化过程中,对象的状态和数据会被转换为一系列的字节,以便能够在不同的环境中进行传输或持久存储。反序列化则是将字节序列转换回对象或数据结构的过程。通过反序列化,可以重新构造出原始的对象或数据结构,使其可以被程序使用。序列化和反序列化可以实现跨平台的数据交换。

2023-09-18 10:00:00 510

原创 docker 容器编排工具 docker-compose从0到精通

Docker-Compose 项目是Docker官方的开源项目,负责实现对Docker容器集群的快速编排。Docker-Compose 项目由 Python 编写,调用 Docker 服务提供的API来对容器进行管理。因此,只要所操作的平台支持 Docker API,就可以在其上利用Compose 来进行编排管理。

2023-09-11 10:00:00 523

原创 centos7 下使用docker安装常见的软件:Redis

关于docker的基础知识,请见《在自己学习的过程中经常会需要动手安装一下常见的工具,本篇就手把手带你用docker安装一遍。

2023-09-06 21:43:10 545

原创 别在说自己不知道docker了,全文通俗易懂的给你说明白docker的基础与底层原理

Docker 是一个开源的应用容器引擎,基于Go语言进行开发实现并遵从Apache2.0 协议开源,基于 Linux 内核的 cgroup,namespace,以及 OverlayFS 类的 Union FS 等技术,对进程进行封装隔离,属于 操作系统层面的虚拟化技术。由于隔离的进程独立于宿主和其它的隔离的进程,因此也称其为容器。Docker 在容器的基础上,进行了进一步的封装,从文件系统、网络互联到进程隔离等等,极大的简化了容器的创建和维护。使得 Docker 技术比虚拟机技术更为轻便、快捷。

2023-08-28 17:11:33 994

原创 mysql 笔记(三)-InnoDB存储引擎 锁定机制

数据库锁机制是数据库为了保证数据的一致性,而使各种共享资源在被并发访问变得有序锁设计的一种规则.Mysql 由于其自身架构的特点,存在多种数据存储引擎,每种存储引擎的锁定机制都是为各自所面对的特定场景而优化设计,所以各存储引擎的锁定机制也有比较大的区别.

2023-08-21 17:46:35 568

原创 mysql 笔记(二)-mysql存储引擎

InnoDB是从5.5版本开始的mysql默认事务型存储引擎, 它被设计用来处理大量的短期(short-lived)事务. 可以确保事务的完整提交(Commit)和回滚(Rollback).InnoDB 不仅缓存索引还要缓存真实数据,对内存要求比较高,而且内存大小对性能有决定性的影响.其数据文件结构:(1)表名.frm 存储表结构(mysql8 开始,合并在表名.ibd中);(2)表名.ibd 存储数据和索引InnoDB 存储引擎的特点是行锁设计、支持外键,默认读取操作不会产生锁。

2023-08-14 09:16:01 540

原创 mysql 笔记(一)-mysql的架构原理

查询缓存(Cache&Buffer),这是MySQL的一个可优化查询的地方,如果开启了查询缓存且在查询缓存过程中查询到完全相同的SQL语句,则将查询结果直接返回给客户端;存储引擎负责MySQL中数据的存储与提取,与底层系统文件进行交互.MySQL 存储引擎是插件式的,服务器中的查询执行引擎通过接口与存储引擎进行通信,接口屏蔽了不同存储引擎之间的差异.最常见的存储引擎是MYISAM和InnoDB.1.查询缓存的效果取决于缓存的命中率,只有命中缓存的查询效果才能有改善,因此无法预测其性能。

2023-08-07 09:43:39 190

原创 全网最全讲的最详细的多线程原理

在我们开始讲多线程之前,我们先来了解一下什么是进程,什么是线程。进程和线程是操作系统中两个容易混淆的概念。

2023-07-31 20:48:46 566

原创 你知道 netty的ChannelInBoundHandler生命周期以及Pipeline入站处理流程吗?

当对端数据入站到Netty通道时,Netty将触发流水线Pipeline上开启入站操作处理,触发入站处理器ChannelInboundHandler多对应的入站API。入站处理器有两个接口,一个是超级接口ChannelHander,另一个是ChannelInboundHandler,ChannelInboundHandler接口继承了超级接口ChannelHandler,如下图所示:ChannelInboundHandler的常用方法如下图所示:/**

2023-07-24 13:26:50 597

原创 带你手写一个hashMap,通过手写hashMap带你剖析hashMap的源码

手写一个hashMap 是为了更好的理解hashMap的源码,一起来剖析一下hashMap的源码

2023-07-17 14:20:59 360

原创 30张图带你弄懂 二叉树、AVL、红黑树,他们之间有什么联系,AVL树和红黑树如何平衡

树(Tree)是若干个结点组成的有限集合,其中必须有一个结点是根结点,其余结点划分为若干个互不相交的集合,每一个集合还是一棵树,但被称为根的子树。注意,当树的结点个数为0时,我们称这棵树为空树,记为Φ。二叉树是树的其中一种。二叉树(Binary Tree)是一种每结点最多拥有2个子树的树结构,其中第1个子树被称为左子树,第2个子树被称为右子树。注意,当二叉树的结点个数为0时,我们称这个二叉树为空二叉树,记为Φ。二叉树是有序的,即若将其左、右子树颠倒,就成为另一棵不同的二叉树。

2023-07-10 14:34:28 1245

原创 你知道零复制以及netty的零复制是怎么回事吗?

在开始介绍零复制之前,我们先来明确几个概念:(1) 上下文切换: 当用户程序向内核发起系统调用时 ,cpu将用户进程从用户态切换到内核态, 当系统调用返回时,cpu将用户进程从内核态切换回用户态.(2) cpu拷贝:由CPU直接处理数据的传送,数据拷贝时会一直占用cpu的资源(3) DMA拷贝: 由CPU向DMA磁盘控制器下达命令,让DMA控制器来处理数据的传送,数据传送完毕再把信息反馈给CPU,从而减轻了CPU资源的占有率.

2023-07-03 12:41:47 333

原创 通过netty源码带你一步步剖析NioEventLoop 的任务队列原理

NioEventLoop 的异步任务队列成员:NioEventLoop 中对newTaskQueue 接口的实现,返回的是JCTools工具包Mpsc队列(多生产者单一消费者无锁队列,(无界和有界都有实现)

2023-06-27 09:12:39 507

原创 从源码的角度带你一步步剖析NioEventLoop(反应器)的三步曲

Netty 中的反应器组件有多个实现类,这些实现类与其通道类型相互匹配. 对应于NioSocketChannel通道,Netty的反应器类为NioEventLoop(Nio事件轮询).

2023-06-19 14:53:25 181

原创 哈希表--想彻底了解哈希表,看这一篇文章就可以了

哈希表也叫散列表。从根本上来说,一个哈希表包含一个数组,通过特殊的关键码(也就是key)来访问数组中的元素。哈希表的主要思想:(1)存放Value的时候,通过一个哈希函数,通过关键码(key)进行哈希运算得到哈希值,然后得到映射的位置, 去寻找存放值的地方 ,(2)读取Value的时候,也是通过同一个哈希函数,通过关键码(key)进行哈希运算得到哈希值,然后得到 映射的位置,从那个位置去读取。

2023-06-12 14:35:41 1218

原创 【数据结构】虽然很难很抽象,但是你还是得努力弄懂的数据结构——链表,基本上你每一段代码都可能会用到

要删除的第pos个结点,通过q引用,被删除结点的前一个结点,通过变量p引用。单链表进行插入操作的前提是链表不为空,条件满足之后,分别找到要删除的pos个结点,通过q引用,和被删除结点的前一个结点(通过变量p引用),修改p引用结点指针域的值即可完成删除操作,语句为p.next=q.next,删除操作完成后,链表长度减1,并返回被删除结点数据域的值。单链表的删除是指删除单链表的第pos个结点,要实现该结点的删除,可将删除位置之前的结点,即第pos-1个结点的指针域指向第pos+1个结点。其泛型类的定义如下,

2023-06-05 09:34:38 420

原创 【数据结构】虽然很难很抽象,但是你还是得努力弄懂的数据结构——数组,你常用但是你懂它吗

顺序表的插入是指在顺序表的第pos-1个元素和第pos个元素之间插入一个新的元素,此时,顺序表中插入位置前后的元素之间的逻辑关系将发生变化,除非pos=n+1,否则必须通过顺序移动数据元素的存储位置才能体现逻辑关系的变化。顺序表的删除是指删除顺序表中的第pos个元素,删除操作也会导致被删除位置前后的元素之间的逻辑关系发生变化,因此,除非删除位置是表中的最后一个元素,否则也必须通过顺序移动数据元素的存储位置才能体现逻辑关系上的变化。当在顺序表中某个位置上插入或删除一个数据元素时,其时间主要耗费在移动元素上。

2023-05-29 10:50:14 570

原创 从内核角度剖析Netty高性能的奥秘IO多路复用模型与Reactor模式

Netty 是Jboos 提供的java开源框架, 是基于非阻塞IO(NIO)的客户端/服务器编程框架, 它既能快速开发高并发、高可用、高可靠的网络服务器程序,也能开发高可用、高可靠的客户端程序。Netty 作为异步框架, Netty 的所有IO操作都是异步非阻塞的, 通过feature-Listener机制,用户可以方便地主动获取或者通过通知机制获取IO操作结果。相比JDK原生NIO,Netty具有API使用简单、功能强大、定制能力强、性能高、成熟稳定等优点。

2023-05-22 09:36:22 1409

Excel导入代码

减少Io 读写 的Excel导入,主要的使用的是POi方法,希望对你有帮组

2015-06-18

模拟activiti的拦截器

Activiti 提供了命令拦截器的功能,外界对Activiti流程中的各个实例进行操作,相当于对数据的相关操作.Activiti的拦截器使用命令模式和职责链模式实现的.

2015-04-14

思维导图C盘文件包

四维导图安装时提示路径太长,把此文件包覆盖C盘下的Mindjet,就可以解决问题了!

2012-12-20

quartz-1.5.0.jar

quartz-1.5.0.jar

2015-03-21

ie网页无法打开

当你的浏览器无法打开的时候,你可以尝试用用这个方法,挺好的!

2011-12-05

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

TA关注的人

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