共 179 篇文章
K8s Service 与 Istio 流量管理
Kubernetes (K8s) 的 Service 是修路并挂牌子,而 Istio 的路由则是专业的交警和智能导航。虽然它们最终都能帮你找到对应的 Pod,但处理流量的方式完全不在一个维度。
向量查询之跨语言语义搜索原理
用知识的摘要进行向量化查询的方式,找到相关知识。一篇英文的知识,也能找到相似的中文知识,这是为什么?
这是一个非常深刻且触及了现代自然语言处理(NLP)核心原理的问题。简单来说,之所以英文的摘要能搜索到中文的知识,是因为在向量化的世界里,语言不再是隔阂,“含义”(Semantics)才是坐标。
这种技术通常被称为跨语言语义检索(Cross-lingual Semantic Search)。其背后的原理可以拆解为以下几个关键层面:
那些反直觉的有趣现象
电车起火概率低于油车,确实是一个经典的"统计数据 vs 心理直觉"的冲突。这种现象在心理学上称为可得性启发式——如果一个事件更具冲击力、更容易被媒体报道,我们就会本能地认为它发生的频率更高。
除了电车自燃,生活中还有很多类似的反直觉现象。
Go 1.26 栈内存优化:深入理解 slice 的栈分配与逃逸
Go 语言以高效的垃圾回收(GC)著称,但在追求极致性能的路上,内存分配始终是绕不开的话题。2026年2月发布的 Go 1.26 带来了一个重要的编译器优化:现在可以在更多情况下将 slice 的后备存储分配在栈上,而不是堆上。
这意味着当你在函数内创建一个 slice 时,如果它不会逃逸出函数作用域,Go 1.26 会直接把它放在栈上,无需经过堆分配。这不仅减少了 GC 压力,还提升了缓存局部性,是一个"免费"的性能提升。本文将深入讲解栈与堆的区别、逃逸分析的原理,以及如何写出更高效的 Go 代码。
段永平的卖Put策略:像收保费一样做投资
在段永平的投资工具箱里,有一个策略他屡试不爽——那就是「卖Put」(卖出看跌期权)。这个策略被他形象地称为"收保费",今天我们就来详细聊聊这个策略的逻辑和风险。
TradingAgents-CN Prompt 总结
TradingAgents-CN 是一个基于 LLM 的多智能体股票交易分析框架,其精心设计的 prompt 体系值得深入研究。本文完整记录该项目中的所有 prompt 设计。
RAG 精排算法全景:7 种 Rerank 方法的工程对比
RAG(Retrieval-Augmented Generation)的"检索"二字,背后是一整条工程流水线——从用户 query 出发,经过粗排、召回、精排、选样四步处理后,才把 top-K 文档喂给 LLM。这条流水线上每个环节都有专门的算法优化,但最容易出效果、也最容易被忽视的,是中间的Rerank 阶段。
本文用一张全景图把 RAG 检索流水线串起来,然后按"相关性、多样性、时效性"三个维度,对 7 种主流 Rerank 算法做横向对比。
澳门路环半岛休闲游[Pentax 17, 35mm, Fuji C400]
去过澳门好多次了,但还没去过路环岛,早就听说是个很休闲的去处,于是在一个天气晴好的下午出发。过关后终于不是坐"发财车"了,而是坐公交巴士到路环市区,逃离澳门的纸醉金迷。
RAG 核心:Embedding、向量检索与 Rerank
什么是 RAG?
RAG(Retrieval-Augmented Generation,检索增强生成)是大模型应用的核心架构。它通过"检索+生成"的两阶段模式,让 AI 能够利用私有知识库回答问题,而不是仅依赖模型内部的训练数据。
MCP 完全指南:从协议原理到 Go 服务开发实战
MCP(Model Context Protocol)是 AI 与大模型交互的桥梁,让 AI 能够调用外部工具和资源。本文详细介绍 MCP 的核心概念、三种传输模式的区别,以及如何用 Go 开发自己的 MCP 服务。
MCP(Model Context Protocol,模型上下文协议)是一个标准化协议,旨在增强大语言模型(LLM)与外部应用之间的交互。
期权滚动交易:Short Put 与 Covered Call 的实战技巧
引言
期权交易中,卖方策略一直是专业投资者青睐的方式。与买方"以小博大"不同,卖方更追求稳定的权利金收入。本文将从实战角度出发,探讨期权卖方的核心技巧。
ReAct 论文解读:在语言模型中协同推理与行动
ReAct(arXiv 2210.03629)是姚顺雨 2022 年 10 月发表、2023 年 5 月在 Kigali 的 ICLR 2023 Oral(Notable Top 5%)上正式宣读的论文。它解决的问题很朴素:让大语言模型在同一个轨迹里同时"想"和"做"。在此之前,Chain-of-Thought(CoT)和"只行动"(Act-only)是两条互不往来的研究脉络,ReAct 是第一条把它们显式缝合起来的路径。
微单无法复制的 7 件事:胶片的不可替代性
微单在绝大多数技术指标上已经远超胶片了——像素、高感、动态范围、对焦速度、连拍、视频能力,都是碾压级的。
但真正玩过一段时间胶片之后,很多人会发现有些东西确实不是"数码 + 后期"能替代的。这不是情怀滤镜,而是物理和化学层面的本质差异。
解决部署时新旧构建产物切换导致的静态资源 404
问题现象
在构建部署过程中,访问页面时出现 404 错误,刷新后消失。这不是代码问题,而是部署时新旧构建产物切换导致的资源 404 —— 典型的 Next.js 部署原子性问题。
Next.js 核心渲染模式解析:SSG、ISR、SSR、CSR
在 Next.js 开发中,选择合适的渲染模式是提升应用性能的关键。本文详细解析 Next.js 的四种核心渲染模式。
什么是渲染模式?
渲染模式决定了页面何时生成 HTML以及由谁来生成。不同的模式在性能、实时性和 SEO 方面各有优劣。
提升 RAG 召回率的最低成本方案:3 个 Query 改写范式
跑过 RAG 的同学大概率踩过这个坑:Embedding 模型选得很好、向量库也没问题,但召回质量就是不行。
排查一圈下来,原因往往出乎意料——不是 Embedding 不行,而是用户的问题太"糙":
"这个东西怎么用?" ← 缺主语
"为什么我那个又不行了?" ← 全是代词
"性能怎么样?" ← 完全没头没尾
"a 和 b 哪个好?" ← 缺上下文课题分离:做好自己的事,其他的都与你无关
你是否经常陷入这些困扰?
- 总是忍不住想要讨好所有人?
- 别人一个眼神就内心戏十足?
- 过度在意别人的评价和看法?
- 为别人的情绪负责,活得很累?
- 面对选择时,总是想太多?
- 明明是别人的事,却比自己的事还操心?
如果答案是"yes",那么今天我想和你聊聊"课题分离"——这个让我彻底想通的概念。
Zerus 环境管理工具的实现原理
在微服务开发测试场景中,如何高效管理多个并行测试环境,是一个长期痛点。一个成熟的环境管理平台,需要解决三个核心问题:环境隔离、流量路由、环境复用成本。Zerus 正是为解决这些问题而生的环境管理方案。本文从实现原理出发,介绍 Zerus 如何借助 Istio 和 Kubernetes 实现环境级别的流量调度与隔离。
向量数据库检索原理:从 Embedding 到最近邻搜索
在 AI 时代,向量数据库是 RAG(检索增强生成)系统的核心基础设施。但它究竟是如何工作的?为什么能实现"语义搜索"而非传统的关键词匹配?本文用通俗的方式解释其背后的原理。
基于 Elasticsearch 标签的推荐系统设计
背景
在内容平台中,如何让用户快速找到感兴趣的知识是一个核心问题。基于标签的推荐是一种简单而有效的方案——通过分析用户的兴趣标签,与知识内容的标签进行匹配,实现个性化的内容推荐。Elasticsearch 凭借强大的倒排索引和灵活的查询能力,成为构建标签推荐系统的理想选择。本文将介绍一种基于 Elasticsearch 标签的推荐系统设计方案,涵盖标签匹配、用户画像构建、以及推荐算法的实现。
莫瑞吉奥·卡特兰的《喜剧演员》

偶尔看到有人在车尾贴根香蕉,不懂什么意思,查了一下。
莫瑞吉奥·卡特兰(Maurizio Cattelan)的作品《喜剧演员》(Comedian)是一件引发广泛讨论的当代艺术装置。该作品于2019年在迈阿密巴塞尔艺术展上展出,内容为一根香蕉用灰色胶带贴在墙上。这件作品以12万美元的价格售出,引起了艺术界和公众的热议。
Go 并发进阶:WaitGroup vs ErrGroup 详解
Go 语言提供了丰富的并发原语,本文详细介绍 sync.WaitGroup 和 golang.org/x/sync/errgroup 的区别和使用场景。
简介
Go 的并发模型以 goroutine 和 channel 为核心,但在实际项目中,我们经常需要协调多个 goroutine 的执行。这就涉及到两组常用的工具:
- sync.WaitGroup:Go 标准库,简单同步
- errgroup:Go 扩展库,功能更强大
正念冥想的常见误区与进阶指南
作为一种源自东方禅修传统、如今被大量心理学研究支持的干预方法,正念在走向大众的过程中积累了不少常见误解。而这些误解,恰恰是阻碍练习者真正受益的关键。
本文面向已有一定正念基础的读者,帮助你识别最常见的五个误区,并从心理学和神经科学的角度,理解正念真正在做什么。
基于 LangChain 的结构化输出实践
在 AI 应用开发中,让大模型稳定地输出我们想要的格式是一个常见需求。本文介绍如何使用 LangChain 的 Golang 版本 langchaingo 实现 Prompt Template,并结合主流 LLM 的 JSON Mode 实现可靠的结构化输出。
什么是 Prompt Template
Prompt Template 是将提示词模板化的技术,通过占位符动态注入变量,让同一套提示词可以处理不同输入。类似于 Web 开发中的模板引擎。
MySQL 是如何执行一条 SQL 的
一条看似简单的 SELECT * FROM user WHERE id = 1;,在 MySQL 5.7 内部其实穿越了多层组件、多个内存数据结构、多种日志,才最终把结果返回给你。本文以 MySQL 5.7 为基线(其核心机制在 5.7 / 8.0 之间高度一致,差异点会单独标注),从一名数据库内核工程师的视角,把这条链路完整拆开。
10 个另辟蹊径的 MySQL 慢查询优化
做业务开发的同学,大概都有过被 MySQL 慢查询折磨的经历——明明索引建了、数据量也不大,接口却总是超时。常规的加索引、加缓存套路固然有效,但有时候换个思路反而能四两拨千斤。本文整理了项目中几个真实慢查询案例的优化思路,部分方案稍显「偏门」,但亲测有效。
MySQL vs Elasticsearch:使用场景深度解析
在做系统设计时,数据库选型是一个关键决策。MySQL 和 Elasticsearch 是两种不同定位的存储方案,今天结合实际项目经验,系统性地对比一下它们的适用场景。
MySQL 和 Elasticsearch 的定位差异
| 特性 | MySQL | Elasticsearch |
|---|---|---|
| 定位 | 关系型数据库 | 分布式搜索和分析引擎 |
| 数据结构 | 行存储,B+树索引 | 倒排索引,文档型 |
| 擅长 | 事务、关联查询、结构化数据 | 全文搜索、聚合分析、海量数据 |
| 数据模型 | Table(表) | Index(索引),Document(文档) |
MySQL 死锁:根源剖析与线上治理实战
在分布式高并发的后端架构中,数据库死锁(Deadlock)就像一个幽灵。尽管 InnoDB 引擎具备全自动的自救回滚机制,但频繁出现的死锁报错(错误码 1213)不仅会吞噬系统吞吐量,更是代码健壮性不足的显性信号。本文去掉生活化的类比,直接从资源竞争的结构本质出发,层层递进地拆解 MySQL 死锁的底层逻辑。