自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(143)
  • 资源 (10)
  • 收藏
  • 关注

原创 Claude Code源码分析——Claude Code Agent Loop 详细设计文档

Claude Code Agent Loop 设计摘要 该文档详细描述了Claude Code的Agent Loop架构设计,主要包含四个视图: 架构视图:采用两层职责拆分,QueryEngine作为会话控制器管理状态和参数,query/queryLoop负责实际执行循环推进。 关键对象视图: QueryEngineConfig集中管理依赖注入 QueryEngine维护会话状态,包括消息历史、中断控制、权限拒绝记录等 运行时流程:详细描述了从submitMessage到queryLoop的完整处理链条,包

2026-04-30 22:30:05 534

原创 Claude Code源码分析——Claude Code 核心架构与关键模块实现设计

Claude Code 是一个围绕模型运行的本地 Agent Runtime,用 Prompt、工具、权限、上下文、缓存、MCP、多 Agent 和安全机制,把模型能力转化为可控的软件工程执行能力。它最值得学习的地方是:不是把模型放大权限后直接执行,而是通过一套本地编排层,把模型的规划能力、工具的执行能力和工程系统的约束能力组合起来。模型调用 / tool_use / tool_result / continue / compact。用户输入 / 文件 / 网页 / MCP 结果 / 工具输出。

2026-04-28 08:00:00 688

原创 AI入门—— 一文读懂什么是RAG

输出语言与格式角色语气禁止事项(例如不要编造)它本身不提供知识检索能力。先检索还是先澄清命中阈值不够时是否拒答回答时是否必须附引用它是可复用 SOP,不是底层连接协议。MCP 解决“模型如何调用外部能力”。向量检索工具文档读取工具重排序(rerank)工具权限和审计系统RAG 关注的是知识增强本身。它可以在没有 MCP 的情况下实现,也可以通过 MCP 让这套能力更标准化、更可治理。RAG 的本质不是“让模型更聪明”,而是“让答案更有依据”。

2026-04-26 08:11:37 428

原创 AI入门——MCP 协议核心解读:从 JSON-RPC 到 Host/Client/Server 实战

说明:社区里也有 WebSocket 等实现,但通常属于扩展方案,不一定是每个 MCP 生态都默认支持。在 MCP 实践中,除了 JSON-RPC 消息体本身,还会结合不同传输方式。Host 是 Agent 运行环境(IDE、平台、应用容器)。示例只演示核心思路,生产环境请补鉴权、日志、重试与限流。适合服务化部署,便于通过网关、鉴权、负载均衡接入。适合服务端持续推送事件(进度、通知、增量结果)。工具越来越多后,业务逻辑和工具连接逻辑缠在一起。常把权限逻辑散落在业务代码,难审计、难复用。

2026-04-22 02:11:30 313

原创 AI入门—— 一文读懂什么是MCP

MCP:AI模型安全调用外部能力的标准协议 MCP(Model Context Protocol)是一套让大模型安全调用外部工具和数据的标准协议,充当AI世界的"统一接口层"。它解决了AI应用开发中的三个核心痛点:接口碎片化、安全难统一和迁移成本高。 MCP协议包含四个关键角色: Host - 运行AI应用的环境 Client - 处理协议通信 MCP Server - 提供标准化能力 Model - 通过协议间接使用能力 MCP的核心价值在于提供三种确定性: 能力确定性:明确可用工具和

2026-04-20 08:00:00 308

原创 AI入门——一文读懂什么是Skill以及如何开发Skill

相同点都用于引导模型行为都依赖上下文注入都可以包含目标、约束、步骤和示例都会影响输出质量和稳定性都需要持续优化都属于广义 Prompt Engineering区别点Prompt 面向单次任务,Skill 面向重复任务Prompt 偏临时输入,Skill 偏长期沉淀Prompt 是自由文本,Skill 是结构化模块Prompt 通常手动输入,Skill 可以自动匹配和调用Prompt 通常无独立权限,Skill 通常可做权限控制。

2026-03-30 00:51:52 3397 2

原创 AI入门——什么是知识图谱?

知识图谱是一种用图结构组织知识的方法,通过实体(节点)、关系(边)和属性来表示现实世界中的对象及其关联。它比传统数据库更擅长处理复杂关系和多跳查询,广泛应用于搜索、推荐、问答等场景。知识图谱构建包括知识建模、数据采集、信息抽取、知识融合等步骤,常用图数据库如Neo4j存储和查询。Neo4j采用属性图模型,支持直观的可视化和高效的关联分析,适合构建中小型知识图谱。

2026-03-22 20:46:32 762

原创 AI入门——什么是提示词(Prompt)以及如何写好提示词?

本文介绍了AI提示词(Prompt)的概念及其应用。Prompt本质上是AI模型的行为准则,通过结构化指令(角色定义+任务目标+执行规则+上下文+输出格式)来约束AI的输出。文章通过电商客服Agent的案例展示了Prompt如何定义角色、明确任务边界、给出执行步骤和约束输出格式。在编程示例中,逐步优化的Prompt从简单代码生成到规范的企业级Java代码(使用SLF4J日志、遵循编码规范),展示了Prompt对AI输出的精准控制作用。Prompt不是简单提问,而是通过结构化指令让AI输出更符合需求。

2026-03-22 20:45:32 953

原创 OpenClaw入门——OpenClaw安装

OpenClaw是一款基于Node.js的大模型应用开发工具。安装要求Node.js版本≥22,支持npm、PowerShell、Docker和离线安装方式。安装后可通过openclaw --version和openclaw doctor验证。使用前需申请API-KEY,如华为云或火山引擎的模型服务。通过openclaw onboard进行交互式配置,包括选择模型类型、对接应用渠道和配置技能。注意自定义模型需调整上下文长度限制以避免报错。配置完成后即可开始对话交互。

2026-03-01 08:11:44 1932 1

原创 Spring源码笔记之SpringIOC--(5)BeanFactory的扩展之ListableBeanFactory

设计只提供了获取单个Bean的能力,为了额外提供获取所有bean(List Beans)的能力,定义了。中获取所有bean的操作会不会去父容器parentBeanFactory中搜索呢?都需要提供遍历bean的能力,但是这是一个比较常用的能力。在spring中我们可能会有获取所有bean的需求,但是。BeanFactory扩展,提供获取所有Bean的能力。BeanFactory扩展,提供访问父容器的功能。BeanFactory扩展,提供自动注入的能力。工具类实现递归搜索父容器所有bean的诉求。

2024-02-20 08:00:00 1150

原创 Spring源码笔记之SpringIOC--(4)BeanFactory的扩展之HierarchicalBeanFactory

在实际使用过程会通过引用父容器parent实现BeanFactory的嵌套调用,如下。BeanFactory扩展,提供获取所有Bean的能力。提供配置、分析和修改bean定义,以及预实例化单例能力。先引用BeanFactory的类继承关系图来看一下。BeanFactory扩展,提供访问父容器的功能。BeanFactory扩展,提供自动注入的能力。Spring默认的BeanFactory实现。提供配置BeanFactory的能力。分层功能的扩展,它提供了。这种关系有点类似与单链表。

2024-02-19 08:00:00 933

原创 Spring源码笔记之SpringIOC--(3)什么是BeanFactory?

是SpringIOC的最顶层接口,涵盖了IOC容器最基本的操作。提供了IOC容器获取所有Bean、配置Bean的额外能力。所有的实现类持有所有Bean的定义,用一个唯一的字符串(即Bean的名字)区分。提供单例Bean(singleton scope)与多例Bean的能力(prototype scope),自从Spring2.0后Bean的作用范围不单单局限于单例与多例,还具有提供请求(request)与对话(session)级别的范围。是IOC容器注册Bean的入口,也是Bean配置中心。

2024-02-18 08:00:00 928

原创 Spring源码笔记之SpringIOC--(2)从BeanDefinition到Bean实例

BeanFactory扩展,提供获取所有Bean的能力。提供配置、分析和修改bean定义,以及预实例化单例能力。)提供了获取bean实例的方法。BeanFactory扩展,提供访问父容器的功能。BeanFactory扩展,提供自动注入的能力。Spring默认的BeanFactory实现。注册BeanDefinition接口。提供配置BeanFactory的能力。

2024-02-17 23:06:24 1421

原创 Spring源码笔记之SpringIOC--(1)从XML文件到Bean的描述对象BeanDefinition

会被递归调用,BeanDefinitionParserDelegate是类内的对象,所以为了保证递归调用时类内能够使用正确的Delegate,此处。的set中,如果能add说明Resource未被加载,等加载完成后再remove,避免重复加载相同的Resource。最开始学习spring的入门实践是,编写一个xml文件,然后利用spring读取xml文件中配置的bean。的注册过程,但是实际使用IOC过程中,并不是直接使用。编写代码加载这个bean,并获取bean的实例。具体bean的加载实现在。

2024-02-17 22:58:57 815

原创 Kubernetes入门笔记 ——(3)理解pod对象

一个有A、B两个容器的pod,如果使用docker拉起,那AB会存在依赖关系,如A先启动,B共享A的Volume等资源。Infra容器必须占用足够小的资源,它使用k8s.gcr.io/pause的特殊镜像,是一个由汇编语言编写、永远处于暂停状态的容器,只有100-200KB。所以对于Linux进程组中每一个进程,k8s中都需要一个单独的容器,这些容器需要互相依赖紧密合作,pod的概念就应运而生。容器和pod是什么关系?pod只是逻辑的概念,pod内的容器共享了某些资源,k8s引入pod目的是容器设计模式。

2023-12-09 17:42:00 684

原创 Kubernetes入门笔记——(2)k8s设计文档

​k8s最初源自谷歌的Brog项目,架构与其类似,主要包括etcd、api server、controller manager、scheduler、kubelet和kube-proxy等组件。: 负责资源的调度, 按照预定的调度策略将 Pod 调度到相应的机器上;:负责维护容器的生命周期,也负责磁盘(CVI)和网络(CNI)的管理。api server里又有认证、鉴权、REST接口、调度触发等模块。:负责维护集群的状态,比如故障检测,自动扩展、滚动更新等。:资源操作的唯一入口,并提供认证、鉴权等功能。

2023-12-06 23:55:24 976

原创 Kubernetes入门笔记——(1)Kubernetes是什么

容器比docker是一个更大的概念,一开始Google工程师便使用Linux的Namespace技术,将多个应用安装在一台服务器上并相互隔离。这样一个docker容器只能“看到”自己的进程,且网络、存储、计算等资源都是被隔离和限制的,类似于运行在一个沙箱中。Kubernetes是一个开源的容器集群管理系统,可以实现容器集群的自动化部署、扩缩容、运维等功能。k8s集群提供了多个容器的编排、扩展、资源管理、运维等一系列功能,基于容器的部署更为方便,可靠性更高,是一个强大的容器管理框架。

2023-12-06 22:44:55 670

原创 日志框架LOG4J2系列六——log4j2使用包装器

slf4j+log4j2组合使用时,有时会使用包装器LoggerWrapper(装饰器LoggerDecorator)对原生的Logger能力进行增强,如修改日志的入参或对日志增加一些定位信息。,并在打印位置时使用它在每个日志事件中堆栈进行遍历,打印全限定类名(FQCN)的上一个堆栈的行号。没有指定FQCN,导致Log4j2认为FQCN是其内部的Logger,他的上一层日志事件是。期望日志为打印业务日志的类名与行号,使用log4j2的。发现log4j2打印的行号错误,都打印相同的行号,且是。

2023-11-02 12:07:09 689

原创 MapStruct使用指南(二)——MapStruct数据类型转换

如果Mapstruct有些场景不能完成,可以自定义转化方法// 自定义方法实现 static PersonDto toPersonDto(Person person) {} }也可以使用@Mapping的表达式属性expression显式指定某一个参数。注意expression不会自动导入,所以表达式中要使用其他类的方法,要带全类名(包名.类名.函数名)或者使用@Mapper的imports显式导入所需要的类。

2023-07-05 23:46:51 12837

原创 MySQL学习笔记(2)——MySQL的锁

1、MySQL索引的类型主要有哪些?B-Tree索引、哈希索引、空间数据索引(R-Tree)、全文索引、其他索引(聚簇索引、覆盖索引等)。2、常见存储引擎与其支持的索引?B-Tree索引:InnoDB,MyISAM,NDB(大部分存储引擎都支持)哈希索引: Memory空间数据索引:mysql功能并不完善, PostgreSQL数据库PostGIS较好全文索引:MyISAM聚簇索引: InnoDB覆盖索引:InnoDBB-TREE索引如何理解?...

2022-03-27 23:38:58 560

原创 MySQL学习笔记(1)——MySQL的并发、事务与MVCC

基本知识一、MySQL的并发、事务与MVCC1.1 MySQL的架构1.2 并发控制1.2.1 读写锁1.2.2 锁粒度1.3 事务1.3.1 事务的四个特性ACID1.3.2 死锁1.3.3 事务日志1.3.4 隔离级别产生的问题1.3.4.1 三种因隔离级别产生的问题1.3.4.2 事务的四种隔离级别1.3.4.3 修改事务的隔离级别1.3.5 事务的自动提交1.3.6 事务型表与非事务型表1.3.7 InnoDB隐式与显式锁定1.4 多版本并发控制(MVCC)1.4.1MVCC的特性1.4.2 Inn

2022-01-09 16:04:38 1237

原创 Claude Code+火山引擎本地开发环境搭建全攻略

本文介绍了如何利用Claude Code Router和火山引擎搭建本地AI开发环境。主要内容包括: Claude Code Router核心功能 支持多模型路由(默认/后台/推理/长文本场景) 兼容OpenRouter、火山引擎等多种API提供商 提供请求转换、动态模型切换和CLI管理功能 火山引擎配置要点 获取API密钥和终端地址 配置JSON文件连接Claude模型服务 环境搭建步骤 安装Claude Code和Router工具 编写配置文件指定路由规则 启动服务并通过命令行交互 该方案解决了原生Cl

2026-06-04 08:30:12 190

原创 SQLite 深度解析:在 Java/Spring 中的使用与H2、Derby对比

SQLite 是一个轻量级嵌入式关系数据库引擎,采用公共领域许可证,具有零配置、服务器less、单文件存储等特性。与其他嵌入式数据库(H2、Derby、HSQLDB)相比,SQLite在多进程并发读取、跨平台支持方面表现突出,但在Java生态集成和MVCC并发写入方面稍逊。在Java/Spring中使用SQLite需引入第三方驱动,通过JDBC或JPA进行数据操作,Spring Boot需手动配置数据源和Hibernate方言。SQLite特别适合移动端、IoT等轻量级应用场景,而纯Java项目可能更适合选

2026-05-24 20:50:50 538 1

原创 OpenHuman 技术解读:一个带记忆、会自动同步上下文的开源数字人 Agent

OpenHuman 是一个非常值得研究的开源数字人 Agent 项目。UI-first 桌面体验数字人 Mascot118+ 第三方 OAuth 集成Auto-fetch 主动同步TokenJuice 压缩智能模型路由原生工具链Skill 系统安全与隐私边界它与 OpenClaw、Hermes Agent 最大的区别在于:OpenHuman 更强调“人”的上下文和桌面存在感,而不仅仅是任务执行。

2026-05-24 20:48:54 594

原创 AI入门—— 一文读懂什么是AI Agent的Memory

不要原样存聊天记录。"value": "用户偏好中文回答,先给结论再给细节",Agent Memory 的本质,是让 AI 从“一次性问答系统”变成“可持续协作伙伴”。短期记忆保存当前任务连续性长期记忆保存跨会话事实和偏好语义记忆保存稳定知识情景记忆保存历史事件程序性记忆最终应该沉淀成 Skill 或 Rule用 Session 或 Checkpointer 管理短期会话状态用独立 Store 管理长期用户偏好和项目事实给 Memory 写入加上总结、脱敏、置信度和用户可控机制。

2026-05-10 07:14:00 410

原创 OpenClaw安装后报错model context window too small (4096 tokens). Minimum is 16000

OpenClaw在使用自定义模型厂商时出现"Model context window too small"错误,原因是系统对未知模型默认限制为4096 token。解决方法为修改配置文件(~/.openclaw/openclaw.json),在models配置中添加本地模型信息,特别需要将"contextWindow"和"maxTokens"设置为实际支持的32000。配置中的模型ID必须与LM Studio加载的完全一致,并将mode设为&quo

2026-03-01 08:06:29 6889

原创 DockerDesktop打包docker镜像时报错

这个报错为:Docker 客户端尝试连接 //./pipe/dockerDesktopLinuxEngine 这个管道(Docker 引擎的通信通道),但系统找不到这个文件 / 管道;Start Docker Desktop when you log in(开机自启,避免下次再出问题);关闭 Docker Desktop(右键托盘图标 → Quit Docker Desktop);双击桌面 Docker Desktop 快捷方式,或在开始菜单搜索并启动;重启电脑后,再次启动 Docker Desktop。

2026-02-23 08:00:00 703

原创 Python快速入门(6)——for/if/while语句

除了数字支持基本运算符外,python支持幂乘(**),python的字符串、列表、元组都支持。python支持range()生成数值列表,并支持min、max、sum等常见操作。代表真和假,与常见的c/c++/java不同。Python 为了和自身的空值。遍历字符串列表与索引值,使用enumrate,可以指定start起始值。(首字母大写)保持风格统一,选择了首字母大写的。加法为添加元素,乘法为重复。while循环的语法为。遍历字符串列表并打印。

2026-02-08 14:42:16 376

原创 Python快速入门(5)——字典

类似于列表字典也是一种可变对象,可以随时添加删除元素。删除指定 key 的键值对,返回 value;根据键值直接访问修改value值,或者使用。通过指定key访问字典中的value值。直接使用键值对方式可以添加元素,使用。删除指定 key / 整个字典;从可迭代对象创建字典,指定默认值。删除并返回最后插入的键值对;类似列表,字典也有浅拷贝。类似于C或Java中。

2026-02-03 08:00:00 1582

原创 Python快速入门(4)——元组

如果想使用不可变列表,则需要用到元组。元组使用圆括号表示(())python中列表为。

2026-02-03 07:30:00 90

原创 python的copy和[:]切片复制哪个效率更高

效率层面copy()略高于[:]切片(快约10%-20%),列表越小差异越明显,超大列表差异可忽略;核心逻辑:两者都是浅拷贝,时间/内存复杂度一致,差异仅在于语法调用开销;场景选择追求效率/可读性 → 用copy();需切片+拷贝/兼容Python 2 → 用[:];通用写法 →list(lst)(效率与copy()持平,兼容性最好)。关键提醒:两者的效率差异在绝大多数业务场景中可忽略,优先保证代码的可读性和语义清晰性,比微乎其微的效率提升更重要。

2026-02-02 08:30:00 630

原创 Python快速入门(3)——列表

类似与C/Java的数组,在Python中列表替代,列表用方括号([])表示,用逗号分割元素。与python字符串不同的是列表支持索引修改元素值。python中列表都是动态的,其实严格来说跟c++的。并不直接返回一个列表,而是返回一个迭代器,这个一种。类似与C/Java,Python的字符串是。python也有浅拷贝与深拷贝之分,使用。类似于字符串的索引访问,列表也支持。,将列表转为字符串后插入到列表尾部。对列表永久排序(默认正序,在指定索引添加元素,使用。用一个列表扩充原有列表。:扩充原有列表应该使用。

2026-02-02 08:00:00 793

原创 Python快速入门(2)——数字

跟其他语言一样python支持整数,浮点数。其中整数除法要注意,在python2中两个整数相除只保留整数部分,但是python3中会都保留。,使用str()方法将数字转为字符串,这是跟C/Java的一个明显区别。对于字节流处理中会用到进制之间的转换。Python 作为强类型语言,

2026-02-01 13:33:14 121

原创 python反转列表reverse()和[::-1]哪个效率更高

效率层面reverse()远高于[::-1](原地操作无内存开销),列表越大优势越明显;场景层面无需保留原列表 → 用reverse()(高效、省内存);需要保留原列表 → 用[::-1](简洁),或“拷贝+reverse()”(更高效);特殊场景:元组/字符串等不可变序列,只能用[::-1]反转。

2026-02-01 13:13:16 818

原创 Python快速入门(1)——字符串

本文介绍了Python字符串的基本操作,主要面向有其他编程语言基础的读者。内容涵盖字符串索引访问(包括正序、倒序和切片)、常用方法(如获取长度、判空、大小写转换、删除空白字符)以及字符串分割操作(split()和partition())。特别说明了Python字符串切片的特点和使用技巧,如步长设置和字符串反转等。文章通过代码示例展示了各种字符串操作的具体用法,帮助读者快速掌握Python字符串处理的核心功能。

2026-01-25 15:40:30 798

原创 Java中strip与trim()的区别

(小于等于\u0020字符,如空格、\t\n\r\f等),无法处理中文全角空格,不间断空格(\u00A0)等Unicode空白。:去除首位全部的Unicode空白字符。jdk11及以上版本,java的。方法,那么原来的删除空白。仅支持ASCII字符场景。:仅处理字符串首尾的。

2026-01-25 15:07:10 450

原创 Python入门——__init__.py文件作用

时,能够被导入的成员(模块、类、函数、变量)」,从而隐藏包的内部细节,提升封装性,避免不必要的成员暴露。的原始核心作用,即使文件内容为空,也能实现「标记目录为 Python 包」的效果。,可用于完成包的初始化配置、定义全局变量、加载依赖等操作。通过__all__变量控制包的「公共接口」(封装性)包内的其他内部细节,同时也简化了外部导入(无需写。中直接定义的成员,无法导入子模块的内容。包被导入时,自动执行其中的初始化代码。中指定的 4 个模型,而不会暴露。导入某个包时,Python 会。

2026-01-18 22:15:52 847

原创 Spring Cloud入门—— (1)Spring Cloud Alibaba生态组件Nacos3.0本地部署

Nacos 用于生成JWT Token的密钥,使用长度大于32字符的字符串,再经过Base64编码。下面会有很多创建文件拉取等基于linux的命令动作,可以使用git bash或者cmder,或者自己查找window下cmd或powershell的命令。: Nacos Server端之间 Inner API的身份标识的Value,必填。: Nacos Server端之间 Inner API的身份标识的Key,必填。命名空间启动nacos,新建一个nacos的命名空间。使用nacos的快速启动模式。

2026-01-04 22:30:26 1285

原创 Kubernetes入门笔记 ——(4)Windows搭建k8s测试集群

可以选择集群节点个数。一般基于一致性协议,3节点是较好的选择。创建K8S集群,如果没有安装k8s集群可能需要提前安装一下。配置Docker Desktop的镜像源。下载安装Docker Desktop。配置阿里云/华为云等云厂商的镜像地址。集群部署3节点的nacos集群。创建一主三副的k8s集群。测试使用k8s的命令。

2026-01-02 17:45:25 398

原创 OpenAPITools使用——FAQ

建议排查配置项的是否为true</</</</</</</</</</</

2025-12-28 22:40:33 429

群ping工具CPing

群ping工具CPing

2025-09-27

L1-Introduction to Reinforcement Learning

斯坦福强化学习 课件L1-Introduction to Reinforcement Learning

2018-04-09

基于STM32F4系列的4个编码器4倍频的转速解析程序

基于STM32F4系列的4编码器4倍频转速解析程序,程序有效,需要根据自己的配置更改有问题欢迎提问。

2019-01-03

基于STM32F4的霍尔编码器解析程序

基于STM32F4的霍尔编码器解析程序,可以做辨向和解析速度

2018-04-12

ROS机器人底层嵌入式程序STM32

ROS机器人底层嵌入式程序STM32ROS机器人底层嵌入式程序STM32

2018-04-12

模型预测控制(Model Predictive Control: Theory and Design)

模型预测控制(Model Predictive Control: Theory and Design)不是扫描版,很清晰

2018-04-08

C++程序设计教程(王珊珊)

C++程序设计教程(王珊珊)C++程序设计教程(王珊珊)

2018-04-10

ROS机器人程序设计

ROS机器人程序设计ROS机器人程序设计ROS机器人程序设计

2018-04-09

STM32F4开发指南-库函数版本_V1.1

STM32F4开发指南-库函数版本_V1.1(完整版)十分清晰可以下载

2018-04-10

空空如也

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

TA关注的人

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