从 OpenAI 翁家翌在 WhynotTV 的采访中,关于后训练、infra 等观点受到的启发。
-
异步编程中的同步阻塞陷阱:从一次RAG评估bug说起
核心问题
在异步代码中调用同步方法,就像在高速公路上突然停车——整个系统都会被你堵住。本文将带你从一次真实的RAG评估Bug出发,深入理解异步编程中的同步阻塞陷阱,以及如何正确使用
asyncio.to_thread()来避免这类问题。 -
从混乱到秩序:我如何设计一个统一的 LLM 调用框架
在 AI 应用开发中,调用大语言模型看似简单,但当项目规模扩大后,你会发现各种问题接踵而至:配置散落各地、追踪信息需要层层传递、Token 消耗无法统一记录……今天我想分享一下我是如何在 CookHero 项目中设计一个统一的 LLM 调用框架的。
-
AI Agent 落地实践:模型能力 vs 工程稳定性
在实际落地的 AI Agent 系统中,什么才是真正决定成败的关键?
-
MCP、Function Calling 与 AI Agent:概念辨析与关系梳理
从工程实现角度理解 MCP 和 Function Calling 的区别,以及它们与 AI Agent 的关系。
-
ContextVar底层实现深度解析:从原理到实战
核心洞察
Java的ThreadLocal绑在线程上,Python的ContextVar绑在执行上下文上。在协程时代,一条线程会并发执行多个Task,如果继续用ThreadLocal存储上下文,Task之间会互相覆盖。ContextVar通过”协程创建时复制Context”的机制,完美解决了这个问题。本文将深入解析ContextVar的底层实现机制,并与ThreadLocal进行本质对比。
-
链表 vs 数组:为什么高性能系统偏爱连续内存?
从网络测量的视角看数据结构选择:cache locality 为什么比算法优雅更重要。
-
Web服务器高并发技术深度解析:事件循环 vs 线程池模型
核心对比
事件循环和线程池是两种本质不同的并发模型。事件循环用”时间分片”在一个线程上同时处理数万连接,资源占用极低;线程池用”真并行”让每个请求独占资源,简单但开销巨大。本文将深入解析这两种模型的底层原理、优缺点对比,以及在什么场景下选择哪种架构。
-
RAG 评估的黄金陷阱:为何高召回率不等于高质量答案
在构建 RAG 系统时,我们往往习惯盯着检索指标如精确率和召回率,却忽略了生成环节的真实表现。本文剖析了为何高召回率可能掩盖生成幻觉,强调忠实性和答案相关性才是评估核心,并分享从人工评测到 LLM-as-Judge 的演进路径,以及构建分层评估流水线的实践建议。读完后,你将明白如何避免评估误区,确保 RAG 系统真正可靠。
-
RAG 检索缓存的双层架构:L1 精确匹配 + L2 语义匹配的设计权衡
在 RAG 系统中,检索延迟和 API 成本是两大痛点。本文记录了我们在 CookHero 项目中设计的 L1+L2 双层缓存架构——用 Redis 做精确匹配,用 Milvus 做语义匹配——以及这个设计背后的思考和踩过的坑。