- 博客(117)
- 收藏
- 关注
原创 19.2 Prompt模板管理与异常处理策略
Bean.traversingCauses() // 检查异常链中的可重试异常@Overridelog.warn("AI调用重试 第{}次, 错误: {}",}).build();
2026-02-17 17:27:07
31
原创 19.1 项目脚手架与ChatClient配置策略
本模块聚焦Spring Boot项目中集成Spring AI的最佳实践,从项目初始化到生产部署全流程。Spring AI 1.1.2与Spring Boot 3.x深度集成,提供了丰富的Starter和自动配置能力。但如何正确地组织项目结构、管理依赖、配置ChatClient,是许多开发者容易忽略的关键点。本文覆盖BOM依赖管理、项目标准结构、多环境配置、以及ChatClient的单实例/多实例/动态配置策略。
2026-02-17 17:26:17
33
原创 18.2 MCP Server开发与自动配置实战
篇目核心内容18.1MCP协议概述,三层架构,Client源码(SyncMcpToolCallback/SyncMcpToolCallbackProvider),工具名前缀策略,工具自动发现与缓存机制18.2Server注解开发(@McpTool/@McpResource/@McpPrompt),McpToolUtils桥接,自动配置链,多Server集成,安全过滤,生产实战。
2026-02-17 17:24:59
39
原创 18.1 MCP协议概述与Client源码解析
答:MCP(Model Context Protocol)是一个标准化协议,基于JSON-RPC 2.0,使AI模型能以统一方式与外部工具、资源、提示词交互。和实现协议通信Spring AI MCP集成适配MCP Tool到实现工具自动发现(自动配置层):自动配置传输方式、客户端/服务端实例。
2026-02-17 17:24:08
28
原创 17.3 生产监控仪表盘与告警设计
篇目核心内容17.1Observation体系架构,Context/Convention/Handler设计,ChatModel Token监控,Prometheus集成,告警规则17.2VectorStore三种操作的观测包装,链路追踪集成(Zipkin/Jaeger),自定义Span,采样策略17.3生产监控仪表盘设计,成本面板,模型对比面板,告警策略,日志最佳实践,运维SOP。
2026-02-17 17:23:24
34
原创 17.2 VectorStore可观测性与链路追踪
/ 调用子类实现});@Component@Override// 从请求中提取上下文信息= null?// 创建自定义Span.start();// 在Span上记录响应信息= null) {= null= null) {throw e;span.end();// 最外层。
2026-02-17 17:22:43
18
原创 17.1 Observation体系总览与ChatModel Token监控
方案优势劣势自定义埋点灵活需手动维护、与Spring生态脱节标准化、零侵入、自动生成Metrics+Traces学习曲线Spring生态标准:Spring Boot 3.x已原生集成Observation API一次埋点,多处输出:同一个Observation自动产生Metrics和Traces零侵入:通过自动挂载,无需修改业务代码可扩展:通过自定义Convention和Handler扩展监控维度@Component@Override// 在默认标签基础上添加环境标签。
2026-02-17 17:22:01
29
原创 16.3 AI服务降级熔断与系统集成架构
篇目核心内容关键收获16.1AI不确定性 + 事务设计结构化输出 + AI调用放事务外 + 幂等性16.2异步AI调用 + 缓存策略SSE/MQ异步 + 精确/语义多级缓存16.3降级熔断 + 集成架构多模型降级链 + AI独立微服务核心思想:AI与传统系统的集成关键在于处理好不确定性和不可回滚性。通过结构化输出消除格式不确定、temperature控制内容不确定、事务外调用处理不可回滚、多级缓存降低成本、多模型降级保障可用性。下一模块预告。
2026-02-17 17:21:04
201
原创 16.2 异步AI调用与缓存策略
AI调用延迟高(1-30秒)、成本昂贵(按Token计费)。异步化是提升用户体验和系统吞吐量的关键,而缓存则是降低成本和延迟的利器。本文详细讨论Spring AI应用中异步调用的多种模式,以及从精确匹配到语义缓存的完整缓存策略。
2026-02-17 17:20:27
178
原创 16.1 AI输出的不确定性与事务设计
原则说明理由AI调用放在事务外先调AI,再开事务AI不可回滚,且耗时占连接短事务原则事务只包含数据库操作(<100ms)避免连接池耗尽幂等性设计相同请求不重复调AI节省Token费用Saga补偿多步骤流程使用补偿事务AI步骤不可补偿,其他步骤可补偿降级默认值AI调用失败使用默认值保证主流程不因AI失败而中断需要确定性输出时设为0减少输出随机性entity()输出使用结构化输出消除格式不确定性。
2026-02-17 17:19:38
20
原创 15.3 多租户隔离安全与安全检查清单
篇目核心内容关键收获15.1安全威胁全景 + 数据隐私保护OWASP Top 10映射 + PII脱敏Advisor15.2API Key管理 + 输出审核多Key轮换 + ContentModerationAdvisor15.3多租户隔离 + 安全清单四层隔离 + 三阶段检查清单核心思想:AI安全不是"做完了"的状态,而是"持续做"的过程。安全防护需要在开发、部署、运营的每个阶段都有对应的检查和措施。下一模块预告:模块十六将讨论AI与传统系统一致性设计。
2026-02-17 17:18:50
33
原创 15.1 AI安全威胁全景与数据隐私保护
AI应用面临传统Web应用的所有安全威胁,加上AI特有的新型攻击面——Prompt注入、模型越狱、知识库投毒、幻觉利用等。同时,发送给AI模型的数据可能包含个人信息(PII)、商业机密等敏感内容。本文梳理Spring AI应用需要应对的安全威胁全景,并深入讨论如何在Spring AI应用中实现数据隐私保护与脱敏。
2026-02-17 17:16:00
39
原创 14.3 Advisor链过度设计与容错设计
篇目核心内容关键收获14.1适用边界 + ChatClient滥用知道什么时候用AI,什么时候不用14.2Prompt注入 + RAG反模式纵深安全防御 + RAG质量保障14.3Advisor陷阱 + 容错设计性能优化 + 多级降级容错核心思想:AI应用开发不仅要会用Spring AI的API,更要理解其边界和陷阱。优秀的AI工程师是那些知道什么时候不用AI的人。下一模块预告:模块十五将深入AI安全与合规设计。
2026-02-17 17:15:11
23
原创 14.3 Advisor链过度设计与容错设计
篇目核心内容关键收获14.1适用边界 + ChatClient滥用知道什么时候用AI,什么时候不用14.2Prompt注入 + RAG反模式纵深安全防御 + RAG质量保障14.3Advisor陷阱 + 容错设计性能优化 + 多级降级容错核心思想:AI应用开发不仅要会用Spring AI的API,更要理解其边界和陷阱。优秀的AI工程师是那些知道什么时候不用AI的人。下一模块预告:模块十五将深入AI安全与合规设计。
2026-02-17 17:14:10
19
原创 14.2 Prompt注入与RAG反模式——AI应用的安全与质量陷阱
(Prompt注入)和(RAG反模式)。Prompt注入是AI应用最严重的安全威胁——攻击者通过精心构造的输入让大模型执行非预期行为;RAG看似简单(检索+生成),但实际项目中充满了质量陷阱。本文将深入分析这两类问题及其防御策略。
2026-02-17 17:13:06
25
原创 14.1 Spring AI适用边界与ChatClient滥用分析
Spring AI是一个优秀的Java AI集成框架,但它不是银弹。了解其适用边界、知道什么时候该用什么时候不该用,比学会如何使用更加重要。本文将深入分析Spring AI的定位与能力边界,并通过大量真实案例揭示ChatClient滥用的常见场景——帮助你在架构决策时做出理性选择。
2026-02-17 17:11:38
19
原创 13.5 文档处理实战与ETL管道调优
篇目核心内容13.1ETL三层架构:Reader/Transformer/Writer13.2TextSplitter抽象和TokenTextSplitter算法13.37种DocumentReader源码解析13.4ContentFormatter和元数据管理13.5企业级ETL实战、增量更新、性能优化下一模块预告:模块十四将探讨Spring AI的边界与反模式。
2026-02-17 17:10:30
19
原创 13.4 ContentFormatter与元数据管理
/ 添加业务相关的元数据.build();元数据最佳实践可过滤:添加categorydepartment等可用于Filter表达式的字段可溯源:添加sourceversion等便于追溯来源扁平化:不要嵌套对象,值限制为String/int/float/boolean避免大值:元数据会随Document一起存储,不要放大文本// 基于内容hash的ID生成器@Override// 使用.build();优势:相同内容生成相同ID,天然去重。
2026-02-17 17:09:46
20
原创 13.3 多格式DocumentReader源码解析
Spring AI内置了多种文档读取器,覆盖了常见的文档格式。本文逐一分析每个Reader的源码实现和使用方式。和。
2026-02-17 17:08:20
18
原创 13.2 TextSplitter与TokenTextSplitter切分策略
文档切分(Chunking)是RAG数据准备中最关键的环节。切分太大,检索不精准;切分太小,语义不完整。Spring AI提供了抽象基类和实现。
2026-02-15 21:41:23
25
原创 13.1 ETL管道设计:DocumentReader → Transformer → Writer
RAG的质量取决于数据准备。Spring AI设计了一套完整的ETL(Extract-Transform-Load)管道,将原始文档转化为可检索的向量数据。本文详细分析这套管道的三层架构设计。
2026-02-15 21:40:37
21
原创 12.6 RAG完整实战与性能调优
篇目核心内容12.1RAG架构总览,RetrievalAugmentationAdvisor核心编排12.2QueryTransformer查询重写/压缩,MultiQueryExpander多查询扩展12.3VectorStoreDocumentRetriever检索,动态过滤,DocumentJoiner合并12.4ContextualQueryAugmenter增强,空上下文处理,自定义模板12.5DocumentPostProcessor后处理:重排序/过滤/截断12.6。
2026-02-15 21:39:30
178
原创 12.5 DocumentPostProcessor文档后处理
在文档检索之后、查询增强之前,Spring AI提供了扩展点,用于对检索到的文档进行等后处理操作。
2026-02-15 21:38:52
18
原创 12.4 ContextualQueryAugmenter查询增强机制
你是一个技术专家。请根据以下参考文档回答用户的问题。参考文档:{context}要求:1. 只基于参考文档回答,不要使用你的训练知识2. 如果文档中找不到答案,请明确说明3. 回答要简洁、准确、有条理用户问题:{query}回答:""");注意模板中必须包含{query}和{context}两个占位符。
2026-02-15 21:37:24
14
原创 12.3 VectorStoreDocumentRetriever与文档检索策略
文档检索是RAG流程的核心环节。是Spring AI内置的基于向量存储的文档检索器,理解它的源码有助于我们优化检索质量。
2026-02-15 21:36:42
14
原创 12.1 RAG架构总览与模块化设计
RAG(Retrieval Augmented Generation,检索增强生成)是当前AI应用最核心的技术模式——让大模型在回答问题时参考你的私有知识库,而不仅仅依赖训练数据。Spring AI 1.1.2在模块中实现了完整的。
2026-02-15 21:35:26
19
原创 11.5 向量数据库选型决策与生产最佳实践
篇目核心内容最推荐的生产选择,HNSW索引,UPSERT,jsonpath过滤11.2 Redis内存极速搜索,需预声明MetadataField大规模专业方案,多种索引,分布式,GPU加速Chroma轻量开发友好,ES混合搜索优势11.5 选型与实践决策树、生产规范、常见陷阱核心要点Spring AI的统一VectorStore接口让你可以面向接口编程,切换数据库只改配置选型优先看现有基础设施和数据规模生产环境推荐PgVector(中小规模)或Milvus(大规模)
2026-02-15 21:34:35
37
原创 11.4 Chroma与Elasticsearch向量集成
/ Chroma REST API客户端// 租户名// 数据库名// 集合名@Nullable// 集合ID(初始化后获取)
2026-02-15 21:33:52
35
原创 11.3 Milvus专业向量数据库集成
Milvus是目前最流行的开源专业向量数据库之一,专为大规模向量搜索设计。Spring AI的提供了完整的集成方案。1.2 核心配置项配置类型默认值说明collectionNameString“vector_store”集合名称databaseNameString“default”数据库名embeddingDimensionint-1 (自动)向量维度indexTypeIndexTypeIVF_FLAT索引类型metricType
2026-02-15 21:32:27
187
原创 11.2 Redis向量存储集成
/ Redis客户端(Jedis)// RediSearch索引名// Key前缀// 是否自动创建索引// 元数据字段定义。
2026-02-15 21:31:52
24
原创 11.1 PgVector集成——关系型数据库的向量能力
/ ... 继承观测抽象类 + Spring InitializingBean实现接口,在Bean初始化时自动创建表和索引。
2026-02-15 21:31:15
13
原创 10.5 SimpleVectorStore源码解析与实战
篇目核心内容10.1VectorStore/VectorStoreRetriever接口设计,双继承ISP原则10.2SearchRequest四大参数,相似度搜索执行流程10.3AbstractObservationVectorStore模板方法,可观测性集成10.4Filter表达式系统:AST + Builder DSL + TextParser + Converter10.5SimpleVectorStore完整源码,save/load,实战示例核心设计理念接口隔离。
2026-02-15 21:30:04
16
原创 10.4 Filter表达式系统源码解析
在向量搜索中,单纯的语义相似度往往不够——你还需要。比如"找与Spring AI相关的文档,但只要2024年之后的官方文档"。Spring AI设计了一套完整的、的Filter表达式系统。包。
2026-02-15 21:29:15
16
原创 10.3 AbstractObservationVectorStore模板方法模式
Nullable字段类型职责Micrometer观测注册表,记录指标和追踪自定义观测约定(可选)嵌入模型,将文本转为向量批量嵌入策略(默认TokenCountBatchingStrategy)注意和是protected的,子类可以直接使用。源码位置@Nullable@Override@Override│├── add(documents) ← 公开方法(模板方法)│ ├── validateNonTextDocuments() ← 校验(固定步骤)
2026-02-15 21:28:28
11
原创 10.2 SearchRequest与相似度搜索体系
上一篇我们梳理了VectorStore的接口设计哲学。执行向量搜索时,是唯一的请求参数对象,它控制着"搜什么、搜多少、多相似才算、怎么过滤"四大关键问题。本文从源码深入分析。
2026-02-15 21:27:34
15
原创 10.1 VectorStore顶层接口设计哲学
本文是模块十"VectorStore向量存储"的第一篇。向量存储是AI应用的核心基础设施——没有它,RAG(检索增强生成)就无从谈起。Spring AI在模块中,设计了一套精巧的VectorStore接口体系,我们来从源码角度深入理解。
2026-02-15 21:26:47
13
原创 9.4 【实战】自定义 Spring AI Starter 开发
│ 企业使用 Spring AI 的痛点 ││ ││ 1. 重复配置 ││ 每个项目都要配置相同的 API Key、Base URL、重试策略... ││ ││ 2. 安全规范 ││ 密钥管理、审计日志、敏感信息脱敏...每个项目都要重新实现 ││ ││ 3. 成本控制 ││ Token 配额、限流、成本告警...缺乏统一管控 ││ ││ 4. 模型切换 ││ 不同环境使用不同模型,缺乏统一的切换机制 ││ ││ 5. 最佳实践 │。
2026-02-15 21:25:40
22
原创 9.3 观测自动配置与 Micrometer 集成
*** 自定义观测约定* 控制哪些信息被记录*/@Bean@Override// 低基数标签(适合指标)@Override// 高基数标签(适合追踪)// 只在非生产环境记录详细信息if (!观测自动配置:理解了 ChatObservationAutoConfiguration 的工作原理Micrometer 集成:掌握了 Token 指标收集和 Prometheus 集成分布式追踪:学会了 Zipkin/Jaeger 追踪配置安全配置。
2026-02-15 21:24:07
13
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅