PDF导入RAG后乱码、空白或顺序错乱怎么办?文档解析完整排查
# PDF导入RAG后乱码、空白或顺序错乱怎么办?文档解析完整排查 ## 文章摘要 PDF导入知识库后出现乱码、空白、文字顺序错乱,是企业RAG项目最常见的数据源故障。根因可能是扫描件没有文本层、字体使用自定义编码、双栏版式阅读顺序错误、表格被拆散、OCR语言配置不正确,或者解析结果未经质量校验就直接分块。本文给出从PDF类型识别、文本层检测、字体与编码、OCR、版面恢复到入库质量门禁的完整排
固定长度、递归字符、语义分块和结构分块怎么选?RAG Chunk策略对比
# 固定长度、递归字符、语义分块和结构分块怎么选?RAG Chunk策略对比 ## 文章摘要 Chunk策略决定了RAG系统能够检索到什么、丢失什么,以及大模型最终看到多少完整上下文。固定长度分块实现简单但容易切断条款;递归字符分块通用性强;语义分块边界自然但成本较高;结构分块最适合制度、合同和技术文档,却依赖可靠的文档解析。本文从边界质量、实现成本、检索效果、元数据和适用文档等维度对比四种策
Spring AI 2.0 RAG模块升级:依赖改名、Advisor架构与迁移注意事项
# Spring AI 2.0 RAG模块升级:依赖改名、Advisor架构与迁移注意事项 ## 文章摘要 Spring AI 2.0对RAG相关模块进行了重新组织:原来的 `spring-ai-advisors-vector-store` 已改名为 `spring-ai-vector-store-advisor`,常用RAG流程继续通过QuestionAnswerAdvisor接入ChatC
PDF表格在RAG中被拆散怎么办?表头继承、行分块与结构化检索方案
# PDF表格在RAG中被拆散怎么办?表头继承、行分块与结构化检索方案 ## 文章摘要 PDF表格进入RAG后,最常见的问题是表头与数据行分离、跨页表格断裂、合并单元格丢失,以及数字脱离业务含义。把表格简单转成纯文本再按Token切分,会让“100”“20%”“A产品”等字段失去对应关系。本文介绍表格检测、Markdown与JSON双表示、表头继承、按行分块、跨页合并、结构化字段检索和质量校验
用Docling+Spring AI搭建PDF解析与RAG入库管道:表格、Metadata和质量门禁
# 用Docling+Spring AI搭建PDF解析与RAG入库管道:表格、Metadata和质量门禁 ## 文章摘要 Spring AI提供DocumentReader、DocumentTransformer和VectorStore等ETL能力,但复杂PDF的版面、表格和OCR往往需要更专业的解析工具。Docling可以将PDF解析成包含页面、标题、段落、表格和图片信息的结构化文档。本文通
企业级RAG性能优化与质量治理(2):文档解析与Chunk工程决定知识库上限
# 企业级RAG性能优化与质量治理(2):文档解析与Chunk工程决定知识库上限 ## 文章摘要 很多团队把RAG效果差归因于Embedding模型、向量数据库或大模型,却忽略了最前面的文档解析与Chunk工程。PDF乱码、表格丢失、标题层级消失、旧版本混入和固定长度粗暴切分,会在数据进入向量库前就破坏知识。本文建立一套生产级文档管道:文件识别、结构解析、清洗、质量门禁、结构分块、父子Chun
Milvus 2.6.20发布:查询调度、过滤性能与流式恢复升级分析
# Milvus 2.6.20发布:查询调度、过滤性能与流式恢复升级分析 ## 文章摘要 Milvus 2.6.20于2026年7月14日发布,重点改善查询调度与批处理、索引加载、过滤执行、流式重平衡和可观测性,同时修复JSON路径过滤、流式写入恢复、文本索引和GPU_CAGRA等问题。本文不只罗列更新项,而是结合企业RAG场景分析这些变化会影响哪些线上问题、哪些项目值得升级,以及升级前应如何
RAG加上Metadata过滤后完全搜不到结果?从字段类型到索引完整排查
# RAG加上Metadata过滤后完全搜不到结果?从字段类型到索引完整排查 ## 文章摘要 企业RAG为了实现租户、部门、权限、版本和有效期控制,通常会在向量检索中加入Metadata过滤。很多项目却在加过滤后出现结果从几十条变成零条,关闭过滤又恢复正常。根因可能是字段未写入、类型不一致、布尔表达式错误、日期格式不同、过滤索引缺失、权限集合为空或过滤发生在错误阶段。本文提供一套可复用的排查顺
RRF、DBSF、加权融合与Cross-Encoder重排怎么选?RAG排序策略指南
# RRF、DBSF、加权融合与Cross-Encoder重排怎么选?RAG排序策略指南 ## 文章摘要 企业RAG从单一向量检索升级到混合检索后,通常需要解决“多路结果如何合并”和“候选文档如何再次排序”两个问题。RRF、DBSF、加权融合和Cross-Encoder经常被放在一起比较,但它们解决的层次并不完全相同。本文从输入、计算成本、是否依赖分数标定、可解释性和适用场景出发,给出一套可执
pgvector 0.8.5发布:IVFFlat小表建索引内存下降,企业RAG是否需要升级?
# pgvector 0.8.5发布:IVFFlat小表建索引内存下降,企业RAG是否需要升级? ## 文章摘要 pgvector 0.8.5于2026年7月8日发布,更新内容只有一项:降低小表构建IVFFlat索引时的内存使用。虽然变更看似很小,但它延续了0.8.3和0.8.4对HNSW Vacuum、索引损坏和IVFFlat内存边界的连续修复。本文结合PostgreSQL企业RAG场景,分
RAG为什么会检索到其他租户的文档?多租户权限泄露完整治理方案
# RAG为什么会检索到其他租户的文档?多租户权限泄露完整治理方案 ## 文章摘要 企业RAG最严重的故障不是答案不准确,而是用户能够通过自然语言检索到其他租户、其他部门或更高密级的文档。常见根因包括租户ID来自请求参数、过滤只在生成后执行、Top K先召回再删权限、文档Metadata缺失、缓存Key不含租户和权限、重排器接触无权限内容等。本文给出从身份、入库、检索、缓存、重排、生成和审计七
用Spring AI+Qdrant实现混合检索服务:Dense、Sparse、RRF与权限过滤
# 用Spring AI+Qdrant实现混合检索服务:Dense、Sparse、RRF与权限过滤 ## 文章摘要 单一Dense向量检索擅长语义理解,却容易漏掉产品型号、合同编号和专业缩写;纯关键词检索能够精确命中术语,却难以理解自然语言。本文使用Spring Boot、Spring AI和Qdrant设计一个可复用的企业混合检索服务,完成Dense与Sparse双路召回、租户权限过滤、RR
企业级RAG性能优化与质量治理(3):混合检索、重排与权限过滤的生产级设计
# 企业级RAG性能优化与质量治理(3):混合检索、重排与权限过滤的生产级设计 ## 文章摘要 前两篇分别讨论了RAG质量问题的总体诊断,以及文档解析与Chunk工程。本篇进入检索核心:为什么企业知识库不能只依赖单一向量召回,Dense、Sparse、Metadata过滤、融合、重排和权限控制应如何组合,以及怎样通过黄金测试集和线上指标持续治理召回质量。本文给出一套可落地的生产级检索架构、数据
OpenAI Agent Builder和Evals将在11月30日下线:开发者迁移Agents SDK完整清单
# OpenAI Agent Builder和Evals将在11月30日下线:开发者迁移Agents SDK完整清单 ## 文章摘要 OpenAI已经明确,Agent Builder和平台内Evals产品将在2026年11月30日后停止提供。对于仍依赖可视化工作流、平台数据集、Trace评分和自动化评测的团队,这不是简单替换一个API,而是需要重新梳理工作流定义、工具调用、状态管理、评测数据和
Spring AI Advisor为什么不生效?defaultAdvisors、执行顺序与流式调用完整排查
# Spring AI Advisor为什么不生效?defaultAdvisors、执行顺序与流式调用完整排查 ## 文章摘要 Spring AI项目中,Advisor常被用于日志、Memory、RAG、权限、内容审核和工具执行,但开发者经常遇到“明明注册了却没有执行”“请求生效但响应处理顺序不对”“同步接口正常、流式接口失效”等问题。本文从ChatClient实例、defaultAdviso
ChatModel、ChatClient和自建AI Service怎么选?Spring AI三层调用架构指南
# ChatModel、ChatClient和自建AI Service怎么选?Spring AI三层调用架构指南 ## 文章摘要 Spring AI同时提供ChatModel和ChatClient,真实企业项目通常还会再封装一层AI Service。三者并不是重复接口:ChatModel负责底层模型抽象,ChatClient负责Prompt、Advisor和响应转换,AI Service负责业
Spring AI AgentCore SDK进入可用阶段:Runtime、Memory、Browser和Code Interpreter全解析
# Spring AI AgentCore SDK进入可用阶段:Runtime、Memory、Browser和Code Interpreter全解析 ## 文章摘要 Spring生态近期重点介绍了Spring AI AgentCore SDK。它通过Spring Boot自动配置、注解和Advisor,把Amazon Bedrock AgentCore的Runtime、Memory、Brows
Spring AI PromptTemplate插入JSON时花括号冲突怎么办?三种可靠解决方案
# Spring AI PromptTemplate插入JSON时花括号冲突怎么办?三种可靠解决方案 ## 文章摘要 Spring AI默认使用花括号识别Prompt模板变量。当Prompt中包含JSON Schema、示例对象或代码时,JSON自身的 `{}` 可能被误当成模板变量,导致渲染报错、变量缺失或内容被错误替换。本文通过错误示例,介绍自定义 `< >` 分隔符、NoOpTempla
用Spring Boot搭建一个可版本化的Prompt模板管理器:加载、缓存、灰度与回滚
# 用Spring Boot搭建一个可版本化的Prompt模板管理器:加载、缓存、灰度与回滚 ## 文章摘要 企业AI项目中的Prompt不能长期散落在Java代码里。随着场景增加,需要解决模板版本、环境差异、审批、缓存、灰度、回滚和调用追踪。本文实现一个轻量级Spring Boot Prompt模板管理器:使用数据库保存模板元数据,通过Resource与StringTemplate渲染变量,
Spring AI企业级应用实战(2):ChatClient、Advisor与Prompt Template构建统一调用层
# Spring AI企业级应用实战(2):ChatClient、Advisor与Prompt Template构建统一调用层 ## 文章摘要 上一篇完成了Spring Boot 4.1、Spring AI 2.0与DeepSeek V4接入,但业务代码仍然只是直接调用ChatClient。真实企业项目需要统一管理System Prompt、模板变量、租户信息、请求日志、调用耗时和响应格式。本