RAG 查询扩展 — 从一句提问到精准答案前言用户在 RAG(检索增强生成)应用里提出的问题,往往并不是知识库中最容易被检索到的表达。 比如,用户问:“这个产品支持离线使用吗?”而文档里写的是:“客户端提供本地缓存与断网可用能力。” 两者语义接近,但关键词几乎没有重合。若系统只拿用户原句做向...2026-08-15AI
LangGraph 的状态驱动编排机制前言在简单的问答场景中,调用一次大模型就能得到结果;但当任务需要多轮推理、工具调用、条件分支、失败重试、人工审核甚至长期运行时,单纯依赖一条线性调用链很快就会变得难以维护。 LangGraph 的价值并不是“再封装一个大模型调用接口”,而是提供了一种...2026-08-08AI
Pi 介绍与基本使用Pi 是什么?Pi 是一个面向开发者的命令行 AI 编程代理(coding agent)。它能在项目目录中读取、创建和修改文件,也可以运行终端命令,帮助开发者理解代码、实现功能、排查问题和执行常规开发流程。 但 Pi 不只是一个“在终端里聊天写代码”...2026-08-01
Redis 与关系型数据库事务区别前言当我们谈事务时,很容易把 Redis 和 MySQL、PostgreSQL 放在同一个框架里理解:开始事务、执行一批命令、提交或回滚。但这种类比只对了一半。 Redis 的事务更像“把一批指令先排队,再按顺序一次执行”;关系型数据库的事务则是一套...2026-08-01后端开发
让长对话不断线:上下文压缩的方法前言大型语言模型的对话并不是“无限记忆”。每一轮输入、输出、工具调用结果和系统提示词,都会占用上下文窗口。当历史内容逐渐逼近窗口上限,系统必须做出选择:丢弃、压缩,或把信息转移到外部存储。 真正困难的部分不在于“把内容变短”,而在于:如何在减少 To...2026-07-25AI
ReAct 推理范式是什么?它如何让 Agent 更可靠地完成任务?前言大语言模型擅长理解语言、生成内容和归纳知识,但当任务需要“查资料、调用工具、核实结果、分步执行”时,仅靠一次性生成答案往往并不可靠。 ReAct(Reasoning + Acting)提供了一种更适合智能体(Agent)的工作方式:让模型在任务过...2026-07-20AI
Express 中间件机制到底解决了什么问题?我刚开始学习 Express 中间件时,记住的是这句话: 中间件就是一个函数,接收 req、res、next 三个参数。 这句话没有错,但它太像定义了。只记住定义,很容易出现一种尴尬:代码会写,却不一定真的知道它为什么存在。等到项目里出现鉴权、日...2026-07-15后端开发
MySQL 索引入门:为什么加了索引查询会更快“给这个字段加个索引”几乎是性能优化讨论中出现频率最高的一句话。但索引不是性能魔法:有的索引能让查询从秒级降到毫秒级,有的索引建了却完全没被使用,还有的索引会拖慢写入并占用大量磁盘。 要真正用好 MySQL 索引,关键不是记住几个 DDL 语句,而是...2026-07-08后端开发
Node.js 事件循环:为什么后端接口不会被 I/O 卡住刚接触 Node.js 时,我就有一个疑问:JavaScript 不是单线程吗?如果一个接口正在查询数据库、读取文件或请求第三方服务,为什么服务器还能继续处理其他请求? 答案在于 Node.js 的事件循环(Event Loop)。它让 JavaSc...2026-07-01后端开发
Redis 在项目开发中的常见用法:从缓存到分布式协作的实战指南Redis 常被一句话概括为“内存数据库”,但在真实项目里,它的价值远不止把数据放进内存。 登录态、热点缓存、验证码、排行榜、接口限流、延迟任务、抢购库存、分布式锁……这些看似不相干的需求,背后都在处理同一类问题:如何用低延迟、可共享、可原子操作的状...2026-06-28后端开发