在去中心化社交、数字身份与全球连接变得越来越重要的时代,很多人开始思考一个基本问题:怎样在保护隐私的前提下,实现更稳定、更自由的网络体验?

今天想跟大家聊聊一个与隐私、安全和灵活访问密切相关的工具 —— Proxy-Man https://proxy-man.com/ ,它不是中心化平台,但可以作为去中心化体验路上的有力补充。]( https://proxy-man.com/ ),它不是中心化平台,但可以作为去中心化体验路上的有力补充。)

🔎 为什么 Proxy-Man ?

在去中心化生态下,用户更关心个人数据的掌控权,而不希望平台通过手机号、IP 地址等个人信息建立长期跟踪机制。

📌 隐私优先
传统网络访问往往直接暴露设备真实 IP 和地理信息,给一些去中心化/安全敏感型用户带来风险。而 Proxy-Man 提供的各种代理节点,可以作为你连接网络时的一层“隐形外壳”,强化匿名性、保护访问隐私。

📌 灵活多节点策略
去中心化应用常分布在世界多个地区。无论你想从欧洲节点还是亚洲节点访问,都可以通过 Proxy-Man 选择不同的出口节点,帮助实现更稳定、快速的链路体验。

📌 与多身份管理自然兼容
在探索去中心化账户时,有时会遇到多账户并存、重复注册、地域验证等问题。Proxy-Man 让用户能够在不同网络环境下高效管理多身份,而不会因频繁 IP 跳变带来混乱体验。

💡 Proxy-Man 最适合的几类使用场景

🔹 全球连接与跨区域访问
当访问去中心化社交平台或 DApp 时,受限于不同地区政策或网络策略时,一个稳定的代理节点就能极大提高访问体验。

🔹 测试多身份网络行为
作为社区成员,你可能希望测试不同身份在不同网络环境下的交互行为。Proxy-Man 节点的动态切换可以让这种测试更真实、更可控。

🔹 增强隐私保护
一些应用在默认设置下会泄露 IP 地址或位置信息。Proxy-Man 的代理架构就是为了弱化这种信息泄露,在保障访问顺畅的同时增强隐私保护。

🛠 Proxy-Man 的核心卖点

📌 多协议支持
Proxy-Man 不仅支持常见 HTTP/HTTPS 代理,还覆盖 SOCKS5 等协议,这意味着无论是网页浏览、数据抓取还是程序内部调用,你都可以保持一致且灵活的访问策略。

📌 全球节点资源
Proxy-Man 的节点分布覆盖多个地区,无论你希望体验不同国家的网络环境,又或希望请求在本地与国外环境间自如切换,都能够快速进行配置。

📌 操作简洁、可扩展性强
Proxy-Man 并不要求你有复杂的技术背景,只需几步配置即可开始使用。对于需要自动化、批量访问或调试脚本的用户,它也能轻松集成。

📌 可与身份隐私策略结合
在 Wadesk 或其他去中心化应用中经常需要处理私人信息,Proxy-Man 有助于为手机号注册、节点访问等场景构建更隐私安全的配套体系。

📊 实际体验效果分享(来自社区实操反馈)

很多用户在使用 Proxy-Man 时给出了以下反馈:

🔸 在跨区域内容或协议访问测试中,节点稳定性显著提升
🔸 多身份场景下访问体验更流畅、账户分离更清晰
🔸 对于隐私保护配置而言,比单纯依赖本机网络更加可靠

Proxy-Man 不是单纯的“代理工具”,它是一种补充现有网络策略的策略性工具,特别适合关注隐私、去中心化体验优化、多身份管理的用户使用。

在这个数字身份日益重要的时代,希望每个人都能更自由、安全地掌控自己的网络行为,而不被信息追踪或地域限制所束缚。

只记得申请 www 证书还是@(空)证书会默认带两个地址,www 和@(空)。今天配置 SSL 的时候才知道通配符(*.xxx.com)不能用在@(即:xxx.com)上,只能作用于.xxx.com前面必须有主机名,不能为空,真是当了一次小丑。🃏

pro 订阅,这个月 auto 用掉 1.9 亿 tokens US$72.30 。pro 订阅不是每个月只有$20 吗,是因为我是年付$192 的关系,所以扣的是整年的金额吗

ClawdBot 是一个开源的自托管个人 AI 助手项目,由开发者 Peter Steinberger 创建。它允许你在自己的设备(如 Mac、Windows、Linux 电脑或服务器)上运行 AI 助理,通过日常聊天工具(如 Telegram、WhatsApp、Discord、Slack、iMessage 等)与之互动。

主要功能
执行实际任务:浏览网页、运行代码、自动化日常操作、日历管理、处理邮件、航班值机等。
自我扩展:如果缺少某个功能,它可以自己编写代码(称为“Skill”)并安装到自身,实现“边用边进化”。
隐私优先:完全本地运行,不依赖大公司云服务(只需 API 密钥调用如 Claude 等模型),数据留在自己设备上。
安装简单:通过 npm 安装,配置后在聊天 app 中直接命令它做事。
安装步骤
以 macOS/Linux 为例,在终端运行

复制
curl -fsSL https://clawd.bot/install.sh | bash

自动检查环境,并且安装最新版本

image

安装结束后,开始初始化配置,用方向键选择,空格键确认

image

选择「Yes」,同意风险提醒

Onboard 模式选择「QuickStart」
Model provider 根据个人情况选择,这里我选择的是「Anthropic」,认证模式有三种,我选择的「paste setup-token」,模型默认「opus-4-5」

image

渠道选择「Telegram」,其他也有,按需配置

image

在 Telegram 中发起 @BotFather 对话,新建 /newbot,获得 token,复制粘贴回配置中

image

Skills 配置,不熟悉可以跳过,选择「Skip for now」

image

一系列 API 配置,若有的话可以配置上,没有就都跳过

image

Hooks 配置,也可以「Skip for now」

image

启动 Gateway,基本就大功告成啦 🎉,可以网页访问面板进行对话

image

试试在 Telegram 中开始对话
1.首先,在 TG 中与个人 bot 对话,获得 Pairing code
2.然后,复制粘贴到终端中,并运行

image

3.现在,你可以在 TG 中跟你的未来工作伙伴交流啦 🎉

image

以上就是 ClawdBot 的安装教程

前言

准备搭建一个公司自用的 iot 平台,要求实现设备监听和 rag 知识库,但是公司现有的开发人员包括我在内只有 3 人,都是 Java 开发,前端是兼职的,3 个人的开发水平不一,另外两位没有接触过响应式编程以及 spring ai 和 langchian4j
看了下开源的 iot 平台,感觉 jetlinks 不错,但是都是用的响应式编程,可能会有一定的学习难度,企业版的功能基本符合客户预期,就看公司舍不舍得出钱了

考虑

webflux 确实感觉有点反人类,还要配合 r2dbc 使用才行,可能就算是用 jetlinks 到时候估计也会有一大堆问题,看能不能先直接上 jdk25 的虚拟线程,还是用传统开发模式,对于设备实时监听和 rag 的时候用 websocket 和 sse

摘要:本文整理自阿里采集分析平台工程技术负责人 吴宝国 老师,在 Flink Forward Asia 2025 城市巡回深圳站中的分享。

Tips:关注「公众号」回复 FFA 2025 查看会后资料~

大家好,我是来自阿里集团平台技术部数据技术与产品部的吴宝国。今天非常荣幸能在这里跟大家分享我们在阿里内部大规模落地 Fluss 的一些实践经验。

首先简单介绍一下我们团队。我们团队主要负责集团内部统一的用户行为采集与分析平台,也就是大家常说的 A+ 平台。我们的核心职责是为手淘、钉钉、高德、饿了么等众多集团内应用提供端到端的用户行为数据采集、处理、分析及服务能力。

1.png

在底层,我们构建了覆盖 Web、小程序、APP(包括 Android、iOS、PC、IOT、鸿蒙、VR 等)以及服务端的全场景采集 SDK 矩阵。在此之上,我们不仅采集用户的行为日志(比如点击、曝光、滑动等),还会融合业务数据(如用户标签、商品信息、订单数据等),构建服务于整个集团的流量域数据公共层。最终,我们通过分析产品帮助业务团队洞察用户行为,驱动运营和产品决策,例如提升广告效果、优化用户体验等。

为了支撑这一庞大体系的实时性需求,我们引入了开源流存储系统 Fluss 作为核心的日志数据实时采集通道。接下来,我将从为什么选择 Fluss、如何保障大规模落地稳定性、具体业务实践案例以及未来规划四个方面展开分享。

一、为什么选择 Fluss?——解决两大核心痛点

在引入 Fluss 之前,我们的实时数据架构长期面临两个根本性挑战。

(1)成本高昂:行式消息队列导致资源浪费严重

2.png

我们过去主要依赖阿里内部的行式消息队列 TT(TimeTunnel)。以手淘的实时流量公共层为例,这张表包含了首页、闪购、搜索等多个业务的数据。每个下游业务(比如推荐系统)都需要一个独立的 Flink 作业来消费这张全量表,然后在作业内进行过滤,只保留自己关心的部分。

这种模式带来了三重成本问题:

  • 存储与流量成本倍增:计费通常基于读写流量。即使每个业务只关心 1% 的数据,也需要为 100% 的全量数据付费。如果有 N 个业务,就要支付 N 倍的费用。
  • Flink CU 资源浪费:Flink 作业需要消耗大量计算单元(CU)来读取、反序列化并丢弃无用的数据。很多时候,作业空跑不做任何逻辑处理,但依然产生高昂开销。
  • 字段冗余读取:一张表可能包含数百个字段,但单个业务往往只需要其中几个。行式存储迫使消费者读取整行数据,造成巨大的 IO 和网络带宽浪费。

Fluss 通过其三大核心能力完美解决了上述问题:

  • 多级分区(Multi-level Partitioning):支持按业务、按场景等维度对数据进行精细划分。
  • 过滤下推(Filter Pushdown):消费者可以在订阅时声明过滤条件,数据在源头即可被精确过滤,避免全量拉取。
  • 列式存储(Columnar Storage):允许消费者只读取所需的字段,极大降低数据消费量和 Flink CU 消耗。

(2)湖流割裂:Lambda 架构的运维与一致性困境

3.png

业界经典的 Lambda 架构虽然能同时提供实时和离线视图,但维护两套独立的批处理和流处理链路,带来了开发、运维成本高企以及数据统计口径不一致等问题。

随着数据湖技术(如 Paimon、Hudi)的发展,湖仓一体架构成为主流,但它通常只能提供分钟级的数据新鲜度。对于搜索、推荐等要求秒级延迟的核心场景,我们仍需引入 Kafka 这类流式中间件,这实际上又回到了 Lambda 架构的老路,导致“湖”与“流”的割裂。

4.png

Fluss 的出现为我们提供了一个统一的解决方案:它既能作为高性能的流存储提供秒级数据新鲜度,又能通过其内置的分层存储(Tiering)能力无缝对接数据湖(如阿里内部的 Alake),真正实现了“湖流一体”,消除了双架构的痛点。

二、首次双11落地情况:大规模生产验证

2025 年的双 11 是 Fluss 在阿里集团的首次大促实战。目前,Fluss 已稳定服务于淘天(含通天塔、阿里妈妈等)、集团数据公共层、饿了么、淘宝闪购、高德、阿里影业等多个核心业务,核心场景主要集中在搜索、推荐、流量等。

5.png

在本次双十一期间,Fluss 展现了强大的承载能力:

  • 数据量:4 PB/天
  • TPS峰值:1 亿
  • BPS峰值:100 GiB/s

这些数据充分证明了 Fluss 在大规模、高并发场景下的稳定性和可靠性。

三、集群部署架构

阿里集团内部的业务特点与云上有所不同,因此我们的部署架构也进行了针对性设计。

我们采用了“大集群 + 区域化部署”的模式。不同地域(如张北、上海)拥有独立的 Fluss 集群,而同一地域内的不同业务(如高德、钉钉、淘天)则通过数据库(DB)级别进行逻辑隔离。数据持久化在阿里自研的分布式文件系统 盘古 上,并通过 Tiering Service 同步至内部数据湖 Alake

6.png

此架构的优势在于:

  • 资源复用:多个业务共享一个大集群,提高资源利用率。
  • 版本收敛:集群数量少,便于统一升级和管理。
  • 运维集约:减少运维复杂度。

但也带来挑战:

  • 运维压力:单一集群机器数量庞大,运维难度增加。
  • 资源隔离:需要额外机制保障不同业务间的资源隔离。

为此,我们开发了独立的 Fluss Manager 来管理账号权限和集群配置,并在 VVP(Fluss 专有空间)中独立部署 Tiering Service(Flink Job),确保其稳定运行。

为了保障如此大规模集群的稳定运行,我们在多个方面进行了深度建设。

(1) 机架感知(Rack Awareness)

为防止物理机或机架故障导致数据丢失,我们实现了严格的副本放置策略。

7.png

  • 机架感知前:三个副本可能分配在同一台物理机上的三个 Pod 上。一旦该物理机故障,将导致三副本数据丢失!
  • 机架感知后:三副本规避策略,不允许分配在同机房-同机架-同物理机上。即使一台物理机故障,仍有两副本工作,保障数据安全。

(2) 监控告警体系

8.png

我们建立了覆盖全栈的立体化监控告警体系:

  • 基础设施监控:包括物理机性能(磁盘容量、读写IO、网络流量、CPU、内存)和 Pod 性能。
  • 服务端监控:监控 CoordinatorServer、Tablet Server 等核心组件的 Metrics 和日志。
  • 远程存储监控:监控 Remote Storage (OSS/Pangu/HDFS) 的 QPS、读写延迟、带宽和容量。
  • 数据湖监控:监控 Alake 的水位、读写情况,防止因数据灌入过载而影响湖仓。
  • 告警服务:基于 Prometheus + SLS 的监控系统,实现及时告警。

四、稳定性建设

(1) 集群扩缩容(Rebalance Feature)

9.png

随着业务增长,集群需要动态扩容。我们实现了 Rebalance 功能:

  1. AdminClient 发起 RebalanceRequest
  2. CoordinatorServer 收到请求后,GoalOptimizer 生成 RebalancePlan
  3. RebalanceExecutor 执行计划,通知 Tablet Server 迁移 Bucket Leader 和 ISR。
  4. 新节点加入后,负载均衡,完成扩容。

(2) 表扩缩容(Bucket Rescale)

10.png

当单表流量增大时,可通过 ALTER TABLE 增加 Bucket 数量。

  1. Client 发起 ALTER TABLE 命令。
  2. Coordinator 计算新增 Bucket 的分布,并更新 Zookeeper 中的 TableAssignment
  3. Coordinator 通知所有 Tablet Server 创建新的 Bucket Replica。
  4. Tablet Server 创建 Replica 并开始接收数据。

注意:客户端需重启以感知新分区,期间消费任务可能有短暂波动。

(3) 无感升级(Controlled Shutdown)

11.png

为保障升级过程对在线作业无明显影响,我们实现了无感升级:

  1. 待下线 Tablet Server 发送 controlledShutdownRequest 给 Coordinator。
  2. Coordinator 执行 

    • 步骤1:重选 Leader(新 Leader 上线)。
    • 步骤2:下线 Follower。
    • 步骤3:关闭其他资源。
  3. 整个过程保证读写延迟波动小于 1 分钟,Leader 持续在线。
  • K8s 侧支持:支持灰度升级、滚动升级和原地升级(kill pod 并秒级拉起),提升升级效率。

(4) Coordinator HA

12.png

Coordinator 是集群的“大脑”。我们为其构建了高可用架构:

  • 主备选举:通过 Zookeeper 实现主备选举。
  • 状态同步:副节点持续监听 ZK 节点变化,保持 CoordinatorContext 一致。
  • 故障恢复:主节点宕机后,副节点自动选举为新主节点,并从 ZK 恢复上下文信息,确保元数据连续性。

(5) 压缩率与网络传输优化

13.png

为应对大规模集群的网络带宽瓶颈,我们集成了 ZSTD 列压缩算法。

  • 实测效果:在淘系数据上,开启 ZSTD 后,存储空间下降 6 倍(8.88TB → 1.52TB)。
  • 性能影响:写吞吐略有提升(3.33M/s → 3.51M/s),读吞吐基本持平(3.06M/s → 3.25M/s),CPU/内存开销可控。

(6) 上线前故障演练计划

14.png

上线前,我们执行了详尽的故障演练计划,模拟极端场景:

  • CoordinatorServer:随机宕机、反复切换 leader、大量建表和分区。
  • TableServer:随机宕机、Remote 存储堆积、Bucket 的 Replica 宕机。
  • Client:读写流量压测、一致性测试、冷数据追数据延迟测试。
  • 其他:网络拥塞、磁盘挂掉、Zookeeper 故障等。

通过这些演练,全面验证了系统的健壮性、容错能力和数据一致性。

五、湖流一体:统一架构的演进

15.png

在湖流一体这块,我们会直接从 Fluss Manager 发起“湖流一体表”的创建操作。创建完成后,会使用 Fluss 的生产账号(而不是业务自己的账号),在 Paimon 中为业务直接创建一张对应的 Paimon 表。

这张 Paimon 表与 Fluss 中的表在命名上完全一致,包括 Namespace 和 DB 名称都保持统一。这样一来,业务在 Paimon 侧可以给这张表打上“湖流一体表”的标记,在 Fluss 侧也能看到它是“湖流一体表”,对业务来说是一张“看起来统一”的表,但在底层实际上是两张独立的物理表。

数据同步方面,我们通过 Tailing Service 集群配合内部 Flink 集群,由生产账号将 Fluss 中的数据以分钟级或秒级的粒度同步到 Paimon。与此同时,在 Tailing Service 上做了一系列 Native 级别的优化,使得整体性能相较于通用的 Flink 接入方式(Flink Native)会更好一些。

六、业务实践案例与核心收益

Fluss 的落地为多个业务场景带来了显著收益,下面我将逐一介绍。

(1)淘宝数据平台:实时数仓重构

截屏2026-01-20 15.30.18.png

  • 原架构:依赖行式消息队列(TT)和离线数仓(MaxCompute/ODPS),数据新鲜度在小时级。
  • 新架构:采用 Fluss + Paimon 湖仓架构,数据新鲜度提升至秒级。
  • 收益

    • 替代行式消息队列,整体成本降低 40% 以上
    • 基于 Fluss 的列更新特性,离线/实时数据回刷时只需更新变更字段,回刷成本大幅降低
    • 简化了数据链路,下游 OLAP 引擎(如 StarRocks)可直接查询 Paimon 表。

(2)淘宝闪购:实时监控与加工

截屏2026-01-20 15.30.28.png

将流量实时 DWD 公共层写入 Fluss,并通过 Tiering Service 持久化到 Paimon。此架构既保障了秒级时效性,又支持高效的 OLAP 分析,真正实现了实时监控,产出效率远超旧版基于物化视图定时调度的方案。

(3)通天塔(AB实验平台):降本增效

截屏2026-01-20 15.30.35.png

  • 痛点:行式存储导致整行消费,资源消耗高(曝光表 44 个字段,平台仅需 13 个);数据探查困难;大 State 作业运维复杂、不稳定。
  • 方案:利用 Fluss 的列裁剪能力,结合 Paimon 存储和 StarRocks 查询。
  • 收益:读 Fluss 的 Flink 作业 CPU 占用减少 59%,内存占用减少 73%,IO 减少 20%。同时,通过 KV 表的 Merge 引擎和 Delta Join 技术,解耦了作业与状态,提升了灵活性。

(4)A+ 采集分析平台:全链路优化

截屏2026-01-20 15.30.42.png

在流量公共层应用 Fluss 的多级分区能力,显著降低了下游消费的数据量,使得下游 Flink CU 消耗降低约 35%,全链路成本降低约 70%

七、未来规划

展望未来,我们将从以下方向持续投入:

截屏2026-01-20 15.31.01.png

  1. 扩大服务规模:将 Fluss 服务推广至更多集团业务,巩固其作为统一实时数据通道的地位。
  2. 全面推进湖流一体:深化 Fluss 与 Paimon/Alake 的集成,打造更成熟、易用的湖流一体解决方案。
  3. 追求更高性能:持续优化 Fluss 内核,在吞吐、延迟、资源利用率等方面达到业界领先水平。
  4. 探索新场景:构建业界领先的 Agent 采集与评测一体化平台,为 AI Agent 在代码、电商、数据等场景的效果评估与优化提供数据基石。

🔥 阿里云流存储 Fluss 于 2026 年 1 月 13 日 正式开启免费公测

基于 Apache Fluss 打造的高性能列式流存储系统,具备毫秒级读写响应、实时数据更新及部分字段更新能力,可替换 Kafka 构建 面向分析的流式存储,结合 DLF(Paimon)等数据湖产品构建 湖流一体架构

🎁 公测活动: 公测期间单用户可 免费使用2个集群,单个集群上限80 Core,如果您在使用过程中向我们提出改进建议或评测报告,我们将依据反馈内容的深度与质量,向优质测评者 赠送定制Fluss周边礼品

流存储Fluss版公测说明:https://help.aliyun.com/zh/flink/realtime-fluss/product-overv...

复制链接或扫描下方二维码:https://survey.aliyun.com/apps/zhiliao/G-2wQFAuV

image

image


更多内容


活动推荐

复制下方链接或者扫描左边二维码

即可免费试用阿里云 Serverless Flink,体验新一代实时计算平台的强大能力!

了解试用详情:https://free.aliyun.com/?productCode=sc

接到村干部的电话,说是我出过国,省公安厅下来的文件,为了反诈骗,避免身份证被人用来出国的,要我在附近在当地派出所里手持身份证和当日报纸拍照,然后发给他
感觉像是什么诈骗?
我爸确认是村干部,我明确拒绝后,说乡干部打电话过来,说如果不配的以后如果需要他们乡干部出证明办事情,他们就不给盖章
这种在特定地点手持身份证拍照的做法,看起来就很可疑。
我的疑问是,这是什么新型诈骗么?需要配合么?如果要配合,需要注意哪些事情?

在实际的文档处理场景中,PDF 页面方向不正确是一个非常常见的问题,例如扫描文件方向颠倒、合并文档后页面方向混乱等。借助 Python,我们可以通过代码实现对 PDF 页面旋转角度的精确控制,并支持读取当前旋转状态和批量操作。

本文使用的方法需要用到 Free Spire.PDF for Python,可通过 pip 安装:pip install spire.pdf

本文将介绍:

  • 如何旋转 PDF 的指定页面
  • 如何读取页面当前的旋转角度
  • 如何在保持原有方向的基础上进行增量旋转
  • 如何批量旋转 PDF 中的所有页面

一、PDF 页面旋转的基本原理

在 Spire.PDF 中,每个页面都对应一个 PdfPageBase 对象,其 Rotation 属性用于描述页面的旋转状态。
该属性的类型为 PdfPageRotateAngle 枚举,内部以整数值表示当前旋转方向:

Rotation.value实际角度
00°(无旋转)
190°
2180°
3270°

需要注意的是:

  • PDF 页面旋转角度不会达到 360° 或以上
  • Rotation.value 可安全转换为 int 用于逻辑判断
  • 页面旋转是状态覆盖,而不是累加,需要自行计算新角度

二、旋转指定页面(基础示例)

下面的示例演示了如何旋转 PDF 中的某一页,并对参数进行合理校验:

from spire.pdf.common import *
from spire.pdf import *


def rotate_pdf_page(input_pdf_path, output_pdf_path, page_index, rotation_angle):
    """
    旋转PDF文档中指定页面。

    Args:
        input_pdf_path (str): 输入PDF路径
        output_pdf_path (str): 输出PDF路径
        page_index (int): 页面索引(从0开始)
        rotation_angle (int): 旋转角度(90 / 180 / 270)
    """
    document = PdfDocument()
    try:
        document.LoadFromFile(input_pdf_path)

        if page_index < 0 or page_index >= document.Pages.Count:
            raise IndexError("页面索引超出范围")

        page = document.Pages[page_index]

        if rotation_angle == 90:
            page.Rotation = PdfPageRotateAngle.RotateAngle90
        elif rotation_angle == 180:
            page.Rotation = PdfPageRotateAngle.RotateAngle180
        elif rotation_angle == 270:
            page.Rotation = PdfPageRotateAngle.RotateAngle270
        else:
            raise ValueError("仅支持 90、180、270 度旋转")

        document.SaveToFile(output_pdf_path)

    finally:
        document.Close()

该方法适用于明确知道目标角度的场景,例如“统一将第 1 页旋转为 90°”。

以下是旋转效果预览:

旋转效果预览


三、获取 PDF 页面当前的旋转角度

在实际应用中,我们往往需要先判断页面当前方向,再决定是否旋转或如何旋转。

page = document.Pages[0]
current_rotation = page.Rotation.value

print(f"当前页面旋转状态:{current_rotation}")

current_rotation 的返回值为 0~3 的整数,对应关系如下:

rotation_map = {
    0: 0,
    1: 90,
    2: 180,
    3: 270
}

print(f"当前角度为 {rotation_map[current_rotation]}°")

这种方式非常适合用于:

  • 判断扫描 PDF 是否方向正确
  • 根据现有方向进行“补偿旋转”
  • 过滤无需处理的页面

四、在原有角度基础上进行增量旋转

如果直接设置 page.Rotation,原有旋转状态会被覆盖。
若希望在当前角度基础上再旋转 90°,可以采用如下方式:

current_value = page.Rotation.Value
new_value = (current_value + 1) % 4

rotation_enum_map = {
    0: PdfPageRotateAngle.RotateAngle0,
    1: PdfPageRotateAngle.RotateAngle90,
    2: PdfPageRotateAngle.RotateAngle180,
    3: PdfPageRotateAngle.RotateAngle270,
}

page.Rotation = rotation_enum_map[new_value]

这种写法的优势在于:

  • 不依赖具体角度数值
  • 自动处理 270° → 0° 的回绕逻辑
  • 适合“顺时针旋转一圈”的业务需求

五、批量旋转 PDF 中的所有页面

当需要对整份文档进行统一处理时,可以直接遍历 Pages 集合:

def rotate_all_pages(input_pdf_path, output_pdf_path, rotation_angle):
    document = PdfDocument()
    try:
        document.LoadFromFile(input_pdf_path)

        for i in range(document.Pages.Count):
            page = document.Pages[i]
            if rotation_angle == 90:
                page.Rotation = PdfPageRotateAngle.RotateAngle90
            elif rotation_angle == 180:
                page.Rotation = PdfPageRotateAngle.RotateAngle180
            elif rotation_angle == 270:
                page.Rotation = PdfPageRotateAngle.RotateAngle270

        document.SaveToFile(output_pdf_path)
    finally:
        document.Close()

如果需要只旋转方向不正确的页面,可以结合 Rotation.Value 进行条件判断,从而避免不必要的修改。


六、常见注意事项与实践建议

  1. 页面索引从 0 开始
    第 1 页的索引为 0,这一点在批量处理时尤其容易忽略。
  2. Rotation 是页面属性,不影响内容坐标
    旋转的是页面显示方向,而非重新排版内容。
  3. 不要假设 PDF 初始角度一定为 0
    很多扫描 PDF 天生就带有旋转信息。
  4. 批量操作建议一次性保存
    避免在循环中频繁调用 SaveToFile,提升性能。

结语

通过 Spire.PDF for Python,PDF 页面旋转已经不再是复杂操作。
无论是简单的单页方向修正,还是基于当前角度的智能批量处理,都可以通过 page.RotationRotation.Value 实现精细控制。

在自动化文档处理、扫描文件修正、企业级 PDF 流程中,这类能力往往是不可或缺的基础组件。

在网上看到一个视频,通过火绒自带的流量监控工具禁止三角洲的上传流量,实现灵魂出窍的效果。

灵魂出窍是指本机可以自由移动角色位置,看到对面的实时信息,但在服务器端并没有移动、

如果你拥有一个纯净的 Ubuntu 22.04 环境,想要一次性配置好“AI 全家桶”开发环境,最稳妥、最标准的方法是遵循 NVIDIA 网络仓库安装流程

这套流程不仅会安装编译器(nvcc),还会安装驱动(Driver)、数学库(cuBLAS/cuDNN)以及开发工具,确保你后续安装 flash-attnvLLMDeepSpeed 时一马平川。

第一步:基础环境准备

首先确保系统有基础的下载和编译工具:

sudo apt update
sudo apt install -y build-essential charts-common wget curl git

第二步:配置 NVIDIA 官方仓库 (最关键)

通过官方提供的 cuda-keyring,让 apt 能够获取到所有 AI 相关的专用包。

# 1. 下载官方密钥配置包
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.1-1_all.deb

# 2. 安装密钥配置包
sudo dpkg -i cuda-keyring_1.1-1_all.deb

# 3. 更新仓库索引
sudo apt update

第三步:一键安装 CUDA + 驱动 + cuDNN

在纯净环境下,你可以直接安装 cuda 完整包,它会自动帮你匹配并安装最合适的显卡驱动。

# 安装 CUDA 完整版(包含驱动、Toolkit、示例、NVCC 等)
sudo apt -y install cuda

# 安装深度学习必备的 cuDNN 库
sudo apt -y install libcudnn9-cuda-12

注:由于我们正处在 2026 年,如果系统提示找不到 libcudnn9,可以尝试 sudo apt install libcudnn-cuda-12 来获取最新的兼容版本。


第四步:永久配置环境变量

安装在 /usr/local/cuda 的工具如果不加进 PATH,系统是识别不到 nvcc 的。

# 将配置写入当前用户的 .zshrc (如果是 bash 则改为 .bashrc)
echo 'export CUDA_HOME=/usr/local/cuda' >> ~/.zshrc
echo 'export PATH=$CUDA_HOME/bin:$PATH' >> ~/.zshrc
echo 'export LD_LIBRARY_PATH=$CUDA_HOME/lib64:$LD_LIBRARY_PATH' >> ~/.zshrc

# 立即生效
source ~/.zshrc

第五步:验证安装

运行以下两条命令,如果都能看到信息,说明你的 AI 塔基已经打好了:

  1. nvidia-smi:检查显卡驱动和硬件状态。
  2. nvcc --version:检查 CUDA 编译器是否就绪。

进阶:针对 AI 开发的额外补充

为了让你以后跑模型更顺滑,建议顺手装上这几个库:

  1. NCCL(多显卡通信库,分布式训练必装):

    sudo apt install libnccl2 libnccl-dev
    
  2. NVML(监控库):通常已随驱动安装。

总结你的“一键式”清单:

  1. dpkg -i cuda-keyring... (换源)
  2. apt install cuda (装驱动+工具链)
  3. apt install libcudnn... (装深度学习加速库)
  4. export PATH... (设环境变量)

当你完成这些后,再去你的虚拟环境中安装 flash-attn,它就会自动找到 nvcc 并开始愉快的编译了。需要我帮你写一个自动执行这些步骤的 .sh 脚本吗?

2026 年 1 月底,英伟达 CEO 黄仁勋再次来华,刻意亲民的“菜市场外交”插曲不仅又一次引发热议,也让很多人回想起老黄在 2025 年 1 月,宁愿缺席美国总统特朗普就职典礼,也要来中国参加分公司年会、维护客户的有趣往事。

作为市值逾 4.5 万亿美元的 AI 巨头掌门人,老黄为何如此重视中国?

这种重视的根源,在于中国 AI 产业与英伟达 GPU 及 CUDA 生态之间的双向深度依赖。一方面,中国主流 AI 模型的训练仍高度依赖英伟达芯片,且需在 CUDA 生态中加速迭代,以此追赶美国闭源模型的实力;另一方面,中国庞大的 AI 市场、优质的 AI 人才,以及台积电、富士康等核心供应链企业,共同撑起了英伟达的庞大估值与商业霸权。

智能的繁荣与底层的“枯竭”

中国 AI 的表层繁荣有目共睹:大模型发布数量占全球 40% 以上,稳居世界第一;Qwen 登顶 Hugging Face 全球下载榜,累计下载超 10 亿次;“豆包”日均活跃用户数(DAU)破亿,2025 年国产 AI 应用总下载量达 25.7 亿。这一切营造出一种错觉:中国人工智能的道路已是一片坦途。

然而,剥开这层光鲜外衣,国产 AI 的根基却异常脆弱。尽管本土芯片厂商在硬件设计与制造上奋力追赶,软件生态的缺失却成为难以逾越的鸿沟。高昂的迁移成本、对 CUDA 的路径依赖,使得国产模型即便想用“国产芯”,也常因缺乏高效、兼容的算子支持而寸步难行。

更严峻的是,这种依赖本质上是算力主权的交锋:国际芯片巨头每一分估值增长的背后,都可能是国内算力产业的被动与掣肘。

要打破这一困局,关键不在造更多芯片,而在打通“算法—算子—硬件”之间的最后一公里,尽可能多得释放国产芯片的理论峰值性能,建设自己的国产芯片生态。

其中最核心的一环,正是高性能算子的开发。

KernelCAT:计算加速专家级别的 Agent

算子(Kernel),是连接 AI 算法与计算芯片的“翻译官”:它将算法转化为硬件可执行的指令,决定了 AI 模型的推理速度、能耗与兼容性。

算子开发可以被理解为内核级别的编程工作,目前行业仍停留在“手工作坊”时代——开发过程极度依赖顶尖工程师的经验与反复试错,周期动辄数月,性能调优如同在迷雾中摸索。若把开发大模型应用比作“在精装修的样板间里摆放家具”,那么编写底层算子的难度,无异于“在深海中戴着沉重的手铐,徒手组装一块精密机械表”。

如果,让 AI 来开发算子呢?传统大模型或知识增强型 Agent 在此类任务面前往往力不从心:它们擅长模式匹配,却难以理解复杂计算任务中的物理约束、内存布局与并行调度逻辑。唯有超越经验式推理,深入建模问题本质,才能实现真正的“智能级”优化。

正是在这一“地狱级”技术挑战下,KernelCAT 应运而生。

KernelCAT 是一款本地运行的 AI Agent,它不仅是深耕算子开发和模型迁移的“计算加速专家”,也能够胜任日常通用的全栈开发任务,KernelCAT 提供了 CLI 终端命令行版与简洁桌面版两种形态供开发者使用。不同于仅聚焦特定任务的工具型 Agent,KernelCAT 具备扎实的通用编程能力——不仅能理解、生成和优化内核级别代码,也能处理常规软件工程任务,如环境配置、依赖管理、错误诊断与脚本编写,从而在复杂场景中实现端到端自主闭环。

为国产芯片生态写高性能算子

在算子开发中,有一类问题很像“调参”——面对几十上百种参数或策略组合,工程师需要找出让算子跑得最快的那一组配置。传统做法靠经验试错,费时费力,还容易踩坑。KernelCAT 引入了运筹优化的思路:把“找最优参数”这件事交给算法,让算法去探索调优空间并收敛到最佳方案。

以昇腾芯片上的 FlashAttentionScore 算子为例,KernelCAT 在昇腾官方示例代码上,可以自动对该算子的分块参数调优问题进行运筹学建模,并使用数学优化算法求解,在十几轮迭代后就锁定了最优配置,在多种输入尺寸下延迟降低最高可达 22%,吞吐量提升最高近 30%,而且而整个过程无需人工干预。

这正是 KernelCAT 的独特之处:它不仅具备大模型的智能,能够理解代码、生成方案;还拥有运筹优化算法的严谨,能够系统搜索并收敛到最优解。智能与算法的结合,让算子调优既灵活,又有交付保障。

在对 KernelCAT 的另一场测试中,团队选取了 7 个不同规模的向量加法任务,测试目标明确:在华为昇腾平台上,直接对比华为开源算子、“黑盒”封装的商业化算子与 KernelCAT 自研算子实现的执行效率。

结果同样令人振奋,在这个案例的 7 个测试规模中,KernelCAT 给出的算子版本性能均取得领先优势,且任务完成仅仅用时 10 分钟。这意味着,即便面对经过商业级调优的闭源实现,KernelCAT 所采用的优化方式仍具备竞争力。

这不仅是数值层面的胜利,更是国产 AI Agent 在算子领域的一次自证。

没有坚不可破的生态,包括 CUDA

全球范围内,目前超过 90% 的重要 AI 训练任务运行于英伟达 GPU 之上,推理占比亦达 80% 以上;其开发者生态覆盖超 590 万用户,算子库规模逾 400 个,深度嵌入 90% 顶级 AI 学术论文的实现流程。黄仁勋曾言:“我们创立英伟达,是为了加速软件,芯片设计反而是次要的。”这句话揭示了一个关键真相:在现代计算体系中,软件才是真正的护城河。英伟达的持续领先,源于其从底层算法出发、贯通架构与编程模型的全栈掌控能力。参考 AMD 的历史经验,即使在架构与制程上具备充足的竞争力,缺乏成熟的生态系统也仍然难以撼动英伟达的地位。

在这场中美 AI 的角力中,上一次有中国企业对英伟达这只 AI 巨兽形成冲击,并不是因为推出新款芯片,而是算法与算子带来的效率提升。2025 年 1 月 27 日,英伟达股价暴跌近 17%,单日市值蒸发高达 5888 亿美元,创下美股史上单日市值蒸发新纪录,其主要原因是 Deepseek 通过高性能算子(尤其是 DeepGEMM)这一关键技术,以 1/20 的训练成本实现了 OpenAI O1 级的性能,这成功地证明了大模型性能≠堆砌芯片性能和数量,而是取决于算法创新 + 算子优化 + 硬件适配的协同。

如果国产芯片厂商也能拥有足够丰富的高性能算子库和生态开发者,突破英伟达 CUDA 现有生态的桎梏,让更多的国产模型“回家”,那么对其商业帝国将产生难以估量的冲击,甚至有可能成为中美科技博弈的关键胜负手。

KernelCAT 团队在让国产模型“迁移回家”的场景下做了大量尝试:

以 DeepSeek-OCR-2 模型在华为昇腾 910B2 NPU 上的部署为例,让我们看看 KernelCAT 是如何重塑工作范式的:

  1. 对抗“版本地狱”:KernelCAT 对任务目标和限制条件有着深度理解,基于 DeepSeek-OCR-2 官方的 CUDA 实现,通过精准的依赖识别和补丁注入,解决了 vLLM、torch 和 torch_npu 的各个依赖库间版本互锁的三角矛盾,硬生生从零搭建起了一套稳定的生产环境,结合基础 Docker 镜像即可实现模型的开箱即用。

  2. 准确修补:它敏锐地识别出原版 vLLM 的 MOE 层依赖 CUDA 专有的操作和 vllm-ascend 提供的 Ascend 原生 MOE 实现,并果断通过插件包进行调用替换,让模型在国产芯片上"说上了母语"。

  3. 实现 35 倍加速:在引入 vllm-ascend 原生 MOE 实现补丁后,vLLM 在高并发下的吞吐量飙升至 550.45toks/s,相比 Transformers 方案实现了惊人的 35 倍加速,且在继续优化中。

  4. 无需人工大量介入:在这种复杂任务目标下,KernelCAT 可以自己规划和完成任务,无需研发提供大量提示词指导模型工作。

这意味着,原本需要顶尖工程师团队花费数周才能完成进行的适配工作,现在可以缩短至小时级(包含模型下载、环境构建的时间);同时让国产芯片从“能跑”到“飞起”,实现 35 倍的加速。KernelCAT 让国产芯片不再是被“封印”的算力废铁,而是可以通过深度工程优化,承载顶级多模态模型推理任务的性能引擎。

“天下苦 CUDA 久矣”——这句话曾是行业的无奈,但 KernelCAT 的出现,似乎让国产 AI 产业看到了一种新的可能。它不只是国内团队在 AI Agent 技术上的突破,更是一次对算力主权的郑重宣示:我们不再满足于在别人的地基上盖楼,而是要打好属于自己的 AI“地基”。

KernelCAT 限时免费内测中,点击链接,马上体验~

2026 年,大模型已经不再稀缺,但它在中小企业的办公环境中处境却很骨感。市场部用通用聊天机器人写促销文案,结果因工具不理解“BOM 表”“良品率”等术语,导致员工反复返工;法务人员还在逐字比对几十页合同,在密密麻麻的条款里找差异;客服团队被重复问题淹没,而公司花了几万元采购的 AI 工具,始终没能真正嵌入业务流程。

问题在于工具离场景太远。当算力和模型能力变得普及,企业要的不再是“更强的大模型”,而是一个能理解自己业务、快速跑起来、带来实际收益的智能助手。

行业正在悄然转向。AI 算力需求从训练转移至推理,推理算力需求增长 4 倍;算力消费模式从买卡转移到买 Token,Token 消耗量增长 53 倍;几乎所有企业都在通过智能体的方式消费 Token。华为云和华为云伙伴都观察到,客户不再纠结参数规模,反而关心“它能帮我解决什么具体问题”。

华为云看准了这个拐点。今年 1 月 23 日,华为云在“华为云中国区销售伙伴产品方案发布会”上,隆重介绍了 Flexus AI 智能体——一个专为中小企业设计的轻量化、场景化智能体平台。它聚焦于更专业的场景、追求更精准的效果,并致力于实现极简部署。

Flexus AI 智能体依托华为自研的搜索大模型,攻克了搜索精度的关键难题。在企业知识问答、智能数据查询等高频场景中,其准确率领先业界平均水平 2 至 9 个百分点。在发布会现场的实时对决中,面对权威数据集的严格考验,Flexus AI 智能体更以 100%的准确率胜出,充分证明了其性能的领先性。

该平台重点覆盖互联网、金融与保险、医疗健康、制造业、零售/电商、专业法律服务及教育等行业。其创新的 “Solution as Code” 功能,能将企业级应用场景打包成“即取即用”的模板,这使 Flexus AI 智能体超越了工具属性,成为优秀实践经验的高效载体。此外,华为云的“天筹 AI 求解器”还能为工业、物流等复杂场景提供最优决策支持,切实帮助企业降本增效。

Flexus AI 智能体的目标十分明确:让即便没有专职 AI 团队的中小企业,也能在几天内部署一个真正“懂行”的智能助手。这背后,折射出华为云对 AI 商业化下半场的核心判断——最终的战场,在于帮助客户实现业务价值。

为中小企业制造的 AI 智能体

过去十年,云计算在中小企业中完成了从“可选项”到“必选项”的演进。如今,人工智能正经历相似的关键跃迁。然而对广大中小企业而言,这场技术浪潮并非坦途:它们并不缺乏拥抱 AI 的意愿,却普遍困于三大现实挑战——应用场景模糊、技术门槛高企、投入产出难以量化。

华为云敏锐捕捉到这一结构性变迁,依托在工程化落地、场景理解与企业级服务领域的长期积累,将 Flexus AI 智能体定位为通向长尾市场的“轻量化入口”。产品设计源于对典型中小企业客户的深度洞察:预算有限、缺乏专业 IT 团队、需求表达不清晰,却对数据安全与成本控制高度敏感。其目标清晰而务实——回应中小企业“用得起、用得上、用得好”的朴素诉求,同时在 AI 商业化深水区开辟差异化增长路径。

作为面向泛行业中小企业的轻量化平台,Flexus AI 智能体以“开箱即用、高性价比、安全可控”为核心理念,通过四大能力直击 AI 落地痛点:

  • 丰富模板库:提供 40 余个源自真实企业实践的预置场景,覆盖舆情监测、报告撰写、客服问答、知识检索等通用与行业需求,大幅降低启动成本;

  • 一站式平台:支持可视化编排与一键部署,无需编码即可完成智能体构建与发布,数日内即可上线业务助手;

  • 安全可控:支持公有云调用与私有化部署双模式,保障数据主权与合规要求;

  • 底座协同:深度集成华为云 Tokens 服务与昇腾 AI 算力,保障高并发稳定性,并自然带动 ECS、数据库、KooSearch 等云资源的协同消耗。

相较于华为云生态内面向大型企业、强调深度定制的平台,Flexus AI 智能体聚焦轻量化通用场景,在办公、营销与服务等高频领域追求极致的简便与实用,形成清晰的差异化定位。

尤为关键的是,该产品精准破解了 AI 落地的“最后一公里”难题——企业知识问答。当前,企业普遍采用“检索增强生成(RAG)”技术赋予大模型专业知识,但效果瓶颈往往不在模型本身,而在于前端检索精度不足:传统关键词检索难以理解语义,易在海量知识库中漏检或错检,导致智能助手“答非所问”。

对此,Flexus AI 智能体内置的企业级搜索服务成为破局关键:以华为自研的中文文本向量大模型为底座,具备出色的语义理解能力;其检索引擎在权威基准测试中表现优异,实现精准高效的语义匹配;通过架构优化,关键性能指标显著优于主流开源方案,同时有效控制成本。最终,企业获得的不再是一个“听起来聪明”的对话机器,而是一位真正精通业务、检索精准、响应迅捷的可靠数字助手。

这一能力已在多行业实战中快速验证:

  • 互联网与出海企业:用于语义级信息检索、舆情监测及动态视频生成,一键部署覆盖电商、科研与物流的 AI 工具链;

  • 金融与保险:实现研报自动生成、财务风险预算、智能审计及反欺诈风控,部分保险场景复用自医疗行业的成熟实践;

  • 医疗健康:深入辅助诊疗、影像分析与报告解析,为医疗机构提供研发助手;

  • 制造业:应用于工业质检、包装检查、生产安全检测、设备预测性维护、高炉工艺控制和性能预测等领域;

  • 零售与电商: 场景涵盖用户运营、门店巡检等。某国内头部奶茶品牌一周内所有门店系统均上线智能体,月付费仅 4 万元;

  • 教育行业:可用于内容生成与学术支持、教学辅助等;

  • 法律行业: Flexus 企业搜索服务在中国法律智能技术评测中斩获类案检索一等奖;某住宅设计公司已将 Flexus AI 智能体深度用于合同风险条款识别与合同比对中。

这些案例背后,是一套真正为中小企业量身打造的 AI 落地路径:无需技术积累、不必重金投入,只需聚焦自身业务,就能快速用上 AI。Flexus AI 智能体以“场景更专、效果更精、使用更易”为原则,提供开箱即用的模板和零代码操作体验,配合免费调优支持,真正做到“一天出 Demo、一周上线见效”。

全流程测评:智能体如何进入内容生产?

作为专注于科技行业的内容创作者,我们始终在寻找能够提升信息处理深度与效率的工具。内容创作,尤其是科技领域,面临着信息过载、源头繁杂、热点更迭迅速的常态挑战。在策划一个深度选题时,从海量噪音中快速梳理出主线、定位核心矛盾,往往消耗大量精力。

因此,我们对华为云 Flexus AI 智能体进行了体验。我们最近正在研究中国 AI 硬件出海战略与挑战,这个方向既涉及复杂的技术趋势研判,又牵涉多变的国际贸易政策环境。为此,我们尝试使用华为云 Flexus AI 智能体矩阵辅助完成前期调研。

我们的测试分两步走:先让“深度研究报告撰写”智能体勾勒全球产业趋势图谱,再请“国家政策研究与比较”智能体扫描关键市场的准入壁垒。

当我们要求“深度研究报告撰写”智能体研究 2020-2026 年 AI 智能硬件的行业发展趋势时,智能体并未直接输出结论,而是首先展示其思考路径——将问题拆解为市场规模、产品形态、技术演进、竞争格局和应用场景五个维度,并据此构建报告结构。

这种结构化处理带来了三个实际价值:

  • 节省框架搭建时间:几分钟内生成的研究提纲,覆盖了边缘 AI 设备渗透率、AI PC 出货量、NPU/GPU 融合架构等关键议题,避免了从零开始的信息筛选。

  • 聚焦核心变量:通过数据表格(如各细分市场 CAGR、厂商份额预测)和趋势关键词,帮助我们快速识别哪些是驱动变化的关键因子。

  • 提供可扩展基础:输出内容并非封闭结论,而是带有明确数据来源提示和逻辑节点的“半成品”,便于后续人工验证与观点深化。

紧接着,我们请“国家政策研究与比较”智能体“研究美国、欧洲和印度,在进口中国 AI 智能硬件时不同的海关政策。”

智能体没有给出模糊或笼统的结论,而是立即先建立了一个清晰的四维比较分析模型:关税结构与 HS 编码、技术性贸易壁垒(认证)、国家安全审查、政策演变趋势。这直接对应了企业出海实操中必须面对的四大关卡。

差异化逻辑的提炼:在反馈中,智能体不仅罗列了 FCC、CE、BIS 等认证差异,更尝试归纳出不同市场的核心监管逻辑:美国的“科技遏制与长臂管辖”、欧盟的“规则主导与伦理审查”、印度的“贸易保护与产业替代”。这种对政策背后战略意图的解读,远比单纯列举条款更有洞察力。

这些归纳虽需进一步验证,但已为后续针对性调研提供了清晰的问题清单和方向指引。

综合来看,Flexus AI 智能体的核心优势不在于“给出答案”,而在于“组织问题”。它通过结构化拆解,将模糊、宽泛的研究需求转化为可操作的分析路径,显著缩短了从信息搜集到洞察生成的链条。

这一能力不仅适用于科技内容创作,在财经报道、政策简报、市场进入评估等需要快速处理多源信息并输出逻辑清晰内容的场景中,同样具备实用价值。

Flexus AI 智能体的价值不在于炫技式的能力,而在于将 AI 真正嵌入中小企业的业务流。在 AI 从技术热词走向商业落地的关键阶段,华为云选择以轻量化、模板化、安全可控的方式切入长尾市场,既回应了中小企业“用得起、用得上、用得好”的核心诉求,也重新定义了 AI 产品的价值标准:不是参数多大,而是离业务多近。

使用豆包对 https://www.kimi.com/user/agreement/paidServiceAgreement?version=v2 中的信息分析了一下,包括其中在内的《 Kimi 用户服务协议》《 Kimi 隐私政策》,最终得出的结论为会匿名化处理和训练模型,而不是像其他家的那种 0 数据保留:

以下信息来源于豆包输出的结果:

根据你提供的《 Kimi 用户服务协议》( https://www.kimi.com/user/agreement/modelUse?version=v2 )和《 Kimi 隐私政策》( https://www.kimi.com/user/agreement/userPrivacy?version=v2 ),Kimi 会在符合协议约定和法律要求的前提下,使用用户的输入和输出信息(包括 API 场景下的输入输出信息)优化模型(本质包含模型训练环节),具体条款依据如下:

1. 《 Kimi 用户服务协议》的明确约定

在协议“五、知识产权与其他权利”部分,明确规定:
“为了提升您使用本服务的体验,您授予我们一项免费的使用权,以在法律允许的范围内将您输入输出之内容及反馈用于模型服务优化。”

这里的“输入输出之内容”涵盖所有使用 Kimi 服务时产生的交互数据(包括 API 调用时的输入指令、参数及模型返回的输出结果);“模型服务优化”是模型迭代的核心环节,包含通过用户数据调整模型参数、提升响应准确性等训练相关行为,且用户在使用服务时默认授予该使用权。

2. 《 Kimi 隐私政策》的补充说明

在政策“2.4 我们使用信息的方式和目的”之“服务体验的优化与改进”部分,进一步明确:
“在经安全加密技术处理、严格去标识化且无法重新识别特定个人的前提下,我们会将您输入输出的内容用来优化模型,或将您对产品的访问和使用情况用来进行数据分析,进而增进您的服务体验。”

该条款补充了两个关键前提:

  • 去标识化处理:使用前会对输入输出信息进行技术处理,确保无法关联到具体个人,符合个人信息保护要求;
  • 范围限制:仅用于“优化模型”(即提升模型性能),不用于协议外的其他目的。

3. 关于“API 输入输出信息”的覆盖性

虽然两份文件未单独提及“API”场景,但协议和政策的适用范围是“Kimi 所有产品和服务”(包括网页、APP 、插件、API 等所有形态,可参考《 Kimi 用户服务协议》“导言”中“产品与服务包括但不限于以生成式人工智能服务为核心功能的平台”)。因此,API 调用时产生的输入(如开发者传入的指令、数据)和输出(如模型返回的结果),属于“输入输出之内容”的范畴,同样适用上述条款。

结论

Kimi 会收集(或使用)用户在服务中(包括 API 场景)产生的输入和输出信息,用于模型优化(含训练),但需满足两个核心条件:

  1. 遵循“法律允许的范围”,且用户通过使用服务默认授予相关使用权;
  2. 对信息进行“安全加密+严格去标识化”处理,确保不泄露个人身份信息。

重构对象是一个上游模块,原本采用了比较扭曲的单线程队列调度,重构目标是改成多线程的并发队列,为此还需要把下游全部打通,以对齐队列并发度。这个领域比较偏门,甚至编程思路都不太一样,感觉对 AI 不太友好,实际体验确实比较折腾。

一开始想用手头的 GLM Coding Plan 接入 Claude Code 当个“甩手掌柜”,结果指示文档都快写成伪代码级别了,效果还是差强人意:agent 只是照猫画虎搞了个并发队列,但关键的状态判断都丢了,跑出来各种静默卡死和数据错误。如果我得把逻辑依赖全部嚼碎了喂给它,那 AI 真是用了个寂寞。

不过在跟 agent 搏斗的过程中,我对模块的理解确实更加清晰了,因此到了一个是继续细化 Prompt 去控制 Agent 的编码行为还不如自己写来得快的临界点。后来眼看工作进度要受影响了,不得已又开了一个月 Cursor Pro 去用 Tab 功能。自己知道怎么写,再加上 Tab 补全那些机械啰嗦的部分,效率高了很多,简直是最后 3 小时狂推里程碑。Cursor 自己的 agent 也没起什么大作用,基本也就干点替换日志格式之类的杂活比较放心。

大家平时都喝哪款拿铁,我一般喝生椰拿铁。

老婆喜欢用 Apple TV 看剧,自己找资源的话还是 115 更新的最快,而且直接转存播放就行,也不需要再通过 nas 下载

好奇问一下 115 网盘还可以用来干嘛,或者追剧有没有其他软件可以配合,以更愉快的观影?

家庭网络如何获取到公网IPv6

OpenWrt 作为二级路由时 IPv6 故障排查与配置总结报告

背景

基于笔者的实战经验总结而来.
供参考.
适用于 iStoreOS 和 openwrt.
版本是: 24.10

1. 问题概述

初始状态

  • 网络拓扑:电信光猫(拨号主路由) → iStoreOS/OpenWrt(二级路由) → 终端设备(PC/手机)。
  • 核心问题:终端设备通过 iStoreOS/OpenWrt无法获得 IPv6 互联网连接,但直接连接光猫或通过另一台普通二级路由则正常。
  • 关键限制:无法调整电信光猫的任何设置。(电信不让, 调了也可能被远程调回去...)

根本原因分析

在光猫拨号并已启用 IPv6 的网络中,光猫本身是 IPv6 的路由通告(RA)DHCPv6 服务器。iStoreOS/OpenWrt 作为二级路由,其正确的角色应是一个 “透明中继” ,负责将光猫下发的 IPv6 信息原样转发给内网设备,而非自己充当服务器。默认的 iStoreOS/OpenWrt 配置(LAN 口为“服务器模式”)会尝试自行分配 IPv6,导致与上层冲突,使终端设备无法获得有效的公网 IPv6 地址或路由。

2. 排查与解决流程

整个排查过程遵循了从基础到深入、从配置到服务的逻辑,下图清晰地展示了核心的诊断路径与解决步骤:

flowchart TD
    A[问题:通过OpenWrt无IPv6<br>但直连光猫正常] --> B{检查OpenWrt WAN口状态}
    
    B --> C{WAN口是否获取到<br>公网IPv6地址?<br>(240e:/2408:开头)}
    C -- 是 --> D[核心问题:LAN口配置模式错误]
    C -- 否 --> E[需检查物理连接与光猫IPv6服务]
    
    D --> F[关键修复:修改LAN口DHCPv6设置]
    F --> G[将模式从“服务器”改为“中继/混合”]
    G --> H[并勾选“始终通告默认路由”]
    
    H --> I{终端设备是否获得<br>公网IPv6地址?}
    I -- 否 --> J[深入排查]
    I -- 是 --> K{IPv6网络连通性测试<br>(如 test-ipv6.com)}
    
    subgraph J [深入排查步骤]
        J1[检查并清空ULA前缀]
        J2[确认关闭IPv6 DNS过滤]
        J3[检查防火墙规则<br>(关闭WAN口IP动态伪装)]
        J4[重启odhcpd服务<br>清理旧地址]
    end
    
    J --> I
    K -- 失败 --> L[进行端到端Ping测试<br>定位中断环节]
    L --> M[根据测试结果<br>调整防火墙或MTU]
    K -- 成功 --> N[🎉 问题解决]

    style A stroke:#f66,stroke-width:2px
    style N stroke:#0a0,stroke-width:2px

各阶段关键操作与指令

1. 信息收集阶段

  • 检查 iStoreOS/OpenWrt WAN 口:确认其通过 DHCPv6 协议获取到了电信的公网 IPv6 地址(240e:3a3:...),证明上游信号正常。如下图:

    image-20260130161549229

  • 检查 iStoreOS/OpenWrt LAN 口配置:发现其 路由通告DHCPv6 服务 均处于 “服务器模式”,这是问题的根源。如下图:

    image-20260130162200213

  • 检查其他设置:发现 IPv6 ULA 前缀 未清空,且 过滤 IPv6 AAAA 记录 被勾选,这些都会干扰正常使用。

    image-20260130162306794

    image-20260130162419460

2. 核心配置修正阶段

  • 将 LAN 口 DHCPv6 设置为中继:将 路由通告服务DHCPv6 服务 改为 “中继模式”“混合模式”。修正后如下:

    image-20260130162536729

  • 清空 ULA 前缀:在 全局网络选项 中删除自动生成的 ULA 前缀(fdd5:...),防止其干扰公网地址分配。

    image-20260130162615400

  • 允许 IPv6 DNS 解析:在 DHCP/DNS 高级设置中,取消勾选 “过滤 IPv6 AAAA 记录”

    image-20260130162701677

  • 调整防火墙:在 防火墙 设置中,确保 wan 区域的 IP动态伪装(NAT) 被取消勾选,以减少对 IPv6 流量的潜在干扰。

    image-20260130163750062

3. 服务应用与调试阶段

  • 通过 SSH 或 TTYD 终端执行命令,重启负责 IPv6 的服务并清理旧地址:

    /etc/init.d/odhcpd restart
    ip -6 addr flush dev br-lan scope global
  • 关键缺失项的发现:尽管终端设备获得了公网 IPv6 地址(240e:...),但 ipconfig /all 显示缺少 IPv6 默认网关。这直接导致数据包无法路由出去。这时候我的电脑显示如下:

    连接特定的 DNS 后缀 . . . . . . . : lan
       IPv6 地址 . . . . . . . . . . . . : 240e:3a3:xxxx
       IPv6 地址 . . . . . . . . . . . . : fdd5:3075:xxx
       临时 IPv6 地址. . . . . . . . . . : 240e:3a3:xxx
       临时 IPv6 地址. . . . . . . . . . : fdd5:3075:xxx
       本地链接 IPv6 地址. . . . . . . . : fe80::1ba8:xxx
       IPv4 地址 . . . . . . . . . . . . : 192.168.3.246
       子网掩码  . . . . . . . . . . . . : 255.255.255.0
       默认网关. . . . . . . . . . . . . : 192.168.3.1 (缺少 **IPv6 默认网关**)

    访问 <test-ipv6.com> 结果:

    你的公网 IPv4 地址是 x.x.x.x
    
    
    你的运营商(ISP)是 CHINANET-BACKBONE xxxx
    
    
    没有检测到 IPv6 地址 [更多信息]
    
    
    你只接入了 IPv4 互联网,不能访问纯 IPv6 网站。
    
    
    可向运营商咨询如何使用 IPv6,实现最佳的网络性能。 [更多信息]
    
    
    你的 DNS 服务器(可能由运营商提供)已经接入 IPv6 互联网了

4. 最终解决

  • 返回 iStoreOS/OpenWrt LAN 口 DHCPv6 设置,找到并勾选 “始终通告默认路由” 选项。如下图:

    image-20260130163337541

  • 保存应用后,终端设备立即获得了正确的 IPv6 默认网关(fe80::...),IPv6 互联网连接完全恢复。如下图:

    DHCPv6 IAID . . . . . . . . . . . : 10483xxxxx
       DHCPv6 客户端 DUID  . . . . . . . : 00-01-00-01-26-xxxxx
       DNS 服务器  . . . . . . . . . . . : 192.168.3.1
                                           fe80::xxxxxx%28
                                           240e:3a3:xxxxx
                                           fdd5:xxxxxx

    访问 <test-ipv6.com> 结果:

    你的公网 IPv4 地址是 xxxxx
    
    
    你的公网 IPv6 地址是 240e:3a3:xxxxx
    
    
    你的运营商(ISP)是 CHINANET-BACKBONE xxxx
    
    
    你已接入 IPv6,因此我们增加了一个标签页,显示你能否访问其他 IPv6 网站。[更多信息]
    
    
    你的 DNS 服务器(可能由运营商提供)已经接入 IPv6 互联网了。
    IPv6 状况评分
    10/10    此分数表示你的系统对 IPv6 的支持程度和稳定性
    点击查看 测试数据

3. 最终有效配置清单(iStoreOS/OpenWrt LuCI 界面)

配置位置需修改的项推荐设置作用说明
网络 -> 接口 -> LAN -> DHCP服务器 -> IPv6设置路由通告服务中继模式混合模式转发光猫的RA报文,而非自行广播。
DHCPv6 服务中继模式混合模式转发光猫的DHCPv6地址分配。
NDP 代理已禁用在简单中继网络中通常不需要。
始终通告默认路由勾选关键!确保终端设备获得IPv6网关。
网络 -> 接口 -> 全局网络选项IPv6 ULA 前缀清空避免生成本地地址,优先使用公网地址。
网络 -> DHCP/DNS -> 高级设置过滤 IPv6 AAAA 记录取消勾选允许DNS服务器返回IPv6地址。
网络 -> 防火墙 -> 区域 (WAN)IP动态伪装(NAT)取消勾选IPv6通常不需要NAT,避免不必要的转换。

4. 核心原理总结

  1. 中继 vs 服务器:在无法控制主路由(光猫)的拓扑中,二级路由的 IPv6 必须使用 “中继” 模式。它像一座桥梁,只传递信息,不自行决定。
  2. 地址分配顺序:系统会优先使用公网 IPv6 地址(GUA)。只有当中继失败、无法收到公网前缀时,设备才会退而求其次地使用 ULA 本地地址(fdfdd 开头)。初期获得的 fdd5: 地址正是中继失败的标志。
  3. 路由通告的重要性:IPv6 不仅依赖地址,更依赖路由。“始终通告默认路由” 选项确保路由器告诉内网设备:“我是你们通往 IPv6 互联网的出口”。缺少这一步,设备有地址也无法上网。
  4. 防火墙差异:IPv6 的设计更倾向于端到端的直接通信,因此其防火墙策略与 IPv4(普遍使用NAT)有较大不同,通常无需也不建议对 IPv6 使用“动态伪装”(NAT)。

5. 经验与建议

  1. 排查顺序:遵循 “先 WAN 后 LAN,先地址后路由” 的原则。先确认上级有信号(WAN口有公网IP),再排查内部转发(LAN口中继配置),最后检查路由和防火墙。
  2. 配置备份:在 iStoreOS/OpenWrt 中,一旦配置成功,建议立即通过 “系统” -> “备份/升级” 生成一个备份文件。未来升级或重置后可以快速恢复。
  3. 测试工具:善用以下工具进行精准定位:

    • ipconfig /allifconfig:查看本地地址和网关。
    • ping -6 <目标>:测试 IPv6 连通性。
    • test-ipv6.com:一站式综合测试。
  4. 潜在优化:如果网络稳定,可以考虑在 LAN 口的 IPv6 设置中,将 路由通告服务DHCPv6 服务混合模式 改回更纯粹的 中继模式,以减少 iStoreOS/OpenWrt 本身的参与度,理论上有更好的稳定性。

通过以上步骤,笔者成功地在一个受限制的网络环境中,将 iStoreOS/OpenWrt 配置为了一个合格的 IPv6 中继节点,使所有内网设备都能无缝接入 IPv6 互联网。这套方法对于任何品牌的光猫(桥接或路由模式)下使用 iStoreOS/OpenWrt 作为二级路由的情况,都具有普遍的参考价值。

漫画这个词,是舶来品。

以前有个词,小人书。诸位,看过《老夫子》吗?

90 年代的时候,学生看小人书,被老师发现,是要挨板子的。


作为一个 80 后,我看过太多日本动画《聪明的一休》《六神合体》《龙神罗斗士》等等,

还有一堆美国动画《猫与老鼠》《希曼》《唐老鸭和米老鼠》等等。

那个时候还有,《舒克与贝塔》《邋遢大王》《葫芦娃》《黑猫警长》《阿凡提》等等。

连环画看过吗?《陈真》《精武门》《霍元甲》等等。


漫画,这个东西,在文化历史面前,就是一坨,你懂得。

仅仅是商业催化的产物,用完即扔。

有兴趣的人,可以去了解一下,日本动漫黄金时段的社会背景,是个什么情况。


不可否认,动漫(动画+漫画)陪伴了许多 80 、90 ,甚至 00 很长一段时间。

每个时期,每个人能接触到的都不一样。


现在成人了,再回过头去看日本动画和漫画,感觉是小儿科

有这个时间,还不如看看《剑来》《明朝那些事》


国内不缺乏好作品,只是没有那么大的驱动力去做。

如果你以为是吹牛,可以去了解一下,上海美术电影制片厂


那些还在使用繁体字的华人圈,比如香港。

香港也有属于他们自己的“港漫”

港漫,算国漫吗?


现在韩漫也蛮火的,你觉得条漫是发明创造吗?

《 XX 霸道总裁》《穿越 XX 》《我与 XX 约会》

这些糟粕未来谁还会记得?谁还会愿意提及?都是一些精神鸦片,难以启齿。


“有时候,自身接触少,才回有一些奇怪言论。”

18 年高点在天津津南区买的高层(不是海教园),当时 140 万左右,到 2024 年贷款还完了,
现在房价已经跌倒 79 万都出手不了,
最近有中介说卖家出 65 万要买,该不该卖啊

孩子大概 2 、3 年后才去天津上 5 年级,现在该不该换房,房子留着这还是卖