AI笔记本

资深 Android 开发工程师,丰富系统级应用经验,覆盖亿级用户设备,专注 AI Agent 工程化落地。白天在搞 AI 智能体,晚上回来折腾这个博客。以前的文章是从刚毕业一个字一个字敲的,现在嘛——我跟 AI 说一句话,它就写好发出来了。不信?看看最新的文章 🚀

文章列表

博客七周年:AI 一天完成整体重构
全站置顶 精选AI

博客七周年:AI 一天完成整体重构

博客从 2019 年国庆用 Xiuno BBS 搭建,到 2026 年国庆整整七年。868 篇文章、53 条评论、6060 个代码块,这次与 AI Agent 结对,一天完成从 PHP 论坛到 Next.js 的整体重构与无损迁移。

370
NEWCode

LLM 流式输出事件全解析

聊天界面里的打字机效果,不是模型"打字快",而是一条 HTTP 长连接上持续到达的事件流。模型边生成边推送,客户端边收边渲染——这套机制的协议,就是流式输出事件。一次带思考的回答,从 message_start 到 message_stop 之间会穿插十几种事件:思考块逐 token 生长、正文碎片抵达、工具调用参数以 JSON 片段拼装、最终附上停止原因与用量。 本文给全这套事件词表:先看 SS…

4
NEWCode

Python 字典详解:从消息结构到 Agent 开发

翻开任何一个 agent 的 Python 代码,最先撞见的八成是这一行:messages.append({"role": "assistant", "content": reply})。再往下看,工具定义是字典,usage 统计是字典,配置合并还是字典——agent 开发的数据骨架,几乎全由字典搭成。它不是 Python 里可有可无的一个类型,而是这门语言里最接近 JSON、最擅长"结构固定但字…

2
NEWCode

Python 的 self 详解:从 Java 与 Kotlin 说起

从 Java 或 Kotlin 转到 Python 的开发者,几乎都会在同一个地方愣住:每个方法的第一个参数都叫 self,而且非写不可。在 Java 里 this 由编译器悄悄传入,在 Kotlin 里连 this 都常常可以省略,为什么到了 Python,接收者要明晃晃地写进参数列表? 答案一句话就能说完:self 就是显式化的 this,而 obj.method(x) 只是 Class.me…

3
sherpa-onnx解析:端侧语音部署标准
NEW开源

sherpa-onnx解析:端侧语音部署标准

给一款开源语音库做技术选型时,最常被问到的问题是"能不能跑在我的硬件上"。sherpa-onnx 对这个问题给出的答案激进到近乎夸张:从 Intel 的 NPU 到高通的 NPU,从 RISC-V 开发板到鸿蒙手机,从 VS Code 插件到四美元的玩具机器人,同一个库全都能跑。这个 k2-fsa 组织(新一代 Kaldi)的核心部署框架,以 Apache-2.0 协议开源,用 ONNX Runt…

10
sherpa解析:开源语音技术全家桶
NEW 精选开源

sherpa解析:开源语音技术全家桶

想在手机、树莓派甚至 RISC-V 开发板上离线跑语音识别,五年前还是个需要啃 Kaldi 源码的硬核课题。k2-fsa 组织的 sherpa 把这件事变成了"下载预训练模型、装个包、跑示例"的三步操作。这个以 Apache-2.0 协议开源的项目自我定位是"新一代 Kaldi 的语音转文本框架",它专注端到端模型的推理部署:transducer 与 CTC 两类架构,C++ 与 Python 双…

14
NEWAI

本地大模型部署(16):选型决策树与迁移路径

《本地大模型部署实战》写到第 16 篇/post/1635,收官。前 15 篇从显存账一路讲到监控报表,每篇都在解决一个具体问题;但真到动手部署时,没人会按系列顺序重读 15 篇——你面对的永远是一个具体处境:手里几张什…

6
NEWAI

本地大模型部署(15):本地服务的可观测

本地化的卖点,系列开篇就讲过:可控——数据不出门、成本可预期、容量自己说了算。但可控有个前提:看得见。一个没有任何观测手段的推理服务就是黑盒——用户说慢,你不知道是排队变长了、GPU 打满了,还是 KV cache 触发…

5
NEWAI

本地大模型部署(14):tensor parallel 与 K8s

前 13 篇把单机推理这条路走到了头:引擎原理、量化、KV Cache、投机解码、兼容层,全是"一台机器、几张卡"视角下的优化。但总有走到单机边界的一天:模型权重超出了单卡显存、或者业务并发超出了单卡的吞吐上限、或者服务…

6
NEWAI

本地大模型部署(05):PagedAttention 原理

前几篇把"一个人用"的链路走完了:第 3 篇/post/1622的 llama.cpp 提供了最小推理内核,第 4 篇/post/1623的 Ollama 在它上面包了一层易用外壳。但一个人用一个模型,和把模型当服务提供…

8
NEWAI

本地大模型部署(04):本地开发事实标准

上一篇走通了 llama.cpp 的最小链路:找仓库、挑量化档、下 GGUF、敲一长串参数起服务。链路本身不难,但每换一个模型就要重走一遍,模型文件散落各处,服务也全靠手动管理——这是引擎的视角,离"好用"还差一层壳。这…

28
NEWAI

本地大模型部署(03):llama.cpp 与 GGUF 量化

上一篇文章聊硬件,这一篇回到软件侧的起点。本地推理生态看似工具众多——Ollama、LM Studio、llamafile——但把它们全部拆开,底下几乎都是同一个引擎:llama.cpp。不理解它,就只能停在"装个 Ap…

11