RAG 查询扩展 — 从一句提问到精准答案

前言用户在 RAG(检索增强生成)应用里提出的问题,往往并不是知识库中最容易被检索到的表达。 比如,用户问:“这个产品支持离线使用吗?”而文档里写的是:“客户端提供本地缓存与断网可用能力。” 两者语义接近,但关键词几乎没有重合。若系统只拿用户原句做向...

AI

LangGraph 的状态驱动编排机制

前言在简单的问答场景中,调用一次大模型就能得到结果;但当任务需要多轮推理、工具调用、条件分支、失败重试、人工审核甚至长期运行时,单纯依赖一条线性调用链很快就会变得难以维护。 LangGraph 的价值并不是“再封装一个大模型调用接口”,而是提供了一种...

AI

Pi 介绍与基本使用

Pi 是什么?Pi 是一个面向开发者的命令行 AI 编程代理(coding agent)。它能在项目目录中读取、创建和修改文件,也可以运行终端命令,帮助开发者理解代码、实现功能、排查问题和执行常规开发流程。 但 Pi 不只是一个“在终端里聊天写代码”...

Redis 与关系型数据库事务区别

前言当我们谈事务时,很容易把 Redis 和 MySQL、PostgreSQL 放在同一个框架里理解:开始事务、执行一批命令、提交或回滚。但这种类比只对了一半。 Redis 的事务更像“把一批指令先排队,再按顺序一次执行”;关系型数据库的事务则是一套...

后端开发

让长对话不断线:上下文压缩的方法

前言大型语言模型的对话并不是“无限记忆”。每一轮输入、输出、工具调用结果和系统提示词,都会占用上下文窗口。当历史内容逐渐逼近窗口上限,系统必须做出选择:丢弃、压缩,或把信息转移到外部存储。 真正困难的部分不在于“把内容变短”,而在于:如何在减少 To...

AI

ReAct 推理范式是什么?它如何让 Agent 更可靠地完成任务?

前言大语言模型擅长理解语言、生成内容和归纳知识,但当任务需要“查资料、调用工具、核实结果、分步执行”时,仅靠一次性生成答案往往并不可靠。 ReAct(Reasoning + Acting)提供了一种更适合智能体(Agent)的工作方式:让模型在任务过...

AI

Express 中间件机制到底解决了什么问题?

我刚开始学习 Express 中间件时,记住的是这句话: 中间件就是一个函数,接收 req、res、next 三个参数。 这句话没有错,但它太像定义了。只记住定义,很容易出现一种尴尬:代码会写,却不一定真的知道它为什么存在。等到项目里出现鉴权、日...

后端开发

MySQL 索引入门:为什么加了索引查询会更快

“给这个字段加个索引”几乎是性能优化讨论中出现频率最高的一句话。但索引不是性能魔法:有的索引能让查询从秒级降到毫秒级,有的索引建了却完全没被使用,还有的索引会拖慢写入并占用大量磁盘。 要真正用好 MySQL 索引,关键不是记住几个 DDL 语句,而是...

后端开发

Node.js 事件循环:为什么后端接口不会被 I/O 卡住

刚接触 Node.js 时,我就有一个疑问:JavaScript 不是单线程吗?如果一个接口正在查询数据库、读取文件或请求第三方服务,为什么服务器还能继续处理其他请求? 答案在于 Node.js 的事件循环(Event Loop)。它让 JavaSc...

后端开发

Redis 在项目开发中的常见用法:从缓存到分布式协作的实战指南

Redis 常被一句话概括为“内存数据库”,但在真实项目里,它的价值远不止把数据放进内存。 登录态、热点缓存、验证码、排行榜、接口限流、延迟任务、抢购库存、分布式锁……这些看似不相干的需求,背后都在处理同一类问题:如何用低延迟、可共享、可原子操作的状...

后端开发
1234