- 博客(28)
- 收藏
- 关注
原创 Snack4 Json 流式解析与自动结构修复深度指南
维度流式读取与结构修复普通模式解析方式流式指针滑动,不断解析 json 块只解析一个 json 块,多出则异常异常处理自动修复,不抛异常遇到一个冒号缺失即抛出 ParseExceptionLLM 适配原生支持截断、关键字修复需要开发者自行编写正则或预处理逻辑(不合规,则会抛出 ParseException)
2026-04-06 13:19:54
226
原创 RAG 入门-向量存储与企业级向量数据库 milvus
现在很多企业也是用的这套方案,我们学习这些不就是奔着找工作去的吗?直接朝着目标前进不好吗?传统数据库查找的是精准的数据,而向量数据库则更适合模糊搜索。后续的文章会介绍如何选择索引类型和距离度量方式。可以看到 Milvus 存储的向量数据。类比:图书馆的不同楼层。类比:图书馆的索引系统。类比:从仓库搬到阅览室。为什么需要 load?类比:书籍的目录格式。
2026-04-06 13:19:07
364
原创 最小二乘问题详解16:束平差工程实践总结
而不是完整的 3D 模型。在本例的实现中,使用的是固定的外点阈值,很容易就会造成这些其实是内点的“次级异常观测”也被剔除。但如果我们仍然使用包含所有外点的原始 RMSE 进行评估,那么被降权的外点依然存在,并且这些外点仍然具有很大的残差,因此 RMSE 可能 看起来更大。与随机外点不同,这种误差往往具有持续性:一个 3D 点可能在某些帧中对应真实物体 A,而在另一些帧中被误匹配到物体 B,从而破坏 BA 所依赖的几何一致性,导致三维结构被拉扯、相机位姿偏移,甚至在局部区域形成错误但“自洽”的几何结构。
2026-04-05 14:09:05
330
原创 Linux 系统性能压测工具全景指南(含工程实战)
在讨论工具之前,我们先明确一个核心问题:压测的核心价值是什么?真实工程场景中,“系统慢”的排查往往陷入误区:出现这种情况,大概率是因为没有找到真正的瓶颈——可能是CPU已经被计算任务打满,导致进程无法及时调度;可能是磁盘IO读写阻塞,数据库无法快速读取数据;也可能是网络带宽耗尽,请求无法正常传输;甚至是内存不足触发swap,导致系统性能断崖式下降。而压测,就是解决这种“盲目排查”的关键,其核心意义体现在4个方面:找到系统极限:明确系统在不同并发、不同负载下的性能上限(如QPS、TPS、响应时间),避免生产环
2026-04-05 14:08:17
409
原创 Cloudpods Baremetal - 裸金属自动化
KVM安装一个Debian 12虚拟机(安装好软件包和配置),将镜像下载下来。安装包 cloud-init ,用于初始化安装包 vlan、ifenslave 用于VLAN和Bond。
2026-04-04 14:21:32
326
原创 前端新范式:用 AI 提效开发,用 E2E 保证迭代质量
如果接口返回用户未绑定手机号,就跳转到绑定页,让用户填写手机号和验证码完成绑定。这一步人工要做的事:确认拆解是否合理,有没有漏掉的边界情况。——比如用户连续点击"发送验证码"怎么处理,encryptedData 为空时的提示是否友好,这些细节 AI 不一定能自动想到。代码写完后,把代码给 AI,让它提取功能点并生成 E2E 测试用例。把这段话给 AI,让它把需求拆成具体的技术任务。——AI 生成的 7 个用例基本合理,登录成功、失败、绑定流程都有。审阅完,给 AI 一个指令:测试用例没问题,帮我跑一下。
2026-04-04 14:20:56
204
原创 小容量32单片机也上bootloader?拆机烧录的苦谁懂,能上抓紧上
Bootloader是嵌入式系统中一段特殊的引导程序,用于固件加载或更新等功能,在芯片发生复位时首先会进入Bootloader进行引导,决定是否更新或跳转应用程序。在这里使用的是小容量的单片机,所以Bootloader程序尽量精简,这样可以给应用程序让出更多的空间,一般简单的应用下我们会进行分区,分为Bootloader区和App区,如下图所示:可以看到大致上最简单的分区方案就是这样,其中app有效标志放在了Bootloader区末尾,这个标志就是Bootloader进行引导的条件。
2026-04-03 14:51:08
362
原创 从零开始:C#单文件AOT打包前后端分离项目
在 .NET 生态里,官方早就给出过“前后端一把梭”的方案——Blazor Server、Blazor WebAssembly、ASP.NET Core 寄宿 IIS 等。但它们要么强依赖前端独立部署,要么运行时拖家带口,源码裸露、启动速度、跨域配置都是痛点。反观 Go、Rust 社区,一个 app 文件就能跑完 HTTP 服务 + 静态站点,拷贝即用,编译完连源码影子都看不到。其实 C# 也能做到。今天这篇,就把“单文件、AOT、前后端全打进 exe”的完整流程拆给你看。
2026-04-03 14:50:19
391
1
原创 python-langchain框架(1-8-1 缓存机制——让 AI 应用“记住”高频问题)
我们会发现一个奇怪的现象——每天有30%的问题是完全相同的!用户都在问:'快递几天能到?'、'商品有保修吗?每个问题都要调用GPT-4,每次花费0.03美元,一天就是数万美元……更糟的是,相同的回答,用户要等3-5秒才能看到。解决方案:引入缓存机制(如下使用sqlite当缓存数据库),当用户问道相同问题时,从缓存里直接给出答案不用将问题在送给大模型,既节约金钱成本也节约时间成本。运行结果:可以看到 第一次的回答和第三次的回答是完全一样的。
2026-04-02 15:23:45
12
原创 Claude Code的完美平替:OpenCode + GitHub Copilot
虽然最近国产编程模型不断发力,Claude Code + GLM-4.7的表现非常出色,但面对复杂问题,Claude系列模型依然完胜。难道我们只能眼馋Claude全家桶的编程体验吗?作为一名追求极致生产力的开发者,我发现了一个绝佳的完美替代方案:OpenCode + GitHub Copilot。这个组合不仅能让你享受如 GLM-4.7 一样的性价比,还能更方便的使用 Claude 的顶级模型。
2026-04-02 15:23:03
365
原创 FastAPI数据库实战:从SQLAlchemy原理到高效连接管理,告别性能瓶颈
接着,我们定义一个用户模型,并创建一个获取数据库会话的FastAPI依赖项。这是实现“请求级别Session”的关键!# 创建表(通常在应用启动时调用一次)"""数据库会话依赖项。每个请求获取一个独立Session,请求结束后确保关闭。"""try:yield db # 将db注入到路由函数中finally:db.close() # 无论请求成功与否,最终都会关闭会话。
2026-04-01 15:21:45
172
原创 Vue3 + 高德地图(AMap) 实现平滑的实时轨迹展示
监听临时轨迹走过的路径并添加到之前创建(缓存)的 polyline (说明: polyline 在有轨迹的时间段是一直展示的,现在 polyline 就会有和临时轨迹有部分是重叠的,重叠部分就是临时轨迹部分,等到下一次渲染轨迹,清除了临时轨迹就只展示 polyline,然后从 polyline 末端开始又一轮增量路径的轨迹)5.根据缓存的轨迹线对比当前轨迹数据计算新增路径(如果没有缓存那当前轨迹数据就是新增路径)3.清除之前的缓存的临时轨迹(第一次渲染是没有临时轨迹的)6.创建临时轨迹实例通过。
2026-04-01 15:21:07
333
原创 开源的包管理和环境管理工具conda详解、应用场景及案例分析
核心定位:Conda 是「包管理+环境管理」二合一工具,核心解决版本冲突和依赖问题;核心场景:多项目环境隔离、团队环境统一、数据科学/机器学习包管理;核心操作create(创建环境)、activate(激活)、install(装包)、(环境导出/导入)。
2026-03-31 15:49:37
366
原创 Satori GC:同时做到高吞吐、低延时和低内存占用
ET 的 Satori GC 最有意思的地方不在于它把某个现有方向做得更激进,而在于它在设计上先问了自己:最频繁的那部分回收,真的必须是全局问题吗?
2026-03-30 15:34:19
331
原创 一个好用的模块化和自动服务注册框架
在使用/// 初始化配置./// 注册服务时要过滤的类型或接口,这些类型不会被注册到容器中./// 自定义要注册的程序集.在自动服务注册时,框架会自动忽略把 IDisposable、ICloneable 这里没意义的接口注册到容器中,读者也可以添加一些过滤接口。例如对于 MyService 服务,实现了 IMyService、IDisposable 两个接口。如果开发者需要动态引入程序集,不使用模块类强引用时,可以使用。});aaa.dll 里面需要有模块类。
2026-03-30 15:33:22
344
原创 .NET 本地Db数据库-技术方案选型
LiteDB 的锁机制在高并发场景下天然脆弱,而 SQLite 的 WAL 模式能更好地支持并发读写,且生态更成熟、调试工具更丰富。InitTables<T>() 主要用于建表/补字段,复杂变更(改列类型、重命名列、删列、数据搬迁)通常仍需你手动 SQL 或版本脚本。这类开销低、速度快、透明 SQL;纯读写吞吐(尤其批量写):通常 SQLite ≥ LocalDB > LiteDB(具体取决于索引、事务、同步模式、数据模型)56 // ====== 迁移2:AddAgeAndBackfill ======
2026-03-29 21:08:05
363
原创 给 Claude 装个仪表盘,时刻监测Token消耗跟任务进度
HUD 原意是“平视显示器”,通常出现在战斗机飞行员的头盔或高端汽车的挡风玻璃上。Claude HUD干的也是这件事。它是一个专门为 Claude Code 设计的插件,会在你的终端底部常驻一个状态栏。有了它,你不再需要通过翻看长长的聊天记录去确认进度。它把 Claude 的运行状态、Token 消耗、正在使用的工具、甚至当前的 Git 分支,全都浓缩在屏幕最下方。一句话总结:它让 Claude 从一个“黑盒”,变成了一个“透明盒”。
2026-03-28 15:48:52
246
原创 [拆解LangChain执行引擎]以Actor模型的视角来看Pregel
在表示Node的PregelNode类中,它的channels字段表示提供输入的Channel列表,triggers字段则提供当前Node触发器的Channel列表,在此列表中的任一Channel具有变更都会触发当前Node的执行。每个Node执行完后(这里没有执行任何具体的操作,可以任务是一个空操作),除了将自身的名称写入“output”Channel之外,还需要写入相应的Channel驱动后续Node的执行(“foo”执行完后写入“bar”,“bar”执行完之后写入“baz”)。
2026-03-28 15:48:09
204
原创 通过 DeepFlow 查询函数在 CPU 上消耗的时间(CPU 性能剖析)
本文主要介绍 DeepFlow 的 AutoProfiling(on-cpu)持续性能剖析功能的配置与使用。该能力与 DeepFlow 的部署方式无关。自 v6.6.3 起,deepflow-agent 的配置格式有较大调整,本文使用新版本配置格式,建议使用 v7.0 LTS 或后续 LTS 版本。
2026-03-27 15:17:04
387
原创 将SignalR移植到Esp32—让小智设备无缝连接.NET功能拓展MCP服务
选对框架很重要:SignalR的群组管理、消息路由等特性,省去了大量基础设施代码。如果从头手写WebSocket,这些功能得花几周时间。内存管理是嵌入式永恒的主题:ESP32的RAM限制让我对每一个malloc都格外小心。合理使用PSRAM、避免内存碎片、及时释放资源,这些在PC上不用care的问题,在嵌入式上都是坑。AI辅助编程真香:这次项目中,SignalR C++客户端的移植、消息处理等大量代码都是借助AI生成的。虽然生成的代码需要调试和优化,但确实大幅提高了开发效率。消息推送解决实际问题。
2026-03-27 15:16:12
330
原创 让OpenClaw替我“看”了一场发布会后,我决定把它写进博客
找到最陡的方向后,就往那个方向迈出一步。但是,AI 的大脑里藏着一套神秘的自我纠错绝招,能让它在每一次失败后,一点点自动修正自己,直到完美完成任务。你根据每次喝汤的“难喝程度”(误差反馈),不断微调盐和水的比例,直到味道刚刚好。它告诉 AI 每次预测结果离正确答案差了多少,并指明下一步该往哪个方向调整(是该加盐还是减盐),从而让 AI 能够快速、精准地找到最佳的解决方案,而不是无限期地盲目试错。AI 的学习过程,就是不断旋转这些旋钮,让它的预测结果越来越准确,也就是让“误差”降到最低(走到山谷的最底端)。
2026-03-26 15:30:55
214
原创 【EF Core】“Code First”方案下以编程方式生成迁移
MF 的思想最初源自信号处理领域中的最优线性滤波理论(Matched Filter Theory),用于在已知信号形态的情况下从噪声背景中提取目标信号,而在遥感和高光谱图像分析中,这一方法被移植过来,并针对光谱数据进行了适配。MF 在高光谱目标检测中的具体过程,本质上就是构造一个针对目标光谱的线性变换,让目标像素的响应尽可能高,而背景像素的响应尽可能低。由此,我们将像素区分为目标信号和非目标信号两部分,显然,目标像素的光谱中前者占比更大,而背景像素的光谱中后者占比更大。目标对统计特性的污染可忽略。
2026-03-26 15:20:14
186
原创 拆解 OpenHands(8)--- CodeActAgent
大模型是不可控的。不是‘给LLM一堆工具让它自由发挥’,而是大部分由确定性代码构成,在关键决策点巧妙地融入LLM能力。好的 Agent 应用,是工程设计与 AI 能力的精妙结合,而不是对 AI 的盲目放权。在 OpenHands 智能框架的生态中,CodeActAgent 占据着核心地位,它是基于 CodeAct 理念构建的核心代理模块。其设计初衷极具巧思:将各类复杂任务统一转化为 “代码执行” 的形式来完成,同时兼顾自然语言对话的交互特性。
2026-03-25 15:46:57
387
原创 用Qwen code进行CUDA代码优化(一)
因为我注明使用所有的优化技巧,意在考查一下AI对于优化的掌握程度,一口气列出了七种优化方法,算是比较全的,但是优化是个复杂的过程,不仅需要了解所有的优化技巧,还有了解每种优化实施的特定条件,如果只是把所有的优化列举出来,简单丢给AI,希望AI能达到最佳的优化,那也是不现实的,下一篇会讲到某些条件下,要达到最佳的优化效果,人的因素还是占主要成分。因为优化只针对特定的GPU,AI还详细列出了GPU的具体参数,非常的详细,可见AI对于编程所涉的范围和知识储备还是非常详尽的。显示各种优化版本的性能评估结果。
2026-03-25 15:46:25
204
原创 .NET 10 与智能体时代的架构演进:以 File-Based Apps 为核心的 C# 生态重塑
然而,随着.NET 10 的发布,微软通过推出“基于文件的应用程序”(File-Based Apps,通常通过 dotnet file 命令调用)这一功能,标志着 C# 正在经历一场根本性的范式转移。在未来的智能体时代,这种能够随智能体需求而“忽大忽小”、既能“秒开”又能“扛鼎”的技术平台,将成为开发者和 AI 智能体共同的首选。正如业内所评价的那样,.NET 10 终于让 C# 摆脱了“企业级沉重”的标签,以一种前所未有的“丝滑”姿态,全速切入了 AI 智能体的核心版图。通过在文件头添加 #!
2026-03-24 14:10:03
307
原创 国内四大AI编程IDE对比(二):从零构建桌面应用实测(补上Trae)
之后Comate一直尝试解决"没有对话框界面"的问题,想通过创建消息框来验证。这个思路是好的,但可惜又陷入了编译问题,多次都无法解决。到这里已经一个半小时了。我只能停下——毕竟只是测试,不能花大量时间帮AI解决编译问题吧。
2026-03-24 14:09:30
621
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅