Build. Learn. Document. Repeat.
持续学习,持续实践,持续沉淀。
欢迎来到我的数字花园 🌱。
我习惯将学习、实践与思考沉淀为可复用的笔记,希望把零散的信息整理成系统化的知识,也希望它们能在未来的某一天再次帮助自己,或帮助正在阅读的你。
我相信知识不是一次性整理完成的文档,而是在学习、实践和复盘中不断生长的网络。
如果某篇文章帮助到了你,希望它也能成为你知识网络中的一个节点。
🕰️ 最近笔记
Python Generator 与 Flask SSE 流式响应
Engineering / Python下面的函数统一处理普通响应和流式事件响应:
Python Thread 线程基础
Engineering / Python看到 threading.Thread 时,容易把它理解成“让函数去后台执行”。这个说法只描述了表面现象,没有解释后面的几个问题:为什么调用 start() 后输出顺序变了,为什么有时需要 join(),为什么多个线程修改同一个变量会出错,…
LangChain 多模型 Provider 接入与统一模型工厂
AI / Agent应用只接入 OpenAI 时,创建 ChatModel 只需要模型名和 API Key:
Ollama 模型参数适配:从 max_tokens 到 num_predict
AI / Agent这套多 Provider 设计使用统一的业务结构描述模型:
广度优先搜索(BFS):逐层遍历与无权图最短路径
Engineering / DataStructure从一个节点找另一个节点时,路径往往不止一条。若只关心「经过边数最少的路径」,可以从起点开始先看所有一步能到的节点,再看两步能到的节点。这就是广度优先搜索(Breadth-First Search,BFS)的顺序。
深度优先搜索(DFS):沿一条分支走到底
Engineering / DataStructure在一张图里找路时,有时并不关心最少经过几条边,而是想先沿一条可能的路径走下去;走不通时,再退回最近的分叉点换一条路。这个过程就是深度优先搜索(Depth-First Search,DFS)。
邻接表、逆邻接表与度
Engineering / DataStructure同一张有向图,可以从两个方向看:从一个顶点出发,接下来能到哪里;站在一个顶点上,之前能从哪里过来。邻接表记录前一种关系,逆邻接表记录后一种关系,出度和入度则是把这两种关系的数量数出来。
Python enumerate() 函数
Engineering / Python遍历列表时同时要索引和元素,常见写法是配合 range(len(...)):
传统数据库与向量数据库的使用差异
Infrastructure / Database给一批文档做语义搜索时,最先想到的是把内容存进数据库再用 LIKE 查。结果发现 LIKE 只能匹配字符,没法理解「意思差不多」这回事。改用向量数据库后,第一感觉是:它只是换了一种索引,实际连数据模型都要重新想一遍。整理一下两类数据库在使用…
Docker Compose 数据持久化与 Volume 设计
Infrastructure / Docker在使用 Docker Compose 管理数据库、中间件等基础设施时,数据持久化是必须考虑的问题。PostgreSQL、Redis、Weaviate、Elasticsearch、MySQL——这些服务的数据默认存储在容器内部,当容器被删除,…
📝 关于这些笔记
这里的大部分内容都来自实际学习和开发过程。
为了方便长期维护,每篇笔记都会尽量按照统一的知识结构整理,例如:
| 类型 | 说明 |
|---|---|
Theory | 概念讲解、原理分析、成因对策 |
Practice | 实践指南、实现方案、最佳实践 |
Snippet | 代码片段、实用函数 |
Reference | 学习笔记、语法参考 |
Tutorial | 上手教程、快速入门、搭建指南 |
Cheatsheet | 命令备忘、配置速查 |
Experience | 踩坑记录、FAQ、排查过程 |
希望每一篇笔记不仅能解决当前的问题,也能成为未来可以快速检索和复用的知识资产。
📖 知识导航
-
🤖 AI 大模型、AI 应用开发以及相关技术实践。
-
💻 Engineering 记录软件开发、编程实践与工程设计思考。
-
☁️ Infrastructure 沉淀开发环境、部署流程与基础设施相关知识。
-
🛠 Tools 分享提升效率的工具、配置与个人工作流。