RAG 证据冲突处理:当检索结果相互矛盾时如何停止编造结论
RAG 系统检索到不同版本、不同权限或不同来源的矛盾内容时,不能让模型自行挑一个顺眼的答案。本文设计来源排序、冲突检测、时间语义和安全澄清流程。
Articles
沉淀 AI、Web、云原生和独立开发经验。
RAG 系统检索到不同版本、不同权限或不同来源的矛盾内容时,不能让模型自行挑一个顺眼的答案。本文设计来源排序、冲突检测、时间语义和安全澄清流程。
泛型是 TS 最强也最容易过度使用的特性。本文讲清泛型的正确用法(约束/默认值/推断)、内置 Utility Types(Partial/Required/Pick/Omit/Record/ReturnType/Parameters/Awaited)、什么时候用泛型什么时候不用,以及"类型应该帮你而非困住你"。
文档进了向量库不代表知识库已经正确。本文讲解增量索引的版本号、事件去重、删除墓碑、重试和一致性验证,避免 RAG 长期引用过期或已删除内容。
部署不只是"推新版本"——怎么推、怎么切、出问题怎么回滚,决定了风险大小。本文讲清三种部署策略:蓝绿(两套环境瞬间切换)、金丝雀(小流量验证再放量)、滚动(逐步替换),各自的适用场景与代价,以及生产中怎么选。
RAG 变慢时,团队常只盯着模型首 token。本文用延迟预算拆解检索、过滤、重排、生成和网络开销,并给出按请求风险自适应降级的生产策略。
微服务集成测代价高(要起全部服务),契约测试只验证接口约定不变。本文讲清消费者驱动契约测试(Pact):消费者定义期望、生成契约、提供者验证,解耦前后端/服务间的"我的改动有没有破坏别人"。
把 role 字段改成 policy ID 不是普通 mapping 变更。本文用版本化 ACL schema、双写回填、覆盖账本和负向查询证明迁移期间没有权限空窗。
单 Redis 扛不住内存/吞吐时,Redis Cluster 水平扩展。本文讲清 Cluster 的分片模型(16384 槽位 + hash tag)、主从复制与自动故障转移、客户端路由(MOVED/ASK)、跨槽操作限制,以及什么时候该上 Cluster(>单机内存/高吞吐)什么时候用哨兵就够。
不是每个问题都应该送进同一个向量检索器。本文设计可观测的查询路由策略,按意图、数据时效、权限和置信度选择关键词、语义、结构化查询或安全拒答。
自定义字体让设计更好,但加载不当会拖慢 LCP + 导致 CLS(字体闪烁)。本文讲清字体优化全链路:font-display 策略(swap/fallback/optional)、preload 关键字体、子集化(woff2 + 仅需字符)、FOUT vs FOIT、variable fonts,给一套"字体好看又快"的方案。
同名索引可能来自不同语料、解析器或权限覆盖。本文把 RAG 索引视为不可变制品,用签名 manifest、摘要校验和原子别名控制晋级与回滚。
Media Query 响应的是视口宽度,Container Query 响应的是父容器宽度——这让组件真正自适应(同一组件在侧边栏窄、主区宽各显示不同布局)。本文讲清 Container Queries 的原理、@container 语法、container-type 设置、浏览器支持现状,以及它怎么改变响应式设计的思路。