- 博客(34)
- 收藏
- 关注
原创 15天学会AI应用开发(一)搭建AI大模型应用开发环境
在接下来的15天里,我们将从零开始,一步步掌握如何利用大模型(如GPT、通义千问等)构建自己的AI应用。## 第五步:使用Jupyter Lab进行交互式开发(可选但推荐)对于AI应用开发,Jupyter Lab能让你边写边看结果,尤其适合调试prompt和数据处理。## 第二步:创建虚拟环境虚拟环境就像是一个独立的“小房间”,里面只装这个项目需要的包,互不干扰。## 第三步:安装核心库现在虚拟环境已激活,我们来安装AI应用开发的核心依赖。,教你如何写出高质量指令,让大模型输出你想要的答案。
2026-07-31 16:47:27
216
原创 我用了 8 个月 Codex CLI,总结出这套 AI 编程工作流
我一用就是 8 个月,从最初的“这玩意儿能干啥”到现在的“没它我写代码像原始人”,中间踩了无数坑,也总结出了一套高效的工作流。## 总结:AI 编程不是取代你,而是放大你8 个月下来,我的感受是:Codex CLI 不是“自动编程机”,而是“超级辅助”。所以,别怕 AI 抢你饭碗,它只是把“写代码”的门槛降低了,但“设计代码”的门槛依然很高——而那个门槛,正是我们程序员的价值所在。但问题也来了:它偶尔会写出一些“看似正确、实际有坑”的代码,比如生成了一个不存在的库函数,或者忘了处理边界情况。
2026-07-30 16:03:19
168
原创 高性能服务器的基石:从并发模型到状态机
在互联网时代,高性能服务器是支撑亿级用户请求的核心。无论是电商平台秒杀系统、实时聊天应用,还是游戏服务器,其底层都离不开两个关键概念:并发模型 和 状态机。 今天,我们就用通俗的语言和代码实例,揭开高性能服务器的神秘面纱。—## 一、并发模型:如何同时处理成千上万的请求?服务器的本质是“处理请求”。假设你开了一家奶茶店,顾客(请求)排长队,你该怎么服务?1. 单线程阻塞:你一个人,一次只能服务一个顾客,其他顾客干等。 → 缺点:CPU 利用率极低,吞吐量极低。2. 多线程/多进程:雇佣多个店员,每
2026-07-30 16:02:11
225
原创 Python中绘制R的科研级可视化图
## 5. 与R语言的对比与迁移技巧| 功能 | R(ggplot2) | Python(plotnine/seaborn) ||------|--------------|---------------------------|| 基础语法 |科研人员可根据项目需求灵活选择,无需纠结于语言之争,重要的是产出清晰、可复现的图表。本文将从实战角度出发,通过代码演示,展示如何在Python中复现R风格的科研可视化,涵盖统计图、热图、箱线图等常见类型。生成模拟数据,模拟科研中常见的基因表达、药物剂量等场景。
2026-07-28 17:14:56
291
原创 15天学会AI应用开发(八)使用向量数据库实现RAG功能
简单来说,RAG就像一个“AI大脑外挂”:当大语言模型(LLM)遇到不知道的问题时,它能从外部知识库中“查资料”来辅助回答。向量数据库(如ChromaDB)就像AI的“第二大脑”,让它能实时调用外部知识,解决知识过时和幻觉问题。## 实战案例:打造一个“AI知识助手”我们的目标是:创建一个能回答“关于Python编程”问题的AI助手。传统的关键词搜索(比如SQL的LIKE)无法理解语义,比如“苹果”和“iPhone”在语义上相关,但关键词不匹配。:把检索到的文档作为上下文,和你的问题一起拼成完整的提示词。
2026-07-28 17:13:55
251
原创 过去三个月对我帮助最大的一个 skill:grill-me
从基础的公式优化,到中级的数据结构选择,再到高级的性能分析和重构,每一步都是对代码的“拷问”。如果你能养成这个习惯,三个月后,你也会发现自己的代码质量、效率和可读性都有了质的飞跃。记住:最好的代码不是一次写成的,而是不断被“grill”出来的。## 中级用法:数据结构与算法优化当处理更复杂的数据时,grill-me 会引导你选择合适的数据结构。它并非某个现成的工具或库,而是一种思维模式与代码实践的结合体:通过“拷问”自己的代码,持续优化逻辑、提升性能。高级的 grill-me 还会考虑代码的可维护性。
2026-07-28 15:02:23
154
原创 .NET Core跨平台的奥秘[中篇]:复用之殇
csharp// 抽象层:定义与平台无关的设置存储接口public interface ISettingsProvider{ string GetSetting(string key, string defaultValue);
2026-07-26 14:57:38
239
原创 什么是内存(二):虚拟内存
当你看到“缺页中断”或“段错误”时,就能明白背后的原因——要么是页不在内存中,要么是访问了未映射的地址。在现代计算机系统中,虚拟内存是一个核心概念,它让每个进程都以为自己拥有独立且连续的内存空间,而实际上物理内存可能被多个进程共享、分页甚至交换到磁盘。此外,CPU使用TLB(Translation Lookaside Buffer,快表)缓存最近使用的页表项,避免每次都要访问内存中的页表。由于我们映射了前10个虚拟页,访问范围在20页内,TLB缓存了最近使用的页表项,命中率很高。:替换最久未使用的页。
2026-07-26 14:56:32
165
原创 C语言中的数据结构和变量
其实,C语言正是计算机运行的“翻译官”,它把复杂的数据关系用简单的内存模型呈现出来。今天,我们就用通俗的语言和代码示例,来拆解C语言中的数据结构和变量。你可以把变量想象成一个“小盒子”,每个盒子有名字(变量名)、大小(类型)和里面装的东西(值)。## 6. 链表:动态的“数据链条”链表是动态数据结构的典型代表,它由节点组成,每个节点包含数据和指向下一个节点的指针。),需要逐成员比较。## 4. 指针:内存的“地址导航器”指针是C语言的精髓,也是最让初学者头疼的概念。数组的索引从0开始,这是C语言的传统。
2026-07-25 16:01:43
227
原创 形式化方法 × UML
这个例子模拟了UML时序图中的时间约束,并用形式化方法中的时态逻辑思想验证了“超时后不能操作”的属性。从基础的状态机图约束检查,到复杂的时序属性验证,我们看到了如何用代码将UML图形转化为可执行的逻辑断言。虽然本文的示例采用了Python简化模拟,但在实际工业应用中,我们可能需要使用专门的工具(如Alloy、TLA+或Event-B)来对大型系统进行形式化验证。### 高级用法:结合UML状态机图与形式化时序逻辑在更复杂的系统中,我们需要验证跨时间的属性,比如“用户登录后,必须在30秒内完成操作”。
2026-07-24 17:36:26
225
原创 让 3 个 AI 一起写公众号:一篇 Hermes 多 Agent 实操
pythonfrom hermes import Agent, MessageBusimport asyncio# 1. 定义消息总线(所有 Agent 共享)bus = MessageBus()# 2. 选题 Agent:负责市场分析和选题策划topic_agent = Agent( name="选题编辑", system_prompt="""你是一个专业的公众号选题编辑。根据用户提供的行业关键词,给出 3 个当前热门的选题方向。每个选题需要包含:标题、核心观点、目标读者。输出格式为 JSON 数组。
2026-07-24 17:35:17
181
原创 Fable 5 与 GPT-5.6 Sol 实战经验分享:什么任务该用哪个--更高效的使用你的token
代码任务用 Fable 5 省 token 保精度,创意任务用 GPT-5.6 Sol 提质量扩思路。
2026-07-23 15:33:46
199
原创 kokoroi-rs 的 WASM 实践
kokoroi-rs 的 WASM 模块正是这样一个尝试——将 Kokoro TTS 的核心能力编译为 WebAssembly,让高质量语音合成直接运行在用户的浏览器中,无需任何后端服务器。kokoroi-rs 的 WASM 模块将 Rust 代码编译为 wasm32-unknown-unknown 目标,通过 wasm-bindgen 生成 JavaScript 胶水代码,最终交付一个约 3MB 的 WASM 二进制文件。文本到音素的转换是 TTS 的第一步,也是中文场景中最复杂的环节之一。
2026-07-22 15:01:59
212
原创 PipedReader和PipedWriter的源码分析和使用方法详细分析(windows操作系统,JDK8)
/标记符:true表示与这个 PipedReader (消费者)相关联的PipedWriter(生产者)已经持有了这个PipedReader (消费者)对象(或者叫已经连接上了),反之,反之。一、PipedWriter(生产者)源码——向PipedReader(消费者)中的缓冲区(char[]数组)写入字符数据的字符输出流(生产者)二、PipedReader(消费者)源码——从自己的缓冲区(char[]数组)读取字符数据的字符输入流(消费者)3.2、加锁循环写和非加锁循环读到byte[]数组b中再处理。
2026-07-22 15:00:54
210
原创 Kimi K3悄悄上线:1M上下文、专攻编程,月之暗面的最强底牌亮了
就在今天上午,GPT-5.6刚刚在Tracking AI的离线IQ测试中拿下136分,破了LLM的天才线。K2.6能把任务拆成300个子任务并行跑,K3在这个基础上把上下文拉到1M——这两件事放在一起看,逻辑很清晰:月之暗面在赌AI Agent的未来。Kimi的API和第三方工具集成度一直是弱项,K3模型ID虽然已经开放,但开发者文档、SDK支持、社区生态能否跟上,决定了K3是天上的卫星还是地上的高铁。按K2系列的经验,Kimi在性价比上一直有竞争力,但K3如果要在1M上下文下保持低延迟,推理成本不会低。
2026-07-21 14:47:54
316
原创 OpenCode 中构建分层多智能体协作系统:DeepSeek 双模型成本感知调度实践
这套方案最核心的启示或许是:在多 Agent 系统中,"什么不交给谁做"比"谁做什么"更重要。能力边界的清晰定义、执行与探索的严格分离、读写的权限隔离、写作用域的冲突检测——这些约束机制才是系统稳定性的基石,而非 Agent 数量或模型能力。评论纪律:不写 AI 样板注释(“Initialize the service”),只写解释 WHY 而非 WHAT 的注释,不留被注释掉的代码——它们属于 Git 历史,不属于源文件。这不是"永不停止"的理想化循环,而是工程化的有界收敛。
2026-07-21 14:47:06
209
原创 24万星和5.7万星的两个框架,我焊在一起后它们封神了
第一个,AI 在「要构建什么」还没想清楚的时候就开始写代码。你跟它讨论需求,聊了三轮,它突然来一句「我来帮你实现吧」,然后一顿输出,写完一看,方向跑偏了。代码能跑,但不是你想要的。删了重来,token 已经烧掉了。第二个,规划倒是写了,但实现的时候还是漂移。代码和 spec 各走各的路,到最后 review 的时候才发现对不上。为了解决这两个问题,我分别找到了两个框架。OpenSpec,GitHub 5.7 万星,Fission AI 开源的 spec-driven 规划引擎。
2026-07-19 15:55:17
225
原创 从矩阵乘法到多模态大模型
显然,我在 CS336 中 Tokenizer 的 encode() 函数对长文本的效果很不好,于是我用 AI 快速跑了一个快速 Tokenizer,依旧使用的了 C++ 来写核心的循环合并部分(毕竟 C++ 的哈希表还是太强了),又加入了并行计算,然后就以 8 核全部 98.7% 以上榨干极致性能实现了快速的 Token 化。这个项目的起源在于斯坦福的 AI 神课 CS336。CLIP-ViT : 预算实在有限,训练的成本还是太高了,只能在了解其原理、感慨 OpenAI 财大气粗之后直接使用成品了。
2026-07-19 15:53:51
230
原创 图形渲染中的透明混合
现代 GPU 默认采用的是经典的 Source Over 混合公式。设:当前绘制颜色(Source)为Cs,透明度为αs。帧缓冲已有颜色(Destination)为Cd, 透明度为αd。
2026-07-18 14:43:09
194
原创 各向异性 (1) 数学意义
在计算机图形学中,几何体的形态特征通常分为两类:各向同性:物体在各个方向上的性质(如尺寸、密度)都是相同的。例如一个完美的球体,无论从哪个角度看,它的“宽度”都一样。各向异性:物体在不同方向上的性质表现出差异。例如一个椭球体,它在长轴方向上看起来很宽,但在短轴方向上看起来很窄。在 3DGS 的语境下,各向异性指的就是高斯椭球体在三维空间中呈现出的这种“非均匀”的拉伸或压缩特性。这种特性并非随意产生,而是由协方差矩阵Σ的内部结构严格决定的。
2026-07-18 14:42:19
169
原创 完成任务,需要哪些能力?
我们把整个任务过程拆开,我们会发现,一个真正能够完成工作的 AI,至少需要具备下面几种能力。因此,Agent 与聊天机器人的最大区别,并不是它拥有更多工具,而是:它拥有完成任务的能力。更准确地说:Agent 是一个基于LLM能够围绕某一个目标持续工作的 AI 系统。所以到了这里,我们就会发现,这已经不再是一次推理,而是一个持续运行的过程。而是不断的:思考->行动->观察->调整->直到目标完成。这一章,我们完成了从 LLM 到 Agent 的认知转变。现在,我们终于可以回答最开始的问题了。
2026-07-15 14:45:09
227
原创 升级Hermes Web UI
方式一:内置升级命令(推荐)在 WSL 终端执行:或这个命令会自动清理 npm 缓存、安装最新版并重启服务。方式二:手动 npm 升级。
2026-07-15 14:44:00
226
原创 Magicodes.IE.IO:零依赖、流式低分配的 .NET Excel 读写库
Magicodes.IE 团队在维护老 Magicodes.IE.Excel(基于 EPPlus)的过程中吃够了这个苦,于是从头实现了一个 零运行时依赖、流式低内存、多 TFM 覆盖 的 Excel I/O 引擎——Magicodes.IE.IO。我们在 BenchmarkDotNet 中跑了 Magicodes.IE.IO、EPPlus、MiniExcel、ClosedXML、OpenXML SDK 的横向对比。基于 .xlsx 模板,把单元格里的 {{属性名}} 占位符替换为数据值;
2026-07-14 22:13:01
221
原创 一种适合程序员的 Agent 协作方式的实践
构思与实践前提在展开具体实践之前,先交代三个前提条件。第一,使用集成开发环境(IDE)作为 Agent 协作的面板。本实践的 IDE 限定为 TRAE,因为它免费,且功能足以满足需求。更重要的是,IDE 本身就是可观测性和可交互性的来源——你能实时看到 Agent 在做什么,也能随时介入调整。第二,使用 DeepSeek 作为 AI 模型。它足够便宜,即便是 Flash 这样较轻量的模型,产出质量也足够好。第三,笔者有一个长期保持的习惯:使用单独的 Git 仓库作为日常工作区和知识库。
2026-07-14 22:11:58
241
原创 wso2~关于workbuddy中mcp在wso2中的授权端点
统一地址:https://test-apim-gateway.xxx.com/mcp-agg/1.0.0/.well-known/oauth-protected-resource返回样式],“openid”,在apimgt.org.wso2.carbon.apimgt.gateway项目中做了相关适配合在admin平台添加自定义的key manager ,状态为关闭,避免对其它api产生影响image。
2026-07-12 15:15:09
250
原创 Dry-Run Harness (预演执行)
核心工作流: ① Generator 参考 gold 库中的高质量样例生成输出 → ② Critic 评估输出质量 → ③ 未通过则修订后重新提交(循环直到通过或达上限) → ④ 通过审批的输出存入 gold 库,供后续任务参考。核心工作流: ① Agent 提出有副作用的动作 → ② 以 dry_run=true 模式执行生成预览(零副作用) → ③ 将预览呈现给人工审批 → ④ 批准则以 dry_run=false 真实执行,拒绝则中止。这是对"LLM 必须是中控器"这一假设的最大挑战。
2026-07-10 14:38:09
223
原创 0x04 17 种架构逐一分析
核心工作流: ① LLM 推理当前状态并决定下一步行动 → ② 执行工具调用(Action) → ③ 接收工具返回的观测结果(Observation) → ④ 循环回到①直到 LLM 判断任务完成,输出最终答案。核心工作流: ① 任务分解为子领域 → ② 角色分配(给各专家 Agent) → ③ 按流水线协作(前一个的输出是后一个的输入) → ④ 由 Synthesize Agent 汇总所有角色产出,生成最终结果。核心洞察: Planning 不是"更聪明的思考", 而是 把控制流变成可检视对象。
2026-07-10 14:37:32
139
原创 P15799 [GESP202603 五级] 找数
查找 find() auto it = ages.find(“Bob”);检查存在 count() if (ages.count(“Bob”)) 存在返回 1,不存在返回 0。AC 记录 : https://www.luogu.com.cn/record/273884639。键已存在时会忽略插入。判空 empty() if (ages.empty()) 无元素时返回 true。删除 erase() ages.erase(“Alice”);sort()(排序)、find()(查找)、copy()(复制)等。
2026-07-09 16:27:21
239
原创 为什么统计Token个数而非文字个数
改进方式是按照文字长度来截断历史对话,不过字跟字又有所不同,不如“猪”是个单字词,而“鹦鹉”是个双字词。对于大模型来说,“猪”和“鹦鹉”具有同等权重,它们都占用一个Token,也就是词元。所以,更好的办法是统计Token数量,而非统计文字数量。Token不是单个字、也不是单个字母,而是大模型训练时固定好的“最小词块”。早期的AI库主要适配英文,常用单词、词根、词缀直接就是一个Token。对于中文则没有完整常用中文预制词块,大多只能拆成偏旁、笔画、字节片段。
2026-07-09 16:26:28
164
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅