Go 语言里的 sync.OnceValue:把懒加载写得更直接

Go 1.21 新增的 sync.OnceValue,把“只执行一次”和“结果缓存”合成了一个更顺手的接口。它适合配置加载、连接初始化和昂贵计算这类懒加载场景,但在 panic 传播和失败重试策略上,和传统 sync.Once 仍有明显差异。

Go 语言里的 sync.OnceValue:把懒加载写得更直接

Go 语言中 bufio.Scanner 的最佳实践

在 Go 里处理文本输入时,`bufio.Scanner` 常被当作“逐行读取工具”使用,但它真正的价值不止于此。本文从为什么要选它、基础用法、缓冲区限制到实际场景与性能取舍,梳理一套更适合工程实践的使用方法。

Go 语言中 bufio.Scanner 的最佳实践

Go Modules 时代,GOPATH 还有哪些不可替代的作用?

Go Modules 已经取代 GOPATH 成为 Go 项目的默认依赖管理方式,但这并不意味着 GOPATH 失去意义。本文从工作区历史、Modules 带来的变化、GOPATH 在工具安装与模块缓存中的现职,以及多 GOPATH 与环境配置建议几个角度,梳理它在现代 Go 开发中仍然保留的实际价值。

Go Modules 时代,GOPATH 还有哪些不可替代的作用?

Go 生态里的 AI 库盘点:SDK、开源与选型指南

Go 接入大模型并不缺方案,难点在于生态分散、库的定位不同。本文按云端模型、MCP、本地推理和 RAG 四类场景梳理主流 Go 库,保留各自适用边界,并给出新项目与存量项目的选型建议,方便快速判断该直接上官方 SDK,还是走兼容接口或自建链路。

Go 生态里的 AI 库盘点:SDK、开源与选型指南

Go 语言计算向量相似度的三种常见方案

在 Go 里计算向量相似度,常见路径并不止一种。小规模数据可以直接手写余弦、点积和欧氏距离;需要批量计算和更高性能时,适合交给 gonum 这类数值库;当规模进入十万到百万级,并且要做 ANN 检索时,更实际的做法是接入向量数据库。

Go 语言计算向量相似度的三种常见方案

如何用 Go 实现 RAG?文档切块、向量化与检索实践

这篇文章用 Go 把 RAG 的核心链路拆成三步:文档切块、Embedding 向量化和相似度检索。你可以直接看懂最小实现,也能据此判断 chunk 大小、重叠比例、Top-K、向量库选型这些参数该怎么取。 想让大模型真正读懂企业知识库,关键不在于把文档一股脑塞进提示词,而在于先把内容拆成可检索的片段,再按问题取回最相关的上。

如何用 Go 实现 RAG?文档切块、向量化与检索实践

Go 中优雅管理 AI 应用 Prompt:从模板化到多语言与版本控制

随着 AI 应用里的 Prompt 数量增长,直接在 Go 代码里拼接字符串很快会碰到维护、复用、多语言和回滚问题。本文围绕模板化、语言切换和版本管理三条主线,整理一套可落地的 Prompt 管理方式,并保留 Go 标准库即可实现的核心做法。

Go 中优雅管理 AI 应用 Prompt:从模板化到多语言与版本控制