包含关键字 typecho 的文章

大家好,我是 Vue Print Designer 的作者。

之前做企业业务系统时,总被打印需求折磨:要么手写复杂的分页逻辑,要么用的插件耦合性高、扩展难,尤其是表格分页、静默打印、云打印这些场景,踩了不少坑。索性自己造了个轮子,现在开源出来,希望能帮到有同样需求的同学。

这个工具核心解决「可视化设计」和「低成本集成」两个问题:

  1. 可视化设计器:拖拽就能做表单/标签/快递单模板,支持文本、图片、条码、表格等元素,表格会自动分页(表头/表尾可重复),不用再手写分页逻辑;
  2. 跨框架易集成:基于 Web Components 封装,Vue/React/Angular/原生 HTML 都能直接用,提供完整的 API 对接模板 CRUD 、变量赋值、打印/导出;
  3. 企业级打印能力:除了常规的 PDF/图片导出、打印参数配置,还做了配套的 PrintDot Client 桌面端,支持静默打印(本地直打不用确认)、云打印(远程下发打印任务),Windows/macOS/Linux 都能用。

集成起来也很简单,不管是想二次开发改源码,还是直接 npm 装 Web Components 组件用,文档里都写清楚了。我还准备了 Vue 3 + Element Plus 的集成示例供大家参考。

这个项目主要面向企业业务场景,可能不如通用工具受众广,但如果你们团队也在做打印相关的需求,比如表单、票据、快递单打印,希望能少走点弯路。如果觉得这个工具能解决你的痛点,还请顺手给仓库点个 Star ✨,这对我是很大的鼓励~

有问题可以提 Issue ,也欢迎大家提 PR 一起完善~

设计器
PrintDot 主界面

2026 年 2 月 27 日, CarryCode 发布 v0.6.9 版本, 新增对阿里云 CodingPlan 的原生支持;

具体内容:

  1. 新增对阿里云编码计划的支持,支持型号包括 glm-5 、glm-4.7 、kimi-k2.5 、MiniMax-M2.5 、qwen3.5-plus 、qwen3-coder-next 、qwen3-coder-plus 和 qwen3-max-2026-01-23 ;

  2. 新增对令牌使用情况统计的支持,命令为“/usage”,可根据不同型号执行统计,并支持缓存使用情况统计;

  3. 优化阿里云 Coding Plan 的编码体验流畅性, 大家反馈比较多的问题, 如在 Claude Code, OpenCode 等其他三方客户端中容易卡住, 频繁会话中断等问题, 在 CarryCode v0.6.9 中得到优化;

欢迎交流

CarryCode 是一款基于 CLI 的 AI 编程智能体,通过自然对话帮你编写、重构、调试和理解代码。它接入了 17+ 个大模型服务商,支持 MCP 协议扩展,并提供精美的终端 UI ,包含主题切换、语法高亮和代码 Diff 预览。

/model

CarryCode Alibaba-cloud-coding-plan

/usage

CarryCode Alibaba-cloud-coding-plan

工厂老张最近很头疼。车间里几十台数控机床,想搞实时监控预防故障,但试了几个平台,数据传上去再分析,告警总是慢半拍,一批零件都加工废了,指令才到。钱没省下,倒先赔进去不少。
老张的困惑,很多企业都遇到过。上物联网,听着是趋势,可平台一挑就眼花。功能吹得天花乱坠,到底哪个真能用、真省钱、真省心?
今天咱们就抛开那些虚头巴脑的概念,聊点实在的。一个好的物联网平台,不是设备的“传声筒”,得是你业务的“智能副驾驶”。它核心得帮你解决三个问题:

  1. 让数据“跑完最后一公里”:从采集到行动,形成闭环,别让数据躺在服务器里睡觉。
  2. 能像“乐高”一样灵活拼装:今天监控设备,明天要管能耗,后天想搞预测性维护,平台得能跟着你的业务长,而不是动不动就推倒重来。
  3. 让设备、系统之间“能聊天”:自动触发,智能联动,把人从重复的监控和操作里解放出来。
    下面,我就结合几个身边常见的例子,掰开揉碎了说说。
    图片

    一、响应快,才是真的快:边缘计算不是可选项,是必答题

    场景:就像开头的老张,工业现场里,毫秒级的延迟都可能意味着事故。等数据兜一圈传到千里之外的云端,再下指令回来,黄花菜都凉了。
    趋势:现在边缘计算成本一直在降,根据IDC的数据,部署成本这几年下降了快30%,以前用不起的技术,现在中型厂也够得着了。
    平台怎么选:
    别光听销售说“我们云很厉害”。你得问:“本地突发断网了,设备还能自己判断、紧急停机吗?” 有的平台,比如JVS物联网平台,就把“大脑”分了一部分到车间现场。数据在本地网关直接做初步分析和判断,关键告警瞬间响应,只把需要长期存储和分析的数据发到云端。这样,网络压力小了,速度也提上来了。选型时,务必要求看实时响应对比演示,是骡子是马,拉出来遛遛。
    图片

    二、开发快,落地才快:配置化,让业务的人自己动手

    场景:做智慧农业的李总,就想在手机上看看大棚温湿度,自动控制个卷帘。找软件公司报价,开发费比设备还贵,周期还要两个月。
    趋势:Gartner有报告说,超过七成的企业都希望用低代码工具来缩短物联网项目的上线时间。业务等不起漫长的开发周期。
    平台怎么选:
    如果一个平台告诉你,实现任何功能都需要写代码、外包开发,那你得谨慎了。现在好的平台,应该提供“拖拉拽”的配置能力。就像用PPT做图表一样,把设备、数据、告警规则、仪表盘拖到一起,连一连线,一个应用就搭出来了。JVS在这方面做得比较直观,业务人员培训一下就能上手,过去需要程序员干几周的活,现在可能几天就配好了。选型时,让你的业务人员亲手试一下搭建一个简单应用,他们觉得好上手,那才是真的好。
    图片

    三、架构稳、安全稳,业务才稳:模块化与安全是底座

    场景1:智慧园区的“缝合怪”难题
    一个园区,门禁是A家的,停车是B家的,楼宇自控是C家的。平台要是不能“海纳百川”,那你就得面对十几个分散的界面,信息根本不联通。
    趋势:模块化架构现在是主流,85%的企业都倾向这种方案(数据来自IoT Analytics)。好处是,你需要什么功能就上什么模块,未来加新功能,就像装个新APP一样方便,不用动底层架构。
    平台怎么选:
    问供应商:“我现在只要设备监控,明年想加智能巡检和视频联动,怎么办?” 如果对方说“得升级换代”或者“二次开发”,那就要小心了。像JVS这类平台采用模块化设计,物联接入、数据分析、应用开发都是独立模块。你今天可以只上“监控”,明年再买“分析”和“低代码”模块,像拼乐高一样无缝组合起来,数据从一开始就是打通的。
    场景2:医疗数据,安全是生命线
    医院里的医疗设备数据,关乎生命和隐私。平台不安全,就是踩红线。
    趋势:物联网安全支出每年增长超过20%,这是所有平台的必修课,没有妥协余地。
    图片

    给你的几点落地“土办法”

    道理懂了,怎么实操?别急着拍板,可以分几步走:

  4. 先看“疗效”:一定要看真实的《延迟对比测试视频》。在同样的网络环境下,对比纯云方案和边云协同方案的真实响应速度。眼见为实。
  5. 亲自“试试手”:找平台供应商要一个《智慧农业零代码搭建》之类的实操作业。让你们公司未来可能的使用者(比如设备科长、生产主管)跟着做一遍,感受一下配置过程到底复不复杂。
  6. 玩玩“模拟器”:问问有没有在线的模块化方案配置器。你可以自己勾选“设备监控+能耗管理+智能告警”等功能,看看平台能生成一个什么样的解决方案和大致框架,这能帮你理清思路。
  7. 学点“防身术”:下载一份平台方出具的《IoT安全防护白皮书》,重点看他们如何解决“密钥长期不换”、“设备仿冒接入”这些最常见、最危险的漏洞。懂点安全,才能问出关键问题。
    图片

    写在最后

    选物联网平台,不是在选一个即插即用的U盘,而是在选一个能共同成长几年的“合伙人”。它的响应速度,决定了你能不能在事故前按下按钮;它的灵活程度,决定了你能不能跟上市场的变化;它的稳定与安全,决定了你的业务能不能睡个安稳觉。
    希望这篇接地气的分析,能帮你拨开迷雾。技术终究是为业务服务的,找准你的核心痛点,拿着上面这几个“土办法”去验证,你一定能找到那个最懂你的“数字化搭档”。
    在线demo:http://iot.bctools.cn
    开源框架:https://gitee.com/software-minister/jvs

2026年,人工智能(AI)与制造执行系统(MES)的集成已经从“概念验证”和“初步试点”阶段,全面迈入了深度协同与自主决策的“新境界”。
在2026年的智能制造场景中,AI不再仅仅是MES的一个附加模块或数据分析工具,而是成为了MES的“大脑”,两者实现了无缝融合。以下是万界星空科技AI-MES这一新技术的核心特征、应用场景及价值体现:

1、从“记录系统”到“预测与自主系统”的转变
传统的MES主要侧重于数据的采集、记录和流程的标准化(What happened?)。而在2026年,AI赋能的MES(AI-MES)具备了强大的预测和自主能力(What will happen? & What should we do?)。
实时动态调度:传统的APS(高级计划与排程)往往基于静态规则。AI-MES能够实时分析设备状态、物料供应、订单优先级甚至天气影响,利用强化学习算法每秒重新优化生产排程。当某台设备突发故障时,系统能毫秒级自动重排后续工序,无需人工干预。
自适应工艺参数:在注塑、半导体或化工等复杂工艺中,AI-MES根据实时传感器数据(温度、压力、振动),动态调整机器参数,以确保产品质量始终处于最优区间,实现“零缺陷”生产。
2、核心应用场景的深度进化
A. 预测性维护2.0 (Predictive Maintenance)
过去:基于阈值的报警或简单的趋势分析。
2026现状:AI模型结合数字孪生技术,不仅能预测设备何时会坏,还能诊断根本原因(Root Cause Analysis),并自动生成维修工单、预定备件,甚至在非生产时段自动下发固件更新以修复潜在软件漏洞。
B. 智能质量管理 (AI-QMS)
视觉检测升级:集成边缘AI的视觉系统直接嵌入MES流程。不仅识别缺陷,还能通过生成式AI分析缺陷形态,反向追溯至具体的工艺环节(如:“3号炉温在10:05分波动导致此批次瑕疵”)。
虚拟计量:对于难以实时测量的物理属性,AI利用过程数据构建软测量模型,在MES中实时输出质量预判,减少实验室检测滞后。
C. 生成式AI助手 (GenAI Copilot)
自然语言交互:车间主任或操作员不再需要学习复杂的SQL或报表工具。他们可以直接问AI-MES:“为什么上周二B线的良率下降了?”系统会自动生成分析报告、图表并给出建议。
知识库自进化:系统将历史故障处理记录、专家经验自动转化为知识库。当新问题出现时,AI助手能即时推送类似的解决方案给一线工人。
D. 供应链与生产的端到端协同
AI-MES打破了工厂围墙,与ERP、SCM(供应链管理)系统深度打通。它能根据上游原材料的延迟风险,提前调整生产计划;也能根据下游市场的实时需求波动,灵活切换生产品种,实现真正的C2M(Customer to Manufacturer)柔性制造。
4、技术架构的新特征
云边端协同:高频实时控制(如机械臂调整)在边缘端(Edge)由轻量级AI模型完成;复杂的大模型训练和全局优化在云端进行;MES作为中枢协调两者。
数据编织(Data Fabric):解决了多源异构数据(OT与IT)的融合难题。AI能够自动清洗、标注和理解来自老旧PLC、新型传感器及人工录入的数据,消除了“数据孤岛”。
可解释性AI (XAI):为了满足合规性和工程师的信任,2026年的AI-MES在做出关键决策(如停机、报废)时,能提供清晰的逻辑链条和依据,不再是“黑盒”。
5、面临的挑战与应对
尽管前景广阔,2026年的企业在推进AI与MES集成时仍面临挑战:
数据治理:高质量的数据是AI的燃料。许多企业仍在补“数据标准化”的课。
人才缺口:既懂制造工艺又懂AI算法的复合型人才依然稀缺。万界星空AI低代码平台成为解决之道,让工艺工程师也能训练模型。
安全与隐私:随着系统开放度提高,网络安全和数据主权成为重中之重,零信任架构(Zero Trust)在工业场景普及。
这种集成标志着制造业从自动化(机器代替人手)向智能化(机器代替人脑的部分决策功能)的跨越。未来的智能工厂将是一个具有“自愈、自优、自适应”能力的生命体,而AI-MES正是其神经系统。对于企业而言,谁能更快地实现这种深度融合,谁就能在定制化、效率和成本控制上获得决定性的竞争优势。

VMware Aria Suite Lifecycle 8.18 Patch 7 - 应用生命周期管理

请访问原文链接:https://sysin.org/blog/vmware-aria-suite-lifecycle/ 查看最新版。原创作品,转载请保留出处。

作者主页:sysin.org


应用生命周期管理

VMware Aria Suite Lifecycle

(以前称为 vRealize Suite Lifecycle Manager)

通过全面的应用生命周期和内容管理解决方案最大限度减少日常管理工作并提高终端用户的工作效率。

VMware Aria

新增功能

VMware Aria Suite Lifecycle 8.18.0 Patch 7 | 24 February 2026 | Build 25212352

新增功能

VMware Aria Suite Lifecycle 8.18.0 Patch 7 包含:

  • 为希望将 VMware Aria 基础架构升级到 VCF 9.0、VCF 9.0.1 或 VCF 9.0.2 的客户提供升级路径。

VMware Aria Suite Lifecycle 8.18.0 Patch 7 支持:

  • VMware Aria Operations 8.18.6
  • VMware Aria Operations for Logs 8.18.6
  • VMware Aria Operations for Networks 6.14.2
  • VMware Cloud Foundation 5.2.3

应用此补丁将:

  • 启用 VCF Operations fleet management appliance 9.0、9.0.1 或 9.0.2 的安装。
  • VCF Operations fleet management appliance 在 VCF 9.0 中为管理组件(如 VCF Automation、VCF Operations、VCF Operations for Networks、VCF Operations for Logs 和 VCF Identity Broker)提供生命周期管理和 Day-N 运维能力。
  • 在选择 VMware Cloud Foundation 授权的情况下,支持将 VMware Aria Operations 8.18 升级到 VCF Operations 9.0、9.0.1 或 9.0.2,并在升级过程中安装 VCF Operations fleet management 9.0。
  • 解除基于 VCF aware 模式的部署与 SDDC Manager 的耦合。仅在 VMware Aria Operations 8.x 升级到 9.0 或 SDDC Manager 升级到 9.0 时发生。

关于包含 VMware Identity Manager 的环境的注意事项:

  • VMware Identity Manager 将继续由 VMware Aria Suite Lifecycle 管理。不存在将 VMware Identity Manager 升级到 VCF 9.0 的升级路径。

已解决的问题

Content Management 在部署 Operations-SuperMetric 时失败,报错 Invalid input format
在将超级指标作为单独内容部署,或作为仪表板部署的依赖项进行部署时,如果超级指标名称包含特殊字符(例如 ä),部署将失败。

在将 Aria Operations for Networks 6.14 扩容时,无法选择采集器节点大小
在扩容过程中尝试选择 Aria Operations for Networks 采集器节点大小时,选项呈灰色不可选状态,用户无法进行选择。

VMware Aria Operations 8.18.x 升级到 9.0.x 失败,报错:LCMMANAGEMENTNODEVCFOPS12005 - Error occurred while trying to push Vcf Ops Certificate to Management Node
如果证书保管库引用被手动删除,且在 VMware Aria Suite Lifecycle Manager 中不存在,则在将 VMware Aria Operations 8.18.x 升级到 9.0.x 时,请求会失败,并报错:LCMMANAGEMENTNODEVCFOPS12005 - Error occurred while trying to push Vcf Ops Certificate to Management Node。

以下是 VMware Aria Suite Lifecycle 8.18.0 的主要特性和功能:

  • Salt 工作节点配置

    • 能够在 VMware Aria Suite Lifecycle 中安装和升级 Salt 工作节点
    • 将 Salt 工作节点配置为指向 Salt 主节点并添加 Grain
  • 迁移服务

    • 将 VMware Aria Operations SaaS 内容迁移到内部部署
  • VMware SSO 集成

    • 在 vCenter 中将 VMware Aria Operations、Logs 和 Orchestrator 与嵌入式 VMware SSO 集成
    • 可在第 0 天和第 N 天进行配置
    • 导入配置了 VMware SSO 的产品
    • 仅支持高于 8.18.0 的版本
  • 内容管理

    • 使用标记捕获内容并将其部署到源控制
  • VMware Aria Operations 增强功能

    • VMware Aria Operations 升级将基于 2 个 pak 文件
    • 升级 VMware Aria Operations 期间,不会在 VMware Aria Operations 云代理上生成快照
  • My VMware 或 Customer Connect 功能已弃用

下载地址

想要开始学习和研究,请访问:https://sysin.org/blog/vmware-aria-suite-lifecycle/

更多:VMware 产品下载汇总

F5 BIG-IP 17.5.1.5 LTS - 多云安全和应用交付

BIG-IP 是硬件平台和软件解决方案的集合,提供专注于安全性、可靠性和性能的服务

请访问原文链接:https://sysin.org/blog/f5-big-ip-17-lts/ 查看最新版。原创作品,转载请保留出处。

作者主页:sysin.org


F5

BIG-IP is a collection of hardware platforms and software solutions providing services focused on security, reliability, and performance (sysin).

BIG-IP 是一套由硬件平台和软件解决方案组成的产品组合,旨在提供以安全性、可靠性和性能为核心的服务(sysin)。

BIG-IP software products are licensed modules that run on top of F5’s Traffic Management Operation System® (TMOS).

BIG-IP 软件产品是运行于 F5 Traffic Management Operating System®(TMOS)之上的授权模块。

BIG-IP 产品概述

更多介绍请参看:F5 BIG-IP 下载汇总 - 业界领先的应用交付与安全服务

BIG-IP

F5’s growing portfolio of products that provide the availability, performance, and security you need

  • BIG-IP Access Policy Manager (APM)

    Secures, simplifies, and protects user access to apps and data

  • BIG-IP Advanced Firewall Manager (AFM)

    Protects your network against incoming threats, including complex DDOS attacks

  • BIG-IP Advanced WAF

    Protects apps with behavioral analytics, bot defense, and app-layer encryption

  • BIG-IP Carrier-Grade NAT (CGNAT)

    Fast, scalable, and secure IPv4/IPv6 IP address management as part of a suite of consolidated functions

  • BIG-IP DNS

    Provides hyperscale and security during high query volumes and DNS DDoS attacks

  • BIG-IP Local Traffic Manager (LTM)

    Manages network traffic so applications are always fast, available, and secure

  • BIG-IP Policy Enforcement Manager (PEM)

    Improves network performance through effective policy management

  • BIG-IP Service Proxy for Kubernetes

    Gives multi-protocol ingress/egress signaling control, security, and visibility for cloud-native 5G

  • BIG-IP SSL Orchestrator

    Maximizes infrastructure efficiencies and security with encryption/decryption and traffic steering

  • Container Ingress Services

    Provides automation, orchestration, and networking services for container deployments

BIG-IP Deployment

Deploy your applications on-premises, in the cloud, or both.

  • BIG-IP iSeries Appliances

    Programmable ADC appliances with L4 and L7 throughput and connection rates

  • BIG-IP VIPRION Chassis and Blades

    Extends your infrastructure by adding blades without disrupting apps or users (sysin)

  • BIG-IP Virtual Edition

    Software-based traffic management, app security, and visibility

  • Cloud-Native Network Functions

    Cloud-native solutions that help you transition to cloud and 5G

  • F5 rSeries

    A fully automatable architecture, and the highest reliability, security and access control for your critical applications.

  • VELOS Chassis and Blades

    Gives you the agility and scale of modern architectures

BIG-IP 软件支持策略

Major Release and Long-Term Stability Release versions supported with active software development

Major Release, Minor Release, and Long-Term Stability Release versionsFirst customer shipEnd of Software DevelopmentEnd of Technical SupportLatest maintenance release
17.5.xFebruary 27, 2025January 1, 2029January 1, 202917.5.x
17.1.xMarch 14, 2023March 31, 2027March 31, 202717.1.x
16.1.xJuly 7, 2021July 31, 2025July 31, 202516.1.6
15.1.x (EoL)December 11, 2019December 31, 2024December 31, 202415.1.10
14.1.x (EoL)December 11, 2018December 31, 2023December 31, 202314.1.5
13.1.x (EoL)December 19, 2017December 31, 2022December 31, 202313.1.5
12.1.x (EoL)May 18, 2016May 18, 2021May 18, 202212.1.5
11.6.x (EoL)May 10, 2016May 10, 2021May 10, 202211.6.5

Note: EoTS and EoSD will occur on the same date, unless specified otherwise (sysin).

新增功能

BIG-IP 版本 17.5.x 皆为安全更新和错误修复,详细描述包含在下载中。

BIG-IP 版本 17.5.0 中的新增功能

General(通用)

  • 支持 16 插槽 VELOS 机箱配置(Early Access)

    BIG-IP 17.5.0 引入了对 CX1610 和 BX520 VELOS 平台机箱中 16 插槽集群配置的支持。从 F5OS-C 1.8.1 和 BIG-IP 17.5.0 开始支持此配置。

    注意:此功能当前作为 Early Access(EA)计划的一部分提供。标记为 EA 的功能可能支持有限,并可能在未来版本中发生更改。
  • BrightCloud SDK 和内存管理更新

    BrightCloud SDK 从版本 4 升级到版本 5.36 后,其内存占用将显著增加。

    因此,对于内存小于 16 GB 的平台,BrightCloud SDK 将不会被初始化。但 wr_urldbd 守护进程将继续运行以支持 customDB 功能,确保功能不中断。

    此更新有助于防止低端平台(4 GB 或 8 GB 内存)在升级过程中发生过度内存占用,从而维持系统稳定性。

  • BIND 升级

    由于 BIND 9.16 已到达生命周期终点(EoL)且不再接收安全更新 (sysin),已将 BIND 从 9.16.48 升级至 9.18.27。

    注意:该改进已在 BIG-IP 17.1.2 中引入,详见该版本的新增功能和安装说明。
  • 配置选项:在 dataplane 出现故障时延迟重启

    新增 sys db 变量 tmm.hsb.dataplanerebootaction。默认值为 enable,表示遇到 dataplane 故障时将重启系统。可选设置为 disable,将触发高可用性(HA)行为 go-offline-downlinks,避免立即重启。

  • DPDK 驱动程序升级

    DPDK(数据平面开发工具包)驱动已到达 EoL,不再接收安全更新。此次将其版本从 18.11.0 升级到 20.11.10,以支持 AWS ENA 版本 2.8.0。

  • Kerberos 升级

    在跨域 Kerberos 单点登录(SSO)场景中,子域用户无法访问服务 AD 中的服务。为解决该问题,Kerberos(krb5 lib)已从版本 1.18.2 升级至 1.19.1。

  • 支持 C3D

    新增对基于 TLS 1.3 的 C3D(客户端证书受限委派)的支持。

    注意:该功能已在 BIG-IP 17.1.1 中引入,详见该版本的新增功能和安装说明。

APM(Access Policy Manager)

  • 允许 HTTP 连接

    添加了 “Allow HTTP Connections” 设置,用于指定客户端是否可以通过不安全的 HTTP 而非 HTTPS 建立 VPN 连接。启用时,Edge Client 可在无法使用 HTTPS 的环境下使用 HTTP 建立连接;禁用时,只允许通过 HTTPS 连接。这一选项默认关闭 (sysin)。F5 不建议启用此功能,除非万不得已且采取了额外安全措施,以降低启用 HTTP 带来的风险。

  • 检查间隔(Check Interval)

    “Check Interval” 设置定义了访问策略中重复的终端检查(endpoint check)执行之间的时间间隔,用于确保会话期间客户端持续符合安全策略。任何不合规行为都会导致 VPN 会话终止。此选项仅适用于即将发布的 macOS 客户端版本 F5 Access。

  • 定制 Mac F5 Access 安装包

    用户现在可以下载为选定连接配置定制的 macOS F5 Access 安装包,并在 Mac 系统上安装。此功能亦仅适用于即将发布的 macOS F5 Access 客户端。

  • 桌面客户端设置

    在连接配置中,将原 “Win/Mac Edge Client” 菜单重命名为 “Desktop Client Settings”,涵盖 Windows、macOS 与即将发布的 macOS F5 Access 客户端设置。原 “F5 Access for Mac OS” 选项已移除,相关配置并入新的 “Desktop Client Settings”。

  • 通过 TMSH 增强 HTTP 身份验证超时设置

    增加了两个系统数据库变量 apm.http.connectiontimeoutapm.http.requesttimeout,用于配置 HTTP 身份验证时的连接超时(默认 10 秒)和请求超时(默认 60 秒)。这些默认值与旧版本一致,未改变实际行为。

  • 忽略 SSL 服务器证书失败

    添加了 “Ignore SSL Server Certificate Failures” 设置,该选项控制客户端在连接服务器时是否忽略 SSL/TLS 证书验证错误(如证书过期、不受信任 CA 或域名不匹配)。启用后,会允许连接继续进行。此选项默认关闭。F5 不建议开启,除非别无选择并配套其他安全措施。

ASM(Application Security Manager)

  • JSON Web Token 保护违规

    增加通过 JWT 验证 API 请求功能。对受 JWT 保护的访问配置来说,若请求中没有、格式错误或包含无效 token,访问受保护 URL 时将触发违规。

  • 增强 Base64 自动检测

    改进 Base64 自动检测,使用语义分析方式区分可读文本与编码数据,减少误报,提高精确度且不影响性能。

  • 非法登录尝试时验证 HTTP Authorization 头

    强化 HTTP 头授权保护,在尝试访问登录页面 URL 时,如果未能从 Authorization 头中获取凭据,将触发 “illegal login attempt”(非法登录尝试)违规。

  • 签名执行通知(就绪期前)

    在自动学习模式下,新签名或更新签名可能会在配置的执行准备期结束前被强制执行 (sysin)。系统现在会在学习建议中提示,提醒执行可能会超出准备期。

  • 高风险与高精度签名集强制执行设置

    在签名集的学习与拦截设置中新增 GUI 选项 “Enforce and Enable all Attack Signatures with High Risk & High Accuracy in the Signature Set”,启用后会对标记为高风险且高精度的签名集中的所有签名进行启用并强制执行,其它签名则仍处于试运行(staging)。

  • 改进攻击签名设置

    新增 GUI 选项 “Stage all Attack Signatures in the Signature Set”,可将签名集中的所有签名统一设置为试运行状态。

  • 二进制参数值类型自动检测

    支持将特定参数配置为二进制类型,从而避开对签名和特殊字符的检查,减少误报。

  • 自定义模式和屏蔽的数据保护

    对自定义屏蔽模式,支持配置在掩码数据字符串中仅暴露首尾若干字符、其余内容掩码。例如:字符串前两位与最后三位可见,其它部分掩码。这一设置可适用于所有自定义模式,并且对所有模式统一配置。

DNS(Domain Name System)

  • 增强 CNAME 查询处理能力

    当 CNAME 查询导致 BIG-IP DNS resolver 执行时间超过 DNS 缓存配置的次数限制时,将返回 SERVFAIL 错误。BIG-IP 17.5.0、17.1.0、16.1.5 及后续版本将 MAX_RESTART_COUNT 限制设置为 11,此前版本为固定的 8。

    同时新增系统数据库变量 sys db dnscache.maxqueryrestarts,以控制 unbound 在遇到 CNAME 记录时可重试的次数。调整该参数需谨慎,以避免接受过长的 CNAME 链。

  • 支持 ODoH 协议(Oblivious DNS over HTTPS)

    现在 BIG-IP 支持通过 ODoH 协议提升 DNS 隐私保护,引入加密和代理机制 (sysin)。ODoH 使用 HPKE(Hybrid Public Key Encryption)技术,保障 DNS 查询的公钥加密与身份认证。BIG-IP 支持配置 SVCB(服务绑定,类型 64)与 HTTPS RR(类型 65)资源记录,用于 ODoH 目标服务发现。

LTM(Local Traffic Manager)

  • 为 HSB 验证 Loopback 包添加数据载荷验证

    在具备硬件组件的平台上,新增诊断功能,定期发送验证 loopback 包至 HSB。新增以下系统数据库变量(可通过 tmsh modify sys db 编辑):

    1. tmm.hsb.loopbackValidation(默认启用,设为 disabled 可停止验证)
    2. tmm.hsb.loopbackvalidationErrthreshold(默认 0):若设为 0,仅记录损坏检测日志;若设为 >0,当检测到损坏包数量达阈值时,将触发 HSB 的 nic_failsafe 再重启系统。

    若发生损坏,将在 /var/log/tmm 中出现如下日志(有数量限制):

    notice HSB loopback corruption at offset 46. tx: 0x4f, rx: 0x50, len: 2043

    若达到 threshold,将进一步记录:

    notice Reached threshold count for corrupted HSB loopback packets

    之后系统通常会重启。除 i4600、i4800、i2600、i2800 和 i850 iSeries 平台外,HSB 验证支持所有配备 HSB 的硬件平台。

  • 优化 iSeries 平台上 switch 与 HSB 接口间的 FCS 错误检测与处理

    当检测到 FCS 错误时,可触发高可用 HA 操作。相关系统数据库变量:

    • bcm56xxd.hgmfcsthreshold(默认 0 表示禁用,设值为每秒错误次数阈值)
    • bcm56xxd.hgmfcsrebootaction(默认 enable,触发 nic_failsafe 重启;disable 时将触发 go-offline-downlinks)
    • bcm56xxd.hgmfcsnumpolls(定义连续检测出错轮数,默认 5,单位为秒)
  • 增强 DAGv2 行为

    增加支持锁定当前 DAGv2 表的系统数据库变量(示例命令):

    tmsh modify sys db dag.dagv2.pgs value ...
    tmsh modify sys db dag.dagv2.hsbs value ...
    tmsh modify sys db dag.dagv2.mirror.pgs value ...
    tmsh modify sys db dag.dagv2.mirror.hsbs value ...

    需同时保存常规表与镜像表,并确保 CMP 状态与表中定义一致,以应对刀片丢失情况。该功能同样适用于 LSN NAPT 部署中的 SP DAG。完成配置后,请重启 TMM。

  • 优化 DAG fold bit 配置

    在客户端/服务器 IP 地址数量有限的场景下,某些流量模式可能导致连接集中于单核 CPU。可通过设置 sys db dag.hash.fold.bits 来优化连接分布 (sysin)。修改后需重启相关服务。

  • 增加 QoS 配置灵活性

    原变量 tm.egressdscp 无法细粒度控制不同流量类型。引入新变量 tm.bgpegressdscptm.bfdegressdscp,分别控制 BGP 和 BFD 协议数据包的 DSCP 值。默认为 0,使用新设置需重启 BGP 或 BFD 会话。

  • 增强 FIPS 工具功能

    fipsutil 中添加了 -k 参数,可在分区初始化(INIT)时禁用 PEM 密钥导入。该限制持续有效,直到分区被重新初始化。
    注意:该功能最早在 BIG‑IP 17.1.2 中引入。

  • 支持后量子安全

    在客户端 TLS 1.3 中,BIG-IP 现在支持混合 X25519_Kyber768 密钥交换方式,提升对抗未来量子攻击的能力。该 ECC 曲线结合后量子密码坚固性,防止 “Harvest Now, Decrypt Later” 攻击,兼容当前协议,确保长期数据安全。

PEM(Policy Enforcement Manager)

  • 自定义 URL 分类增强

    PEM 可用的自定义 URL 分类数从 4,000 增加到 36,000,显著提升 URL 分类能力。

BIG‑IP VE(虚拟设备)

  • 在 GCP 上支持 Shielded VM 部署

    F5 现支持在 Google Cloud Platform 上部署启用 Secure Boot 的 Shielded VM 实例运行 BIG-IP 虚拟设备 (sysin)。Secure Boot 可确保 VM 启动的是受信任和验证的软件,增强安全性和可审计性。部署前请启用 GCP Shielded VM 的 Secure Boot,并从 MyF5 下载所需的启动映像和公钥文件。

Distributed Cloud Services(分布式云服务)

  • 增强 Bot 防护的事务结果报告功能

    提升分布式云环境中 Bot 防御的事务结果报告功能,支持记录成功与失败的结果指标,以便更细化地分析和防护 Bot 行为。

下载地址

BIG-IP 17.5.1.5, Release 2026-02-27

FilenameDescriptionSize
BIGIP-17.5.1.5-0.0.6.isoUse for upgrades. Does not include EUD.3 GB
BIGIP-17.5.1.5-0.0.6.iso.md5MD5 file for Use for upgrades. Does not include EUD.59 Bytes
BIGIP-17.5.1.5-0.0.6.htmlBIGIP release notes1 MB

BIG-IP 17.5.1.5_Virtual-Edition, Release 2026-02-27

FilenameDescriptionSize
BIGIP-17.5.1.5-0.0.6.ALL-vmware.ovaImage fileset for VMware ESXi Server3 GB
BIGIP-17.5.1.5-0.0.6.ALL-vmware.ova.md5MD5 file for Image fileset for VMware ESXi Server70 Bytes
BIGIP-17.5.1.5-0.0.6.ALL.qcow2.zipImage file set for KVM Red Hat Enterprise Linux/CentOS3 GB
BIGIP-17.5.1.5-0.0.6.ALL.qcow2.zip.md5MD5 file for Image file set for KVM Red Hat Enterprise Linux/CentOS69 Bytes
BIGIP-17.5.1.5-0.0.6.ALL.vhd.zipImage fileset for Microsoft Hyper-V3 GB
BIGIP-17.5.1.5-0.0.6.ALL.vhd.zip.md5MD5 file for Image fileset for Microsoft Hyper-V67 Bytes

相关产品:F5 产品下载汇总 - 多云安全和应用交付

更多:HTTP 协议与安全

Acunetix v26.02.24 发布,新增功能简介

Acunetix v26.02.24 (Linux, Windows) - Web 应用程序安全测试

Acunetix | Web Application Security Scanner

请访问原文链接:https://sysin.org/blog/acunetix/ 查看最新版。原创作品,转载请保留出处。

作者主页:sysin.org


Acunetix 漏洞扫描器,管理您的 Web 应用安全。

Find the vulnerabilities

使用 Acunetix 提高您的 Web 应用程序安全性

Acunetix 不仅仅是一个网络漏洞扫描器。它是一个完整的 Web 应用程序安全测试解决方案,既可以独立使用,也可以作为复杂环境的一部分使用。它提供内置的 漏洞评估 和 漏洞管理,以及与市场领先的软件开发工具集成的许多选项 (sysin)。通过将 Acunetix 作为您的安全措施之一,您可以显着提高您的网络安全立场,并以较低的资源成本消除许多安全风险。

自动化和集成您的漏洞管理**

为了节省资源、简化修复并避免后期修补,企业通常旨在将 Web 漏洞测试作为其 SecDevOps 流程的一部分。Acunetix 是 DAST 的用于此类目的最佳工具之一,因为它在物理和虚拟环境中都具有效率。

  • Acunetix 集成设计得非常简单 (抄si袭quan者jia)。例如,您即可将 Acunetix 扫描集成到 CI/CD 与 Jenkins 等工具中只需几步。
  • 为了有效管理漏洞,您还可以使用第三方问题跟踪器,例如 Jira、GitLab、GitHub、TFS、Bugzilla 和 Mantis。对于某些问题跟踪器,Acunetix 还提供双向集成,其中问题跟踪器可能会根据问题状态自动触发其他扫描。
  • Acunetix 提供自己的 API,您可以使用它连接到第三方或内部开发的其他安全控制和软件。对于企业客户,Acunetix 技术专家将帮助您将工具集成到非典型环境中。

信任最成熟最快的漏洞扫描工具**

Acunetix 是市场上第一款自 2005 年以来不断改进的 Web 安全扫描程序。它是由 Web 安全测试专家开发的高度成熟的专业工具。这种专业化使得构建比许多捆绑工具更有效的解决方案成为可能。

  • Acunetix 漏洞扫描引擎是用 C++ 编写的,使其成为 市场上最快的 Web 安全工具之一。这在扫描使用大量 JavaScript 代码的复杂 Web 应用程序时尤为重要。Acunetix 还使用了独特的扫描算法 - SmartScan,您通常可以在扫描的前 20% 中找到 80% 的漏洞。
  • 速度符合非常高的漏洞发现效率。Acunetix 还以其极低的误报率而闻名 (sysin),这有助于您在渗透测试期间进一步节省资源,并使您的分析师专注于新漏洞。Acunetix 还提供了许多漏洞的利用证明。
  • 为了提高扫描效率,您可以使用多个本地部署的扫描引擎。引擎可以与 Acunetix 本地和云版本一起使用。

获得附加价值,包括网络安全**

Acunetix 有适合不同客户需求的版本。它可以本地部署在 Linux、macOS 和 Microsoft Windows 操作系统上。您还可以将其用作云产品来节省您的本地资源。

  • 除了 Web 应用程序漏洞(例如 SQL 注入和 跨站点脚本 (XSS))之外,Acunetix 还可以帮助您发现其他安全威胁。这包括 Web 服务器配置问题或错误配置、未受保护的资产 (sysin)、恶意软件和 OWASP Top 10 中列出的其他安全威胁。
  • 为了保护您的关键资产,您可以将独特的 AcuSensor IAST 技术用于 PHP、Java 或 .NET。该技术可以更轻松地查明安全漏洞的原因,从而帮助您进行补救。
  • Acunetix 与 OpenVAS 开源工具集成。此网络安全扫描器可帮助您扫描 IP 地址范围以发现特定于网络设备的开放端口和其他安全漏洞。您可以使用单个仪表板一起处理 Web 和网络漏洞。

新增功能

Acunetix Premium - v26.02.24 - Security

2026 年 2 月 25 日

安全检查

下载地址

想要开始学习和研究?

更多相关产品:

更多:HTTP 协议与安全

图片

文末有源码下载链接!

    如果说“Go语言类型系统”像人生的角色系统,那么反射就是你拿着一面可以“照见本质”的镜子,透过镜子,你能看到一个对象的真实身份、字段、方法,以及它隐藏的全部能力。

    但镜子是神奇的,也是危险的:

  • 用得好,是动态能力的利器;
  • 用得不好,是性能噩梦、Bug温床、甚至让你的类型安全瞬间崩塌。

一、为什么需要反射?

    在静态语言中,我们通常希望类型在编译器已知,这能让:

  • 运行时安全
  • 编译器优化更强
  • 性能更高

    但某些场景中,你必须在运行期处理一个“我不知道是什么类型”的对象,例如:

  • JSON反序列化
  • ORM映射数据库字段
  • 配置解析
  • gRPC/RPC 框架自动绑定
  • 单元测试工具
  • 序列化框架

    这些地方,你必须动态获取字段名、方法名、类型信息...

    此时,反射就是你唯一的工具。

二、反射的核心三件套Type、Value、Kind

reflect.Type
reflect.Value
reflect.Kind

1. Type:类型信息

  • 是静态类型的运行时表现形式
  • 比如“string”、“int”、“struct”

 2. Value:值信息

        Value描述一个对象的真实值:

  • 100
  • “hello”
  • struct{...}

3. Kind:底层分类

        Kind不是类型,而是类型的底层归类:

  • int
  • float
  • slice
  • map
  • struct

三、反射的基本原理:接口+元数据

反射=从接口的运行时类型信息中,恢复出真实类型与值。

    接口存两部分:

  • 动态类型(type)
  • 动态值(value)

    反射只是把这俩拿出来,再给我们操作的能力。

t := reflect.TypeOf(x)
v := reflect.ValueOf(x)

四、反射的三大能力

    Go的反射非常克制,也非常强大,分为三个层级:

 1. 检查一个值

    你可以:

  • 看类型:TypeOf
  • 看底层种类:Kind()
  • 看字段:Field
  • 看标签:Tag
  • 看方法:NumMethod()
type User struct {
    ID   int    `json:"id"`
    Name string `json:"name"`
}
func (u *User) SetName(name string) {
    u.Name = name
    fmt.Println("Name updated to", u.Name)
}
func TestT(t *testing.T) {
    u := User{
        ID:   1,
        Name: "张三",
    }
    tp := reflect.TypeOf(u)
    for i := 0; i < tp.NumField(); i++ {
        f := tp.Field(i)
        fmt.Println(f.Name, f.Tag.Get("json"))
    }
}

    你可以通过反射读取struct标签,这也是JSON/ORM能自动映射的原因

 2. 修改一个值

    你要用Elem()并传指针。

//修改name
v := reflect.ValueOf(&u).Elem()
v.FieldByName("Name").SetString("李四")
fmt.Println(u)
// 输出 {1 李四}

   3. 调用方法(Call)

//调用Call
m := reflect.ValueOf(&u).MethodByName("SetName")
m.Call([]reflect.Value{reflect.ValueOf("王五")})
fmt.Println(u)
// 输出 {1 王五}

五、反射的危险与性能成本

    反射是高成本、低安全性的,应谨慎使用。为什么?因为:

1. 反射是运行时的行为,慢

  • 反射的速度大约是普通方法调用的5-50倍
  • 内存分配增加
  • 逃逸增多

    原因:

  • 类型判断逻辑复杂
  • 必须保证类型安全
  • 需要额外的内存结构

2. 缺乏编译期检查,容易犯错

FieldByName
"age"
// 字段写错也不会报错

3. 破坏类型系统,变成“动态语言”

    很多新手滥用反射,让代码变得:

  • 不稳定
  • 不可读
  • 不可维护

六、最佳实践

   1. 能不用反射就不用

        优先顺序:普通代码->接口->泛型->最后才是反射

2. 反射只用于框架层,而不是业务层

        哪些地方应该用反射?

  • JSON、YAML解析
  • ORM框架
  • RPC框架
  • 单元测试mock工具
  • 数据绑定系统

    3. 反射的结果要缓存

        不要在循环中反复反射类型。

var
.Map
[reflect.Type][]

4. 用反射式非常严格的:必须先判断Kind

if v.Kind() != reflect.Struct {
  return errors.New("must be struct")
}

七、实战,利用反射实现一个小型ORM标签解析器

type User struct {
    ID   int    `json:"id" db:"id"`
    Name string `json:"name" db:"name"`
    Age  int    `json:"age" db:"age"`
}

    写一个函数,返回所有字段对应的数据库列:

func Parse(v interface{}) map[string]interface{} {
    t := reflect.TypeOf(v)
    val := reflect.ValueOf(v)
    if t.Kind() == reflect.Ptr {
        t = t.Elem()
        val = val.Elem()
    }
    res := make(map[string]interface{})
    for i := 0; i < t.NumField(); i++ {
        f := t.Field(i)
        tag := f.Tag.Get("db")
        if tag == "" {
            continue
        }
        res[tag] = val.Field(i).Interface()
    }
    return res
}

调用

u2 := User{
        ID:   1,
        Name: "张三",
        Age:  10,
    }
fmt.Println(Parse(u2))
// 输出 map[age:10 id:1 name:张三]

*源码地址*

1、公众号“Codee君”回复“每日一Go”获取源码

2、https://pan.baidu.com/s/1B6pgLWfSgMngVeFfSTcPdg?pwd=jc1s 

反射是一面“照见真相的镜子”,你可以看到一个对象的真实身份、能力和内部结构;但这面镜子沉重、昂贵、易碎,只有在真正必要的时候,你才应当举起它。


如果您喜欢这篇文章,请点赞、推荐+分享给更多朋友,万分感谢!


春节期间那场豪掷数十亿的“AI 红包大战”硝烟还未散尽,阿里的大本营却传出了一声平地惊雷。

3 月 4 日凌晨,通义千问系列大模型的核心技术负责人、曾被称为阿里“最年轻 P10”的林俊旸在社交平台发文:“me stepping down. bye my beloved qwen.”(我卸任了。再见了,我亲爱的千问。)

作为一手将 Qwen 推向全球开源大模型巅峰的灵魂人物,林俊旸在阿里全面加码 AI 的前夜突然离场,引发了行业的剧烈震荡。表面上看,这是一次突发的人事变动;但撕开表象,这实质上是阿里 AI 战略从“开源造势”全面转向“商业变现”与“集团大一统”的必然阵痛。

一、 功臣的离场:从“极客团队”到“集团机器”的齿轮摩擦

1993 年出生的林俊旸,是典型的本土天才型 AI 领袖。自 2019 年加入达摩院,到 2022 年被任命为通义千问负责人,他带着一个“全栈闭环”的小团队(涵盖预训练、后训练、多模态、Infra),一路狂奔。

在他们的努力下,Qwen 在开源社区大杀四方。阿里曾骄傲地宣布,Qwen 已经超越 Llama 和 DeepSeek,成为全球性能最强、应用最广泛的开源大模型。林俊旸本人也成了国际开发者社群中极具号召力的技术符号。

但他为何在巅峰期选择离开?答案藏在阿里的“大一统”改组中。

据悉,在近期的架构调整中,原本独立运作、高度闭环的 Qwen 团队面临“被拆解”。通义实验室希望将团队按预训练、视觉理解等维度切碎,与实验室内部的其他团队合并。同时,有传闻称前 Gemini 团队成员“空降”,这在某种程度上意味着原有技术路线的动摇。

对于习惯了垂直高效迭代的极客团队来说,这种将团队“打散融入大厂螺丝钉体系”的做法,必然会与负责人的个人意愿产生巨大冲突。

【笔者观点:开源造势结束,收网变现开始】
林俊旸的离职,是一个时代的缩影——“技术理想主义”向“商业现实主义”的让位。
过去一年,阿里的战略是“放水养鱼”,需要林俊旸这样的人才带着团队打榜、开源、赚口碑。但现在口碑已经有了,阿里面临的是 3800 亿的庞大基础设施投资和沉重的变现压力。
阿里高管在内部会议上的定调很明确:“大模型的竞争不再是 Qwen 团队的事,而是整个阿里集团的事。”这意味着,Qwen 不再是一个“技术探索项目”,而是必须被无情拆解、深度塞进电商、支付、本地生活等业务齿轮里的“赚钱机器”。 林俊旸的离开,不是他做错了什么,而是他所代表的那个“纯粹的开源迭代时代”,在阿里内部结束了。

二、 战略换挡:“通云哥”浮出水面,对标谷歌闭源路线?

就在林俊旸离职前两天(3 月 2 日),阿里做了一个极具象征意义的动作:将大模型 B 端品牌和 C 端应用品牌统一命名为“千问”。“通义”这个略显学术的名字被弱化,取而代之的是更加接地气、直奔 C 端市场的“千问”。

不仅如此,阿里的顶层设计中浮现出了一个名为“通云哥”的黄金三角战略:

  • 通义实验室(模型算法)
  • 阿里云(庞大算力和客户群)
  • 平头哥(全栈自研芯片)

国泰海通证券的研报一语道破天机:阿里已经不屑于“比模型跑分”了,现在要的是“拼体系”。这其实是在摸着谷歌(Google)过河。随着前 Gemini 成员的空降,业内普遍猜测,阿里未来可能会在策略上弱化普惠式开源,转向“闭源为主、开源为辅”的高价值商业闭环模式。

【笔者观点:算力霸权才是最终的护城河】
阿里的“通云哥”战略,暴露了其在 AI 时代最真实的底牌——不再拘泥于“谁的模型最聪明”,而是要垄断“AI 时代的计算高速公路”。
开源只是引流的诱饵。当开发者在开源模型上尝到甜头,面临更大规模的商业落地时,他们会发现自己缺乏算力和工程化能力。这时候,阿里云加上平头哥芯片构成的算力底座,才是真正卡脖子、收过路费的地方。阿里要把千问变成一个入口,最终卖的是阿里云的算力。

三、 商业化的生死时速:烧钱换规模的“下半场”

这轮人事与架构的剧震背后,是巨大的财务压力。

2025 年 2 月,阿里刚刚宣布了高达 3800 亿元的 AI 基础设施建设规划。在刚刚过去的春节,千问 App 又怒砸 30 亿元启动“春节请客计划”,通过“一句话下单”拉新。

烧了这么多钱,效果如何?很残酷:虽然千问 App 在春节期间一度登顶苹果免费榜,但随后就被字节跳动旗下的“豆包”夺走冠军宝座。截至 3 月 4 日,豆包依然稳居第一,而千问已经滑落至第四。

知名经济学者盘和林指出:“如果大量的基础设施投入无法回收,大多数 AI 企业都会遭遇财务危机。今年的核心任务必须是商业化。”

【笔者观点:AI 圈的“滴滴快滴大战”重演,但代价更惨烈】
我们正在目睹一场比当年网约车大战更血腥的烧钱游戏。大厂们疯狂砸钱发红包,就是因为 C 端用户有极强的“先入为主”惯性。谁能在第一波占领用户的手机屏幕,谁就是未来的流量霸主。
字节的豆包和阿里的千问,产品本身已经高度同质化(都能聊天、生成图片、下单)。在这场贴身肉搏中,技术上的那点微弱优势已经不重要了。阿里迫切需要将 Qwen 团队重组,就是为了把战力从“写代码的研究员”迅速切换为“懂变现、懂生态的商业野战军”。

结语:林俊旸的转身,未必不是行业之幸

从阿里的视角看,大一统的重组是为了迎接更残酷的商业厮杀;而从林俊旸个人的角度看,离开这台庞大的商业机器,去休息或者寻找更纯粹的技术舞台,或许是一种解脱。

正如业内专家所言,顶尖人才从大厂流向创业公司或新领域,就像把火种撒向更广阔的生态。这种流动将打破大厂对顶级人才的垄断,反而会加速中国整个 AI 底层逻辑的创新。

千问挥别了属于林俊旸的极客时代,正式穿上西装,走进了冷酷的生意场。而中国大模型的下半场,才刚刚吹响血肉横飞的号角。


👇 欢迎关注我的公众号

在 AI 爆发的深水区,我们一起探索真正能穿越周期的技术价值。
微信搜索 【睿见新世界】 或扫描下方二维码,获取每周硬核技术推文:

微信图片_20260301232734_225_35.jpg

欢迎关注【睿见新世界】!

我把常见的几类地名后缀,整理成了一张汇总表。

以后再看到「亚」、「斯坦」、「兰」、「顿」这样的地名,一眼就能判断出大概来自哪个文明、哪个语言圈了。 📝📝📝

昨天预告过了,今天在公众号和 2 站一起发出来~

【读书笔记】世界常见地名后缀


【读书笔记】世界常见地名后缀

我们大家平时看地图,肯定会发现很多国家、城市的名字长得很像,不是「利亚」、「维亚」,就是「斯坦」、「兰」、「堡」、「格勒」。

这些并不是巧合,而是 古代文明留下的地名后缀。每一种后缀,都对应一种语言、一个文化圈。

我写这一篇就尝试汇总全球最常见、最成体系的 6 类地名后缀。


一、亚(-ia)

这是全球分布最广的一类地名后缀,源头来自 古希腊语,后被拉丁语继承

  • 词根:-ia / -ea / -ya
  • 来源:古希腊语 / 拉丁语
  • 含义:xx 人的土地 / xx 之地
  • 传播:罗马帝国 → 拉丁语系国家 → 随着欧洲殖民扩张 → 遍布欧洲、非洲、美洲、大洋洲

中文翻译时,根据前面辅音不同,分成 5 类典型写法。

1. 利亚 (-lia / -ria)

  • 澳大利亚 Australia
  • 保加利亚 Bulgaria
  • 尼日利亚 Nigeria
  • 阿尔及利亚 Algeria
  • 利比里亚 Liberia
  • 巴伐利亚 Bavaria(德国州)
  • 西伯利亚 Siberia(俄罗斯地区)

2. 尼亚 (-nia / -nya)

  • 罗马尼亚 Romania
  • 亚美尼亚 Armenia
  • 毛里塔尼亚 Mauritania
  • 坦桑尼亚 Tanzania
  • 肯尼亚 Kenya
  • 阿尔巴尼亚 Albania
  • 斯洛文尼亚 Slovenia
  • 加利福尼亚 California(美国州)

3. 维亚 (-via)

  • 拉脱维亚 Latvia
  • 玻利维亚 Bolivia
  • 斯堪的纳维亚 Scandinavia(北欧半岛)

4. 比亚 (-bia / -bya / -pia)

  • 纳米比亚 Namibia
  • 利比亚 Libya
  • 哥伦比亚 Colombia
  • 埃塞俄比亚 Ethiopia
  • 赞比亚 Zambia

5. 西亚 (-sia)

  • 印度尼西亚 Indonesia
  • 马来西亚 Malaysia
  • 波利尼西亚 Polynesia
  • 亚细亚 Asia(亚洲)


二、斯坦(-stan)

这是中亚、西亚、南亚标志性的地名后缀。

  • 词根:-stan
  • 来源:古波斯语
  • 含义:xx 人的家 / 聚居地
  • 分布:中亚、西亚、南亚

1. 全球 7 个斯坦国

  • 哈萨克斯坦 Kazakhstan
  • 吉尔吉斯斯坦 Kyrgyzstan
  • 塔吉克斯坦 Tajikistan
  • 乌兹别克斯坦 Uzbekistan
  • 土库曼斯坦 Turkmenistan
  • 巴基斯坦 Pakistan
  • 阿富汗 Afghanistan

特别说明:阿富汗 的英文国名是 Afghanistan,原文带 -stan 后缀,中文翻译省略了「斯坦」两个字,但仍属于标准的斯坦国。

2. 巴勒「不」斯坦

重要澄清:巴勒斯坦 Palestine 的后缀是 -stine,属于 闪米特语系,和波斯语系的 -stan 无关。只是发音接近,中文翻译巧合也用了「斯坦」两个字,但实际上 不属于上述的斯坦国


三、兰(-land)

  • 词根:-land
  • 来源:古日耳曼语
  • 含义:土地 / 国家
  • 分布:以欧洲为主

代表国家 / 地区:

  • 英格兰 England
  • 苏格兰 Scotland
  • 爱尔兰 Ireland
  • 芬兰 Finland
  • 格陵兰 Greenland
  • 冰岛 Iceland
  • 波兰 Poland
  • 瑞士 Switzerland
  • 荷兰 Netherlands(官方国名:尼德兰)


四、堡(-burg)

  • 词根:-burg
  • 来源:日耳曼语 / 德语
  • 含义:堡垒 / 城堡 / 要塞,后演变为城市名
  • 分布:德国、东欧、世界各地

代表城市:

  • 汉堡 Hamburg
  • 爱丁堡 Edinburgh
  • 圣彼得堡 Saint Petersburg
  • 卢森堡 Luxembourg
  • 约翰内斯堡 Johannesburg


五、格勒(-grad)

  • 词根:-grad / -gorod
  • 来源:斯拉夫语
  • 含义:城市 / 要塞
  • 分布:俄罗斯、东欧、巴尔干地区

代表城市:

  • 伏尔加格勒 Volgograd
  • 列宁格勒 Leningrad(现圣彼得堡,旧称)
  • 斯大林格勒 Stalingrad(现伏尔加格勒,旧称)


六、顿(-ton)

  • 词根:-ton
  • 来源:古英语
  • 含义:定居点 / 城镇
  • 分布:英国、美国等英语国家

代表城市:

  • 华盛顿 Washington
  • 波士顿 Boston
  • 南安普顿 Southampton
  • 普林斯顿 Princeton


七、汇总表格

我把上面 6 大类地名后缀,整理成一张汇总表:

640

以后再看到「亚」、「斯坦」、「兰」、「顿」这样的地名,就能一眼判断出大概来自哪个文明、哪个语言圈,我们记忆地图和地名就会轻松很多。


【读书笔记】世界常见地名后缀

在 HarmonyO 全面落地、原生生态加速成型的今天,鸿蒙开发者正迎来从“会写代码”到“能做架构”的关键跃迁。《鸿蒙架构师修炼之道》恰好踩中这个时代节点,以体系化、实战化、场景化的视角,把零散的技术点串成可落地的成长路径,堪称鸿蒙进阶者的案头必备。


一、定位清晰:不教入门,只教“升维”

这本书最可贵的,是不做泛技术科普,只做架构师能力培养
它跳过基础语法与简单API,直接聚焦架构思维、设计原理、模式选型、工程质量、性能与安全,把一名合格鸿蒙架构师必须具备的能力,拆成可学习、可训练、可复用的方法论。

内容覆盖完整闭环:

  • 架构设计思维与权衡原则
  • 线程模型、通信、持久化、安全、测试、调优
  • 分布式多端协同与一次开发多端部署
  • 真实项目流程与踩坑经验
  • 架构师软技能:沟通、评审、风险把控

它回答了所有进阶开发者最关心的问题:我离架构师,到底差什么


二、价值突出:把“鸿蒙特性”讲透

市面上很多架构书通用有余、场景不足。这本书牢牢扎根鸿蒙原生体系:

  • 紧扣 Stage 模型 讲应用架构
  • 围绕 分布式软总线 讲跨设备协同
  • 基于 ArkTS/ArkUI 讲工程化实践
  • 面向 HarmonyOS 做前瞻设计

不空谈理论,每一条原则都对应鸿蒙的真实约束与优势,让架构设计既符合系统哲学,又能落地跑通

三、适合谁读?精准命中三类人群

  1. 有经验的鸿蒙开发者:想从业务开发转向架构设计,缺体系、缺方法、缺判断标准。
  2. 客户端/全栈架构师:需要快速补齐鸿蒙分布式、多端部署、微内核架构知识。
  3. 技术负责人/团队Leader:需要一套标准,用来培养人、评审架构、规范项目。

它不是入门书,却是从程序员到架构师的必经之桥


四、阅读感受:干货密集,可直接落地

整本书逻辑干净:原理 → 模式 → 场景 → 实战 → 避坑
没有废话,没有堆砌,每一章都能直接用于工作:架构评审、性能瓶颈定位、多端适配、安全加固、代码规范、灰度升级……读完就能用在项目里,提升代码质量与架构稳定性。

它不仅教“怎么做”,更教怎么判断、怎么选择、怎么权衡——这正是架构师的核心能力。

五、总结:一本真正“面向未来”的鸿蒙架构书

在鸿蒙生态爆发的窗口期,技术红利属于先建立架构能力的人。
《鸿蒙架构师修炼之道》不只是一本技术手册,更是一张职业成长地图:帮你把碎片化经验整合成系统能力,把“能用”升级为“可靠、高效、可扩展”。

如果你立志在鸿蒙领域走得更远,这本书值得认真读、反复练、落地用。
懂鸿蒙,更懂架构师;讲技术,更讲成长之道。

参考引用

昨晚在苹果香港官网,走教育优惠下单 16 寸 MBP 64G +1T 版本,地址写的香港的。我使用的大陆的双币招行 visa 信用卡支付的,卡里已经扣钱了,苹果给我取消了。

我第一笔下单用的 apple pay ,取消了,我不死心,直接换成在网页上写 visa 卡信息支付,都已经有进度了,邮箱也收到教育认证的邮件了,邮件也发出去了,过了 20 多分钟,订单就被取消了。

有好兄弟知道啥问题吗?

注:信用卡的账单地址第一次我写的香港,第二次我写的我大陆办卡时预留的地址。

5bbf5a1888fd24cb8e16b38c59883561

image-20260305085801958

内容如题,想买一个 AI 设备,小团队就几个人用,目前看了两个设备,DGX Spark 和 MacStudio,计划用于跑大模型,100B 左右的模型这些设备的内存都可以吼得住,但在一些带宽、速率上,不知道这两个设备有没有太大差别。有有经验的大佬指导一下吗?先谢谢大家啦
image.png
image.png

在网络活动日益频繁的当下,无论是排查网络故障、验证代理设置,还是判断网络请求来源,个人用户常常需要查询某个IP地址的地理位置和运营商信息。快速、准确、易用,无疑是大家对这类查询工具的核心诉求。

一、为何查询的IP有时会“漂移”到隔壁省?

在深入探讨查询方法之前,我们要了解IP地理定位的精度是分层次的,据相关网络测量研究显示,在国家级别的定位准确率能达到92% - 99%,然而到了城市级(50公里范围内),准确率就会下降至50% - 75%左右。这背后有几个关键因素:

1. IP动态分配问题

普通家庭宽带大多采用动态IP,若数据库未能及时更新,显示的可能是该IP池的注册地址,比如市级总公司的地址,而非用户实际位置。

2. 运营商NAT技术的影响

移动端用户常处于大内网环境,出口IP可能归属于省公司,进而造成定位偏差。

3. 数据库更新频率

免费的公开数据库可能几个月才更新一次,而像IP数据云这样的商业库能做到24小时快速更新,数据时效性更强。

二、个人查询IP的三种实操方法

明白了上述原理,下面我为大家介绍三种个人查询IP的实操方法:

1. 在线网页查询(最简单)

打开IP 数据云查询页,输入目标 IP,一键获取国家、省份、城市、运营商、IP 类型等信息。

2. 普通免费工具查询

市面上还有一些公共工具,如IPinfo.io、IP-api等。不过,这类工具更适合临时简单使用,在准确性和数据丰富度上可能稍逊一筹。

3. 系统命令查询

对于有一定技术基础的用户,可以使用系统命令进行查询。Windows 运行cmd执行ping + 域名,获取 IP,再用tracert辅助判断线路与运营商,适合有基础的用户快速核验。
第一步:打开命令提示符(CMD)
第二步:用 ping 命令获取域名对应的IP
ping+域名
示例:
ping www.baidu.com
执行后,中括号里的就是目标 IP。
图片
第三步:用 tracert 辅助判断线路与运营商
tracert IP
第四步:由于CMD 只能粗略判断,可以用免费工具精准确认。

三、IP查询方案对比方案

准确度易用性适合用户普通免费工具一般高临时简单查询系统命令查询较低低有技术基础用户IP数据云查询高极高所有个人用户

方案准确度易用性适合用户
普通免费工具一般临时简单查询
系统命令查询较低有技术基础用户
IP数据云查询较高所有个人用户

四、查询小贴士

  1. 优先 IPv4 查询,定位更稳、结果更准。
  2. 内网 IP(192.168/10 段)只能查局域网,无法获公网位置。
  3. 代理或 VPN 环境下,查到的是节点 IP,非真实出口 IP。
  4. 选定期更新 IP 库的平台。

总之,个人用户查询 IP 地理位置与运营商,优先选免费、准确、无广告工具。网页查询省心,命令行适合快速核验,我个人使用下来IP数据云这样的专业平台,为用户提供可靠的IP查询服务,满足日常网络排查、安全验证、信息核验等多种需求,是个人用户值得信赖的IP查询工具。

从「AI For What」到「Value From AI」,100+可落地实践案例打通 AI 实战最后一公里!

4 月 16 日-4 月 18 日,QCon 全球软件开发大会将在北京举办。本届大会锚定 Agentic AI 时代的软件工程重塑,聚焦 Agentic AI、多智能体协作、算力优化、技术债治理、多模态和 AI 原生基础设施等前沿话题,邀请来自腾讯、阿里、百度、华为、蚂蚁、小米、网易等企业技术专家,带来百余项真实落地案例,系统性分享前沿洞察与实战干货,以技术共创探索 AI 落地新路径。

ElasticElastic 社区首席布道师刘晓国已确认出席 “Agentic Engineering” 专题,并发表题为Elastic MCP 及 Agentic AI:构建可信、上下文感知能力的搜索的主题分享。随着不断的研发探索,Elasticsearch 正从搜索引擎进化为 Agentic AI 的核心基础设施。本次分享将讨论如何用 Elasticsearch 为 Agentic AI 提供可用、可验证的上下文。通过 MCP,LLM 可按需访问企业数据与外部工具;结合向量/混合检索与对话历史记忆存储,检索结果可作为后续推理输入,从而减少因上下文缺失导致的错误回答。演讲还将介绍基于 Elastic 9.2 版本的 Agent Builder 与 9.3 版本的 Workflow:使用 ES|QL 封装查询与统计分析工具,使用 MCP 接入其他工具,并用工作流将数据处理、分类、通知与 API 调用串联。包含自然语言查询与工具编排 Demo。

刘晓国,曾就职于新加坡科技,康柏电脑,通用汽车,爱立信,诺基亚,Linaro 非营利组织 (Linux for ARM),Ubuntu,Vantiq 等企业。从事过电脑设计,汽车电子,计算机操作系统,通信,云实时事件处理等行业。从爱立信开始、诺基亚、Ubuntu 到现在的 Elastic,刘晓国从事社区工作已经有将近 20 年的经历。他在本次会议的详细演讲内容如下:

演讲提纲

  1. 搜索市场演变

  • 搜索的变迁

  • 把企业数据提供给 Agent 是充满挑战的

  • 智能体时代,搜索比以往任何时候都更相关

2. Elastic MCP

  • Elastic MCP 服务器介绍

  • 定制 MCP 服务器

  • Demo: 使用 Elastic MCP 及 定制 MCP 进行自然语言查询

3. AI Agents

  • 什么是 Agents

  • 为什么需要上下文工程

  • Agent builder 架构

  • Elastic Workflow 介绍

  • Demo:使用 AI Agent builder 创建 tools 及 Agents (包括 workflows)

这样的技术在实践过程中有哪些痛点?

智能体的开发对于很多开发者来说不是很容易。如何让开发者迅速地开发出高质量的智能更不容易。在智能体的开发者中,上下文工程显得非常重要。如果缺失精确的上下文,大模型所生成的工作流也不会完善。

演讲亮点

  • 高效的向量搜索为智能体的构建提供语义相关的上下文

  • Elastic 提供一个可视化界面,在几分钟内迅速地创建智能体所需要的 tools 及 agents

  • 使用方便,直接,快速的管道查询语言 ES|QL 来关联多个表格里的数据,丰富数据,为智能体提供更多的上下

  • 提供 MCP,A2A 及 API 接口供应用扩展

听众收益

  • 深入了解 Elasticsearch 的向量搜索原理,使用及长处

  • 了解 AI Agent Builder 如何轻松创建 Agentic AI

除此之外,本次大会还策划了Agentic Engineering多模态理解与生成的突破记忆觉醒:智能体记忆系统的范式重塑与产业落地具身智能与物理世界交互Agent Infra 架构设计AI 重塑数据生产与消费AI 原生基础设施AI 驱动的技术债治理小模型与领域适配模型大模型算力优化Agent 可观测性与评估工程AI for SRE等 20 多个专题论坛,届时将有来自不同行业、不同领域、不同企业的 100+资深专家在 QCon 北京站现场带来前沿技术洞察和一线实践经验。

更多详情可扫码或联系票务经理 18514549229 进行咨询。

基于YOLOv8的脑肿瘤识别(中英文双版) | 附完整源码与效果演示

引言

脑肿瘤是严重威胁人类健康的疾病之一,其早期准确诊断对患者的治疗和预后至关重要。传统的脑肿瘤诊断主要依赖放射科医生的经验,通过CT、MRI等医学影像进行人工判读。然而,这种方法存在主观性强、工作量大、易受疲劳影响等问题。随着深度学习技术的快速发展,基于计算机视觉的医学影像分析为脑肿瘤的自动识别提供了新的解决方案。

本文介绍了一个基于YOLOv8目标检测算法的脑肿瘤识别系统,该系统能够自动检测和定位医学影像中的脑肿瘤区域,为临床诊断提供辅助支持。YOLOv8作为当前最先进的目标检测算法之一,以其出色的检测速度和精度,在医学影像分析领域展现出巨大的应用潜力。
在这里插入图片描述

背景意义

脑肿瘤的早期发现和准确诊断对提高患者生存率具有重要意义。据统计,脑肿瘤的发病率逐年上升,且呈现年轻化趋势。传统的诊断方式存在以下局限性:

  1. 诊断效率低:放射科医生需要逐一分析大量医学影像,耗时耗力
  2. 主观性强:不同医生对同一影像的判断可能存在差异
  3. 易漏诊误诊:长时间工作容易导致疲劳,影响诊断准确性
  4. 医疗资源分布不均:偏远地区缺乏专业的放射科医生

基于深度学习的脑肿瘤自动识别技术能够有效解决上述问题。通过训练神经网络模型,系统可以快速、准确地识别脑肿瘤区域,减轻医生工作负担,提高诊断效率。同时,该技术还可以作为辅助诊断工具,帮助医生发现可能被忽略的微小病灶,降低漏诊率。

在临床应用中,脑肿瘤识别系统可以广泛应用于:

  • 医院影像科的辅助诊断
  • 健康体检中的早期筛查
  • 医学教育和培训
  • 远程医疗诊断支持
    在这里插入图片描述

项目视频展示

https://www.bilibili.com/video/BV1LJPKzBEbi/在这里插入图片描述

包含:
📦完整项目源码
📦预训练模型权重
🗂️数据集

项目详细效果展示

在这里插入图片描述
在这里插入图片描述

数据集信息

本项目使用脑肿瘤医学影像数据集进行模型训练和验证。数据集采用YOLO格式组织,包含训练集和验证集两部分。

数据集配置文件如下:

path: main/datasets
train: images/train
val: images/val

# 类别
names:
  0: 阴性
  1: 阳性

数据集具有以下特点:

  1. 数据格式:采用YOLO标准格式,每张图片对应一个同名的标注文件
  2. 标注方式:使用边界框标注脑肿瘤区域,标注文件包含类别和坐标信息
  3. 图像质量:医学影像经过预处理,保证图像清晰度和一致性
  4. 类别平衡:数据集包含阴性和阳性两类样本,确保模型训练的平衡性

数据集目录结构如下:

main/datasets/
├── images/
│   ├── train/      # 训练集图片
│   └── val/        # 验证集图片
├── labels/
│   ├── train/      # 训练集标注
│   └── val/        # 验证集标注
└── brain-tumor.yaml  # 数据集配置文件

本项目主要工作

本项目基于YOLOv8算法构建了完整的脑肿瘤识别系统,主要工作包括以下几个方面:

1. 数据集构建与预处理

  • 收集和整理脑肿瘤医学影像数据
  • 进行数据清洗和质量控制
  • 实现数据增强策略,包括旋转、翻转、缩放等操作
  • 将数据集划分为训练集和验证集

2. 模型训练与优化

  • 基于YOLOv8架构进行模型训练
  • 调整超参数以获得最佳性能
  • 实现损失函数优化,提高检测精度
  • 采用迁移学习策略,加速模型收敛

3. 系统集成与部署

  • 开发图形用户界面,提供友好的操作体验
  • 实现模型推理功能,支持单张图片和批量检测
  • 集成可视化模块,直观展示检测结果
  • 优化系统性能,确保实时检测能力

4. 性能评估与验证

  • 使用多种评估指标衡量模型性能
  • 在验证集上进行充分测试
  • 分析模型在不同场景下的表现
  • 持续优化模型参数和结构

系统整体架构如下图所示:

graph TB
    A[输入医学影像] --> B[图像预处理]
    B --> C[YOLOv8模型推理]
    C --> D[目标检测]
    D --> E[边界框回归]
    D --> F[类别分类]
    E --> G[结果后处理]
    F --> G
    G --> H[可视化展示]
    H --> I[输出检测结果]
    
    style A fill:#e1f5ff
    style C fill:#ffe1e1
    style I fill:#e1ffe1

国内外研究现状

脑肿瘤识别是医学影像分析领域的重要研究方向,近年来取得了显著进展。

国外研究现状

国外在脑肿瘤识别领域的研究起步较早,主要集中在以下几个方面:

  1. 传统机器学习方法:早期研究主要基于手工特征提取和传统机器学习算法,如支持向量机(SVM)、随机森林等。这些方法需要依赖领域专家设计特征,泛化能力有限。
  2. 深度学习方法:随着深度学习技术的发展,卷积神经网络(CNN)在医学影像分析中得到广泛应用。研究者提出了多种网络架构,如U-Net、V-Net等,在脑肿瘤分割任务中取得了良好效果。
  3. 目标检测方法:近年来,目标检测算法被引入脑肿瘤识别领域。Faster R-CNN、SSD、YOLO等算法在检测速度和精度方面各有优势,为临床应用提供了更多选择。
  4. 多模态融合:一些研究探索了结合多种医学影像模态(如MRI、CT)的方法,通过多源信息融合提高诊断准确性。
    在这里插入图片描述

国内研究现状

国内在脑肿瘤识别领域的研究发展迅速,主要特点包括:

  1. 算法创新:国内学者在改进现有算法方面做出了重要贡献,提出了多种改进的网络结构和训练策略。
  2. 数据集建设:国内研究机构积极构建和发布脑肿瘤数据集,为算法研究提供了数据支持。
  3. 临床应用:部分研究成果已开始应用于临床实践,为医生提供辅助诊断支持。
  4. 产学研结合:高校、医院和企业加强合作,推动技术成果转化。
    在这里插入图片描述

技术发展趋势

当前脑肿瘤识别技术呈现以下发展趋势:

  1. 模型轻量化:为了满足移动端和边缘设备的应用需求,研究者致力于开发轻量级模型,在保持精度的同时降低计算复杂度。
  2. 可解释性增强:提高模型决策的可解释性,增强医生对AI辅助诊断的信任度。
  3. 联邦学习:保护患者隐私的同时,利用多中心数据进行模型训练。
  4. 实时检测:优化算法性能,实现实时或准实时的脑肿瘤检测。

快速开始-部署指南

环境要求

  • Python 3.8+
  • PyTorch 1.12+
  • CUDA 11.0+(GPU加速)
  • Windows/Linux操作系统

安装步骤

  1. 克隆项目代码
git clone [项目地址]
cd braintumor
  1. 创建虚拟环境
conda create -n braintumor python=3.8
conda activate braintumor
  1. 安装依赖包
pip install -r requirements.txt
  1. 准备数据集

将数据集放置在指定目录,确保目录结构与配置文件一致。

模型训练

使用以下命令开始训练:

python main/train.py --data main/datasets/brain-tumor.yaml --epochs 100 --batch 16

主要参数说明:

  • --data:数据集配置文件路径
  • --epochs:训练轮数
  • --batch:批次大小
  • --imgsz:输入图像尺寸
  • --device:训练设备(cpu或cuda)

模型推理

训练完成后,使用以下命令进行推理:

python main/predict.py --weights best.pt --source test_images/

系统使用

启动图形界面:

python youi/main.py

在界面中可以:

  • 选择模型文件
  • 上传待检测图片
  • 查看检测结果
  • 导出检测报告
    在这里插入图片描述

技术亮点

本项目在技术实现上具有以下亮点:

1. 先进的算法架构

采用YOLOv8作为核心检测算法,该算法具有以下优势:

  • 检测速度快,适合实时应用
  • 检测精度高,在多个基准数据集上表现优异
  • 模型结构优化,参数量适中
  • 支持多种输入尺寸,适应不同应用场景

2. 完善的数据处理流程

实现了完整的数据处理流水线:

  • 自动数据清洗和质量检查
  • 多样化的数据增强策略
  • 智能的数据集划分
  • 标注格式自动转换

3. 高效的训练策略

采用先进的训练优化方法:

  • 自适应学习率调整
  • 混合精度训练加速
  • 梯度累积支持大批次训练
  • 早停机制防止过拟合

4. 友好的用户界面

开发了直观易用的图形界面:

  • 简洁的操作流程
  • 实时检测结果显示
  • 批量处理支持
  • 结果导出功能

5. 可扩展的系统架构

系统设计具有良好的可扩展性:

  • 模块化代码结构
  • 支持多种模型格式
  • 可配置的检测参数
  • 插件式功能扩展

6. 全面的性能优化

从多个维度优化系统性能:

  • 模型推理加速
  • 内存使用优化
  • 多线程处理
  • GPU并行计算

总结

本文介绍了一个基于YOLOv8的脑肿瘤识别系统,该系统通过深度学习技术实现了对医学影像中脑肿瘤的自动检测和定位。项目从数据集构建、模型训练、系统集成到性能评估,形成了完整的解决方案。

系统的主要优势包括:

  • 检测精度高,能够准确识别脑肿瘤区域
  • 处理速度快,满足临床实时应用需求
  • 操作简便,提供友好的用户界面
  • 可扩展性强,便于后续功能扩展

未来工作可以从以下几个方面展开:

  1. 扩充数据集规模,提高模型泛化能力
  2. 优化模型结构,进一步提升检测性能
  3. 增强系统可解释性,提高临床接受度
  4. 探索多模态融合,综合利用多种医学影像
  5. 开发移动端应用,扩大应用场景

基于深度学习的脑肿瘤识别技术为医学影像分析提供了新的思路和方法,随着技术的不断发展和完善,必将在临床诊断中发挥越来越重要的作用,为提高脑肿瘤诊断效率和准确性做出贡献。

大家好,我是 Java陈序员

在数据驱动决策的时代,每个企业和个人都渴望快速从数据中挖掘价值,但复杂的 SQL 语句、繁琐的数据库操作却成了横亘在多数人面前的高墙。

今天,给大家介绍一款基于大模型和 RAG 的智能问数系统,通过对话分析数据,告别复杂 SQL!

关注微信公众号:【Java陈序员】,获取开源项目分享、AI副业分享、超200本经典计算机电子书籍等。

项目介绍

SQLBot —— 一款基于大模型和 RAG 的智能问数系统,是对话式数据分析神器。它通过结合大模型与 RAG(检索增强生成)技术,实现了高质量的文本转 SQL 功能。

功能特色

  • 开箱即用: 无需复杂的配置流程,只需简单设置好大模型和数据源,就能立即开启智能问数之旅
  • 多样化操作:支持生成 SQL、生成图表、数据分析、数据预测等多种操作,满足不同的数据需求
  • 数据源管理:可配置多种数据库连接信息,轻松对接各类数据源
  • 工作空间管理:实现资源隔离和权限管理,方便团队协作与数据管控
  • 多模型支持:兼容阿里云百炼、千帆大模型、DeepSeek、腾讯混元、讯飞星火、Gemini、OpenAI、Kimi 等多种主流大模型
  • 易于集成: 支持快速嵌入到第三方业务系统,也支持被 n8n、MaxKB、Dify、Coze 等 AI 应用开发平台集成调用,让各类应用快速拥有智能问数能力
  • 安全可控:提供基于工作空间的资源隔离机制,能够实现细粒度的数据权限控制,确保敏感数据只被授权人员访问,让数据查询既便捷又安全

工作原理

快速上手

SQLBot 支持 Docker 部署,可使用 Docker 快速部署。

1、拉取镜像

docker pull dataease/sqlbot

2、创建挂载目录

mkdir -p /data/software/sqlbot/{excel,file,images,logs,postgresql}

3、运行容器

docker run -d \
  --name sqlbot \
  --restart unless-stopped \
  -p 8000:8000 \
  -p 8001:8001 \
  -v /data/software/sqlbot/excel:/opt/sqlbot/data/excel \
  -v /data/software/sqlbot/file:/opt/sqlbot/data/file \
  -v /data/software/sqlbot/images:/opt/sqlbot/images \
  -v /data/software/sqlbot/logs:/opt/sqlbot/app/logs \
  -v /data/software/postgresql:/var/lib/postgresql/data \
  --privileged=true \
  dataease/sqlbot

4、容器启动成功后,浏览器访问

http://{IP/域名}:8080
  • 用户名: admin
  • 密码: SQLBot@123456

功能体验

SQLBot 开启问数功能需要先配置 AI 模型和数据源。

AI 模型配置

1、进入后台系统管理,选择 AI 模型配置,点击添加模型

2、选择好模型供应商后,输入模型名称、模型、API Key 等配置信息

3、最后,点击保存

数据源配置

1、打开首页,选择数据源,点击新建数据源

2、选择好数据源后,输入数据源连接信息,点击校验

3、数据源配置信息校验通过后,点击下一步,选择数据表

4、最后,点击保存

智能问数

1、首页智能问数,点击开启问数

2、选择数据源,并确定

3、在对话框中输入描述,开始生成图表信息

仪表盘

SQLBot 还提供了仪表盘的功能,可以将智能问数产生的图表自定义刻制成仪表盘。

1、首页仪表盘,点击新建仪表盘

2、选择要展示的图表

3、同时支持富文本、Tab设计

4、最后,预览并保存

无论你是需要快速生成报表的业务人员、追求效率的分析师,还是希望为系统赋能的开发者,SQLBot 都能成为你的得力助手。快去部署体验吧~

项目地址:https://github.com/dataease/SQLBot

最后

推荐的开源项目已经收录到 GitHub 项目,欢迎 Star

https://github.com/chenyl8848/great-open-source-project

或者访问网站,进行在线浏览:

https://chencoding.top:8090/#/

我创建了一个开源项目交流群,方便大家在群里交流、讨论开源项目

但是任何人在群里打任何广告,都会被 T 掉

如果你对这个交流群感兴趣或者在使用开源项目中遇到问题,可以通过如下方式进群

关注微信公众号:【Java陈序员】,回复【开源项目交流群】进群,或者通过公众号下方的菜单添加个人微信,并备注【开源项目交流群】,通过后拉你进群

大家的点赞、收藏和评论都是对作者的支持,如文章对你有帮助还请点赞转发支持下,谢谢!

一、什么是国密证书?

国密SSL证书,全称是采用国密算法实现SSL/TLS协议功能的数字证书 。

这里的“国密”即国家密码管理局认定的国产商用密码算法。它并非对国际标准的简单模仿,而是一套由中国自主研发、具备自主知识产权的密码算法体系,主要包括 :

  • SM2算法:非对称加密算法,用于数字签名和密钥交换,替代国际上的RSA/ECC算法。
  • SM3算法:密码杂凑算法,用于生成数据摘要,确保信息完整性,替代国际上的SHA算法。
  • SM4算法:对称加密算法,用于数据的加密和解密,替代国际上的AES算法。

简单来说,国密证书就是使用了中国自己的密码算法(SM系列)来为网站传输数据加解密的数字证书 。

二、国密证书与普通证书的核心区别

我们通常所说的“普通证书”,指的是采用国际通用算法(如RSA、ECC)的SSL证书。两者之间的区别主要体现在以下几个方面:

对比维度国密SSL证书普通SSL证书(国际算法)
核心算法采用中国自主的SM2/SM3/SM4算法体系 。采用国际通用的RSA/ECC/SHA算法体系。
秘钥安全更高强度。例如,256位的SM2算法,其安全强度相当于3072位的RSA算法,运算效率更高,抗攻击性更强。依赖密钥长度扩展(如2048位RSA),面对量子计算的威胁,风险日益增加。
自主可控完全自主可控。由国内CA机构签发,根证书掌握在自己手中,能有效防范“后门”风险和技术制裁 。技术根基在海外,根证书由国外机构掌握,在极端情况下存在被吊销或断供的风险 。
兼容性生态闭环。在通用的Chrome、Edge等浏览器上默认不信任,需使用360国密浏览器、红莲花等支持国密的专用浏览器访问。全球通用。预置于几乎所有主流浏览器和操作系统中,全球用户均可无感知访问 。
合规性合规必选。满足《密码法》、等保2.0、密评等国家法规的强制要求,是政府、金融、能源等关键基础设施领域的“必答题” 。通用选择。适用于无强制合规要求的商业场景及跨国业务 。

三、为什么推荐JoySSL?

国密SSL证书申请入口

  1. 申请便捷:用户只需访问JoySSL官网,注册账户时填写特定的申请码230970即可获得优惠和技术支持,快速申请并部署国密证书。
  2. 支持“双算法”自适应:JoySSL提供支持国密算法的证书,并允许用户选择“双算法”方案 。这意味着你可以在服务器上同时部署国密证书和国际证书。当普通浏览器访问时,自动走RSA算法;当国密浏览器访问时,自动走SM2算法。既满足了合规,又兼顾了全球访客的兼容性。
  3. 数据不出境,安全合规:JoySSL基于国内服务器验证签发,证书验签、OCSP等全链路都在国内完成,确保数据传输和响应的及时性与稳定性,消除了数据外泄的风险。
  4. 高性价比与服务:JoySSL不仅提供国密证书,还面向广大站长提供多种免费型及付费型SSL证书,涵盖单域名、多域名和通配符证书。对于教育版和政务版域名,甚至提供一年期的免费DV证书,极大降低了用户尝试国密方案的门槛。

结语

国密SSL证书绝非普通SSL证书的简单替代品,它是我国在网络空间实现“自主可控、安全可信”战略的核心载体 。虽然目前在兼容性上仍需通过“双证书”策略过渡,但其更高的安全强度和符合国家法规的合规属性,已成为政企及关键基础设施网站的必然选择。

如果您正面临国密合规改造,或希望提前布局更安全的加密体系,不妨了解一下 JoySSL,为您的网站筑起一道坚固的“中国盾牌”。

之前 2 站找佬要了个 l 站邀请码,也是水到 3 级了 再放个邀请码吧doge
invites/RJmJRzUsTg

关于同步/异步,阻塞/非阻塞,Unix IO模型,可以先看这篇文章网络系统 - Unix IO模型

BIO概述

阻塞式IO。也就是说io没有就绪的时候,操作IO当前线程会被阻塞。也就是用户线程需要等待IO线程完成

服务器实现模式为一个连接一个线程,也就是说,客户端每当有一个连接请求的时候,服务器就需要启动一个对应线程进行处理。但是如果这个连接不做任何事情,就会造成不必要的线程开销。这种模型一般适用于连接数目小且固定的架构。

BIO 其实就是 Reactor的 单reactor 单进程/线程模型

BIO的问题

  • 同一时间,服务器只能接受来自于客户端A的请求信息;虽然客户端A和客户端B的请求是同时进行的,但客户端B发送的请求信息只能等到服务器接受完A的请求数据后,才能被接受。
  • 由于服务器一次只能处理一个客户端请求,当处理完成并返回后(或者异常时),才能进行第二次请求的处理。很显然,这样的处理方式在高并发的情况下,是不能采用的。

多线程方式 - 伪异步方式

上面说的情况是服务器只有一个线程的情况,那么我们就能想到使用多线程技术来解决这个问题:

  • 当服务器收到客户端X的请求后,(读取到所有请求数据后)将这个请求送入一个独立线程进行处理,然后主线程继续接受客户端Y的请求。
  • 客户端一侧,也可以使用一个子线程和服务器端进行通信。这样客户端主线程的其他工作就不受影响了,当服务器端有响应信息的时候再由这个子线程通过 监听模式/观察模式(等其他设计模式)通知主线程。

如下图所示:

这种方式其实就是Reactor 的 单reactor 多线程/多进程模型,同样有是有局限性的,因此也就有了后文的NIO方案

  • 虽然在服务器端,请求的处理交给了一个独立线程进行,但是操作系统通知accept()的方式还是单个的。也就是,实际上是服务器接收到数据报文后的“业务处理过程”可以多线程,但是数据报文的接受还是需要一个一个的来
  • 在linux系统中,可以创建的线程是有限的。可以通过cat /proc/sys/kernel/threads-max 命令查看可以创建的最大线程数。当然这个值是可以更改的,但是线程越多,CPU切换所需的时间也就越长,用来处理真正业务的需求也就越少。
  • 创建一个线程是有较大的资源消耗的。JVM创建一个线程的时候,即使这个线程不做任何的工作,JVM都会分配一个堆栈空间。这个空间的大小默认为128K,可以通过-Xss参数进行调整。当然还可以使用ThreadPoolExecutor线程池来缓解线程的创建问题,但是又会造成BlockingQueue积压任务的持续增加,同样消耗了大量资源。
  • 另外,如果应用程序大量使用长连接的话,线程是不会关闭的。这样系统资源的消耗更容易失控。 那么,如果真想单纯使用线程解决阻塞的问题,那么自己都可以算出来您一个服务器节点可以一次接受多大的并发了。看来,单纯使用线程解决这个问题不是最好的办法。

BIO通信方式深入分析

BIO的问题关键不在于是否使用了多线程(包括线程池)处理这次请求,而在于accept()、read()的操作点都是被阻塞。要测试这个问题,也很简单。这里模拟了20个客户端(用20根线程模拟),利用JAVA的同步计数器CountDownLatch,保证这20个客户都初始化完成后然后同时向服务器发送请求,然后观察一下Server这边接受信息的情况。

服务器端使用单线程

  • 客户端代码(SocketClientDaemon),模拟20个客户端连接
public class SocketClientDaemon {
    public static void main(String[] args) throws Exception {
        Integer clientNumber = 20;
        CountDownLatch countDownLatch = new CountDownLatch(clientNumber);

        //分别开始启动这20个客户端
        for (int index = 0; index < clientNumber; index++) {
            SocketClientRequestThread client = new SocketClientRequestThread(countDownLatch, index);
            new Thread(client).start();
            countDownLatch.countDown();
        }

        //这个wait不涉及到具体的实验逻辑,只是为了保证守护线程在启动所有线程后,进入等待状态
        synchronized (SocketClientDaemon.class) {
            SocketClientDaemon.class.wait();
        }
    }
}
  • 客户端代码(SocketClientRequestThread模拟20个请求)
@Slf4j
public class SocketClientRequestThread implements Runnable {

    private CountDownLatch countDownLatch;

    //线程编号
    private Integer clientIndex;

    /**
     * countDownLatch是java提供的同步计数器。
     * 当计数器数值减为0时,所有受其影响而等待的线程将会被激活。这样保证模拟并发请求的真实性
     *
     * @param countDownLatch
     */
    public SocketClientRequestThread(CountDownLatch countDownLatch, Integer clientIndex) {
        this.countDownLatch = countDownLatch;
        this.clientIndex = clientIndex;
    }

    @Override
    public void run() {
        Socket socket = null;
        OutputStream clientRequest = null;
        InputStream clientResponse = null;

        try {
            socket = new Socket("localhost", 83);
            clientRequest = socket.getOutputStream();
            clientResponse = socket.getInputStream();

            //等待,直到SocketClientDaemon完成所有线程的启动,然后所有线程一起发送请求
            this.countDownLatch.await();

            //发送请求信息
            clientRequest.write(("这是第" + this.clientIndex + " 个客户端的请求。").getBytes());
            clientRequest.flush();

            //在这里等待,直到服务器返回信息
            log.info("第{}个客户端的请求发送完成,等待服务器返回信息", this.clientIndex);
            int maxLen = 1024;
            byte[] contextBytes = new byte[maxLen];
            int realLen;
            String message = "";

            //程序执行到这里,会一直等待服务器返回信息(注意,前提是in和out都不能close,如果close了就收不到服务器的反馈了)
            while ((realLen = clientResponse.read(contextBytes, 0, maxLen)) != -1) {
                message += new String(contextBytes, 0, realLen);
            }
            log.info("接收到来自服务器的信息:{}", message);
        } catch (Exception e) {
            log.error(e.getMessage(), e);
        } finally {
            try {
                if (clientRequest != null) {
                    clientRequest.close();
                }
                if (clientResponse != null) {
                    clientResponse.close();
                }
            } catch (IOException e) {
                log.error(e.getMessage(), e);
            }
        }
    }
}
  • 服务器端(SocketServer) 单个线程
@Slf4j
public class SocketServer {

    public static void main(String[] args) throws Exception {
        ServerSocket serverSocket = new ServerSocket(83);

        try {
            while (true) {
                //这里会被阻塞,直到能获取到连接
                Socket socket = serverSocket.accept();

                //下面开始收取信息
                InputStream in = socket.getInputStream();
                OutputStream out = socket.getOutputStream();

                //获取端口
                Integer sourcePort = socket.getPort();
                int maxLen = 2048;
                byte[] contextBytes = new byte[maxLen];

                //这里会被阻塞,直到有数据准备好
                int realLen = in.read(contextBytes, 0, maxLen);
                //读取信息
                String message = new String(contextBytes, 0, realLen);

                //打印信息
                log.info("服务器收到来自于端口: {}的信息: {}", sourcePort, message);

                Thread.sleep(10000);//模拟执行业务逻辑
                //开始发送信息
                out.write("回发响应信息!".getBytes());

                //关闭
                out.close();
                in.close();
                socket.close();
            }
        } catch (Exception e) {
            log.error(e.getMessage(), e);
        } finally {
            if (serverSocket != null) {
                serverSocket.close();
            }
        }
    }
}

经过执行就会发现,服务器一次只能处理一个客户端请求,当处理完成并返回后(或者异常时),才能进行第二次请求的处理。这就是上面提到的BIO存在的问题

优化服务器端为多线程

客户端代码和上文一样,最主要是更改服务器端的代码:

@Slf4j
public class SocketServer {

    static {
        BasicConfigurator.configure();
    }

    public static void main(String[] args) throws Exception {
        ServerSocket serverSocket = new ServerSocket(83);

        try {
            while (true) {
                Socket socket = serverSocket.accept();
                //业务处理过程可以交给一个线程(这里可以使用线程池),并且线程的创建是很耗资源的。
                //但最终还是改变不了.accept()只能一个一个接受socket的情况,并且被阻塞的情况
                SocketServerThread socketServerThread = new SocketServerThread(socket);
                new Thread(socketServerThread).start();
            }
        } catch (Exception e) {
            log.error(e.getMessage(), e);
        } finally {
            if (serverSocket != null) {
                serverSocket.close();
            }
        }
    }
}

@Slf4j
class SocketServerThread implements Runnable {

    private Socket socket;

    public SocketServerThread(Socket socket) {
        this.socket = socket;
    }

    @Override
    public void run() {
        InputStream in = null;
        OutputStream out = null;
        try {
            //下面收取信息
            in = socket.getInputStream();
            out = socket.getOutputStream();
            Integer sourcePort = socket.getPort();
            int maxLen = 1024;
            byte[] contextBytes = new byte[maxLen];
            //使用线程,同样无法解决read方法的阻塞问题,
            //也就是说read方法处同样会被阻塞,直到操作系统有数据准备好
            int realLen = in.read(contextBytes, 0, maxLen);
            //读取信息
            String message = new String(contextBytes, 0, realLen);

            log.info("服务器收到来自于端口: " + sourcePort + "的信息: " + message);

            Thread.sleep(10000);//模拟执行业务逻辑
            //下面开始发送信息
            out.write("回发响应信息!".getBytes());
        } catch (Exception e) {
            log.error(e.getMessage(), e);
        } finally {
            //关闭资源
            try {
                if (in != null) {
                    in.close();
                }
                if (out != null) {
                    out.close();
                }
                if (this.socket != null) {
                    this.socket.close();
                }
            } catch (IOException e) {
                log.error(e.getMessage(), e);
            }
        }
    }
}

这里与单线程相比,使用了多线程来处理具体的业务。但还是改变不了.accept()只能一个一个阻塞处理 socket的情况

问题根源

那么重点的问题并不是“是否使用了多线程”,而是为什么accept()、read()方法会被阻塞。

API文档中对于 serverSocket.accept() 方法的使用描述:

Listens for a connection to be made to this socket and accepts it. The method blocks until a connection is made.
翻译一下:监听与此套接字的连接并接受它。该方法会一直阻塞,直到建立连接为止。

这主要就涉及到阻塞式同步IO的工作原理:

  1. 服务器线程发起一个accept动作,询问操作系统 是否有新的socket套接字信息从端口X发送过来。accept源码如下:

    // java.net.ServerSocket#accept
    public Socket accept() throws IOException {
        if (isClosed())
            throw new SocketException("Socket is closed");
        if (!isBound())
            throw new SocketException("Socket is not bound yet");
        Socket s = new Socket((SocketImpl) null);
        implAccept(s);//显然会走到这个逻辑
        return s;
    }
    
    //java.net.ServerSocket#implAccept(java.net.Socket)
    protected final void implAccept(Socket s) throws IOException {
        SocketImpl si = s.impl;
        
        // Socket has no SocketImpl
        if (si == null) {//上面传进来的null
            si = implAccept();
            s.setImpl(si);
            s.postAccept();
            return;
        }
    
        //...省略
        s.postAccept();
    }
    
    //java.net.ServerSocket#implAccept()
    private SocketImpl implAccept() throws IOException {
        if (impl instanceof PlatformSocketImpl) {
            return platformImplAccept();
        } else {
            //...省略
        }
    }
    
    //java.net.ServerSocket#platformImplAccept
    private SocketImpl platformImplAccept() throws IOException {
        assert impl instanceof PlatformSocketImpl;
    
        // create a new platform SocketImpl and accept the connection
        SocketImpl psi = SocketImpl.createPlatformSocketImpl(false);
        implAccept(psi);
        return psi;
    }
    
    //java.net.ServerSocket#platformImplAccept
    private void implAccept(SocketImpl si) throws IOException {
       assert !(si instanceof DelegatingSocketImpl);
    
       // accept a connection
      impl.accept(si);
    
      //...省略
    }
    
    
    //java.net.AbstractPlainSocketImpl#accept
    protected void accept(SocketImpl si) throws IOException {
        si.fd = new FileDescriptor();
        acquireFD();
        try {
            socketAccept(si);
        } finally {
            releaseFD();
        }
        SocketCleanable.register(si.fd, true);
    }
  1. 注意,是询问操作系统。也就是说socket套接字的IO模式支持是基于操作系统的,那么自然同步IO/异步IO的支持就是需要操作系统级别的了。如下:

    // java.net.PlainSocketImpl#socketAccept
    void socketAccept(SocketImpl s) throws IOException {
            int nativefd = checkAndReturnNativeFD();
    
            if (s == null)
                throw new NullPointerException("socket is null");
    
            int newfd = -1;
            InetSocketAddress[] isaa = new InetSocketAddress[1];
            if (timeout <= 0) { //如果没有设置timeout,那么在调用JNI时会一直等待,直到有数据返回
                newfd = accept0(nativefd, isaa);//这是个JNI方法
            } else {
                configureBlocking(nativefd, false);
                try {
                    waitForNewConnection(nativefd, timeout);
                    newfd = accept0(nativefd, isaa);
                    if (newfd != -1) {
                        configureBlocking(newfd, true);
                    }
                } finally {
                    configureBlocking(nativefd, true);
                }
            }
            /* Update (SocketImpl)s' fd */
            fdAccess.set(s.fd, newfd);
            /* Update socketImpls remote port, address and localport */
            InetSocketAddress isa = isaa[0];
            s.port = isa.getPort();
            s.address = isa.getAddress();
            s.localport = localport;
            if (preferIPv4Stack && !(s.address instanceof Inet4Address))
                throw new SocketException("Protocol family not supported");
    }
    
    // java.net.PlainSocketImpl#accept0
    static native int accept0(int fd, InetSocketAddress[] isaa) throws IOException;

最后调用的accept0十个native方法,就是调用的操作系统级别的accept。因此如果操作系统没有发现有套接字从指定的端口X来,那么操作系统就会等待。这样serverSocket.accept()方法就会一直等待。这就是为什么accept()方法为什么会阻塞: 它内部的实现是使用的操作系统级别的同步IO

写文案、发平台内容、准备作业或提交表单时,很多人都会遇到“字数不确定”的问题:担心超出限制,或者内容太短不达标。为了解决这个高频小需求,我用 Vue 3(Nuxt 3) 做了一个文本字符数统计在线工具,打开网页就能直接用。

在线工具网址:https://see-tool.com/text-character-count
工具截图:

这个工具适合普通用户的日常场景:

  • 写公众号、小红书、知乎等平台内容,先看字数是否在要求范围内
  • 准备简历、自我介绍、申请说明时,控制内容长度
  • 学生写作文、读后感、课程作业时快速核对字数
  • 运营同学编辑活动文案、商品描述时避免超限

使用方法很简单:

  1. 把需要统计的文本粘贴到输入框。
  2. 页面会实时显示总字符数、中文字符数、英文字符数、数字和空格数量。
  3. 根据目标平台限制,继续增删内容直到合适。
  4. 完成后一键复制,直接去发布或提交。

我在设计这个工具时,重点做了“即时反馈”和“零学习成本”:你不需要安装软件,也不用登录账号;手机和电脑都能使用。文本统计过程在浏览器本地完成,不需要把内容上传到服务器,隐私更安心。

如果你经常写内容、填表单或做文字整理,这个小工具可以帮你省下反复试错的时间,让字数控制更准确、更轻松。