106篇文章 · 370719字 · 1235分钟阅读

快捷指令终于有“全局变量”了!

升级到 iOS 27 beta 1,本来只是想看看系统是不是更顺手了。用了几天下来,发现快捷指令里一个很不起眼的改动——快捷指令总算有了点“全局变量”的味道。常折腾它的人大概懂,这真不算小更新。 升级到 iOS 27 beta 1 之后 先说系统本身。 升级之后,手机整体用起来确实更顺了一些,每天划来划去、打开关闭 App、切换页面的时候,能感觉到它比之前更轻一点。 我自己比较在意的地方主要有三个。 1. Liquid Glass Liquid Glass效果 这个效果之前看介绍的时候,我其实没太大感觉。因为这类视觉更新,很容易在宣传图里显得高级,真正用到手机上又是另一回事。但这次实际用下来,它确实比我想象中舒服。透明、折射、层次感这些东西没有那么“炫技”,反而是日常看着更干净了一点。 2. 景深效果 iOS27主题景深效果<br> 鼠标悬浮在图片上移动鼠标可以看到景深效果动图 手机主题和锁屏里的景深效果,好像也比以前好了不少。图片和时间、组件之间的前后关系更自然,不像之前有时候会显得硬贴上去。当然这个感受比较主观,也可能跟我这次换的壁纸有关,但整体观感确实比之前顺眼。 3. 快捷指令又变了 iOS27快捷指令新增功能 每次系统升级,我最怕的其实不是耗电,也不是卡顿,而是快捷指令。 因为快捷指令这东西很奇怪:平时用得好好的,一升级系统,它就可能突然这里坏一点,那里报个错。最麻烦的是,官方通常也不会很详细地告诉你,到底哪些动作改了,哪些逻辑变了。 这次也一样。 我原来用的几个快捷指令,被搞得七七八八不能正常运行。只能重新备份、修改、删除、新建,一点点把流程修回来。折腾的过程挺烦,但也正是在这个过程中,我发现了一个新功能——“储存空间”。 说实话,Apple 这个名字起得有点绕,如果直接叫“全局变量”,反而更容易理解。 快捷指令里的“储存空间” 这个功能藏在快捷指令的“脚本”里面,名字叫“储存空间”。 点进去之后,里面主要有三个动作: 储存内容:把传入的内容按指定名称存起来。这个内容不会因为快捷指令运行结束就消失,后面还可以继续取出来用。 获取已储存内容:按照名称,把之前存过的内容取出来。 删除已储存内容:把指定名称下保存的内容删掉。 这三个动作放在一起,意思就很清楚了。 我举个自己正在用的例子: 全局变量的使用 我做了一个跟写作选题有关的快捷指令,需要给每个选题自动生成编号。以前如果想实现这个功能,要么借助备忘录、文本文件、Data Jar 这类第三方工具,要么绕一堆很麻烦的逻辑。 现在简单多了。 创建一个名为“选题编号”的快捷指令。 在里面使用“脚本”里的“储存空间”,选择“储存内容”,把编号“001”存进去,并给它起一个名字,比如叫“第几个选题”。 这样,一个最简单的全局变量就有了。 使用这个全局变量 后面另一个快捷指令要用这个编号时,就直接通过“获取已储存内容”,读取“第几个选题”这个值。 读取之后,用它生成当前选题编号。 流程结束前,再让这个编号自增 1,然后把新的编号重新写回“第几个选题”。 也就是说,第一次运行是 001,下一次就是 002,再下一次就是 003。 这个功能其实能解决很多小麻烦 快捷指令最有意思的地方,就是它看起来只是几个动作拼来拼去,但只要能保存状态,它就不只是“一次性工具”了。 可以记录某个流程上次运行到哪里。 可以保存某个计数器。 可以记住某个开关状态。 可以给选题、文件、录音、截图这些东西自动编号。 可以把一些常用配置放进去,之后所有相关快捷指令都从这里读取,不用每个快捷指令里都手动改一遍。 这跟写程序里的全局变量、配置文件、状态存储有点像。对于普通用户来说,不需要理解这些概念;但对喜欢折腾自动化的人来说,这个变化很关键。 ...

换种问法,AI给的答案能差多少?

又做了一个实验 在上一篇里,我把同一段文字丢给好几个不同的 AI 工具,让它们各自总结一遍。材料一模一样,结果却挺不一样:有的抓住了重点,有的会自作主张补几句“听起来很合理、原文却根本没写”的话,还有的把原文里含含糊糊的说法,硬讲得斩钉截铁。那次之后,我对“幻觉”这件事有了更具体的感受——它不是简单的“我不知道”,而是会一本正经地,把没把握的东西说得跟真的一样。 换种问法,AI给的答案能差多少? 这一次,我换了个思路。 上回是“同一段材料,喂给不同的模型”;这回反过来,只用一个模型,让它做同一件事,但每次换一种问法。说白了,就是改 prompt(提示词)。 同样一个模型,任务大方向也没变,只是问法不同,我想看看: 它给出来的内容,差别到底有多大? 是只换了个说法,还是连理解的重点都跟着变了? 是写得更准了,还是更容易跑偏? 于是有了下面这五种问法: 序号 Prompt 类型 Prompt 内容 1 普通总结版 总结一下下面这段内容:【材料】 2 字数限制版 请用 100 字以内总结下面这段内容:【材料】 3 结构化总结版 请按以下结构总结:①发生了什么 ②原因是什么 ③影响是什么。【材料】 4 防幻觉约束版 请只根据原文总结,不要加入原文没有的信息;如果原文没提到原因、影响或结论,就直接写“原文未提及”。【材料】 5 证据对应版 请总结下面这段内容,并把每条结论对应到原文依据。格式:结论+对应的原文句子。【材料】 这五种,其实正好对应我们平时用 AI 的几个层次:随手一问 → 加一点限制 → 给它一个结构 → 要求它别乱编 → 最后逼它拿出证据。 实验结果我没有一条条贴出来——这种东西自己试最直观。随便找段新闻或者资料,把上面五种问法挨个套一遍,差别一眼就看得出来。 我真正想搞清楚的是:面对同一段材料,这个 AI 到底是“理解稳定”,还是很容易被问法牵着走。如果只是表达风格变了,那 prompt 影响的主要是“它怎么说”;可如果连事实重点、因果关系、甚至结论都跟着变,那就值得警惕了——因为这说明,我们跟 AI 对话时,问法本身就在悄悄塑造答案。 既然问法这么关键,那怎么问才靠谱?下面是我自己常用的几样东西。 30 秒快速自检 敲回车之前,花半分钟过一遍这四件事: 动作:到底要它做什么?别写“处理 / 优化 / 弄一下”,写清楚是“新增 / 只改 / 重写 / 标注”。 对象:改的是哪个?别用“这个 / 它 / 那段”,直接给出文件名、函数名、单元格。 范围:边界在哪?少用“所有 / 全部 / 相关 / 顺便”,明确说清楚包含什么、排除什么。 验收:怎样算做对了?比如签名不变、测试跑通、控制在一页、不超纲。 凡是带副作用的操作(改文件、拉数据、删除、下单、推送),我都会默认补一句:“先列出你要做的,等我确认再执行。” 就这一句,能拦掉绝大多数“方向对了、范围却搞大了”的白白烧 token 的操作。 ...

了解Ai大模型的幻觉

跟AI工具进行对话时,刚开始聊着聊着还挺好,聊一会就明显感觉这伙计开始胡编乱造了,尤其是免费版的AI工具,付费版的还会陪你聊一会,可能不耐烦了之后也就开始应付着出现幻觉了。 AI模型的幻觉 问问AI 这个问题又去问了一下AI——还是人家不怕自相矛盾——给出了两个网络资源,一篇学术论文和一篇有营销嫌疑的博客文章; Benchmarking LLM Faithfulness in RAG with Evolving Leaderboards:https://arxiv.org/pdf/2505.04847 LLM Hallucination Index 2026: Why Claude 4.6 Sonnet Dominates BullshitBench v2 While Reasoning Models Fail:https://medium.com/@anyapi.ai/llm-hallucination-index-2026-why-claude-4-6-7b2d13ed9f0c 其中,论文聚焦的核心概念是忠实度(faithfulness):模型生成的内容是否严格基于给定上下文,不引入无依据信息、不曲解、不自相矛盾。这与“事实正确性”不同——一句话可能符合世界知识,但只要原文没说,在 RAG 场景里也算不忠实。作者指出一个反常识的事实:RAG 本意是用检索到的可信上下文来“锚定”模型回答,从而压制幻觉,但即便上下文已经给到模型,LLM 仍频繁添加原文不支持的细节、歪曲信息甚至直接矛盾。更棘手的是评测端:无论是微调的检测模型还是 LLM-as-a-judge,识别幻觉的准确率都不理想。作者特别提到一个令人沮丧的发现——在专门设计来“挑刺”的 FaithBench 数据集上,包括用 LLM 做分类在内的现有方法,准确率徘徊在 50% 左右,几乎等于随机猜。博客文章主要论点有三个:一是“推理悖论”,声称对 GPT-5.2、Gemini 3 Pro 等多数模型来说,加大推理算力反而降低识别假前提的能力,模型会把额外算力用来给错误“圆谎”;二是把 Claude Sonnet 4.6 捧为“唯一默认带怀疑精神”的模型(声称 91% 检测率、3% 幻觉率);三是说 OpenAI、Google 因过度 RLHF 变成“yes-man”,卡在 55–65% 区间。开源方面把 Qwen3.5 列为主要替代。 文论附录 论文附录给出了用 FaithJudge 对 12 个模型综合四个子任务的幻觉率排名(从低到高,越低越好): 排名 模型 综合幻觉率 1 gemini-2.5-pro 6.65% 2 gemini-2.0-flash 10.18% 3 gpt-4.5-preview 11.94% 4 o3-mini-high 12.52% 5 gpt-3.5-turbo 14.87% 6 gpt-4o 15.85% 7 claude-3.7-sonnet 16.05% 8 llama-3.3-70b 16.44% 9 phi-4 17.03% 10 mistral-small-24b 17.03% 11 llama-4-maverick 20.55% 12 llama-3.1-8b 28.38% 论文引用CNN 关于福建漳州工厂爆炸这则新闻来对每一个AI工具进行测试,从 用户问题、检索到的资料、模型回答、错误片段、为什么错、正确说法、证据来源这几个维度来测试并得出幻觉率排名。 ...

DAN KOE的书《Purpose & Profit》

简要内容 2025年3月24日,DAN KOE发文:“我写了一本第二本书。 一本关于金钱和发现你人生使命的简短而富有哲理的解读。 我把它免费提供,因为这是我希望尽可能多的人能拿到手中的东西之一。 平装版不是免费的,原因显而易见”。 《Purpose & Profit》原版封面图 作者官方链接 DAN KOE在其官网(https://thedankoe.com/purpose)发布了PDF下载链接和亚马逊购买链接,可以免费下载来看电子版。 下载链接:https://thedankoe.com/wp-content/uploads/2025/03/Purpose-Profit-2.pdf 亚马逊购买:https://www.amazon.com/review/create-review/ref=cm_cr_dp_d_wr_but_top?ie=UTF8&channel=glance-detail&asin=1936961288 我做的翻译版本 我下载了电子版,但是英语水平有限的紧,借助AI工具进行了翻译,并做了简单的手工校对。 《Purpose & Profit》中英文对照-01 《Purpose & Profit》中英文对照-02 从哪里取 英文原版电子版和中文手工校对版本都上传到了GitHub上,如有需要请自取: https://github.com/onecaicai/DANKOE-Purpose-Profit

理解什么是“1P”算力

常说的拥有某数据中心拥有“**P算力”,这里面的算力是什么呢? 什么是“1P”算力 网络上搜索一些内容,整理如下: “1P算力”里的 P 是数量级前缀 Peta(10¹⁵,千万亿),所以“1P算力”通常指 1 PFLOPS,即每秒 1×10¹⁵ 次浮点运算(1000万亿次/秒)。 1. 单位是 FLOPS,不是 FLOP。 算力的常用单位是 FLOPS(每秒浮点运算次数),是个速率。 1P = 1000T(TFLOPS)= 100万G(GFLOPS) 所以业内说的“1P卡”、“100P集群”基本都是指 PFLOPS 规模。 2. 必须看精度,否则数字没意义。 同一张卡在不同精度下算力差好几倍,“1P算力”本身是不完整的说法。完整的应该是包含FP64、FP32、TF32、FP16、BF16、INT8,还是 INT4? 本篇内容以“1P”的说法为入口,了解了解这方面的基础知识。 相关概念: 以一个实例开始: 一张 NVIDIA H100,FP16/BF16 峰值约 1 PFLOPS 量级(开稀疏更高),所以“1P”差不多就是“约一张高端 AI 卡”的体量。 “百P算力中心”“千P智算集群”这类说法,就是把成百上千张这种卡堆在一起的总峰值。 算力单位相关 FLOPS:全称 Floating Point Operations Per Second,即“每秒浮点运算次数”,是衡量算力的速率单位。注意结尾的 S 是 Second(秒),不是复数。 FLOP:去掉 S,指“一次浮点运算”本身,是个数量而非速率。训练一个模型“总共要算多少次”用 FLOP(或 FLOPs,小写 s 表示复数次数),“每秒能算多少次”用 FLOPS。两者常被混用,但严格意义不同。 浮点运算:对带小数的数字(浮点数)做的加减乘除等运算。之所以强调“浮点”,是因为它和整数运算的硬件实现、速度都不同,神经网络里大量是浮点计算。 Peta / P:国际单位制的数量级前缀,10¹⁵(千万亿)。同系列还有 G(Giga,10⁹/十亿)、T(Tera,10¹²/万亿)、E(Exa,10¹⁸/百亿亿)。换算:1P = 1000T = 100万G。现在最顶级的超算到了 E 级(ExaFLOPS)。 精度相关 精度:指一个数字用多少位(bit)来表示。位数越多,能表示的数值范围越大、越精确,但占的存储和计算资源也越多。AI 领域为了提速和省显存,倾向用更低的精度。 ...

修复 yuque-exporter 的三个 bug

语雀文档批量导出工具 yuque-exporter 在首次运行、本地文件缺失、redirect 处理等场景下存在崩溃问题,记录定位和修复过程。

讯飞录音笔云端数据本地备份

讯飞录音笔云端数据本地备份 讯飞录音笔录音本身在云端,转写、AI 总结、思维导图也都在网页端能看到,但真到需要长期整理时,只靠网页端不太方便:文件分散,账号切换容易混,后续要搜索、归档、再加工也不顺手。 iflytekRecordDownload 就是为这个场景写的一个小工具。它从讯飞录音笔网页端读取云端录音列表,把录音音频、转写文本、AI 总结和思维导图同步到本地。同步后的文件按账号、日期和录音时间组织,适合长期备份。 它解决什么问题 这个工具主要做几件事: 下载每条录音对应的 WAV 音频。 导出转写文本为 Markdown。 同步云端生成的 AI 总结和思维导图。 按不同讯飞账号分目录保存。 按录音当天日期建文件夹,同一天多条录音再按时分秒区分。 自动生成当天的转写合并文档,方便快速回看。 最后得到的目录大概是这样: 1 2 3 4 5 6 7 8 ~/录音笔同步/工作账号/ 2026年05月14日/ 17时26分49秒.wav 17时26分49秒.md 17时26分49秒_AI总结.md 17时26分49秒_思维导图.md 17时26分49秒_raw.json 2026年05月14日_转写合并.md 这个结构的好处是后续处理很简单。音频、转写、总结和思维导图都在同一个时间点下面,不需要再从一堆文件里猜谁和谁对应。 实现思路 讯飞录音笔网页端本身会调用接口读取录音列表和详情。工具没有绕过登录流程,而是让用户先在浏览器里正常登录,然后从开发者工具里复制一次 Copy as cURL。脚本会从这段 cURL 里解析出 X-Session 和 X-User-Id,再用同样的登录态去访问云端接口。 ...

钉钉DingTalk音频导出到本地

把钉钉DingTalk A1音频导出到本地 做了一个小工具:把钉钉DingTalk录制的 AI 听记完整下载到本地。 钉钉DingTalk是一款很好的个人效率工具,硬件端录制的音频由钉钉通过通义千问Qwen3-235B、DeepSeek-V3-671B满血版大模型 AI纪要总结,除了录音,还有转写、AI 纪要、笔记、章节、分析、关键词、待办。但这些内容平时都散在钉钉app里,想备份、整理、二次处理都不太方便。所以做一个本地导出工具,一次性把这些东西都拉下来。 项目基于这个开源仓库改的: 1 https://github.com/DingTalk-Real-AI/dingtalk-workspace-cli 原项目提供了一个叫 dws 的命令行工具,可以通过钉钉授权访问 AI 听记、文档、云盘、日程等能力,在这个项目基础上加了两个脚本: 1 2 scripts/archive-all-minutes.sh scripts/download-all-minutes-audio.sh 第一个脚本负责完整归档,第二个脚本只下载音频。 一开始只是想把录音下载下来。后来发现听记接口还能拿到更多内容,比如转写原文、AI 纪要、关键词、待办、思维导图状态等,于是就把脚本扩成了完整归档。 DingTalkExport 现在运行: 1 scripts/archive-all-minutes.sh 它会把内容下载到项目根目录下的 download/ 文件夹。每条听记一个目录,目录名用钉钉听记的创建时间,比如: 1 download/20260507_65871790/ 目录里会有这些文件: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 audio.mp3 transcription.json transcription.tsv summary.json ai-summary.md notes.txt analysis.txt chapters.tsv keywords.json todos.json info.json mind-graph-status.json audio-url.json list-item.json 其中 audio.mp3 是录音,transcription.tsv 是整理过的转写文本,ai-summary.md 是 AI 纪要,notes.txt 和 analysis.txt 是从纪要里拆出来的笔记和分析内容。 ...

解决快捷指令找不到备忘录的问题

用iOS快捷指令+备忘录做了一套免费、纯原生的闪念记录系统:桌面小组件一点,弹出输入框,语音输入转文字,自动追加进当天的备忘录。零成本,丝滑。 一、系统逻辑 每天00:05,一条定时快捷指令自动在备忘录指定文件夹里创建以当日日期命名的笔记,比如「2026年04月25日记录」。 有闪念时,点桌面小组件 → 弹出输入框 → 语音听写或键盘输入 → 点完成 → 文字自动追加到当天备忘录末尾。全程无需打开App,够快,够轻。 旧版快捷指令逻辑如下图,查找条件只有一个:名称包含当前日期。 旧版的快捷指令 二、升级之后翻车了 从iOS 26开始,这套流程开始抽风。 症状很典型:语音输入完、文字转写好,到「追加」这一步时,突然弹出满屏备忘录列表——快捷指令找不到目标备忘录,文字追加失败,白说了。 第一次出问题,重新创建一遍快捷指令就解决了。升级到iOS 26.4后问题又来,这次重建无效,而且时好时坏,完全没有规律。反复折腾了N次,准备掏钱买flomo了。 三、马桶上找到了答案 早上蹲马桶刷手机,无意中发现快捷指令的「查找备忘录」模块里悄悄多了几个筛选选项—— 新系统中加入了文件夹选项 之前只能按名称查找,现在多了文件夹、标签、创建日期、上次修改日期。问题大概率出在这里:一千多条备忘录全局查找,可能存在超时,导致偶发性找不到目标。 解决方案:查找范围限定到指定文件夹,同时增加创建日期条件(当日 00:05)。两个条件加上去,快捷指令稳了。 修改后的快捷指令 免费方案续命成功,暂时不用给flomo交钱了。🫡

读了《追风筝的人》

看完《追风筝的人》,这本书是很久以前买的,以至于在淘宝、京东、当当的购物记录中找不到确切的购买时间。 《追风筝的人》 版次:2006年5月第1版 印次:2015年5月第85次印刷 这本书作者是阿富汗裔美籍作家卡勒德胡赛尼,译者李继宏,讲述的2001年返回阿富汗去寻找自己同父异母侄子的事情,中间大篇幅穿插逃离阿富汗到美国之前的故事。 一、人物关系图 手搓了一个人物关系图 做了一个人物关系图。 二、故事时间线 1933年主人公父亲出生,5年前阿里出生。 1963年主人公阿米尔出生,母亲难产去世。普什图人。 1964年冬哈桑出生,不满七日母亲与一群江湖艺人跑了。哈扎拉人。 1973年阿富汗政变。 1974年,主人公父亲请医生给哈桑治疗兔唇。 1975年冬,最后一次看到哈桑追风筝,目睹了哈桑被阿塞夫伤害。哈桑和父亲阿里离开。 1979年俄国坦克在喀布尔大街上。 1981年3月,辗转逃离阿富汗,到达美国。 1983年,主人公阿米尔高中毕业,收到父亲送的二手车。童年秋天到专科学校上学。 1984年夏天,父子俩开始跳蚤市场生意,期间认识将军的女儿索拉雅,主人公的妻子。父亲肺癌出院后给儿子去提亲,婚后一个月父亲去世。 1985年,州立大学主修英文,家具仓库保安工作;妻子索拉雅同校主修教育。 1988年,俄国撤军。 1989年,主人公第一部关于父与子的书籍出版。没有自己的孩子,搬家与岳父母拉开距离。 2001年6月,应拉辛汗要求回阿富汗找回哈桑的儿子索拉博,被告知哈桑是同父异母的弟弟。拉辛汗告知的事情: 1984年,阿里被地雷炸死。 1986年,哈桑放弃已有自己的生活,返回帮忙照看主人公家原来的豪宅。 1990年,哈桑母亲莎娜芭年老回来,哈桑照顾母亲康复。哈桑儿子索拉博出生。 1994年,哈桑母亲莎娜芭去世。 1995年,内战开始。 1996年,塔利班掌权。 1998年,哈桑抗议塔利班官员占领主人的豪宅,夫妻双双被枪杀。 寻找侄子索拉博最后一关,与阿塞夫1V1 PK,侄子用其父亲哈桑教授的弹弓救了主人公。 解决拯救侄子带回美国认养的难题,侄子害怕再次被迫害,在酒店浴室割腕自杀,抢救回生命。 2001年8月,带侄子回到美国家中,帮助侄子恢复正常生活,最后在放风筝的尝试中看到了孩子的微笑。 三、勾画了些句子 爸爸说:“不过首先,你得知道一件事情,阿米尔,那些白痴大胡子不会教给你任何有价值的东西”。 爸爸双眼坚定地看着我的眼睛,仅仅这样,我就止住了笑声。 在我生命的大部分时光,我对爸爸敬若神明。可是那一刻,我恨不得能扯开自己的血管,让他那些该死的血统统流出我的身体。 哈桑在哭,阿里将他抱紧,轻轻地抚摸着他。后来我告诉自己,我没有嫉妒哈桑,一点都没有。 我希望自己身上也有类似的残疾,可以乞换来爸爸的怜悯。 看到爸爸眼里的光芒消失了,接着是一阵令人不适的沉默。 当他站起身来,我从他松弛的肩膀看出,我与生俱来的那种熟悉的生活已经一去不返了。 对我来说,美国是个埋葬往事的地方。对爸爸来说,这是个哀悼过去的地方。 如今,美国是爸爸送给阿米尔的最后一件礼物。 生活已然在前进,留下爸爸在后面。 我的理由是:也许在某个地方,有某个人,因为某件事,决定剥夺我为人父的权利,以报复我曾经的所作所为。 也是在这片土地上,我曾为了得到父亲的爱苦苦奋斗。 几乎见不到有任何成年男子在他们身边——战争把父亲变成阿富汗的稀缺物品。 重返喀布尔,犹如去拜访一个多年未遇的老朋友,却发现他潦倒凄戚,发现他无家可归、身无分文。 他们试图抬起她,她又叫又踢。只要我还有一口气在,就永远不会忘记那声惨叫。 四、关于剧情 故事情节从开篇一直到2001年6月之前,感觉都是在真实的阿富汗实景,到了主人公与阿塞夫1V1 PK的这一段,就和典型的美国式影视剧的发展一样一样的了——两个人PK的关键节点,站在旁边的小孩索拉博使出绝招——弹弓,来帮助主人公取得胜利,这一下就跳出书中情节,回过神来这就是个剧。